[发明专利]一种DMA数据传输方法及系统有效
申请号: | 201110439326.0 | 申请日: | 2011-12-23 |
公开(公告)号: | CN103176932B | 公开(公告)日: | 2017-04-26 |
发明(设计)人: | 唐新东 | 申请(专利权)人: | 锐迪科(重庆)微电子科技有限公司 |
主分类号: | G06F13/32 | 分类号: | G06F13/32 |
代理公司: | 北京集佳知识产权代理有限公司11227 | 代理人: | 逯长明 |
地址: | 401336 重庆市*** | 国省代码: | 重庆;85 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 dma 数据传输 方法 系统 | ||
技术领域
本发明涉及数据处理领域,尤其涉及一种DMA数据传输方法及系统。
背景技术
在芯片(特别是基带芯片)的工作过程中,通常需要将工作流程及各种状态信息,重要数据等通过数据传输接口送出,以便于确认工作流程运行是否正确及在异常情况发生后,进行问题的定位。
一般来说,传输数据的输出通常包括如下两步:
第一步:将传输数据存储在存储器(memory)中开辟的一块缓冲区(BUFFER)中缓存;
第二步:将BUFFER中的信息通过数据传输接口输出。
BUFFER通常采用回环BUFFER的方式实现,即这个BUFFER包括一个起始地址和一个结束地址,向此BUFFER写入数据时,当数据写到BUFFER的结束地址时,会将接下来的数据写到起始地址开始的memory中,即实现地址回环,从BUFFER中读取数据也需要做相似的回环处理。
将BUFFER中的数据通过数据传输接口输出通常采用直接内存访问(DMA,Direct Memory Access)模块完成,该模块具体完成启动DMA,DMA传输,DMA完成传输的中断处理等过程。
启动DMA的操作包括配置传输的读数据地址、写数据地址、数据类型、传输数据总长度以及每次响应请求传输的突发(Burst)数据长度等信息,之后启动DMA对应的通道开始传输。在DMA传输过程中,DMA模块每次接收到子模块的请求信号时,就向子模块发送响应信号,并进行burst长度数据的传输,照此进行工作,直到DMA完成传输总长度的数据传输。
DMA完成总数据长度的传输后,产生中断给中央处理器(CPU,CenterProcessing Unit),由CPU执行DMA中断处理函数中的操作,如设置状态、标志,以及启动下一次传输等操作。
将BUFFER中的传输数据通过数据传输接口进行传输时,通常可以包括如下情况:
情况1:当CPU向BUFFER中写入传输数据之后,判断DMA的运行状态,如果DMA没有运行,则根据数据量的大小启动DMA或者由CPU自己完成传输数据从BUFFER搬运到数据传输控制模块的操作,若DMA此时正在进行搬运操作,则不启动DMA;
情况2:当DMA完成传输之后,在DMA的完成中断处理函数中,CPU对BUFFER中的传输数据的数据量进行判断,根据判断结果决定是否再次启动DMA或者由CPU自己搬运传输数据。
现有技术的这种数据传输方式中,CPU需要完成多项任务,除了向BUFFER写入数据之外,还要完成配置、启动DMA,进行DMA中断处理以及对BUFFER的读、写指针进行维护等工作,大量的任务严重的增加了CPU的负担,降低了数据传输的速度,从而影响了系统整体性能。
发明内容
本发明实施例提供了一种DMA数据传输方法及系统,能够降低CPU负担,提高数据传输的速度,从而提高系统整体性能。
本发明实施例提供的DMA数据传输方法包括:
CPU将需要传输的数据写入传输数据缓冲区BUFFER进行缓存;
当传输数据写入完成后,对数据传输控制模块中的写指针进行更新;
数据传输控制模块对所述BUFFER中的传输数据通过DMA方式进行传输。
可选地,所述方法还包括:
启动周期性定时器,所述周期性定时器的定时间隔为预置数值;
所述数据传输控制模块对所述BUFFER中的传输数据通过DMA方式进行传输包括:
当所述周期性定时器超时之后,所述数据传输控制模块接收所述周期性定时器产生的中断;
所述数据传输控制模块根据读指针和写指针之间的差值,判断BUFFER中的有效数据长度;
所述数据传输控制模块根据判断结果进行相应的处理。
可选地,所述数据传输控制模块根据判断结果进行相应的处理包括:
若所述有效数据长度为0,则所述数据传输控制模块不作处理,所述周期性定时器保持之前的状态;
或,
若所述有效数据长度达到启动直接内存访问DMA传输的门限值N,则停止所述周期性定时器,所述数据传输控制模块配置并启动DMA模块进行所述传输数据的传输,所述N为预置数值;
或,
若所述有效数据长度未达到启动DMA传输的门限值N,但在M次收到所述周期性定时器产生的中断时所查询到的有效数据长度相同,则停止所述周期性定时器,所述数据传输控制模块配置并启动DMA模块进行所述传输数据的传输,所述M、N为预置数值。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于锐迪科(重庆)微电子科技有限公司,未经锐迪科(重庆)微电子科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110439326.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:动态心电图固定皮带
- 下一篇:随机写的方法和转换器