第5章-输入输出系统第5章 输入输出系统
课件来源:《计算机组成原理教学课件》(extracted/cod 版,Slide 206–258,共 53 页),本章笔记与习题仅以该版本为准,无其他版本混用。考试地位:本章是期末简答、对比、流程类题的高频出处——程序查询/程序中断/DMA 三大传送方式、中断响应条件与服务流程、DMA 传送过程几乎必考;端口编址、接口组成、芯片分类常出选择与填空。
0. 本章考点清单
| 考点 |
常见题型 |
重要度 |
| DMA 传送过程(预处理/数据传送/后处理)与输入、输出步骤 |
简答、流程排序 |
★★★ |
| DMA 与主存交换数据的三种方式(停止CPU/周期挪用/交替访问) |
选择、简答、计算 |
★★★ |
| 中断响应条件与时间、I/O 中断处理八步 |
简答、选择 |
★★★ |
| I/O 接口功能与组成(D、B、INTR、MASK 四个触发器) |
填空、简答 |
★★★ |
| DMA 与程序中断方式五项比较 |
选择、填表 |
★★★ |
| 程序查询流程与接口电路(踏步等待) |
简答、流程 |
★★☆ |
| 单重/多重中断服务流程与中断隐指令 |
简答、流程对比 |
★★☆ |
| 硬件向量法(向量地址 → 入口地址) |
计算、简答 |
★★☆ |
| 链式排队器与中断优先级 |
填空、分析 |
★★☆ |
| DMA 接口组成(AR、WC、DAR、BR 与 HRQ/HLDA/DREQ/DACK) |
填空、简答 |
★★☆ |
| 三种控制方式的 CPU 工作效率比较 |
选择、简答 |
★★☆ |
| 端口编址(统一/独立) |
选择 |
★★ |
| DMA 接口类型(选择型/多路型)与多路型时序 |
分析、计算 |
★★ |
| I/O 系统组成与发展阶段、通道指令 |
填空、选择 |
★ |
| 接口类型与常见芯片(8255/8251/8212/8259/8257 等) |
选择、填空 |
★ |
| 联络方式与连接方式(辐射式/总线) |
选择 |
★ |
| I/O 设备分类与输入/输出设备 |
选择 |
★ |
1. I/O 系统概述(5.1,课件 p.207–216)
1.1 发展概况:四个阶段
| 阶段 |
连接方式 |
CPU 与 I/O 工作关系 |
控制方式 |
| 早期 |
分散连接 |
串行 |
程序查询方式 |
| 接口模块和 DMA 阶段 |
总线连接 |
并行 |
中断方式、DMA 方式 |
| 具有通道结构的阶段 |
课件未展开 |
课件未展开 |
通道 |
| 具有 I/O 处理机的阶段 |
课件未展开 |
课件未展开 |
I/O 处理机 |
(课件 p.207)
范围提示:课件仅在发展概况中列出后两个阶段的名称,通道类型(字节多路/选择/数组多路)与外围处理机的工作原理在本章课件中未展开,复习以课件为界,不要自行超纲背诵。本章与通道有关的可考点只有通道指令(见 1.2)。
1.2 输入输出系统的组成(课件 p.208)
- I/O 软件:
- I/O 指令:CPU 指令的一部分;
- 通道指令:通道自身的指令,指出数组的首地址、传送字数、操作命令;如 IBM/370 通道指令为 64 位,含操作码、命令码、设备码。
- I/O 硬件:设备、I/O 接口(设备控制器)、通道。
1.3 I/O 设备与主机的联系方式(课件 p.209–211)
- 设备编址(课件 p.209):
- 统一编址:端口与主存统一编址,用取数、存数(访存)指令访问端口,无需专门 I/O 指令;
- 不统一编址(独立编址):端口单独编址,指令系统中有专门的 I/O 指令。
- 设备选址:用设备选择电路识别是否被选中(课件 p.209)。
- 传送方式:串行、并行(课件 p.209–210)。串行示例中一个位宽为 9.09 ms,起始位占 1 个位宽、终止位占 2 个位宽(2×9.09 ms)(课件 p.210;补充常识:9.09 ms ≈ 1/110 s,即对应 110 bit/s 的传输率)。
- 联络方式(课件 p.210):
- 立即响应;
- 异步工作采用应答信号:"Ready"(I/O 接口 → I/O 设备)与 "Strobe"(I/O 设备 → I/O 接口);
- 同步工作采用同步时标。
- 连接方式(课件 p.211):
- 辐射式:每台设备都配有一套控制线路和一组信号线,不便于增删设备;
- 总线连接:便于增删设备。
1.4 I/O 设备与主机信息传送的控制方式(课件 p.212–216)
课件详述三种方式:
| 方式 |
CPU 与 I/O 关系 |
踏步等待 |
传送执行者 |
响应/介入时机 |
| 程序查询 |
串行 |
有 |
CPU 程序 |
CPU 主动读状态、检查状态 |
| 程序中断 |
并行 |
无 |
CPU 程序(中断服务) |
指令执行周期结束 |
| DMA |
并行 |
无 |
硬件(DMA 接口) |
存取周期结束(周期挪用) |
- 程序查询:CPU 读 I/O 状态 → 检查状态 → 未准备就绪则循环等待(踏步等待)→ 已就绪则从 I/O 接口读一个字到 CPU、再从 CPU 向主存写入一个字;出错则转出错处理(课件 p.212)。
- 程序中断:CPU 不查询;启动 I/O 后继续执行现行程序,设备自身准备并与主机交换信息的时机由中断请求通知;CPU 暂停现行程序(断点 K → 转服务程序),服务完返回 K+1,没有踏步等待现象(课件 p.213–214)。
- DMA:主存和 I/O 之间有一条直接数据通道;不中断现行程序,在存取周期结束处挪用(窃取)一个存取周期实现 I/O 与主存之间的传送(课件 p.215)。

