32

まず、USBについてはよくわかりませんので、質問が間違っている場合は事前にお詫び申し上げます。

USB 2.0では、ポーリング間隔は0.125ミリ秒であったため、ホストがデバイスから一部のデータを読み取るための可能な限り最高の遅延は0.125ミリ秒でした。USB 3.0デバイスの遅延を減らすことを望んでいますが、最小遅延が何であるかを知るのは難しいと感じています。USB 3.0の仕様では、「USB 2.0スタイルのポーリングは非同期通知に置き換えられました」と記載されています。これは、0.125ミリ秒のポーリング間隔が制限ではなくなったことを意味します。

USB 3.0 SSDのベンチマークをいくつか見つけました。これは、データをデバイスから0.125ミリ秒弱で読み取ることができ、ホストOSとデバイスのフラッシュコントローラーで費やされたすべての時間を含みます。

http://www.guru3d.com/articles_pages/ocz_enyo_usb_3_portable_ssd_review,8.html

誰かが可能な限り最小のレイテンシーを教えてもらえますか?理論的な答えは問題ありません。LinuxおよびWindowsUSBスタックのさまざまなバージョンの実際的な制限を含む答えは素晴らしいでしょう。

「何を達成しようとしているのか教えてください」という質問に答えるために、私は会社が設計しているASICのデバッグインターフェイスを作成しています。つまり、PCはデバッグドングルを介してASICの1つに接続します。考えられる使用例の1つは、ASICハードウェアが単純なブレークポイントのみを実装する場合に条件付きブレークポイントを実装することです。そのためには、単純なブレークポイントがいつヒットしたかを判断し、条件を評価する必要があります。falseの場合は、プロセッサを再度実行するように設定します。単純なブレークポイントは、条件が真になる前に何百万回もヒットする可能性があります。FPGAまたは市販のUSB3.0対応マイクロコントローラーにデバッグドングルを実装する場合があります。

4

4 に答える 4

23

私自身の質問に答える...

私は、この質問がUSB3.0のポイントを見逃していることに気づきました。2.0とは異なり、共有バスシステムではありません。代わりに、ホストと各デバイス間のポイントツーポイントリンクを使用します(私は単純化しすぎていますが、要点は真実です)。USB 2.0では、125 usのポーリング間隔は、バスがデバイス間で時分割多重化される方法にとって重要でした。ただし、3.0はポイントツーポイントリンクを使用するため、多重化を行う必要がなく、ポーリング間隔は存在しなくなります。その結果、パケット配信の遅延はUSB2.0よりもはるかに短くなります。

Cypress FX-3開発キットを使用した実験では、Windowsアプリケーションからデバイスへの平均往復を取得し、平均30usの遅延で戻るのは簡単であることがわかりまし。その時間の大部分は、ユーザースペースからカーネルスペースモードへの切り替えやドライバー内のDPCレイテンシーなど、さまざまなOSの遅延に費やされていると思います。

于 2014-11-13T21:43:48.370 に答える
7

私はあなたのためにいくつかのリソースを持っています、私がダウンロードしたばかりの完全な仕様です... USB3用に圧縮されたいくつかのPDF、そしてここに58,59ページからの短い抜粋があります(USB 3_r1.0_06_06_2011.pdf) :

USB 2.0は、SOF/uSOFを1ms/125μsの固定間隔で送信します。デバイスドライバは、ホストおよびシステムソフトウェアの実装に応じて、わずかな有限の調整で間隔を変更する場合があります。USB 3.0は、デバイスがバス間隔調整メッセージを送信するメカニズムを追加します。このメッセージは、ホストが125μsのバス間隔を最大+/-13.333μsに調整するために使用します。

さらに、ホストは、バス間隔の境界から緩和されたタイミングウィンドウ内でアイソクロナスタイムスタンプパケット(ITP)を送信する場合があります。

これは、レイテンシーの計算を扱う、面白そうなもう1つのリソースです。

特にリアルタイムオペレーティングシステムではない場合、オペレーティングシステムの遅延の問題について良い点を指摘します。

SuperUserもチェックすることをお勧めします。誰かが他のアイデアを持っているかもしれません。乾杯

于 2013-01-12T19:14:26.407 に答える
2

私はマークされた答えに異議を唱えます。

Windowsでは、USBを介して指定されたラウンドトリップ遅延を達成する方法はありません。SuperSpeed(3.0)かどうか。ドキュメントには次のように記載されています。

The number of isochronous packets must be a multiple of the number of packets per frame.

https://docs.microsoft.com/en-us/windows-hardware/drivers/usbcon/transfer-data-to-isochronous-endpoints

フレームあたりのパケット数はによって与えられbInterval、ポーリング間隔も決定します。たとえば、microframe(125usec)ごとに転送を実行する場合は、URB(USBリクエストブロック)ごとに8つの転送を送信する必要があります。これは、 1msのスケジューリングサービス間隔を意味します。

それ以外のものは、独自のカーネルモードドライバを必要とするか、仕様外です。

RT Linuxでは、2 *125usec+オーバーヘッドのラウンドトリップを確認できます。

于 2020-01-15T08:59:55.083 に答える
1

Embedded.comからの抜粋:「USB3.0とUSB 2.0:忙しいエンジニアのためのクイックリファレンスの概要」

通信アーキテクチャの違い USB2.0は、データトランザクションをホストが開始する必要がある通信アーキテクチャを採用しています。ホストは頻繁にデバイスをポーリングしてデータを要求し、デバイスはホストから要求された後にのみデータを送信できます。ポーリング頻度が高いと、消費電力が増えるだけでなく、デバイスがホストによってポーリングされたときにのみデータを送信できるため、送信遅延が増加します。USB 3.0は、この通信モデルを改善し、ポーリングを最小限に抑え、デバイスが準備ができたらすぐにデータを送信できるようにすることで、送信遅延を削減します。

..。

タイムスタンプの機能強化

精度の範囲が0〜125usのUSB2.0カメラとは異なり、USB 3.0カメラからのタイムスタンプはより正確であり、FireWireカメラの1394サイクルタイマーの精度を模倣しています。

..。

USB 3.0(または超高速USB)は、他の仕様の主要な制限を克服し、これらすべての制限を6倍(IEEE 1394b経由)から9倍(USB 2.0経由)倍の帯域幅、より優れたエラー管理、より高い電源などで克服します。より低いレイテンシーとジッター時間

PSはまた、USB 3.0の「より長いケーブル長」についても述べていますが、他の段落はこれと矛盾しており、USB 2.0の場合は最大5m、USB3.0の場合は最大3mと述べています。

于 2018-11-13T20:10:05.147 に答える