mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4mobile wallpaper 5mobile wallpaper 6
14990 字
41 分钟
输入输出系统

第九章:输入输出系统#

本章整理计算机与外部世界进行数据交互的输入输出系统。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 控制器、设备控制器)是位于系统总线与外部设备之间的硬件电路模块,主要承担以下功能:

  1. 数据缓冲:设置数据缓冲寄存器,解决 CPU 与外设之间的速度不匹配问题。CPU 将数据写入缓冲寄存器后即可继续其他工作,外设按自身速度从缓冲区取走数据。
  2. 信号格式转换:将系统总线上的并行数字信号与外设所需的特定信号格式(模拟信号、串行信号等)之间进行转换。
  3. 设备选择:当系统总线上挂接多个 I/O 接口时,CPU 通过地址总线发出设备地址,I/O 接口中的地址译码电路判断是否被选中。
  4. 命令与状态管理:接收并解释 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 一直处于”忙等”状态,无法执行其他任何程序。

graph TD A[CPU 启动 I/O 设备] --> B{读取状态寄存器<br>设备已就绪?} B -- 否 --> B B -- 是 --> C[进行数据传输] C --> D[传输完毕, 继续执行后续程序] style B fill:#ffe0b2,stroke:#f57c00

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 响应中断必须同时满足以下条件:

  1. 有设备发出了中断请求(中断请求触发器置位)。
  2. CPU 处于开中断状态(中断允许标志 IF = 1)。
  3. 当前指令已经执行完毕(CPU 在每条指令的最后一个时钟周期末尾检测中断请求)。

9.5.4 中断识别#

当有多个中断源同时发出请求时,CPU 需要确定优先响应哪个中断源。

软件查询法:CPU 通过程序依次查询各设备的中断请求状态位,第一个被查询到有请求的设备获得服务。查询顺序即为优先级顺序。

硬件排队电路(中断向量法):由专门的硬件优先级编码器确定最高优先级的中断源,并产生一个中断类型号。CPU 根据该类型号在中断向量表中查找对应中断服务程序的入口地址,直接跳转执行。

中断向量与中断向量表
  • 中断向量:中断服务程序的入口地址。
  • 中断向量表:存放在主存固定区域的一张地址表,每个表项存放一个中断向量(即一个中断服务程序的入口地址)。CPU 用中断类型号作为索引查表,快速定位到目标服务程序。

9.5.5 中断处理#

中断处理全过程(高权重考点大题)

一个完整的中断处理过程分为以下几个阶段:

1. 中断响应阶段(硬件自动完成,称为”中断隐指令”)

这一阶段由 CPU 硬件在中断响应周期内自动完成,不需要程序员编写指令:

  1. 关中断:将中断允许标志 IF 置 0,防止在保存断点过程中再被新的中断打断。
  2. 保存断点:将当前程序计数器 PC 的值(断点地址)压入堆栈或保存到特定寄存器中。
  3. 识别中断源并获取入口地址:通过中断向量表查找或硬件排队电路获取中断服务程序的入口地址,送入 PC。

2. 中断服务程序(软件编写)

由程序员(通常是操作系统开发者)编写的中断处理代码:

  1. 保护现场:将中断服务程序中可能使用到的通用寄存器内容压入堆栈保存,防止原程序的寄存器值被覆盖。
  2. 开中断(可选):如果允许更高优先级的中断嵌套,此时重新开中断。
  3. 执行中断服务:完成实际的 I/O 数据传输和设备控制操作。
  4. 关中断(可选):在恢复现场前关闭中断,防止恢复过程被打断。
  5. 恢复现场:将之前压入堆栈的寄存器值弹出恢复。
  6. 开中断并中断返回:恢复中断允许状态,执行中断返回指令,将断点地址从堆栈弹回 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 的位对应的中断源可以被响应。

中断屏蔽字的设置规则

若按本文约定 Mi=1M_i = 1 表示屏蔽: 每个中断源的屏蔽字要确保屏蔽掉所有优先级不高于自己的中断源,只允许优先级更高的中断源打断自己。同时,每个中断源的屏蔽字中对应自己的那一位必须置 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 控制器接管总线控制权后,自动完成数据的逐字传输:

  1. DMA 控制器将主存地址寄存器的内容送上地址总线。
  2. 向主存发出读/写控制信号。
  3. 完成一个字的传输后,主存地址寄存器自动加 1,字计数器自动减 1。
  4. 判断字计数器是否为 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 与通道之间的协作流程:

  1. CPU 在主存中准备好通道程序,将通道程序首地址存入通道地址字。
  2. CPU 执行”启动 I/O”指令,通知通道开始工作。
  3. 通道从主存取出通道指令,自主执行 I/O 操作。
  4. 通道完成全部 I/O 操作后,向 CPU 发出中断请求。
  5. CPU 响应中断,进行后处理。

