第 7 章 名词库

这一页是复习主入口。 目标是把第 7 章的名词收全,并把每个词的边界和适用范围钉死。

每条最多四行:是(定义)/不是(划掉最常见的误解)/易混(成对的对手)/范围(该结论在什么条件下才成立)。

建设进度:✅ 7.1 I/O 系统基本概念 ✅ 7.2 I/O 接口 ✅ 7.3 I/O 方式 (全章完整)


7.1.1 输入/输出系统

I/O 系统

  • 是:外部设备 + I/O 接口 + I/O 总线 + I/O 软件的总和。
  • 不是:不只是”外设”,也不只是”驱动程序”。
  • 范围:计组考硬件部分,OS 考软件部分(OS 5.1.3)。

输入 / 输出

  • 是:以主机为参照,数据流入主机为输入,流出为输出。
  • 不是:CPU 写主存不是输出——主存在主机内。
  • 范围:磁盘两个方向都做,因此归为外存而非输入/输出设备。

主机

  • 是:CPU + 主存(有的教材含总线)。
  • 范围:I/O 接口在主机与外设的分界处,习惯上算主机一侧。

I/O 指令

  • 是:CPU 指令系统中用于访问 I/O 端口的那一类指令。
  • 范围:属于 4.1.5 四类指令之一;统一编址时可以完全没有这类指令。

通道指令

  • 是:通道的指令,构成通道程序,由通道取指执行。
  • 不是:不属于 CPU 指令系统。
  • 易混:↔ I/O 指令。CPU 用一条 I/O 指令启动通道,通道再执行一串通道指令——两层。

7.1.2 外部设备

外部设备

  • 是:主机之外、通过 I/O 接口与主机交换信息的设备。
  • 范围:分输入设备 / 输出设备 / 外存三类,不是两类。

外存储器

  • 是:既能输入又能输出的存储设备(磁盘、SSD、光盘、磁带)。
  • 范围:在第 3 章是”存储层次的最外层”,在第 7 章是”外设”——同一个东西的两个视角。

编码键盘

  • 是:由硬件编码电路产生键码的键盘。
  • 易混:↔ 非编码键盘(软件行列扫描产生键码)。
  • 不是:“非编码”不等于不产生键码。

分辨率

  • 是:屏幕的像素数,宽高。
  • 范围:与 VRAM 容量、显示带宽都成正比。

灰度级 / 色深

  • 是:灰度级是颜色的种数,色深是每像素的位数。
  • 换算:灰度级色深。
  • 范围:题目给”256 色”时,代入公式的是 8,不是 256。本节第一失分点。

刷新存储器(VRAM / 显存)

  • 是:存放一整屏图像的存储器。
  • 公式:色深(B)。
  • 范围:算出的是”至少需要多少”;实际显存更大(双缓冲等)。

显示带宽

  • 是:每秒从 VRAM 送出的数据量。
  • 公式:刷新。
  • 范围:就是”单帧容量 × 帧频”,不是独立公式。

击打式 / 非击打式打印机

  • 是:有无机械部件撞击纸面。
  • 范围:只有击打式(针式)能打多层复写纸;激光、喷墨都是非击打。

点阵式 / 活字式

  • 是:字符是点拼出来的还是整体压上去的。
  • 易混:与”击打/非击打”是两个独立维度——针式既是击打式又是点阵式。

7.1.3 I/O 控制方式

程序查询方式

  • 是:CPU 反复读状态端口,直到设备就绪再传送。
  • 范围:CPU 忙等,数据经 CPU 寄存器。

程序中断方式

  • 是:设备就绪后主动发中断,CPU 在中断服务程序里传送。
  • 不是:不能认为数据不经过 CPU。
  • 范围:解决”不用干等”,没有解决”CPU 要亲自搬”。

DMA 方式

  • 是:由 DMA 控制器在设备与主存之间直接成块传送。
  • 范围:全章唯一一种数据不经 CPU 寄存器的方式。