读图(课件 p.216):查询方式中"I/O 准备及传送"整段时间被 CPU 查询等待并传输占用;中断方式在 I/O 准备期间 CPU 并行执行现行程序,仅在传送时刻被中断(指令执行周期结束响应);DMA 方式每字只窃取一个存取周期(存取周期结束响应),CPU 效率最高。
易错警示:"DMA 不中断现行程序"指传送本身不需要中断服务;数据块传送结束后 DMA 仍要申请中断做后处理(见 §6),不要记成"DMA 与中断完全无关"。
2. I/O 设备(5.2,课件 p.217–220)
2.1 外部设备的构成与分类(课件 p.217)
- 外部设备 = 设备控制器 + 机、电、磁、光部分,经 I/O 接口接主机。
- 三大类:
1. 人机交互设备:键盘、鼠标、打印机、显示器;
2. 计算机信息存储设备:磁盘、光盘、磁带;
3. 机—机通信设备:调制解调器等。
2.2 输入设备(课件 p.218)
- 键盘:按键 → 判断哪个键按下 → 将此键翻译成 ASCII 码(编码键盘法);
- 鼠标:机械式(金属球、电位器)、光电式(光电转换器);
- 触摸屏。
2.3 输出设备(课件 p.219)
- 显示器:字符显示(字符发生器)、图形显示(主观图像)、图像显示(客观图像);
- 打印机:击打式——点阵式(逐字、逐行);非击打式——喷墨(逐字)、激光(逐页)。
2.4 其他与多媒体(课件 p.220)
- A/D、D/A:模拟/数字(数字/模拟)转换器;
- 终端:由键盘和显示器组成,完成显示控制与存储、键盘管理及通信控制;
- 汉字处理:汉字输入、汉字存储、汉字输出;
- 多媒体技术:什么是多媒体、多媒体计算机的关键技术(课件仅列标题,未展开)。
易错警示:激光打印机是"逐页"、喷墨是"逐字"、点阵式可"逐字/逐行",选择题常互换设陷阱(课件 p.219)。
3. I/O 接口(5.3,课件 p.221–225)
3.1 为什么要设置接口(课件 p.221)
- 实现设备的选择;
- 实现数据缓冲达到速度匹配;
- 实现数据串—并格式转换;
- 实现电平转换;
- 传送控制命令;
- 反映设备的状态("忙"、"就绪"、"中断请求")。
3.2 总线连接方式的接口电路:四类线(课件 p.222)
设备选择线、数据线、命令线、状态线。CPU 侧经 I/O 总线与多个接口相连,每个接口再连自己的设备。
3.3 接口的功能与组成对应表(课件 p.223)
| 功能 |
组成 |
| 选址功能 |
设备选择电路 |
| 传送命令的功能 |
命令寄存器、命令译码器 |
| 传送数据的功能 |
数据缓冲寄存器(DBR) |
| 反映设备状态的功能 |
设备状态标记:完成触发器 D、工作触发器 B、中断请求触发器 INTR、屏蔽触发器 MASK |
3.4 I/O 接口的基本组成(课件 p.224)

