Existe algum motivo para desativar o rollover de N-Key?

19

Lendo os recursos de um teclado Das , vejo o seguinte:

Gamers and fast typists will love to hear that Das Keyboard 4 supports full n-key rollover (NKRO) over USB. No need to use a PS2 adapter anymore. Just press shift + mute to toggle NKRO.

Por que o teclado tem a capacidade de alternar o NKRO? Existe alguma razão pela qual você não quer a NKRO?

    
por Will Eddins 05.03.2015 / 16:27

3 respostas

14

O motivo parece ser o suporte a placas-mãe mais antigas.

Entrei em contato com o Das Keyboard, e essa foi a resposta que eles deram:

Thanks for taking the time to contact us.

The reason for NKRO toggling is because some older motherboards don't "understand" or "get" NKRO over USB. It's a bit more complicated than that, but that's the simplest way to put it - so that users with older motherboards can use the keyboard over USB without issues. Of course, they could use a PS/2 adapter to achieve NKRO, but since the world is all about USB nowadays, not everyone would have access to a PS/2 port on their machine.

    
por 13.03.2015 / 18:41
4

Além de placas-mãe antigas, a maioria dos switches KVM não funciona com teclados NKRO.

    
por 18.03.2017 / 02:49
0

Há uma longa discussão no link sobre as razões técnicas pelas quais a NKRO às vezes causa problemas. O TLDR desta discussão é:

  • O NKRO provavelmente causará problemas com BIOSes e comutadores KVM. Estes problemas são causados por medidas de redução de custos, em vez de serem inerentes à NKRO.
  • 6KRO é bom para qualquer uso comum, incluindo a maioria dos jogos.

O comentário mais esclarecedor nesse tópico de discussão é o seguinte:

The USB standards don't say anything specific at all about keyboards or mice etc., in any version.

It's the HID standard that does. The 6-key plus modifiers report structure was only really intended to make life easy for BIOS (so they didn't have to parse report descriptors), but became a de-facto 'standard' for keyboards regardless. However, the HID standard allows for all sorts of different reports, and all major OS support it fully, so there's no need for extra drivers.

The other limitation is that a low-speed USB data packet can only be a maximum of 8 bytes. A report can be larger, but that starts taking a significant amount of time to send. The USB standard only allows a low-speed device to send one packet every 10ms (per endpoint). OS typically nudges that up to 8ms, i.e. 125Hz (without hacks). Taking up to 16ms to get a keypress to the host would be crap! So we've had a phase of makers trying to get more out of low-speed chips than they can really handle, with tricks like multiple endpoints etc. :(

Full-speed USB frees up those limitations. Each packet can be 64 bytes, and can be sent every 1ms (again, per endpoint). This allows the HID standard to be used to its full effect.

Finally, NKRO isn't done just for the sake of it. Doing full NKRO requires only one bit per key, rather than one byte, and doesn't have to treat modifiers as a special case. So a keyboard can send e.g. 104 keys in a mere 13 bytes - using the other scheme 13 bytes would only manage 11KRO (11 keys + modifiers + one reserved byte). Sure, that's still plenty of keys, but it's far less elegant a method (and still 'not-6KRO', so could still be incompatible with dumb hosts).

    
por 30.03.2018 / 02:28

Tags