通道方式

  • 是:由具有自己指令系统的通道执行通道程序,控制一组 I/O 操作。
  • 易混:↔ DMA。判据是”能不能组织一串操作”——DMA 一次只管一个块。
  • 范围:408 只作了解,但”通道指令不属于 CPU 指令系统”可直接考。

CPU 干预频率

  • 是:CPU 每传送多少数据需要介入一次。
  • 范围:查询(全程)> 中断(每字)> DMA(每块)> 通道(每组块),严格递减。

数据流路径

  • 是:数据从设备到主存实际走过的通路。
  • 范围:查询和中断都是 设备→CPU 寄存器→主存;只有 DMA 是 设备→主存。

7.2.1 I/O 接口的功能

I/O 接口

  • 是:连接主机与外设的硬件电路模块,两侧协议不同。
  • 不是:不是机箱上的插孔,不是软件 API,不是驱动程序。
  • 易混:↔ I/O 端口(差一个层级,见 7.2.4)。
  • 别名:设备控制器、I/O 控制器——三个词一个东西。

设备控制器

  • 是:I/O 接口的别名,OS 教材的常用叫法(OS 5.1.4)。

数据缓冲(接口的)

  • 是:接口内的寄存器暂存数据,吸收主机侧与设备侧的速率差。
  • 易混:↔ OS 的缓冲区(在主存里,由软件管)。两者串联使用,不是二选一。

设备选择(地址译码)

  • 是:接口用高位地址判断”是不是叫我”,用低位地址选内部端口。
  • 范围:未被选中的接口必须把数据线置为高阻——这也是一个动作。

命令字

  • 是:CPU 写入控制端口的一个二进制数,由接口译码成设备控制时序。
  • 范围:通过数据线传送,不走控制线。

状态字

  • 是:接口报告设备情况的一个二进制数(忙/就绪/出错)。
  • 范围:同样通过数据线传送。

7.2.2 I/O 接口的基本结构

数据缓冲寄存器 DBR

  • 是:暂存一次传送数据的寄存器,即数据端口。
  • 范围:CPU 可读可写。

状态寄存器

  • 是:存放设备状态位的寄存器,即状态端口。
  • 范围:CPU 只读(个别位有”写 1 清零”副作用,题目会说明)。

控制寄存器

  • 是:存放命令字的寄存器,即控制端口。
  • 范围:CPU 只写。

工作触发器

  • 是:置 1 表示设备正在工作。
  • 范围:与 组合共三种有效状态, 不出现。

完成触发器

  • 是:置 1 表示设备已完成本次操作。
  • 范围:查询方式查的是它,中断请求的源头也是它。

中断请求触发器 INTR

  • 是:记录”该设备确实提出过中断请求”的触发器,在接口里。
  • 不是:不受屏蔽影响——屏蔽只挡住它往外发。
  • 范围:屏蔽期间请求挂起在这里,不会丢失。

中断屏蔽触发器 MASK

  • 是:决定 INTR 能否传到 CPU 的触发器,由软件写入。
  • 范围:5.5.3 中断屏蔽字的每一位,物理上就是某个接口里的 MASK。
  • 易混:↔ CPU 里的总中断允许位 IF/EI。层级不同:MASK 管单个中断源,IF 管全部。

中断请求的四道关卡

  • 是:响应。
  • 范围:任一道不通,中断都发生不了。

7.2.3 I/O 接口的类型

串行接口

  • 是:接口与外设之间一次传 1 位的接口。
  • 不是:主机侧仍是并行的——CPU 一次读一个字。
  • 范围:接口内部用移位寄存器做串并转换,本节第一失分点。

并行接口

  • 是:接口与外设之间一次传多位。
  • 范围:“并行一定比串行快”是错的,理由同 6.1.2。

可编程接口

  • 是:工作方式可由 CPU 写入的命令字改变的接口(8255、8251)。
  • 不是:不是”接口里能跑程序”。

通用接口 / 专用接口

  • 是:能连多种设备 / 为某类设备定制。
  • 范围:与”可编程”是两个独立维度——专用接口也可以可编程。

四个分类维度

  • 是:数据传送方式 / 主机访问方式 / 可编程性 / 通用性。
  • 范围:相互独立,不能用一个维度的取值推另一个。与 6.1.2 同一种题型。

