Mis*_*ith 9 usb keyboard irq ps2-keyboard usb-keyboard
据我所知,PS/2 键盘是中断驱动的,而 USB 是轮询的。通常,在 Windows 上为 PS/2 键盘分配了 IRQ_1。
我不是硬件专家,但乍一看似乎 PS/2 键盘更高效。所以这里是我的问题:
USB 需要主动轮询。因此,CPU 必须将其某些周期专用于扫描按键,这意味着可用于其他任务的周期数较少。这会导致 CPU 频率上升,因此功耗会更高。一个有趣的案例:假设我们将两台相同的计算机并排放置,一台使用 PS/2 键盘,另一台使用相同型号的 USB 键盘,我们将它们打开一整天。如果我们白天只按一个键,PS/2 键盘所需的 CPU 时间比 USB 键盘低得多。因此,在具有极端动态频率缩放的 CPU 中,USB 键盘总体上需要更多功率。另外,USB协议需要管理多个设备,
这些是我在 #2 中提出的考虑因素,考虑到整个 PC,而不仅仅是键盘从 5 V 输入中吸收了多少。
看来轮询的东西只能到USB 2.0,根据维基百科,USB 3.0摆脱了轮询:
提高总线利用率 - 添加了一项新功能(使用数据包 NRDY 和 ERDY),让设备异步通知主机其准备就绪(无需轮询)
(到目前为止,USB 3.0 键盘很少见。我只知道今年在COMPUTEX 上展示的技嘉键盘,我怀疑它使用 USB 3.0 来摆脱轮询,而是在键盘上提供 USB 3.0 集线器)。
我还试图找到有关 USB KB 轮询率的硬数据。有些人说 125 Hz,还有一些调整到 1 kHz。相比之下,像 PS3 这样的游戏机轮询频率为 100 Hz,而 XBox 则为 125 Hz。即使是 1 KHz,在 GHz CPU(0,000001 % CPU 周期/秒)上似乎也可以忽略不计。这些数字引出了另一个问题:出于游戏目的,PS/2 键盘每秒产生 1,000 次中断会更好吗(如果有的话)?
响应时间 PS/2 与 USB 键盘:
有许多有趣的结果,但与此问题相关的一点是键盘之间存在相当显着的差异,并且所有测试的 USB 键盘的有效扫描间隔(18.77 ms - 32.75 ms)都比 PS/2 长键盘(2.83 毫秒 - 10.88 毫秒)。
来自这个超级用户问题本身的更多信息:USB 或 PS/2 键盘响应速度更快吗?
将两台设备整体功耗之间的功耗: (引用HP文档)
USB
工作电压:+ 5VDC ± 5%
功耗:最大 50 mA(三个 LED 亮起)
PS/2
工作电压:+ 5 VDC ± 5% 功耗:最大 50 mA(三个 LED 亮起)
我的看法:
因此,最大可能的功耗为 +5 V,并且主板必须为 PS/2 端口考虑此功耗,而不管其实际功耗如何。而且我们知道 USB 确实为我们提供了 +5 V 的功率输出。实际耗电量因品牌而异。有人说它消耗50毫安,有人说它是70毫安,屋顶是100毫安。
到目前为止,我读过的任何内容都没有说明或显示超过 100 mA 的实际消耗。事实上,Windows 还报告了 70 mA 的实际所需功率。但是我的 MacBook 在 USB 上显示了 100 mA 的要求。所以USB键盘的实际功耗可能会比PS/2键盘高一点。我在下面附上几张图片。
在 Windows 上

在 MacBook 上

解释 #2 中更新的问题:
好吧,只有一个 USB 控制器,但每个 USB 端口都是单独连接的。因此该协议使设备对每个端口都是独占的。
每个连接到端口的 USB 设备都是单独连接的。当设备连接到端口时,端口会告诉我们连接的是哪个设备。这就像每个设备都有一个专用端口,并且控制器具有向处理器同时发送多个请求的总线能力。
在我看来,PS/2 或 USB 键盘所消耗的电量/CPU 时间是相同的。如果 USB 键盘在处理和功率方面很重,人们就不会互换使用它们。我们还会阅读更多关于它们的技术文章!
我个人的论点是,Apple 只在 Mac Minis 和 iMac 上为您提供 USB 端口,如果它如此耗电和处理密集型,Apple 会这样做吗?即使是大多数新的戴尔机器也没有 PS/2 端口(将所有组装和定制的硬件放在一边)。
我假设你想提高你的反应时间或其他什么。如果您的问题确实只是理论上的,请忽略此问题。如果您想“优化”您的游戏体验,只需选择专为游戏设计的 USB 键盘即可。这些通常提供更一致的按键行为,并且可能具有其他功能(例如检测您按下的深度或时间,而不仅仅是按下/未按下)。我什至根本不会担心 PS/2,特别是考虑到当今硬件上的 PS/2 端口非常有限。您可能不希望在输入处理中赢得几毫秒,同时由于内存带宽较低或其他原因而损失更多时间。
\n对于游戏来说,还有一些完全不同的考虑因素:当今台式电脑的典型刷新率为 60\xc2\xa0Hz。这意味着每秒 60\xc2\xa0 帧或每帧大约 16.67\xc2\xa0ms。这导致这样一个事实:即使您每秒轮询 1000\xc2\xa0 次,您也不会注意到任何更快的反应(与每秒 100\xc2\xa0 次相比)。当然,计算可能会更快(例如,以每秒 100、500 甚至 1000\xc2\xa0 帧的速度模拟游戏世界),但我仍然会说您根本不会注意到任何真正的差异。
\n