[发明专利]一种多设备兼容的DMA数据传输引擎设计方法有效
申请号: | 202110524492.4 | 申请日: | 2021-05-13 |
公开(公告)号: | CN113127391B | 公开(公告)日: | 2023-03-14 |
发明(设计)人: | 郑欣 | 申请(专利权)人: | 西安微电子技术研究所 |
主分类号: | G06F13/28 | 分类号: | G06F13/28;G06F9/30 |
代理公司: | 西安通大专利代理有限责任公司 61200 | 代理人: | 房鑫 |
地址: | 710065 陕西*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 设备 兼容 dma 数据传输 引擎 设计 方法 | ||
一种多设备兼容的DMA数据传输引擎设计方法,包括:SGDMA/BDMA兼容性设计:BDMA传输机制设计,SGDMA传输机制设计以及通过SGDMA中的DMA‑DESC设计用于和BDMA兼容;DMA通道注册的设计;中断设计:BDMA的中断设计以及SGDMA的中断设计;中断和轮询可配置的设计。本发明将DMA功能单独进行设计,DMA上层的设备共同使用兼容的DMA层进行数据传输,在DMA资源紧张的时候还可以进行DMA通道的共享。通过对SGDMA中的描述符的保留与扩展设计,兼容了BDMA的软件设计;通过中断和轮询可配置并且和结合配置的方式实现了高带宽传输需求的DMA传输性能。
技术领域
本发明属于通信领域,具体涉及一种多设备兼容的DMA数据传输引擎设计方法。
背景技术
DMA引擎管理软件适用于DMA上层设备共享DMA平台资源的情况,具有多设备、多功能、数据传输功能复杂、数据传输带宽高等特征。目前国产化领域没有单独针对DMA层进行功能设计,都是结合特定的设备,特定的功能,将DMA和设备的设计融为一体。
目前国产的DMA硬件的设计都是和特定的设备设计结合在一起,在软件设计方面也是在特定的设备的功能上实现DMA的传输,在DMA硬件设计相同的平台上,上层不同设备共享DMA平台资源时,DMA层代码无法复用,软件的设计成本和周期较高。
目前网络控制器驱动的设计,在DMA数据传输方面使用流式DMA进行数据的传输。数据发送时,数据源为协议栈,驱动在将来自协议栈的数据发送完成后,需要负责对内存资源进行释放;数据接收时,数据源为驱动,驱动在将来自设备的数据进行DMA传输前,需要负责为待接收的数据进行内存资源的准备,并将接收到的数据内存上传协议栈。目前类似FC控制器驱动的设备,在DMA数据传输方面使用一致性DMA进行数据的传输。数据不论是在发送或者接收状态,DMA内存均由用户进行申请和释放,用户态和内核态需要共享页表映射资源。在DMA设计方面,上述两种DMA及内存资源的使用情景在设计上存在很大的差异,需要提供不同的接口分别设计。目前的软件设计方案中没有将网络内存资源和其他用户态内存资源的申请和释放的软件接口进行统一。而SGDMA能够实现多个BDMA链表的一次性传输,可极大利用DMA资源高效进行DMA传输,在软件设计上需要对每个BDMA设计对应的描述符(DESC)并形成链表的结构,以便硬件设备能够将分散的BDMA进行一次性聚集传输;对于BDMA模式则相对比较简单,在传输时只需获取高速硬件数据的来源、目的、长度等信息,硬件即可完成一次DMA传输。在软件设计上,设备根据硬件平台的特征,要么实现BDMA的传输,要么实现SGDMA的传输,目前没有将其进行整合的设计。
发明内容
本发明的目的在于针对上述现有技术中软件驱动架构设计复杂以及数据传输性能不佳的问题,提供一种多设备兼容的DMA数据传输引擎设计方法,能够简化上层软件的开发流程,简化软件架构的设计复杂性,极大程度复用DMA设计的代码,极大程度提高DMA数据传输的性能,在DMA资源紧缺的情况下,软件的设计最大程度的保持不变。
为了实现上述目的,本发明有如下的技术方案:
一种多设备兼容的DMA数据传输引擎设计方法,包括以下步骤:
-SGDMA/BDMA兼容性设计;
BDMA传输机制设计;
SGDMA传输机制设计;
通过SGDMA中的DMA-DESC设计用于和BDMA兼容;
-DMA通道注册的设计;
-中断设计;
BDMA的中断设计;
SGDMA的中断设计;
-中断和轮询可配置的设计。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安微电子技术研究所,未经西安微电子技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110524492.4/2.html,转载请声明来源钻瓜专利网。