Document
拖动滑块完成拼图
个人中心

预订订单
服务订单
发布专利 发布成果 人才入驻 发布商标 发布需求

在线咨询

联系我们

龙图腾公众号
首页 专利交易 IP管家助手 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索
当前位置 : 首页 > 专利喜报 > 成都凌中盈智科技服务有限公司;成都华瑞数鑫科技有限公司王伟获国家专利权

成都凌中盈智科技服务有限公司;成都华瑞数鑫科技有限公司王伟获国家专利权

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

龙图腾网获悉成都凌中盈智科技服务有限公司;成都华瑞数鑫科技有限公司申请的专利一种DMA高效数据传输的容错方法及其系统获国家发明授权专利权,本发明授权专利权由国家知识产权局授予,授权公告号为:CN120086058B

龙图腾网通过国家知识产权局官网在2025-09-02发布的发明授权授权公告中获悉:该发明授权的专利申请号/专利号为:202510567728.0,技术领域涉及:G06F11/10;该发明授权一种DMA高效数据传输的容错方法及其系统是由王伟;车岩磊设计研发完成,并于2025-04-30向国家知识产权局提交的专利申请。

一种DMA高效数据传输的容错方法及其系统在说明书摘要公布了:本发明涉及DMA数据传输领域,是一种DMA高效数据传输的容错方法及其系统,解决现有技术中从DMA缓存读取到错误数据的概率的问题。本发明连接主机设备驱动接口、DMA;所述DMA设置于外设驱动中,包括用于缓存IO数据的IO池和硬件队列,所述DMA获取IO数据,对数据进行校验;本发明通过DMA环形缓冲和CPU均衡等方式提高DMA传输效率、可用性、可靠性和数据一致性;对下发外设的数据进行改造强化IO数据ID;对外设通过DMA返回的数据进行正确性校验,降低从DMA缓存读取到错误数据的概率。

本发明授权一种DMA高效数据传输的容错方法及其系统在权利要求书中公布了:1.一种DMA高效数据传输的容错方法,其特征在于:包括以下: 步骤1:初始化系统:初始化IO池和硬件队列,根据CPU数量和外设接受的最大IO数量M设置硬件队列数量N,其中IO池的长度小于M,N小于CPU数量;初始化每个硬件队列的输入缓存队列IQ和输出缓存队列OQ,输入缓存队列IQ和输出缓存队列OQ队列长度X,X=MIN(MN,32),初始化输入缓存队列IQ和输出缓存队列OQ队列的PI和CI;其中PI指生产者索引,代表当前应该写入数据的环形队列的位置,CI指消费者索引,代表消费者当前应该读取数据的环形队列的位置; 步骤2:IO池接收IO数据:IO数据来自主机驱动设备驱动接口,如果IO池有空闲空间,则保存IO数据;如果IO池没有空闲空间,则返回队列忙的信息; 步骤3:硬件队列从IO池中获取IO数据作为IO元数据,并将IO池的数据索引、ID、以及该IO元数据保存至输入缓存队列IQ,并修改PI;其中,IO元数据表示IO数据的属性,所述属性包括读写操作类型、IO数据对应的DMA地址和IO数据大小;所述IO池的数据索引指IO数据在IO池中的存储位置索引,通过该存储位置索引可以在IO池中快速找到该IO数据;所述ID表示IO数据的唯一标识符,用于唯一标识特定的IO数据,IO数据中自带的数据ID; 步骤4:外设处理IO元数据:外设根据PI的变化,接收IO元数据,根据IO元数据,获取IO元数据并进行处理;处理完成后,修改输入缓存队列IQ的CI,将处理结果写入IO池队列和输出缓存队列OQ,修改输出缓存队列OQ的PI; 步骤5:输出缓存队列OQ:输出缓存队列OQ收到PI变化后,对外设发来的IO响应消息进行处理,并访问输出缓存队列OQ中CI指向的缓存,该缓存中保存有IO池索引,根据IO池索引找到对应的IO数据,对比获取处理后的IO数据和IO元数据,对数据进行校验,即数据队列验证、IO数据引用验证和数据ID验证;如果校验数据为正确数据,那么进入步骤6;数据校验失败,则进行步骤7; 步骤6:修改输出缓存队列OQ的CI,完成本次IO数据处理,释放IO数据在IO池和硬件队列中的空间,并且将处理后的IO数据返回给设备驱动接口; 步骤7:设置内存屏障:在IO元数据响应函数验证OP队列中CI指向数据校验错误,则设置内存屏障来维护DMA缓存数据和CPU缓存数据的数据一致性,重新读取DMA缓存数据,并进行数据校验;如果校验数据为正确数据,那么进入步骤6;如果校验失败,则进入步骤8; 步骤8:清除CPU缓存:重新读取DMA缓存数据,并进行数据校验;如果校验数据为正确数据,那么进入步骤6;如果仍然没有读取到正确数据,那么在硬件队列中记录该输出缓存队列OQ未达数据的CI值,该IO元数据归类为未达数据,进入步骤9; 步骤9:修改输出缓存队列OQ的CI:通知外设完成本次处理,但不通知设备驱动接口本次处理失败;设置该未达数据的超时处理函数,该超时处理函数为异步处理,即异步等待设定的时间后,通知设备驱动接口该未达数据超时;等待数据超时; 步骤10:输出缓存队列OQ继续等待新数据:在超时时间内有等待该输出缓存队列OQ是否有新数据到来;如果没有新数据,那么通知设备驱动接口,该IO数据处理超时;如果有新数据到来,那么进入步骤11; 步骤11:输出缓存队列OQ从外设收到新的数据:即输出缓存队列OQ的PI发生变化,那么检查硬件队列中记录是否有未达数据的记录,如果没有未达数据,那么进入步骤5;如果有未达数据,那么进入步骤12; 步骤12:判断未达数据的CI指向输出缓存队列OQ位置:该位置的数据是否已经被更新,如果没有更新或数据检查不正确,那么通知设备驱动接口,该IO数据处理超时,在硬件队列中删除未达数据的记录,完成未达数据的处理;如果有数据更新并且数据校验正确,那么进入步骤13; 步骤13:在未达数据的CI位置访问数据,完成本次IO数据处理,并且将IO数据处理结果返回给设备驱动接口;不管数据是否正确,硬件队列删除未达数据的记录;恢复输出缓存队列OQ中新的数据处理,即:进入步骤5。

如需购买、转让、实施、许可或投资类似专利技术,可联系本专利的申请人或专利权人成都凌中盈智科技服务有限公司;成都华瑞数鑫科技有限公司,其通讯地址为:610000 四川省成都市金牛区西安南路69号1栋6层3号;或者联系龙图腾网官方客服,联系龙图腾网可拨打电话0551-65771310或微信搜索“龙图腾网”。

以上内容由AI智能生成
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。