USBハブはパフォーマンスに影響しますか?


24

私は私が持つ最大のスループットとレイテンシたい二つのデバイス持っている(MIDIの例えばドラムやMIDIキーボード。)

ハブを介して両方を同じUSBポートに接続すると、最大データ転送レートがそれぞれの1/2に事実上制限されますか?

はいと仮定していますが、USBハブにハンドシェイクと優先順位を与えるプロトコルが利用できるかどうかは知りませんでした(たとえば、データの長いバッファを備えたデバイスが最初に通信できるようにします)。

回答:


17

はい。USBハブを介して接続されたすべてのデバイスは、そのハブで利用可能な帯域幅を共有します。ただし、具体的にはそれぞれ50%ではありません。コンピューターの USB 2.0ハブごとに480 Mbit / sで動作します。それはどういう意味ですか?コンピューターにはUSBハブが組み込まれています。はい、すべてのポートが個別のエンティティではありません。ほとんどの場合、2つのUSBポートが上下に積み重なっているのが見えると、それらは内部的にハブ上にあります。

これは、ラップトップの2つのポートが並んでいる場合にも適用されます。したがって、2つのハブを隣り合わせのUSBポートに接続し、データ転送速度の高いデバイスを接続するためのUSBポートがたくさんあるとは思わないでください。

本当に必要なことは、接続しようとしているデバイスの予想されるデータ転送速度を調べることです。MIDIドラムは低転送レートと見なされ、キーボードは低転送レートまたは中転送レートになると予想されます。これは、USBサウンドカードのようなものと比較されるでしょう...ハブを他のものと共有したくないでしょう。

給電ハブを使用すると、各デバイスは必要な電力を得ることができますが、給電されていないハブを使用すると、すべてのデバイスがホストUSBポートが出力できる電力をすべて共有します。したがって、考慮すべきこともあります。

おそらく既にご存知でしょうが、レイテンシーの問題については、ASIO4ALLドライバーが潜在的な問題のすべてではないとしてもほとんどを解決します。それをそこに置くだけです。


ASIO4ALLの場合は+1。ロックスミスで私のラグを殺すためにそれを使用しました。ロックスミスコミュニティはこれを知っているのだろうか。
キャメルブラシ14年

USBオーディオコントローラー自体にUSBコントローラー全体がない場合、USBオーディオコントローラーはスループットのボトルネックになりますか?少なくとも2チャンネルオーディオ用のハブで動作するように設計する必要があると思います。
ジグガンジャー

28

実際、私は最初の回答が間違いなく受け入れられ、声明を支持する事実なしに支持されたことに驚いています。MIDIドラムとMIDIキーボードはどちらもほぼ確実に低速のデバイスであるため、高速ハブからの帯域幅の消費量は最大で1%未満です(2 * 1 Mbit / s / 480 Mbit / s * 100%= 0.4% )。

実際、ハブが存在するとレイテンシが発生します。これは、低速ハブの場合は数十マイクロ秒、高速ハブの場合は数百ナノ秒です。後者の場合、MIDIソフトウェアによって導入されたレイテンシを追加すると、このレイテンシはなくなります。

また、USBプロトコルは転送の優先順位をサポートしています(割り込み転送を参照)。これにより、MIDIデバイスは、転送速度や待ち時間に大きな影響を与えずに、同じバス上のハードドライブまたはスキャナーと共存できます。ただし、特にMIDIデバイスに精通していないため、声明は出しません。


15

簡単な答えは、このアプリケーション用のMulti-TTハブが本当に必要ということです。ここでは、2つ以上のUSBデバイスが12メガビット/秒の可能性があります。これらのハブを見つけるには、Amazon、Newegg、または他のサイトで「Multi-TT」を検索してください。

