Posted by Eric Huang on May 29, 2012
When you plug in your USB 3.0 peripheral, like a USB flash drive, into a PC with it’s USB 3.0 Host inside, several things can
effect affect performance. These are both Hardware and Software as shown below.
A USB 3.0 xHCI Host is on the left. A USB 3.0 Device (Peripheral) is on the right.
Your Host hardware is labeled PC Hardware above. This host could could be PC, Tablet PC, Game Console (PS3 or XBox 360 or Wii), or your digital TV or BluRay player. If the hardware is fast, and has plenty of CPU cycles, then you can fast throughput. This still depends on the operating system.
For the green software layers, the operating system has to also enable fast throughput. If it’s loaded down with lots of applications or software, it will slow down, just like when you have too many windows open on your computer.
The speed of the application itself, the quality of the drivers, also impact performance. A well written driver uses memory correctly and uses parameter settings in USB to maximize throughput.
Going back to the Grey host hardware, the controller, in this case the USB 3.0 xHCI Host must be designed to enable full throughput. Also, you need to size the memory, the FIFOs that temporarily store data, must be big enough to receive and process incoming or outgoing data. So it’s best to maximize the size of these FIFOs.
The bus on the hardware must also be fast enough to move the data from the USB controller to the CPU.
The hardware must work with the OS and driver to transfer data into the system RAM for use by the CPU. For example, if you had a video card and the USB 3.0 Host competing for bandwidth on the same hardware bus, you might see a slow down in the USB throughput.
The USB 3.0 PHY must also be built correctly to both transmit cleanly and more importantly to receive data and clean it up over the USB cable. The USB cable can also
effect affect throughput. Bad cable, poorly consctructed, can interfere and mess up traffic travelling between the Client and the Host.
On the Client side, the peripheral, you Smart Phone, or Flash Drive, the same hardware and software factors can
effect affect throughput. In addition, if you have a spinning USB hard drive or a USB printer inkjet head, there may be mechanical limitations to speed as well
This also means that the NAND memory (hardware) is also one part of the system (possibly in both Host and Device) that can impact throughput. Slower NAND can slow overall throughput, while faster NAND like that found in the Lexar Triton. The Lexar flash drive which makes good use of USB 3.0 bandwidth as seen in the video demo here.
The Ideal System
The point is that USB throughput is not a function of just one element, the core and the PHY, but the entire system of software, buses, OS, and cables to ensure good throughput. For this reason, we have our demonstration showing our controllers and PHYs can achieve SuperSpeed USB 3.0 speeds of 400 Megabytes per second (or 4 Gigabits per second) in our idealized system. In our idealized system, we use RAM instead of NAND for storage. Since RAM is instantaneous, we aren’t limited by NAND read/write speeds. This helps to idealize the system, eliminating a possible latency. You can see the demonstration of our USB 3.0 digital and PHY IP here.
At a recent Synopsys meeting, our social media experts made a point about adding video to blogs:
Social Media Expert:
“We’ve found adding videos to our blogs has increased traffic to our blogs.”
Question from Audience:
“How do we know that people aren’t just watching the videos because we have good-looking people on in the videos?”
Social Media Expert:
“It can’t be. Eric Huang’s blog has gotten more hits. He has lots of videos, and he isn’t good-looking.”