- 接口内部五大块:数据缓冲寄存器 DBR、设备选择电路、设备状态标记、命令寄存器和命令译码器、控制逻辑电路。
- CPU 侧四类线:数据线(双向)、地址线(单向入接口)、命令线(单向出)、状态线(单向入 CPU);设备侧三类线:数据线(双向)、命令(出)、状态(入接口)(课件 p.224)。
3.5 接口类型与常见芯片(课件 p.225)
| 分类依据 |
类型 |
课件举例芯片 |
| 按数据传送方式 |
并行接口 |
Intel 8255 |
| 按数据传送方式 |
串行接口 |
Intel 8251 |
| 按功能选择的灵活性 |
可编程接口 |
Intel 8255、Intel 8251 |
| 按功能选择的灵活性 |
不可编程接口 |
Intel 8212 |
| 按通用性 |
通用接口 |
Intel 8255、Intel 8251 |
| 按通用性 |
专用接口 |
Intel 8279、Intel 8275 |
| 按数据传送的控制方式 |
中断接口 |
Intel 8259 |
| 按数据传送的控制方式 |
DMA 接口 |
Intel 8257 |
易错警示:8212 是"不可编程"接口,8255/8251 既是可编程又是通用;8259 管中断、8257 管 DMA,别与 8255/8251 混淆(课件 p.225)。
4. 程序查询方式(5.4,课件 p.226–228)
4.1 查询流程(课件 p.226)
- 单个设备:检查状态标记(测试指令)→ 准备就绪?(转移指令)否 → 返回循环继续检查(踏步等待);是 → 交换数据(传送指令)。
- 多个设备:依次检查状态标记 1 → 设备 1 就绪?是 → 处理设备 1;否 → 检查状态标记 N → 设备 N 就绪?是 → 处理设备 N;否 → 回到设备 1 重新轮询。
4.2 程序流程(课件 p.227)
设置计数值 → 设置主存缓冲区首址 → 启动外设 → 准备好?(否:原地循环查询)→ 是:传送一个数据 → 修改主存地址 → 修改计数值 → 传送完?(未完:返回循环继续启动/查询传送;完:结束 I/O 传送)。图中另标注"保存寄存器内容",即进入传送循环前需保护主程序所用寄存器(课件 p.227)。
4.3 程序查询方式的接口电路(以输入为例,课件 p.228)

