대답은 키보드 인터럽트를 이미 처리하고 있는지 여부에 달려 있습니다.
대부분의 인터럽트 서비스 루틴 (ISR)은 하드웨어를 "서비스"했음을 알리는 코드를 종료시 사용합니다. 키보드 컨트롤러의 경우 수신 된 바이트를 확인하는 명령이 키보드 컨트롤러에 기록됩니다. 키보드 컨트롤러 하드웨어가 전기 사용을 중단하여 인터럽트 상태를 신호하는 것은 승인 시점입니다.
키보드가 아닌 인터럽트를 처리하는 경우 화재 경고 인터럽트가 발생하면 전기를 인터럽트하는 키보드 하드웨어가 키를 누를 때 트리거됩니다. CPU가 인터럽트를 다시 활성화 할 때까지 전기 신호는 무시됩니다. 화재 경보 인터럽트 서비스가 끝나면 화재 경보 ISR은 모든 데이터를 확인하고 CPU의 인터럽트를 다시 활성화합니다. 즉시, 키보드 컨트롤러는 여전히 전기적으로 인터럽트 상태를 신호하기 때문에 CPU는 인터럽트를 시작합니다.
키보드 인터럽트를 처리하는 중에 사용자가 키보드 ISR을 실행하는 동안 두 번째 키 입력을 신속하게 입력하는 경우 두 번째 키 입력에서 데이터가 누락되거나 나중에 데이터를 수신 할 수 있습니다. 조금도. 특히 ISR이 승인을 통해 키보드 컨트롤러를 재설정하지만 ISR이 키보드 컨트롤러에서 사용 가능한 모든 바이트를 실제로 수신하지 못하면 문제가 발생합니다.
자주 ISR은 먼저 활성화를 트리거 한 인터럽트를 처리 한 다음 인터럽트를 확인한 후 장치를 폴링하여 첫 번째 인터럽트 이후 더 많은 데이터를 수신했는지 확인합니다. 그렇다면 소프트웨어 인터럽트를 생성하여 ISR을 다시 입력하고 장치를 수리하십시오.
이렇게하면 두 개의 키보드 문자를 CPU가 인터럽트를 처리하는 데 걸리는 시간보다 빠르게 입력 할 수 있다면 그 중 하나가 손실된다는 의미입니까? 이 주제가 다시 생겨서 죄송합니다 – Juan
@Juan 키보드에 달려 있습니다. 현대 키보드에는 컴퓨터가 처리하는 동안 키보드 이벤트를 저장하는 작은 버퍼가 있습니다. 대부분의 키보드는 CPU가 유지할 수없는 극한 상황에서 일부 키 누름 조합이 올바르게 등록되지 않도록 막대한 비용과 대역폭을 절약하기 위해 문자 키 누르기 위치 (X + Y)를 지정하지만 일부 키보드는 특정 키 개별적으로 대부분의 키보드는 예를 들어 수식 키 이벤트를 별도로 보내고 일부 게임 키보드는 'WASD'및 화살표 키에 대해 동일한 작업을 수행합니다. – YoYoYonnY