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

2019-03-16 19:11

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

摘 要

直接存储器访问控制器(Direct Memory Access,DMA)是计算机体系结构中的重要组成部分。端口设备和存储器之间的数据传输往往通过DMA进行。DMA控制数据在端口设备和存储器之间进行数据传输可以减轻中央处理器CPU的负担;在高速数据传输中,DMA可以保证数据得到及时处理,避免CPU来不及完成中断处理造成的数据丢失问题。目前,DMA在高速数据传输、慢速设备管理、零散数据收集等方面得到了广泛应用。

本文从DMA技术的提出入手,较为详尽地讲述了DMA的结构以及DMA控制器的基本功能、基本结构及工作原理。深入研究Intel? I/OAT(Intel? I/O Acceleration Technology) DMA 技术,结合Linux 2.6.18源代码中关于I/OAT DMA驱动详细分析其与内核的DMA 引擎的接口关系,并根据公司需求改写相应的驱动代码,给出测试用例,验证I/OAT DMA驱动的一致性和传输性能问题,生成测试报告。

关键词:DMA ;Intel? I/O Acceleration Technology;Linux DMA engine

I

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

Abstract

Direct Memory Access(DMA)controller is a component of the computer system.DMA usually is used to exchange data between I/O equipments and memory or between memory and memory, which alleviates the burden of CPU. During the high-speed data transmission,DMA can guarantee the data to be processed in time,thus data loss introduced by CPU’S late response of the interrupt processing can be avoided.At present,DMA is widely used in those fields of high- speed data transmission,slow-speed device management and scattered data collection.

The paper begins with an introduction of DMA, and the describes in details its architecture,functions and operation. Depth study of the Intel ? I/OAT Acceleration Technology DMA technology, and combined with detailed analysis of its interface with the kernel's DMA engine on I/OAT DMA driver in the Linux 2.6.18 source code, then according to the company's needs, rewrite the driver code. At last, the test case is given to verify the consistency of the I/OAT DMA-driven and performance issues, and generate test reports.

Key Words: DMA ; Intel? I/O Acceleration Technology; Linux DMA engine

II

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

目 录

1. 绪论 ..................................................................................................................................... 1 1.1 1.2 1.3

I/O技术的讨论 ............................................................................................................ 1 为何要采用DMA技术 ............................................................................................... 2 论文的大体安排 .......................................................................................................... 4

2. DMA概述 .......................................................................................................................... 5 2.1

DMA结构分析 ............................................................................................................ 5

2.1.1 单总线I/O分离的DMA结构 ............................................................................... 5 2.1.2 单总线、I/O集成的DMA结构 ............................................................................ 5 2.1.3 I/O总线的DMA结构 ............................................................................................. 6 2.2 2.3

DMA传输方式的分析 ................................................................................................ 6 DMA对数据操作的类型 ............................................................................................ 7

2.3.1 数据传送 ................................................................................................................... 7 2.3.3数据传送与检索并举 ................................................................................................ 8 2.3.4数据校验 .................................................................................................................... 8 2.4 2.5

DMA控制器 ................................................................................................................ 8 DMA数据操作流程 .................................................................................................. 10

3. I/OAT DMA体系架构 .................................................................................................... 12 3.1 3.2

I/OAT技术的介绍 ..................................................................................................... 12 I/OAT DMA软件接口 ............................................................................................... 13

3.2.1 I/OAT DMA 介绍 ................................................................................................. 13 3.2.2 I/OAT DMA链式描述符的介绍 .......................................................................... 14 3.2.3 I/OAT DMA通道的操作 ...................................................................................... 16 3.2.4 I/OAT DMA 数据操作类型 ................................................................................. 17 3.2.5 I/OAT DMA 工作流程 ......................................................................................... 18 3.3

LINUX环境下I/OAT DMA驱动 .............................................................................. 20

3.3.1 DMA engine架构 ................................................................................................... 20

III

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

3.3.2 DMA engine数据传输流程 ................................................................................... 21 3.3.3 DMA engine与I/OAT DMA的接口 .................................................................... 24 4. I/OAT DMA测试 ............................................................................................................ 27 4.1

测试环境的概述 ........................................................................................................ 27

4.1.1 测试平台 .................................................................................................................. 27 4.1.2 测试目的 .................................................................................................................. 27 4.2 4.3 4.4

测试方法 .................................................................................................................... 27 测试结果与缺陷 ........................................................................................................ 30 测试结论 .................................................................................................................... 31

5. 结束语 ............................................................................................................................... 33 参考文献 .................................................................................................................................. 34 致 谢 .................................................................................................................................. 35

IV

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

1. 绪论

1.1

I/O技术的讨论

微处理器系统的I/O体系结构是系统对外部世界的接口。这种体系结构的定义为:提供一种控制计算机与外部交互的系统化方式,并向操作系统提供必要的信息,以使其能够有效的管理I/O动作。I/O模块有如下两大功能:一是通过系统总线与处理器和存储器连接:二是通过专用的数据总线与一个或多个外设连接。可以说数据在处理器、存储器、外设之间的相互传输是是计算机系统最重要也是最繁忙的工作之一,特别是在用于数据处理的系统中,如何提高大量数据频繁交换的效率对于整个微处理器系统的性能至关重要。

在计算机的发展过程中,I/O技术也有较大的发展和变化,目前被业界所公认的,处理器、存储器和外设之间进行数据交换的方式主要有以下三种方式:轮询检测(Polling)方式;中断驱动的方式(Interrupt-Driven I/O)、直接存储器存取DMA方式(Direct Memory Access)。3种I/O技术的操作方式如图1.1所示。

向IO模块发读命令CPU -> IO向IO模块发读命令CPU -> IO可以做其它事向IO模块发读命令CPU -> DMACPU可以做其它事读IO模块状态IO -> CPU读IO模块状态产生中断IO -> CPU读DMA模块状态中断DMA ->CPU检查状态出错检查状态出错下一条指令由IO模块读取字IO -> CPU由IO模块读取字IO -> CPU向存储器字入字IO ->MEM向存储器字入字IO ->MEM否结束?否结束?是下一条指令(a) Polling 是下一条指令(b) Interrupt(c) DMA 图1.1 三种I/O技术

轮询方式:CPU执行一段由用户编写的轮询检测程序,通过对I/O设备的状态检测判断,

根据I/O设备的硬件状态,发送读或写命令,进而完成相关的数据传输工作。

1


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

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

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

马上注册会员

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