System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 数据直接存储访问DMA方法及电子设备技术_技高网

数据直接存储访问DMA方法及电子设备技术

技术编号:40446935 阅读:5 留言:0更新日期:2024-02-22 23:07
本发明专利技术实施例提供的数据直接存储访问DMA方法及电子设备,CPU确定需要令缓存模块获取新的描述符后,将描述符保存至内存的第一缓冲区,并更新保存在内存的第二缓冲区的尾计数值。缓存模块从第二缓冲区中获取尾计数值;根据尾计数值确定操作数量,将操作数量的描述符从第一缓冲区转存至缓存模块中的第三缓冲区;利用第三缓冲区中的描述符进行数据DMA处理。通过对描述符同步处理摒弃中断方式,改为CPU主动将描述符保存至内存中,其余工作交由缓存模块处理,缓存模块主动从内存中获取描述符及相应的计数值进行数据DMA处理,从而不需要CPU处理中断,降低CPU对DMA任务的处理量,从而提高数据DMA效率。

【技术实现步骤摘要】

本专利技术涉及电子信息,尤指一种数据直接存储访问dma方法及电子设备。


技术介绍

1、直接内存访问(direct memory access,dma)是一些计算机总线架构提供的功能,它能使数据从附加设备(如磁盘驱动器等结构)直接发送到计算机主板的内存上。

2、目前一些dma技术主要采用利用中央处理器(central processing unit,cpu)的中断方式来实现。但是,采用中断机制实现dma的效率较低,无法满足大数据量的dma处理需求。


技术实现思路

1、本专利技术实施例提供一种数据直接存储访问dma方法及电子设备,用以提高电子设备对数据进行dma处理的效率。

2、第一方面,本专利技术实施例还提供了一种数据直接内存访问dma方法,应用于缓存模块,包括:

3、确定满足获取更新条件时,从内存中的第二缓冲区中获取尾计数值;

4、根据所述尾计数值确定从所述内存中的第一缓冲区中获取描述符的操作数量,将所述操作数量的描述符转存至所述缓存模块中的第三缓冲区;

5、利用所述第三缓冲区中的描述符进行数据dma处理。

6、作为一种可选的实施方式,所述利用所述第三缓冲区中的描述符进行数据dma处理,具体包括:

7、接收第一总线接口发送的上行网络报文;

8、对所述第三缓冲区中的任一目标描述符,将一个接收的上行网络报文保存至所述目标描述符指示的存储地址;

9、其中,所述第一总线接口与所述缓存模块相连接。

10、作为一种可选的实施方式,所述利用所述第三缓冲区中的描述符进行数据dma处理,具体包括:

11、对所述第三缓冲区中的任一目标描述符,从所述目标描述符指示的存储地址中获取下行网络报文并发送给对应的第二总线接口;

12、其中,所述第二总线接口与所述缓存模块相连接。

13、更进一步可选地,所述方法具体包括:

14、接收所述第一总线接口发送的上行网络报文;

15、确定满足获取更新条件时,对所述第一缓冲区中的任一上行第一队列,从所述第二缓冲区中获取所述上行第一队列对应的尾计数值;

16、对任一上行第一队列,根据所述上行第一队列的尾计数值,确定从所述上行第一队列中获取描述符的操作数量,将所述操作数量的描述符转存至所述第三缓冲区;

17、对接收到的任一上行网络报文,根据所述上行网络报文的队列信息确定所述上行网络报文对应的目标上行第一队列,将所述上行网络报文保存至所述第三缓冲区中保存的所述目标上行第一队列的目标描述符指示的存储地址;

18、其中,所述上行网络报文的队列信息根据所述上行网络报文的会话信息确定。

19、更进一步可选地,所述方法具体包括:

20、确定满足获取更新条件时,对所述第一缓冲区中的任一下行第一队列,从所述第二缓冲区中获取所述下行第一队列对应的尾计数值;

21、对任一下行第一队列,根据所述下行第一队列的尾计数值,确定从所述下行第一队列中获取描述符的操作数量,将所述操作数量的描述符转存至所述第三缓冲区;

22、对所述第三缓冲区中的任一目标描述符,从所述目标描述符指示的存储地址中读取下行网络报文,并根据所述下行网络报文的队列信息将所述下行网络报文发送给对应的所述第二总线接口;

23、其中,所述下行网络报文的队列信息根据所述下行网络报文的会话信息确定。

24、可选地,所述方法还包括:

25、从所述内存中的第二缓冲区中获取尾计数值时,还从所述第二缓冲区中获取与所述尾计数值对应的首计数值;

26、所述根据所述尾计数值确定从所述内存中的第一缓冲区中获取描述符的操作数量,将所述操作数量的描述符转存至所述缓存模块中的第三缓冲区,具体包括:

