Does USB version speed matter for input devices?

15,426

Solution 1

If you don't notice a difference, it might not really matter. You can test your input delay by plugging in the mouse directly and measuring the polling rate, then measuring again through the hub.

Look for the download link that says "Direct Input mouse rate tool" here: https://blog.codinghorror.com/mouse-dpi-and-usb-polling-rate/

There are many tools that measure polling rate, here is a webpage that claims to do it. https://zowie.benq.com/ja/support/mouse-rate-checker.html

Most consumer mice are 125hz which is at most a 8ms delay. Gaming mice might go up to 1000hz which would be 1ms response time. I think at least USB 2.0 is required for 1000hz. 7ms is not much of a difference.

The actual time it takes for a signal to travel from the mouse through the hub and to the computer is likely less than 0.1ms. I think the most significant factor is the polling rate, or the hardware in the mouse. Some monitors have an input lag of more than 10ms. If you are gaming, a graphics card can take anywhere from 5ms to 100ms to display a frame, depending on things like vsync buffers and render time.

Solution 2

I expect the cost to be minimal. USB 1.1 was fairly widely popular, and wasn't considered slow for such devices. (It was just too slow for certain other types of devices.)

In many cases, all you need to worry about is the slowest link in the chain, also known as the bottleneck. It doesn't matter how fast other pieces of the communication can happen if there is one point which slows things down. If the mouse cursor feels instantly responsive and so the slowest point of the communication is the perception of the person interacting with technology that moves at the speed of computer circuitry, then there's no problem.

Keyboards really don't need tons of bandwidth. Even the few people who can type over 100 words per minute (like me) are probably only utilizing a bit more than 600 bytes per minute so any version of USB can handle that with ease. Gamepads that are similarly old will easily be satisfied with such old technology. (I'm not quite so sure about some of the newest gamepads, like ones that might also be compatible with modern video game consoles.) As for the mouse, you're likely fine but I could believe mouse movement might occasionally lag enough to be noticeable for some people. Certainly it would be within the realm of being quite tolerable for most people, but some people might be slightly annoyed.

The bigger impact may actually be how responsive other devices are, such as USB drives or networking devices that may benefit more from increased availability.

An example of where that isn't the case is 802.11, also known as wireless. If you have an 802.11ac device which is backwards compatible with 802.11n and 802.11g and 802.11b and perhaps 802.11a (the slowest of which is 802.11b), that 802.11b support actually really harms 802.11ac, even if it isn't being used much. The reason is that when the wireless access point does a routine 802.11b check, that requires that the equipment is unavailable for the amount of time it takes to communicate an 802.11b frame. And 802.11b frame takes a lot longer than an faster frame like an 802.11ac frame, so you could fit multiple 802.11ac communications in the time it takes for an 802.11b frame.

(That is a more extreme example. Similarly, and 802.11g frame would be faster than 802.11b but slower than 802.11n, and an 802.11n frame would be faster than 802.11g but slower than 802.11ac)

So, simply by plugging a USB 1.1 hub in, you might require more bandwidth/processing than some newer technology, using up more time with some motherboard resources. Perhaps the biggest impact would be upon other devices that could be using similar resources on the motherboard, and the most likely culprit may be other USB devices. It might place some circuitry into a slower-but-more-compatible mode, which might have side effects like slowing down transfer speed of a USB drive.

