7.1 I/O 系统概述

I/O 系统由 I/O 软件和 I/O 硬件组成。I/O 硬件包括:外部设备、I/O 接口、I/O 总线。I/O 接口是主机与外设之间的交接界面,完成数据缓冲、电平转换、数据格式转换、地址译码、控制定时等。

I/O 端口编址方式

I/O 控制方式CPU 介入程度数据传送单位效率适用场景
程序查询全程字/字节最低简单、低速设备
程序中断启动+中断时介入字/字节中速、随机设备
DMA仅启停时介入数据块高速大批量设备

7.2 程序查询方式

CPU 不断读取设备状态口,查询设备是否就绪。就绪则进行数据传送,否则继续轮询。

7.3 程序中断方式

中断
CPU 暂停现行程序,转去处理紧急事件(中断服务),处理完后再返回原程序继续执行的过程。

中断处理过程

多重中断(中断嵌套)

允许优先级更高的中断打断当前中断服务。在保护现场后、中断服务前开中断;恢复现场前再次关中断。开中断的时机决定了能否嵌套。

关键:保护现场和恢复现场阶段必须关中断,否则断点/现场可能被破坏。开中断应在保护现场之后、中断服务之前。

中断优先级与判优

典型优先级:硬件故障 > 时钟中断 > 程序性错误 > 外部中断 > 输入输出中断。

7.4 DMA 方式

DMA (Direct Memory Access)
直接存储器存取。在 DMA 控制器控制下,外设与主存之间直接进行数据交换,不经过 CPU,用于高速大批量数据传送。

DMA 工作过程

DMA 与中断对比

对比项中断方式DMA 方式
CPU 介入每传送一个字介入一次仅开始和结束介入
数据传送由 CPU 执行指令完成由 DMAC 硬件完成
响应时间指令执行末尾响应总线周期结束即可响应(更快)
传送单位字/字节数据块
适用场景中速设备高速设备
优先级高(DMA 优先于中断)

DMA 传送方式

7.5 I/O 接口

I/O 接口
主机与外设之间的缓冲、转换部件,含数据端口、状态端口、控制端口三类寄存器。