USB topology for DMA: controllers, hubs and ports
How host controllers, root hubs and shared bandwidth work, and why a rear port is not superstition. It also shows how to read a port's negotiated speed and how USB selective suspend kills a link.
Short answer
USB is a tree: each host controller feeds a root hub, and every external hub, dock or front-panel header below it shares its bandwidth. A DMA card belongs on a rear port wired to a root hub, with nothing else competing on that controller.
On this page10
- How USB ports actually connect to the computer
- Four USB terms to know
- Why use a rear USB port?
- Keep the card on its own USB controller
- How to check a port's negotiated speed
- Turn off USB selective suspend with powercfg
- Turn off USB power saving in Device Manager too
- Common USB problems and their fixes
- USB questions
- Sources
How USB ports actually connect to the computer
Most people picture each USB socket as an independent connection to the computer, but that is not how it works. A machine has a small number of host controllers, each controller owns a root hub, and each root hub owns a set of ports. Everything plugged into those ports shares that controller's bandwidth, interrupt handling and driver. An external hub or a dock adds another layer, which all of its devices share in turn. Almost every unexplained DMA dropout comes from that tree being deeper or busier than the reader can tolerate.
Four USB terms to know
Once these four terms are clear, most of the USB advice you will read starts to make sense.
- Host controller
- The silicon that runs a USB bus. On a modern machine this is an xHCI controller. It has a driver and it can be the bottleneck
- Root hub
- The virtual hub at the top of one controller's tree. Its ports are the sockets wired directly to the board
- Hub
- Any device that fans one port out into several: an external hub, a dock, a monitor with ports, a front-panel board inside the case
- Negotiated speed
- What the link actually agreed to, not what the port is capable of. A USB 3 port with a USB 2 cable negotiates USB 2
Why use a rear USB port?
Rear I/O ports are soldered to the motherboard and wired straight to a root hub. A front-panel port sits at the end of an internal cable to a case header, and on many cases that header is itself behind an internal hub. A front port therefore adds cable length, extra connectors and often a hub stage before the signal reaches the controller. USB 3 at full rate does not tolerate a marginal path, which is the whole reason every guide tells you to use a rear port. It is also why a card that fails on a front port works on a rear port with nothing else changed.
Tip
Keep the card on its own USB controller
Sharing a controller with an idle keyboard costs nothing, but sharing it with a webcam, an external drive, a capture card or a USB DAC costs real bandwidth. It also adds interrupt load at exactly the moment the reader is in the middle of a transfer. Machines with several rear ports usually spread them across more than one controller. The practical goal is to put the card on a port whose controller carries nothing else demanding, and to keep bandwidth-hungry peripherals elsewhere. For the same reason, disconnecting every unnecessary device before a read-speed test is not just a formality, because it changes the result.
How to check a port's negotiated speed
Do this on the second PC with the card connected and the game PC powered on. The goal is to confirm that the link came up as USB 3 and did not silently fall back to a lower speed.
- Open Device Manager on the second PC
- From the View menu, choose Devices by connection, which redraws the list as the actual tree
- Follow the tree from the host controller through the root hub to your device, and note every hub in between as a layer you can remove
- Switch View back to Devices by type and expand Universal Serial Bus controllers
- Right-click the FTDI or USB bridge device, choose Properties and open the Details tab
- In the Property dropdown, select Parent, which names the device directly above this one in the USB tree
- For a direct speed reading, install the Windows SDK with Debugging Tools, run USBView and select the device to read its bus speed. SuperSpeed means the USB 3 link is up, while High means it fell back to USB 2
- If the speed is wrong, change the cable first, then the port, and then remove anything in between, checking the speed again after each single change
Turn off USB selective suspend with powercfg
USB selective suspend lets the hub driver power down a port that it thinks is idle. For a keyboard that saves power, but for a DMA card it means a device that vanishes while you are not looking. The GUIDs below are the standard USB settings subgroup and the selective suspend setting, and a value of 0 disables it. Run these commands in an Administrator prompt on the SECOND PC only.
powercfg /setacvalueindex SCHEME_CURRENT 2a737441-1930-4402-8d77-b2bebba308a3 48e6b7a6-50f5-4782-a5d4-53bb8f07e226 0
powercfg /setdcvalueindex SCHEME_CURRENT 2a737441-1930-4402-8d77-b2bebba308a3 48e6b7a6-50f5-4782-a5d4-53bb8f07e226 0
powercfg /setactive SCHEME_CURRENT
powercfg /query SCHEME_CURRENT 2a737441-1930-4402-8d77-b2bebba308a3Warning
Turn off USB power saving in Device Manager too
Disabling selective suspend in the power plan is necessary but often not enough. USB Root Hub and USB Hub devices can also have their own Power Management tab in Device Manager, though not every hub shows one. Where the tab exists, the Allow the computer to turn off this device to save power checkbox is ticked by default, so clear it on every hub in the path. If a card still disappears after an idle period with both settings changed, suspect the cable or the port before you suspect the card.
Common USB problems and their fixes
Each row matches a symptom that people commonly search for. Work down the list in order, because each fix is cheaper than the one after it.
| Symptom | Likely cause | Fix |
|---|---|---|
| Device reports High speed instead of SuperSpeed | A USB 2 or charge-only cable, or a port that looks like USB 3 but is not | Swap to a data-rated USB 3 cable, then move to a port that the board documents as USB 3. Check the reported speed again after each change |
| Read rate collapses whenever a webcam or external drive is active | Both devices sit behind the same host controller and are sharing its bandwidth | Move the other device to a port on a different controller, or unplug it for the session |
| Device disappears after a few minutes of inactivity | USB selective suspend, or a USB Root Hub still allowed to power down | Disable USB selective suspend in the power plan, then clear the power-management checkbox on every hub in the path that shows it |
| Works on one rear port, fails on the port beside it | The two ports are on different controllers and only one has a healthy driver and enough power budget | Keep the card on the port that works and label that port, because ports are not interchangeable even when they sit side by side |
| Stable until a dock or hub is added anywhere on the machine | The hub added a layer and renegotiates the shared upstream link when anything changes | Remove the dock from the card's path permanently and use it only for a mouse, a keyboard and a monitor |
| Unknown USB device, descriptor request failed | The link is too marginal to complete enumeration — usually the cable, sometimes a damaged socket | Try a short, known-good cable on a different rear port, and if a known-good cable fails on two controllers, suspect the card's socket |
USB questions
Can I use a powered hub if I really need more ports?
For peripherals, yes, but not for the card as a default. If you have no other choice, use a powered hub with nothing else attached, and confirm the read rate with a test before you trust it.
Does cable length matter?
Yes, because USB 3 signalling tolerance drops with length, and a cheap long cable is a common cause of intermittent dropouts. Use the shortest cable that reaches comfortably.
How do I know which ports share a controller?
In Device Manager, choose View and then Devices by connection to see the real tree, where anything under the same host controller shares that controller. USBView shows the same tree with speeds attached.
Will a USB 2 port work at all?
It will usually enumerate, but throughput will be heavily throttled, so treat a USB 2 link as a diagnostic result rather than a setup to keep.
Does it help to disable other USB devices in Device Manager?
Rarely. Physically unplugging them is more reliable and easy to reverse, whereas disabling them leaves you with a machine whose behaviour you have to remember later.
Sources
Apart from the two listed references, the material on rear ports, shared controllers and dropouts comes from the team's measurements on its own machines.
- 01Windows debugging tools (Microsoft)
where USBView, the tool the page uses to read a port's negotiated speed, comes from
learn.microsoft.com
- 02USB device descriptors (Microsoft Learn)
what a device descriptor is, which is the read that fails in a descriptor request failure
learn.microsoft.com
Read next
Still stuck? Open a ticket on Discord
All guides