首页微机原理组成原理笔记习题PDF
第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)

1.3 I/O 设备与主机的联系方式(课件 p.209–211)

  1. 设备编址(课件 p.209): - 统一编址:端口与主存统一编址,用取数、存数(访存)指令访问端口,无需专门 I/O 指令; - 不统一编址(独立编址):端口单独编址,指令系统中有专门的 I/O 指令。
  2. 设备选址:用设备选择电路识别是否被选中(课件 p.209)。
  3. 传送方式:串行、并行(课件 p.209–210)。串行示例中一个位宽为 9.09 ms,起始位占 1 个位宽、终止位占 2 个位宽(2×9.09 ms)(课件 p.210;补充常识:9.09 ms ≈ 1/110 s,即对应 110 bit/s 的传输率)。
  4. 联络方式(课件 p.210): - 立即响应; - 异步工作采用应答信号:"Ready"(I/O 接口 → I/O 设备)与 "Strobe"(I/O 设备 → I/O 接口); - 同步工作采用同步时标。
  5. 连接方式(课件 p.211): - 辐射式:每台设备都配有一套控制线路和一组信号线,不便于增删设备; - 总线连接:便于增删设备。

1.4 I/O 设备与主机信息传送的控制方式(课件 p.212–216)

课件详述三种方式:

方式 CPU 与 I/O 关系 踏步等待 传送执行者 响应/介入时机
程序查询 串行 有 CPU 程序 CPU 主动读状态、检查状态
程序中断 并行 无 CPU 程序(中断服务) 指令执行周期结束
DMA 并行 无 硬件(DMA 接口) 存取周期结束(周期挪用)

三种方式的 CPU 工作效率比较

读图(课件 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)

2.2 输入设备(课件 p.218)

2.3 输出设备(课件 p.219)

2.4 其他与多媒体(课件 p.220)

易错警示:激光打印机是"逐页"、喷墨是"逐字"、点阵式可"逐字/逐行",选择题常互换设陷阱(课件 p.219)。

3. I/O 接口(5.3,课件 p.221–225)

3.1 为什么要设置接口(课件 p.221)

  1. 实现设备的选择;
  2. 实现数据缓冲达到速度匹配;
  3. 实现数据串—并格式转换;
  4. 实现电平转换;
  5. 传送控制命令;
  6. 反映设备的状态("忙"、"就绪"、"中断请求")。

3.2 总线连接方式的接口电路:四类线(课件 p.222)

设备选择线、数据线、命令线、状态线。CPU 侧经 I/O 总线与多个接口相连,每个接口再连自己的设备。

3.3 接口的功能与组成对应表(课件 p.223)

功能 组成
选址功能 设备选择电路
传送命令的功能 命令寄存器、命令译码器
传送数据的功能 数据缓冲寄存器(DBR)
反映设备状态的功能 设备状态标记:完成触发器 D、工作触发器 B、中断请求触发器 INTR、屏蔽触发器 MASK

3.4 I/O 接口的基本组成(课件 p.224)

I/O 接口的基本组成

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)

4.2 程序流程(课件 p.227)

设置计数值 → 设置主存缓冲区首址 → 启动外设 → 准备好?(否:原地循环查询)→ 是:传送一个数据 → 修改主存地址 → 修改计数值 → 传送完?(未完:返回循环继续启动/查询传送;完:结束 I/O 传送)。图中另标注"保存寄存器内容",即进入传送循环前需保护主程序所用寄存器(课件 p.227)。

4.3 程序查询方式的接口电路(以输入为例,课件 p.228)

程序查询方式的接口电路

六步工作过程(课件 p.228):

  1. ① CPU 发启动命令(地址线经设备选择电路产生 SEL 选中本接口);
  2. ② 接口启动设备(工作触发器 B 置 1、完成触发器 D 清 0);
  3. ③ 设备把输入数据送入 DBR;
  4. ④ 设备工作结束(D 置 1、B 清 0);
  5. ⑤ D = 1 经状态线作为"准备就绪"送 CPU;
  6. ⑥ 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)

中断请求触发器与中断屏蔽触发器

(2) 排队器(课件 p.232–233)

链式排队器

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

中断向量地址形成部件

(4) 程序中断方式接口电路的基本组成(课件 p.235)

在查询接口(设备选择电路、DBR、D、B)基础上增加:INTR、MASK、排队器、设备编码器、命令译码;对外信号有中断查询、中断请求、中断响应 INTA、向量地址,以及"来自高一级的排队器/至低一级的排队器"链式连线。

5.4 CPU 响应中断的条件和时间(课件 p.236)

5.5 I/O 中断处理过程(以输入为例,八步,课件 p.237)

I/O 中断处理过程

  1. ① CPU 发启动命令(命令译码 + SEL 选中);
  2. ② 启动设备(B = 1、D = 0);
  3. ③ 设备输入数据送 DBR;
  4. ④ 设备工作结束(D = 1、B = 0);
  5. ⑤ 指令执行阶段结束前 CPU 发中断查询信号;
  6. ⑥ D = 1 且 MASK = 0 → INTR = 1,向 CPU 发中断请求;
  7. ⑦ CPU 发中断响应 INTA;
  8. ⑧ 设备编码器输出向量地址送 CPU,进而找到入口地址转服务程序(课件 p.237)。

