直接内存访问方式
考试要求: 掌握     
知识路径:  > 嵌入式系统软件基础知识  > 嵌入式操作系统基础知识  > 设备管理  > 设备管理方式(设备文件、设备控制、设备无关性、中断处理、缓冲技术、假脱机技术等)  > I/O控制方式


 
       直接内存访问(Direct Memory Access,DMA)方式的基本思路是:让DMA控制器来代替CPU,完成输入/输出设备与内存之间的数据传送,从而释放CPU时间,去运行其他的任务。
       仍以打印字符为例,如下图所示。在DMA控制方式下,用户程序所做的事情是完全相同的,即把字符串复制一个缓冲区buffer当中,然后调用系统打印函数。在打印函数当中,首先也是把buffer当中的字符串复制到系统内核的缓冲区当中。然后对DMA控制器进行编程,设置它的各个寄存器的内容,包括内存起始地址、需要打印的字符个数、数据传输的方向等。之后,打印函数就完成了任务,因此就调用系统的调度程序,选择另一个就绪任务去运行,而当前的这个任务就会被阻塞起来。接下来,当CPU正在执行这个新任务的同时,DMA控制器会与设备控制器进行交互,把需要打印的字符,逐个地送到打印机控制器当中。在所有的字符都打印完之后,就向CPU发出一个中断,表明这一次的I/O操作已经全部完成了。因此,在中断处理程序里面,已经没有什么实质性的工作。先是向中断控制器发出一个确认信号,然后唤醒刚才被阻塞的任务。
       
       直接内存访问的例子
       采用DMA控制方式的最大优点是减少了中断的次数。原本每打印一个字符,都要产生一次中断,而现在当所有的字符都打印完后,才会产生一个中断,从而减少了中断处理的开销。
 

更多复习资料
请登录电脑版软考在线 www.rkpass.cn

京B2-20210865 | 京ICP备2020040059号-5
京公网安备 11010502032051号 | 营业执照
 Copyright ©2000-2025 All Rights Reserved
软考在线版权所有