Über 5 Gbit / s Bandbreite, die von einem USB3.0 / USB3.1 Gen 1 Root Hub gemeldet wird. Wie ist das möglich?

589
Josh

Alter Titel: Ist dieser USB3.0-Hub ein verdeckter USB3.1-Hub (Gen 2)? Mehr als 5 Gbit / s gemeldete Bandbreite

Ich verwende ein paar USB3-Bildverarbeitungskameras. Jede Kamera hat eine Auflösung von 2448 x 2048 Pixeln bei 75 Bildern pro Sekunde und 8-Bit-Daten, also rund 3 Gbit / s. Einen PC habe ich, ich kann nicht beide Kameras mit voller Geschwindigkeit laufen, auf einem anderen PC kann ich. Ich hatte (vorher) den Eindruck, dass ein einzelner USB3.0 / 3.1 Gen 1-Hub auf 5 Gbp / s beschränkt war.

Dies ist ein wichtiges Thema, das angesprochen werden sollte, da wir in der Vergangenheit Probleme mit dem Betrieb mehrerer Kameras mit hoher Bandbreite auf einem so genannten „einzigen Controller“ hatten. Moderne Kameras können problemlos eine einzelne USB3.1-Verbindung nutzen. In der Vergangenheit bestand die Lösung darin, eine PCI-Erweiterungskarte hinzuzufügen. Es scheint, dass dies in einigen Fällen nicht notwendig ist, und ich bin daran interessiert zu verstehen, warum.

  • In früheren Bearbeitungen habe ich den Root-Hub (in den die Kameras eingesteckt sind) nur als "Hub" bezeichnet, was einige Verwirrung verursacht hat - meine Ignoranz hier, ich wusste nicht, dass es einen Unterschied gibt. Dies scheint kritisch zu sein.
  • Viele der vorherrschenden Informationen im Internet legen nahe, dass selbst ein Root-Hub auf 5 Gbit / s beschränkt sein sollte, zum Beispiel:

Ein einzelner USB-Host-Controller kann fast immer mehr als einen USB-Port bedienen. Die für diese Ports verfügbare Gesamtbandbreite wird jedoch gemeinsam genutzt. Stellen Sie sich einen einzelnen USB-Port vor, an den ein Hub mit vier oder sogar acht Ports angeschlossen ist. Die für jeden Host-Controller oder Root-Hub verfügbare Gesamtbandbreite kann den folgenden Werten nahekommen (Ihre Bandbreite kann variieren):

• USB 3.0 — Total theoretical bandwidth per host controller = 5Gbps (625MB/s) • USB 3.0 — Total practical bandwidth per host controller = 3.2Gbps (~400MB/s) • USB 2.0 — Total theoretical bandwidth per host controller = 480Mbps (60MB/s) • USB 2.0 — Total practical bandwidth per host controller = 308Mbps (~36MB/s) 

Von https://www.oculus.com/blog/oculus-roomscale-balancing-bandwidth-on-usb/

  • Motherboard-Anbieter kündigen alles als USB3.0 und USB3.1 an. In der Realität sind dies häufig USB3.1 Gen 1 (5 Gbps) und USB3.1 Gen 2 (10 Gbps). Dies führte zu weiterer Verwirrung.
  • Außerdem zeigt Windows USB3.1 Gen 1-Root-Hubs als USB3.0 an

Konfiguration:

  • Beide Kameras sind für USB3.0 ausgelegt
  • Beide Kameras werden direkt in das Motherboard gesteckt, in USB3.1 Gen 1-Buchsen gemäß den Motherboard-Dokumenten.
  • Beide Kameras sind an denselben USB-Root-Hub angeschlossen, wie vom Geräte-Manager gemeldet, zum Beispiel:

Über 5 Gbit / s Bandbreite, die von einem USB3.0 / USB3.1 Gen 1 Root Hub gemeldet wird. Wie ist das möglich?

