¿Hay alguna razón para deshabilitar N-Key Rollover?

20

Leyendo sobre las características de un teclado Das , veo lo siguiente:

A los jugadores y mecanógrafos rápidos les encantará saber que Das Keyboard 4 admite la transferencia completa de teclas n (NKRO) a través de USB. Ya no es necesario usar un adaptador PS2. Solo presiona shift + mute para alternar NKRO.

¿Por qué el teclado tiene la capacidad de alternar NKRO? ¿Hay alguna razón por la que no quieras NKRO?

Will Eddins
fuente

Respuestas:

15

La razón parece ser el soporte de la placa base anterior.

Me puse en contacto con Das Keyboard, y esta fue la respuesta que dieron:

Gracias por tomarse el tiempo para ponerse en contacto con nosotros.

La razón de la alternancia de NKRO es porque algunas placas base antiguas no "entienden" ni "obtienen" NKRO a través de USB. Es un poco más complicado que eso, pero esa es la forma más simple de decirlo, para que los usuarios con placas base más antiguas puedan usar el teclado a través de USB sin problemas. Por supuesto, podrían usar un adaptador PS / 2 para lograr NKRO, pero dado que el mundo se trata de USB hoy en día, no todos tendrían acceso a un puerto PS / 2 en su máquina.

Will Eddins
fuente
4

Además de las placas base antiguas, la mayoría de los conmutadores KVM no funcionarán con los teclados NKRO.

Prashanth Chandra
fuente
0

Hay una larga discusión en https://geekhack.org/index.php?topic=37567.0 sobre las razones técnicas por las que NKRO a veces causa problemas. El TLDR de esta discusión es:

  • Es más probable que NKRO cause problemas con BIOS y conmutadores KVM. Estos problemas son causados ​​por medidas de reducción de costos en lugar de ser inherentes a NKRO.
  • 6KRO está bien para cualquier uso ordinario, incluida la mayoría de los juegos.

El comentario más esclarecedor en ese hilo de discusión es el siguiente:

Los estándares USB no dicen nada específico sobre teclados o ratones, etc., en ninguna versión.

Es el estándar HID que lo hace. La estructura de informe de modificadores de 6 teclas más solo tenía la intención de facilitar la vida del BIOS (por lo que no tuvieron que analizar los descriptores de informe), pero se convirtió en un 'estándar' de facto para los teclados. Sin embargo, el estándar HID permite todo tipo de informes diferentes, y todos los principales sistemas operativos lo admiten por completo, por lo que no hay necesidad de controladores adicionales.

La otra limitación es que un paquete de datos USB de baja velocidad solo puede tener un máximo de 8 bytes. Un informe puede ser más grande, pero eso comienza a demorar mucho en enviarse. El estándar USB solo permite que un dispositivo de baja velocidad envíe un paquete cada 10 ms (por punto final). El sistema operativo generalmente empuja eso hasta 8 ms, es decir, 125Hz (sin hacks). ¡Tomar hasta 16 ms para presionar una tecla al host sería una mierda! Así que hemos tenido una fase en la que los fabricantes intentan sacar más provecho de los chips de baja velocidad de lo que realmente pueden manejar, con trucos como múltiples puntos finales, etc. :(

El USB de velocidad completa libera esas limitaciones. Cada paquete puede tener 64 bytes y puede enviarse cada 1 ms (de nuevo, por punto final). Esto permite que el estándar HID se use en su totalidad.

Finalmente, NKRO no se hace solo por el simple hecho de hacerlo. Hacer NKRO completo requiere solo un bit por clave, en lugar de un byte, y no tiene que tratar los modificadores como un caso especial. Por lo tanto, un teclado puede enviar, por ejemplo, 104 teclas en solo 13 bytes; utilizando el otro esquema, 13 bytes solo gestionarían 11KRO (11 teclas + modificadores + un byte reservado). Claro, todavía hay muchas claves, pero es un método mucho menos elegante (y todavía 'no-6KRO', por lo que aún podría ser incompatible con hosts tontos).

Cobarde anónimo
fuente