24 KiB
第6章 输入输出 — 期末复习总结
一、详细内容分析
6.1 输入输出与接口概述
6.1.1 接口与端口
- 输入输出(I/O):CPU(计算机主机)与外部设备之间的信息交换。
- 输入输出技术:CPU 与外部设备之间的连接与信息交换技术。
- 接口(Interface):CPU 与外部设备之间的硬件连接逻辑及相应的控制软件。
- 接口技术:完成 CPU 与外部设备之间连接及信息交换有关的软、硬件技术方法。
- 端口(Port):接口电路中那些完成信息传送、可由程序寻址并进行读写操作的逻辑单元(往往是寄存器)。
- 接口与端口不同:接口是物理/逻辑的整体,端口是接口内可寻址的寄存器单元。
- 同一个接口中通常包含三类端口:数据端口、状态端口、控制端口。
为什么要使用接口(4 个原因):
- 外设种类繁多,与 CPU 不能直接互联及信息交互;
- 外部设备工作速度变化范围大,与 CPU 之间不匹配;
- 外设信号类型不同(数字、模拟等),与 CPU 使用的数据类型不同;
- 外设信息格式复杂(并行、串行等),与 CPU 使用的数据格式不一致。
6.1.2 接口的功能
- 地址译码或设备选择:接口进行地址译码,产生设备选择信号,使微处理器与指定外设交换信息。
- 数据缓冲和锁存:数据总线是公共双向总线,所有设备分时复用,只允许被选中的设备在读/写周期内占用。
- 信息格式与电平的转换:转换外设与 CPU 之间在格式、信号类型、电平范围上的差异。
- 数据传送的协调控制:协调 CPU 与外设的传输通路逻辑及时间关系。
6.1.3 接口的一般编程结构
I/O 接口的编程结构(即“从编程角度看到的接口”)由三类寄存器构成:
| 端口类型 | 作用 |
|---|---|
| 数据端口 | 存储输入/输出数据的寄存器 |
| 状态端口 | 存储设备或接口状态寄存器 |
| 控制端口 | 存放设备或接口控制信号的寄存器 |
接口与 CPU 的连接信号:
- 数据线:传输对各端口访问的信息;
- 地址线:对接口/端口寻址;
- 控制线:对接口/端口进行读写等控制。
接口与外设的连接信号:
- 数据线:传输数字量、模拟量、开关量;
- 状态线:传输外设的状态信号;
- 控制线:传输控制外设的令信号。
6.2 I/O 端口编址方式(标准知识补充)
8086/8088 CPU 采用 独立编址(I/O 独立编址 / 端口编址) 方式:
- I/O 地址空间大小:8086 提供 16 位 I/O 地址,共 64K(65536)个 8 位端口,可组成 32K 个 16 位端口。
- 地址范围:
0000H ~ FFFFH。 - 使用专门的 I/O 指令 IN/OUT 与外设通信,与访问存储器的指令 MOV 等不通用。
- 引脚
M/IO(在 8088 上为M/IO)区分访问对象:=1访问存储器,=0访问 I/O 端口。
IN 指令格式:
| 形式 | 语法 | 含义 |
|---|---|---|
| 直接端口寻址 | IN AL, n 或 IN AX, n |
从端口 n 读 8/16 位数据 |
| 间接端口寻址 | IN AL, DX 或 IN AX, DX |
从 DX 所指端口读 8/16 位数据 |
OUT 指令格式:
| 形式 | 语法 | 含义 |
|---|---|---|
| 直接端口寻址 | OUT n, AL 或 OUT n, AX |
将 AL/AX 写入端口 n |
| 间接端口寻址 | OUT DX, AL 或 OUT DX, AX |
将 AL/AX 写入 DX 所指端口 |
注:直接端口寻址时 n 为 8 位立即数,范围 0
255;DX 间接寻址时范围为 065535。
两种编址方式对比:
| 项目 | 独立编址(I/O 映射 / Port-mapped I/O) | 统一编址(内存映射 / Memory-mapped I/O) |
|---|---|---|
| 地址空间 | I/O 端口与存储器各自独立编址 | I/O 端口占用存储器地址空间的一部分 |
| 访问指令 | 必须使用专用 IN/OUT 指令 | 可使用全部访存指令(MOV 等) |
| 优点 | 不占用存储器地址空间;I/O 程序与用户程序清晰分开;译码简单、速度快 | 寻址灵活;可用丰富指令;总线结构统一 |
| 缺点 | 需要专用 I/O 引脚与控制信号;指令少、功能弱 | 占用存储器地址空间;译码复杂;I/O 操作可能影响存储层次 |
| 典型代表 | 80x86(8086/8088)、MCS-51 | 6800/68000、MIPS、ARM(部分) |
6.3 输入输出控制方式(四种基本方式)
课件明确给出 四种基本控制方式:
- 程序查询方式(Polled I/O)
- 程序中断方式(Interrupt I/O)
- DMA 方式(直接存储器存取)
- I/O 处理机方式(IOP,I/O Processor)
6.3.1 程序查询方式
程序查询方式又分为 无条件传送方式 和 条件(查询)传送方式。
(1)无条件传送方式
- 程序需要通过接口进行输入/输出时,直接使用 IN/OUT 指令访问端口,无需查询外设状态。
- 适用:始终处于就绪状态的外设(如开关、LED、简单机械)。
- 示例:
MOV AL, 12H ; 准备数据 12H OUT 80H, AL ; AL 内容输出到端口 80H - 端口 80H 中输出锁存器和输入缓冲器共用地址,由 RD/WR 信号区分访问哪个寄存器。
(2)查询输入传送方式
文字描述工作流程:
- CPU 读状态端口(地址 E0H),取出状态字(D0 = 1 表示输入数据准备好);
- 测试状态位 D0:若 D0 = 0(未就绪),继续返回步骤 1 循环查询;
- 若 D0 = 1(就绪),CPU 读数据端口(地址 E2H),同时清除状态触发器(输入锁存器空);
- 处理读到的数据,返回步骤 1,继续输入下一个数据。
典型查询输入程序段:
A1: IN AL, 0E0H ; 取状态字(状态在 D0 位)
TEST AL, 01H ; 测试状态位
JZ A1 ; D0=0 未准备好,继续查询
IN AL, 0E2H ; 读输入数据
; …… ; 数据处理
JMP A1 ; 返回继续查询,输入下一个数据
(3)查询输出传送方式
文字描述工作流程:
- CPU 写数据端口(地址 E4H),输出数据并使状态触发器置 1(设备“忙”);
- CPU 读状态端口(地址 E4H)取状态字;
- 测试状态位 D0:若 D0 = 1(设备忙),继续查询等待;
- 外设取走数据后回送 ACK,清状态触发器使 D0 = 0;
- CPU 准备下一个数据,重复以上过程。
典型查询输出程序段:
MOV AL, 41H ; 数据 41H 送 AL
OUT 0E4H, AL ; 数据写入数据锁存器,状态触发器置 1
A1: IN AL, 0E4H ; 取状态字
TEST AL, 01H ; 测试状态位
JNZ A1 ; D0=1 设备忙,继续查询
MOV AL, 42H ; 下一个数据 42H 送 AL
OUT 0E4H, AL ; 下一个数据存入锁存器
; ……
程序查询方式特点:
- 适合外设速度慢、请求响应实时性要求不高、一次传输数据量不大、对 CPU 工作效率要求不高的场合;
- CPU 与外设只能串行工作,各外设之间也只能串行工作,CPU 利用率低。
6.3.2 中断方式
基本思想:外设就绪时向 CPU 发中断请求 INTR,CPU 响应后转去执行 ISR(中断服务程序),完成一次数据交换后返回原程序。
工作流程:
- 初始化:设置外设及接口,使其在就绪时能向 CPU 发中断请求;准备 ISR(含中断矢量表入口);设置相关状态标志;
- CPU 执行主程序(不等待外设就绪,可并行工作);
- 外设就绪时向 CPU 发中断请求(INTR);
- CPU 响应中断(INTA 中断响应),保护现场,转入 ISR;
- 在 ISR 中完成一次数据传送;
- 如已完成全部传送,则关闭该中断;否则恢复现场、返回主程序继续运行;
- 后续外设再次就绪,可再次触发中断。
优点:CPU 与外设可并行工作,提高系统效率;适合外设速度较慢、请求随机性、响应实时性要求较高、一次传输数据量不大的场合。
6.3.3 DMA 方式
为何引入 DMA:中断方式仍需 CPU 执行 ISR(保护断点、切换上下文)来逐字节传送,对于高速大量数据效率仍低。
DMA 操作:DMA 控制器(DMAC)直接接管总线,外设与存储器之间直接交换数据,无需 CPU 介入。
DMA 操作的三种基本方法:
| 方法 | 含义 | 特点 |
|---|---|---|
| CPU 停机方式 | DMAC 发 HRQ,CPU 让出地址、数据、部分控制总线 | DMAC 控制总线;CPU 暂停 |
| 周期扩展 | 由 DMAC 发出请求给时钟电路,加宽 CPU 时钟周期 | 一次只能传送一个字节 |
| 周期挪用 | 利用 CPU 不访问内存的周期进行 DMA 操作 | 不打断 CPU,CPU 与 DMA 并行 |
DMA 控制器基本功能(6 项):
- 接收外设 DMA 请求,向 CPU 发总线请求 HRQ;
- CPU 响应后(HLDA),DMAC 接管总线控制权;
- 接管总线后向地址总线发送地址信号,并自动修改地址指针;
- 在 DMA 传送期间,发出存储器或 I/O 接口的读/写控制信号;
- 统计传送字节数,判断 DMA 传送是否结束;
- 传送结束时向 CPU 发结束信号,将总线控制权交还给 CPU。
DMA 传送的一般工作过程(以存储器 → 外设为例,10 步):
- 初始化外设接口与 DMAC,设置存储器起始地址、传送字节数等参数;
- 外设就绪 → 接口向 DMAC 发 DMA 请求(DREQ);
- DMAC 向 CPU 发总线请求(HRQ);
- CPU 响应并发总线应答(HLDA),CPU 让出总线;
- DMAC 向外设接口发 DMA 响应(DACK);
- DMAC 把要读取的存储单元地址送到地址线;
- DMAC 发读存储器信号(MEMR);
- 存储器把数据送上数据线;
- DMAC 发 I/O 写信号(IOW),将数据写入 I/O 接口;
- DMAC 自动修改地址、字节计数器,判断是否传送结束;结束时撤销 HRQ,CPU 收回总线。
适用场景:外设速度快、一次传输数据量大(磁盘、网卡、声卡等高速外设)。
6.3.4 I/O 处理机方式
- 为使 CPU 完全摆脱 I/O 管理,引入了 I/O 处理机(IOP) 概念。
- IOP 拥有自己的指令系统,可独立执行程序,承担全部 I/O 操作(如 Intel 8089,配合 8086/8088 使用)。
- IOP 与 CPU 程序并行执行,可独立形成外设所需控制命令与定时信号。
6.4 四种传送方式对比表(必背)
| 对比项 | 程序查询方式 | 程序中断方式 | DMA 方式 | I/O 处理机方式 |
|---|---|---|---|---|
| 数据传送控制者 | CPU | CPU | DMAC | IOP |
| CPU 是否介入 | 完全介入 | 每次传送介入 | 不介入 | 不介入 |
| CPU 工作效率 | 最低(忙等) | 较高(可并行) | 最高 | 最高 |
| 数据传送单位 | 字(节) | 字(节) | 数据块 | 数据块/复杂 I/O |
| 传送速度 | 慢 | 中 | 快 | 快 |
| 适用场景 | 简单低速、外设始终就绪 | 中低速、随机请求 | 高速、大数据量 | 复杂系统、多外设 |
| 硬件代价 | 低(简单接口) | 中(中断控制器) | 高(DMAC) | 最高(IOP) |
| 并行性 | 无(CPU 与外设串行) | 高(CPU 与外设并行) | 高(CPU 仍工作) | 高(CPU/IOP 并行) |
6.5 可编程中断控制器 8259A
6.5.1 8259A 的主要功能
- 每片管理 8 级优先权中断源,通过级联最多管理 64 级 优先权中断源;
- 每级中断可单独屏蔽(通过 IMR);
- 向 CPU 提供可编程的中断类型码(对 8086~Pentium 即中断向量号);
- 有多种工作方式,可通过编程选择;
- 可与 8086~Pentium CPU 直接连接,不需外加硬件电路。
6.5.2 内部结构
- IRR(Interrupt Request Register):保存 8 位中断请求信号;
- ISR(In-Service Register):保存正在被 CPU 处理的中断请求;
- PR(Priority Resolver):优先级分辨器,确定 IRR 中各位优先级,决定是否向 CPU 发 INT;
- IMR(Interrupt Mask Register / OCW1):中断屏蔽寄存器;
- 控制逻辑:发出 INT 与接收 INTA;
- 数据总线缓冲器、读/写逻辑、级联控制(CAS0~CAS2,SP/EN)。
优先级(默认):IR0 最高 → IR7 最低。
响应过程(两个 INTA 负脉冲):
- 第一个 INTA:IRR 锁存失效;ISR 对应位置 1;IRR 中对应位清 0。
- 第二个 INTA:将 ICW2 内容送 D7~D0,CPU 读取作为中断类型码;若 ICW4 的 AEOI = 1,则 ISR 对应位自动清 0。
6.5.3 端口及读写控制
通过 CS、A0、RD、WR 组合区分读/写命令、读/写状态。
| CS | A0 | RD | WR | 功能 | 标志位 |
|---|---|---|---|---|---|
| 0 | 0 | 1 | 0 | 数据总线 → ICW1 | D4 = 1 |
| 0 | 0 | 1 | 0 | 数据总线 → OCW2 | D4D3 = 00 |
| 0 | 0 | 1 | 0 | 数据总线 → OCW3 | D4D3 = 01 |
| 0 | 1 | 1 | 0 | → OCW1 / ICW2 / ICW3 / ICW4 | — |
| 0 | 0 | 0 | 1 | 数据总线 ← IRR | OCW3:RR=1,RIS=0 |
| 0 | 0 | 0 | 1 | 数据总线 ← ISR | OCW3:RR=1,RIS=1 |
| 0 | 0 | 0 | 1 | 数据总线 ← 查询字 | 查询方式 |
| 0 | 1 | 0 | 1 | 数据总线 ← IMR | 直接读 |
A0 = 0 偶地址,A0 = 1 奇地址。
6.5.4 8259A 的工作方式(10 种)
| 序号 | 工作方式 | 含义 |
|---|---|---|
| 1 | 全嵌套方式 | IR0 最高、IR7 最低的固定优先级;ISR 置位期间屏蔽同/低级;如 IF 开放可响应高级中断 |
| 2 | 循环优先级方式 | 自动循环:被服务的中断源自动降为最低;特殊循环:由编程指定某一中断源为最低 |
| 3 | 特殊屏蔽方式 | 仅屏蔽本级,其他全部开放(无论高低级均可中断) |
| 4 | 程序查询方式 | CPU 发查询命令(OCW3 中 P=1),8259A 回送查询字(I + W2W1W0) |
| 5 | 中断结束方式 | 自动 EOI(AEOI)或命令 EOI(普通 EOI / 特殊 SEOI) |
| 6 | 读 8259A 状态 | 读 IRR(OCW3:RR=1,RIS=0)/ ISR(RR=1,RIS=1)/ IMR(直接读) |
| 7 | 中断请求触发方式 | 边沿触发(LTIM=0)/ 电平触发(LTIM=1) |
| 8 | 缓冲器方式 | 8259A 与数据总线之间加驱动器;SP/EN 作输出 |
| 9 | 特殊的全嵌套方式 | 用于多片级连,从片的高级中断仍可申请中断 |
| 10 | 多片级联方式 | 1 个主片至多带 8 个从片,扩展至 64 级 |
多片级联要点:
- 主/从由 ICW4 的 M/S 位(缓冲方式下)或 SP/EN 引脚(非缓冲方式下 SP=1 主,SP=0 从)确定;
- 主片的 CAS0~CAS2 输出被响应的从片编号,从片接收并比对。
6.5.5 8259A 的编程(命令字体系)
8259A 的命令字分两部分:
| 类别 | 数量 | 是否按序写入 | 用途 |
|---|---|---|---|
| 初始化命令字 ICW1~ICW4 | 4 | 按固定顺序写入 | 系统复位后设置基本工作方式 |
| 操作命令字 OCW1~OCW3 | 3 | 不按顺序 | 工作中可随时写入,动态控制 |
(1)初始化命令字 ICW1(A0=0,写入偶地址)
| D7 D6 D5 | D4=1 | D3=LTIM | D2 | D1=SNGL | D0=IC4 |
|---|---|---|---|---|---|
| × × × | 1(标志) | 1=电平触发 / 0=边沿触发 | × | 1=单片 / 0=级联 | 1=需 ICW4 / 0=不要 |
写入 ICW1 后 8259A 自动复位:清 IMR、ISR;IRR 状态可读;优先级排队为 IR0 最高 IR7 最低;特殊屏蔽方式复位;自动 EOI 循环方式复位。
(2)ICW2(A0=1) — 设置中断类型码
- 高 5 位(T7~T3)由程序设定;
- 低 3 位(D2
D0)由 8259A 按引入中断请求的引脚 IR0IR7 三位编码自动填入。
举例(课件原例):
- ICW2 = 80H = 1000 0000B → IR3 的类型码 = 1000 0011B = 83H;
- 若要使 IR5 的类型码 = 95H,则 ICW2 = 90H(90H~97H 均可)。
(3)ICW3(A0=1)
- 主片格式:S0
S7 表示 IR0IR7 是否接从片(1=接,0=未接); - 从片格式:高 5 位为 0,低 3 位 ID2~ID0 表示该从片连到主片的哪条 IRx 上。
(4)ICW4(A0=1)
| D7 D6 D5 | D4 | D3 | D2 | D1 | D0 |
|---|---|---|---|---|---|
| 0 0 0 | SFNM | BUF | M/S | AEOI | μPM |
| 位 | 含义 |
|---|---|
| SFNM | 1=特殊全嵌套 / 0=全嵌套 |
| BUF | 1=缓冲方式 / 0=非缓冲 |
| M/S | 缓冲方式下:1=主片 / 0=从片 |
| AEOI | 1=自动 EOI / 0=正常 EOI |
| μPM | 1=8086~Pentium / 0=MCS-80/85 |
(5)OCW1(A0=1) — 屏蔽字 M7M0 对应 IR7IR0(1=屏蔽,0=允许)。
(6)OCW2(A0=0) — 控制中断循环与结束命令,含 R、SL、EOI、L2~L0 等位。组合实现:
- 正常 EOI(001 00000)+ L2-L0;
- 特殊 EOI(011 + L2L1L0);
- 自动 EOI(010 + L2L1L0 自动循环下);
- 设置特殊循环最低优先级(110 + L2L1L0)等。
(7)OCW3(A0=0) — 设置查询方式、特殊屏蔽方式、寄存器读取方式(RR/RIS 用于读 IRR/ISR,P 用于查询命令)。
ICW 写入顺序(图 6.5.3):
- 写 ICW1(设置是否级联、触发方式、是否使用 ICW4);
- 写 ICW2(设置中断类型码高 5 位);
- 若 ICW1 中 SNGL=0(级联方式)→ 写 ICW3(主片/从片分别写入);
- 若 ICW1 中 IC4=1 → 写 ICW4(特殊全嵌套/缓冲方式/自动结束/CPU 类型)。
6.6 DMA 控制器 8237A
6.6.1 8237A 主要功能
- 每片有 4 个独立 DMA 通道;
- 每个通道的 DMA 请求可分别编程允许/禁止;
- 优先级两种:固定优先级(DREQ0 最高,DREQ3 最低)、循环优先级;
- 支持 3 种传送类型:DMA 读、DMA 写、DMA 校验;
- 可编程改变 DMA 读/写周期;
- 4 种工作方式:单字节传送、数据块传送、请求传送、级联方式;
- 多片级联可扩展通道数(主片 4 通道 + 从片扩展);
- DMA 结束方式两种:①字节计数器减 1 由 0 变 FFFFH;②外界输入 EOP 负脉冲强制结束;
- DMA 启动方式两种:①外设 DREQ;②软件编程内部启动。
6.6.2 内部组成
- 缓冲器组(A3
A0、A7A4、D7~D0); - 时序和控制逻辑(含 EOP、RESET、CS、READY、CLOCK、AEN、ADSTB、MEMR、MEMW、IOR、IOW);
- 优先权编码逻辑(DREQ0
3、DACK03、HRQ、HLDA); - 寄存器组:基地址寄存器、当前地址寄存器(各 16 位)、基字节计数器、当前字节计数器(各 16 位)、方式寄存器、命令寄存器、屏蔽寄存器、请求寄存器、状态寄存器、暂存寄存器;
- 命令控制逻辑、先/后触发器(控制 8 位/16 位数据总线复用)。
6.6.3 端口地址分配(表 6.6.1 摘要)
每个通道占 2 个端口地址:A3A0 的低 2 位选通道(第 0 通道对应 0000/0001,依此类推),低 3 位选寄存器(基地址/当前地址 vs 基字节数/当前字节数)。高 4 位(A7A4)由地址总线驱动。表后部为公共寄存器:命令、状态、请求、屏蔽、方式、暂存、清先/后触发器、复位、四位屏蔽字等。
6.6.4 8237A 工作方式(6 类)
(1) 主从模态
- 主态方式:DMAC 作为总线主控者(如同 CPU),可对外设/存储器读写;
- 从态方式:CPU 是总线主控者,DMAC 同普通 I/O 接口(被 CPU 通过端口读写)。
(2) 4 种传送方式
| 方式 | 含义 |
|---|---|
| 单字节传送 | 每次只传 1 个字节后释放总线,下一字节再 HRQ 重新申请 |
| 数据块传送 | 一次 DMA 请求完成整个数据块的全部传送,结束自动交还总线(TC 或 EOP 终止) |
| 请求传送 | 类似数据块,但每传 1 个字节检测 DREQ:DREQ 无效停止,有效继续 |
| 级联方式 | 用于连接多个 8237A 扩展通道;从片 HRQ、HLDA → 主片某通道的 DREQ、DACK |
(3) 3 种传送类型
- DMA 读:MEMR + IOW,把存储器数据读入 I/O 设备;
- DMA 写:IOR + MEMW,把 I/O 设备数据写入存储器;
- DMA 校验:伪传输,地址仍产生但 MEMR/IOW/MEMW/IOR 全无效。
(4) 优先级编码
- 固定优先级:DREQ0 最高,DREQ3 最低;
- 循环优先级:被响应的通道降为最低,其下一级升为最高;
- 8237A 不支持嵌套:一个通道请求被响应后,其它 3 个通道请求被禁止,优先级排队只在 DMA 响应前有效。
(5) 自动初始化方式
- 通道完成数据块传送并产生 EOP(TC 或外部)时,自动把基地址/基字节数的内容装入当前地址/当前字节计数器,使通道恢复初值,准备下一次 DMA。
(6) 存储器到存储器传送
- 占用通道 0、1;0 通道作源(地址),1 通道作目的(地址与计数);
- 0 通道用软件 DREQ 启动。
二、考点总结
高频考点
- 【高频】I/O 端口两种编址方式对比(独立 vs 统一) —— 必考选择题/简答题
- 【高频】四种数据传送方式对比(程序查询 / 中断 / DMA / IOP) —— 选择题必考
- 【高频】中断传送与 DMA 传送的区别:是否介入、传送单位、适用场合、硬件代价
- 【高频】8259A:单片 8 级中断;级联可扩展至 64 级(1 主 + 8 从);初始化命令字 ICW1~ICW4(按固定顺序写入);操作命令字 OCW1~OCW3(随时写入)
- 【高频】8237A:单片 4 通道;级联可扩展;4 种传送方式;3 种传送类型;2 种优先级
- 【高频】程序查询传送流程(无条件 / 条件输入 / 条件输出) —— 简答题
其他常考点
- 接口与端口的区别:接口是整体,端口是接口内可寻址的寄存器
- 接口的 4 大功能:地址译码、数据缓冲锁存、电平与格式转换、协调控制
- DMA 控制器基本功能(6 条):掌握送地址、计数、判断结束等
- DMA 传送一般过程(10 步):以存储器→外设为例,DREQ/HRQ/HLDA/DACK/MEMR/IOW 信号流程
- 8259A 内部结构 4 大件:IRR、ISR、PR、控制逻辑(+IMR、级联)
- 8259A 的两个 INTA 负脉冲 完成动作:置 ISR、清 IRR、送 ICW2 内容
- 8259A 10 种工作方式 中需重点掌握的:全嵌套、特殊屏蔽、循环优先级、查询方式、中断结束、自动 EOI、级联
- 8259A ICW2 中断类型码:高 5 位程序设定,低 3 位由 IRx 自动填入(IR0
IR7 → 000111) - 8237A 工作方式 6 大类:主从模态、传送方式(单字节/数据块/请求/级联)、传送类型(读/写/校验)、优先级、自动初始化、存储器到存储器
- CPU 三种 DMA 操作方法:CPU 停机、周期扩展、周期挪用
常见题型
-
选择 / 填空题:
- 四种传送方式对比(哪些 CPU 不介入、谁控制总线、传送单位、适用场景)
- 8259A 单片多少级、级联最多多少级
- 8237A 单片多少通道、级联方式如何连接
- 8259A 初始化命令字的个数与写入顺序
- OCW1 中断屏蔽字中 0/1 的含义
- ICW2 中断类型码的高/低 3 位的来源
- DMA 控制器三种操作方法的区别
- 8237A 的 DREQ0~DREQ3 优先级高低(固定优先级时)
- 程序查询方式中状态触发器 D0 位 0/1 的意义
-
简答题 / 问答题:
- 简述 DMA 传送过程(外设 → 存储器 或 存储器 → 外设)
- 简述中断传送过程(请求 → 响应 → ISR → 返回)
- 简述 8259A 初始化的命令字顺序
- 比较独立编址与统一编址的优缺点
- 8259A 两个 INTA 负脉冲期间各完成什么动作
- 8237A 单字节/数据块/请求三种传送方式的区别
- 8259A 全嵌套方式与特殊屏蔽方式的区别
- 解释查询输入/输出过程并画出流程
-
分析 / 设计题:
- 给定外设(速度、数据量、响应要求),选择合适的传送方式并给出理由
- 给定 8259A 级联结构,判断主/从、识别 ICW3 写法
- 给定中断类型码基准值,求某 IRx 的类型码(或反求 ICW2)
- 写一个简单查询输入或查询输出的程序段
- 设计 8259A 初始化程序段(含 ICW1、ICW2、ICW3、ICW4 与 OCW1)
- 设计一个 DMA 传送过程,给出初始化参数(基地址、字节数)
答题套路提示
- 回答 8259A/DMA 类简答题时,先点明控制器特性(级数/通道数),再列出命令字/工作方式,最后给出步骤或程序框架。
- 回答传送方式对比时,使用表格 4 列(控制方式、CPU 介入、传送单位、适用场景),简洁明了。
- 涉及“过程”类简答时,按时间顺序列出步骤,并在关键信号处标出(如 DREQ、HRQ、HLDA、INTA 等)。