Beeinträchtigt ein USB-Hub die Leistung?


24

Ich habe zwei Geräte, mit denen ich maximalen Durchsatz und maximale Latenz erreichen möchte ( z. B. MIDI- Drums und MIDI-Keyboard).

Würde die Verbindung beider Geräte über einen Hub mit demselben USB-Anschluss die maximale Datenübertragungsrate auf jeweils die Hälfte begrenzen?

Ich gehe davon aus, dass dies der Fall ist, aber ich wusste nicht, ob für USB-Hubs ein Protokoll für Handshake und Prioritätsvergabe verfügbar ist (lassen Sie beispielsweise das Gerät mit dem länger aufgebauten Datenpuffer zuerst kommunizieren).

Antworten:


17

Ja. Alle Geräte, die über einen USB-Hub angeschlossen sind, teilen sich die für diesen Hub verfügbare Bandbreite. Nicht speziell bei jeweils 50%. Pro USB 2.0-Hub am Computer stehen 480 Mbit / s zur Verfügung . Was meine ich damit Auf Ihrem Computer sind USB-Hubs integriert. Ja, nicht jeder Port ist eine individuelle Einheit. In den meisten Fällen befinden sich zwei übereinander gestapelte USB-Anschlüsse intern an einem Hub.

Dies gilt auch für zwei Anschlüsse nebeneinander auf Laptops. Denken Sie also nicht, dass Sie einfach zwei Hubs an USB-Ports anschließen können, die nebeneinander liegen, und dass Sie VIELE USB-Ports haben, an die Geräte mit hoher Datenübertragungsrate angeschlossen werden können.

Was Sie WIRKLICH tun müssen, ist die erwarteten Datenübertragungsraten der Geräte zu überprüfen, die Sie verbinden möchten. Ich würde erwarten, dass die MIDI-Drums eine niedrige Übertragungsrate haben, während das Keyboard eine niedrige oder mittlere Übertragungsrate hat. Dies ist vergleichbar mit einer USB-Soundkarte, mit der Sie keinen Hub gemeinsam nutzen möchten.

Mit einem Hub mit eigener Stromversorgung erhält jedes Gerät die benötigte Energie, während bei einem Hub ohne eigene Stromversorgung alle Geräte die Energie gemeinsam nutzen, die der USB-Anschluss des Hosts liefern kann. Also gibt es das auch zu beachten.

Sie wissen es höchstwahrscheinlich bereits, aber bei Latenzproblemen werden ASIO4ALL- Treiber die meisten, wenn nicht alle potenziellen Probleme beheben . Stell das einfach da raus.


+1 für ASIO4ALL. habe es benutzt, um meinen Rückstand in Rocksmith zu beseitigen. frage mich, ob die Rocksmith-Community davon weiß!
Kamelbürste

Sind Sie sicher, dass ein USB-Audiocontroller einen Durchsatzengpass erleidet, wenn er keinen vollständigen USB-Controller für sich alleine hat? Ich denke, sie sollten so konzipiert sein, dass sie an Hubs funktionieren, zumindest für 2-Kanal-Audio.
Jiggunjer

28

Tatsächlich bin ich überrascht, dass die erste Antwort ohne jegliche Fakten zur Untermauerung der Aussage akzeptiert und positiv bewertet wird, da es höchstwahrscheinlich eine falsche ist. Sowohl MIDI-Drums als auch MIDI-Keyboards sind mit ziemlicher Sicherheit Geräte mit niedriger Geschwindigkeit, sodass sie höchstens weniger als 1% der Bandbreite eines Hochgeschwindigkeitshubs verbrauchen (2 * 1 Mbit / s / 480 Mbit / s * 100% = 0,4%). ).

In der Tat führt das Vorhandensein des Hubs zu einer Latenz, die bei Hubs mit niedriger Geschwindigkeit in der Größenordnung von zehn Mikrosekunden oder bei Hubs mit hoher Geschwindigkeit in der Größenordnung von Hunderten von Nanosekunden liegt . Im letzteren Fall verschwindet diese Latenz, sobald Sie die von der MIDI-Software eingeführte Latenz hinzufügen.