残念ながら、この重要な技術的詳細はほとんど言及されていません。ほとんどのハブは、安価なシングルTTデザインを使用しています。優れたマルチプルTTのものは、この機能を備えていると宣伝されることはほとんどなく、パッケージにマークされていません。残念なことに、ほとんどの人はおそらくTTを聞いたことがないでしょう。そのため、マーケターはどのデザインのハブを使用するかわからないでしょう。

Windowsデバイスマネージャーを使用して、ハブにこの機能があるかどうかを確認できます。[詳細設定]タブで「ハブには複数のTTがあります」という単語を探します。

デバイスマネージャーのスクリーンショット

Linuxでは、ハブタイプは「lsusb -v | grep TT」で確認できます。AppleがXcode開発ツールで公開している「USB Prober」ユーティリティを除き、Macintoshでチェックする簡単な方法を知りません。

TTはTransaction Translatorの略です。詳細は複雑で、www.usb.orgから無料でダウンロードできるUSB仕様の第11章に完全に文書化されています。しかし、簡単に言えば、TTはPCからの480 MBit /秒から、より遅い12または1.5 MBit /秒の速度に変換します。

通常、これらの楽器を演奏すると、コントローラーがMIDIメッセージを生成してメモリバッファーにパックし、PCがデータを要求する瞬間を待ちます。PCが直接接続すると、INトークンと呼ばれるメッセージが機器に送信されます。機器は、データパケットまたはデータなしを示すNAKトークンの2つの方法でINトークンに応答できます。PCはこれらのINトークンを非常に高速で送信するため、音楽イベントはMIDIメッセージとしてほぼ瞬時に配信されます。

ただし、12 MBit /秒のMIDIデバイスがUSB 2.0 HUBを介して接続すると、480 MBit /秒ですべて異なる通信が発生します。PCは、実際にはハブ内のTransaction Translatorと通信します。2つのメッセージを送信します。最初に、SSPLIT(スプリットトランザクションの開始)メッセージがTTに送信されます。 TTがビジーでない場合、確認応答を送信します。その後、TTは低速の12 MBit /秒の速度でINトークンをMIDIキーボードに送信します。一方、PCは480 Mbit /秒で他のデバイスと通信できます。MIDIキーボードは、INトークンがPCから直接来たのか、ハブのTTから来たのかを判断できません。PCに接続されている場合とまったく同じことを行います。ハブ内のTTは、NAKまたはDATA応答を受信します。これが進行中に、PCはハブのTTにCSPLIT(Complete Split Transaction)メッセージの送信を開始します。TTは、特別なNYETトークンで応答します。TTは、12 Mbit /秒での通信、またはキーボードからのNAKまたはDATAの通信でまだビジーです。

MIDIキーボードとMIDIドラムの両方を接続している場合、PCがSSPLITメッセージを送信してTTとドラムとの通信を要求したが、TTはすでにキーボードとの通信に忙しい場合はどうなりますか?1つのTTのみで、ハブは12 MBit /秒でIN + DATAの実行でビジーであるため、新しいSSPLIT要求に対してNYETに応答できます。あなたは間違いなくそのシナリオを望まない!

複数のTTハブには、すべてのダウンストリームポート(デバイスを接続するポート)に専用のTTがあります。複数のTTを使用すると、他のTTが他のダウンストリームデバイスとの通信で忙しい場合でも、ハブは常にSSPLIT要求を受け入れることができます。 ハブには異なる速度の間で一度に複数のメッセージを変換する機能が制限されているため、TTが1つしかない場合、480 MBit / secの帯域幅が十分にあるにもかかわらず、PCが待機する場合があります。

この説明では、TTが処理する多くの重要なUSBタイミングの問題について説明しましたが、重要な点は、USB 2.0ハブが2つの明確に異なる設計を使用できることです。あなたは本当に安価なシングルTTハブを避けたいです。

