http://gadget.tm.land.to/pukiwiki/%A5%AD%A1%BC%A5%DC%A1%BC%A5%C9%A4%CE%C6%B1%BB%FE%B2%A1%A4%B7%A4%CB%A4%C4%A4%A4%A4%C6/우리나라의 DC보다도 거대한 규모를 자랑하는 일본의 폐인 커뮤니티, 2ch의 PC게임 입력장치 게시판에 올라왔던 토론글들을 요약 정리한 내용의 글입니다.

대충 번역했습니다. ~_~
==========================================
[동시키 입력]에 대한 오해

게이머에게 있어서 자신의 키보드가 어느정도까지 동시 키 입력을 받아들이는지는 신경쓰이는 부분일 것이다.
FPS에서는 일반적으로 4~5개 키의 동시 입력을 지원하는 것이 필요충분조건을 만족한다고들 하지만, 안심감을 추구하기 위해서 모든 키에 대한 동시입력을 지원하는 키보드를 구하는 사람들이 많다. 비교적 고가이긴 하지만 N키 롤오버를 지원하는 키보드들이 게이머들 사이에서 어느정도 인기를 누리고 있는 것은 바로 그러한 사정 때문일 것이다.

하지만, 동시입력에 대해서는 몇가지 빠지기 쉬운 오해가 존재한다.
    = N키 롤오버 지원 키보드는 모든 키의 동시 입력이 가능하다
    = HHKP와 USB판 리얼포스는 모든 키의 동시 입력을 지원한다
    = [동시키 입력 검색 소프트 BR-KEYCHECK]에서 모든 키를 다 동시에 눌렸기 때문에 내가 쓰는 키보드는 동시키 입력을 지원하는 것이다

놀라실지도 모르겠지만 이들 모두 다 오해이며, 엄밀히 말하면 거짓말이다.
이하, 자세히 설명하도록 한다.


[동시키 입력]의 종류

일단 전제로써 [동시 입력]을 자세히 분류하면 이하와 같다.

1. 이미 동시에 누른 키의 숫자에 관계없이 [새로 누른 키의 입력]을 인식하는 동시에
    [동시에 눌려져 있는 상태의 키 갯수]를 무제한으로 인식할 수 있는 제품

2. 동시에 눌려있는 키의 숫자에 관계없이 [새로 누른 키의 입력]을 인식하기는 하지만
    [동시에 눌려져 있는 키의 갯수]에는 일정 한도 이상 인식 못하는 제품

3. 일정한 키의 갯수에 대해서만 [새로 누른 키의 입력]을 인식하는 동시에
    [동시에 눌려져 있는 키의 갯수]에도 일정한 갯수 이상은 인식하지 못하는 제품

여기서 3번은 극히 평범한 동시키 입력에 제한이 있는 키보드임은 일목요연하지만, 1번과 2번의 차이는 잘 알지 못하겠다고 하시는 분들이 계실 것이다.

사실은 1번과 2번의 첫번째 줄이 "N키 롤오버의 정의"이며, 두번째 줄이 바로 실제로 게임에서 문제가 되는 모든 키에 대한 동시키 입력 지원 여부에 대한 것이다.

※여기서 부터는 [모든 키의 동시 입력] = [키가 동시에 눌려져 있는 상태에 있다는 것을 키의 종류, 갯수에 관계없이 무제한으로 인식할 수 있는 것]으로 정의하도록 한다.

이해하기 쉽게 예를 들자면,
(1)번에 해당하는 것이 PS/2판의 리얼포스이며,
(2)에 해당하는 것이 HHKP와 리얼포스 USB판에 해당한다.
보다 구체적으로 설명하자면 키보드의 전체 문자키를 동시에 누를 경우, PS/2판의 리얼포스에서는 "모든 키가 동시에 눌려져 있다"는 상태가 PC에 전달되지만 HHKP와 USB판 리얼포스에서는 "6개의 키 만이 계속 눌려져 있다"는 정보밖에 PC에 전달되지 않는다

이 점에 대해서는,
[동시키 입력 검출 소프트웨어 (BR-KEYCHECK)에서 키 전체를 누르면 전체의 키가빨간색으로 표시된다]는 점이나,
혹은 [메모장에서 모든 키를 눌렀더니 모든 문자가 다 제대로 나오는데?]하는 것을 이유로 삼아 HHKP와 USB판 리얼포스가 "모든 키의 동시입력"을 지원한다고 생각하는 분이 많을 것이다.