Das USB-Protokoll unterstützt auch Übertragungsprioritäten (siehe Übertragung unterbrechen ), sodass MIDI-Geräte auch mit einer Festplatte oder einem Scanner am selben Bus koexistieren können, ohne dass sich dies auf die Übertragungsgeschwindigkeit oder die Latenz auswirkt. Ich werde jedoch keine Aussagen machen, da ich mit MIDI-Geräten nicht besonders vertraut bin.


15

Die kurze Antwort ist, dass Sie wirklich einen Multi-TT-Hub für diese Anwendung möchten, bei der 2 oder mehr Ihrer USB-Geräte wahrscheinlich 12 Mbit / s erreichen. Suchen Sie auf Amazon, Newegg oder anderen Websites nach "Multi-TT", um diese Hubs zu finden.

Leider wird dieses wichtige technische Detail selten erwähnt. Die meisten Hubs verwenden ein billigeres Single-TT-Design. Die guten Multi-TT-Modelle werden nur selten mit dieser Funktion beworben, auch nicht auf der Verpackung. Leider haben die meisten Leute wahrscheinlich noch nie TTs gehört, weshalb sich Vermarkter wahrscheinlich nicht die Mühe machen, Ihnen mitzuteilen, welches Design ihre Hubs verwenden.

Mit dem Windows-Geräte-Manager können Sie überprüfen, ob Ihr Hub über diese Funktion verfügt. Suchen Sie auf der Registerkarte "Erweitert" nach den Worten "Hub hat mehrere TTs".

Screenshot des Geräte-Managers

Unter Linux kann der Hub-Typ mit "lsusb -v | grep TT" überprüft werden. Ich kenne keine einfache Möglichkeit, auf Macintosh zu überprüfen, mit Ausnahme des Dienstprogramms "USB Prober", das Apple in seinen Xcode-Entwicklungstools veröffentlicht.

TT steht für Transaction Translator. Die Details sind komplex und vollständig in Kapitel 11 der USB-Spezifikation dokumentiert, die kostenlos von www.usb.org heruntergeladen werden kann. Kurz gesagt, der TT wandelt zwischen 480 MBit / s von Ihrem PC in langsamere Geschwindigkeiten von 12 oder 1,5 MBit / s um.

Wenn Sie diese Musikinstrumente spielen, generieren ihre Controller normalerweise MIDI-Meldungen und packen sie dann in Speicherpuffer, die auf den Moment warten, in dem Ihr PC die Daten anfordert. Wenn Ihr PC direkt eine Verbindung herstellt, sendet er eine Nachricht, die als IN-Token bezeichnet wird, an Ihr Instrument. Ihr Instrument kann auf zwei Arten auf das IN-Token reagieren, entweder als DATA-Paket oder als NAK-Token, um anzuzeigen, dass keine Daten vorhanden sind. Ihr PC sendet diese IN-Token sehr schnell, sodass Ihre Musikereignisse nahezu sofort als MIDI-Nachrichten übermittelt werden.

Wenn Ihr MIDI-Gerät mit 12 MBit / s über einen USB 2.0-Hub verbunden wird, tritt jedoch eine sehr unterschiedliche Kommunikation auf, und zwar mit einer Geschwindigkeit von 480 MBit / s. Ihr PC kommuniziert tatsächlich mit dem Transaktionsübersetzer im Hub. Es werden 2 Nachrichten gesendet. Zuerst wird eine SSPLIT-Nachricht (Start Split Transaction) an den TT gesendet. Wenn der TT nicht besetzt ist, sendet es eine Bestätigung. Dann überträgt der TT das IN-Token mit der langsameren Geschwindigkeit von 12 MBit / s an Ihr MIDI-Keyboard. In der Zwischenzeit kann Ihr PC mit 480 Mbit / s mit anderen Geräten kommunizieren. Ihr MIDI-Keyboard kann nicht erkennen, ob das IN-Token direkt von Ihrem PC oder vom TT eines Hubs stammt. Es funktioniert genauso, als wäre es mit Ihrem PC verbunden. Der TT im Hub empfängt entweder die NAK- oder die DATA-Antwort. Währenddessen beginnt Ihr PC, CSPLIT-Nachrichten (Complete Split Transaction) an den TT des Hubs zu senden. Der TT antwortet mit einem speziellen NYET-Token, wenn der TT noch mit 12 Mbit / s oder dem NAK oder DATA von Ihrer Tastatur aus kommuniziert.