Beobachtungen:

  • Bei einem Rechner mit einem Asus H110M-R- Motherboard erhalte ich das erwartete Verhalten, dass eine Kamera mit voller Geschwindigkeit (75 Bilder pro Sekunde) läuft und die andere auf etwa 7 Bilder pro Sekunde reduziert wird. Beide Kameras befinden sich im selben USB3.0-Root-Hub.

  • Auf einer anderen Maschine mit einem Asus Impact VIII-Motherboard laufen beide Kameras mit voller Geschwindigkeit (keine FPS-Verzögerung). Tatsächlich können wir mehr Kameras anschließen und um 10 Gbp / s (möglicherweise etwas mehr) herumschieben. Die Tatsache, dass wir 10 Gbit / s erreichen, deutet darauf hin, dass es sich tatsächlich um einen USB3.1-Gen 2-Controller handelt. Windows meldet jedoch, dass wir den USB3.1-Gen 1-Controller verwenden (als USB3.0 bezeichnet). Es könnte auch ein zufällig enges Bandbreitenlimit sein (ich wäre erstaunt, wenn wir tatsächlich den theoretischen Durchsatz von 10 Gbps hätten).

  • Manuelle Überprüfung auch - Ich kann meine Hand vor den Kameras bewegen und beide laufen deutlich mit mindestens 50 fps.

  • Da die Anzeigesoftware auf dem ersten PC automatisch die Bildrate (nach unten) anpasst, kann ich nicht erkennen, warum sie auf dem anderen Computer falsch ist. In ähnlicher Weise scheint auch die Bandbreitenüberwachungssoftware (Advanced USB Port Monitor) korrekt zu sein und die Bandbreitenkurve ändert sich, wenn wir eine der Kameras manuell verlangsamen.

Weitere Informationen zu den Motherboards:

  • Der Impact VIII verfügt über zwei Controller: einen USB 3.1 Gen 1 und einen USB 3.1 Gen 2. Die Ports sind auf der Rückwand physisch getrennt. Es gibt vier rückseitige Anschlüsse, die als USB3.0 (und zwei auf der Vorderseite) gekennzeichnet sind, außerdem gibt es einen roten USB-C und USB-A mit der Bezeichnung USB3.1.
  • Der H110M-R verfügt über zwei USB3.1 Gen 1-Ports und 6 USB2-Ports.
  • Der Impact VIII verwendet einen Intel Sunrise Point-H USB 3.0 xHCI-Controller ( PCI\VEN_8086&DEV_a12f) und einen Intel Alpine Ridge DSL6540-Controller für USB3.1 ( PCI\VEN_8086&DEV_15b6).
  • Der H110M-R berichtet auch PCI\VEN_8086&DEV_a12fals USB3.0-Controller.
  • Also verwenden wir anscheinend dieselbe Art von Root-Hub.
  • Der Impact VIII verwendet einen Z170-Chipsatz, während der H110M-R den H110-Chipsatz verwendet.

Der PCH enthält einen eXtensible Host Controller Interface (xHCI) -Hostcontroller, der bis zu 14 USB 2.0-Ports und bis zu 10 USB-3.0-Ports unterstützt. Dies gilt auch für Board-Routing, ACPI-Tabelle und BIOS. Dieser Controller ermöglicht Datenübertragungen von bis zu 5 Gbit / s. Der Controller unterstützt den Verkehr mit SuperSpeed ​​(SS), High-Speed ​​(HS), Full-Speed ​​(FS) und Low-Speed ​​(LS) auf dem Bus. Der xHCI-Controller unterstützt den USB-Debug-Anschluss an allen USB 3.0-fähigen Anschlüssen. Das xHCI unterstützt auch das USB Attached SCIS-Protokoll (UASP).

Aus dem Handbuch der 100-Serie https://www.intel.com/content/www/us/de/chipsets/100-series-chipset-datasheet-vol-1.html

Unter der Annahme, dass diese Geräte wirklich auf Hochtouren laufen, sind einige Gedanken / Möglichkeiten:

  • Verwendet der Impact VIII einen einzelnen USB-Controller (Gen 2), auf dem alle Anschlüsse laufen (der jedoch als zwei aufgelistet ist)? Die Spezifikation scheint darauf hinzudeuten, und der Geräte-Manager meldet zwei Controller.
  • Kann ein einzelner USB3.0-Controller mehr als 5 Gbit / s unterstützen? Ich habe nicht angenommen
  • Kann sich ein USB3.1-Hub als USB3.0-Hub bewerben?

