Appearance
题目
下列选项中,在 I/O 总线的数据线上传输的信息包括( )。
Ⅰ. I/O 接口中的命令字
Ⅱ. I/O 接口中的状态字
Ⅲ. 中断类型号
错因
A
漏掉 Ⅲ。中断类型号听起来像"中断的事"——可能联想到中断请求/响应(INTR/INTA)那些控制信号。但中断类型号本身是一个数值(一般 8 位编号),由设备在中断响应周期里通过数据线返回 CPU,CPU 用它去查中断向量表。请求/响应是控制信号、类型号是数据。
B
漏掉 Ⅱ。误以为状态字是"控制信号"——但状态字是 CPU 用 IN 指令读出的具体内容(如 ready/busy 标志、错误位等),是设备给 CPU 的"答复数据",自然走数据线。
C
漏掉 Ⅰ。误以为命令字是"控制总线传"——但命令字是 CPU 用 OUT 指令写到 I/O 接口的内容(如启动设备、设置工作模式等),是 CPU 给设备的"指令数据",走数据线。
易混点:"控制信号"和"控制字"不是一回事——前者是几根专用控制线(read/write 命令);后者是 CPU 写到设备命令寄存器的具体值(一段位串),通过数据线传输。
总解析
核心区分:I/O 总线(与系统总线类似)也分三类信号线,关键看"传的是位串内容"还是"传的是单根信号"。
| 总线线类 | 传输内容 | 例子 |
|---|---|---|
| 数据线 | 任意"位串内容" | 命令字、状态字、中断类型号、读出的设备数据、写入的设备数据 |
| 地址线 | 设备地址 / 端口号 | I/O 端口号 |
| 控制线 | 控制 / 时序 / 应答 | I/O 读/写命令、中断请求 INTR、中断响应 INTA、就绪 READY |
逐项判断:
| 项 | 内容 | 本质 | 走哪条线 |
|---|---|---|---|
| Ⅰ | I/O 命令字(如 启动 / 停止 / 设置模式) | CPU 写给接口的位串 | 数据线 ✓ |
| Ⅱ | I/O 状态字(如 ready / busy / error) | 接口返回 CPU 的位串 | 数据线 ✓ |
| Ⅲ | 中断类型号(中断向量号) | 设备返回 CPU 的 8 位编号 | 数据线 ✓ |
三项都是"内容性质的位串",全部走数据线。
判定口诀——只要满足以下条件之一,就走数据线:
- 是一段有意义的"值"(命令、状态、向量号、设备数据等)
- CPU 用 IN/OUT 类指令读写它(这类指令的源/目的都是数据线上的位串)
- 不只是"是 / 否"两种状态(控制线常常只表达 0/1 两种状态,如"请求中断 / 不请求")
最终答案是 D(Ⅰ、Ⅱ、Ⅲ)。
与 2011-20 的对照——同一类考点:
- 2011-20 问"系统总线数据线不可能传的",答案是"握手信号"(控制线传)
- 本题问"I/O 总线数据线可能传的",答案是命令字 + 状态字 + 中断类型号都可以
记忆框架:控制信号(单根线 0/1)走控制线;任何"位串值"走数据线。