Wenn Sie sowohl ein MIDI-Keyboard als auch eine MIDI-Drum angeschlossen haben, was passiert, wenn Ihr PC eine SSPLIT-Nachricht senden möchte, um den TT zur Kommunikation mit den Drums aufzufordern, der TT jedoch bereits mit der Tastatur kommuniziert? Mit nur einer einzigen TT kann der Hub NYET auf eine neue SSPLIT-Anforderung antworten, da er mit 12 MBit / s mit der Ausführung von IN + DATA beschäftigt ist. Sie wollen dieses Szenario definitiv nicht!

Mehrere TT-Hubs verfügen über einen dedizierten TT an jedem Downstream-Port (an den Sie Geräte anschließen). Mit mehreren TTs kann der Hub immer eine SSPLIT-Anforderung annehmen, selbst wenn die anderen TTs andere Downstream-Geräte kommunizieren. Mit nur einer einzigen TT kann Ihr PC trotz einer Bandbreite von 480 MBit / s warten, da der Hub nur eingeschränkt in der Lage ist, mehr als eine Nachricht gleichzeitig zwischen den verschiedenen Geschwindigkeiten zu konvertieren.

Diese Beschreibung geht auf viele wichtige USB-Timing-Probleme der TTs ein, aber der wichtige Punkt ist, dass USB 2.0-Hubs zwei deutlich unterschiedliche Designs verwenden können. Sie möchten die günstigeren Single-TT-Naben unbedingt meiden.

Die Geschwindigkeiten von USB 3.0 und 3.1 wurden an anderer Stelle in diesen Antworten erwähnt. Die TTs im Hub konvertieren jedoch niemals zwischen 5 oder 10 Gigabit-Geschwindigkeiten und 480, 12 oder 1,5 Geschwindigkeiten. Stattdessen fungieren USB 3.0- und USB 3.1-Hubs als Hub-Paar. Die Gigabit-Signale haben ihre eigenen Stifte in den neueren USB-Anschlüssen, die eine Verbindung zu einem Hub herstellen, der nur mit einer Geschwindigkeit von 5 oder 10 Gbit / s betrieben wird. Die gleichzeitige 480-Mbit / s-Kommunikation erfolgt auf den ursprünglichen Pins, sodass Geräte mit 12 und 1,5 MBit / s von TTs in 480-Mbit / s konvertiert werden, jedoch niemals in 5 oder 10 Gbit / s.

An anderer Stelle wird auch "niedrige Geschwindigkeit" erwähnt, was im USB-Jargon technisch 1,5 Mbit / s bedeutet, in gelegentlichen Gesprächen jedoch auch 1,5 oder 12 Mbit / s. 12 Mbit / s wird in der USB-Terminologie als "volle Geschwindigkeit" bezeichnet. Das USB-MIDI-Protokoll, das technisch Teil der "Audio Class Specification" ist, verwendet das "Bulk" -Protokoll ( nicht das Interrupt-Protokoll, wie in einer anderen Antwort angegeben). Die USB-Spezifikation erlaubt kein Bulk-Übertragungsprotokoll für eine Geschwindigkeit von 1,5 Mbit / s. Wenn ein USB-MIDI-Gerät die USB-Geschwindigkeit nicht sehr stark verletzt, beträgt die Geschwindigkeit immer mindestens 12 Mbit / s. USB MIDI kann eine Geschwindigkeit von 480 Mbit / s haben. In diesem Fall gelten die TTs nicht. Die überwiegende Mehrheit der heutigen USB-MIDI-Produkte erreicht jedoch immer noch eine Geschwindigkeit von 12 Mbit / s.

So können Sie wirklich sicher sind , Ihre USB machen wollen Hub Multi-TT - Typen, wenn Sie die Leistung maximieren mögen.


Wie erhalten Sie diese Ansicht, in der Geräte angezeigt werden, die in Ihrem Bild Bandbreite verbrauchen? Meine Eigenschaften haben nicht einmal diese Registerkarte.
user5389726598465