27、根据所述尾计数值和与所述尾计数值对应的所述首计数值确定从所述内存中的第一缓冲区中获取描述符的操作数量,将所述操作数量的描述符转存至所述缓存模块中的第三缓冲区;

28、根据所述首计数值和所述尾计数值确定从所述内存中的第一缓冲区中获取描述符的操作数量,将所述操作数量的描述符转存至所述缓存模块中的第三缓冲区之后,所述方法还包括:

29、根据所述操作数量更新所述第二缓冲区中的与所述操作数量对应的首计数值。

30、可选地,所述根据所述尾计数值和与所述尾计数值对应的所述首计数值确定从所述内存中的第一缓冲区中获取描述符的操作数量,具体包括:

31、对任一尾计数值,确定与所述尾计数值对应的所述首计数值与所述尾计数值的差值,以及所述第三缓冲区的可用存储空间对应的可用描述符数量;

32、将所述差值与所述可用描述符数量中的较小值确定为从所述内存中的第一缓冲区中获取描述符的操作数量。

33、可选地,所述方法具体包括:

34、确定满足获取更新条件时,对所述第一缓冲区中的任一第一队列,从内存中的第二缓冲区中获取所述第一队列对应的首计数值和所述第一队列对应的尾计数值;

35、对任一第一队列,确定所述首计数值与所述尾计数值的差值,以及所述第三缓冲区的可用存储空间对应的可用描述符数量;将所述差值与所述可用描述符数量中的较小值确定为所述第一队列对应的操作数量,从所述第一队列中将所述操作数量的描述符转存至所述缓存模块中的第三缓冲区;并根据所述操作数量更新所述第二缓冲区中所述第一队列对应的首计数值;

36、利用所述第三缓冲区中的描述符进行数据dma处理;

37、其中,(1)若所述第一队列为所述上行第一队列:

38、所述方法还包括:

39、接收所述第一总线接口发送的上行网络报文;

40、所述利用所述第三缓冲区中的描述符进行数据dma处理,具体包括:

41、对接收到的任一上行网络报文,根据所述上行网络报文的队列信息确定所述上行网络报文对应的目标上行第一队列,将所述上行网络报文保存至所述第三缓冲区中保存的所述目标上行第一队列的目标描述符指示的存储地址;

42、(2)若所述第一队列为所述下行第一队列:

43、所述利用所述第三缓冲区中的描述符进行数据dma处理,具体包括:

44、对所述第三缓冲区中的任一目标描述符,从所述目标描述符指示的存储地址中读取下行网络报文,并根据所述下行网络报文的队列信息将所述下行网络报文发送给对应的所述第二总线接口;

45、网络报文的队列信息根据所述网络报文的会话信息确定,所述网络报文为所述上行网络报文或所述下行网络报文。

46、可选地,所述对接收到的任一上行网络报文,根据所述上行网络报文的队列信息确定所述上行网络报文对应的目标上行第一队列,将所述上行网络报文保存至所述第三缓冲区中保存的所述目标上行第一队列的目标描述符指示的存储地址,具体包括:

47、对已接收的上行网络报文根据本文档来自技高网...

【技术保护点】

1.一种数据直接内存访问DMA方法,其特征在于,应用于缓存模块,包括:

2.如权利要求1所述的方法,其特征在于,所述利用所述第三缓冲区中的描述符进行数据DMA处理,具体包括:

3.如权利要求1所述的方法,其特征在于,所述利用所述第三缓冲区中的描述符进行数据DMA处理,具体包括:

4.如权利要求2所述的方法,其特征在于,所述方法具体包括:

5.如权利要求3所述的方法,其特征在于,所述方法具体包括:

6.如权利要求1-5任一项所述的方法,其特征在于,所述方法还包括:

7.如权利要求6所述的方法,其特征在于,所述根据所述尾计数值和与所述尾计数值对应的所述首计数值确定从所述内存中的第一缓冲区中获取描述符的操作数量,具体包括:

8.如权利要求7所述的方法,其特征在于,所述方法具体包括:

9.如权利要求4所述的方法,其特征在于,所述对接收到的任一上行网络报文,根据所述上行网络报文的队列信息确定所述上行网络报文对应的目标上行第一队列,将所述上行网络报文保存至所述第三缓冲区中保存的所述目标上行第一队列的目标描述符指示的存储地址,具体包括:

10.如权利要求5所述的方法,其特征在于,所述对所述第三缓冲区中的任一目标描述符,从所述目标描述符指示的存储地址中读取下行网络报文,并根据所述下行网络报文的队列信息将所述下行网络报文发送给对应的所述第二总线接口,具体包括:

11.如权利要求9或10所述的方法,其特征在于,所述性能资源包括传输数据量。

12.如权利要求4或5所述的方法,其特征在于,所述会话信息包括如下至少一种:

13.如权利要求12所述的方法,其特征在于,所述队列信息包括所述会话编号和所述接口索引。

14.如权利要求2所述的方法,其特征在于,所述对所述第三缓冲区中的任一目标描述符,将一个接收的上行网络报文保存至所述目标描述符指示的存储地址,具体包括:

15.如权利要求3所述的方法,其特征在于,所述对所述第三缓冲区中的任一目标描述符,从所述目标描述符指示的存储地址中获取下行网络报文并发送给对应的第二总线接口,具体包括:

16.如权利要求1所述的方法,其特征在于,所述第一缓冲区为环形缓冲区,所述第二缓冲区为环形缓冲区。

17.如权利要求1所述的方法,其特征在于,所述第一缓冲区包括上行第一缓冲区和下行第一缓冲区;所述上行第一缓冲区用于存储上行网络报文所对应的描述符,所述下行第一缓冲区用于存储下行网络报文所对应的描述符;所述上行网络报文为从第一总线接口接收到并需要DMA至所述内存中的网络报文,所述下行网络报文为存储于所述内存中并需要DMA发送至对应的第二总线接口的网络报文。

18.一种数据DMA方法,其特征在于,应用于CPU,包括:

19.如权利要求18所述的方法,其特征在于,所述将至少一个描述符保存至内存中的第一缓冲区,并更新保存在所述内存中的第二缓冲区的尾计数值,具体包括:

20.如权利要求18或19所述的方法,其特征在于,所述确定满足导入更新条件时,判断是否需要令缓存模块获取新的描述符,具体包括:

21.如权利要求18所述的方法,其特征在于,所述会话信息包括如下至少一种:

22.如权利要求18所述的方法,其特征在于,所述第一缓冲区为环形缓冲区,所述第二缓冲区为环形缓冲区。

23.如权利要求18所述的方法,其特征在于,所述第一缓冲区包括上行第一缓冲区和下行第一缓冲区;所述上行第一缓冲区用于存储上行网络报文所对应的描述符,所述下行第一缓冲区用于存储下行网络报文所对应的描述符;所述上行网络报文为从第一总线接口接收到并需要DMA至所述内存中的网络报文,所述下行网络报文为存储于所述内存中并需要DMA发送至对应的第二总线接口的网络报文。

24.一种电子设备,其特征在于,包括:CPU、缓存模块、内存、第一存储器、第二存储器;

...

【技术特征摘要】

1.一种数据直接内存访问dma方法,其特征在于,应用于缓存模块,包括:

2.如权利要求1所述的方法,其特征在于,所述利用所述第三缓冲区中的描述符进行数据dma处理,具体包括:

3.如权利要求1所述的方法,其特征在于,所述利用所述第三缓冲区中的描述符进行数据dma处理,具体包括:

4.如权利要求2所述的方法,其特征在于,所述方法具体包括:

5.如权利要求3所述的方法,其特征在于,所述方法具体包括:

6.如权利要求1-5任一项所述的方法,其特征在于,所述方法还包括:

7.如权利要求6所述的方法,其特征在于,所述根据所述尾计数值和与所述尾计数值对应的所述首计数值确定从所述内存中的第一缓冲区中获取描述符的操作数量,具体包括:

8.如权利要求7所述的方法,其特征在于,所述方法具体包括:

9.如权利要求4所述的方法,其特征在于,所述对接收到的任一上行网络报文,根据所述上行网络报文的队列信息确定所述上行网络报文对应的目标上行第一队列,将所述上行网络报文保存至所述第三缓冲区中保存的所述目标上行第一队列的目标描述符指示的存储地址,具体包括:

10.如权利要求5所述的方法,其特征在于,所述对所述第三缓冲区中的任一目标描述符,从所述目标描述符指示的存储地址中读取下行网络报文,并根据所述下行网络报文的队列信息将所述下行网络报文发送给对应的所述第二总线接口,具体包括:

11.如权利要求9或10所述的方法,其特征在于,所述性能资源包括传输数据量。

12.如权利要求4或5所述的方法,其特征在于,所述会话信息包括如下至少一种:

13.如权利要求12所述的方法,其特征在于,所述队列信息包括所述会话编号和所述接口索引。

14.如权利要求2所述的方法,其特征在于,所述对所述第三缓冲区中的任一目标描述符,将一个接收的上行网络报文保存至所述目标描述符指示的存储地址,具体包括...

【专利技术属性】
技术研发人员:张立张雷罗安宸潘添祺周树林梅龙生谢正明
申请(专利权)人:绿盟科技集团股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1