补充:常见 I/O 设备简述#

常见输入输出设备#

  • 键盘、鼠标:典型的人机交互输入设备。键盘通过扫描码矩阵捕获按键;鼠标通过光电传感器或机械滚轮捕获位移。
  • 显示器、打印机:典型的输出设备。显示器将显存中的像素矩阵转换为光信号(CRT、LCD、OLED);打印机负责输出硬拷贝(点阵、喷墨、激光)。
  • 光盘存储器:通过激光照射光盘表面的凹凸坑阵列来读取数据,具有容量大、成本低、便于携带的特点。

磁盘存储器#

磁盘是最重要的外部存储设备之一。磁盘的数据组织结构:

  • 磁道:磁盘表面上的一系列同心圆环,每个磁道可以存储一圈数据。
  • 扇区:每个磁道被划分为若干个弧段,每个弧段称为一个扇区,是磁盘读写的最小物理单位。
  • 柱面:所有磁盘面上位于同一半径位置的磁道构成一个柱面。

磁盘访问时间的组成:

磁盘访问时间=寻道时间+旋转延迟+数据传输时间\text{磁盘访问时间} = \text{寻道时间} + \text{旋转延迟} + \text{数据传输时间}

  • 寻道时间:磁头从当前磁道移动到目标磁道所需的时间,是磁盘访问中最主要的延迟。
  • 旋转延迟:目标扇区旋转到磁头正下方所需的时间。平均旋转延迟为磁盘旋转一周时间的一半。
  • 数据传输时间:实际读写数据所需的时间。

磁盘阵列(RAID)#

RAID 通过多块磁盘并行工作来提高数据传输速率和可靠性。基本思想是将数据分散存储在多块磁盘上,同时用校验信息提供容错能力。


9.8 四种数据传输方式的全面对比#

四种 I/O 控制方式的对比分析(核心考点)
对比维度程序查询方式程序中断方式DMA 方式通道方式
数据传输单位字/字节字/字节数据块一组数据块
CPU 参与程度全程参与(忙等)中断时参与仅初始化和结束仅启动和结束
数据传输路径CPU 中转CPU 中转DMA 控制器直接搬运通道处理器搬运
中断次数无中断每传一个数据单位(字/字节)中断一次每传一个数据块中断一次每个通道程序结束中断一次
CPU 利用率*最低较高最高
硬件成本最低需中断控制器需 DMA 控制器需通道处理器,最高
适用场景低速、简单外设中低速外设高速块设备大型机复杂 I/O
数据流向CPU ↔ I/OCPU ↔ 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 的整体速度提升了多少?通过计算结果,你可以在性能提升方面得到什么样的启发?

  • 解答
    1. 原始总时间 = 100 秒,其中 CPU 时间 = 90 秒,I/O 时间 = 10 秒。
    2. CPU 速度提高 50%(即变为原来的 1.5 倍),新的 CPU 时间 = 90 / 1.5 = 60 秒。
    3. 新的总时间 = 新 CPU 时间 + I/O 时间 = 60 + 10 = 70 秒。
    4. 系统加速比 = 原始时间 / 新时间 = 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
  • 解析
    1. 寻道时间 Ts=8T_s = 8 ms。
    2. 旋转延迟 TrT_r:转速为 7200 rpm,即每秒 120 转,转一圈时间为 1000÷1208.331000 \div 120 \approx 8.33 ms。平均旋转延迟为转半圈的时间 Tr=8.33÷24.17T_r = 8.33 \div 2 \approx 4.17 ms。
    3. 传输时间 TtT_t:一圈 1 MB 需 8.33 ms,传输 4 KB ( 4÷10244 \div 1024 圈 ) 的时间 =8.33×(4÷1024)0.03= 8.33 \times (4 \div 1024) \approx 0.03 ms。
    4. 控制器延迟 Tc=2T_c = 2 ms。
    5. 平均访问时间 =Ts+Tr+Tt+Tc=8+4.17+0.03+2=14.2= T_s + T_r + T_t + T_c = 8 + 4.17 + 0.03 + 2 = 14.2 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 之间没有访存冲突)

  • 解答
    1. 计算每秒发生 DMA 的次数: 每秒 DMA 请求次数 = 5 MB/s ÷ 5000 B = (5 × 10^6) ÷ 5000 = 1000 次。
    2. 计算每次 DMA 传输 CPU 的时钟开销: 每次开销等效于执行 100 条指令。由于 CPI = 5,100 条指令耗费的时钟周期数 = 100 × 5 = 500 个。
    3. 计算 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:课后习题详解#

