【发布时间】:2011-08-16 10:00:06
【问题描述】:
使 USB 成为轮询机制而不是中断驱动的原因是什么?我能想出一些推理的答案是:
- 将处理效率和粒度的控制权交给操作系统,而不是设备本身。
- 防止由故障设备引起的“中断风暴”。
我在网上找到的一些解释说这主要是因为 USB 设备的性质。它们大多是基于微控制器的系统,无法对较大的传输进行排队,因此需要较短的中断间隔,而这样短的中断间隔可能不是最有效的。这是真的吗?
还有其他原因吗?
【问题讨论】:
-
我正在考虑给你一个明显错误的前提 -1,你是指控制器还是总线本身?
-
@Hasturkun:我的意思是让主机硬件不断轮询USB设备的部分。
-
那部分将是总线/协议本身。除非主机轮询设备以获取该数据,否则主机无法判断设备是否提供数据,因此它必须不断轮询是否存在 IN 端点和来自驱动程序的活动请求以在该端点上接收数据.