直接内存访问控制器、异构设备、内存访问方法及介质与流程

文档序号:34078482发布日期:2023-05-06 23:01阅读:56来源:国知局
直接内存访问控制器、异构设备、内存访问方法及介质与流程

本发明涉及内存访问,特别涉及一种直接内存访问控制器、异构设备、内存访问方法及计算机存储介质。


背景技术:

1、单根i/o虚拟化(singlerooti/ovirtualization,sr-iov)是输入输出(inputoutput,i/o)虚拟化标准,有利于提升虚拟云计算平台的性能,其核心思想是:在设备支持的前提下,将一个设备划分为一个物理功能单元(physicalfunction,pf)和多个虚拟功能单元(virtualfunction,vf),每个虚拟功能单元都可以作为一个轻量级的i/o设备供虚拟机使用,这样一个设备就可以同时被分配给多个虚拟机,解决了因设备数量限制给虚拟化系统带来的可扩展性差的问题。直接内存访问(directmemoryaccess,dma)模式下,数据传送由直接内存访问控制器来完成,因此占用极少的cpu资源。目前实现dma的方式是有两种,链式dma与块dma方式,链式dma方式比块dma方式更灵活,效率更高。

2、相关技术中,链式直接内存访问控制器中将每个vf在接收与发送接口进行拆分,每个vf均有独立的dma控制器,但是,每个vf均有独立的dma控制器的方案会造成大量硬件资源浪费,单个直接内存访问控制器无法支持单根i/o虚拟化。


技术实现思路

1、有鉴于此,本发明的目的在于提供一种直接内存访问控制器、装置、设备及介质,能够支持单根i/o虚拟化,节省芯片资源。其具体方案如下:

2、第一方面,本技术公开了一种直接内存访问控制器,包括多个读描述符管理模块、多个写描述符管理模块、读数据搬移器和写数据搬移器;其中,一个所述读描述符管理模块对应一个物理功能的管理通道或者一个虚拟功能的管理通道,一个所述写描述符管理模块对应一个物理功能的管理通道或者一个虚拟功能的管理通道;

3、所述读描述符管理模块用于将获取的描述符寄存器中内容转换为读描述符,以及将读描述符数据转换为读描述符;

4、所述写描述符管理模块用于将写描述符数据转换为写描述符;

5、所述读数据搬移器用于根据所述读描述符向上位机发送读请求,以及接收所述读请求对应的第一数据并进行数据处理;

6、所述写数据搬移器用于根据所述写描述符读取对应的第二数据,并基于所述第二数据生成写请求发送给上位机。

7、可选的,所述读描述符管理模块包括寄存器转描述符单元和第一数据转描述符单元;

8、所述寄存器转描述符单元用于获取读描述符寄存器和写描述符寄存器,并将寄存器中内容转换为符合握手协议的读描述符;

9、所述第一数据转描述符单元用于获取读描述符数据,并将所述读描述符数据转换为符合握手协议的读描述符。

10、可选的,所述写描述符管理模块还包括第一合并单元和第一先进先出存储器;

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、所述读控制单元用于根据所述写描述符从外部存储器读取相应的第二数据,并将所述第二数据发送给所述写请求发送单元;

37、所述写请求发送单元用于基于所述读控制单元发送的所述第二数据生成事务层数据包,并将该事务层数据包发送给所述发送控制单元;

38、所述发送控制单元用于当接收到的事务层数据包的数据量满足总线协议发送条件时,生成写请求发送给上位机。

39、可选的,所述写数据搬移器还包括与所述读控制单元相连的第三先进先出存储器、与所述第三先进先出存储器和所述写请求发送单元相连的数据缓存单元;

40、所述第三先进先出存储器用于存储所述读控制单元发送的所述第二数据并转发给所述数据缓存单元;

41、所述数据缓存单元用于以双字为单位缓存所述第三先进先出存储器发送的所述第二数据,并在缓存数据量满足所述写请求发送单元发送条件时,将缓存的数据发送给所述写请求发送单元。

42、可选的,所述读数据搬移器包括读运算控制单元、拆分单元、读请求发送单元、带数据的完成包存储单元、带数据的完成包接收单元、写控制单元;

