Benchmarking USB and Thunderbolt Controller Throughput
Benchmarking USB and Thunderbolt controllers requires a strict methodology to isolate the controller's actual performance from external hardware and software bottlenecks. This article outlines the best practices for testing these high-speed interfaces, covering hardware selection, system configuration, software tools, standardized testing protocols, and data interpretation.
Eliminate Hardware Bottlenecks
To test the controller rather than the peripheral, the connected test device must be faster than the interface itself.
- Exceed Interface Speeds: Use a high-end PCIe Gen 4 or Gen 5 NVMe SSD housed in a bridge/enclosure rated for the maximum speed of the port (e.g., a USB4 or Thunderbolt 4 enclosure for 40Gbps ports).
- Verify Cable Integrity: Only use USB-IF certified or Intel-certified Thunderbolt cables. Use passive cables under 0.8 meters whenever possible to avoid signal degradation and latency introduced by active cable repeaters.
- Bypass Hubs: Connect the test device directly to the motherboard's rear I/O or the laptop's chassis port. Front-panel case connectors and external docks introduce trace-length issues and additional controller overhead.
- Check PCIe Lane Allocation: Consult the motherboard manual to ensure the USB or Thunderbolt controller is not sharing PCIe lanes with other populated M.2 slots or PCIe expansion cards, which can artificially halve the controller's bandwidth.
Configure the System and OS
Default operating system settings prioritize power saving over maximum throughput. Adjust these settings before testing.
- Update Firmware and Drivers: Install the latest motherboard BIOS, Thunderbolt NVM firmware, and USB host controller drivers.
- Adjust Power Plans: Set the operating system to the "High Performance" or "Ultimate Performance" power plan.
- Disable Power Saving: In the OS power settings, disable "USB selective suspend" and "PCI Express Link State Power Management."
- Enable Write Caching: In Windows Device Manager, open the properties of the external test drive, navigate to the "Policies" tab, and select "Better performance" to enable write caching. This ensures the OS does not bottleneck write operations.
Select Appropriate Benchmarking Software
Relying on a single piece of software can yield misleading results. Use a combination of synthetic and real-world tests.
- CrystalDiskMark: Ideal for measuring peak
sequential and random read/write speeds. Configure the settings to "NVMe
SSD" mode (using the
SEQ1M Q8T1andRND4K Q32T16profiles) to fully saturate the controller's bandwidth. - ATTO Disk Benchmark: Useful for visualizing how the controller handles different file transfer sizes (from 512B to 64MB) at various queue depths.
- Iometer: The industry standard for sustained workloads. Use this to test controller stability and performance degradation over extended periods (30+ minutes).
- Real-World File Copy: Supplement synthetic tests by timing the transfer of a single 50GB compressible file (like a video) and a 50GB folder containing thousands of small files.
Execute a Standardized Testing Methodology
Consistency is required to produce repeatable and comparable data across different systems.
- Close Background Processes: Terminate all non-essential background applications, especially system monitoring software (e.g., HWInfo, iCUE) which constantly poll the system bus and reduce throughput.
- Prevent Thermal Throttling: High-speed external SSDs and motherboard controllers generate significant heat. Point an external fan at the test enclosure and allow a 5-minute cool-down period between test runs.
- Avoid SLC Cache Exhaustion: Do not use a test file size in your benchmark that exceeds the external SSD's SLC cache. If the drive drops to native TLC or QLC speeds during a test, you are measuring the SSD's limitation, not the controller's. Keep the test drive under 25% total capacity.
- Test Multi-Port Saturation: Most motherboards route multiple physical USB ports through a single host controller. To truly test the controller, run benchmarks on two ports simultaneously to see how the controller manages bandwidth splitting.
- Average the Results: Run each benchmark at least three times, discarding anomalous runs caused by OS background tasks, and average the final numbers.
Account for Protocol Overhead
When analyzing your results, you must account for protocol encoding and bandwidth reservation. A controller will never achieve its theoretical maximum rating in real-world data transfers.
- USB 3.2 Gen 2 (10Gbps): Uses 128b/132b encoding. Expect a maximum real-world throughput of roughly 1,000 to 1,050 MB/s.
- USB 3.2 Gen 2x2 (20Gbps): Expect a maximum real-world throughput of roughly 2,000 to 2,100 MB/s.
- Thunderbolt 3, Thunderbolt 4, and USB4 (40Gbps): While rated at 40Gbps (5,000 MB/s), these protocols reserve bandwidth for DisplayPort video output and rely on PCIe tunneling, which enforces packet size limits. The maximum theoretical data throughput for storage over a 40Gbps Thunderbolt/USB4 controller is capped at approximately 3,100 to 3,200 MB/s (32Gbps of PCIe data allocation). Achieving results in the 2,800 to 3,150 MB/s range indicates the controller is performing at its absolute limit.