2 ms·
Yeah, I'm really leaving out a lot of steps on the evolution to modern machines which I probably could have made more clear. In practice an "8042" keyboard cont
by jcrawfordor 4y ago
Yeah, I'm really leaving out a lot of steps on the evolution to modern machines which I probably could have made more clear. In practice an "8042" keyboard controller was never really that common, as a lot of machines used the 8048 instead. That said there were plenty of laptops especially that used the 8048 for everything we'd expect in a modern EC like the LEDs, screen backlight, etc. The general ACPI architecture still reflects this history in some ways.
NKRO is an interesting issue and I'll probably write a post on it one day, it's not actually a limitation of USB HID as many people think but there is a set of factors that mean that USB HID keyboards usually do not support NKRO (has to do with the BIOS and EFI specs). It's less of an issue these days and there are more NKRO keyboards on the market that don't require device-specific drivers.
That said one of the original motivations for GAMERS to stick to PS/2 is the fact that the PS/2 controller was capable of interrupts, while the USB controller was not, and there were plenty of people who felt that this added up to noticeable latency (perhaps possible under high load conditions but I tend to doubt it). This situation has changed these days with USB 3.0 but I don't see a lot of USB 3.0 keyboards. In practice I think processors got fast enough and the polling loop short enough that people stopped caring. Things like USB interrupt (a different thing than processor interrupts) mitigate the issue by ensuring reliable polling.