Allerdings ist die wichtigste Frage - Warum ist ein System zu 5 Gbps begrenzt und man nicht, wenn beide scheinen einen einzigen USB3.1 Gen - 1 - Controller zu verwenden (vom gleichen Typ), die die Kameras eingesteckt werden?

Wenn Windows nicht falsch berichtet, verwende ich nicht den Gen 2-Controller. Ich werde untersuchen, wie viel Bandbreite ich beim Impact VIII tatsächlich nutzen kann.

1
Haben Sie die Bandbreite gemessen oder nur berechnet? Sind Sie sicher, dass Ihre Kameras nicht komprimiert werden? Was ist der Hersteller und das Modell der Kameras? Spiff vor 6 Jahren 0
@Spiff habe ich mit einem Monitoring-Tool gemessen, das mit der Berechnung korreliert. Ich habe sie physisch getestet, indem sie mit der Hand nach vorne winkte - sie laufen offensichtlich nicht mit einer reduzierten Bildrate wie auf dem anderen PC. Ich habe über Kompression nachgedacht, aber ich habe auch versucht, die Kameras aufzudecken / abdecken, und die Datenrate ist flach. Die Verlangsamung ist auf dem H110M0-R wirklich offensichtlich. Josh vor 6 Jahren 0

3 Antworten auf die Frage

2
Ale..chenski

Root-Hubs unterscheiden sich nicht von gewöhnlichen Hubs. Die Gesamtbandbreite eines Root-Hubs wird durch die Architektur des Hostcontrollers und der Datenschnittstelle zwischen dem xHCI-Controller und dem internen Fabric sowie zwischen den xHCI- und USB-PHYs (eine Reihe von ihnen, die die Anzahl der möglichen Ports bestimmt) bestimmt. Wenn es sich um den ursprünglichen USB 3.0-Core-Controller mit Gen1-PHYs handelt, darf der Durchsatz 5 Gbit / s nicht überschreiten.

Die einzige vernünftige Erklärung für diese Beobachtung ist, dass der Z170-Chip im Wesentlichen den USB-3.1-Gen2-Kern mit entsprechenden PIPE-10-Gbit / s-Bussen aufweist, die einzelnen PHYs jedoch nur für die Gen1-Geschwindigkeit geeignet sind. Es gibt viele Gründe, warum die PHYs auf die Gen1-Geschwindigkeit beschränkt werden können - ungelöste Fehler im neuen Kodierungsprotokoll, die physikalische Schicht erfüllt die USB-IF-Zertifizierungskriterien (z. B. Jitter, Auge, was auch immer) oder Dutzende andere nicht vollständig Mängel wie Störungen im Power-Management oder Link-Training-Instabilität. Außerdem wäre es für die Öffentlichkeit wirklich ärgerlich, wenn ein System mit 10 Super-Speed-Ports bei einem Zehntel der erwarteten Bandbreite verkrüppelt wird. Die Menschen könnten eine Dissonanz wahrnehmen.

Danke Ali Haben Sie ein standardisiertes Diagramm der Architektur eines Root-Hubs? Attie vor 6 Jahren 0
Vermutlich wird dies immer noch durch die Anzahl der PCIe-Lanes beeinflusst, die dem Controller zugewiesen wurden, wie Attie vorschlug? Beispielsweise erhält der „echte“ Gen 2-Controller des Impact VIII 4x PCIe3-Lanes für eine angekündigte Bandbreite von 32 Gbps (obwohl er nur zwei physische Ports besitzt). https://techreport.com/rx/2016_1_24_Asus_ROG_Maximus_VIII_Impact_MiniITX_motherboard_reviewed/05-diagram_pci_routing.gif Josh vor 6 Jahren 0
@Attie, das Diagramm ist nicht öffentlich zugänglich. Sie müssen sich bei Synopsis registrieren, um weitere Informationen zu DesignWare USB 3.1 IP zu erhalten. Darüber hinaus ist der Controller-Kern von Intel in die proprietäre IOSF-Architektur (Fabric Interconnect) integriert. Um eine allgemeine Vorstellung zu erhalten, überprüfen Sie dieses Bild unter https://csdl-images.computer.org/mags/mi/2015/02/figures/mmi20150200263.gif Ale..chenski vor 6 Jahren 0
@Josh, PCIe-Lanes sind keine geeigneten Messgrößen. Der xHCI-Controller ist direkt in IOSF integriert, und PCIe-Lanes verwenden separate Ports. Die PCIe-Spurzuweisung wird nur mit externen xHCI-Controllern verwendet. Ale..chenski vor 6 Jahren 0
@Attie, einige Details zur universellen Verbindung zwischen verschiedenen PHYs (PIPE) finden Sie hier, https://www.intel.com/content/dam/www/public/us/de/documents/white-papers/phy-interface -pci-express-sata-usb30-architecture-3.1.pdf Ale..chenski vor 6 Jahren 0
1
Attie