USB 3.0および3.1の速度は、これらの回答のどこかで言及されました。ただし、ハブのTTは、5または10ギガビットの速度と480、12または1.5の速度の間で変換することはありません。代わりに、USB 3.0および3.1ハブはハブのペアとして動作します。ギガビット信号の新しいUSBコネクタには専用のピンがあり、5または10ギガビット/秒の速度でのみ動作するハブに接続します。元のピンで480 Mbit /秒の同時通信が発生するため、12および1.5 MBit /秒のデバイスはTTによって480 Mbit /秒に変換されますが、5または10 Gbit /秒には変換されません。

また、他の場所で言及されている「低速」は、USB専門用語では技術的に1.5メガビット/秒を意味しますが、カジュアルな会話では1.5または12メガビット/秒を意味します。12 Mbit /秒は、USB用語では「フルスピード」と呼ばれます。技術的には「オーディオクラス仕様」の一部であるUSB MIDIプロトコルは、「バルク」プロトコルを使用します(別の回答に記載されている割り込みプロトコルではありません)。USB仕様では、1.5メガビット/秒の速度のバルク転送プロトコルは許可されていません。そのため、USB MIDIデバイスがUSB速度に非常に大きく違反しない限り、常に少なくとも12メガビット/秒の速度になります。USB MIDIは480メガビット/秒の速度である場合があり、その場合、TTは適用されません。しかし、今日のUSB MIDI製品の大部分は、依然として12メガビット/秒の速度です。

あなたがそう本当にを確認するには、パフォーマンスを最大化することを計画している場合、あなたのUSBハブは、マルチTTタイプです。


画像で帯域幅を消費しているデバイスを示すビューをどのように取得しますか?私のプロパティにはそのタブさえありません。
user5389726598465

3

現実的には、ハブを使用して単一のUSBポートを共有し、接続するデバイスの数を増やすことは、すべてのデバイスを同時に使用しても、おそらくそれほど重要ではありません。ほとんどのデバイスは、一度に多くのデータ転送を使用しません。USB 3.0または3.1ポートを使用している場合、それぞれの懸念はさらに少なくなります。これらはそれぞれ2.0の10倍および20倍高速ですが、同時にデータを送受信でき、より多くの電力を提供し、2.0で動作しますデバイス。

前述のように、ポートに接続されているすべてのデバイスに十分な電力が供給されている限り、問題は発生しません。


1

USB 3.0 HUBに複数のデバイスが接続されたときに速度が低下する例としての私の場合。

480GB SSDを搭載したSataIIIからUSB3.1 Gen2 Type Cエンクロージャーまでの2つの同一セットがあります。

SSDをSataIIIポートに配置すると、Linuxのddコマンドは500MiB / s以上で読み取ります。

SataIII to USB 3.1 Gen2 Type CエンクロージャにSSDを入れた場合、Linuxのddコマンドは、使用する2つのセットのいずれに関係なく、413MiB / s近くで読み取ります。

奇妙なことは、両方のエンクロージャーをUSB 3.0に接続し、Linuxに両方から読み取るように要求すると(LVMストライプ、RAID0または2つの同時ddコマンドに関係なく)、2x150 = 300 MiB / sでのみ読み取ります。

そのため、両方を接続すると、413-300 = 113MiB / sの速度に近づきます。

言い換えると:

  • 1つのSSDをUSB 3 HUBに接続すると、413MiB / sの読み取りが得られます
  • USB 3 HUBに2つのSSD、150 + 150 = 300MiB / sの読み取りを取得
  • USB 3ハブへの2つのSSDが413/2 = 206MiB / s近くになると予想される読み取り(SSDあたり)ですが、想定される200MiB / sではなく、それぞれ約150MiB / sです。

問題は、USB 3 Hubプロトコルにあり、両方のドライブにデータ帯域幅を切り替えることにあると考え始めます。これにより、大きなオーバーヘッドが追加されます。

そのため、複数のUSBハブが同時に接続されている場合、手元にあるUSB 3ハブが1つのSSDを最大帯域幅よりもはるかに遅くすることを確認できます。

