答えは、キーボード割り込みをすでに処理していたかどうかによって異なります。
ほとんどの割り込みサービスルーチン(ISR)には、それらの終了時に「サービスされた」ことをハードウェアに通知するコードがあります。キーボードコントローラの場合、受信したバイトを確認するコマンドが書き込まれます。キーボードコントローラハードウェアが割り込み状態を通知するための電気の使用を停止したのは、確認時です。
キーボード以外の割り込み、たとえば火災警報割り込みを処理している場合、キーが押されると、割り込みを電気的にアサートするキーボードハードウェアがトリガーされます。CPUで割り込みが再び有効になるまで、電気信号は無視されます。火災警報割り込みの処理が終了すると、火災警報ISRはすべてのデータを確認し、CPUの割り込みを再度有効にします。キーボードコントローラがまだ電気的に割り込み状態を通知しているため、CPUはすぐに割り込みに入ります。
キーボード割り込みを処理していて、ユーザーがキーボードISRの実行中に2番目のキーストロークをすばやく入力した場合、2番目のキーストロークからデータが失われるか、データを後で受信する可能性があります。特に、ISRが確認応答を介してキーボードコントローラーをリセットしたが、ISRが実際にキーボードコントローラーから使用可能なすべてのバイトを受信していない場合、それは問題です。
多くの場合、ISRは最初にそのアクティブ化をトリガーした割り込みを処理し、次に割り込みを確認した後、最初の割り込み以降にさらにデータを受信したかどうかを確認するためにデバイスをポーリングします。その場合は、ソフトウェア割り込みを生成してISRに再入し、デバイスにサービスを提供します。