首页微机原理组成原理笔记习题PDF
第5章-习题与解答

第5章 输入输出系统 习题与解答

说明:本章课件(Slide 206–258)没有独立的例题/习题/思考题页,全文唯一的显式设问是 p.221「为什么要设置接口?」(课件同页给出要点),作为原题 1 收录;其余 16 题为按考点补充题。共 17 题:基础 10 题、综合 5 题、拔高 1 题、课件原题 1 题,难度配比约 60% / 30% / 10%。所有事实性内容以课件为准,页码指 Slide 编号。

一、课件原题

题1(课件 p.221)

为什么要设置接口?

解答:

评分要点(六条,课件 p.221):

  1. 实现设备的选择:主机经地址线/设备选择电路选中某台设备;
  2. 实现数据缓冲达到速度匹配:CPU 快、外设慢,靠数据缓冲寄存器 DBR 缓冲;
  3. 实现数据串—并格式转换:主机侧并行、设备侧可能串行;
  4. 实现电平转换:主机与外设电平标准不同;
  5. 传送控制命令:命令寄存器、命令译码器把 CPU 命令送给设备;
  6. 反映设备的状态:如"忙"、"就绪"、"中断请求",供 CPU 查询或中断使用。

综上:接口是主机与外设之间在速度、格式、电平、控制与状态上的"适配层",没有它主机无法直接驱动外设(课件 p.221–224)。

二、考点补充题

题2【补充·考点:端口编址】(选择·基础)

下列关于 I/O 端口编址的叙述中,正确的是( )。

A. 统一编址下端口与主存共用地址空间,CPU 用取数、存数指令访问端口 B. 独立编址下端口与主存共用地址空间,但必须用专门 I/O 指令访问 C. 统一编址要求指令系统中设置专门的 I/O 指令 D. 独立编址下端口地址占用主存地址空间

解答:答案 A。

题3【补充·考点:I/O 接口功能与组成】(填空·基础)

接口的选址功能由____实现;传送命令的功能由____实现;传送数据的功能由____实现;反映设备状态的功能由____实现。状态标记中:完成触发器记作__,工作触发器记作__,中断请求触发器记作__,屏蔽触发器记作__。

解答:

依次为:设备选择电路;命令寄存器和命令译码器;数据缓冲寄存器(DBR);设备状态标记;D;B;INTR;MASK(课件 p.223)。

记忆对照:D = Done(完成)、B = Busy(忙)、INTR = Interrupt Request、MASK = 屏蔽;其中 MASK = 1 表示被屏蔽、INTR = 1 表示有请求(课件 p.231)。

题4【补充·考点:接口类型与常见芯片】(选择·基础)

下列接口芯片与类型的对应中,错误的是( )。

A. Intel 8255——并行接口、可编程接口、通用接口 B. Intel 8251——串行接口 C. Intel 8212——可编程接口 D. Intel 8259——中断接口;Intel 8257——DMA 接口

解答:答案 C。

题5【补充·考点:程序查询流程】(简答·基础)

写出单个设备程序查询方式的查询流程,指出流程中三类指令各起什么作用,并解释为什么查询方式 CPU 效率低。

解答:

评分要点:

  1. 流程:检查状态标记 → 判断"准备就绪?"→ 否:返回继续检查(循环等待);是:交换数据(课件 p.226)。
  2. 三类指令:测试指令——读入/检查状态标记;转移指令——根据就绪与否决定循环或往下;传送指令——完成 CPU 与接口间的数据交换(课件 p.226)。
  3. 效率低的原因:设备准备期间 CPU 只能反复查询、踏步等待,不能执行其他程序,CPU 与 I/O 串行工作;整个"I/O 准备及传送"期间 CPU 都被占用(课件 p.212、216)。
  4. 多设备时按设备 1 → 设备 N 顺序轮询,谁就绪处理谁,都不就绪则回到设备 1 重新轮询(课件 p.226)。

题6【补充·考点:程序查询接口电路】(简答·综合)

以输入为例,按课件 p.228 的接口电路写出程序查询方式接口工作的六个步骤(①–⑥),并说明工作期间与结束后 D、B 两个触发器的状态。

解答:

六步(课件 p.228):

  1. ① CPU 发启动命令:地址线送设备地址,设备选择电路译出 SEL 选中本接口,启动命令经与门进入接口;
  2. ② 接口启动设备:工作触发器 B 置 1(忙),完成触发器 D 清 0;
  3. ③ 设备把输入数据送入数据缓冲寄存器 DBR;
  4. ④ 设备工作结束:D 置 1、B 清 0;
  5. ⑤ D = 1 经状态线以"准备就绪"信号送 CPU,供查询指令测试;
  6. ⑥ CPU 执行输入(传送)指令,经数据线把 DBR 中的数据读入 CPU。

