文档介绍:DMA输入输出方式
1
DMA 输入输出方式
DMA是I/O设备与主存储器之间由硬件组成的直接数据通路,用于高速I/O设备与主存之间的成组数据传送。数据传送是在DMA控制器控制下进行的,由DMA控制器给出当前正在传送的数据字的主存地址,并统计传送数据的个数以确定一组数据的传送是否已结束。在主存中要开辟连续地址的专用缓冲器,用来提供或接收传送的数据。在数据传送前和结束后要通过程序或中断方式对缓冲器和DMA控制器进行预处理和后处理。
2
DMA三种工作方式
⒈CPU暂停方式: 主机响应DMA请求后,让出存储总线,直到一组数据传送完毕后DMA控制器才把总线控制权交还给CPU,采用这种工作方式的I/O设备,在其接口中一般设置有存取速度较快的小容量存储器,I/O设备与小容量存储交换数据,小容量存储器与主机交换数据,这样可减少DMA传送占用存储总线的时间,也即减少CPU暂停工作时间。
⒉CPU周期窃取方式: DMA控制器与主存储器之间传送一个数据,占用(窃取)一个CPU周期,即CPU暂停工作一个周期,然后继续执行程序。
⒊直接访问存储器工作方式: 这是标准的DMA工作方式。如传送数据时CPU正好不占用存储总线,则对CPU不产生任何影响。如DMA和CPU同时需要访问存储总线,则DMA的优先级高于CPU。
在DMA传送数据过程中不能占用或破坏CPU硬件资源或工作状态,否则将影响CPU的程序执行。
3
DMA控制器组成Ⅰ
DMA控制器: 它包括多个设备寄存器,中断控制逻辑和DMA控制逻辑。(339页)。
⒈设备寄存器
⑴主存地址寄存器(MAR) —该寄存器初始值为主存缓冲区的首地址,在传送前由程序送入。主存缓冲区地址是连续的。在DMA传送期间,每交换一个字,由硬件逻辑将其自动加1,而成为下一次数据传送的主存地址。
⑵外围设备地址寄存器(ADR) —该寄存器存放I/O设备的设备码,或者表示设备信息存储区的寻址信息,如磁盘数据所在的区号,盘面号和柱面号等。具体内容取决于I/O设备的数据格式和地址字编址方式。
4
DMA控制器组成Ⅱ
⑶字数计数器(WC) —该计数器对传送数据的总字数进行统计,在传送开始前,由程序将要传送的一组数据的字数送入WC,以后每传送一个字(或字节)计数器自动减1,当WC内容为零时表示数据已全部传送完毕。
⑷控制与状态寄存器(CSR) —该寄存器用来存放控制字和状态字。
⑸数据缓冲寄存器(DBR) —该寄存器用来暂存I/O设备与主存传送的数据。通常,DMA与主存是按字传送的,DMA与设备之间可能是按字节或位传送的,因此DMA还可能要包括装配和拆卸字信息的硬件,如数据移位缓冲寄存器、字节计数器等。
各寄存器均有自己的总线地址,它们是主存的指定单元或I/O设备号,CPU可对这些寄存器进行读/写。
5
DMA控制器组成Ⅲ
⒉中断控制逻辑: DMA中断控制逻辑负责申请CPU对DMA进行预处理和后处理。
⒊ DMA控制逻辑: 一般包括设备码选择电路,DMA优先排队电路,产生DMA请求的线路等,在DMA取得总线控制权后控制主存和设备之间的数据传送。
⒋ DMA接口与主机和I/O设备两个方向的数据线、地址线和控制信号线以及有关收发与驱动线路。
6
DMA的数据传送过程
DMA的数据传送过程可分为三个阶段:
DMA传送前预处理
数据传送
传送后处理
7
DMA数据传送过程框图
演示
8
DMA和中断的区别
⑴中断方式是程序切换,需要保护和恢复现场;而DMA方式除了开始和结束时,不占用CPU任何资源。
⑵对中断请求的响应只能发生在每条指令执行完毕时,而对DMA请求的响应可以发生在每个机器周期结束时。
⑶中断传送过程需要CPU的干预,而DMA传送过程不需要CPU的干预,故数据传送速率非常高,适合于高速外设的成组传送。
9
DMA的局限性
在大、中型计算机中,外设配置多,数据传送频繁,如仍采用DMA方式,存在下述问题:
⑴如果为数众多的外设都配置专用的DMA控制器,将大幅度增加硬件,因而提高成本,而且要为解决众多DMA同时访问主存的冲突,使控制复杂化。
⑵采用DMA传送方式的众多外设均直接由CPU管理控制,由CPU进行初始化,势必会占用更多的CPU时间,而且频繁的周期挪用会降低CPU执行程序的效率。
为避免上述弊病,在大、中型计算机系统中采用I/O通道方式进行数据交换。
返回
10