43、所述读运算控制单元用于接收读描述符并将所述读描述符拆分为读目的地址和读数据长度;

44、所述拆分单元用于生成三份读操作信息,每份读操作信息包含所述读目的地址和所述读数据长度,并将一份读操作信息发送给所述读请求发送单元,将两份读操作信息发送给所述写控制单元;

45、所述读请求发送单元用于将所述读目的地址和所述读数据长度进行组包得到读请求,并将所述读请求发送给上位机;

46、所述带数据的完成包接收单元用于通过请求者完成接口接收上位机发送的带数据的完成包,并对所述带数据的完成包进行数据预处理,然后将预处理后的带数据的完成包转发给所述带数据的完成包接收单元;

47、所述带数据的完成包存储单元用于存储所述将预处理后的带数据的完成包,并将所述将预处理后的带数据的完成包转发给所述写控制单元;

48、所述写控制单元用于根据所述读操作信息对外部存储器进行写地址和写长度控制,以及根据所述读操作信息和所述带数据的完成包生成对应的读完成信息或读描述符数据或写描述符数据,并将所述读完成信息或所述读描述符数据发送给所述读描述符管理模块,将所述写描述符数据发送给所述写描述符管理模块。

49、可选的,所述读数据搬移器还包括标签管理单元;

50、所述标签管理单元用于接收所述带数据的完成包存储单元在每接收到1个带数据的完成包时写入的标签,以及向所述读请求发送单元发送标签以便添加至所述读请求。

51、可选的,所述带数据的完成包存储单元被划分为预设数量的缓存空间,以便利用所述缓存空间将乱序接收到的带数据的完成包进行顺序缓存。

52、第二方面,本技术公开了一种异构设备,包括前述的直接内存访问控制器。

53、第三方面,本技术公开了一种直接内存访问系统,包括上位机和前述的直接内存访问控制器,所述上位机与所述直接内存访问控制器通过高速串行计算机扩展总线标准接口相连

54、第四方面,本技术公开了一种服务器,与前述的直接内存访问控制器相连,用于与所述直接内存访问控制器进行数据交互。

55、第五方面,本技术公开了一种直接内存访问方法,应用于前述的直接内存访问控制器,所述方法包括:

56、通过所述读描述符管理模块将获取的描述符寄存器中内容转换为读描述符,并将读描述符数据转换为读描述符;

57、通过所述写描述符管理模块将写描述符数据转换为写描述符;

58、通过所述读数据搬移器根据所述读描述符向上位机发送读请求,并接收所述读请求对应的第一数据并进行数据处理;

59、通过所述写数据搬移器根据所述写描述符读取对应的第二数据,并基于所述第二数据生成写请求发送给上位机。

60、第六方面,本技术公开了一种计算机可读存储介质,用于存储计算机程序;其中计算机程序被处理器执行时实现前述的直接内存访问方法。

61、本技术中,直接内存访问控制器包括多个读描述符管理模块、多个写描述符管理模块、读数据搬移器和写数据搬移器;其中,一个所述读描述符管理模块对应一个物理功能的管理通道或者一个虚拟功能的管理通道,一个所述写描述符管理模块对应一个物理功能的管理通道或者一个虚拟功能的管理通道;所述读描述符管理模块用于将获取的描述符寄存器中内容转换为读描述符,以及将读描述符数据转换为读描述符;所述写描述符管理模块用于将写描述符数据转换为写描述符;所述读数据搬移器用于根据所述读描述符向上位机发送读请求,以及接收所述读请求对应的第一数据并进行数据处理;所述写数据搬移器用于根据所述写描述符读取对应的第二数据,并基于所述第二数据生成写请求发送给上位机。可见,通过为每个物理功能的管理通道和每个虚拟功能的管理通道配置独立的读描述符管理模块和写描述符管理模块,实现适用于单根i/o虚拟化的链式直接内存访问控制器;即每个物理功能与虚拟功能的描述符管理模块均是独立的,对于读数据搬移器和写数据搬移器为共用,由此支持单根i/o虚拟化,且可任意扩展物理功能/虚拟功能的数量,共用数据搬移器,节省芯片资源。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1