5.6 中断服务程序流程(课件 p.238–239)

单重中断和多重中断的服务程序流程

5.7 程序中断接口芯片 8259A 的内部结构(课件 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)

DMA 和程序中断两种方式的数据通路

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 工作周期大于主存存取周期的场合。)

周期挪用(周期窃取)

DMA 与 CPU 交替访问

6.3 DMA 接口的功能(课件 p.246)

  1. 向 CPU 申请 DMA 传送;
  2. 处理总线控制权的转交;
  3. 管理系统总线、控制数据传送;
  4. 确定数据传送的首地址和长度,修正传送过程中的数据地址和长度;
  5. DMA 传送结束时,给出操作完成信号。

6.4 DMA 接口的组成(课件 p.247)

DMA 接口组成

部件 作用
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 传送过程示意

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

(3) 数据传送过程(输入)七步(课件 p.250):

DMA 数据传送过程(输入)

  1. ① 设备把一个字送入 BR;
  2. ② 设备向 DMA 控制逻辑发 DREQ;
  3. ③ DMA 向 CPU 发 HRQ(总线请求);
  4. ④ CPU 回 HLDA,让出总线控制权;
  5. ⑤ AR 把主存地址送地址总线;
  6. ⑥ DMA 向设备发 DACK;
  7. ⑦ BR 把数据经数据线送主存;同时 AR +1、WC +1;WC 未溢出则继续下一字,溢出则中断机构向 CPU 发中断请求(课件 p.250)。

(4) 数据传送过程(输出)(课件 p.251):方向相反——主存数据经数据线送 BR、再送设备;控制信号序列与输入相同。

(5) 后处理(课件 p.252):由中断服务程序完成:校验送入主存的数是否正确;是否继续用 DMA;测试传送过程是否正确,错则转诊断程序。

6.6 DMA 接口与系统的连接方式(课件 p.253–254)

6.7 DMA 方式与程序中断方式的比较(课件 p.255)

比较项 中断方式 DMA 方式
(1) 数据传送 程序 硬件
(2) 响应时间 指令执行结束 存取周期结束
(3) 处理异常情况 能 不能
(4) 中断请求 传送数据 后处理
(5) 优先级 低 高

6.8 DMA 接口的类型(课件 p.256–258)

多路型 DMA 接口的工作原理

易错警示:DMA 响应时间是"存取周期结束"而不是"指令执行结束";DMA 传送靠硬件而不是程序;DMA 的中断请求只用于后处理,不是每字一次;课件 WC 用 +1 计数、以溢出信号判块结束(与部分教材减 1 判 0 不同,以课件为准)(课件 p.247、250、255)。

7. 易错点与高频陷阱汇总

  1. 统一编址用访存(取数/存数)指令、独立编址才用专门 I/O 指令——选项常把两者对调(课件 p.209)。
  2. 查询方式 CPU 与 I/O 串行、有踏步等待;中断与 DMA 才是并行(课件 p.212–216)。
  3. 中断在指令执行周期结束响应,DMA 在存取周期结束响应——两个"结束"不可互换(课件 p.216、255)。
  4. DMA 传送期间不中断现行程序,但块结束后仍要中断做后处理;"DMA 完全不用中断"是错的(课件 p.215、249、252)。
  5. MASK = 1 是屏蔽该设备(设备级),EINT = 1 是 CPU 允许响应(全局级);响应需 EINT = 1 且 D = 1、MASK = 0(课件 p.231、236)。
  6. INTR 不是设备直接置位的:设备只控制 D;CPU 的中断查询信号把 D·MASK̄ 打入 INTR(课件 p.231、236)。
  7. 断点保护由中断隐指令(硬件)完成,寄存器现场保护由进栈/出栈指令(软件)完成(课件 p.238)。
  8. 多重中断在保护现场后就开中断,单重中断在恢复现场后、返回前才开中断(课件 p.239)。
  9. 硬件向量法中硬件给出的是向量地址(如 12H),不是入口地址;入口地址要靠向量地址单元里的跳转指令(JMP 200)获得(课件 p.234)。
  10. 链式排队器中高优先级请求封锁低优先级:INTR1 = 1 时无论 INTR2–4 为何,只有 INTP1 有效;课件链上输入为反相 INTR̄i(课件 p.232–233)。
  11. 周期挪用 ≠ 停止 CPU:挪用只占一个存取周期,周期间 CPU 继续执行现行程序;停止 CPU 才是整块期间 CPU 不工作(课件 p.243–244)。
  12. 交替访问把 CPU 工作周期分成 C1(DMA)、C2(CPU),不需要申请/归还总线使用权;需要总线申请应答的是停止 CPU 与周期挪用(课件 p.245)。
  13. 选择型 DMA 逻辑上同一时刻只服务一个设备,多路型才允许逻辑上多设备同时(分时)工作(课件 p.256–257)。
  14. 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

流程口诀速查