Linux环境下DMA的研究与应用---饶兵兵(2)

2019-03-16 19:11

武汉科技大学本科毕业设计

中断方式:CPU发送一个I/O命令,告诉I/O设备,而后转向其它的工作进程,当I/O

设备接受到来自CPU的I/O命令时,进行相关的硬件准备工作,当硬件条件得到满足时,则I/O设备则生一个外部中断,CPU响应中断,暂停当前工作,转向去处理与I/O设备之间进行交换的数据,数据处理完成继续执行当前工作。

DMA方式:CPU向I/O设备发一组命令,然后I/O设备发起一个DMA中断请求信号

如果CPU响应,则告知DMA控制器,DMA控制器完成一些准备工作之后向CPU发起总线请求信号,如果CPU响应,则DMA控制器接管系统总线,在相关的控制信息作用下,完成相关的数据传输操作,当操作完成,DMA则通过产生一个中断告知CPU操作已经完成。

1.2 为何要采用DMA技术

下面我们通过对前面所提到的3种I/O技术的优缺点的对比,来回答标题所涉及的问题。

我们知道在轮询检测的方式中,CPU本身执行一段轮询检测程序,在这段程序中要检查I/O设备的当前状态(忙/闲)、向I/O设备发送读/写命令、传输数据等。由于I/O设备都是外部设备,它们的操作大多是一些机械动作(如磁盘、打印机),所以其速度远远低于CPU的速度。CPU传输一个字节的数据后,外部设备却需要很长时间才能完成操作。这样,CPU必须在传输下一个字节之前,反复检测外部设备的状态,直到外部设备完成操作(由“忙”态转为“闲”态),才能传输下一个数据。因此CPU在大量时间处于检查和等待状态,整个计算机系统的效率十分低下。而在现在的微机系统中,程序控制I/O方式已经不再使用,但是在一些低级的SOC 中仍然使用。

在中断控制I/O方式(简称为中断方式)中,CPU在向I/O设备发出读写一个数据字的命令之后就可以转入其它的工作,而由I/O部件独立地控制I/O操作,直到操作完成才向CPU发出中断请求。这时CPU暂停当前的工作来响应中断,再次向I/O设备发出读写命令。以后将重复上述过程,直到全部数据字传输完毕。在中断方式过程中去完成其它的工作,这就大大提高了CPU的工作效率。

但是,中断方式仍然占用了CPU相当多的时问。这里因为I/O设备每传输一个数据字节都要向CPU发出一次中断请求,也就要中断一次CPU的当前工作。而且CPU在每次响应中断之后还要作保护现场操作(把当前各个寄存器中的内容送入内存保存起来),再调用中断处理程序,执行完毕中断处理程序之后,还要恢复现场(把刚才送入内存保存的内容再重新装入各个寄存器中),以便继续执行中断之前的工作。这样,在连续传输一个数据块的过程中,CPU要反复多次被中断,并且花费很多时间去处理中断,使得CPU的效率仍然不能得到很好地发挥。整个系统效率的提高仍然受到限制。所以,在传输的数据量很大时,中断方式也不能满足要求。

2

武汉科技大学本科毕业设计

为了提高数据传输的速率,人们提出了直接存储器存取(DMA)的数据传输控制方式,即在一定时间段内,由DMA控制器取代CPU,获得总线控制权,来实现内存与外设或者内存的不同区域之间大量数据的快速传输。DMA最明显的一个特点是它不是用软件而是采用一个专门的硬件电路——DMA控制器(DMAC)来控制内存与外设或是内存与内存之间的数据交流,无须CPU介入,大大提高了CPU的工作效率。

在进行DMA数据传输之前,DMA控制器会向CPU申请总线控制权,CPU如果允许,则将控制权交出,因此,在数据交换时,总线控制权由DMA控制器掌握,在传输结束后,DMA控制器将总线控制权交还给CPU。

I/O deviceSYSTEM BUSCPUDMACSYSTEM BUS MEMORY 图1.2 简单的DMA控制方式

图1.2是一种比较简单的DMA控制方式结构,“I/O设备——CPU——内存”是一条数据传输通路,“I/O设备——DMAC——内存”显然是另外一条相对独立的通道。这样,如果I/O设备与内存之间有大量的数据需要传输时,可在CPU控制下直接进行,也可以选择通过DMA进行。

DMA实质上是一个与CPU相比结构较简单的处理机。上述结构中,由于CPU根本不参与传输操作,因此省去了CPU取指令、取数据、传数据等操作。在数据传输过程中,没有保存现场、恢复现场之类的工作。内存地址的修改、传输字节个数的计数等等,不是由软件来实现的,而是通过硬件线路直接实现的。所以对于高速的I/O设备来说,DMA是最好的选择,当然了也有利于CPU效率的发挥。而且在DMA方式中,数据传输前的准备工作,以及传输结束后的处理工作,均由管理程序承担,而DMA控制器仅负责数据传输的工作。这种硬件结构,改变了程序控制和程序中断以CPU为中心的数据传输方式,从而建立了以内存为中心的数据传输方式,这也是我们为什么要采用

