JP2014527218A - ネットワーク・コントロール・モデル・ドライバ - Google Patents
ネットワーク・コントロール・モデル・ドライバ Download PDFInfo
- Publication number
- JP2014527218A JP2014527218A JP2014518546A JP2014518546A JP2014527218A JP 2014527218 A JP2014527218 A JP 2014527218A JP 2014518546 A JP2014518546 A JP 2014518546A JP 2014518546 A JP2014518546 A JP 2014518546A JP 2014527218 A JP2014527218 A JP 2014527218A
- Authority
- JP
- Japan
- Prior art keywords
- transfer
- size
- receive buffer
- request
- reduced size
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/36—Flow control; Congestion control by determining packet size, e.g. maximum transfer unit [MTU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Transfer Systems (AREA)
- Bus Control (AREA)
Abstract
【課題】ホストが転送終了インジケータを提供するか否かに応じて、接続された装置における適切な動作を決定すること。
【解決手段】ネットワーク・コントロール・モデル・トランスファ・ブロック(NTB)を送信しているホストが、NTBについての転送終了規則に準拠しているか否かを判断し、その後、非準拠ホストとの間のトランザクションを完了するための当該装置における適切な動作を決定するように、ユニバーサル・シリアル・バス装置を動作させる方法、及び装置。
【選択図】図1
【解決手段】ネットワーク・コントロール・モデル・トランスファ・ブロック(NTB)を送信しているホストが、NTBについての転送終了規則に準拠しているか否かを判断し、その後、非準拠ホストとの間のトランザクションを完了するための当該装置における適切な動作を決定するように、ユニバーサル・シリアル・バス装置を動作させる方法、及び装置。
【選択図】図1
Description
関連出願の相互参照
本願は、2011年6月30日にTerrill M. Moore他により出願された「Network Control Model Driver」と題する米国仮特許出願第61/503,349に基づく優先権を主張するものであり、当該米国仮特許出願は、参照により、本明細書に援用される。
本願は、2011年6月30日にTerrill M. Moore他により出願された「Network Control Model Driver」と題する米国仮特許出願第61/503,349に基づく優先権を主張するものであり、当該米国仮特許出願は、参照により、本明細書に援用される。
発明の分野
本発明は、USBネットワーククラス装置、及びホストに関し、特に、ユニバーサル・シリアル・バス3.0を介して動作するネットワーククラス装置、及びホストに関する。
本発明は、USBネットワーククラス装置、及びホストに関し、特に、ユニバーサル・シリアル・バス3.0を介して動作するネットワーククラス装置、及びホストに関する。
背景情報
超高速のユニバーサル・シリアル・バスであるUSB3.0によれば、「ホスト」と一般に呼ばれるホストコンピュータ、及び、接続された装置は、その前身であるUSB2.0を介して利用可能な速度に比べて、何倍も高いデータ転送速度を使用して通信することが可能である。この高いデータ転送速度は、ネットワーククラス装置にとって特に有用である。ホストにおけるネットワーク・コントロール・モデル(「NCM」)モジュール、及び接続されたネットワーククラス装置は、ネットワーク層及びバスプロトコル層と協働し、ネットワークデータをNCM転送ブロック(「NTB」)の中に詰め込み、NTBをUSBを介して複数のシリアルバスパケットとして輸送する。
超高速のユニバーサル・シリアル・バスであるUSB3.0によれば、「ホスト」と一般に呼ばれるホストコンピュータ、及び、接続された装置は、その前身であるUSB2.0を介して利用可能な速度に比べて、何倍も高いデータ転送速度を使用して通信することが可能である。この高いデータ転送速度は、ネットワーククラス装置にとって特に有用である。ホストにおけるネットワーク・コントロール・モデル(「NCM」)モジュール、及び接続されたネットワーククラス装置は、ネットワーク層及びバスプロトコル層と協働し、ネットワークデータをNCM転送ブロック(「NTB」)の中に詰め込み、NTBをUSBを介して複数のシリアルバスパケットとして輸送する。
ホスト及びデバイスは、入力(IN)パイプ及び出力(OUT)パイプを介した伝送のための最大NTBサイズに合意し、当該サイズは、パイプごとに異なる。標準NCMモジュールは、ちょうど送信側との間で合意した最大NTBサイズのような合計サイズを有する1以上のバッファを含む受信機に対し、受信要求をポストする。USB送信における伝送の終了は、最大サイズNTBの受信、すなわち、バッファを満たすNTBの受信によって知らされ、又は、最大サイズ以外のNTBの場合、次のUSBパケット:最大量よりも少ない量のデータを有するUSBパケット(すなわち「ショート」パケット)、及びデータを全く有しないUSBパケット(すなわち、「ゼロ長」パケット又はZLP)のうちの一方の受信によって知らされる。
トランザクションの受信端にあるUSBコントローラ、例えば、接続された装置におけるUSBコントローラは、フル・バッファ・フラグがセットされた場合、最大サイズのNTBを直ちに処理し、当該装置が、関連する転送終了インジケータを受信した場合、非最大サイズのNTBを処理する。必要に応じて、装置は、対応する受領応答をホストに送る。もし全てが順調にいけば、装置は、データ内のNTBのフレーム構造を判定するための時間のかかる処理動作を実施する必要なく、転送を処理する。従って、NTBトランザクションは、USB3.0を介して利用可能な、より速いデータ転送速度で実施される場合がある。
種々のホスト、例えば、特定のLinuxオペレーティング・システム・カーネルを使用しているホストは、受信機において非最大トランザクションであると判断されるべき特定のNTBトランザクションについては、指定された転送終了インジケータを提供しない。むしろ、ホストは、自分が最大サイズNTBであると決定したものを送信したのであるから、転送終了インジケータは必要ないと判断する。
指定されたインジケータが提供されないことは、トランザクションを行っている装置に悪影響を与える。ホストが、非最大NTBについて、期待される転送終了インジケータを提供しないことは、受信機が、NTBの終端を適切に検出できないことを意味し、従って、受信機が、前回のNTBの直後に次のNTBを、前回のNTBを受信するために指定されたものと同じバッファ(単数又は複数)中に受信し続けることになることを意味する。従って、NCMフレーム同期は失われ、少なくとも次にホストがショートパケット又はZLPによって停止するときまで、失われることになる。そのため、この期間中に埋め込まれたフレームは全て失われ、場合によっては、より上位のプロトコルスタックにとって危険な結果を生じる。
従って、送信機(ここでは、所与のホスト)が、規則に準拠し、かつ、受信機における非最大NTBトランザクションであるNTBトランザクションについて、指定された転送終了インジケータを提供するか否かを、例えば接続された装置のようなNTBトランザクションを実施している受信機が判断することを可能にする手段が必要とされている。また、装置が、非準拠ホストとの間のNTBトランザクションを完了することを可能とし、及び、それらを比較的効率的に完了することを可能にする手段が必要とされている。
接続されたネットワーククラス装置におけるネットワーク・コントロール・モデル・ドライバは、NTBの転送を制御するステートマシンとして動作し、まず、ホストが転送終了規則に準拠しているか否かを判断し、その後、非準拠ホストとの間のNTBトランザクションを完了するために、その装置における適切な動作を決定する。初期状態において、ネットワーク・コントロール・モデル・ドライバは、要求キューを縮小された受信サイズにセットし、1以上のバッファへの1回の転送に制限する。バッファ(単数又は複数)が定期的に一杯になると、装置は、転送されたデータを検査し、ホストが、最大NTBよりも小さいNTBについて、適切な指定された転送終了インジケータを提供するか否かを判断する。もし装置が、ホストはそのようなインジケータを提供しないと判断した場合、装置は、縮小された受信サイズを維持し、装置が管理できる限り、出来るだけ迅速に要求キューを増大させ、データ内のNTBの終端を判定するために当該装置において必要となる処理を最小限に抑えることにより、非準拠ホストとの間のデータ転送速度を実質的に最大化することを可能にする。
本発明の下記の説明では、添付の図面を参照する。
図1を参照すると、ホスト101は、シリアルバス120を介して1以上の接続された装置110と通信する。理解を容易にするために、図面には、ホスト、及び1つの装置が示されている。しかしながら、複数の装置が、シリアルバス120に接続される場合もある。この例では、シリアルバス120はUSB3.0であり、当該バスを介したホスト101と装置110との間の通信は、USB3.0に適用可能な種々のトランスポート・プロトコルに準拠する。関心対象のトランザクションは、NCM転送ブロック(NTB)トランザクションであり、装置110は、ネットワーククラス装置である。
ホスト101は、プロセッサ104、ホストメモリ102、ホストシリアルバス・コントローラ106、及びホストネットワーク・コントロール・モデル・ドライバ108を含み、ホストネットワーク・コントロール・モデル・ドライバ108は、ネットワーク層及びシリアルバス・トランスポート層と協働し、ネットワークデータを装置110へ転送するとともに、装置110からネットワークデータを受信する。装置110は、プロセッサ114、装置メモリ112、装置シリアルバス・コントローラ116、装置ネットワーク・コントロール・モデル・ドライバ118、及びネットワーク・インタフェース・コントローラ120を含み、ネットワーク・インタフェース・コントローラ120は、外部アンテナ119を介して、又は、有線接続(図示せず)により、外部ネットワークと通信する。
ホスト101と装置110との間における関心対象のトランザクションは、ネットワークから受信され、又はネットワークへ提供されるデータの転送である。トランザクションの例は、ホストから接続装置への転送として説明されるが、同じ教示は、当該装置からホストへの転送にも適用することができる。
ホスト及び装置のネットワーク・コントロール・モデル・ドライバ108、118は、ネットワーク・プロトコル・スタック及びシリアルバス・トランスポート・プロトコル・スタック(図示せず)と協働し、ネットワークデータをNTBの中に詰め込み、個々のNTBをシリアルバスを介して複数のシリアルバス・パケットとして輸送する。複数のシリアルバス・パケットは、本明細書では、USBパケットと呼ばれる。この例では、ネットワーク・コントロール・モデル・ドライバは、ネットワーク・コントロール・モデル・デバイスのためのユニバーサル・シリアル・バス・通信クラス・サブクラス仕様バージョン1.0(以下、NCM仕様)に従って動作する。当業者には理解されるように、ホスト及び装置のネットワーク・コントロール・モデル・ドライバ108、118は、種々のプロトコルスタックと協働し、すなわち、周知の態様で一緒に動作し、前記詰め込み、及びパケット化を実施する。ネットワーク・コントロール・ドライバはさらに、周知の態様で種々のプロトコルスタックと協働し、受信したパケット及びNTBからネットワークデータを得る。従って、プロトコルスタックは、ネットワーク層ドライバ、及びシリアルバス・トランスポート層ドライバを含み、その他、周知の態様で動作し、周知の態様で周知の仕様に従って動作する。
装置において、ネットワーク・コントロール・モデル・ドライバ118は、MCCIデータポンプ510と協働し、MCCIデータポンプ510は、指定されたバッファ又は散乱収集バッファ113への転送、及び要求された転送の完了を知らせる関連信号伝送をさらに確立する種々の要求を使用して、周知の態様でデータ転送を制御する。理解されるように、バッファ113及び103は、バッファの総サイズを含む連続的な記憶場所であってもよいし、又は、あわせてバッファの総サイズを構成する複数のscatter/gather(拡散・収集)記憶場所であってもよい。以下、用語「バッファ」は、一方又は両方の記憶構成を示すために使用される。MCCIデータポンプは、ホストネットワーク・コントロール・モデル・ドライバによって使用される場合もあり、又は、ホストネットワーク・モデル・ドライバは、代わりに、データ転送を制御するホストオペレーティング・システムの種々のサービスを利用する場合もある。
図2A〜図2Cは、NCM仕様に準拠するように成形されたシリアルバス120上のトランザクションを示している。ここで図2Aを参照すると、ホストネットワーク・コントロール・モデル・ドライバ108は、ネットワークデータを、この例では、データグラム301及び302の形で、NTB310に詰め込む。NTBは、ヘッダ311aを含み、ヘッダ311aのデータ長フィールド313aには、NTB310aの中に詰め込まれたデータグラムの総サイズが指定される。NTBの何処かに、少なくとも1つのNCMデータグラム・ポインタ構造316が含まれる。ネットワーク・コントロール・モデル・ドライバは、NTBを複数のUSBパケット320として、シリアルバス・コントローラ116に渡す。図2Aに示したNTB転送の場合、NTBヘッダ長フィールド313aは、LEN1の値を有し、この値は、最大NTBサイズに等しい。従って、NTB転送の最初のパケット320から終端パケット322までの全パケットの合計のサイズは、データで満たされたバッファ113の総サイズと同じである。装置シリアルバス・コントローラ116は、バッファ113に対しバッファ・フル・フラグがセットされたときに、転送を完了するように構成される。
次に図2Bを参照すると、NCM仕様に準拠するNTB転送の別の例が示されている。この例では、ヘッダ311bのデータ長フィールド313bに含まれる値LEN2は、最大NTBサイズよりも小さく、また、その値は、固定サイズUSBパケット320の倍数ではない。従って、NTBの終端パケット324は、最大長未満のデータを含む。すなわち、終端パケットは、「ショート」パケットである。装置シリアル・バス・コントローラ116は、コントローラがショートパケットに遭遇したときに、転送を完了するように構成される。
次に図2Cを参照すると、NCM仕様に準拠するNTB転送のさらに別の例が示されている。この例では、ヘッダ311cのデータ長フィールド313bに指定されたデータ長LEN3は、固定サイズUSBパケット320の倍数である。しかしながら、装置バッファ113の指定された総サイズは、NTBのサイズよりも大きい。この例では、ZLP324が提供され、装置シリアル・バス・コントローラは、コントローラがZLPに遭遇したときに、転送を完了するように構成される。
図3は、非準拠NTB転送を示している。ヘッダ411のデータ長フィールド413の値LEN4は、最大NTBサイズよりも小さく、かつ、シリアルバス・パケットの長さの倍数である。装置は、コントローラがZLPに遭遇したときに、転送を完了するように構成される。ただし、ホストは、ZLPを生成することができず、代わりに、次のNTB430のヘッダ431の始まり429を含むUSBパケット450を生成する。その結果、NTB430は、NTB410の直ぐ後にバッファ113に記憶されることとなり、バッファ113が一杯になるか、又はショートパケット若しくはZLPが検出され、転送の適切な終了が最終的に検出されると、NTB410を含むバッファ113内の全てのNTBは、破棄される。なぜなら、受信データ長が、NTB410のLEN4に等しくないからである。それどころか、ヘッダ411におけるLEN4にヘッダ431のLEN4を加えたものは、最大NTBサイズよりも大きい場合がある。これは、装置シリアルバス・コントローラ(これは、最大NTBサイズを受信したときに、転送を完了するように構成される)が、NTB430の中程のどこかで転送を完了し、NTB430の残りの部分を他のバッファ(図示せず)に受信し続けることを意味する。その結果、当該他のバッファに受信されたNTBもまた、失われることになる。このように、ホストがパケット終了インジケータを提供しないことは、転送されたデータを必要とする装置の動作に悪影響を及ぼす。
非準拠の可能性があるホストとの協働の問題を克服するために、装置ネットワーク・コントロール・モデル・ドライバ118は、ステートマシンを操作し、ホスト101が、図3を参照して説明した転送のような非準拠転送を実施するものであるか否かを判断し、その場合、非準拠ホストとの間のネットワークデータ転送のスループット速度を最適化する。この仕組みを説明する前に、ホスト101に対する装置110の周知のエニュメレーションを考えてほしい。エニュメレーション処理は、システムが起動したとき、既にホスト101が動作しているシステムに装置110が接続されたとき、又は、装置がリセットされたときに行われる。装置110のエニュメレーションの際に、ホストとの通信のためのそれぞれのインタフェースについての設定が決定され、装置は、そのインタフェース設定をホスト101により読み取り可能な形に維持する。NTBトランザクションのためのインタフェースのための個々のインタフェースの設定は、ホストとの協議により定められた指定された最大NTBサイズを含む。
ホストと装置110との間におけるデータ転送を行うために、ホスト101は、適当なインタフェース設定を選択することにより、所望のインタフェースを構成し、装置110にエンドポイントを作成し、及び関連するパイプを作成する。適当なUSB3.0仕様によれば、ホスト101がSET_INTERFACEコマンドを装置110に発行したときに、エンドポイントは作成される。
ホストと装置110との間におけるデータ転送を行うために、ホスト101は、適当なインタフェース設定を選択することにより、所望のインタフェースを構成し、装置110にエンドポイントを作成し、及び関連するパイプを作成する。適当なUSB3.0仕様によれば、ホスト101がSET_INTERFACEコマンドを装置110に発行したときに、エンドポイントは作成される。
上で述べたように、非準拠ホストとは、NTBが受信側にとって最大サイズではないが、送信側にとって最大サイズであるNTBトランザクションについて、適当な転送終了インジケータを提供しないホストである。この非準拠状況は、ホストが、出力(OUT)パイプにおいて指定された自分のバッファを、受信側装置における最大NTBサイズよりも小さく、かつ、USBパケットサイズの倍数である最大NTBサイズにセットしたときに発生する。この処理は、ZLPを受信側へ送信することなく、Linuxカーネルを利用して、ホストに対し、最大ホストバッファサイズのときにトランザクションを終了させることを促すことによりなされる。
非準拠ホストとの効率的な協働のために、装置110におけるネットワーク・コントロール・モデル・ドライバ118は、まず、所与のホスト110を、規則に準拠しているか、又は非準拠であるものと識別する。ホストは非準拠であるものとネットワーク・コントロール・モデル・ドライバが判断した場合、ネットワーク・コントロール・モデル・ドライバは、データロスをなくし、処理の非効率性を低減するために、非準拠ホストとの間のネットワークデータ転送処理を最適化する。
次に、図4〜図5をさらに参照すると、装置ネットワーク・コントロール・モデル・ドライバは、ソフトウェア、ファームウェア、ハードウェア、又はそれらの組み合わせにより構成されたステートマシン500を操作し、まず、非準拠ホストを識別し、その後、トランザクションの完了を確保し、装置のスループットを最適化するために、装置におけるインタフェース・バッファ設定、及び要求キューを構成する。
装置のエニュメレーションの後、最初のNTBトランザクションがホストによって開始されたときに、装置は、ステートマシン500を状態501から開始する。ステートマシンは、INITIAL(初期)状態502に進み、そこで、装置においてNTBの受信のために指定されたバッファ113は、エニュメレーションの際に合意されたNTBのための最大サイズよりも小さい所定の閾値サイズまで縮小される。ステップ602である。この例では、最大NTBサイズは、64kである。この例におけるホスト101は、Linuxホストであり、装置バッファ113の総サイズは、非準拠ホストによりホストバッファ103にセットされる最大サイズである16Kまで縮小される。より一般的には、所定の閾値を決定することができる場合、バッファ113のサイズは、非準拠動作のための所定の閾値以下の任意の値にまで縮小される場合がある。あるいは、バッファ113のサイズは、バッファ内に含まれるデータの当該装置による比較的迅速な検査が可能となり、受信側においてバッファの最大サイズをセットするために、データ中のNTBの終端了を判定することが可能となるサイズまで、縮小されることができる。
ステートマシンはさらに、要求キューの長さを単一要求の長さに変更する。ステップ603である。ホストが単一要求に応答すると、装置は、適当な応答をホストに提供する。もしバッファが一杯ではない場合、トランザクションは、ショートパケット又はZLPに基づいて、非準拠ホストの最大NTBサイズよりも小さいNTBで終了した。ステートマシンは、初期状態に戻り、次のNTBとの間の準拠度を検査する。なぜなら、非準拠ホストであっても、非準拠ホストNTBサイズよりも小さいサイズのNTBについて、ショートパケット又はZLPを発行するからである。ステップ604、605である。もしバッファが一杯である場合、バッファ・フル・フラグがセットされ、これに応答して、装置は、縮小されたサイズの指定されたバッファ113内のデータ、すなわち、NTBの最初の16kのデータを検査する。ステップ604、605である。装置は、バッファに格納されたNTB内のヘッダから、ヘッダのデータ長フィールドに指定されたNTBサイズが、縮小されたバッファの総サイズに等しいか否かを、すなわち、この例では、NTBサイズが16kに等しいか否かを判断する。ステップ606である。もしブロックサイズが転送されたデータに等しい場合、装置は、ZLPサーチ状態に入る。なぜなら、受信されたNTBが、合意された最大NTBよりも小さく、NCM仕様によれば、転送は、ZLPで終了しなければならないからである。従って、次の16kの転送中に、ZLPが存在しなければならない。ステップ606、608である。
ZLPサーチ状態において、総バッファサイズは、16kに縮小された状態に維持され、装置は再び、16K転送のために、単一要求をキューに入れる。ステップ620、622である。転送が再び完了すると、装置は、ZLPのみを受信したか否かを判断する。ステップ624である。もしそうであれば、装置は、ホストが規則に準拠するものであると判断し、COMPLIANT(準拠)状態に入る。ステップ626である。そうでなければ、装置は、ホストがZLPのみを送信することはできないので非準拠であると判断し、装置は、NOZLP(ZLP無し)状態に入る。ステップ628である。この状態では、全てのNTBトランザクションについて、装置バッファ113の総サイズが、縮小されたサイズに、この例では16Kにセットされる。ただし、転送のための要求のためのキューは、もはや単一要求に制限されず、装置は、装置が複数の16K要求を処理出来る限り、出来るだけ迅速にそれらの要求をキューに入れる。ステップ630、632である。
その後、装置は、縮小されたサイズのバッファ(単数若しくは複数)113に対してセットされるバッファ・フル・フラグ、又は、ホストが16kよりも小さい最大サイズNTBを送信したときに受信されるショートパケット、若しくはZLPに基づいて、ホストからの最大サイズ(ここでは16k)のNTBを処理する。なぜなら、ホストにおけるバッファサイズと装置におけるバッファサイズが同サイズであるからである。従って、NTBフレーム構造は、バッファと同期することになる。
もし、NTBヘッダにおいて指定されたNTB長が16Kよりも長い場合(この例では、16Kが、非準拠ホストによって使用される所定の最大値である)、ステートマシンは、状態をCOMPLIANT(準拠)にセットする。ステップ606、610である。ステートマシンにおいてこの遷移が発生する理由は、非準拠ホストの閾値NTBよりも大きいサイズのNTBを送信するホストは、定義上、自分のNTBを合意された最大NTBサイズに基づいてセットする準拠ホストであるからである。受信データの量が要求データよりも少ない場合、ショートパケット又はZLPが受信され、装置は、ホストが規則に準拠しているか否かを判断することができない。装置は、データ転送を処理し、次のNTBとの準拠度を検査するために、初期状態に留まる。ステップ604、605である。
準拠状態において、ネットワーク・コントロール・モデル・ドライバ118は、バッファ113の総サイズを合意された最大NTBサイズにセットし、要求キューに関する制限を取り除く。その後、装置は、可能な限り迅速に、最大NTBサイズまでの転送要求をキューに入れる。
ステートマシンの動作、関連ハードウェア、ソフトウェア、及びファームウェアは、上で述べたとおり、ホスト又は装置において行われる場合がある。図面にのみ存在する装置におけるステートマシンの説明は、非制限的なものである。図面において単一機能ブロックにおいて実施される処理は、単一又は複数のプロセッサにおいて実施される場合がある。同様に、図面において複数の機能ブロックにおいて実施される処理は、単一又は複数のプロセッサにおいて実施される場合がある。
Claims (20)
- ホストシステムと装置との間において、プロトコルを使用して要求を伝送する方法であって、
前記ホスト及び前記装置において、前記要求のための最大転送サイズを協議するステップと、
前記装置における受信バッファを、前記最大転送サイズよりも小さい縮小されたサイズにセットするステップと、
前記ホストが前記要求に対し、転送終了インジケータを送信するか否かを判断するステップと、
前記ホストが転送終了インジケータを送信するか否かの判断に応答し、前記受信バッファのための前記縮小されたサイズを維持するステップと
を含む方法。 - 前記受信バッファの前記縮小されたサイズは、単一要求を保持する、請求項1に記載の方法。
- 複数の要求を保持するように要求キューを拡大するステップ
をさらに含む、請求項1に記載の方法。 - 転送は、固定サイズのパケット、前記固定サイズのパケットよりも小さいショートパケット、ゼロデータ長パケット、及びそれらの組み合わせからなる一群の中から選択されたパケットを含む、請求項1に記載の方法。
- 前記受信バッファのための前記縮小されたサイズよりも大きい転送サイズをヘッダに有する転送を受信するステップと、
前記受信バッファを前記最大転送サイズにセットするステップと
をさらに含む、請求項4に記載の方法。 - 前記プロトコルは、ユニバーサル・シリアル・バス・プロトコルを含む、請求項1に記載の方法。
- 前記要求は、ネットワーク・コントロール・モデル・トランスファ・ブロックを含む、請求項6に記載の方法。
- 前記受信バッファのための前記縮小されたサイズ以下の転送サイズをヘッダに有する転送を受信するステップと、
ゼロデータ長の次の転送を受信するステップと、
前記受信バッファを前記最大転送サイズにセットするステップと
をさらに含む、請求項1に記載の方法。 - 前記受信バッファのための前記縮小されたサイズ以下の転送サイズをヘッダに有する転送を受信するステップと、
ゼロよりも大きい転送サイズをヘッダに有する次の転送を受信するステップと、
前記受信バッファのための前記縮小されたサイズを維持するステップと
をさらに含む、請求項1に記載の方法。 - プロトコルを使用して、シリアルバスを介して要求を第2の装置へ伝送する第1の装置であって、
シリアルバス・インタフェースと、
コントローラと
を含み、前記コントローラは、
当該第1の装置において、前記要求のための最大転送サイズを協議し、
当該第1の装置における受信バッファを、前記最大転送サイズよりも小さい縮小されたサイズにセットし、
前記第2の装置が前記要求に対し、転送終了インジケータを送信するか否かを判断し、
前記第2の装置が転送終了インジケータを送信するか否かの判断に応答し、前記受信バッファのための前記縮小されたサイズを維持するように構成される、第1の装置。 - 前記縮小されたサイズの受信バッファは、単一要求を保持する、請求項10に記載の第1の装置。
- 前記コントローラは、複数の要求を保持するように要求キューを拡大するようにさらに構成される、請求項10に記載の第1の装置。
- 前記コントローラは、
前記受信バッファのための前記縮小されたサイズよりも大きな転送サイズをヘッダに有する転送を受信し、
前記受信バッファを前記最大転送サイズにセットするようにさらに構成される、請求項10に記載の第1の装置。 - 前記プロトコルは、ユニバーサル・シリアル・バス・プロトコルを含み、
前記要求は、ネットワーク・コントロール・モデル・トランスファ・ブロックを含む、請求項10に記載の第1の装置。 - 前記コントローラは、
前記受信バッファのための前記縮小されたサイズ以下の転送サイズをヘッダに有する転送を受信し、
ゼロデータ長の次の転送を受信し、
前記受信バッファを前記最大転送サイズにセットするようにさらに構成される、請求項10に記載の第1の装置。 - 前記コントローラは、
前記受信バッファのための前記縮小されたサイズ以下の転送サイズをヘッダに有する転送を受信し、
ゼロよりも大きい転送サイズをヘッダに有する転送を受信し、
前記受信バッファのための前記縮小されたサイズを維持するようにさらに構成される、請求項10に記載の第1の装置。 - 前記コントローラは、
前記受信バッファが空であるか否かを判断し、
前記受信バッファが空であるか否かの判断に応答し、前記受信バッファのための前記縮小されたサイズを維持するようにさらに構成される、請求項10に記載の第1の装置。 - ユニバーサル・シリアル・バス・プロトコルを使用して、要求を伝送する方法であって、
前記要求のための最大転送サイズを協議するステップと、
受信バッファを、前記最大転送サイズよりも小さい縮小されたサイズにセットするステップと、
前記縮小されたサイズ以下の転送サイズを有する転送を受信するステップと、
前記受信バッファが空であるか否かを判断するステップと、
前記受信バッファが空であるか否かの判断に応答し、前記受信バッファのための前記縮小されたサイズを維持するステップと
を含む方法。 - ユニバーサル・シリアル・バス・プロトコルを使用して、要求を伝送する方法であって、
前記要求のための最大転送サイズを協議するステップと、
前記装置における受信バッファを、前記最大転送サイズよりも小さい縮小されたサイズにセットするステップと、
前記縮小されたサイズ以下の転送サイズを有する転送を受信するステップと、
ゼロデータ長の転送を受信するステップと、
前記受信バッファを前記最大転送サイズにセットするステップと
を含む方法。 - プロセッサにより実行するための実行可能プログラム命令が格納された非一時的なコンピュータ読取可能媒体であって、
装置において、ユニバーサル・シリアル・バス・プロトコルを使用した要求のための最大転送サイズを協議するプログラム命令と、
受信バッファを、前記最大転送サイズよりも小さい縮小されたサイズにセットするプログラム命令と、
前記縮小されたサイズ以下の転送サイズを有する転送を受信するプログラム命令と、
前記受信バッファが空であるか否かを判断するプログラム命令と、
前記受信バッファが空であるか否かの判断に応答し、前記受信バッファのための前記縮小されたサイズを維持するプログラム命令と
を含む、非一時的なコンピュータ読取可能媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161503285P | 2011-06-30 | 2011-06-30 | |
US61/503,285 | 2011-06-30 | ||
PCT/US2012/000305 WO2013002839A1 (en) | 2011-06-30 | 2012-06-29 | Network control model driver |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2014527218A true JP2014527218A (ja) | 2014-10-09 |
Family
ID=46516818
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014518546A Pending JP2014527218A (ja) | 2011-06-30 | 2012-06-29 | ネットワーク・コントロール・モデル・ドライバ |
Country Status (4)
Country | Link |
---|---|
US (1) | US8904062B2 (ja) |
EP (1) | EP2726992B1 (ja) |
JP (1) | JP2014527218A (ja) |
WO (1) | WO2013002839A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2891001B1 (en) | 2012-08-28 | 2016-04-06 | CooperVision International Holding Company, LP | Contact lenses made with hema-compatible polysiloxane macromers |
US10261569B2 (en) * | 2015-05-01 | 2019-04-16 | Qualcomm Incorporated | Universal serial bus (USB) host and client devices for supporting scheduled low-power operations |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999063448A1 (en) * | 1998-06-01 | 1999-12-09 | Advanced Micro Devices, Inc. | Universal serial bus controller with a direct memory access mode |
JP2011003162A (ja) * | 2009-06-22 | 2011-01-06 | Ricoh Co Ltd | Usbデバイス、画像処理装置、usb転送制御方法、usb転送制御プログラム及び記録媒体 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6842797B1 (en) * | 2000-10-10 | 2005-01-11 | 3Com Corporation | USB adapter for burst mode communications |
US7035948B1 (en) * | 2001-03-19 | 2006-04-25 | Transdimension, Inc. | System and method for USB controllers |
JP2004029898A (ja) * | 2002-06-21 | 2004-01-29 | Renesas Technology Corp | データプロセッサ |
KR100557215B1 (ko) * | 2003-08-19 | 2006-03-10 | 삼성전자주식회사 | 유에스비 디바이스의 엔드포인트 제어 장치 및 그 방법 |
CN101237445B (zh) * | 2007-01-30 | 2013-01-02 | 世意法(北京)半导体研发有限责任公司 | 缓冲器管理方法和用于缓冲器管理及封装wusb分组的设备 |
-
2012
- 2012-06-29 JP JP2014518546A patent/JP2014527218A/ja active Pending
- 2012-06-29 WO PCT/US2012/000305 patent/WO2013002839A1/en active Application Filing
- 2012-06-29 US US13/537,158 patent/US8904062B2/en active Active
- 2012-06-29 EP EP20120735969 patent/EP2726992B1/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999063448A1 (en) * | 1998-06-01 | 1999-12-09 | Advanced Micro Devices, Inc. | Universal serial bus controller with a direct memory access mode |
JP2011003162A (ja) * | 2009-06-22 | 2011-01-06 | Ricoh Co Ltd | Usbデバイス、画像処理装置、usb転送制御方法、usb転送制御プログラム及び記録媒体 |
Also Published As
Publication number | Publication date |
---|---|
WO2013002839A1 (en) | 2013-01-03 |
EP2726992B1 (en) | 2015-04-29 |
EP2726992A1 (en) | 2014-05-07 |
US20130007313A1 (en) | 2013-01-03 |
US8904062B2 (en) | 2014-12-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3276481B1 (en) | Nvme networked storage implementation method, terminal, server, and system | |
US8832328B2 (en) | Data redirection for universal serial bus devices | |
EP2530599B1 (en) | Method and mobile terminal for realizing audio transmission | |
EP3255553B1 (en) | Transmission control method and device for direct memory access | |
US9875206B2 (en) | Methods and devices for extending USB 3.0-compliant communication | |
US9832086B2 (en) | Initiator apparatus, target apparatus, communication system, timeout detection method, and timeout detection program | |
WO2012100724A1 (zh) | 在pcie总线上传输报文的方法、设备和系统 | |
US20130185472A1 (en) | Techniques for improving throughput and performance of a distributed interconnect peripheral bus | |
JP2007088775A (ja) | 無線通信システム、無線通信装置及び方法 | |
CN110311966B (zh) | 融合PC系统和android系统的双系统通信方法和系统 | |
US7613785B2 (en) | Decreased response time for peer-to-peer remote copy write operation | |
US8423680B2 (en) | System, method, and computer program product for inserting a gap in information sent from a drive to a host device | |
CN104461978B (zh) | 单向数据传输的方法及装置 | |
KR20120072134A (ko) | 가상 데스크톱 가속 장치 및 방법 | |
JP2014527218A (ja) | ネットワーク・コントロール・モデル・ドライバ | |
CN111277600B (zh) | 数据传输方法及装置 | |
CN111404842B (zh) | 数据传输方法、装置及计算机存储介质 | |
CN109800202B (zh) | 一种基于pcie的数据传输系统、方法及装置 | |
US7853739B1 (en) | Method and system for transmitting USB communication | |
US8806082B2 (en) | Direct memory access device for multi-core system and operating method of the same | |
WO2016080427A1 (ja) | 情報処理システム、情報処理方法、サーバ、情報処理装置、通信端末およびそれらの制御方法と制御プログラム | |
US20140347986A1 (en) | Wireless communication device, wireless communication method, and wireless communication control program | |
US20120246263A1 (en) | Data transfer apparatus, data transfer method, and information processing apparatus | |
CN114328317B (zh) | 一种提升存储系统通信性能的方法、装置及介质 | |
TWI724670B (zh) | 容錯系統及其控制方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150515 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160531 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20170131 |