7.2.4 I/O 端口及其编址

I/O 端口

  • 是:I/O 接口中可被 CPU 寻址的寄存器。
  • 不是:不是机箱上的插孔;与计网的”端口号”毫无关系(术语撞车)。
  • 易混:↔ I/O 接口。接口是电路,端口是电路里被编了号的寄存器,差一个层级。
  • 范围:被编址的对象是端口,不是接口、不是设备。

数据端口 / 状态端口 / 控制端口

  • 是:三类端口,分别可读写 / 只读 / 只写。
  • 范围:状态端口与控制端口常共用一个地址——读为状态,写为控制。所以”3 个端口占 3 个地址”是错的。

统一编址(存储器映射 I/O,MMIO)

  • 是:I/O 端口与主存单元共用一个地址空间。
  • 范围:用普通访存指令访问;占用主存地址空间;寻址方式丰富;不需要 I/O 指令。
  • 不是:不是”数据先存到主存再访问”——是地址译码把访问路由到接口。

独立编址(I/O 映射方式)

  • 是:I/O 端口有独立的地址空间。
  • 范围:用 IN/OUT 等专用 I/O 指令;不占主存空间;寻址方式少;端口地址与主存地址在数值上可以相同。

控制信号

  • 是:独立编址下用于区分”本次访问主存还是 I/O”的控制线。
  • 范围:独立编址的代价不是多一组地址线,而是多一根控制线加一套 I/O 指令。

7.3.1 程序查询方式

忙等(busy waiting)

  • 是:CPU 在循环里反复查状态,直到条件成立。
  • 不是:不是阻塞。忙等期间进程是运行态,一直占着 CPU。
  • 易混:↔ 阻塞(让出 CPU,由中断唤醒)。两个词都带”等”,一个占着 CPU 等,一个让出 CPU 等。

独占查询

  • 是:设备没就绪时 CPU 原地死循环。
  • 范围:CPU 利用率为 0,但实时性最好。做题时”程序查询方式”不加限定默认按它算。

定时查询(周期性查询)

  • 是:查一次没就绪就去干别的,过一段时间再来查。
  • 范围:查询周期必须由程序员事先定死——太长丢数据,太短接近独占。这正是中断要解决的问题。

查询方式的 CPU 占用率

  • 公式:。
  • 范围:算的是传送本身的开销。独占查询下 CPU 实际是 100% 被占的——两个数字回答两个不同的问题。

7.3.2 程序中断方式

中断识别

  • 是:确定”是哪个中断源发的中断”,从而找到服务程序入口。
  • 范围:发生在中断隐指令的第三步里,哪怕只有一个中断源也要做。

向量中断

  • 是:硬件给出中断类型号,查中断向量表直接得到服务程序入口。
  • 范围:每个中断源有各自的服务程序;速度快;优先级由判优电路硬连线决定,软件不能改。

非向量中断(查询中断)

  • 是:转入一个公共服务程序,由软件逐个查各接口状态位来确定中断源。
  • 不是:不等于退化成程序查询方式——只在识别这一步查,等待仍由设备通知。
  • 范围:优先级由查询顺序决定,改代码就能改。
  • 易混:两套叫法。「非向量」从结果说,「查询」从手段说,是同一个二分。

中断隐指令

  • 是:CPU 响应中断时由硬件自动完成的一组操作:①关中断 ②保存断点 ③引出中断服务程序。
  • 不是:没有操作码、不在主存里、程序员写不出来。“指令”只是借来的说法。
  • 不负责:不保护现场、不判优、不返回。
  • 范围:它是硬件与软件的交接点——它之前全是硬件,它之后进入软件。

保存断点

  • 是:把 PC 和 PSW 保存起来。
  • 谁做:硬件(中断隐指令第二步)。
  • 范围:不能省;由 IRET 恢复。

保护现场

  • 是:把通用寄存器压栈。
  • 谁做:软件(中断服务程序第一段)。
  • 易混:↔ 保存断点。分界线是”马上会被覆盖的硬件立刻存,可能会被覆盖的交给软件按需存”。
  • 范围:可以只保存服务程序会用到的那些。

