首页 理论教育 采用DMA方式提升数据传输速度和降低CPU负担

采用DMA方式提升数据传输速度和降低CPU负担

时间:2023-10-31 理论教育 版权反馈
【摘要】:DMA方式传送数据是由DMA控制器来提供源地址和目的地址、修改地址、控制结束及发出控制信号的。显然,采用DMA方式,数据传送的速度显著提高,而且CPU的负担也明显减轻了,同时也缩短了传送的响应时间。3)DMAC将被访问存储单元的地址送到地址总线上。所以,在数据块很短的情况下就不宜采用DMA方式了。3)扫描操作,对CRT屏幕送数据可采用DMA方式。当要采集的数据量很大,并且数据是以密集突发的形式到达时,采用DMA是唯一的方法。

采用DMA方式提升数据传输速度和降低CPU负担

利用中断方式进行数据传送可以大大提高CPU的工作效率。但是,在中断方式下仍然是通过CPU执行程序来实现数据传送的,每进行一次传送,CPU都必须执行一遍中断处理程序,而每进入一次中断处理程序,CPU都要保护断点和标志寄存器。此外,在中断处理程序中通常有一系列保护寄存器和恢复寄存器的指令。显然,这些指令与数据传送没有直接关系。但在执行时,这些指令都使CPU花费了不少时间。还有,对于8086以上的微处理器,取指令和执行指令分别由总线接口部件和执行部件完成,它们并行工作。当中断或从中断返回时,预取的指令全部作废,执行部件要等待总线接口部件重新装入新的指令后才开始执行。上述几方面的因素造成在中断方式下的传输效率仍然不够理想。

如果I/O设备的数据传输率较高,那么CPU和这样的外围设备进行数据传输时,即使尽量压缩程序查询方式和中断方式中的非数据传输时间,也不能满足要求。这是因为在这种方式下还存在另外一个影响传输速度的原因,即它们都是按字节或字进行传输的。为了解决这个问题就需要改变传输方式,这就是块传送方式,即DMA方式。

在DMA方式下,外围设备利用专门的接口电路直接和存储器进行数据传送,并不经过CPU。这样,进行传输就不必进行保护现场之类的一系列额外操作了。数据传输的速度基本上取决于外围设备和存储器的速度。DMA方式传送数据是由DMA控制器来提供源地址和目的地址、修改地址、控制结束及发出控制信号的。显然,采用DMA方式,数据传送的速度显著提高,而且CPU的负担也明显减轻了,同时也缩短了传送的响应时间。

DMA传送的基本过程如下:

1)外围设备(或CPU利用指令)向DMA控制器发出DMA传送请求。

2)DMAC向CPU发总线请求,要求CPU交出总线的管理权和使用权,并在接到CPU的总线响应信号后接管系统总线的管理和使用权,从而变为系统的主设备。

3)DMAC将被访问存储单元的地址送到地址总线上。

4)向存储器和进行DMA传送的外围设备发出读写命令,则存储器和外围设备通过数据总线进行数据传送。(www.xing528.com)

5)若DMA传送己完成,则DMAC撤销对CPU的总线请求,交回系统总线的管理权和使用权,回到从设备状态。

DMA方式一般适用于成组传送的场合,每次成组传送之前都要对DMAC进行初始化,一般地,CPU要对DMAC写入二三十个字节的控制字。因此,DMA的初始化建立比程序控制数据传送的初始化要花费更多的时间。所以,在数据块很短的情况下就不宜采用DMA方式了。DMA的应用场合主要有以下几种。

1)硬盘和软盘读取。可以使用DMAC作磁盘存储介质与半导体主存储器之间传送数据的接口。

2)多处理机和多任务块传送。对于多处理机结构,通过DMAC来控制数据传送可以较容易地实现专用存储器和公用存储器之间的数据传送。对多任务、页式调度和任务调度都要传送大量的数据。因此,采用DMA方式可以提高数据传输的速度。

3)扫描操作,对CRT屏幕送数据可采用DMA方式。

4)快速数据采集。当要采集的数据量很大,并且数据是以密集突发的形式到达时,采用DMA是唯一的方法。只有它才能满足响应时间和数据传输率的要求。

驱动程序中访问外围设备需要做到申请和释放通道。数据的传送就是通过通道实现的,通道资源也是很珍贵的,使用时注意及时释放。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