Skip to content

2015年 408 计算机组成原理 第 21 题

计算机组成原理2015年选择题2分

题目

在采用中断 I/O 方式控制打印输出的情况下,CPU 和打印控制接口中的 I/O 端口之间交换的信息不可能是( )。

错因

A

误以为"打印字符不通过 I/O 端口"——实际上打印字符就是要打印的数据,必然通过数据端口送给打印接口(接口再转给打印机)。中断方式下,每次中断响应时 CPU 把一个字符(或一批字符)写进数据端口,是最基础的"应该交换"项。

C

误以为状态信息不交换——但整个中断 I/O 的核心动作就是 CPU 在中断响应程序里读状态端口确认"打印机现在能不能接收下一个字符"、"是否缺纸"、"是否离线"等。状态信息必须交换

D

误以为命令不通过端口——CPU 通过控制端口给打印机下达"开始打印"、"换行"、"复位"等命令,控制信息必须交换

总解析

核心思路:先把 I/O 接口里的端口分类,再把"中断 I/O 方式" vs "DMA 方式"的职责分工对清楚——主存地址恰好是这两种方式的分水岭

I/O 接口中的三类端口

端口内容CPU 操作
数据端口待传送的数据读 / 写
状态端口设备就绪、忙、出错等状态
控制端口启动、停止、复位等命令

所有 I/O 方式(程序查询、中断、DMA)都用到这三类端口——它们就是 CPU 和外设交流的"语言"。

中断 I/O 方式下 CPU 的职责

中断方式的工作流程:

  1. CPU 给打印接口写控制命令(控制端口) → 启动打印
  2. CPU 继续做别的事
  3. 打印机就绪时打印接口发出中断请求
  4. CPU 响应中断,进入中断服务程序:
    • 状态端口确认设备状态
    • 主存读出下一个字符(这一步主存地址在 CPU 内部)
    • 把字符写进数据端口
    • 中断返回
  5. 重复 3-4 直到所有字符传完

关键:步骤 4 里 CPU 是自己访问主存读字符,主存地址是 CPU 寄存器里的内部信息——接口完全不需要知道主存地址,接口看到的只是"数据端口被写了一个字节"。

中断 I/O vs DMA 的对照

项目中断 I/ODMA
谁访问主存CPUDMA 控制器
I/O 接口需要知道主存地址吗?不需要需要(DMA 控制器从接口拿到地址自己访存)
一次中断处理粒度1 个字节 / 1 个字1 个数据块(几百字节起)
CPU 负担每个字符都要中断处理一次仅在数据块开始 / 结束时介入

所以"主存地址出现在 CPU 与 I/O 端口之间"是 DMA 的特征,不是中断 I/O 的特征。题目特意指明"中断 I/O 方式"——主存地址不可能在这里出现。

逐项判定

选项是否交换通过哪个端口
A. 打印字符✓ 必交换数据端口
B. 主存地址✗ 不交换— (是 DMA 特征)
C. 设备状态✓ 必交换状态端口
D. 控制命令✓ 必交换控制端口

最终答案是 B(主存地址)

速记口诀

  • 中断方式:CPU 主导访存——主存地址是 CPU 内部的事,不出现在接口上
  • DMA 方式:DMA 控制器主导访存——主存地址必须传到 DMA 控制器,才会在 CPU 和 I/O 端口之间出现

最后更新:

🎬 可视化演示
加载中...

提示:可在可视化区直接操作播放、步进、修改参数