六步工作过程(课件 p.228):
- ① CPU 发启动命令(地址线经设备选择电路产生 SEL 选中本接口);
- ② 接口启动设备(工作触发器 B 置 1、完成触发器 D 清 0);
- ③ 设备把输入数据送入 DBR;
- ④ 设备工作结束(D 置 1、B 清 0);
- ⑤ D = 1 经状态线作为"准备就绪"送 CPU;
- ⑥ CPU 经数据线从 DBR 读走数据。
图中状态:工作期间 B = 1、D = 0;结束后 D = 1、B = 0(课件 p.228)。
易错警示:查询方式中 CPU 与设备串行工作,设备准备期间 CPU 只能踏步等待,这是它效率低的根本原因;状态经状态线读、数据经数据线读,两条通路不要混(课件 p.212、228)。
5. 程序中断方式(5.5,课件 p.229–241)
5.1 中断的概念(课件 p.229)
现行程序执行到 K 处被中断,转去执行中断服务程序(Q → Q+1),服务完毕返回 K+1 继续;不同中断源各有自己的服务程序入口(入口 1、入口 2……)。
5.2 I/O 中断的产生(以打印机为例,课件 p.230)
打印机空闲 → 发中断请求 → CPU 响应中断、传送数据 → 打印机打印(CPU 继续执行主程序)→ 打印完再发中断请求……CPU 与打印机并行工作。
5.3 程序中断方式的接口电路
(1) 中断请求触发器 INTR 与中断屏蔽触发器 MASK(课件 p.231)

- INTR = 1:有中断请求;MASK = 1:该中断源被屏蔽;
- D 为完成触发器,受设备本身控制;
- 中断请求的形成:D 与 MASK 的反相经与门,在"来自 CPU 的中断查询信号"到来时打入 INTR(课件 p.231、236)。
(2) 排队器(课件 p.232–233)
- 排队分硬件(在 CPU 内或在接口电路中,即链式排队器)与软件(详见第八章)两类;
- 设备 1#、2#、3#、4# 优先级按降序排列;INTRi = 1 有请求,即 INTR̄i = 0(链式排队器输入用反相信号,课件 p.232 图);
- 链式结构:高优先级接口的请求会封锁低一级接口的排队输出,只有无更高优先级请求时本级 INTPi 才有效(课件 p.233)。

(3) 中断向量地址形成部件(课件 p.234)

- 入口地址的获得:由软件产生(详见第八章);或硬件向量法——由硬件产生向量地址,再由向量地址找到入口地址;
- 排队器输出经设备编码器形成向量地址。课件示例:向量地址 00010010B = 12H;主存 12H 单元存 JMP 200、13H 存 JMP 300、14H 存 JMP 400;入口地址 200 为打印机服务程序、300 为显示器服务程序(课件 p.234)。
(4) 程序中断方式接口电路的基本组成(课件 p.235)
在查询接口(设备选择电路、DBR、D、B)基础上增加:INTR、MASK、排队器、设备编码器、命令译码;对外信号有中断查询、中断请求、中断响应 INTA、向量地址,以及"来自高一级的排队器/至低一级的排队器"链式连线。
5.4 CPU 响应中断的条件和时间(课件 p.236)
- 条件:
1. 允许中断触发器 EINT = 1(用开中断指令置 1;用关中断指令或硬件自动复位清 0);
2. 当 D = 1(随机)且 MASK = 0 时(经中断查询使 INTR = 1)。
- 时间:在每条指令执行阶段的结束前,CPU 发中断查询信号(将 INTR 置 1)。
5.5 I/O 中断处理过程(以输入为例,八步,课件 p.237)

- ① CPU 发启动命令(命令译码 + SEL 选中);
- ② 启动设备(B = 1、D = 0);
- ③ 设备输入数据送 DBR;
- ④ 设备工作结束(D = 1、B = 0);
- ⑤ 指令执行阶段结束前 CPU 发中断查询信号;
- ⑥ D = 1 且 MASK = 0 → INTR = 1,向 CPU 发中断请求;
- ⑦ CPU 发中断响应 INTA;
- ⑧ 设备编码器输出向量地址送 CPU,进而找到入口地址转服务程序(课件 p.237)。
5.6 中断服务程序流程(课件 p.238–239)
- 四步:保护现场 → 中断服务(对不同 I/O 设备具有不同内容的设备服务)→ 恢复现场 → 中断返回(中断返回指令)。
- 程序断点的保护由中断隐指令完成;寄存器内容的保护用进栈/出栈指令(课件 p.238)。
- 单重中断:不允许中断现行的中断服务程序;多重中断:允许级别更高的中断源中断现行的中断服务程序(课件 p.238)。
- 中断隐指令(中断周期内硬件自动完成)三件事:程序断点进栈、关中断、向量地址 → PC(课件 p.239)。

