Verifying USB connection speed (USB 3 or USB 2?)

70

36

I've purchased several new USB 3 capable drives to use with my new (USB 3 capable) laptop. They connect ok but I suspect they're silently falling back to USB 2. The sustained transfer rates I'm seeing are around 30 Mb/s for both reads and writes, well within the practical limits of USB 2. One of the drives in particular is rated for transfers well in excess of 100 Mb/s so this is surprisingly (and suspiciously) low.

My question is.. how can I conclusively determine the USB connection speed being used by these devices?

I've poked about in the drive properties and run various diagnostic tools (like SIW). The only information I can extract is that they are indeed connected over USB (duh) but no info on the specific connection speed. The only suggestions I can find online are to benchmark the drives and "if its over 30-40 Mb/s it must be USB 3!" but this seems generally pretty vague and, in my case, inconclusive.

Details:

  • Laptop is an Asus G75VW running Windows Server 2008 R2 Standard
  • Reading and writing to the internal SSD (so no bottleneck there)
  • USB drives are a Toshiba Canvio Basic A1 2.5" 1TB USB 3.0 External and a SanDisk CZ80 Extreme 64GB USB3.0 Flash Drive

EDIT/SOLVED -- My root problem here was driver related; I'd tried to manually install Intel USB 3.0 eXtensible Host Controller Drivers for Windows 7 on Server 2008 R2 (since no server drivers are available). In doings so I appear to have missed one or more devices. By following these instructions I've been able to coerce the driver installer to run correctly, fixing the issue. The SanDisk is getting 170 MB/s reads, 130 MB/s writes and the Toshiba is getting around 110 MB/s.

Molomby

Posted 2012-09-22T05:28:39.017

Reputation: 1 486

A related/similar problem reported here.. http://superuser.com/questions/258105/how-many-mb-sec-can-i-expect-copying-to-usb-3-0-enclosure-with-sata-drive

– Molomby – 2012-09-22T05:32:33.283

I've also just tested these drives on a USB 2 port on a different machine and the transfer speeds are near identical; 30-32 Mb/s for both reads and writes. Seems a lot like I'm hitting the high end of USB 2 in both cases... – Molomby – 2012-09-22T05:34:08.587

I've seen that happen with small files - i.e. jpg, txt, doc etc. < 1MB - but once the files are bigger in size - > 250MB - the speeds are much better. When you were checking the speeds did you try copying small files and/or bigger ones ? – Darius – 2012-09-22T05:55:42.187

1

Have you tried some software bench-marking for USB ?

– Darius – 2012-09-22T05:59:55.267

@Darius -- Yep, I've been using ATTO Disk Benchmarker which tests reads and writes with different file sizes. – Molomby – 2012-09-23T09:14:39.183