하지만 이러한 사고 방식에는 오류가 존재한다는 것은 다음 테스트를 하면 명백해진다.

    * 먼저, 동시키 입력 검출 소프트웨어에서는 실제로는 키가 눌렸다 떼어졌다는 동작은 인식하지 않는다.
      시험삼아 2개의 키를 동시에 눌렀다가 어느 한쪽 키를 떼어 봐도 여전히 키가 눌렸었다는 표시만이 나타날 뿐이다.
      즉, 이 소프트웨어에서는 (1)번과 (2)번의 첫째줄 사항은 체크해도, 둘째줄 사항은 체크하지 못하여,
      "동시 키 입력"이 진짜인지 아닌지는 구분하지 못한다.

    * 다음으로, HHKP와 USB판 리얼포스에 대해서는 다음 소프트웨어가 참고가 될 것이다:
            http://www.vector.co.jp/soft/win95/util/se111921.html
      이 소프트웨어는 "키를 눌렀을 때"가 아닌, "눌렀다 떼었을 때" 카운터가 오르게 되어 있다.
     지금 이 소프트웨어를 기동해서 Z에서 M까지 한개씩 키를 손가락을 떼지 않고 눌러보도록 하자.
     만일 그 키보드가 "모든 키의 동시입력"을 지원하고 있다면 M까지 눌렀어도 (어디까지든 눌러도) 카운터는 0 그대로 있어야 한다.
     실제로 PS/2판의 리얼포스는 카운터가 0에 머물고 있다.
     하지만 USB판의 리얼포스는 M을 누르는 순간 카운터가 1이 되어 버린다.
     즉, 지금까지 눌렸던 키 중 어느것인가가 더 이상 눌려지지 않는다는 상태로 전환되어 버린 것이며, 결국 6개의 키만이
     ((1)과 (2)에서 둘째줄의 의미로) 동시입력을 지원한다는 것을 알 수 있다.
  
여기서 주목할 점은 (HHKP나 USB판 리얼포스등) [모든 키의 동시입력]을 지원하지 않더라도 N키 롤오버는 지원하는 (추후에 설명) 키보드의 경우, 새롭게 누른 키의 입력이 있을 경우 키보드의 컨트롤러는 이를 인식하고 있다는 점이다.
그렇기 때문에 이들 키보드는 모든 키를 동시에 누르면 메모장 등에서는 결과적으로 "눌렀었던" 모든 키가 입력된다. 이것은 얼핏 보기에 "모든 키의 동시입력"을 지원하는 것 처럼 보이기 때문에 오해를 발생시키는 원인이 되고 있다.

