PS/2 Or USB?
Before we begin our comparison of PS/2 and USB, we want to cover a few basics we feel are essential to understanding both technologies better. We don't want to write a treatise on USB or bore you with technical analysis, so we'll stick to the basics.
Bouncing and Delay
All keyboards, including rubber and plastic devices (rubber dome keyboards and so on) are affected by these phenomena. They are a result of less-than-100% contact resistance, which gives rise to a rapid open-close-open symptom. A general delay is therefore built-in to evaluate the switching operations and check against multiple switching sequences. According to the quality of the contact, the delay is between 2 and 50 ms.
A good set of Cherry MX switches, for example, needs 5 ms to produce clean keystrokes. For this reason, the discussion about lag time and high sampling rates can go on and on, but a certain delay is always there! Much-vaunted gold contacts allow this intentional delay to be somewhat shortened. However, it cannot be completely eliminated.
On the other hand, gold-plated USB connectors are nonsense. They offer no advantages and are nothing but a marketing stunt.
What on Earth is NKRO?
N-key rollover is where you press a variable number of keys simultaneously, and the keyboard is able to register them. From a purely technical standpoint, this only works with PS/2 keyboards.
This capability should not be confused with anti-ghosting, which many vendors selling gaming keyboards boast about. That technology employs a set of technical tricks to provide an elegant error prevention system, but it has nothing to do with the unlimited simultaneous pressing of multiple buttons.
3KRO and 6KRO
These cryptic abbreviations represent the number of keys that can be simultaneously pressed on a USB keyboard before blocking begins. In general, this number is limited to three (3KRO), but special gaming keyboards offer extended functionality (often incorrectly called anti-ghosting) that allows simultaneous strikes of six keys, along with the continuous functioning of various keys used in common combinations, such as Shift, Control, Alt, Alt Gr, and so on.
Key Blocking, 2KRO
Here, the controller limits the number of keys that can send input at any given time. Usually, only the signal from two keys, as well as the Shift and Function keys, are allowed. This is known as 2KRO. The restriction also represents the simplest anti-ghosting function.
Old-School PS/2 or USB?
There are two schools of thought, creating a playground for marketing strategists and providing fodder for endless conflict in online forums. But why argue? USB and PS/2 are like two different pairs of shoes; they are difficult to compare. Take a look at the first block diagram:
We see that USB and PS/2 are isolated from one another. So why do so many people continue to support the ancient PS/2 standard? So-called n-key rollover is one reason. As mentioned, technically, the simultaneous release of any number of keys is possible only on a PS/2 port. In order to shed some light on why, it's important to clarify two variables: access and transfer rate.
Because USB operates in polling mode, it does not interrupt a device's function (in contrast to PS/2). A wired USB keyboard, however, provides an interrupt packet when it wants to input an action, which is immediately returned to the host after receiving an IN token. The host responds with an ACK and executes the interrupt. If no interrupt is executed, the function provides a NAK. The problem arises when many of those packets are sent in a short period, which is what would happen if you hit a number of simultaneous keystrokes. A real NKRO is therefore not possible. Polling, however, plays no role in PS/2, where the interrupt is directly addressed.
Theoretically, USB suffers from performance problems when many devices are connected to the computer simultaneously. For example, when a printer, scanner, and webcam simultaneously place data transfer demands on USB, those devices are forced to share the available bandwidth. This can lead to errors.
Let's think this through. The connection (pipe) to a device recognizes four kinds of data transfer:
- Control transfers (error corrections)
- Bulk transfers (large quantities of data when scanning, printing, and copying files, with bus utilization up to 100%)
- Interrupt transfers (for example, from the keyboard or the mouse)
- Isochronous transfers (language, video, multimedia, bus utilization up to 80%)
From a purely technical standpoint, it should be possible to guarantee exclusive bandwidth reserves and minimal latency for interrupt transfers on the bus. Unfortunately, this capability is not supported by normal USB controllers on a per-device basis. A special solution would have to be developed, which would be neither cost-effective nor worth the effort. PS/2 ports consequently remain best for keyboard connections. At least that's the theory. How do things play out in practice?
We can see another problem in this next block diagram. The last one was hardware-oriented. Now we're looking at the operating system. The input from USB goes through considerably more stations than the direct input from PS/2. If the system is running under full load, another bottleneck could theoretically arise. It is important to stress the fact that this could happen; that's not a sure-thing.
Putting Things Into Perspective
Despite all of this theory, USB is more or less on equal footing in the real-world, even though PS/2 is faster (more direct) and offers NKRO capability. After all, you're probably not printing documents and gaming at the same time. Really, the only hardware combination we'd be worried about would be a fast storage device connected to the same USB root port, since bus utilization of up to 100% is possible in that situation. If you really needed to, you could always disconnect high-bandwidth USB devices when they aren't being used.
The often-recommended trick of turning off USB webcams and microphones won't help. Isochronous transfers always have an open window of at least 20%. So much for the myth of data rates and input lag. Delays will always occur, whether you want them to or not. First, there's the fact that keyboards have a built-in delay. And from there, it's up to the keyboard itself. Which combinations of keys in which quantities can be struck simultaneously?
PS/2 is like an expensive luxury watch: it's a nice feature, but you can really do without it. If you're faced with the choice and between PS/2 and USB and you already own a keyboard with advanced switching mechanisms (see the next chapter), PS/2 is still a good choice. Otherwise, USB is often just as good. To be honest, who really strikes six or more keys simultaneously and owns the kind of keyboard that can take advantage of PS/2?