Siehe Ali Cs Antwort unten.


Sie haben die Kameras an zwei Ports eines Root Hub angeschlossen . Ich vermute, dass diese Ports tatsächlich mit dem Z170-Chipsatz verbunden sind.

Sie müssen zwei Dinge berücksichtigen:

  1. Ein „Root Hub“ ist kein „Hub“ - es ist eher eine Sache, die bietet n USB - Ports.
  2. Alle Ports eines "Root Hub" werden nicht wie bei einem Standard "Hub" über eine einzige USB - Verbindung geleitet. Wenn also der Root Hub mit ausreichender Bandbreite an das System angeschlossen ist, wird die Gesamtbandbreite über Anschlüsse können die USB-Spezifikation überschreiten.

Der Maximus VIII Impact verwendet das unten abgebildete Z170-Chipsatz- Blockdiagramm. Wie Sie sehen, werden " bis zu 10x USB 3.0-Ports " unterstützt. Z170 Blockschaltbild

Der H110M-R verwendet den H110-Chipsatz, der " Bis zu 4 USB 3.0-Anschlüsse " unterstützt. Daher würde ich ähnliche Fähigkeiten erwarten - wenn Sie direkt an die USB 3.0-Anschlüsse des Motherboards angeschlossen sind .

Aus Ihrem Wortlaut vermute ich jedoch, dass die Kameras über einen physischen / externen Hub an diesem PC angeschlossen sind. In diesem Fall müssen alle Kameradaten über die einzige USB 3.0-Verbindung zwischen Hub und PC übertragen werden. Wenn dies nicht der Fall ist, könnte dies eine Treiber- oder architektonische Verbesserung zwischen den Chipsätzen sein ...


Wenn der Root Hub die Bandbreite zwischen ihm und dem Prozessor hat, kann die Gesamtbandbreite der Ports die USB 3.0-Bandbreite überschreiten.

Wenn Sie jedoch einen Root-Hub über eine einzige PCIe-Spur angeschlossen haben, wird die Bandbreite durch die PCIe-Verbindung eingeschränkt (immer noch nur 3,9 GB / s für eine Gen-5-Verbindung mit einer einzelnen Spur), und somit haben die beiden Ports nur ~ 3.9Gb / s zum Spielen

Ein ähnlicher Effekt kann durch die DMI2-Verbindung des H110 (5 GT / s) zur CPU und die DMI3-Verbindung des Z170 (8 GT / s) verursacht werden.

