it-swarm.com.de

Beeinträchtigt ein USB-Hub die Leistung?

Ich möchte zwei Geräte mit maximalem Durchsatz und maximaler Latenz mit ( 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 zur Handshake- und Prioritätszuweisung verfügbar ist (lassen Sie beispielsweise das Gerät mit dem länger aufgebauten Datenpuffer zuerst kommunizieren).

22
SwimBikeRun

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%. Sie müssen mit 480 Mbit/s pro USB 2.0-Hub am Computer arbeiten . 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 auf einem Hub.

Dies gilt auch für zwei Anschlüsse nebeneinander auf Laptops. Denken Sie also nicht, dass Sie nur 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 Trommeln MIDI eine niedrige Übertragungsrate haben, während die Tastatur entweder eine niedrige oder eine mittlere Übertragungsrate hat. Dies wäre vergleichbar mit einer USB-Soundkarte, mit der Sie keinen Hub teilen möchten.

Mit einem Hub mit eigener Stromversorgung erhält jedes Gerät die benötigte Stromversorgung, während bei einem Hub ohne eigene Stromversorgung alle Geräte die Stromversorgung gemeinsam nutzen, die über den Host-USB-Anschluss bereitgestellt werden 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.

17
Bon Gart

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. Beide MIDI Drums und MIDI Keyboards sind mit ziemlicher Sicherheit Geräte mit niedriger Geschwindigkeit, sodass sie höchstens weniger als 1% der Bandbreite von einem Hochgeschwindigkeitshub verbrauchen (2 * 1 Mbit/s). s/480 Mbit/s * 100% = 0,4%).

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

Das USB-Protokoll unterstützt auch Übertragungsprioritäten (siehe Interrupt-Übertragungen ), mit denen MIDI Geräte auch mit einer Festplatte oder einem Scanner am selben Bus koexistieren können ohne großen Einfluss auf ihre Übertragungsgeschwindigkeit oder Latenz. Ich werde jedoch keine Aussagen machen, da ich mit MIDI Geräten nicht besonders vertraut bin.

27

Die kurze Antwort lautet: Sie möchten wirklich einen Multi-TT-Hub für diese Anwendung, 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. Für die guten Multiple TT wird selten Werbung gemacht, da diese Funktion nicht einmal auf der Verpackung angegeben ist. 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".

Device Manager screenshot

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, das TT konvertiert zwischen 480 MBit/s von Ihrem PC zu den langsameren Geschwindigkeiten von 12 oder 1,5 MBit/s.

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 eine direkte 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 antworten, entweder als DATA-Paket oder als NAK-Token, um anzuzeigen, dass keine Daten vorhanden sind. Ihr PC sendet diese IN-Token sehr schnell, so dass Ihre Musikereignisse fast sofort als MIDI - Nachrichten übermittelt werden.

Wenn Ihr 12-MBit/Sek.-Gerät MIDI über einen USB 2.0-Hub angeschlossen wird, tritt jedoch eine sehr unterschiedliche Kommunikation auf, und zwar mit einer Geschwindigkeit von 480 MBit/Sek. 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 TT nicht belegt ist , wird eine Bestätigung gesendet. Dann überträgt das TT das IN-Token mit der langsameren Geschwindigkeit von 12 MBit/s auf 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. Das 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. Das TT antwortet mit einem speziellen NYET-Token, wenn das TT noch mit 12 Mbit/s oder dem NAK oder DATA von Ihrer Tastatur aus kommuniziert.

Wenn Sie sowohl ein MIDI Keyboard als auch ein MIDI Drum angeschlossen haben, was passiert, wenn Ihr PC eine SSPLIT-Nachricht senden möchte, um das TT zur Kommunikation mit den Drums aufzufordern, aber das TT kommuniziert bereits mit der Tastatur? 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 haben an jedem Downstream-Port (an den Sie Geräte anschließen) ein dediziertes TT. 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 wartet Ihr PC möglicherweise, selbst wenn die Bandbreite 480 MBit/s überschreitet, da der Hub nur eingeschränkt in der Lage ist, mehr als eine Nachricht gleichzeitig zwischen den TT zu konvertieren unterschiedliche Geschwindigkeiten

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 behauptet). 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.

Sie möchten also wirklich sicherstellen, dass Ihre USB-Hubs Multi-TT-Typen sind, wenn Sie die Leistung maximieren möchten.

14
Paul Stoffregen

Realistisch gesehen ist die gemeinsame Nutzung eines einzelnen USB-Anschlusses mithilfe eines Hubs zum Erweitern der Anzahl der angeschlossenen Geräte wahrscheinlich nicht so wichtig, selbst 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.

3
Xiro

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 auf beiden Laufwerken zu ändern.

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

Außerdem habe ich mit einer SSD und einem sehr langsamen (weniger als 50 MB/s) USB 3.0-Stick getestet. Die kombinierte Lesegeschwindigkeit von USB Hub 3 geht auf 263 MB/s zurück, sodass ich bestätigen kann, dass die kombinierte Lesegeschwindigkeit bei etwa 100 MB/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 zurück auf 413MiB/s.

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 frei, 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 = progress, einer Blockgröße von einem Megabyte und einer Anzahl von tausend (insgesamt 1 GB), 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 das Gleiche passiert oder ob diese Marke einen schlechten Firmware-Algorithmus hat.

1
Laura

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?

1
mike_mgoblue