习题截图1 习题截图2 习题截图3


习题9.1 解释下列名词#

题干:

接口、中断、单级中断、多重中断、中断屏蔽、中断响应优先级、中断处理优先级、中断响应、中断识别、中断隐指令、中断号、中断向量、向量中断、向量地址、中断向量表、程序查询 I/O、程序中断 I/O、DMA、第三方 DMA、周期挪用、磁道、扇区、道密度、位密度、平均定位时间、条带。

解析

  1. 接口:CPU/主存与外部设备之间的连接部件,完成地址译码、命令接收、状态保存、数据缓冲、格式转换等。
  2. 中断:CPU 因内部异常或外部请求暂停当前程序,转去执行中断服务程序,完成后返回原程序的机制。
  3. 单级中断:只允许一个中断层次,不发生中断嵌套。
  4. 多重中断:允许中断嵌套,高优先级可打断低优先级中断服务。
  5. 中断屏蔽:通过屏蔽字使某些中断请求暂时不被 CPU 响应的机制。
  6. 中断响应优先级:多个中断源同时请求时,CPU 先响应谁的优先级,由硬件决定。
  7. 中断处理优先级:中断服务程序执行期间各中断谁能打断谁的优先级,由屏蔽字控制。
  8. 中断响应:CPU 检测到可响应的中断请求后,暂停当前程序进入中断响应周期的过程。
  9. 中断识别:CPU 确定中断源并找到对应服务程序入口的过程。
  10. 中断隐指令:中断响应时硬件自动完成的操作(关中断、保存断点、获取入口地址)。
  11. 中断号:标识中断类型或中断源的编号。
  12. 中断向量:中断服务程序的入口地址。
  13. 向量中断:中断源向 CPU 提供中断类型号,使 CPU 直接获得入口地址的中断方式。
  14. 向量地址:中断向量在中断向量表中的存放地址。
  15. 中断向量表:按中断号顺序存放各中断服务程序入口地址的表。
  16. 程序查询 I/O:CPU 循环查询设备状态,就绪后进行数据传送。
  17. 程序中断 I/O:外设就绪后发中断请求,CPU 响应后执行服务程序完成传送。
  18. DMA:直接存储器访问,由 DMA 控制器控制数据在主存与 I/O 设备间直接传送。
  19. 第三方 DMA:由独立的 DMA 控制器作为第三方控制数据传送,可为多设备服务。
  20. 周期挪用:DMA 的一种总线使用方式,DMA 临时窃取存储周期进行传送。
  21. 磁道:磁盘盘面上的同心圆形记录轨迹。
  22. 扇区:磁道上的弧段,是磁盘读写的最小物理单位。
  23. 道密度:沿半径方向单位长度上的磁道数。
  24. 位密度:磁道圆周方向单位长度上记录的二进制位数。
  25. 平均定位时间:磁头定位到目标扇区所需的平均时间(寻道 + 旋转等待)。
  26. 条带:磁盘阵列中将连续数据分块分布到多个磁盘上的组织单位。

习题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

解析:每帧 1600×1200×24=46,080,0001600 \times 1200 \times 24 = 46,080,000 bit,刷新带宽 =46,080,000×853916.8= 46,080,000 \times 85 \approx 3916.8 Mbit/s。总带宽 =3916.8/0.57834= 3916.8 / 0.5 \approx 7834 Mbit/s。

(22) [2015] 若磁盘转速为 7200 转/分钟,平均寻道时间为 8ms,每个磁道包含 1000 个扇区,则访问一个扇区的平均存取时间大约是__________。#

A. 8.1ms B. 12.2ms C. 16.3ms D. 20.5ms

答案:B

解析:转一圈 =8.333= 8.333ms,平均旋转等待 =4.1665= 4.1665ms,传输时间 =0.0083= 0.0083ms,总 =8+4.1665+0.008312.2= 8 + 4.1665 + 0.0083 \approx 12.2ms。


习题9.3 简要回答下列问题#

(1)CPU 与外部设备之间如何连接?#

解析

CPU 与外部设备之间不是直接相连,而是通过 I/O 接口连接。CPU 通过系统总线(地址、数据、控制总线)访问 I/O 接口中的端口(数据端口、状态端口、控制端口),I/O 接口再将 CPU 的统一总线信号转换为外设所需的格式、速度和时序。不同速度的设备采用不同的控制方式:低速设备可用程序查询或中断,高速块设备采用 DMA。

分享

如果这篇文章对你有帮助,欢迎分享给更多人!

输入输出系统
https://dawn114514.site/posts/计组/输入输出系统/
作者
黎明
发布于
2026-06-30 06:34:59
许可协议
MIT

部分信息可能已经过时

目录