Unter Hub meinte ich, was der Gerätemanager meldet (bearbeitete meine Frage zur Klarheit). In beiden Fällen sind die Kameras direkt mit der Hauptplatine verbunden. Josh vor 6 Jahren 0
Dies scheint eine ziemlich überzeugende Antwort zu sein. Etwas verwandte Folgemaßnahmen davon, bin ich richtig in dem Gedanken, dass ein USB3.1 Gen 2-Hub (kein Root-Gerät) immer noch auf 5 Gbps beschränkt wäre, wenn Sie eine Reihe von USB3.0-Geräten daran anschließen? Josh vor 6 Jahren 0
Richtig, Sie könnten also 2x 3.0 / 3.1 Gen 1-Geräte auf einem 3.1 Gen 2-Hub mit voller Geschwindigkeit betreiben. Abgesehen von der Chipsatz-Unterstützung gibt es nur wenige Gen 2-Hubs, die zum Kauf angeboten werden. Josh vor 6 Jahren 0
Ich würde mit dieser Annahme vorsichtig sein. Es wäre schön zu glauben, dass Sie zwei volle USB 3.0-Bandbreitengeräte über eine einzige USB 3.1-Verbindung installieren könnten. Aber ich habe das Gefühl (zitieren Sie mich nicht), dass dies nicht funktioniert. Attie vor 6 Jahren 0
@Ramhound - das ist richtig, diese Antwort legt nahe, dass der Grund für meine höhere Bandbreite darin liegt, dass ich an einen USB 3.1 Gen 1-Root-Hub angeschlossen bin. Was mich dazu veranlasst hat zu fragen, würden Sie mit einem "normalen" Gen-2-Hub ein ähnliches Verhalten (mit 10 Gbps) erreichen. Josh vor 6 Jahren 0
@Attie Ich bin mir sicher, aufgrund des Protokoll-Overheads konnte man nicht ausgereizt werden, klingt aber so, als könnte man besser als einer, was nützlich sein könnte. In diesem Fall verwenden die Kameras nur 3Gbps, sodass ein Gen-2-Hub wahrscheinlich ausreicht, um zwei USB3.0-Verbindungen zu sättigen. Josh vor 6 Jahren 0
Falsche Antwort, Spekulationen. Die Bandbreite ist durch einen gemeinsamen PIPE-Bus begrenzt, der von allen PHYs aller Ports gemeinsam genutzt wird, und ist auf die Busmastering-Engine des Controllers abgestimmt. Ale..chenski vor 6 Jahren 0
Danke für die Info und deine Antwort @Ali ... Ich habe deine Antwort gewählt und werde von mir darauf verweisen. Attie vor 6 Jahren 0
0
magicandre1981

Laut den Hardware-IDs ( PCI\VEN_8086&DEV_15b6) handelt es sich hierbei um den Alpine Ridge-Controller (DSL6540), bei dem es sich tatsächlich um USB 3.1-Gen2 / Thunderbolt3 handelt.

http://imgur.com/a/g9rvn

Dieses USB3.0 stammt also vom generischen USB3.x-Treiber von Windows 10, daher sollte dies nur ein Anzeigeproblem im Geräte-Manager sein.

Windows meldet zwei Hubs, beide Intel, einen USB3.0 und einen USB3.1. Josh vor 6 Jahren 0
Veröffentlichen Sie ein Bild aller USB 3.x-Geräte im Geräte-Manager. Verwenden Sie auch http://www.uwe-sieber.de/usbtreeview_e.html und posten Sie ein Bild. magicandre1981 vor 6 Jahren 0
http://imgur.com/a/LBUPs Ports 21/22. Der Geräte-Manager hat die gleichen Hub-Namen. Josh vor 6 Jahren 0
Wählen Sie den Controller USb3.1 aus und veröffentlichen Sie ein Bild der Details magicandre1981 vor 6 Jahren 0
http://imgur.com/a/g9rvn Josh vor 6 Jahren 0
Laut Hardware-IDs ist dies der Alpine Ridge-Controller (DSL6540), der in der Tat [USB 3.1-Gen2 / Thunderbolt3] ist (https://ark.intel.com/products/87402/Intel-DSL6540-Thunderbolt-3 -Regler). Dieses USB3.0 stammt also vom generischen USB3.x-Treiber von Windows 10, daher sollte dies nur ein Anzeigeproblem im Geräte-Manager sein magicandre1981 vor 6 Jahren 0
Aber das ist nicht, woran die Kameras angeschlossen sind :) Dies ist die andere: https://vendev.org/pci/ven_8086&dev_a12f/ Josh vor 6 Jahren 0
"Warum ist ein System auf 5 Gbit / s beschränkt und eines nicht, wenn beide einen einzigen USB3.1 Gen 1-Controller des gleichen Typs zu verwenden scheinen?" 1 Controller ist gen2 mit 10 gbit und einer ist gen1 mit 5 gbit / s magicandre1981 vor 6 Jahren 0
Ich verstehe das, aber die Kameras sind an jedem System nur an einen Gen 1-Controller angeschlossen. Der Gen 2-Controller ist separat und nicht verwendet (wie der Gerätebaum zeigt). Es sei denn, mir fehlt hier etwas? Josh vor 6 Jahren 0