键盘缓冲区和 CPU

键盘缓冲区和 CPU

现代计算机在键盘缓冲区和 CPU 之间使用全双工还是半双工通信,还是混合使用?如果我们在终端中输入一些命令,我​​认为那是半双工的,因为该命令是在按下回车键后执行的,那么全双工在哪里使用?

答案1

在“现代”电脑上,您可以通过 USB 或 PS/2 键盘端口连接键盘。两者都使用半双工协议(数据一次只能向一个方向发送,不能同时向两个方向发送)。不过,这并不是特别重要,因为唯一要传输的数据发送键盘的操作包括打开和关闭 LED。因此,大多数数据始终从键盘传输到计算机。此外,人类无法以足够快的速度按下按键来使线路饱和。

如果我们在终端中输入一些命令,我​​认为那是半双工的,因为该命令是在按下回车键后执行的,那么全双工在哪里使用呢?

这与“全双工”或“半双工”无关,可能是您误解了这些词的含义。

答案2

我想说,现代 PC 使得将键盘描述为双工硬件变得困难。半双工和全双工之间的区别在于同时发送和接收数据的能力。使用键盘时,键盘会将按键逐个发送到缓冲区,以供 CPU 使用。

如今,CPU 中断用于检查按键。这种情况每秒发生多次。然后,生成的中断将按键记录到键盘缓冲区中,以供 CPU 处理和使用。

话虽如此,CPU 从来不会将数据放入队列中以发送到键盘。

根据这篇维基文章键盘缓冲区,我唯一能半理解半双工键盘的方式是在老式终端上。即使在老式系统上,我也更愿意将其视为半双工系统,而不是半双工键盘。

相关内容