1、基本概念
名称 | 概念 |
---|---|
直接内存访问(DMA)方式 | 是一种完全由硬件(称为 DMA 控制器)执行、在 I/O 设备和内存之间直接交换批量信息的工作方式,包括 DMA 请求、DMA 响应、DMA 传输、DMA 结束处理等步骤。在 DMA 传输过程中,DMA 控制器从 CPU 接管总线控制权,向内存发出地址和控制信号、修改地址、计数、以中断方式向 CPU 报告 DMA 传输结束,数据交换不经过 CPU,而直接在内存和 I/O 设备之间进行 。 |
通道 | 是一个特殊功能的处理器(基于微处理器 CPU、单片机实现的),它有自己的指令和程序(通道指令、通道程序)专门负责数据输入/输出的传输控制,而 CPU 将“传输控制”的功能下放给通道后只负责“数据处理”功能。CPU 和通道分时使用系统总线和存储器,实现了 CPU 内部运算与 I/O 设备的并行工作。 |
外围处理机方式 PPU | 基本上是独立于主机工作,它有自己的指令系统,只是侧重于 I/O 管理。结构上接近一台计算机、或者就是一台通用计算机,也称为 I/O 管理前置机。 |
2、程序查询方式处理过程

3、程序中断方式处理过程
- ①一条指令完整执行完以后,查询是否有中断请求、是否有 DMA 请求等;
- ②如果有中断请求,则判断是否响应该中断(优先级等);
- ③关中断(中断屏蔽置位):单级中断系统中,一个中断被响应,必须该中断处理结束以后才能响应其它中断请求;多级中断系统中,允许中断嵌套,即允许高优先级中断低优先级的服务子程序;
- ④找出中断源:确定是哪个设备的中断请求;
- ⑤保存 PC:即保存返回地址,硬件实现自动推入堆栈保存;
- ⑥形成中断服务子程序的入口地址:常采用向量中断法;
- ⑦保存 CPU 现场:标志寄存器、通用寄存器内容送入堆栈保存;
- ⑧设备服务:CPU 与 I/O 设备之间交换一个机器字的数据;
- ⑨恢复 CPU 现场:从堆栈中把原来的状态寄存器、通用寄存器内容拿出来;
- ⑩开中断:本次中断请求处理完成,允许响应其它中断请求;
- ⑪中断返回:从堆栈中把返回地址拿出来,送 PC。


4、基本 DMA 控制器的逻辑结构

1、字计数器
- CPU 初始化 DMA 控制器时,写入数据块长度初值。
- 初值通常以补码(2n-x)形式表示,如字计数器 8 位,数据块长度 125,则初值 256-125=131。
- 每传送一个字,字计数器加 1 。当计数器溢出时,表示数据块传送结束,溢出信号通过中断机构, 向 CPU 申请中断。
2、内存地址计数器
- CPU 初始化 DMA 控制器时,写入内存数据块起始地址。
- 每交换一个字数据后,地址计数器自动增量“加 1”。