- 单重流程:保护现场 → 设备服务 → 恢复现场 → 开中断 → 中断返回;
- 多重流程:保护现场 → 开中断 → 设备服务 → 恢复现场 → 中断返回(课件 p.239)。
- 差别只在"开中断"的位置:多重在保护现场后立刻开中断(以便响应更高级请求),单重直到返回前才开中断。
5.7 程序中断接口芯片 8259A 的内部结构(课件 p.240)
- 寄存器/部件:中断请求寄存器 IRR、中断服务寄存器 ISR、中断屏蔽寄存器 IMR、优先权比较器 PR、级联缓冲器/比较器、读/写逻辑、缓冲器、控制逻辑,经内部总线互联;
- 对外引脚:IR0–IR7(中断请求输入)、INT(向 CPU 请求)、INTA(中断响应)、D7–D0、A0、RD、WR、CS、CAS0–CAS2(级联)、SP/EN(课件 p.240)。
5.8 宏观并行、微观串行(课件 p.241)
主程序与服务程序抢占 CPU 示意:宏观上 CPU 和 I/O 并行工作;微观上 CPU 中断现行程序为 I/O 服务(每次服务只传送一个/一批数据后即返回主程序)。
易错警示:中断隐指令是硬件在中断周期自动完成的,不是程序员写的指令;断点保护靠它、寄存器保护靠 PUSH/POP 类进栈出栈指令,二者分工常考(课件 p.238–239)。MASK 是设备级屏蔽、EINT 是 CPU 级总允许,两者层次不同(课件 p.231、236)。
6. DMA 方式(5.6,课件 p.242–258)
6.1 DMA 方式的特点:数据通路(课件 p.242)

- 中断方式数据传送通路:I/O 设备 → 中断接口 → CPU(ACC)→ 主存,靠输入/输出指令逐字搬运;
- DMA 方式数据传送通路:I/O 设备 → DMA 接口 → 主存,不经过 CPU 寄存器中转的直接通路。
6.2 DMA 与主存交换数据的三种方式(课件 p.243–245)
| 方式 |
总线控制权 |
对 CPU 的影响 |
特点 |
| 停止 CPU 访问主存 |
整块传送期间归 DMA |
CPU 处于不工作状态或保持状态 |
控制简单;未充分发挥 CPU 对主存的利用率 |
| 周期挪用(周期窃取) |
每次挪用一个存取周期 |
仅暂停一个存取周期 |
三种可能:CPU 此时不访存;CPU 正在访存(等本周期结束);CPU 与 DMA 同时请求访存 → CPU 将总线控制权让给 DMA |
| DMA 与 CPU 交替访问 |
按 C1/C2 固定分时 |
无需停止 |
CPU 工作周期分 C1 专供 DMA 访存、C2 专供 CPU 访存;不需要申请建立和归还总线的使用权 |
(课件 p.243、244、245;CPU 工作周期是"所有指令执行过程中的一个基准时间",课件 p.245。补充常识:交替访问适用于 CPU 工作周期大于主存存取周期的场合。)


6.3 DMA 接口的功能(课件 p.246)
- 向 CPU 申请 DMA 传送;
- 处理总线控制权的转交;
- 管理系统总线、控制数据传送;
- 确定数据传送的首地址和长度,修正传送过程中的数据地址和长度;
- DMA 传送结束时,给出操作完成信号。
6.4 DMA 接口的组成(课件 p.247)

