第九章:输入输出系统
本章整理计算机与外部世界进行数据交互的输入输出系统。I/O 系统是连接 CPU、主存与外部设备的桥梁,其设计目标是在尽可能少地占用 CPU 资源的前提下,高效完成外设与主存之间的数据传输。
本章考试比重约 15 分,重点集中在四种数据传输控制方式(程序查询、程序中断、DMA、通道)的工作流程和对比分析,以及 I/O 接口编址方式的区别。
9.1 输入输出设备与特性
输入输出设备(简称 I/O 设备或外部设备)是计算机系统与外部世界交换信息的物理媒介。
- 输入设备:将外部信息转换为计算机内部能识别的电信号形式。典型设备:键盘、鼠标、扫描仪、摄像头。
- 输出设备:将计算机内部的数据信息转换为人类或其他设备可接受的形式。典型设备:显示器、打印机、扬声器。
- 输入输出两用设备:既能输入又能输出。典型设备:磁盘驱动器、触摸屏、网卡。
外部设备的种类繁多,工作速度差异巨大(从几字节/秒的键盘到数 GB/s 的固态硬盘),信号格式各异。因此,外部设备不能直接连接到系统总线上与 CPU 通信,必须通过 I/O 接口进行适配和缓冲。
9.2 I/O 接口
9.2.1 I/O 接口的功能
I/O 接口(又称 I/O 控制器、设备控制器)是位于系统总线与外部设备之间的硬件电路模块,主要承担以下功能:
- 数据缓冲:设置数据缓冲寄存器,解决 CPU 与外设之间的速度不匹配问题。CPU 将数据写入缓冲寄存器后即可继续其他工作,外设按自身速度从缓冲区取走数据。
- 信号格式转换:将系统总线上的并行数字信号与外设所需的特定信号格式(模拟信号、串行信号等)之间进行转换。
- 设备选择:当系统总线上挂接多个 I/O 接口时,CPU 通过地址总线发出设备地址,I/O 接口中的地址译码电路判断是否被选中。
- 命令与状态管理:接收并解释 CPU 发出的控制命令(如启动、停止),同时向 CPU 报告外设的当前状态(如就绪、忙碌、错误)。
9.2.2 I/O 接口的结构
一个典型的 I/O 接口通常包含以下核心寄存器,它们统称为 I/O 端口:
| 寄存器名称 | 功能 |
|---|---|
| 数据缓冲寄存器 | 暂存 CPU 与外设之间传输的数据 |
| 状态寄存器 | 记录外设的当前工作状态(就绪、忙、错误等),供 CPU 读取查询 |
| 控制寄存器 | 存放 CPU 发出的控制命令(启动、停止、模式设置等) |
9.2.3 I/O 接口的编址
CPU 如何访问 I/O 端口中的寄存器,取决于 I/O 端口的编址方式:
两种 I/O 编址方式的对比(简答/选择常考)
对比维度 统一编址(存储器映射) 独立编址(I/O 映射) 地址空间 I/O 端口与主存共用同一个地址空间 I/O 端口有独立的地址空间 访问指令 使用普通的访存指令(如 lw/sw)访问 I/O 端口使用专用的 I/O 指令(如 IN/OUT)访问地址译码 需要从统一的地址空间中划出一段分配给 I/O,主存可用地址减少 I/O 地址与主存地址互不冲突,主存地址空间不受影响 编程灵活性 灵活,可以用丰富的访存指令操作 I/O 端口 专用指令类型少,编程灵活性较低 硬件区分 通过地址范围区分是主存还是 I/O 通过专用的 I/O 控制信号线区分 典型应用 ARM、MIPS 等 RISC 架构 x86 架构(同时也支持统一编址) 在独立编址体系中,CPU 不能用普通的访存指令访问 I/O 端口,必须使用专用的 I/O 指令(如 x86 的
IN/OUT);而统一编址时,CPU 用访存指令就能访问 I/O 端口。
9.2.4 I/O 接口的软件(设备驱动程序)
I/O 接口硬件必须与操作系统中的设备驱动程序配合才能工作。驱动程序是一段直接与硬件打交道的底层软件,负责向 I/O 接口的控制寄存器发送命令、配置工作模式,并处理硬件中断。
9.2.5 I/O 接口的分类
- 按数据传送方式分:并行接口(一次传送多位数据)和串行接口(逐位传送数据)。
- 按功能选择灵活性分:可编程接口(通过软件设置工作模式)和不可编程接口(功能固定)。
9.3 数据传输控制方式
CPU 与外设之间的数据传输需要有一种控制机制来协调。按照 CPU 参与程度由高到低,共有四种主要的数据传输控制方式:
| 方式 | CPU 参与程度 | CPU 利用率* | 适用场景 |
|---|---|---|---|
| 程序查询方式 | 最高(全程等待) | 最低 | 低速、简单的外设 |
| 程序中断方式 | 较高(中断时介入) | 较高 | 中低速外设 |
| DMA 方式 | 较低(仅初始化和结束时介入) | 高 | 高速块设备(磁盘等) |
| 通道方式 | 最低(通道处理器自主执行 I/O 程序) | 最高 | 大型主机的复杂 I/O 子系统 |
*注:这里的“CPU 利用率”指 CPU 用于执行非 I/O 任务(即有用计算)的时间占比。
9.4 程序控制方式
9.4.1 简单设备程序查询流程
程序查询方式(又称程序轮询方式)的基本思想:CPU 通过执行一段循环查询程序,反复读取 I/O 接口的状态寄存器,判断外设是否准备就绪。在外设就绪之前,CPU 一直处于”忙等”状态,无法执行其他任何程序。
9.4.2 复杂设备程序查询流程
当系统中有多个外设时,CPU 需要依次轮流查询各设备的状态。查询的先后顺序就是各设备的优先级。
9.4.3 程序查询特点
- 优点:硬件结构简单,不需要中断控制器和 DMA 控制器。
- 缺点:CPU 在外设准备数据期间完全处于空转等待状态,CPU 利用率极低。外设速度越慢,CPU 浪费的时间越多。
9.5 程序中断控制方式
程序中断方式是为了克服程序查询方式中 CPU “忙等”问题而设计的。其核心思想:CPU 启动 I/O 操作后不再等待,而是继续执行当前程序。当外设完成数据准备后,主动向 CPU 发出中断请求信号,CPU 在当前指令执行完毕后响应中断,暂停当前程序,转入 I/O 中断服务程序完成数据传输,传输完成后返回原程序断点继续执行。
9.5.1 中断的基本概念
- 中断请求:外设通过 I/O 接口向 CPU 发出的”请求服务”信号。
- 中断源:引发中断请求的设备或事件。
- 中断响应:CPU 在满足条件时暂停当前程序,转去执行中断服务程序的动作。
- 中断服务程序:为该中断源专门编写的处理程序,用于完成实际的数据传输和设备控制。
- 中断返回:中断服务程序执行完毕后,CPU 恢复原程序断点状态,返回继续执行。
9.5.2 中断请求
外设通过 I/O 接口中的中断请求触发器向 CPU 发出中断请求信号。多个设备的中断请求信号可以通过以下两种方式汇集到 CPU:
- 独立请求线方式:每个设备都有独立的中断请求线直连 CPU。CPU 可以直接识别是哪个设备发出的请求。硬件开销大但响应快。
- 公共请求线方式:所有设备共用一条中断请求线,CPU 收到请求后还需要进一步识别具体的中断源。
9.5.3 中断响应
CPU 响应中断必须同时满足以下条件:
- 有设备发出了中断请求(中断请求触发器置位)。
- CPU 处于开中断状态(中断允许标志 IF = 1)。
- 当前指令已经执行完毕(CPU 在每条指令的最后一个时钟周期末尾检测中断请求)。
9.5.4 中断识别
当有多个中断源同时发出请求时,CPU 需要确定优先响应哪个中断源。
软件查询法:CPU 通过程序依次查询各设备的中断请求状态位,第一个被查询到有请求的设备获得服务。查询顺序即为优先级顺序。
硬件排队电路(中断向量法):由专门的硬件优先级编码器确定最高优先级的中断源,并产生一个中断类型号。CPU 根据该类型号在中断向量表中查找对应中断服务程序的入口地址,直接跳转执行。
中断向量与中断向量表
- 中断向量:中断服务程序的入口地址。
- 中断向量表:存放在主存固定区域的一张地址表,每个表项存放一个中断向量(即一个中断服务程序的入口地址)。CPU 用中断类型号作为索引查表,快速定位到目标服务程序。
9.5.5 中断处理
中断处理全过程(高权重考点大题)一个完整的中断处理过程分为以下几个阶段:
1. 中断响应阶段(硬件自动完成,称为”中断隐指令”)
这一阶段由 CPU 硬件在中断响应周期内自动完成,不需要程序员编写指令:
- 关中断:将中断允许标志 IF 置 0,防止在保存断点过程中再被新的中断打断。
- 保存断点:将当前程序计数器 PC 的值(断点地址)压入堆栈或保存到特定寄存器中。
- 识别中断源并获取入口地址:通过中断向量表查找或硬件排队电路获取中断服务程序的入口地址,送入 PC。
2. 中断服务程序(软件编写)
由程序员(通常是操作系统开发者)编写的中断处理代码:
- 保护现场:将中断服务程序中可能使用到的通用寄存器内容压入堆栈保存,防止原程序的寄存器值被覆盖。
- 开中断(可选):如果允许更高优先级的中断嵌套,此时重新开中断。
- 执行中断服务:完成实际的 I/O 数据传输和设备控制操作。
- 关中断(可选):在恢复现场前关闭中断,防止恢复过程被打断。
- 恢复现场:将之前压入堆栈的寄存器值弹出恢复。
- 开中断并中断返回:恢复中断允许状态,执行中断返回指令,将断点地址从堆栈弹回 PC,CPU 返回原程序继续执行。
graph TD A[原程序执行] --> B[当前指令结束] B --> C{有未屏蔽的中断请求?} C -- 否 --> A C -- 是 --> D(中断隐指令: 硬件自动完成) subgraph 中断隐指令 D --> D1[1. 关中断] D1 --> D2[2. 保存断点 PC] D2 --> D3[3. 获中断服务程序入口] end D3 --> E(中断服务程序: 软件执行) subgraph 中断服务程序 E --> E1[4. 保护现场] E1 --> E2[5. 可选: 开中断允许嵌套] E2 --> E3[6. 执行实际 I/O 传输] E3 --> E4[7. 可选: 关中断] E4 --> E5[8. 恢复现场] E5 --> E6[9. 开中断] E6 --> E7[10. 中断返回 IRET] end E7 --> A
中断嵌套中断嵌套是指在执行某个中断服务程序的过程中,又响应了更高优先级的中断请求,暂时挂起当前中断服务,转去执行更高优先级的中断服务程序,完成后再返回继续处理原来的中断。只有在中断服务程序中执行了”开中断”操作后,才可能发生中断嵌套。
9.5.6 多重中断与中断屏蔽
当系统中有多个中断源且允许中断嵌套时,需要通过中断优先级和中断屏蔽字来控制中断的响应顺序。
中断屏蔽字:每个中断源对应一个屏蔽位。通过设置屏蔽字可以有选择地屏蔽某些中断请求。中断屏蔽字中,置 1 的位对应的中断源被屏蔽(即该中断请求被忽略),置 0 的位对应的中断源可以被响应。
中断屏蔽字的设置规则若按本文约定 表示屏蔽: 每个中断源的屏蔽字要确保屏蔽掉所有优先级不高于自己的中断源,只允许优先级更高的中断源打断自己。同时,每个中断源的屏蔽字中对应自己的那一位必须置 1(即在自己的服务程序执行期间屏蔽自身,防止自我嵌套)。
9.6 DMA 方式
9.6.1 DMA 的基本概念
DMA 是一种硬件控制的高速数据传输机制。在 DMA 方式下,外设与主存之间的数据传输不需要 CPU 逐字节地执行 I/O 指令来搬运数据,而是由专门的 DMA 控制器直接控制系统总线,自主完成外设与主存之间的批量数据传输。
CPU 仅在 DMA 传输的开始(初始化 DMA 控制器参数)和结束(接收 DMA 完成中断)时参与,整个数据传输过程中 CPU 可以继续执行其他程序,极大地提高了 CPU 利用率。
9.6.2 内存争用问题
DMA 控制器和 CPU 都需要通过系统总线访问主存。当两者同时需要访存时,就会产生总线争用冲突。常用的解决方法有:
1. 停止 CPU 访存法
当 DMA 控制器需要使用总线时,CPU 暂时放弃对总线的控制权,让 DMA 控制器独占总线进行数据传输。
- 控制简单,但在 DMA 传输期间 CPU 完全无法访存,效率不高。
2. 周期挪用法(周期窃取法)
当 DMA 控制器需要传输一个数据时,它”窃取”一个存储周期,在该周期内占用总线访存,之后立即归还总线给 CPU。
- CPU 只在个别存储周期被短暂暂停,对 CPU 执行效率的影响很小。
- 这是 DMA 方式中最常用的总线争用策略。
3. 交替访存法
将一个存储周期一分为二:前半个周期分配给 CPU 使用,后半个周期分配给 DMA 控制器使用。两者交替访存,互不冲突。
- DMA 传输与 CPU 访存在时间上完美交错,CPU 没有任何等待,两者并发执行。
- 但要求存储器的存取速度必须足够快(存取周期至少是正常的一半),硬件设计要求极高,仅适用于高速系统。
9.6.3 DMA 控制器
DMA 控制器的内部通常包含以下关键寄存器:
| 寄存器/部件 | 功能 |
|---|---|
| 主存地址寄存器(AR) | 存放当前 DMA 传输在主存中的目标/源地址,每传输一个数据自动加 1 |
| 设备地址寄存器(DAR) | 存放挂接在 DMA 控制器上的 I/O 设备内部端口地址 |
| 字计数器(WC) | 存放需要传输的数据总字/字节数,每传输一个数据自动减 1,减到 0 时向 CPU 发出传输完成中断 |
| 数据缓冲寄存器(DR) | 暂存正在传输的数据 |
| 命令/状态寄存器(CSR) | 存放 CPU 下达的控制命令(如读/写方向)以及 DMA 的当前运行状态 |
9.6.4 DMA 传输流程
DMA 数据传输的完整流程DMA 传输过程分为三个阶段:
1. 预处理阶段(CPU 完成)
CPU 通过程序向 DMA 控制器写入以下初始化参数:
- 主存起始地址(传输数据在主存中的存放位置)。
- 传输数据的字节数或字数。
- 传输方向(主存到外设,还是外设到主存)。
- 发出启动 DMA 传输的命令。
2. 数据传输阶段(DMA 控制器自主完成)
DMA 控制器接管总线控制权后,自动完成数据的逐字传输:
- DMA 控制器将主存地址寄存器的内容送上地址总线。
- 向主存发出读/写控制信号。
- 完成一个字的传输后,主存地址寄存器自动加 1,字计数器自动减 1。
- 判断字计数器是否为 0:若不为 0 则继续传输下一个字;若为 0 则传输完毕。
3. 后处理阶段(CPU 完成)
DMA 传输完毕后,DMA 控制器向 CPU 发出中断请求。CPU 响应中断后执行中断服务程序,进行后续处理(如校验传输是否正确、释放缓冲区、启动下一次 DMA 传输等)。
9.7 通道方式
9.7.1 通道的基本概念
通道是一种专用的 I/O 处理器,能够独立执行由 CPU 预先安排好的通道程序(由通道指令组成)。通道拥有自己的指令系统,可以自主执行通道程序、控制外设、管理数据传送,进一步降低了 CPU 在 I/O 操作中的参与程度。
通道与 DMA 的关系可以理解为:DMA 是通道的简化版。DMA 只能完成简单的”搬运数据”操作,而通道可以执行一套预定义的 I/O 程序,完成更复杂的控制逻辑。
9.7.2 通道的类型
| 类型 | 特点 | 适用设备 |
|---|---|---|
| 字节多路通道 | 以字节为单位交叉地为多个低速设备服务,各设备轮流使用通道 | 键盘、打印机等低速设备 |
| 选择通道 | 一次只能为一个高速设备服务,在该设备的整个数据传输期间独占通道 | 磁盘等高速设备 |
| 数组多路通道 | 以数据块为单位交叉地为多个设备服务,兼顾高速与多路 | 多台磁盘并行传输 |
9.7.3 CPU 对通道的控制
CPU 与通道之间的协作流程:
- CPU 在主存中准备好通道程序,将通道程序首地址存入通道地址字。
- CPU 执行”启动 I/O”指令,通知通道开始工作。
- 通道从主存取出通道指令,自主执行 I/O 操作。
- 通道完成全部 I/O 操作后,向 CPU 发出中断请求。
- CPU 响应中断,进行后处理。
补充:常见 I/O 设备简述
常见输入输出设备
- 键盘、鼠标:典型的人机交互输入设备。键盘通过扫描码矩阵捕获按键;鼠标通过光电传感器或机械滚轮捕获位移。
- 显示器、打印机:典型的输出设备。显示器将显存中的像素矩阵转换为光信号(CRT、LCD、OLED);打印机负责输出硬拷贝(点阵、喷墨、激光)。
- 光盘存储器:通过激光照射光盘表面的凹凸坑阵列来读取数据,具有容量大、成本低、便于携带的特点。
磁盘存储器
磁盘是最重要的外部存储设备之一。磁盘的数据组织结构:
- 磁道:磁盘表面上的一系列同心圆环,每个磁道可以存储一圈数据。
- 扇区:每个磁道被划分为若干个弧段,每个弧段称为一个扇区,是磁盘读写的最小物理单位。
- 柱面:所有磁盘面上位于同一半径位置的磁道构成一个柱面。
磁盘访问时间的组成:
- 寻道时间:磁头从当前磁道移动到目标磁道所需的时间,是磁盘访问中最主要的延迟。
- 旋转延迟:目标扇区旋转到磁头正下方所需的时间。平均旋转延迟为磁盘旋转一周时间的一半。
- 数据传输时间:实际读写数据所需的时间。
磁盘阵列(RAID)
RAID 通过多块磁盘并行工作来提高数据传输速率和可靠性。基本思想是将数据分散存储在多块磁盘上,同时用校验信息提供容错能力。
9.8 四种数据传输方式的全面对比
四种 I/O 控制方式的对比分析(核心考点)
对比维度 程序查询方式 程序中断方式 DMA 方式 通道方式 数据传输单位 字/字节 字/字节 数据块 一组数据块 CPU 参与程度 全程参与(忙等) 中断时参与 仅初始化和结束 仅启动和结束 数据传输路径 CPU 中转 CPU 中转 DMA 控制器直接搬运 通道处理器搬运 中断次数 无中断 每传一个数据单位(字/字节)中断一次 每传一个数据块中断一次 每个通道程序结束中断一次 CPU 利用率* 最低 较高 高 最高 硬件成本 最低 需中断控制器 需 DMA 控制器 需通道处理器,最高 适用场景 低速、简单外设 中低速外设 高速块设备 大型机复杂 I/O 数据流向 CPU ↔ I/O CPU ↔ I/O 主存 ↔ I/O 主存 ↔ I/O *注:这里的“CPU 利用率”指 CPU 用于执行非 I/O 任务(即有用计算)的时间占比。
关键区别记忆:
- 程序查询和程序中断方式的数据都必须经过 CPU 中转(CPU 的寄存器参与搬运)。
- DMA 和通道方式的数据在外设与主存之间直接传输,不经过 CPU。
9.9 本章易错点与重点回顾
统一编址与独立编址的访问指令区分统一编址(存储器映射)下,CPU 使用普通的访存指令(如
lw/sw)即可访问 I/O 端口。独立编址(I/O 映射)下,CPU 必须使用专用的 I/O 指令(如IN/OUT)才能访问 I/O 端口,不能使用普通的访存指令。
中断响应的时机CPU 响应外部中断的时机是在当前指令执行完毕之后,而不是指令执行过程中。CPU 在每条指令的最后一个时钟周期末尾统一检测是否有中断请求。
DMA 与中断方式的本质区别
- 中断方式在每传送一个字后就要中断 CPU 一次,由 CPU 执行中断服务程序完成数据搬运。
- DMA 方式由 DMA 控制器自主完成整块数据的搬运,只在整块传输完毕后才中断 CPU 一次。
- 因此,对于大量数据的传输,DMA 方式对 CPU 的打扰远远少于中断方式。
保存断点与保护现场的区别
- 保存断点:保存 PC 的值(下一条指令的地址),由硬件在中断响应阶段自动完成。
- 保护现场:保存通用寄存器和状态寄存器的内容,由中断服务程序的软件代码完成。 两者缺一不可,但执行者和执行时机不同。
9.10 历年真题与易错题集
9.10.1 选择与判断题
【1】关于 DMA 方式说法正确的是( )。(计组2019秋18级测试) A. DMA方式采用软件实现数据传送 B. DMA方式能完全取代中断方式 C. DMA方式在传送方式中需要CPU程序的干预 D. DMA方式一般用于高速、批量数据的简单传送 答案:D
解析:
- A [错误]:DMA 方式是纯硬件控制的,数据传送过程由 DMA 控制器直接控制,不需要软件程序参与。
- B [错误]:DMA 方式仅适用于大量数据传输的硬件直连通道,缺乏处理复杂情况和异常的能力,不能完全取代中断方式。
- C [错误]:在数据传送期间,DMA 控制器直接控制总线进行主存与外设之间的数据交换,不需要 CPU 程序的干预。
- D [正确]:DMA 方式专为高速、批量数据传输设计,利用硬件控制直接在主存与外设之间进行数据传送,具有高效、简单的特点。
【2】中断响应是在( )。(计组2019秋18级测试) A. 一条机器指令执行开始 B. 一条机器指令执行中间 C. 一条机器指令执行之末 D. 一条机器指令执行的任何时刻 答案:C
解析:
- A [错误]:如果在机器指令执行开始时响应中断,当前的指令还未开始执行,这会打断指令的正常调度。
- B [错误]:如果在指令执行的中间响应中断,会使指令的执行状态处于不确定或不完整的状态,导致难以保存当前的断点信息。
- C [正确]:为了保证被中断指令的断点状态完整,CPU 只能在当前执行的一条机器指令执行之末(即指令周期的最后一个时钟节拍)去检测并响应中断。
- D [错误]:中断响应不能在机器指令执行的任何时刻发生,只能在指令周期的结束阶段进行检测与响应。
【3】DMA方式中,周期窃取是窃取一个( )。(计组2019秋18级测试) A. 指令周期 B. 时钟周期 C. 存取周期 D. CPU周期 答案:C
解析:
- A [错误]:指令周期是 CPU 执行一条指令所需的时间,通常包含多个存取周期。DMA 控制器不需要也不可能窃取一个完整的指令周期。
- B [错误]:时钟周期是 CPU 工作的最小时间单位。一个时钟周期内无法完成主存的读写操作,因此 DMA 周期窃取不能是窃取一个时钟周期。
- C [正确]:周期窃取是指当 DMA 控制器需要传输数据时,它向 CPU 申请窃取一个主存的存取周期(即读写一个字的时间),在此周期内由 DMA 控制器占用总线访问主存。
- D [错误]:CPU 周期(又称机器周期)通常由数个时钟周期组成,是完成一个基本操作所需的时间。最精确的学术定义是窃取一个存取周期。
【4】某计算机有五级中断L4~L0,中断屏蔽字格式为M4M3M2M1M0,Mi=1(0≤i≤4)表示对Li级中断进行屏蔽。若中断响应优先级从高到低的顺序是 L4→L0→L2→L1→L3,则 L1 的中断处理程序中设置的中断屏蔽字是( )。(2020-2021第二学期B)
- 正确答案:01010(若规定“1代表屏蔽,0代表允许”)或 10101(若规定“0代表屏蔽,1代表允许”)
- 解析:中断屏蔽字的设置原则是:屏蔽掉自己以及所有优先级低于自己的中断源。本题优先级从高到低为:L4 > L0 > L2 > L1 > L3。对于 L1 来说,需要屏蔽 L1(自己)和 L3(低于自己),其余允许。
有两种常见的屏蔽位定义:
(1)若规定1代表屏蔽,0代表允许:则 M1=1,M3=1,其余为 0。对应 M4M3M2M1M0 格式为01010。
(2)若规定0代表屏蔽,1代表允许:则 M1=0,M3=0,其余为 1。对应 M4M3M2M1M0 格式为10101。
原卷若给出01101等选项,可能由于位序排列差异(如自右向左定义)或 1 与 0 约定差异所致。本解析统一以“1代表屏蔽,0代表允许”的标准学术约定进行推导,结果为01010。
【5】下列选项中,能引起外部中断的事件是( )。(2020-2021第二学期B) A. 键盘输入 B. 除数为0 C. 浮点运算下溢 D. 访存缺页 答案:A
解析:
- A [正确]:键盘输入是由外部设备向 CPU 发出的中断请求信号,属于典型的外部中断。
- B [错误]:除数为 0 是由于 CPU 执行了除数为 0 的除法指令而引发的异常,属于内中断(或称为异常)。
- C [错误]:浮点运算下溢是 CPU 执行浮点运算指令时产生的内部运算错误,属于内中断。
- D [错误]:访存缺页是 CPU 执行访存指令时,发现所需页面不在主存中而由存储管理单元引发的异常,属于内中断。
【6】某中断系统采用多级优先权编码,当同时有3个中断请求信号(优先级 A>B>C)到达且正在处理B中断时,中断控制器会将( )请求的向量地址送入PC。(南阳理工学院C卷)
- 正确答案:A
- 解析:中断系统支持多级中断嵌套,高优先级的中断可以打断低优先级的中断。当前正在处理 B,此时 A 的优先级高于 B,因此 A 可以打断 B,控制器会将最高优先级 A 的向量地址送入 PC。C 的优先级低于 B,被屏蔽。
【7】程序查询方式相比中断方式更适合处理高速外设的数据传输。(判断题)(南阳理工学院C卷)
- 正确答案:错
- 解析:程序查询方式需要 CPU 循环轮询(忙等),效率极低,无法及时处理高速外设的数据,甚至会导致数据丢失。高速外设的数据传输通常采用 DMA 方式,中低速外设常采用中断方式。
【8】下列关于 I/O 指令的说法中,错误的是( )。(2020-2021第2学期A) A. I/O指令是CPU系统指令的一部分 B. I/O指令是机器指令的一类 C. I/O指令反映CPU和I/O设备交换信息的特点 D. I/O指令的格式和通用指令格式相同 答案:D
解析:
- A [错误]:I/O 指令是 CPU 指令系统的一部分,属于正确的表述,因此不选。
- B [错误]:I/O 指令是机器指令中的一类,由操作码和地址码组成,属于正确的表述,因此不选。
- C [错误]:I/O 指令用于实现 CPU 与外设之间的数据交换,反映了两者之间数据交换的特点,属于正确的表述,因此不选。
- D [正确]:I/O 指令通常在独立编址方式下使用,因为端口地址空间较小,所以 I/O 指令的格式通常与通用的访存指令格式不同。该说法错误,故选 D。
【9】以下关于通道程序的叙述中,正确的是( )。(2020-2021第2学期A) A. 通道程序存放在主存中 B. 通道程序存放在通道中 C. 通道程序是由CPU执行的 D. 通道程序可以在任何环境下执行I/O操作 答案:A
解析:
- A [正确]:通道程序是由通道指令组成的序列,它与普通程序一样存放在主存储器中。
- B [错误]:通道内部没有大容量存储器,通道程序通常存放在主存储器中,通道运行时从中取出指令执行。
- C [错误]:通道程序是由通道控制器(通道处理器)读取并自主执行的,并不由 CPU 直接执行。
- D [错误]:通道程序的执行需要硬件和系统的支持,必须在操作系统和特定的硬件资源配置下运行,并不是在任何环境下都能执行。
【10】在 I/O 接口中,采用统一编址方式时,CPU 不能用访存指令访问 I/O 端口。(判断题)(2022-2023-2考试)
- 正确答案:错
- 解析:统一编址方式(存储器映射编址)的特点正是将 I/O 端口地址和主存地址统一在同一个地址空间中。因此,CPU 可以直接使用普通的访存指令(如 lw/sw)来访问 I/O 端口。
9.10.2 综合计算大题
【1】CPU 速度与 I/O 速度的匹配(Amdahl定律应用)(2022-2023-2考试) 题干:若基准程序 A 在某计算机上的运行时间为 100 秒,其中 90 秒为 CPU 时间,其余时间为 I/O 时间。若 CPU 速度提高百分之五十,I/O 速度不变,则运行基准程序 A 所耗费的时间是多少?运行基准程序 A 的整体速度提升了多少?通过计算结果,你可以在性能提升方面得到什么样的启发?
- 解答:
- 原始总时间 = 100 秒,其中 CPU 时间 = 90 秒,I/O 时间 = 10 秒。
- CPU 速度提高 50%(即变为原来的 1.5 倍),新的 CPU 时间 = 90 / 1.5 = 60 秒。
- 新的总时间 = 新 CPU 时间 + I/O 时间 = 60 + 10 = 70 秒。
- 系统加速比 = 原始时间 / 新时间 = 100 / 70 ≈ 1.43 倍(表明系统运行速度比优化前提升了约 42.86%),或时间缩短比例 = (原始时间 - 新时间) / 原始时间 = 30%。
- 启发:根据 Amdahl 定律,系统整体性能的提升受限于未被优化的部分。如果只一味提升 CPU 的速度,当 I/O 时间在总时间中的占比逐渐增大时,系统整体性能的提升会遇到瓶颈。因此,要实现整体性能的大幅跃升,必须兼顾 CPU 速度与 I/O 速度的同步提升。
【2】磁盘访问时间计算(补充典型大题) 题干:某磁盘的转速为 7200 转/分,平均寻道时间为 8 ms,每个磁道容量为 1 MB,磁盘控制器延迟为 2 ms。若要读取一个 4 KB 的扇区,计算其平均访问时间。
- 解答:14.2 ms
- 解析:
- 寻道时间 ms。
- 旋转延迟 :转速为 7200 rpm,即每秒 120 转,转一圈时间为 ms。平均旋转延迟为转半圈的时间 ms。
- 传输时间 :一圈 1 MB 需 8.33 ms,传输 4 KB ( 圈 ) 的时间 ms。
- 控制器延迟 ms。
- 平均访问时间 ms。如果题目不提控制器延迟,通常只算前三项。(具体结果随保留小数位数可能微小浮动,此处展示标准算法步骤)。
【3】DMA 方式与 CPU 占用率计算(高频大题)(综合自 2020-2021第2学期A / 2022-2023-2考试) 题干:某磁盘采用 DMA 方式与 CPU 交换信息,其传输速率为 20 MB/s。若 DMA 的预处理阶段需要 200 个时钟周期,DMA 完成传输后的中断处理阶段需要 400 个时钟周期。假设磁盘工作时,处理器主频为 200 MHz。 (1)如果 DMA 平均传输的数据块长度为 512 B,进行 DMA 传输时 CPU 的占有率是多少? (2)如果采用 4 KB 的传输单位呢?
-
解答: DMA 方式下,数据块的具体传输过程由 DMA 控制器硬件自主完成,不占用 CPU 时间。CPU 的开销仅存在于每次 DMA 请求前后的预处理和后处理阶段。 每次 DMA 传输 CPU 的总开销 = 200 + 400 = 600 个时钟周期。 (1)数据块为 512 B 时:
- 每秒发生的 DMA 传输次数 = 20 MB/s ÷ 512 B = 20 × 10^6 ÷ 512 = 39062.5 次。
- 每秒 CPU 在 DMA 上的开销时钟数 = 39062.5 × 600 = 23,437,500 个时钟周期。
- CPU 占有率 = 开销时钟数 ÷ CPU 主频 = 23,437,500 ÷ (200 × 10^6) = 0.1171875 ≈ 11.72%。
(2)数据块为 4 KB 时:
- 每秒发生的 DMA 传输次数 = 20 MB/s ÷ 4096 B = 20 × 10^6 ÷ 4096 = 4882.8 次(注:若按1K=1000计算则为5000次)。
- 按 4882.8 次计算:每秒 CPU 开销时钟数 = 4882.8 × 600 = 2,929,687 个时钟周期。
- CPU 占有率 = 2,929,687 ÷ (200 × 10^6) = 0.014648 ≈ 1.46%。
- (注:数据块越大,触发 DMA 中断的频率越低,CPU 的占有率就越小。)
【4】DMA 等效指令数占用率计算(2022-2023-2考试) 题干:某计算机的 CPU 主频为 500 MHz,CPI 为 5。假定某外设的数据传输率为 5 MB/s,采用 DMA 方式与主机进行数据传送,每次 DMA 传送块大小为 5000 B,每次 DMA 预处理和后处理的总开销相当于 100 条指令的执行时间。求该外设 I/O 时的 CPU 占用率。(假设 DMA 与 CPU 之间没有访存冲突)
- 解答:
- 计算每秒发生 DMA 的次数: 每秒 DMA 请求次数 = 5 MB/s ÷ 5000 B = (5 × 10^6) ÷ 5000 = 1000 次。
- 计算每次 DMA 传输 CPU 的时钟开销: 每次开销等效于执行 100 条指令。由于 CPI = 5,100 条指令耗费的时钟周期数 = 100 × 5 = 500 个。
- 计算 CPU 占有率: 每秒 CPU 在 DMA 上的总开销 = 1000 次 × 500 时钟/次 = 500,000 个时钟周期。 CPU 占有率 = 500,000 ÷ (500 × 10^6) = 0.001 = 0.1%。
【5】中断驱动 I/O 的 CPU 占有率计算(2020-2021第二学期B) 题干:计算机系统采用中断驱动方式进行输入输出,CPU 的时钟频率为 200 MHz。硬盘以 512 字节大小的扇区为单位传输数据,启动阶段发送命令和参数需要 90 个时钟周期,中断服务开销 400 时钟(包括中断响应、中断处理,不包括数据传输),实际数据传输需要 1555 时钟周期,CPU 访问硬盘的速率为 20 MB/s。 (1)求中断驱动 I/O 方式下的 CPU 占有率。 (2)如果硬盘速率提高到 50 MB/s,会发生什么情况?
- 解答:
中断驱动方式下,数据的传输也是在中断服务程序中由 CPU 亲自参与完成的,因此实际数据传输的时间也算作 CPU 开销。
每次中断 CPU 的总开销 = 启动准备(90) + 中断服务(400) + 数据传输(1555) = 2045 个时钟周期。
(1)硬盘速率为 20 MB/s 时:
- 每秒中断次数 = 20 MB/s ÷ 512 B = (20 × 10^6) ÷ 512 = 39062.5 次。
- CPU 占有率 = 39062.5 × 2045 ÷ (200 × 10^6) = 79,882,812.5 ÷ (200 × 10^6) ≈ 0.399(约 40%)。 (2)硬盘速率提高到 50 MB/s 时:
- 每秒中断次数 = 50 MB/s ÷ 512 B = (50 × 10^6) ÷ 512 = 97656.25 次。
- CPU 占有率 = 97656.25 × 2045 ÷ (200 × 10^6) = 199,707,031.25 ÷ (200 × 10^6) ≈ 0.9985(接近 100%)。
- 发生的情况:CPU 几乎全部的时间都被硬盘 I/O 中断所占用,系统无法再执行其他正常的计算程序,性能严重下降。这也证明了高速设备不适合采用中断方式,而应采用 DMA 方式。
9.11 补充习题区
*(留白:在此区域可补充后续刷题过程中遇到的更多偏门题、坑题,可按照前面节的格式进行归纳,作为考前冲刺弹药库)
习题9:课后习题详解