3

Realistisch gesehen ist die gemeinsame Nutzung eines einzelnen USB-Anschlusses mithilfe eines Hubs zum Erweitern der Anzahl der anzuschließenden Geräte wahrscheinlich auch dann unerheblich, wenn Sie alle angeschlossenen Geräte gleichzeitig verwenden. Die meisten Geräte werden nicht viel von der Datenübertragung gleichzeitig verwenden. Es ist noch weniger problematisch, wenn Sie USB 3.0- oder 3.1-Anschlüsse verwenden, die 10- bzw. 20-mal schneller als 2.0 sind, aber gleichzeitig Daten senden und empfangen können, mehr Leistung bieten und mit 2.0 arbeiten Geräte.

Wie bereits erwähnt, sollten keine Probleme auftreten, solange über jedes an den Port angeschlossene Gerät ausreichend Strom fließt.


1

Nur mein Fall als Beispiel für einen USB 3.0-Hub, der langsamer wird, wenn mehr als ein Gerät angeschlossen ist.

Ich habe zwei identische Sätze von: SataIII zu USB3.1 Gen2 Typ C-Gehäuse mit einer 480 GB SSD.

Wenn ich die SSD in einen SataIII-Port stecke, liest der Linux-Befehl dd mit mehr als 500 MB / s.

Wenn ich die SSD in das SataIII zu USB 3.1 Gen2 Typ C-Gehäuse stecke, liest der Linux-Befehl dd mit fast 413 MB / s, unabhängig davon, welchen der beiden Sätze ich verwende.

Das Seltsame kommt, wenn ich beide USB 3.0-Gehäuse anschließe und Linux auffordere, von beiden zu lesen (egal ob LVM-Stripe, RAID0 oder zwei gleichzeitige dd-Befehle), es liest nur mit 2x150 = 300 MiB / s.

Also, wenn beide eingesteckt sind, verliere ich in der Nähe von 413-300 = 113MiB / s Geschwindigkeit.

Mit anderen Worten:

  • Eine SSD auf USB 3 HUB, ich bekomme 413MiB / s gelesen
  • Zwei SSD auf USB 3 HUB, ich bekomme 150 + 150 = 300MiB / s gelesen
  • Spected Read (pro SSD), wenn zwei SSDs auf einem USB-3-Hub weniger als 413/2 = 206 MB / s betragen, aber jeweils nur um 150 MB / s, nicht mehr als 200 MB / s.

Ich fange an zu glauben, dass das Problem beim USB 3 Hub-Protokoll liegt, um die Datenbandbreite für beide Laufwerke zu ändern. Dies verursacht einen enormen Mehraufwand.

So kann ich bestätigen, dass der USB 3-Hub, den ich an meinen Händen habe, eine SSD viel mehr als die maximale Bandbreite verlangsamt, wenn mehr als eine gleichzeitig angeschlossen ist.

Außerdem habe ich mit einer SSD und einem sehr langsamen (weniger als 50MiB / s) USB 3.0-Stick getestet. Die kombinierte Lesegeschwindigkeit von USB Hub 3 geht auf 263MiB / s zurück, sodass ich bestätigen kann, dass die kombinierte Lesegeschwindigkeit bei etwa 100MiB / s liegt Ich schließe ein anderes USB-Speichergerät an.

Und mehr und am schlimmsten ist, dass ich eine Maus (oder eine Tastatur) einstecke und die SSD-Lesegeschwindigkeit auch in der Nähe von 313 MB / s liegt. Ich ziehe die Maus / Tastatur ab und die SSD-Lesegeschwindigkeit geht zurück auf 413 MB / s, also wieder in der Nähe von 100 MB / s. s Die Lesegeschwindigkeit geht verloren, nur weil eine Maus angeschlossen ist (und verwendet wird). Wenn ich die Maus nicht bewege, geht die Lesegeschwindigkeit auf 413MiB / s zurück.

