1、DMA控制方式的引入
中断方式是以字节(字)为单位进行I/O的, 每完成一个字节(字) CPU要处理一次中断, 这种方法用于块设备效率极低, 为了进一步减少CPU对I/O的干预, 提高CPU与I/O设备的并行度引入DMA控制方式。
DMA方式的特点为:
数据传送的基本单位是数据块。
数据是直接在设备─内存之间传送的。
仅在传送一个或多个数据块的开始和结束时才需要CPU对I/O的干预, 传送工作本身是由DMA控制器完成的。
中断方式是以字节(字)为单位进行I/O的, 每完成一个字节(字) CPU要处理一次中断, 这种方法用于块设备效率极低, 为了进一步减少CPU对I/O的干预, 提高CPU与I/O设备的并行度引入DMA控制方式。
DMA方式的特点为:
数据传送的基本单位是数据块。
数据是直接在设备─内存之间传送的。
仅在传送一个或多个数据块的开始和结束时才需要CPU对I/O的干预, 传送工作本身是由DMA控制器完成的。
2、DMA控制器的组成
(1)主机与DMA控制器的接口
数据寄存器(DR) 内存地址寄存器(MAR)
数据计数器(DC) 命令/状态寄存器(CR)
(2)DMA控制器与块设备的接口
(3)I/O控制逻辑
(1)主机与DMA控制器的接口
数据寄存器(DR) 内存地址寄存器(MAR)
数据计数器(DC) 命令/状态寄存器(CR)
(2)DMA控制器与块设备的接口
(3)I/O控制逻辑
![](http://userimage2.360doc.com/11/0617/82/3184326_20110617828190758.jpg)
3、DMA方式从磁盘读入数据块的工作流程:
![](http://userimage2.360doc.com/11/0617/83/3184326_20110617832440524.jpg)
4、DMA工作原理——窃取总线控制权
(1)存放输入数据的内存起始地址、要传送的字节数送入
DMA控制器的内存地址寄存器和传送字节计数器;
中断允许位和启动位置成1, 启动设备。
DMA控制器的内存地址寄存器和传送字节计数器;
中断允许位和启动位置成1, 启动设备。
(2) 发出传输要求进程进入等待状态,其他进程占据CPU。
(3)DMA控制器不断窃取总线控制权, 数据不断写入内存。
(4)传送完毕, 发出中断信号。
(5)CPU接到中断信号转入中断处理程序处理。
(6)中断处理结束, CPU返回原进程或切换到新的进程。
5、 DMA方式与中断的主要区别
(1)中断方式的数据传送到存储器是由CPU控制完成的。
而DMA方式的数据传送到存储器则不经过CPU , 由DMA控制器直接完成。
(2)中断方式在设备控制器的数据缓冲寄存区满后, 发中断请求, CPU进行中断处理将缓冲区数据传送到内存。
而DMA方式则是在所要求传送的数据块全部传送到内存结束时, 发中断请求, CPU进行中断处理。
大大减少了CPU进行中断处理的次数和时间。
(1)中断方式的数据传送到存储器是由CPU控制完成的。
而DMA方式的数据传送到存储器则不经过CPU , 由DMA控制器直接完成。
(2)中断方式在设备控制器的数据缓冲寄存区满后, 发中断请求, CPU进行中断处理将缓冲区数据传送到内存。
而DMA方式则是在所要求传送的数据块全部传送到内存结束时, 发中断请求, CPU进行中断处理。
大大减少了CPU进行中断处理的次数和时间。