USBデバイスが480 MBit / sより遅いのはなぜですか
動機 480 MBit / sの信号速度で、USB 2.0デバイスは最大60 MB / sでデータを送信できるはずです。しかし、今日のデバイスは[ Wiki:USB ] を読んでいる間、30-42 MB / sに制限されているようです。これは30%のオーバーヘッドです。 USB 2.0は、10年以上にわたって外部デバイスの事実上の標準となっています。USBインターフェースの初期から最も重要なアプリケーションの1つは、ポータブルストレージです。残念ながら、USB 2.0はこれらの帯域幅を必要とするアプリケーションの速度を制限するボトルネックであり、たとえば今日のHDDは90 MB / s以上の連続読み取りが可能です。市場での長いプレゼンスとより高い帯域幅に対する絶え間ないニーズを考慮すると、USB 2.0エコシステムは長年にわたって最適化され、理論上の限界に近い読み取りパフォーマンスに達すると予想されるはずです。 この場合の理論上の最大帯域幅はどれくらいですか?すべてのプロトコルにはUSBを含むオーバーヘッドがあり、公式のUSB 2.0規格によると53.248 MB / s [ 2、表5-10]です。つまり、理論的には、今日のUSB 2.0デバイスは25%高速になる可能性があります。 分析 この問題の根本に近い場所に到達するために、次の分析では、ストレージデバイスからシーケンシャルデータを読み取り中にバス上で何が起こっているかを示します。プロトコルはレイヤーごとに分類されており、バルクアップストリームデバイスの最大理論値が53.248 MB / sである理由について特に興味があります。最後に、追加のオーバーヘッドのヒントを提供する可能性のある分析の制限について説明します。 ノート この質問では、10進数のプレフィックスのみが使用されます。 USB 2.0ホストは、複数のデバイス(ハブ経由)およびデバイスごとに複数のエンドポイントを処理できます。エンドポイントはさまざまな転送モードで動作できます。ホストに直接接続され、高速モードでアップストリームバルクエンドポイントを介してフルパケットを継続的に送信できる単一のデバイスに分析を制限します。 フレーミング USB高速通信は、固定フレーム構造で同期されます。各フレームの長さは125 usで、フレーム開始パケット(SOF)で始まり、フレーム終了シーケンス(EOF)によって制限されます。各パケットはSYNCで始まり、EOF(End-Of-Packet)で終わります。これらのシーケンスは、わかりやすくするために図に追加されています。EOPはサイズが異なり、パケットデータに依存します。SOFの場合、常に5バイトです。 新しいタブで画像を開くと、拡大版が表示されます。 取引 USBはマスター駆動型のプロトコルであり、各トランザクションはホストによって開始されます。SOFとEOFの間のタイムスロットは、USBトランザクションに使用できます。ただし、SOFとEOFのタイミングは非常に厳密であり、ホストは空きタイムスロット内で完全に完了できるトランザクションのみを開始します。 関心のあるトランザクションは、成功したバルクINトランザクションです。トランザクションはトッケンパケットINで始まり、ホストはデータパケットDATA0 / DATA1を待機し、ハンドシェイクパケットACKで送信を確認します。これらすべてのパケットのEOPは、パケットデータに応じて1〜8ビットです。ここでは最悪のケースを想定しました。 これら3つのパケットのそれぞれの間で、待ち時間を考慮する必要があります。これらは、ホストからのINパケットの最後のビットとデバイスのDATA0パケットの最初のビットの間、DATA0パケットの最後のビットとACKパケットの最初のビットの間にあります。ホストはACKを送信した直後に次のINの送信を開始できるため、これ以上の遅延を考慮する必要はありません。ケーブル伝送時間は最大18 nsと定義されています。 …