한편, 만일 모든 키 동시 입력을 HHKP와 USB판 리얼포스가 지원하고 있지 않다면, N키 롤오버 지원 따위 광고는 허위 과장광고 아니냐고 하시겠지만, 이것은 거짓말은 아니다.
앞서 설명한 대로, N키 롤오버의 정의는 기본적으로는 (1)과 (2)의 첫번째 줄 (다시 말하자면 [복수의 키가 동시에 눌려졌을 경우, 그 키의 전체를 (컨트롤러가 인식하는 기능])인 것이며, 두번째 줄은 포함하지 않는다.
즉, N키 롤오버와 [동시에 누른 키를 몇개까지 인삭하는가]는 엄밀히 말해 관계없는 이야기다. 실제로 FM-7의 키보드는 N키 롤오버 기능을 채용했었지만, 동시키 입력의 인식은 허용하지 않았었고, 4와 8 키를 동시에 눌러서 대각선 이동 등은 할 수 없었다.
따라서 HHKP와 USB판 리얼포스에서도 (모든 키의 동시 입력은 지원하지 않지만) N키 롤오버는 지원하고 있다는 것이 된다.
역으로 말하면 N키 롤오버 지원이라고 해서 꼭 [모든 키의 동시입력]을 지원한다고는 할 수 없다는 것이 된다.


대체 이러한 차이점은 왜 생기는가

첫번째 줄에 따른 (1) 및 (2)와 (3)의 차이에 대해서는 위키페디아의 N키 롤오버 항목을 참조하시기 바란다.

문제는 똑같이 "N키 롤오버"를 지원하는 키보드 사이에서 어째서 둘째줄의 "모든 키의 동시입력"의 지원이 달라지느냐 하는 것이다.
이것에 대해서는 PS/2와 USB의 통신방법의 차이점이 커다란 원인이 되고 있다.

PS/2에서는 키가 눌렸을 때와, 눌렸다 떼어졌을때 그 정보가 1개씩 송신된다. 즉 키의 상태의 "변화 정보"가 전송되는 것이다.
한편 USB키보드에서는 변화가 아닌 "상태정보", 즉 지금 어떤 키가 눌려져 있는가 하는 상태의 "리스트"가 전송된다.
USB에서는 통신속도가 3종류가 있는데, 느린쪽으로 부터 LowSpeed/FullSpeed/HighSpeed로 나뉘게 된다. USB키보드는 보통 LowSpeed를 쓰고 있다. 이 속도에서는 한번에 송신할 수 있는 데이터의 양의 상한선이 8바이트에 불과하다.
여기서 USB 키보드에서 (2)와 (3)에서와 같이 동시에 누를 수 있는 인식 가능 키 숫자가 6개가 되어 버리는 것은 8바이트 중에 2바이트를 시프트키 등의 정보가 할당되어 있어서 사용할 수 없기 때문이다.

따라서, "모든 키의 동시입력"을 실현할 수 있는 것은 원칙적으로 PS/2접속의 키보드 뿐이다.

애당초 USB키보드에서 채용되고 있는 데이터 포맷 (Boot Protocol)은 OFF로 만들어 버릴 수도 있어서, FullSpeed로 할 수 있다면 8바이트 이상의 데이터 포맷을 취급할 수 있게 되므로, USB키보드라 할지라도 스펙상으로는 [모든 키의 동시입력]을 지원하게 할 수는 있다. (단, 현시점에서 USB키보드에서 "모든 키의 동시입력"을 지원하는 것은 확인되지 않고 있다)


결론

N키 롤 오버 지원 키보드라고 해서 "모든 키의 동시입력"이 가능하다고는 할 수 없다. 단, "모든 키의 동시입력"이 가능한 키보드에서는 N키 롤오버의 지원이 없어서는 안된다. 즉, N키 롤오버 지원은 "모든 키의 동시입력"의 충분조건은 아니지만, 필요조건인 셈이다.

현재로써는 USB키보드에서 동시 입력은 6개밖에 지원하지 않는다. 키보드가 N키 롤오버를 지원한다 해도 "모든 키은 동시입력"은 지원하지 않는다. 이론상으로는 지원할 수도 있으나, 지원하는 제품은 발견되지 않았다.

PS/2 접속은 통신규격의 성질상 "모든 키의 동시입력"을 지원하기 쉽다. 키보드가 N키 롤오버를 지원하단다면 "모든 키의 동시입력"도 지원할 수 있다.

따라서 현시점으로는 "모든 키의 동시입력"을 완전히 지원하는 키보드는 "N키 롤오버"지원 및 PS/2 접속 방식의 키보드 뿐이다. (PS/2 접속 방식의 키보드라고 해서 대부분은 "모든 키의 동시입력"은 지원하지 않으니 주의)


[동시키 입력] 지원 키보드 리스트

(1) 모든 키의 동시입력을 지원 (N키 롤오버 + PS/2 방식. 이론상 USB로도 구현 가능하지만 현재 미확인)
          o PS/2版 Realforce
          o PS/2版 Kinesis Contoured Keyboard
          o Kinesis Maxim Split Adjustable Keyboard(PS/2)

(2) 어떠한 조합이든 관계없이 6개까지의 동시 입력을 지원 (N키 롤오버 + USB 접속)
          o USB版 Realforce
          o HHK Pro
          o Logitech G15 Gaming Keyboard
          o Logitech G11 Gaming Keyboard
          o RAPTOR-GAMING K1
          o Razer Tarantula
          o Deck Backlit Keyboard

(3) 조합에 따라서 2~8개의 키 입력 (N키 롤오버 미지원 + PS/2)
          o 대부분의 PS/2 키보드 (동시 키 입력 가능 키 갯수는 키보드마다 다르다)

(4) 조합에 따라서 2~6개의 키 입력 (N키 롤오버 미지원 + USB)
          o 대부분의 USB 키보드


참고사항

이 페이지는 2ch의 [마우스]입력장치ForPCActionGamer[키보드]6쓰레드의 종반에 달린 게시물을 정리한 것입니다.
귀중한 게시물을 제공해 주신 여러분들께 감사의 말씀 드립니다.
여기서는 다루지 않았지만, PS/2와 USB의 시스템 부하의 문제 등도 토론되었기 때문에 흥미가 있으신 분은 여길 참조해 주시기 바랍니다.
또한 지원하는 키에 제한이 있긴 하지만, 정확하게 동시 키 입력을 측정 가능한 (키를 누르는 것 뿐 아니라 키를 눌렀다 떼는 것도 인식하는) 소프트웨어로써, PianoBoard가 있습니다. 이 프로그램에서 모든 건반에 불이 들어오게 하는게 가능하다면 "모든 키의 동시입력" 지원이라고 봐도 무방합니다.
PS/2키보드와 USB의 스펙에 관심있으신 분은 Computer-Engineering.org에서 열람 가능합니다.
  

NMB RT-101+ Everex version, with white linear switch (IT'S THE FREAKIN' BEST KEYBOARD EVER)

NMB RT-101+ Advanced Logic Research ver. with black click switch

Omni Key Ultra, Alps White Click

Zenith ZKB-2R, with Alps Green Linear

Zenith ZKB-2, with Alps Yellow Linear

Wang 725, with Alps Black Non-click

Sejins

Cherrys

Trigem PAXIM 8901 Alps White Click

IBMs

Topre RealForce 101

Fujitsu Happy Hacking II

Apple Keyboards

NECs