Key Blocking & Ghosting
Ghosting is when you press two keys on the keyboard, and a 3rd key -
which you didn't press - gets sent to the PC as well. This is very
rarely seen on even the cheapest modern boards, because manufacturers
have the habit of limiting the rollover so that ghost keys are always
Key Blocking is as simple as it sounds; you experiencing it when you
reach your maximum key roll over. So if you press 2 keys, and the
third key is blocked on your board; then you just experienced blocking
because your keyboard is only 2KRO.
Key Rollover (#KRO & NKRO)
NKRO is when you can press as many keys as you want at the same time,
and all of them go through. This is similar to what some 'gaming
keyboards' incorrectly market as "anti-ghosting", even though Logitech
and Razer only apply it to the WASD cluster. Note that right now only
PS/2 keyboards can exhibit full n-key rollover; though Microsoft and
Ducky are just two companies who have already looked at designing NKRO
xKRO, where x = Any Number, is the key roll over of your board; and
stands for the maximum number of keys you can press without
experiencing any key blocking.
Many USB mechanical Keyboards are labeled as 6KRO, meaning any 6 keys
can be pressed at once without the user experiencing blocking. This is
generally enough for most users. Though a limited number of games may
have a problem with 6KRO. USB keyboards with 6KRO also allow for a
maximum of 4 modifier keys to be used with those 6 normal keys. These
modifiers include CTRL, ALT, Shift, & Super (Windows, Command, or Meta
Key.) Sometimes this also includes the FN key present on select
All types of key switches - including rubber domes - do this. When you
press a key, the switch "bounces" on and off very quickly as it sets
into place. This causes keys to register multiple times for each
press. Because of this, keyboards need to implement some sort of
debouncing delay - so that once you press a key, the controller waits
a certain amount of time before registering a keypress. As an example,
Cherry MX switches need 5ms of debouncing time, while rubber domes
need longer (exactly how long depends on their quality).
Polling Rates and Response Times
While it is very useful for mice, it's just about meaningless for
keyboards. Let's assume for a minute that all switches have the 5ms
debouncing time of Cherry MX switches (which is being very generous).
Even if you had super human speed and reflexes, every single key would
be delayed by at least that much. So really, any polling rate over
200Hz (at best) is absolutely useless, and nothing but market hype. It
may even be a bit detrimental, because you'd be wasting CPU time
polling the keyboard unneededly. And unlike USB keyboards, PS/2 boards
aren't polled at all. They simply send the signal to the PC whenever
they are ready to, which causes a hardware interrupt, forcing the CPU
to register that keystroke.
PS/2 or USB?
PS/2 wins on three fronts: First, it supports full n-key rollover.
Second, PS/2 keyboards aren't polled, but are completely interrupt
based. And third, it is impossible for it to be delayed by the USB bus
being used by other devices. There are two types of USB transfer modes
- the interrupt transfer mode (USB polls keyboard, when key is sensed the USB controller sends the interrupt to the CPU), and the
isochronous transfer mode, which reserves a certain amount of
bandwidth for the keyboard with a guaranteed latency on the bus.
Unfortunately, there are absolutely no keyboards made that use the
latter, because special controllers would have to be used, thus making
it cost prohibitive.
So if your keyboard supports both PS/2 and USB, and your PC has a PS/2
port, there's no reason not to use it.