中断服务程序的四段

  • 是:①保护现场 ②中断服务 ③恢复现场 ④中断返回。
  • 范围:开中断必须在①之后,关中断必须在③之前——这就是嵌套的位置条件。

中断判优

  • 是:多个中断源同时请求时选出一个。
  • 易混:↔ 中断识别。判优问”先响应谁”(响应之前),识别问”这个是谁”(响应之后)。
  • 范围:三种方式见 5.5.3。

中断方式的 CPU 占用率

  • 公式:, 为一次中断的完整开销。
  • 范围:开销与传送次数成正比——增大每次传送量 是唯一的软件解法,硬件解法就是 DMA。

7.3.3 DMA 方式

DMA 控制器 DMAC

  • 是:在设备与主存之间直接搬运数据的专用控制器。
  • 范围:双重身份——被 CPU 配置时是从设备,传送数据时是主设备。
  • 判据:主/从看谁发地址(6.1.1)。

主存地址寄存器 AR

  • 是:存放下一次读写的主存地址。
  • 范围:CPU 在预处理阶段写入初值;每传一个字 。

字计数器 WC

  • 是:记录还剩多少字未传。
  • 范围:每传一个字 ; 时发中断。有的教材从 加到 0 用溢出判结束。

停止 CPU 访存

  • 是:DMA 取得总线后连续传完整块才归还。
  • 范围:切换开销最小、DMA 吞吐最高,但 CPU 停顿最长。

周期挪用(周期窃取)

  • 是:DMA 每次只占用一个存取周期传一个字,随即归还。
  • 不是:窃的不是 CPU 指令周期,也不是 CPU 的运算能力。
  • 范围:三种情形——CPU 不访存则无冲突;CPU 正访存则等它结束;同时要访存则 DMA 优先(数据会丢)。

DMA 与 CPU 交替访存

  • 是:把一个 CPU 周期预先硬连线切成两半,各用各的。
  • 范围:不需要申请和归还总线,因而无切换开销;代价是硬件最复杂。

DMA 三阶段

  • 是:预处理(CPU)→ 数据传送(DMAC)→ 后处理(CPU,在中断服务程序里)。
  • 范围:“DMA 不需要 CPU”只在中间一段成立。

DMA 请求 HRQ / 总线响应 HLDA

  • 是:DMAC 申请总线控制权的握手信号对。
  • 易混:↔ 中断请求 INT。HRQ 只借总线、不保存断点、不改变 CPU 现场、响应粒度是总线周期;INT 要暂停程序、要保存断点、响应粒度是指令。
  • 范围:DMA 请求的优先级高于中断请求——数据会丢,中断可以等。

DMA 结束中断

  • 是:整块传完后 DMAC 向 CPU 发的中断。
  • 范围:目的不是传数据,而是做后处理;频率是每块一次。

DMA 引起的 Cache 一致性问题

  • 是:DMA 绕过 CPU 私有 Cache 直接读写主存造成的新旧数据不一致。
  • 范围:两个方向各有一个故障——DMA 读可能读到旧值(新值还在 Cache),DMA 写可能让 CPU 读到旧值(Cache 里有旧副本)。
  • 解法:不可缓存 / 软件 flush+invalidate / 总线侦听(与 3.5.5 同一套机制)。

DMA 的两种”占用率”

  • 是: 是 CPU 执行指令的开销;总线 是 DMA 抢走的总线时间。
  • 范围:两个数字要分开答,前者可能只有 0.01% 而后者有 20%。

高频范围限定清单

每一条都是”说法 → 它在什么条件下才成立 / 为什么错”。考前扫这一张表。