| 部件 |
作用 |
| AR(主存地址寄存器) |
存放主存地址,每传送一字自动 +1 |
| WC(字计数器) |
记录传送字数,自动 +1,溢出信号送中断机构表示块传送结束 |
| DAR(设备地址寄存器) |
存放设备地址 |
| BR(数据缓冲寄存器) |
暂存 I/O 与主存间交换的数据 |
| DMA 控制逻辑 |
管理请求、应答与总线控制 |
| 中断机构 |
块结束后向 CPU 发中断请求(后处理) |
联络信号:DREQ(设备 → DMA)、DACK(DMA → 设备)、HRQ(DMA → CPU,总线请求)、HLDA(CPU → DMA,总线响应)、中断请求(DMA → CPU)(课件 p.247)。
6.5 DMA 的工作过程(课件 p.248–252)
(1) 预处理(课件 p.248):CPU 通过几条输入输出指令预置:通知 DMA 控制逻辑传送方向(入/出);设备地址 → DAR;主存地址 → AR;传送字数 → WC;并启动设备。
(2) 数据传送(课件 p.249):CPU 继续执行主程序,同时完成一批数据传送。

流程:DMA 请求 → 允许传送?否 → 等待;是 → 主存地址送总线 → 数据送 I/O 设备(或主存)→ 修改主存地址、修改字计数器 → 数据块传送结束?否 → 返回循环;是 → 向 CPU 申请程序中断(课件 p.249)。
(3) 数据传送过程(输入)七步(课件 p.250):

- ① 设备把一个字送入 BR;
- ② 设备向 DMA 控制逻辑发 DREQ;
- ③ DMA 向 CPU 发 HRQ(总线请求);
- ④ CPU 回 HLDA,让出总线控制权;
- ⑤ AR 把主存地址送地址总线;
- ⑥ DMA 向设备发 DACK;
- ⑦ BR 把数据经数据线送主存;同时 AR +1、WC +1;WC 未溢出则继续下一字,溢出则中断机构向 CPU 发中断请求(课件 p.250)。
(4) 数据传送过程(输出)(课件 p.251):方向相反——主存数据经数据线送 BR、再送设备;控制信号序列与输入相同。
(5) 后处理(课件 p.252):由中断服务程序完成:校验送入主存的数是否正确;是否继续用 DMA;测试传送过程是否正确,错则转诊断程序。
6.6 DMA 接口与系统的连接方式(课件 p.253–254)
- 具有公共请求线的 DMA 请求:多个 DMA 接口共用一条 DMA 请求线和一条 DMA 响应线(需排队决定谁占用总线);
- 独立的 DMA 请求:每个接口各有自己的 DMA 请求 i / DMA 响应 i 一对线。
6.7 DMA 方式与程序中断方式的比较(课件 p.255)
| 比较项 |
中断方式 |
DMA 方式 |
| (1) 数据传送 |
程序 |
硬件 |
| (2) 响应时间 |
指令执行结束 |
存取周期结束 |
| (3) 处理异常情况 |
能 |
不能 |
| (4) 中断请求 |
传送数据 |
后处理 |
| (5) 优先级 |
低 |
高 |
6.8 DMA 接口的类型(课件 p.256–258)
- 选择型(课件 p.256):物理上连接多个设备,逻辑上只允许连接一个设备(用选择线切换);接口内含设备地址寄存器、控制状态寄存器、数据缓冲寄存器、主存地址寄存器、时序电路、字计数器。
- 多路型(课件 p.257):物理上连接多个设备,逻辑上允许连接多个设备同时工作;连接结构分独立请求式与链式。
- 多路型工作原理(课件 p.258):分时为各设备服务。课件时序示例:磁盘每 30 μs 发一次 DMA 请求、磁带每 45 μs 一次、每次服务占 5 μs(T1 宽度),服务顺序 T1 打印机 → T2 磁盘 → T3 磁带 → T4 磁盘 → T5 磁带 → T6 磁盘 → T7 磁盘 → T8 磁带(读图可得优先级:打印机 > 磁盘 > 磁带)。

