【发布时间】:2013-08-27 01:07:48
【问题描述】:
当尝试从 x86(特别是 Pentium)上的 I/O 端口读取数据时,IN 系列指令会在等待数据时阻塞还是总是立即返回?
【问题讨论】:
-
好问题。我相信它们是非阻塞的。否则,不存在或发生故障的外部设备可能会挂起等待指令序列正确完成的处理器。输入指令 (
IN) 将在 CPU 和外部设备之间启动一系列信号,以指示 CPU 请求读取、设备呈现数据等。这些都发生在某个规定的时间限制内。 -
他们没有,但是
The processor synchronizes I/O instruction execution with external bus activity英特尔® 64 和 IA-32 架构软件开发人员手册 1/14.6 -
如果总线被锁定会怎样? IN 最终会超时吗?
-
@BrianKnoblauch 如果总线由于某种原因要“锁定”,那么通常硬件设计有一个看门狗定时器来“打破它”。