Related question: Why does Windows 10 assign different port numbers to the same USB port when plugging in 3.0 vs. 2.0 device? (grawity's answer shows that different USB controller circuitry gets involved for supporting older devices. In my opinion, what I think is likely is that using such older circuitry is not likely to be "more efficient because it distributes the load between multiple controllers". Rather, it is more likely that older communications standards will just slow things down overall, for reasons similar to the Wi-Fi example I described earlier.)

Solution 3

The additional delay from a USB hub is of order of tens of microseconds for low-speed hubs and under one microsecond for high speed hubs. Humans don't notice delays less than 100 milliseconds, and in fact many computer screens have a latency as long as 70 ms, which is about 1000 times longer.

So no, a 0.1% increase in total lag because of the USB hub will not matter in practice.

Solution 4

Difference in speed? Yes Noticeable difference? Probably not.

The "polling rate" of the mouse measures how many times per second (in Hz) the mouse reports its relative position to "the computer". A higher rate means it reports more frequently. Most mice these days are around 250 Hz, older mice are usually 125 Hz. Is the human eye be able to register the difference between a rate of 125 "movements" per second vs 250 per second? Probably not.

Some gaming mice are (or at least advertise to be) 1000+ Hz per second. Keep in mind that the higher, the Hz, the more CPU "power" is required to register the signal from the mouse.

DPI or dots per inch, is how far your mouse moves across the screen with each movement of the mouse. These are usually options on the mouse (gaming mice typically have a button you can push to change the DPI and maybe the color so you know your current DPI). DPI is important if you have a high resolution monitor (4k) where pixels are so small that moving across 100 of them is a much shorter distance than a low resolution monitor. On lower resolution a high DPI can actually work against the user as one small movement of the mouse can send the cursor flying.

Keyboards have a few different measurements for speed, but the difference is so negligible that these speeds are rarely even reported in technical specifications. Like mice, they have a polling rate, but again, differences are almost always negligible and having a high polling rate keyboard will consume more CPU resources. Keyboards also have a matrix scanning time (1ms - 10ms typically), which is how long it takes for the keyboard to scan all the keys (hardware dependent). If a key is pressed, it "stores" the key in a temporary buffer. Then an algorithm (.5ms to 10ms) determines if the event was "real", and if so, releases it from the temporary buffer and "hands it off" to await being sent to "the computer" (when is determined by the polling rate).

Now, to actually answer your question, USB versions have a "minimum bus interval", which impacts the theoretical maximum polling rate a peripheral device can have. For example: USB 3.1 has a minimum bus interval of 125 μs, so the theoretical maximum polling rate is 8000Hz. Here's what I could find:

USB 1.1 and 2.0 - Low Speed

Max Polling Rate: 125 Hz

USB 2.0 - Full Speed

Max Polling Rate: 1000 Hz

USB 2.0 - High Speed, USB 3.0, and USB 3.1

Max Polling Rate: 8000 Hz

*Keep in mind, however, that there are other factors that can impact peripheral performance, such as your operating system, and device drivers.

Share:
15,426
threeFatCat
Author by

threeFatCat

Updated on September 18, 2022

Comments

  • threeFatCat
    threeFatCat almost 2 years

    We know that USB v1 - v2 -v3 has different features and signal/transfer speed, I understand that storage devices will most likely benefit from the speed feature, but does the speed affect input devices such as mouse, keyboard and game controller?

    I found an old USB hub adapter/splitter which currently I dont know what USB version, I assume it's v1+ and I doubt if it's v2.0. If I plug it to laptop and plug my input devices to the splitter is there any noticeable speed difference (like input delay, etc)?

  • Ismael Miguel
    Ismael Miguel over 4 years
    The page is actually a nice find. I tried it on my boring NGS mouse at work, and it gave me 124-125hz, so, should be good.
  • Abion47
    Abion47 over 4 years
    As an interesting aside, the integrated touch pad on my laptop has a polling rate of ~124Hz according to that tool, whereas my Bluetooth touch pad is reported at ~88Hz.
  • Zeus
    Zeus over 4 years
    "100 milliseconds"? 0.1 s? This is very much noticeable. Maybe "microseconds"? But then it sounds quite optimistic. Either way, that depends on the sense; I guess we can hear 0.1 ms delay, but hardly see it.
  • Dmitry Grigoryev
    Dmitry Grigoryev over 4 years
    @Zeus 70 ms is a delay you already have on a typical LCD screen. If you notice it, you must be using CRT or OLED displays, but most people don't. With an additional low-speed USB hub, it will become 70.05 ms.
  • Zeus
    Zeus over 4 years
    Well, your statement was very general: "Humans don't notice delays less than 100 milliseconds". This by itself is obviously not true, for everyone. Every human will notice 0.1 s delay between a cause and effect, e.g. a flash and sound, or pressing a button and hearing the click. It may not matter (it is generally accepted that delays up to 200 ms are acceptable in GUIs), but humans detect even shorter delays with ease.
  • Dmitry Grigoryev
    Dmitry Grigoryev over 4 years
    @Zeus Indeed you can perceive a 100ms delay, even visually, in a carefully crafted experiment like two objects appearing near each other on the screen, and especially if you are told beforehand to look for a delay. What I'm talking about is a delay between an action from the user and the system's response. If you have a reference about users noticing such delays which are shorter than 100ms, I'd be happy to read it.
  • gronostaj
    gronostaj over 4 years
    I'm pretty sure LCDs had 16 ms reaction time some 15 years ago. 100 ms human reaction time doesn't sound convincing too. I think it's you who should provide proof for your claims.
  • Arvo
    Arvo over 4 years
    @gronostaj 16ms reaction time corresponds to refresh rate 60Hz and is simply delay between frames. Overall delay (from GPU to screen) is often longer - in addition to some signal delays LCD monitors may buffer 2-3 frames to allow calculate pixel overdrive compensation and other parameters. For action gaming this can be problem; monitors with higher refresh rate help.
  • Dmitry Grigoryev
    Dmitry Grigoryev over 4 years
    @gronostaj Did you read the answer I linked to? What kind of proof do you want on top of that?
  • gronostaj
    gronostaj over 4 years
    The 70 ms figure was measured for Sony HMZ-T1, a 2011 head mounted display. The "10+ 240 Hz frames" would correspond to 42+ ms and that's a 7 years old post. I can't find the claim of 100 ms human delay perception. It's quite a generic statement too and I'd like to see a clarification. How was it measured and when does it apply? Does it for example mean I can't see a difference for 10+ fps?
  • Dmitry Grigoryev
    Dmitry Grigoryev over 4 years
    @gronostaj 240 Hz is far from being standard even now, most screens I see around run at 60 FPS. You can't really sell a screen if people notice a lag while using it, so it's not noticeable in that sense. Anyhow, let's say that lag perception threshold is 42 ms. USB hub lag is still hundreds of times smaller.
  • David Balažic
    David Balažic over 4 years
    polling rate and latency are totally independent. And latency can not be measured with software only. And it is (typically) lower as transfer speed increases.
  • Falco
    Falco over 4 years
    @DavidBalažic I agree polling rate is different from latency, but it creates a lower bound for reaction speed. If a signal is only polled every 4 seconds, even if the latency of the signal is just one milisecond, a physical movement may take 4 seconds until it is registered by the system. A polling rate of 125hz means the complete latency (physical movement to signal reception) cannot be smaller than 8ms but it could as well be much higher.
  • Falco
    Falco over 4 years
    There is an important difference between polling rate and latency. Polling rate means how often I run to my mailbox to look for new mail - the mail could still be taking days from sender to my mailbox, even if I check my mailbox every hour. - But on the other hand, even if the mail-carrier is super-fast, if I only check once an hour, I will get an letter on average 30minutes after it arrives, so the average latency is at least 30min.
  • phuclv
    phuclv over 4 years
    it's not that USB 3.0 isn't compatible with win PE, but some USB 3.0 controllers are special and their drivers aren't included by default. Just use some tools to include the driver to the installation/recovery disk, or load the driver upon starting win PE. There are tons of tutorials on how to do that
  • David Balažic
    David Balažic over 4 years
    @Falco Polling does not create a lower bound for reaction. If the event happens just before the polling, then the "added" latency is zero. Regardless of polling frequency.
  • Falco
    Falco over 4 years
    @DavidBalažic that is why I wrote a lower bound for the average latency, assuming randomized or continuous events (like movement of a mouse)
  • Abdalrhman Hussin
    Abdalrhman Hussin over 4 years
    This suggests that USB 1.1 is restricted to 125Hz, but anecdotally I have a gaming mouse running at a verified 1000Hz out of a USB 1.1 hub
  • Admin
    Admin over 4 years
    That's a distinction between USB HID Boot Protocol and Report Protocol. Both protocols are available to USB 1.1 devices.
  • JeremiahBarrar
    JeremiahBarrar over 4 years
    @Falco the "delivery time" of the hub is likely around 0.00001 seconds, which is negligible.
  • Falco
    Falco over 4 years
    @JeremiahBarrar I think the biggest factors to delivery time are the internal memory of the hub (if they work like an extender, they will decode the signal, save it and resend it) - and the amount of traffic from other devices in the bus - since USB is like a single Lane road, all data needs to be enqueued serially. - but as far as tests go, all these factors seem negligible
  • MechMK1
    MechMK1 over 4 years
    I highly doubt that my graphics card takes 100ms to render a scene. Think about it: It would mean a constant 0.1 second delay for everything. Out goes my fancy 144Hz monitor. It's more like 7ms for a 144Hz monitor and 16ms for a 60Hz monitor (assuming maximum rendering time between frames). On a 100ms delay, it means a 144Hz monitor would refresh around 14 times before it would react to my input.
  • JeremiahBarrar
    JeremiahBarrar over 4 years
    I recommend doing some reading, there are many scenarios. Things like buffers or simply a slow graphics card can result in 100ms of delay. This is an extreme, the low end of 20ms that I mentioned is more likely. If you can render 144 fps then yes your render time is uniquely low.
  • MechMK1
    MechMK1 over 4 years
    @JeremiahBarrar I don't deem 144 fps to be particularly high. Usually I have around 200fps on most demanding games. However, 100ms rendering time would imply something around 10fps, which I would deem...not modern. Even for a 30fps monitor the graphics card has around 33 ms time to render the image.
  • Jake
    Jake over 4 years
    @LukeF It is possible to increase the effective polling rate via software (some operating systems raise or lower max polling rate) or hardware. Also USB standards set minimums, not maximums. So theoretically a device manufacturer can exceed the standard while still being compliant.
  • kbolino
    kbolino over 4 years
    Delay is a measure of latency, not throughput. It can take 100ms from the time your mouse produces a click signal until the corresponding change is visible on your monitor even with a very high frame rate. Of course, the response delay can't be less than the frame render time, but it can definitely be more. It takes time for the signal to reach the USB controller, time for the controller to send an interrupt, time for the driver to read the change from memory, time for the event to propagate from the windowing system to the program, time for the program to act on the event, ...
  • kbolino
    kbolino over 4 years
    ..., time for the graphics card to receive the rendering commands, time for the output to reach the framebuffer, time for the framebuffer contents to get pushed to the display, and time for the display controller to change the pixels. The frame render delay is just one stage of that pipeline.
  • pbfy0
    pbfy0 over 4 years
    I don't think 2.0 should be necessary even for 1000hz; 12 Mbps / 1000 hz = 1.5 kilobytes, and a mouse report should be orders of magnitude smaller than that.
  • Admin
    Admin almost 2 years
    If someone genuinely can’t perceive a 100ms delay, they probably have a neurological disorder. Anyone going from a 120hz monitor to a 60z will notice the sluggish cursor instantly. PCs are kind of a weird case because we’re used to the lag: danluu.com/input-lag