さらに、1つのSSDと非常に遅い(50MiB / s未満)USB 3.0スティックでテストしたところ、USBハブ3の読み取り速度の合計は263MiB / sに低下するため、組み合わせ読み取りのゆるみは約100MiB / sであることが確認できます。他のUSBストレージデバイスを接続します。

さらに、最悪の場合、マウス(またはキーボード)を接続すると、SSDの読み取り速度も313MiB / s近くになり、マウス/キーボードを外すとSSDの読み取り速度が413MiB / sに戻ります。 sマウスが接続されている(使用されている)ために読み取り速度が失われる。マウスを動かさないと、読み取り速度は413MiB / sに戻ります。

そのため、HUBは、他の種類のデバイスを接続したとしても、1つのデバイスだけが接続されていない(使用されている)場合、結合された転送速度で大幅な読み取り速度の低下(100MiB / s近く)を引き起こしています同時に動作するのは1つだけではなく、smee時に1つのデバイスのみを使用する場合よりも100MiB / s近くの読み取り速度の合計が低くなります。

また、3つのデバイス(SSD +マウス+キーボード)でテストしましたが、同じ速度(100MiB / s程度)に近いままです。

1つのSSDのみから読み取り、両方を接続している場合、413MiB / sに近づきます。

USB 3.0ハブの価格は20ユーロ前後で、安いものではありませんでした。

結論:複数のデバイスが同時に接続(および転送)されると、USB HUB 3.0は多くのMiB / s転送速度を失います。おそらく、転送時間をデバイスの数で割る(かなり摩耗する)か、デバイスのサイクリングで大きなオーバーヘッドが発生するなどの理由です。

これが誰かが問題を特定するのに役立つことを願っています、すべてのテストは、status = progress、1メガバイトのブロックサイズ、1000に等しいカウント(合計1GiB)、destデバイス/ dev / null。

私は別のUSB 3.x HUBを購入することを計画しています(金持ちになるかどうか)、今回は3.1 Gen 2で同じことが起こるか、ファームウェアアルゴリズムが貧弱なブランドであるかどうかを確認します。


SSDは問題のデバイスとは大きく異なります。各SSDは、USB 3ポートの帯域幅以上でデータを転送しようとしています。そのため、衝突だけで多くの帯域幅を失います。
fixer1234

1

750GB 5400rpmのハードドライブを搭載したラップトップコンピューターと8GBの外付けハードドライブを直接接続すると、USBハブを使用した場合よりも転送速度が実際に遅くなります。たとえば、最近4つの映画をコピーして貼り付け、最大約120GBのデータを追加しました。これが何が起こったのかです。

  1. 最初に、4つの映画をコピーしてラップトップのハードドライブに最大120 GBのデータを追加し、それを1つの8 GBの外部ハードドライブに貼り付けました。データ転送速度は約30メガバイトであったため、転送には約80分かかりました。データ転送速度には、20〜35 MBのスパイクがありました。

  2. 次に、まったく同じモデルである他の8GB外付けハードドライブを接続しました。今回は、4ポートUSB 3.0ハブを使用しました。今回は、データ転送速度がはるかに高速でした-時には90mbsを超えました。データ転送速度には、50MBから90MBを超えるスパイクがありました。データの転送にかかった時間はわずか30分でした。

  3. 3番目に、実験として、USB 3.0ハブを介して両方の8GB外付けハードドライブを同時に接続しました。120 GBのデータを含む4つの映画すべてを1つのハードドライブから別のハードドライブにコピーしました。今回は、転送がこれまでになく高速になりました。データ転送速度は約150 mbsで、転送速度にスパイクはまったくありませんでした。それはずっと150mbsの安定したラインでした。

私は他の大きなデータ転送で実験をしました。何らかの理由で、外部ハードドライブへのUSB 3.0の直接接続は、USB 3.0ハブが含まれる場合よりもはるかに遅くなります。...誰がこれがなぜなのか知っていますか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.