(This is more of a comment but I don't have the rep) See here: http://superuser.com/questions/388174/show-usb-speed-for-all-devices-in-windows-7 for how to determine what speed a USB device enumerates at using USBView or USBTreeView

– fbo – 2013-11-29T22:46:11.677

Answers

76

Another way to check whether you are using a USB 3.0 connection or not is to use USBView.exe from Windows Driver Kit (WDK)

You could also use USB Device Tree Viewer, which is very similar to USBView.exe and you won't have to download the huge WDK to use it.

USB Device Tree Viewer

When you run USB Device Tree Viewer, you'll see a list of USB Host Controllers (there are 3 on my notebook). You could cycle through each port of the USB Root Hubs attached to these controllers to see what's connected to that port. You'll find that each USB device connected to your computer (mouse, WiFi or Bluetooth adapter, webcam, etc.) show up on one of those ports.

Detach all flash drives and external hard disks from your computer and look for a USB controller that has no devices attached to any of its ports (on my computer, it is USB xHCI Compliant Host Controller). Now attach a flash drive or external HDD that you wish to test and you'll notice that it is connected to one of the ports of the USB Root Hub attached to that controller.

If you attached a flash drive, it would show up as:

USB Mass Storage Device - [ASSIGNED_DRIVELETTER]

Click on it and look for the Connection Information section on the information pane to the right.

USB Device Tree Viewer - USB Connection Mode

If the device is connected in USB 3.0 SuperSpeed mode, it will show:

Device Bus Speed         : 0x03 (SuperSpeed)

For USB 2.0, it will show:

Device Bus Speed         : 0x02 (High-Speed)

For USB 1.1, it will show:

Device Bus Speed         : 0x01 (Full-Speed)

Besides this, there are also several other methods that are explained in great detail here

Vinayak

Posted 2012-09-22T05:28:39.017

Reputation: 9 310

4Some additional info: The little 'H' and 'S' in the great tool 'USB Device Tree Viewer' are only visible, if you run Windows 8.x (Text from Uwe Siebers site: "Windows 8 has native support for USB 3.0 SuperSpeed and an enhanced USB stack which delivers more information, e.g. which speed each port supports. Therefore UsbTreeView can show a 'H' in the icon of the high-speed ports and an 'S' for the SuperSpeed ports.") On Windows 7 or older, you will not see this character! – PeterCo – 2014-06-29T16:38:39.297

Very good to know PeterCo, thanks! I was so happy to have found the tool that I missed that note. In fact, Windows 8 displays HS/SS information natively in the control panel, so if all you want to know is bus speed, you don't even need this tool. I noticed that on my Windows 7 system, the H/S badges aren't missing though, but drives will always display 'H' even when obviously running at SuperSpeed. – Daniel Saner – 2015-05-17T10:32:46.223

Using USB Device Tree Viewer; I see Device Bus Speed : 0x00 (Low-Speed) & Device Bus Speed : 0x01 Full Speed.. Are they USB 1.1 speeds? – Dave Lawrence – 2015-08-18T13:13:21.150

@daveL I'd say so, yes. According to Wikipedia, they're USB 1.x speeds.

– Vinayak – 2015-08-18T14:35:06.313

3Worth noting that mine says 0x02 but the entire line is Device Bus Speed : 0x02 (High-Speed) -> not true, see below in Connection Information V2. And in there it shows Usb300 as 1 (true) and has a flag that indicates it is at SuperSpeed. So, the output may look a little different. – AHungerArtist – 2016-11-24T17:19:05.997

@AHungerArtist You're right but I believe Connection information V2 was added in a later version of the app. When I wrote the answer 2 years ago, it didn't exist. – Vinayak – 2016-11-25T14:57:47.890

1Your link to "Windows Driver Kit (WDK)" is broken, and shows advertisements for a web browser called Edge on top – Ferrybig – 2018-04-04T09:27:44.147

@Ferrybig Hahaha. That cracked me up. Please feel free to edit my answer and update the URL. However, I doubt anyone would want to download the WDK when USB Device Tree Viewer is really all they'll need. – Vinayak – 2018-04-04T15:49:40.197

1Although I resolved this issue a while back, this answer would have been a great help. – Molomby – 2014-02-11T23:35:39.267

7

The short answer is there's no way, from an end-user POV, to conclusively test because you'd need visibility to the internal bus to measure the effective transfer rate. The suggestion to measure the actual throughput as seen from your terminal devices is the next best alternative.

However, you should check to see that your laptop (Windows device) actually classifies the USB 3.0 connection as a "super" data rate capable connection.

There are four USB specs: 1.0, 1.1, 2.0, and 3.0. But to confuse things, each USB spec has more than one data rate assigned to it. Those rates are "low", "full", "high", and "super."

Therefore, benchmarking data throughput solely on speed is not necessarily conclusive as to what the actual spec being used. Thus, a USB 3.0 port may not be actually running at a "super" rating but at a "High" rating instead.

On a Windows machine, check the data rating of the USB root/hub - Goto: Device Manager --> USB Controllers --> USB Root Hub (Right Click) --> Properties --> Advanced (Tab).

It should tell you the data rating for the USB hub/port. Once you know that, you'll know the maximum throughput from the computer's POV.

Low = 1.5 Mbps Full = 12 Mbps High = 480 Mbps Super = 5 Gbps

For other people reading this - then there's the actual transfer rate of the two devices (assuming point-to-point) that are communicating. For example, transferring something at USB 3.0/Super is going to be a tough between two endpoints comprised of 5400 RPM PATA drives.

John

Posted 2012-09-22T05:28:39.017

Reputation: 1 869

Thanks, a lot of helpful information here and answers my question well. – Molomby – 2012-09-23T09:15:22.457

5One point though, having now solved the problem (it was a driver issue), device manager is still reporting my "USB Root Hub" as "high-speed", despite achieving 100+ MB/s transfer speeds. It's worth noting I also see an "Intel(R) USB 3.0 Root Hub" but the properties window for it has no "Advanced" tab so it's data rate isn't available. – Molomby – 2012-09-23T09:22:31.987

4

If you still have the problem with poor data-transfer rates on Toshiba's USB 3.0 port(s) (in my case), just disable USB Legacy Emulation in BIOS. Even if the USB 3.0 controller is enabled in BIOS, the user always will get maximum 33-34MB/s against 77-85MB/s when legacy mode is off.

This solution probably will work on other brands with USB legacy devices support in their BIOS.

Update Personally found that there is another cause for slow USB3.0 transfer. The problem was in iusb3mon.exe - this monitoring app just did nothing but slowing the speed 2 times and more importantly stopped every Windows Backup of system drive/volume with 0x8007045D error during copy time! Everything returned to normal when I disabled the process

Update 2 Another problem are the cables and connectors. Pick a good quality ones - transfer rates tend to drop or fluctuate a lot due to loose connection between the cable connector and the socket! Also some cables are made with low quality copper wires (not enough copper or unknown alloy), improperly twisted in pairs or poorly soldered with the connector!

1000Gbps

Posted 2012-09-22T05:28:39.017

Reputation: 167

+1 for usb3mon tip – Gaspa79 – 2019-12-13T14:05:49.107

1

The difference between 2.0 or 3.0 is not only a matter of transfer rate but also transfer format. They are really different. I mean, 1.1 to 2.0 use the same format and 3.0 a different one. BTW, voltage use and wires use are also different; you may perform 2.0 traffic inside a 3.0 physical link but four wires inside this link will not be used.

This said, I cannot yet provide you a complete answer since I have the same issue. My strategy is to use a packet sniffer (Wireshark) and try to locate a single sequence inside 3.0 traffic that cannot be part of 2.0 traffic. for ex: 3.0 handle "burst" but not 2.0, 2.0 does not handle streaming when 3.0 do (for block endpoints), 3.0 protocol use a specific "Bus interval Adjustment Message" to adapt time intervals when 2.0 use a single interval (1ms/125µs).

Now I have to say that it is risky to establish 2.0 or 3.0 speed use diag by bencmarking data transfer. 5 GB/s is a theorical speed inside the link limited by device's technology. Only SSD drives may make the differences. BTW We mustn't confuse file transfer rate with data transfer rate. a transaction contains many other things than data itself: sync packet, errors, acknowledges, etc. now, it's also true that 2.0 will NEVER go upper that 480Mb/s.

seb

Posted 2012-09-22T05:28:39.017

Reputation: 11

If I recall correctly - dosen't wireshark only do USB capture in linux? – Journeyman Geek – 2014-07-04T13:02:50.993

@JourneymanGeek I think you are right.. – Fazer87 – 2014-07-04T13:16:04.107

1

Try TeraCopy. It is a Windows file transfer tool that shows the transfer rate of connected drives as you copy files so you can experiment with various drives file types and sizes.

Rfcoop

Posted 2012-09-22T05:28:39.017

Reputation: 11