Der HUB verursacht also einen massiven Rückgang der Lesegeschwindigkeit (nahe 100 MB / s) bei der kombinierten Übertragungsrate, wenn nicht nur ein Gerät angeschlossen ist (und verwendet wird), unabhängig davon, welche andere Art von Gerät ich anschließe Es hat mehr als nur eine Arbeit zur gleichen Zeit, ich bekomme eine kombinierte Lesegeschwindigkeit nahe 100MiB / s niedriger als wenn nur ein Gerät zur gleichen Zeit verwendet wird.

Ich hatte auch mit drei Geräten getestet: SSD + Maus + Tastatur, ich verliere immer noch fast die gleiche Geschwindigkeit, etwa 100MiB / s.

Wenn ich nur von einer SSD lese, aber beide angeschlossen habe, erreiche ich auch 413MiB / s.

Der Preis für einen USB 3.0 Hub lag bei 20 € und war nicht billig.

Fazit: USB HUB 3.0 macht eine Menge von MiB / s Übertragungsgeschwindigkeit los, wenn mehr als ein Gerät gleichzeitig verbunden ist (und überträgt), wer weiß warum! Vielleicht, weil es die Zeitübertragung durch die Anzahl der Geräte teilt (ziemlich schlecht), oder weil es einen enormen Overhead für das Radfahren von Geräten usw. hat.

Ich hoffe, dies hilft jemandem, das Problem zu identifizieren. Alle Tests wurden unter Linux Live SystemRescueCD (letzte Version) mit dem Befehl dd mit dem Status = Fortschritt, einer Blockgröße von einem Megabyte und einer Anzahl von Tausend (insgesamt 1 GB) und dem Befehl dest device / durchgeführt. dev / null.

Ich plane (wenn / wenn ich reich sein werde), einen anderen USB 3.x HUB zu kaufen, diesmal einen 3.1 Gen 2, um zu prüfen, ob dies genauso passiert oder ob es sich um eine Marke mit einem schlechten Firmware-Algorithmus handelt.


SSDs unterscheiden sich stark von den in Frage kommenden Geräten. Jede SSD versucht, Daten mit mehr als der Bandbreite des USB 3-Anschlusses zu übertragen. Sie verlieren also viel Bandbreite nur bei Kollisionen.
Fixer1234

1

Wenn ich eine direkte Verbindung zwischen meinem Laptop mit einer Festplatte mit 750 GB und 5400 U / min und meinen externen 8 GB-Festplatten verwende, sind die Übertragungsraten tatsächlich viel langsamer als bei Verwendung eines USB-Hubs. Zum Beispiel habe ich kürzlich vier Filme kopiert und eingefügt, was ungefähr 120 GB Daten ergibt. Folgendes ist passiert.

  1. Zuerst habe ich die vier Filme mit bis zu 120 GB Daten auf meine Laptop-Festplatte kopiert und sie dann auf eine externe 8 GB-Festplatte eingefügt. Die Übertragung dauerte ca. 80 Minuten, da die Datenübertragungsrate nur ca. 30 MB betrug. Die Datenübertragungsrate lag zwischen 20 und 35 MB.

  2. Zweitens habe ich dann die andere 8 GB externe Festplatte angeschlossen, die genau das gleiche Modell ist. Diesmal habe ich den 4-Port USB 3.0 Hub verwendet. Diesmal war die Datenübertragungsrate viel schneller - manchmal über 90 MB. Die Datenübertragungsrate wies Spitzen zwischen 50 MB und über 90 MB auf. Die Datenübertragung dauerte nur 30 Minuten.

  3. Drittens habe ich experimentell beide externen 8-GB-Festplatten gleichzeitig über den USB 3.0-Hub angeschlossen. Ich habe alle vier Filme mit 120 GB Daten von einer Festplatte auf die andere kopiert. Diesmal war die Übertragung noch schneller als je zuvor. Die Datenübertragungsrate betrug ungefähr 150 MB und es gab überhaupt keine Spitzen in der Übertragungsrate. Es war eine konstante Linie von 150 MB die ganze Zeit.

Ich habe Experimente mit anderen großen Datenübertragungen durchgeführt. Aus irgendeinem Grund ist die direkte USB 3.0-Verbindung zu einer externen Festplatte viel langsamer als bei einem USB 3.0-Hub. ... Weiß jemand warum das so ist?

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.