3

武汉科技大学本科毕业设计

DMA技术的原因所在。

1.3 论文的大体安排

本文立足于通用DMA技术,通过对I/O技术发展的阐述和对比分析引出DMA技术的相关概念;而后详细介绍了Intel? I/OAT DMA 驱动与Linux DMA 引擎之间的接口关系,并给出测试用例来验证改写之后的驱动代码,I/OAT DMA工作的一致性和传输性能等问题。本文主要分为五章,具体章节如下:

第一章绪论主要讨论了I/O技术的发展和DMA技术的引出; 第二章从理论上剖析了通用DMA结构的相关概念和名词;

第三章主要从Intel? I/OAT 技术的介绍、Linux环境下DMA engine、I/OAT DMA驱

动的介绍三块内容来介绍DMA相关方面的知识体系;

第四章主要给出测试用例,验证DMA工作时的数据一致性和传输性能等问题; 第五章对前面章节做了一个小小的总结,对DMA技术的应用的一个展望。

4

武汉科技大学本科毕业设计

2. DMA概述

2.1 DMA结构分析

DMA结构可用多种方法配置,适当的结构可以更好的实现性能的优化。下面是几种常见的DMA结构.其它较为复杂的DMA结构可以看作是这几种简单结构的组合。

2.1.1 单总线I/O分离的DMA结构

MEMORYSYSTEM BUSCPUDMAIOIO 图2.1单总线I/O分离的DMA结构

如图2.1所示,所有模块共享一个系统总线。DMA模块作为CPU代理,采用编程I/O,在存储器和I/O模块之间经过DMA交换数据。其优点是:结构简单、配置代价较小、价格便宜;不足在于,这种结构中,存储器和I/O模块之间经过DMA数据交换的路径是:MEMORY (I/O MODULE) ---- SYSTEM BUS ----DMA ----SYSTEMBUS ----I/O(MEMORY),可以看出传送一个字需要消耗两个总线周期,传输效率比较低。尽管如此,在一些数据传输量较小,DMA要求不高的嵌入式中仍有使用。

2.1.2 单总线、I/O集成的DMA结构

MEMORYSYSTEM BUSCPUDMAIODMAIO图2.2单总线、I/O集成的DMA结构

IO 如图2.2所示是单总线、I/O集成的DMA结构,通过集成DMA和I/O功能,所需总线周期数可以削减。在DMA模块和一个或多个I/O模块间不是通过系统总线连接,而是另有一条路径。这样,DMA逻辑实质上成为了某一个或某几个I/O模块的一部分,用以控制一个或几个I/O模块的分离模块。这种结构的优点在于,DMA逻辑集成为I/O模块的一部分,存储器和I/O模块之间经DMA数据交换路径简化为,

MEMORY(I/O)----SYSTEMBUS ---I/O(MEMORY) ,传送一个字节只需要一个总线周期,

5

武汉科技大学本科毕业设计

节省了总线周期。

2.1.3 I/O总线的DMA结构

MEMORYSYSTEM BUSCPUDMAIO BUSIOIO图2.3 I/O总线的DMA结构

IO 如图2.3所示是I/O总线的DMA结构,这种结构将图2.2中I/O模块和DMA模块的连接改为I/O总线,使集成DMA逻辑的概念向前迈进了一步。I/O总线DMA结构的优点是,通过I/O总线连接I/O外设与DMA模块连接,I/O外设与DMA控制器都可以做成与总线的标准接口,满足了嵌入式微处理器结构可扩展的要求。

综上所述,以上三种结构具有各自的特点,适用于不同的场合:单总线I/O分离的DMA结构简单,配置代价较小,价格便宜,适合于功能相对简单的微处理器;单总线、I/O集成的DMA结构虽然同为单总线结构,但I/O外设通过DMA模块和总线连接,传输效率高;I/O总线的DMA结构除了继承了传输效率高的特点外,采用了扩展的双总线结构,适用于I/O外设较多的微处理器。

2.2 DMA传输方式的分析

直接控制I/O端口的DMA一般都支持三种数据交换方式:周期挪用方式、请求方式、块传送方式。

周期挪用方式,是指DMA每传输完一个单位的数据后,将撤销总线申请,一个周期后再提出总线申请;如果总线仲裁逻辑许可DMA继续控制总线,由于外部请求依然有效,DMA将接着传输下一个单位的数据;如果因为其它原因总线仲裁逻辑收回DMA的总线控制权,DMA将等到总线控制权有效后才能接着传输下一个单位的数据。在正常情况下,周期挪用方式下在整个DMA传输过程中外部请求保持有效,总线申请很快变为有效。于是在DMA控制器接收到新的应答之后,下一个数据的DMA传输即刻开始。这样,在周期挪用方式下,DMA控制器周而复始地进行“总线请求——总线应答——总线传输——总线释放”的循环,直到指定的数据全部传完。相应地,DMA控制器的地

6


Linux环境下DMA的研究与应用---饶兵兵(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2017-2018中小学教师素质提升计划范文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: