• Some users have recently had their accounts hijacked. It seems that the now defunct EVGA forums might have compromised your password there and seems many are using the same PW here. We would suggest you UPDATE YOUR PASSWORD and TURN ON 2FA for your account here to further secure it. None of the compromised accounts had 2FA turned on.
    Once you have enabled 2FA, your account will be updated soon to show a badge, letting other members know that you use 2FA to protect your account. This should be beneficial for everyone that uses FSFT.

Why is latency so much higher on USB than SATA?

Trackr

[H]ard|Gawd
Joined
Feb 10, 2011
Messages
1,786
If I connect an SSD via SATA, I get 0.5ms latency.

If I connect the same SSD via USB, I get 5-12ms latency.

Is it impossible to change this? Aren't both devices connected to the same motherboard via the same MCP? Is the plug-n-play feature the culprit?

Seems to me like if USB 3.0 could have the latency of SATA, it would be an overall win for everyone.
 
It's likely because on the P67 boards USB 3.0 is not natively supported in the chipset, so it has to go from the added-in chip through the system bus.

just a guess.
 
Do you think that the latency would be lower on a USB 3.0 PCIe x1 card?
 
The latency is inherent in the USB protocol - there is no way to lower it (although USB 3.0 may have lower latency than 2.0). SATA is designed for low latency to support hard drives, while USB was designed for multiple applications where latency isn't such a big deal.

Do you think that the latency would be lower on a USB 3.0 PCIe x1 card?

No.
 
The latency is inherent in the USB protocol - there is no way to lower it (although USB 3.0 may have lower latency than 2.0). SATA is designed for low latency to support hard drives, while USB was designed for multiple applications where latency isn't such a big deal.



No.

Why can't they make a USB port with low latency? Is it impossible or just not a priority?
 
Why can't they make a USB port with low latency? Is it impossible or just not a priority?

I don't think it is possible, the latency is part of the communication protocol and can't be eliminated. Just a design decision when it was developed.
 
I don't think it is possible, the latency is part of the communication protocol and can't be eliminated.

And they can't change or create a new protocol because it wouldn't be backwards compatible?

Why don't they just make a USB 3.0-Low-Latency slot..

Oh wait, they already did - it's called eSATA.

Well, here's hoping they manage it with USB 4.0.
 
I'm guessing it was a conscious decision - they are trading latency for simplicity and redundancy since USB supports so many different devices of varying speeds/requirements. SATA supports only high-data transfer devices, so they could make different design choices.
 
Must one sacrifice redundancy for latency?

I'm not a network engineer, but I think the answer is yes. Just like ethernet, USB does a lot of handshaking - sending acknowledgements back and forth for the purposes of ensuring data transmission, and that adds latency.
 
The latency is inherent in the USB protocol - there is no way to lower it (although USB 3.0 may have lower latency than 2.0).
Actually, USB is pretty flexible. You can have high bandwidth OR low latency OR high bandwidth AND low latency BUT no guarantee of delivery. Like SCSI, USB is a shared line, so if transfers aren't interrupted frequently they will tend to monopolize the bus (remember how if you gave your HDD a low SCSI id, nothing else would work).
 
Actually, USB is pretty flexible. You can have high bandwidth OR low latency OR high bandwidth AND low latency BUT no guarantee of delivery. Like SCSI, USB is a shared line, so if transfers aren't interrupted frequently they will tend to monopolize the bus (remember how if you gave your HDD a low SCSI id, nothing else would work).

A little over my pay grade at this time, but I think I see where you're going.

So, how do I make my USB devices function with low latency?
 
but low latency here is realitive.

Low latency usb is still much higher latancy than sata is. And like the previous guy said, it has to do with handshaking. There is only one data path in usb, and the host controls that path, it has to poll the usb devices and ask for the data. If the data isn't ready, it has to continue to ask till it gets a reply. At some point though, it needs to stop asking, to check other devices, like your keyboard and mouse, to see if they have anything to do.

SATA on the other hand, can only be connected to a single end point, and has two data paths, so the drive can send data when ever it's ready, without waiting.
 
Low latency usb is still much higher latancy than sata is. And like the previous guy said, it has to do with handshaking. There is only one data path in usb, and the host controls that path, it has to poll the usb devices and ask for the data. If the data isn't ready, it has to continue to ask till it gets a reply.
What you're describing is ascynchronous transfer, but there is synchronous USB as well. Synchronous USB does not have handshaking. However, there is no guarantee of delivery.

So, how do I make my USB devices function with low latency?
AFAIK you would have to write a storage filter for your device that uses a different USB transfer mode:
http://www.beyondlogic.org/usbnutshell/usb4.shtml#Bulk
http://technet.microsoft.com/en-us/library/cc939124.aspx
 
Last edited:
thefree is correct. However, the reason nobody does it is because when shit goes wrong the customer ultimately blames the company and it will be there fault. Even 1394 has a similar mode, but it rarely gets used (in aerospace, we didn't even remotely think of using it on the f35...which is running fire wire)

Company: If you pour gas on yourself and light it, you will get burned.
....
Customer a few hours later: I got burnt, why didn't you stop me.
Company: We told you what would happen.
Customer: Well, I didn't know it would be that bad, it is your fault for not stopping me.

Lawyer: Fuch yeah, payday bitches.

--------

Asynchronous USB provides the best balance betweeen speed & integrity when supporting near inifinite devices. My guess is your pipedream is to run an OS or games on an external USB drive and want to act like your normal PC?
 
thefree is correct. However, the reason nobody does it is because when shit goes wrong the customer ultimately blames the company and it will be there fault. Even 1394 has a similar mode, but it rarely gets used (in aerospace, we didn't even remotely think of using it on the f35...which is running fire wire)

Company: If you pour gas on yourself and light it, you will get burned.
....
Customer a few hours later: I got burnt, why didn't you stop me.
Company: We told you what would happen.
Customer: Well, I didn't know it would be that bad, it is your fault for not stopping me.

Lawyer: Fuch yeah, payday bitches.

--------

Asynchronous USB provides the best balance betweeen speed & integrity when supporting near inifinite devices. My guess is your pipedream is to run an OS or games on an external USB drive and want to act like your normal PC?

Yeah, exactly.

And I'm sorry - by "Write storage filter", thefree, are you referring to doing so with a programming language?
 
Back
Top