易错警示:DMA 响应时间是"存取周期结束"而不是"指令执行结束";DMA 传送靠硬件而不是程序;DMA 的中断请求只用于后处理,不是每字一次;课件 WC 用 +1 计数、以溢出信号判块结束(与部分教材减 1 判 0 不同,以课件为准)(课件 p.247、250、255)。
7. 易错点与高频陷阱汇总
- 统一编址用访存(取数/存数)指令、独立编址才用专门 I/O 指令——选项常把两者对调(课件 p.209)。
- 查询方式 CPU 与 I/O 串行、有踏步等待;中断与 DMA 才是并行(课件 p.212–216)。
- 中断在指令执行周期结束响应,DMA 在存取周期结束响应——两个"结束"不可互换(课件 p.216、255)。
- DMA 传送期间不中断现行程序,但块结束后仍要中断做后处理;"DMA 完全不用中断"是错的(课件 p.215、249、252)。
- MASK = 1 是屏蔽该设备(设备级),EINT = 1 是 CPU 允许响应(全局级);响应需 EINT = 1 且 D = 1、MASK = 0(课件 p.231、236)。
- INTR 不是设备直接置位的:设备只控制 D;CPU 的中断查询信号把 D·MASK̄ 打入 INTR(课件 p.231、236)。
- 断点保护由中断隐指令(硬件)完成,寄存器现场保护由进栈/出栈指令(软件)完成(课件 p.238)。
- 多重中断在保护现场后就开中断,单重中断在恢复现场后、返回前才开中断(课件 p.239)。
- 硬件向量法中硬件给出的是向量地址(如 12H),不是入口地址;入口地址要靠向量地址单元里的跳转指令(JMP 200)获得(课件 p.234)。
- 链式排队器中高优先级请求封锁低优先级:INTR1 = 1 时无论 INTR2–4 为何,只有 INTP1 有效;课件链上输入为反相 INTR̄i(课件 p.232–233)。
- 周期挪用 ≠ 停止 CPU:挪用只占一个存取周期,周期间 CPU 继续执行现行程序;停止 CPU 才是整块期间 CPU 不工作(课件 p.243–244)。
- 交替访问把 CPU 工作周期分成 C1(DMA)、C2(CPU),不需要申请/归还总线使用权;需要总线申请应答的是停止 CPU 与周期挪用(课件 p.245)。
- 选择型 DMA 逻辑上同一时刻只服务一个设备,多路型才允许逻辑上多设备同时(分时)工作(课件 p.256–257)。
- 8212 是不可编程接口;8259 是中断接口、8257 是 DMA 接口,别与并行/串行的 8255/8251 混记(课件 p.225)。
8. 典型例题精讲
例 1(中断响应条件判断) 某时刻 EINT = 1,设备完成触发器 D = 1,MASK = 1,问 CPU 是否响应该设备中断?若随后软件将该设备 MASK 清 0,何时能响应?
解:① 响应需同时满足 EINT = 1 与 D = 1 且 MASK = 0(课件 p.236)。现 MASK = 1,中断被屏蔽,中断查询后 INTR = 0,故不响应。② MASK 清 0 后,D 仍为 1,在下一条指令执行阶段结束前 CPU 发中断查询信号,INTR 置 1;若 EINT 仍为 1,则在该指令执行结束时响应(课件 p.236)。结论:屏蔽只挡住请求的形成,不丢失设备已完成的事实(D 保持 1)。
例 2(硬件向量法找入口) 排队器输出经设备编码器得到向量地址 00010011B,按课件 p.234 的主存布局求服务程序入口。
解:① 00010011B = 13H;② 主存 13H 单元内容为 JMP 300;③ 执行该跳转得入口地址 300,即显示器服务程序(课件 p.234)。注意区分:13H 是向量地址,300 才是入口地址;12H/14H 分别对应 JMP 200(打印机)/JMP 400。
例 3(周期挪用效率计算) 主存存取周期 0.5 μs,DMA 每挪用一次传送一个字;某设备每 10 μs 准备好一个字并发一次 DMA 请求。求周期挪用下 CPU 被占时间比例;若改用停止 CPU 方式连续传送 1000 字,CPU 停多久?
解:① 每 10 μs 挪用 0.5 μs,比例 = 0.5 ÷ 10 = 5%;② 停止 CPU 方式:1000 × 0.5 μs = 500 μs,期间 CPU 完全不工作;③ 对比:周期挪用只让 CPU 损失 5% 时间且其余时间继续执行现行程序,对该设备明显更优(课件 p.243–244 原理)。
例 4(多路型 DMA 时序) 按课件 p.258 参数(磁盘 30 μs、磁带 45 μs 请求间隔,每次服务 5 μs,优先级打印机 > 磁盘 > 磁带,首请求均在 t = 0),写出 0–100 μs 的服务顺序。
解:t = 0 三请求齐到 → T1 打印机 0–5;t = 5 磁盘、磁带待服务 → T2 磁盘 5–10;T3 磁带 10–15;t = 30 磁盘第 2 次 → T4 30–35;t = 45 磁带第 2 次 → T5 45–50;t = 60 磁盘第 3 次 → T6 60–65;t = 90 磁盘第 4 次与磁带第 3 次同时 → T7 磁盘 90–95、T8 磁带 95–100。与课件 T1–T8 完全一致;DMA 占总线 8 × 5 ÷ 100 = 40%。详细版见习题册题 17。
附:本章速查表
触发器/寄存器速查
| 符号 |
名称 |
含义/作用 |
出处 |
| D |
完成触发器 |
D = 1 设备工作结束,受设备本身控制 |
p.223、231 |
| B |
工作触发器 |
B = 1 设备忙(工作中) |
p.223、228 |
| INTR |
中断请求触发器 |
INTR = 1 有请求;由中断查询信号打入 |
p.231 |
| MASK |
屏蔽触发器 |
MASK = 1 被屏蔽 |
p.231 |
| EINT |
允许中断触发器 |
EINT = 1 允许响应;开/关中断指令置位/复位 |
p.236 |
| DBR |
数据缓冲寄存器 |
速度匹配、暂存数据 |
p.223–224 |
| AR / WC / DAR / BR |
DMA 四寄存器 |
主存地址(+1)/字数(+1,溢出)/设备地址/数据缓冲 |
p.247 |
| IRR / ISR / IMR / PR |
8259A 寄存器 |
请求/服务/屏蔽/优先权比较 |
p.240 |
信号速查
| 信号 |
方向 |
含义 |
出处 |
| SEL |
接口内 |
设备选择电路选中信号 |
p.228 |
| Ready / Strobe |
接口→设备 / 设备→接口 |
异步应答信号 |
p.210 |
| INTA |
CPU→接口 |
中断响应 |
p.235、237 |
| DREQ / DACK |
设备→DMA / DMA→设备 |
DMA 请求/应答 |
p.247 |
| HRQ / HLDA |
DMA→CPU / CPU→DMA |
总线请求/总线响应 |
p.247 |
关键数字速查
| 数据 |
值 |
出处 |
| IBM/370 通道指令长度 |
64 位 |
p.208 |
| 串行示例位宽/终止位 |
9.09 ms / 2×9.09 ms |
p.210 |
| 向量地址示例 |
12H、13H、14H → JMP 200、300、400 |
p.234 |
| 入口示例 |
200 打印机、300 显示器 |
p.234 |
| 多路型时序示例 |
磁盘 30 μs、磁带 45 μs、每次服务 5 μs |
p.258 |
流程口诀速查
- 中断隐指令三件事:断点进栈、关中断、向量地址 → PC(p.239)。
- 服务程序四步:保护现场、设备服务、恢复现场、中断返回(p.238)。
- DMA 三阶段:预处理(置方向/DAR/AR/WC、启动)、数据传送(硬件逐字)、后处理(中断服务:校验/是否继续/诊断)(p.248–252)。
- DMA 输入七步:BR 收数 → DREQ → HRQ → HLDA → AR 送地址 → DACK → BR 送主存(p.250)。