I/O 计算

查询、中断、DMA 三种方式共用的开销模型,加上磁盘时间与单位统一的固定口径。

I/O 在综合题上出现得不多(2009#432012#432016#442018#432022#44 是最典型的五道),但选择题几乎每年 3~4 道,而且所有定量题共用一个模型

知识框架概要

在 408 常见的单设备、无并行重叠简化题中,一次 I/O 可按下面的路径分析;三种方式主要区别在第 3 步“谁来发现设备好了”。若题目出现总线竞争、周期窃取或多设备并行,应以题设为准。

一、路径

  1. CPU 通过 I/O 接口下发命令字 —— 接口里有三类寄存器:状态、控制、数据缓冲,见 I/O 接口
  2. 设备准备一个传送单位(准备时间由数据传输率决定)
  3. 通知 CPU 数据就绪:程序查询 / 程序中断 / DMA,见 I/O 方式
  4. 传送这个单位:查询与中断经 CPU 寄存器搬,DMA 由控制器直接与主存交换,见 DMA 方式
  5. 全部传完后收尾:中断方式每单位一次中断,DMA 只在整块结束时中断一次

二、三种方式的分工边界

方式CPU 每次花在什么上数据传送阶段占 CPU 吗
程序查询查询和传送的那几条指令
程序中断中断响应 + 中断服务程序
DMA只有预处理和后处理不占,由 DMA 控制器搬

三、中断响应这一段的软硬件分界(选择题的固定落点)

  1. 硬件(中断隐指令):关中断 → 保存断点 PC 与 PSW → 切内核态 → 按向量转入
  2. 软件(中断服务程序):保存其余现场 → 具体传送 → 恢复现场 → 开中断返回

中断处理流程

四、磁盘这一段是独立的时间模型

平均存取时间 = 寻道 + 旋转延迟 + 传输 + 控制器延迟,见 磁盘性能指标

五、总线是所有传输率的上限

总线带宽 = 总线宽度(字节)× 总线时钟频率 ÷ 一次传送占用的时钟周期数
一次突发传送 = 一次寻址 + 连续若干个数据传送周期

三种问法各对应一个除法:**「至少需要多大主存带宽」用每秒要搬的字节数(2012#43 由每秒缺失次数反推)、「一个主存块要几次突发传送」用块大小除以一次突发能传的字节数(2013#43)、「总线请求几次」**用传送总量除以总线宽度(2022#44)。见 总线指标突发总线传输事务总线周期

解题注意点

唯一的模型

1. 一次传送多少字节?—— 看 I/O 接口数据缓冲寄存器的宽度,或总线宽度
2. 每秒传送多少次?  —— 数据传输率 ÷ 一次传送的字节数
3. 一次花多少周期?  —— 指令条数 × CPI,或题目直接给

CPU 占用率 = 次数 × 单次周期数 ÷ 主频

分子分母都统一成「周期 / 秒」,就不会算错量级。在上述简化假设下,查询和中断把传送本身也算进 CPU 时间,DMA 只算预处理和后处理;DMA 仍会占用总线带宽。

DMA 有两种「次数」,别混:按数据块算的是 DMA 请求次数和结束中断次数,按总线宽度算的是总线请求次数2022#44 问的是后者——一个 512B 扇区按 64 位总线要请求 64 次。

「能不能用某种方式」一律比时间

设备准备一个传送单位的时间该方式的单次响应处理时间比大小,前者更小就会丢数据。

2018#43 第 2 问是这个套路最干净的样本:设备 B 传输率 40MBps,接口是 32 位缓冲寄存器,准备 4 字节需 4B ÷ 40MBps = 0.1μs;而中断响应加处理需 400 ÷ 500MHz = 0.8μs。0.1 < 0.8,所以设备 B 不能用中断方式。

同一道题的第 1 问和第 3 问则用上面的模型算出查询方式和 DMA 方式的 CPU 占用率都是 4%——这说明占用率相同的两种方式,可行性可以完全不同。

磁盘时间必须四项齐全

平均存取时间 = 寻道时间 + 旋转延迟(默认转半圈)+ 传输时间 + 控制器延迟(题目给了才加)

调度题只数磁头移动的磁道数:SCAN 要走到端点再折返,CSCAN 回端点的那一整段位移也要计入,起点上就有的请求距离记 0。见 磁盘性能指标磁盘调度算法

单位统一

  • 传输率里的 MB 按 10⁶ 算,容量里的 MB 按 2²⁰ 算;
  • 转速先换成一圈多少毫秒:60 ÷ rpm;
  • 主频、周期数、时间三者只保留一种,全部化到「周期 / 秒」再相除。

单位是这一板块唯一的高频失分点。算完先写单位,再写数字。

概念题的高频落点

选择题这部分几乎不考计算,考的是分工边界:

问的是边界在哪去处
哪些动作由硬件完成关中断、保存断点、切态、转向量中断处理流程
哪些由操作系统完成保存其余现场、建中断向量表、设备分配I/O 软件层次
外部中断还是内部异常事件来自 CPU 之外还是指令执行内部异常
多重中断谁先被处理响应优先级与屏蔽字是两件事中断屏蔽
哪些工作在驱动程序里CHS 换算、下发命令字CHS 地址

上一页:CPU 与指令系统;下一页:进程同步与信号量