触发器状态:设备工作期间 B = 1、D = 0;工作结束后 D = 1、B = 0(与课件图中 D = 1、B = 0 的标注一致,课件 p.228)。CPU 正是靠读状态线(而非数据线)判断可否取数。

题7【补充·考点:中断请求与屏蔽】(填空·基础)

INTR = 1 表示____;MASK = 1 表示____;完成触发器 D 受____控制;形成中断请求的条件是 D = __且 MASK = __;CPU 侧允许中断触发器 EINT = __时才允许响应中断,它由____指令置 1,由____指令或硬件自动复位清 0。

解答:

依次为:有中断请求;该中断源被屏蔽;设备本身;1;0;1;开中断;关中断(课件 p.231、236)。

注意层次:MASK 是接口中针对单个设备的屏蔽位,EINT 是 CPU 内的总开关;设备请求能否形成看 D 与 MASK,能否被响应还要看 EINT(课件 p.231、236)。

题8【补充·考点:中断响应条件与时间】(简答·基础)

CPU 响应 I/O 中断的条件是什么?在什么时刻响应?为什么不在设备就绪的瞬间立即响应?

解答:

评分要点:

  1. 条件一:允许中断触发器 EINT = 1(开中断指令置位;关中断指令或硬件自动复位清 0)(课件 p.236)。
  2. 条件二:D = 1(随机出现)且 MASK = 0,经中断查询使 INTR = 1,形成中断请求(课件 p.236)。
  3. 时间:在每条指令执行阶段的结束前,CPU 发中断查询信号;满足条件则在该指令执行结束时响应(课件 p.236)。
  4. 原因(补充常识):必须等当前指令执行完,断点(返回地址)才明确、机器状态才完整,才能安全进栈保护并转服务程序;故响应只能发生在指令边界,而非设备就绪的任意瞬间。

题9【补充·考点:链式排队器】(填空·基础)

链式排队器中设备 1#–4# 优先级降序排列,排队逻辑为 INTP1 = INTR1,INTP2 = INTR2 ∧ ¬INTR1,INTP3 = INTR3 ∧ ¬INTR1 ∧ ¬INTR2,INTP4 = INTR4 ∧ ¬INTR1 ∧ ¬INTR2 ∧ ¬INTR3(课件 p.232–233,链上输入为反相信号 INTR̄i)。

(1) 若 INTR1 = 0、INTR2 = 1、INTR3 = 1、INTR4 = 1,则 INTP1–INTP4 = ____; (2) 若 INTR1 = 1、INTR2 = 1,则 INTP2 = __; (3) 若四个请求同时为 1,被服务的是__号设备。

解答:

(1) INTP1 = 0;INTP2 = 1 ∧ ¬0 = 1;INTP3 = 1 ∧ ¬0 ∧ ¬1 = 0;INTP4 = 1 ∧ ¬0 ∧ ¬1 ∧ ¬1 = 0。即 0、1、0、0。 (2) INTP2 = 1 ∧ ¬1 = 0(高优先级 1# 的请求封锁了 2#)。 (3) 1# 设备:INTP1 = 1,其余全被封锁为 0。

结论:链式排队器中只有"无更高优先级请求"的那一级输出才有效,优先级由链上位置决定(课件 p.232–233)。

题10【补充·考点:硬件向量法】(简答/计算·基础)

按课件 p.234 的主存布局(12H 单元:JMP 200;13H 单元:JMP 300;14H 单元:JMP 400;200 为打印机服务程序入口、300 为显示器服务程序入口):

(1) 排队器输出经设备编码器得到向量地址 00010011B,求中断服务程序的入口地址及对应设备; (2) 打印机中断的向量地址是多少(二进制与十六进制)? (3) 说明"向量地址"与"入口地址"的区别。

解答:

(1) 00010011B = 13H;查主存 13H 单元内容为 JMP 300;故入口地址 = 300,对应显示器服务程序(课件 p.234)。 (2) 打印机入口为 200,存放 JMP 200 的单元是 12H,故向量地址 = 12H = 00010010B(课件 p.234)。 (3) 向量地址由硬件(设备编码器对排队器输出编码)产生,是中断向量表的表项地址;入口地址是服务程序第一条指令的地址,需执行向量地址单元中的跳转指令才能得到。硬件向量法 = 硬件产生向量地址 → 再由向量地址找到入口地址(课件 p.234)。

题11【补充·考点:中断服务流程与中断隐指令】(简答·综合)

(1) 中断服务程序流程分哪四步?程序断点与寄存器内容分别由谁保护? (2) 中断隐指令完成哪三件事? (3) 写出单重中断与多重中断的服务程序流程,指出两者差别。

解答:

(1) 四步:保护现场 → 中断服务(设备服务)→ 恢复现场 → 中断返回(课件 p.238)。程序断点的保护由中断隐指令完成;寄存器内容的保护用进栈指令(恢复用出栈指令)(课件 p.238)。 (2) 中断隐指令(中断周期内硬件自动完成):程序断点进栈;关中断;向量地址 → PC(课件 p.239)。 (3) 单重:保护现场 → 设备服务 → 恢复现场 → 开中断 → 中断返回;多重:保护现场 → 开中断 → 设备服务 → 恢复现场 → 中断返回(课件 p.239)。差别:单重不允许中断现行服务程序,故直到返回前才开中断;多重允许级别更高的中断源打断现行服务程序,故保护现场后立即开中断(课件 p.238–239)。

题12【补充·考点:DMA 与主存交换数据的三种方式】(选择·基础)

下列关于 DMA 与主存交换数据方式的叙述中,错误的是( )。

A. 停止 CPU 访问主存方式控制简单,但传送期间 CPU 处于不工作状态或保持状态,未充分发挥 CPU 对主存的利用率 B. 周期挪用方式下,若 CPU 与 DMA 同时请求访存,CPU 将总线控制权让给 DMA C. 交替访问方式把 CPU 工作周期分为 C1、C2,C1 专供 DMA 访存、C2 专供 CPU 访存,不需要申请建立和归还总线使用权 D. 周期挪用方式下,整个数据块传送期间 CPU 必须停止执行现行程序

解答:答案 D。

题13【补充·考点:DMA 接口组成与传送过程】(简答·综合)

(1) 写出 DMA 接口中 AR、WC、DAR、BR 的名称与作用,以及 DREQ、DACK、HRQ、HLDA 四个信号的方向。 (2) 预处理阶段 CPU 要预置哪些信息? (3) 以输入为例写出数据传送的七步(①–⑦),并说明数据块何时结束、结束后做什么。

解答:

(1) AR:主存地址寄存器,存主存地址,每字自动 +1;WC:字计数器,自动 +1,溢出信号送中断机构;DAR:设备地址寄存器;BR:数据缓冲寄存器(课件 p.247)。信号方向:DREQ 设备 → DMA;DACK DMA → 设备;HRQ DMA → CPU(总线请求);HLDA CPU → DMA(总线响应)(课件 p.247)。 (2) 预处理:CPU 用几条 I/O 指令预置传送方向(入/出)、设备地址 → DAR、主存地址 → AR、传送字数 → WC,并启动设备(课件 p.248)。 (3) 七步:① 设备送一个字到 BR;② 设备发 DREQ;③ DMA 发 HRQ;④ CPU 回 HLDA 让出总线;⑤ AR 送主存地址到地址总线;⑥ DMA 发 DACK;⑦ BR 经数据线送主存,同时 AR +1、WC +1(课件 p.250)。WC 溢出表示数据块传送结束,中断机构向 CPU 发中断请求,转后处理(课件 p.249–250)。后处理由中断服务程序完成:校验送入主存的数是否正确、是否继续用 DMA、测试传送过程是否正确(错则转诊断程序)(课件 p.252)。

题14【补充·考点:I/O 传送控制方式的选择】(综合设计·综合)

某系统有三类外设:① 键盘(低速、随机按键、每次数据量小);② 磁盘(高速、成批传送大数据块);③ 一组始终就绪的简单开关量输入(随时可读、无需准备)。请为每类设备选择最合适的传送控制方式(程序查询/程序中断/DMA),并结合 CPU 效率与硬件成本说明理由。

解答:

评分要点:

  1. 键盘 → 程序中断方式。理由:按键随机且低速,若用查询则 CPU 长期踏步等待浪费极大;中断方式下 CPU 平时执行主程序,键按下才中断服务取一个码,宏观并行、无踏步等待(课件 p.213–214、230)。
  2. 磁盘 → DMA 方式。理由:高速成批传送,若用中断则每字一次中断,保护/恢复现场开销过大;DMA 由硬件直接在主存与设备间搬数据,每字只挪用一个存取周期,块结束才中断一次做后处理,CPU 效率最高(课件 p.242、255)。
  3. 始终就绪的开关量 → 程序查询方式。理由:设备无需准备、随时可读,查询一次即成功,不存在踏步等待浪费;且查询接口最简单(只需设备选择电路、DBR、状态标记),无需中断/DMA 硬件,成本最低(课件 p.226–228)。
  4. 总结:方式选择 = 设备速度/随机性/批量 与 CPU 效率、接口硬件成本的权衡;三者 CPU 效率:查询 < 中断 < DMA(课件 p.216)。

题15【补充·考点:DMA 与程序中断方式比较】(填表·基础)

完成下表(课件 p.255):

比较项 中断方式 DMA 方式
(1) 数据传送 __ __
(2) 响应时间 __ __
(3) 处理异常情况 __ __
(4) 中断请求用于 __ __
(5) 优先级 __ __

解答:

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

(课件 p.255。)记忆口诀:中断"程序搬数、指令末响应、能处理异常、为搬数而中断、优先级低";DMA 相反,且其中断只为后处理。

题16【补充·考点:周期挪用效率计算】(计算·综合)

设主存存取周期为 0.5 μs,DMA 每挪用一次总线传送一个字。某设备每 10 μs 准备好一个字并发出一次 DMA 请求。

(1) 采用周期挪用方式,CPU 被 DMA 占用的时间比例是多少? (2) 若改用停止 CPU 访问主存方式连续传送 1000 个字,CPU 将停止工作多长时间? (3) 对该设备而言哪种方式对 CPU 影响更小?为什么?

解答:

(1) 每 10 μs 发生一次挪用,每次占用 1 个存取周期 0.5 μs。 比例 = 0.5 μs ÷ 10 μs = 0.05 = 5%。 即 CPU 仅有 5% 的时间被暂停访存,其余 95% 时间继续执行现行程序(课件 p.244 原理)。 (2) 停止 CPU 方式下整块传送期间 CPU 不工作: 停止时间 = 1000 字 × 0.5 μs/字 = 500 μs = 0.5 ms(课件 p.243 原理)。 (3) 周期挪用影响更小:该设备占空比低(每 10 μs 才一个字),周期挪用只让 CPU 损失 5% 时间;而停止 CPU 方式在传送的 500 μs 内 CPU 完全停摆。故低速/间歇设备宜用周期挪用,停止 CPU 方式只适合不太在乎 CPU 停机的成批高速传送场合(课件 p.243–244)。

题17【补充·考点:多路型 DMA 时序分析】(计算+分析·拔高)

多路型 DMA 接口同时接打印机、磁盘、磁带。参数与课件 p.258 一致:每次 DMA 服务(传送一个字)占 5 μs;磁盘每 30 μs 发一次请求、磁带每 45 μs 发一次请求、打印机只在开始发一次请求;三者首次请求均在 t = 0 到达;优先级:打印机 > 磁盘 > 磁带(由课件时序图读得);服务不可抢占(一旦开始须完成本次 5 μs)。

(1) 推导 0–100 μs 内各次服务的顺序与起止时刻(T1–T8),并与课件 p.258 对照; (2) 求该段时间内 DMA 占用总线的时间比例; (3) 验证是否有请求丢失,并据此说明多路型 DMA"逻辑上多设备同时工作"的含义。

解答:

(1) 逐时刻推导(请求到达时刻:打印机 0;磁盘 0、30、60、90;磁带 0、45、90):

服务 设备 起–止 (μs) 说明
T1 打印机 0–5 t=0 三请求齐到,优先级最高者先
T2 磁盘 5–10 剩磁盘、磁带,磁盘优先
T3 磁带 10–15 只剩磁带
T4 磁盘 30–35 磁盘第 2 次请求到达
T5 磁带 45–50 磁带第 2 次请求到达
T6 磁盘 60–65 磁盘第 3 次请求到达
T7 磁盘 90–95 t=90 磁盘第 4 次与磁带第 3 次同时到,磁盘优先
T8 磁带 95–100 接着服务磁带

顺序 T1 打印机 → T2 磁盘 → T3 磁带 → T4 磁盘 → T5 磁带 → T6 磁盘 → T7 磁盘 → T8 磁带,与课件 p.258 图中 T1–T8 完全一致。 (2) 占用比例 = 8 次 × 5 μs ÷ 100 μs = 40 ÷ 100 = 40%。 (3) 无丢失:磁盘各次请求均在到达时刻立即被服务(等待 0);磁带 t=0 的请求等待 10 μs、t=45 的等待 0、t=90 的等待 5 μs,均远小于其 45 μs 的请求间隔,即每个请求都在下一请求到来前服务完毕,故不丢失。含义:多路型 DMA 物理上接多台设备、逻辑上允许它们"同时"工作——各设备按自身速率独立发请求,接口以时间片轮转方式为它们服务(分时复用一条 DMA 通路),只要总负载不超过总线能力就不丢请求(课件 p.257–258)。本题总负载 40% < 100%,故安全。