说明:本章课件(Slide 206–258)没有独立的例题/习题/思考题页,全文唯一的显式设问是 p.221「为什么要设置接口?」(课件同页给出要点),作为原题 1 收录;其余 16 题为按考点补充题。共 17 题:基础 10 题、综合 5 题、拔高 1 题、课件原题 1 题,难度配比约 60% / 30% / 10%。所有事实性内容以课件为准,页码指 Slide 编号。
为什么要设置接口?
解答:
评分要点(六条,课件 p.221):
综上:接口是主机与外设之间在速度、格式、电平、控制与状态上的"适配层",没有它主机无法直接驱动外设(课件 p.221–224)。
下列关于 I/O 端口编址的叙述中,正确的是( )。
A. 统一编址下端口与主存共用地址空间,CPU 用取数、存数指令访问端口 B. 独立编址下端口与主存共用地址空间,但必须用专门 I/O 指令访问 C. 统一编址要求指令系统中设置专门的 I/O 指令 D. 独立编址下端口地址占用主存地址空间
解答:答案 A。
接口的选址功能由____实现;传送命令的功能由____实现;传送数据的功能由____实现;反映设备状态的功能由____实现。状态标记中:完成触发器记作__,工作触发器记作__,中断请求触发器记作__,屏蔽触发器记作__。
解答:
依次为:设备选择电路;命令寄存器和命令译码器;数据缓冲寄存器(DBR);设备状态标记;D;B;INTR;MASK(课件 p.223)。
记忆对照:D = Done(完成)、B = Busy(忙)、INTR = Interrupt Request、MASK = 屏蔽;其中 MASK = 1 表示被屏蔽、INTR = 1 表示有请求(课件 p.231)。
下列接口芯片与类型的对应中,错误的是( )。
A. Intel 8255——并行接口、可编程接口、通用接口 B. Intel 8251——串行接口 C. Intel 8212——可编程接口 D. Intel 8259——中断接口;Intel 8257——DMA 接口
解答:答案 C。
写出单个设备程序查询方式的查询流程,指出流程中三类指令各起什么作用,并解释为什么查询方式 CPU 效率低。
解答:
评分要点:
以输入为例,按课件 p.228 的接口电路写出程序查询方式接口工作的六个步骤(①–⑥),并说明工作期间与结束后 D、B 两个触发器的状态。
解答:
六步(课件 p.228):
触发器状态:设备工作期间 B = 1、D = 0;工作结束后 D = 1、B = 0(与课件图中 D = 1、B = 0 的标注一致,课件 p.228)。CPU 正是靠读状态线(而非数据线)判断可否取数。
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)。
CPU 响应 I/O 中断的条件是什么?在什么时刻响应?为什么不在设备就绪的瞬间立即响应?
解答:
评分要点:
链式排队器中设备 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)。
按课件 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)。
(1) 中断服务程序流程分哪四步?程序断点与寄存器内容分别由谁保护? (2) 中断隐指令完成哪三件事? (3) 写出单重中断与多重中断的服务程序流程,指出两者差别。
解答:
(1) 四步:保护现场 → 中断服务(设备服务)→ 恢复现场 → 中断返回(课件 p.238)。程序断点的保护由中断隐指令完成;寄存器内容的保护用进栈指令(恢复用出栈指令)(课件 p.238)。 (2) 中断隐指令(中断周期内硬件自动完成):程序断点进栈;关中断;向量地址 → PC(课件 p.239)。 (3) 单重:保护现场 → 设备服务 → 恢复现场 → 开中断 → 中断返回;多重:保护现场 → 开中断 → 设备服务 → 恢复现场 → 中断返回(课件 p.239)。差别:单重不允许中断现行服务程序,故直到返回前才开中断;多重允许级别更高的中断源打断现行服务程序,故保护现场后立即开中断(课件 p.238–239)。
下列关于 DMA 与主存交换数据方式的叙述中,错误的是( )。
A. 停止 CPU 访问主存方式控制简单,但传送期间 CPU 处于不工作状态或保持状态,未充分发挥 CPU 对主存的利用率 B. 周期挪用方式下,若 CPU 与 DMA 同时请求访存,CPU 将总线控制权让给 DMA C. 交替访问方式把 CPU 工作周期分为 C1、C2,C1 专供 DMA 访存、C2 专供 CPU 访存,不需要申请建立和归还总线使用权 D. 周期挪用方式下,整个数据块传送期间 CPU 必须停止执行现行程序
解答:答案 D。
(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)。
某系统有三类外设:① 键盘(低速、随机按键、每次数据量小);② 磁盘(高速、成批传送大数据块);③ 一组始终就绪的简单开关量输入(随时可读、无需准备)。请为每类设备选择最合适的传送控制方式(程序查询/程序中断/DMA),并结合 CPU 效率与硬件成本说明理由。
解答:
评分要点:
完成下表(课件 p.255):
| 比较项 | 中断方式 | DMA 方式 |
|---|---|---|
| (1) 数据传送 | __ | __ |
| (2) 响应时间 | __ | __ |
| (3) 处理异常情况 | __ | __ |
| (4) 中断请求用于 | __ | __ |
| (5) 优先级 | __ | __ |
解答:
| 比较项 | 中断方式 | DMA 方式 |
|---|---|---|
| (1) 数据传送 | 程序 | 硬件 |
| (2) 响应时间 | 指令执行结束 | 存取周期结束 |
| (3) 处理异常情况 | 能 | 不能 |
| (4) 中断请求用于 | 传送数据 | 后处理 |
| (5) 优先级 | 低 | 高 |
(课件 p.255。)记忆口诀:中断"程序搬数、指令末响应、能处理异常、为搬数而中断、优先级低";DMA 相反,且其中断只为后处理。
设主存存取周期为 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)。
多路型 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%,故安全。