习题9.1 解释下列名词
题干:
接口、中断、单级中断、多重中断、中断屏蔽、中断响应优先级、中断处理优先级、中断响应、中断识别、中断隐指令、中断号、中断向量、向量中断、向量地址、中断向量表、程序查询 I/O、程序中断 I/O、DMA、第三方 DMA、周期挪用、磁道、扇区、道密度、位密度、平均定位时间、条带。
解析:
- 接口:CPU/主存与外部设备之间的连接部件,完成地址译码、命令接收、状态保存、数据缓冲、格式转换等。
- 中断:CPU 因内部异常或外部请求暂停当前程序,转去执行中断服务程序,完成后返回原程序的机制。
- 单级中断:只允许一个中断层次,不发生中断嵌套。
- 多重中断:允许中断嵌套,高优先级可打断低优先级中断服务。
- 中断屏蔽:通过屏蔽字使某些中断请求暂时不被 CPU 响应的机制。
- 中断响应优先级:多个中断源同时请求时,CPU 先响应谁的优先级,由硬件决定。
- 中断处理优先级:中断服务程序执行期间各中断谁能打断谁的优先级,由屏蔽字控制。
- 中断响应:CPU 检测到可响应的中断请求后,暂停当前程序进入中断响应周期的过程。
- 中断识别:CPU 确定中断源并找到对应服务程序入口的过程。
- 中断隐指令:中断响应时硬件自动完成的操作(关中断、保存断点、获取入口地址)。
- 中断号:标识中断类型或中断源的编号。
- 中断向量:中断服务程序的入口地址。
- 向量中断:中断源向 CPU 提供中断类型号,使 CPU 直接获得入口地址的中断方式。
- 向量地址:中断向量在中断向量表中的存放地址。
- 中断向量表:按中断号顺序存放各中断服务程序入口地址的表。
- 程序查询 I/O:CPU 循环查询设备状态,就绪后进行数据传送。
- 程序中断 I/O:外设就绪后发中断请求,CPU 响应后执行服务程序完成传送。
- DMA:直接存储器访问,由 DMA 控制器控制数据在主存与 I/O 设备间直接传送。
- 第三方 DMA:由独立的 DMA 控制器作为第三方控制数据传送,可为多设备服务。
- 周期挪用:DMA 的一种总线使用方式,DMA 临时窃取存储周期进行传送。
- 磁道:磁盘盘面上的同心圆形记录轨迹。
- 扇区:磁道上的弧段,是磁盘读写的最小物理单位。
- 道密度:沿半径方向单位长度上的磁道数。
- 位密度:磁道圆周方向单位长度上记录的二进制位数。
- 平均定位时间:磁头定位到目标扇区所需的平均时间(寻道 + 旋转等待)。
- 条带:磁盘阵列中将连续数据分块分布到多个磁盘上的组织单位。
习题9.2 单选题(考研真题)
(1) [2012] 下列选项中,在 I/O 总线的数据线上传输的信息包括__________。
Ⅰ. I/O 接口中的命令字 Ⅱ. I/O 接口中的状态字 Ⅲ. 中断类型号
A. 仅 Ⅰ、Ⅱ B. 仅 Ⅰ、Ⅲ C. 仅 Ⅱ、Ⅲ D. Ⅰ、Ⅱ、Ⅲ
答案:D
解析:命令字(CPU 写入接口)、状态字(CPU 读出接口)、中断类型号(接口提供给 CPU)都通过数据总线传输。
(2) [2014] 下列有关 I/O 接口的叙述中,错误的是__________。
A. 状态端口和控制端口可以合用同一寄存器 B. I/O 接口中 CPU 可访问的寄存器,称为 I/O 端口 C. 采用独立编址方式时,I/O 端口地址和主存地址可能相同 D. 采用统一编址方式时,CPU 不能用访存指令访问 I/O 端口
答案:D
解析:
- A [正确]:状态和控制信息可放在同一寄存器不同位。
- B [正确]:I/O 端口即接口中 CPU 可访问的寄存器。
- C [正确]:独立编址时 I/O 地址空间与主存地址空间独立,数值可相同。
- D [错误]:统一编址时 I/O 端口占用主存地址空间,可用访存指令访问。
(3) [2021] 下列选项中,不属于 I/O 接口的是__________。
A. 磁盘驱动器 B. 打印机适配器 C. 网络控制器 D. 可编程中断控制器
答案:A
解析:磁盘驱动器是外部设备本身,不是接口。打印机适配器、网络控制器、可编程中断控制器都属于 I/O 接口类部件。
(4) [2017] I/O 指令实现的数据传送通常发生在__________。
A. I/O 设备和 I/O 端口之间 B. 通用寄存器和 I/O 设备之间 C. I/O 端口和 I/O 端口之间 D. 通用寄存器和 I/O 端口之间
答案:D
解析:CPU 执行 I/O 指令时,输入将 I/O 端口数据读入通用寄存器,输出将通用寄存器数据写入 I/O 端口。
(5) [2023] 下列关于 I/O 控制方式的叙述中,错误的是__________。
A. 查询方式下,通过 CPU 执行查询程序进行 I/O 操作 B. 中断方式下,通过 CPU 执行中断服务程序进行 I/O 操作 C. DMA 方式下,通过 CPU 执行 DMA 传送程序进行 I/O 操作 D. 对于 SSD、网络适配器等高速设备,采用 DMA 方式输入/输出
答案:C
解析:DMA 传送由 DMA 控制器硬件完成,CPU 不执行”传送程序”逐字传送,只负责初始化。
(6) [2022] 下列关于中断 I/O 方式的叙述中,不正确的是__________。
A. 适用于键盘、针式打印机等字符型设备 B. 外设和主机之间的数据传送通过软件完成 C. 外设准备数据的时间应小于中断处理时间 D. 外设为某进程准备数据时 CPU 可运行其他进程
答案:C
解析:中断 I/O 的优势正是利用外设较长的准备时间让 CPU 做其他工作,因此外设准备时间不要求小于中断处理时间。
(7) [2009] 下列选项中,能引起外部中断的事件是__________。
A. 键盘输入 B. 除数为零 C. 浮点运算下溢 D. 访存故障
答案:A
解析:键盘输入由外部设备产生,属于外部中断。B、C、D 都是 CPU 内部异常。
(8) [2020] 下列事件中,属于外部中断事件的是__________。
Ⅰ. 访存时缺页 Ⅱ. 定时器到时 Ⅲ. 网络数据包到达
A. 仅 Ⅰ、Ⅱ B. 仅 Ⅰ、Ⅲ C. 仅 Ⅱ、Ⅲ D. Ⅰ、Ⅱ 和 Ⅲ
答案:C
解析:缺页是内部异常,定时器到时和网络数据包到达是外部中断。
(9) [2020] 下列关于外部中断的叙述中,错误的是__________。
A. CPU 处于关中断状态时,也能响应 NMI 请求 B. 一旦可屏蔽中断请求信号有效,CPU 将立即响应 C. 不可屏蔽中断的优先级比可屏蔽中断的优先级高 D. 可通过中断屏蔽字改变可屏蔽中断的处理优先级
答案:B
解析:可屏蔽中断需满足开中断、未屏蔽、指令结束等条件后才能响应,并非立即响应。
(10) [2010] 单级中断系统中,中断服务程序内部的执行顺序是__________。
Ⅰ. 保护现场 Ⅱ. 开中断 Ⅲ. 关中断 Ⅳ. 保存断点 Ⅴ. 中断事件处理 Ⅵ. 恢复现场 Ⅶ. 中断返回
A. Ⅰ → Ⅴ → Ⅵ → Ⅱ → Ⅶ B. Ⅲ → Ⅰ → Ⅴ → Ⅶ C. Ⅲ → Ⅳ → Ⅴ → Ⅵ → Ⅶ D. Ⅳ → Ⅰ → Ⅴ → Ⅵ → Ⅶ
答案:A
解析:中断隐指令已完成保存断点和关中断,服务程序内顺序为:保护现场 → 事件处理 → 恢复现场 → 开中断 → 中断返回。
(11) [2012] 响应外部中断的过程中,中断隐指令完成的操作,除保护断点外,还包括__________。
Ⅰ. 关中断 Ⅱ. 保存通用寄存器的内容 Ⅲ. 形成中断服务程序入口地址并送入 PC
A. 仅 Ⅰ、Ⅱ B. 仅 Ⅰ、Ⅲ C. 仅 Ⅱ、Ⅲ D. Ⅰ、Ⅱ、Ⅲ
答案:B
解析:中断隐指令完成关中断和形成入口地址。保存通用寄存器由服务程序软件完成。
(12) [2017] 下列关于多重中断系统的叙述中,错误的是__________。
A. 在一条指令执行结束时响应中断 B. 中断处理期间 CPU 处于关中断状态 C. 中断请求的产生与当前指令的执行无关 D. CPU 通过采样中断请求信号检测中断请求
答案:B
解析:多重中断要允许高优先级中断嵌套,不能在整个处理期间一直关中断。
(13) [2021] 下列关于多重中断系统中 CPU 响应中断的叙述中,错误的是__________。
A. 仅在用户态(执行用户程序下),CPU 才能检测和响应中断 B. CPU 只有在检测到中断请求信号后,才会进入中断响应周期 C. 进入中断响应周期时,CPU 一定处于中断允许(开中断)状态 D. 若 CPU 检测到中断请求信号,则一定存在未被屏蔽的中断请求信号
答案:A
解析:CPU 在用户态和内核态都可以检测中断。多重中断中,处理中断期间也可能响应更高优先级中断。
(14) [2023] 下列关于硬件异常与中断关系的叙述中,错误的是__________。
A. CPU 在执行一条指令过程中检测异常事件 B. CPU 在执行完一条指令时检测中断请求信号 C. 开中断时 CPU 检测到中断请求后就进行中断响应 D. 外部设备通过中断控制器向 CPU 发中断结束信号
答案:D
解析:中断结束通常由 CPU/服务程序通知中断控制器,不是外设向 CPU 发”中断结束信号”。
(15) [2024] 关于中断 I/O 方式的叙述中,错误的是__________。
A. 中断屏蔽字决定中断响应顺序 B. 多重中断方式下,恢复现场处于关中断状态 C. 保存通用寄存器和设置新中断屏蔽字由软件实现 D. 单重中断方式下,中断处理时 CPU 处于关中断状态
答案:A
解析:中断屏蔽字影响处理优先级,不直接决定硬件中断响应顺序。响应顺序由硬件优先级排队决定。
(16) [2015] 在采用中断 I/O 方式控制打印输出的情况下,CPU 和打印控制接口中的 I/O 端口之间交换的信息不可能是__________。
A. 打印字符 B. 主存地址 C. 设备状态 D. 控制命令
答案:B
解析:中断 I/O 方式中数据传送由 CPU 软件完成,不需要向接口交换主存地址。主存地址通常用于 DMA 初始化。
(17) [2018] 下列关于外部 I/O 中断的叙述中,正确的是__________。
A. 中断控制器按所接收中断请求的先后次序进行中断优先级排队 B. CPU 响应中断时,通过执行中断隐指令完成对通用寄存器的保护 C. CPU 只有在处于中断允许状态时,才能响应外部设备的中断请求 D. 有中断请求时,CPU 立即暂停执行当前指令,转去执行中断服务程序
答案:C
解析:
- A [错误]:中断优先级由硬件规则决定,不是按请求先后。
- B [错误]:通用寄存器由软件保护。
- C [正确]:对外部可屏蔽 I/O 中断,CPU 需处于中断允许状态才会响应。
- D [错误]:CPU 在当前指令执行结束后响应外部中断。
(18) [2013] 下列关于中断 I/O 方式和 DMA 方式比较的叙述中,错误的是__________。
A. 中断 I/O 方式请求的是 CPU 处理时间,DMA 方式请求的是总线使用权 B. 中断响应发生在一条指令执行结束后,DMA 响应发生在一个总线事务完成后 C. 中断 I/O 方式下数据传送通过软件完成,DMA 方式下数据传送由硬件完成 D. 中断 I/O 方式适用于所有外部设备,DMA 方式仅适用于高速外部设备
答案:D
解析:中断 I/O 不适合高速块设备(逐字中断开销大),DMA 更适合高速大批量传送。“所有”一词过于绝对。
(19) [2024] DMA 方式中,DMA 控制器控制的数据传输通路位于__________。
A. CPU 和主存之间 B. CPU 和设备接口之间 C. 设备接口和主存之间 D. 设备接口和 DMA 控制器之间
答案:C
解析:DMA 的目标是让数据直接在设备接口和主存之间传送,绕过 CPU。
(20) [2020] 若设备采用周期挪用 DMA 方式进行输入和输出,每次 DMA 传送的数据块大小为 512 字节,相应的 I/O 接口中有一个 32 位数据缓冲寄存器。对于数据输入过程,下列叙述中,错误的是__________。
A. 每准备好 32 位数据,DMA 控制器就发出一次总线请求 B. 相对于 CPU,DMA 控制器的总线使用权的优先级更高 C. 在整个数据块的传送过程中,CPU 不可以访问主存储器 D. 数据块传送结束时,会产生”DMA 传送结束”中断请求
答案:C
解析:周期挪用只在被挪用的存储周期暂停 CPU 访存,CPU 并非整个数据块传送期间都不能访存。
(21) [2010] 假定一台计算机的显示存储器用 DRAM 芯片实现,若要求显示分辨率为 1600 像素 × 1200 像素,颜色深度为 24 位,帧频为 85Hz,显存总带宽的 50% 用来刷新屏幕,则需要的显存总带宽至少约为__________。
A. 245Mbit/s B. 979Mbit/s C. 1958Mbit/s D. 7834Mbit/s
答案:D
解析:每帧 bit,刷新带宽 Mbit/s。总带宽 Mbit/s。
(22) [2015] 若磁盘转速为 7200 转/分钟,平均寻道时间为 8ms,每个磁道包含 1000 个扇区,则访问一个扇区的平均存取时间大约是__________。
A. 8.1ms B. 12.2ms C. 16.3ms D. 20.5ms
答案:B
解析:转一圈 ms,平均旋转等待 ms,传输时间 ms,总 ms。
习题9.3 简要回答下列问题
(1)CPU 与外部设备之间如何连接?
解析:
CPU 与外部设备之间不是直接相连,而是通过 I/O 接口连接。CPU 通过系统总线(地址、数据、控制总线)访问 I/O 接口中的端口(数据端口、状态端口、控制端口),I/O 接口再将 CPU 的统一总线信号转换为外设所需的格式、速度和时序。不同速度的设备采用不同的控制方式:低速设备可用程序查询或中断,高速块设备采用 DMA。
如果这篇文章对你有帮助,欢迎分享给更多人!
部分信息可能已经过时


