常见说法范围限定
”CPU 直接访问外部设备”错。只能访问接口中的端口
”CPU 访问 I/O 接口”不准确。访问的是接口中的端口
”输入设备和输出设备把外设分完了”错。外存是第三类
”CPU 写主存属于输出”错。不跨主机边界就不是 I/O
”通道指令属于 CPU 指令系统”错。通道有自己的指令系统
”I/O 指令属于 CPU 指令系统”对。属 4.1.5 四类之一
”256 色的色深是 256 位”错。是 8 位,
“显示带宽与刷新率无关”错。带宽 = 单帧容量 × 帧频
”非编码键盘不产生键码”错。由软件扫描产生
”激光打印机是击打式”错。非击打,电子照相
”针式打印机已被淘汰”错。多层复写纸不可替代
”7.1 带 * 所以不考”错。不出计算大题,概念判断题照出
”中断方式下数据不经过 CPU”错。仍由 CPU 在服务程序里搬
”DMA 完全不需要 CPU”错。预处理和后处理都是 CPU 做
”DMA 传送不产生中断”错。块传完后要中断做后处理
”中断响应比 DMA 响应更及时”反了。中断等指令结束,DMA 等总线周期结束
”程序中断方式提高了数据传输率”错。提高的是 CPU 利用率
”I/O 接口和设备控制器是两个东西”错。同一块硬件的两个名字
”I/O 接口就是机箱后面的插座”错。那是物理连接器
”设备驱动程序是接口的一部分”错。驱动是软件
”有了接口缓冲就不需要 OS 缓冲区”错。层次不同,串联使用
”没被选中的接口什么都不用做”错。必须把数据线置为高阻
”控制字通过控制线传送”错。通过数据线传到控制寄存器
”状态寄存器 CPU 可读可写”错。一般只读
” 且 “矛盾状态,不会出现
”被屏蔽的中断请求会被丢弃”错。挂起在 INTR 里
”中断屏蔽触发器在 CPU 里”错。分布在各接口里;CPU 里的是总中断允许位
”接口能发中断请求所以是主设备”错。判据是谁发地址
”串行接口与 CPU 之间也是一位一位传”错。主机侧永远并行
”并行接口一定比串行快”错。同 6.1.2
”支持 DMA 的接口不能用中断方式”错。接口能力是上限,方式由软件选
”可编程接口内部运行程序”错。是工作方式可由命令字设定
”通用接口都可编程,专用接口都不可”错。两个维度独立
”I/O 端口就是机箱上的插孔”错。端口是寄存器
”I/O 端口和计网端口号是一回事”错。术语撞车,毫无关系
”被编址的是外部设备”错。被编址的是端口
”一个接口只能有一个端口”错。通常至少三个
”3 个端口就占 3 个地址”错。状态与控制可共用一个地址
”独立编址下端口地址不能与主存地址相同”错。两个空间,可以相同
”统一编址的 I/O 访问速度更快”错。与编址方式无关
”统一编址占用主存地址空间”对。这正是它的主要代价
”查询方式下进程处于阻塞态”错。是运行态
”定时查询没有忙等了”不准确。次数变少,每次仍是忙等
”查询方式实时性最差”错。独占查询实时性最好,差的是 CPU 利用率
”算出占用率 4‰ 说明 CPU 空闲”错。独占查询下 CPU 是 100% 被占的
”中断隐指令负责保护现场”错。它只保存断点(PC、PSW)
“保护现场由硬件完成”错。软件,服务程序第一段
”只有一个中断源就不需要识别”错。识别与判优是两回事
”非向量中断退化成程序查询方式”错。只在识别这一步查
”向量中断的优先级可由软件修改”错。判优电路硬连线;非向量中断才能改
”中断向量地址就是服务程序入口”错。它是向量表里那一项的地址,差一次访存
”服务程序里先开中断再保护现场”反了。先保护现场,再开中断
”DMA 控制器始终是从设备”错。传送期间是主设备
”周期窃取窃的是 CPU 指令周期”错。是存取周期 / 总线周期
”DMA 期间 CPU 完全停止”错。只有”停止 CPU 访存”接近如此
”交替访存需要申请总线”错。预先硬连线分时,无握手
”DMA 数据要先送到 CPU 寄存器”错。直接进主存,这是定义性特征
”中断请求优先级高于 DMA 请求”反了。DMA 优先,因为数据会丢
”DMA 方式下 CPU 与外设完全并行”不准确。逻辑上并行,争总线时仍有冲突

链接