폴링 레이트 vs. 스캔 레이트 vs. 입력 지연시간

by Bone.D.Roid posted Oct 12, 2017
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

요즘 게이밍 키보드들이 폴링 레이트가 1KHz다! 그래서 빠르다! 뭐 이런 광고를 많이들 하죠?

이 부분에서의 허와 실에 대한 이야기를 해보려구요. 가볍게.


키보드는 스위치를 누르는 순간부터 시작해서 그게 컴퓨터에서 입력이 되기까지 많은 과정을 거칩니다.

그리고 그 지연시간이 의외로 큽니다.

왜 그럴까요?


먼저 스위치 구조가 문제가 됩니다.

우리가 많이 쓰는 체리 MX 스위치는 판 스프링 구조를 가지고 있는데,

요 판 스프링이 눌리고 나면 떨림이 생겨서 접점이 붙었다 떨어졌다 하게 됩니다.

그래서 안정되는 시간이 필요한데, 이게 체리사의 스펙상 5ms 정도입니다.

멤브레인이나 무접점의 경우는 이 값이 달라지게 되구요, MX 호환 스위치도 제조사마다 좀 특성 차이가 있는 듯 합니다.

이런 면에서, 스피드 스위치가 얼마나 효과가 있느냐?

알 수가 없지요. ㅎㅎㅎ


요 부분에서 재미있는 자료를 방금 찾아서 링크해 봅니다.

https://geekhack.org/index.php?topic=42385.0

이 글에 따르면, 아래 그림처럼, 스위치를 누르고 나면 한동안 값이 왔다갔다 한다고 합니다.

뗄 때도 마찬가지구요.

qhVMghZ.png

그런데, 알프스 스위치가 상당히 성능이 좋다고 하는군요.

정말 많은 스위치를 테스트해서 최대값을 얻은 것 같지는 않아서 신뢰성은 떨어지는 편이지만 흥미롭습니다.


이렇게 입력값이 안정되는 시간을 주는 것을 디바운싱이라고 합니다.



그 다음에 입력 시간에 영향을 미치는 건, 스캔 주기입니다.

키보드를 저렴하게 구현하기 위해서, 키보드는 일정 주기마다 어떤 키가 눌렸는지 확인하는 방법을 사용합니다.

즉, 키가 눌리면 곧장 키보드 컨트롤러가 알 수 있는 게 아니라, 누르고 있는 동안 컨트롤러가 그 사실을 확인해야 입력이 시작되는 거죠.

그래서 얼마나 자주 확인하는지에 의해 입력 지연 시간이 변하겠죠?

게다가, 앞에서 이야기한 디바운싱 검사를 위해서, 대체로 최소 세번 이상의 값 비교를 한 후에야 키 입력을 인정하니까, 스캔 주기가 상당히 심각하게 중요합니다.


문제는 이걸 줄이는 게 힘들어요.

키보드에 쓰이는 컨트롤러 성능이 매우 낮기 때문에, 1ms에 한번 스캔하게 만드는 것도 엄청난 노력이 필요해요.

좋은 컨트롤러만 쓰면 좀 더 쉬워지겠지만 키보드가 비싸지겠죠. ^^

그 점에서 유레 기판이 대단한 겁니다.

저렴한 MCU를 쓴 괴수가면님 기판의 경우는 스캔 주기가 20ms 까지도 올라간다고 하더라구요.



그리고 가장 애매하게 영향을 미치는 요소가... 폴링 레이트 입니다.

이건 USB 인터페이스를 쓰는 키보드에서만 발생하는 문제인데,

장치가 컴퓨터에 연결할 때, 얼마마다 한 번씩 키 입력이 들어왔는지 확인해 주세요! 하고 설정해 주는 값입니다.

그래서 만약 키보드가 5ms 만에 키 입력을 만들어도, PC가 10ms 마다 키 입력이 들어왔는지 확인하면, 아무런 의미가 없다는거죠.

대체로 게이밍 키보드들이 강조하는 게, 자기들은 요 폴링레이트를 1ms로 설정하고 있다! 그 정도 입니다. 

이건 아주 쉽게 할 수 있어요.

그냥 장치 등록할 때 들어가는 값 하나만 바꾸면 되니까요.

하지만 스캔 주기가 어떻게 될지는 아무도 모르는 겁니다.

정 알고 싶으면, 한 스위치에 오실로스코프를 붙여서, 어느 주기로 입력확인 전압이 들어오는지 체크하는 방법밖에는 없어요.


높은 폴링 레이트가 악영향을 미치기도 하는 게,

윈도우 운영체제는 USB 1.1 인터페이스인 경우에 모든 입력장치의 폴링 레이트를 초당 125회로 제한을 한다고 합니다.

그래서 마우스의 폴링 레이트가 떨어져서 뭔가 답답해지는 문제가 발생하는 거죠.

요게, 초기 게이밍 키보드들이 저지른 실수라고 하더군요.

오히려 게이밍 성능이 떨어져버리는 문제가 일어난 거죠. 

그래서 PS/2 키보드와 USB 마우스로 구성해서 이 문제를 피할 수 있다고 합니다.

뭐, USB 2.0 인터페이스부터는 이 문제가 없다고는 하니 요즘은 큰 문제가 되지는 않겠네요.



대충 최근에 궁금해서 알아본 내용을 끄적여 봤습니다.

제대로 된 정리는 나중에 해보기로 하고, 여기서 끝. ㅎㅎㅎ


Articles

52 53 54 55 56 57 58 59 60 61