RDMA网络中的虚拟物理地址转换系统

未命名 10-18 阅读:314 评论:0

rdma网络中的虚拟物理地址转换系统
技术领域
1.本发明属于网络技术领域,具体涉及一种rdma网络中的虚拟物理地址转换系统。


背景技术:

2.rdma(remote direct memory access)网络是数据中心常用的网络类型,具有低延时、高带宽的优点。rdma网卡通常通过pcie总线与主机服务器连接,网卡内部使用asic或fpga实现rdma网络协议栈。在rdma传输模式中,数据直接从发送端的内存传输到接收端的内存,与传统的tcp/ip软件协议栈相比,减少了大量内存拷贝和上下文切换。
3.虚拟地址是当代操作系统和计算机架构中的重要概念,常用的操作系统如windows、linux等为每个进程分配独立的虚拟内存空间,不但将进程的内存进行了隔离,防止内存访问越界,而且将多个物理上不连续的内存片段联系起来形成一片连续的虚拟地址空间,方便程序访问。cpu内部使用内存管理单元管理虚拟地址和物理地址的映射关系。
4.在rdma网络中,使用内存虚拟地址、长度和密钥等来描述数据传输请求,网络协议栈需要解析rdma请求并进行虚拟地址到物理地址的转换,最终使用物理地址发起对本地主机内存的dma访问。rdma网络协议栈进行虚拟物理地址转换的方法和效率对rdma网卡的传输延时有很大影响。使用网卡驱动程序和主机cpu内部的内存管理单元进行虚拟物理地址转换的方法会增加rdma请求的响应延时;使用网卡内部fpga资源和存储资源进行虚拟物理地址转换的技术可以降低响应延时,如何充分利用rdma网卡逻辑和存储资源,在兼顾虚拟物理地址管理灵活性的同时,采用优化的查询算法以达到降低响应延时的目的,是目前亟待解决的技术问题。


技术实现要素:

5.本发明提供了一种rdma网络中的虚拟物理地址转换系统解决上述提到的技术问题,具体采用如下的技术方案:
6.一种rdma网络中的虚拟物理地址转换系统,包含:地址映射管理软件和地址映射查询逻辑模块;
7.所述地址映射管理软件设有软件存储单元,所述地址映射查询逻辑模块设有硬件存储单元;
8.所述地址映射管理软件将应用程序请求注册的虚拟地址空间映射到物理地址空间,并使用内存注册表结构和二分跳表结构保存对注册的虚拟内存的描述,同时将生成内存注册表和二分跳表存入所述软件存储单元和传输至所述硬件存储单元;
9.所述地址映射查询逻辑模块响应rdma传输请求,通过查询所述硬件存储单元中的内存注册表和二分跳表,将rdma传输请求中虚拟地址转换为物理地址。
10.进一步地,所述地址映射管理软件包含:
11.虚拟物理地址映射单元,用于将应用程序请求注册的虚拟地址空间映射到物理地址空间,得到一个或多个物理内存片段;
12.二分跳表生成单元,用于使用一个二分跳表结构保存物理内存片段的物理起始地址、长度以及对应的虚拟起始地址生成二分跳表,将生成的二分跳表保存到所述软件存储单元;
13.注册表生成单元,用于为每一个注册内存空间分配唯一的访问密钥,使用一个内存注册表结构保存对注册内存的描述生成内存注册表,将生成的内存注册表保存到所述软件存储单元;
14.同步存储单元,用于在每一次内存注册结束之前,将新增的内存注册表和二分跳表传输到所述硬件存储单元。
15.进一步地,所述地址映射管理软件还包含:
16.虚拟物理地址转换单元,用于在所述地址映射查询逻辑模块查询失效时,所述地址映射管理软件作为备选通过所述虚拟物理地址转换单元将rdma传输请求中的虚拟地址转换为物理地址。
17.进一步地,内存注册表是所述地址映射管理软件管理的一个数组,在系统初始化时分配该数组,每个数组元素为一个内存注册表项,内存注册表项包含注册的虚拟内存地址、长度、密钥、二分跳表的指针和二分跳表的层高,其中二分跳表的指针指向表头节点位置,是表头节点在数组中的索引序号;
18.访问密钥为一个32位整数,其中低8位为随机产生的密钥数值,高24位为内存注册表项在内存注册表中的序号。
19.进一步地,二分跳表结构是跳表数据结构的衍生结构,将虚拟地址作为节点的键,物理地址和长度作为节点的值,保存到二分跳表结构,根据节点在物理内存段中的次序决定其层高;
20.在一个有k个节点的二分跳表中,k个节点不包含头节点,n为与k值最接近的2的幂次整数,那么二分跳表高度为m=logn,为限制二分跳表节点指针数量,设置一个最高层高mmax,最终二分跳表的层高m为logn和最高层高mmax之间的较小值,当有序的键值对构建二分跳表时,每个键值对构成一个节点,第en/2m个键值对插入二分跳表的第(logn-m+1)%m层。
21.进一步地,所述硬件存储单元包括内存注册表存储单元和二分跳表存储单元,所述内存注册表存储单元用于存储内存注册表,所述二分跳表存储单元用于存储二分跳表。
22.进一步地,所述地址映射查询逻辑模块包括:查询控制单元、内存注册表查询单元和二分跳表查询单元;
23.所述查询控制单元用于控制所述内存注册表查询单元对内存注册表进行查询,以及控制所述二分跳表查询单元对二分跳表进行查询;
24.所述内存注册表查询单元用于对内存注册表存储单元进行查询,所述内存注册表查询单元将rdma传输请求中的访问密钥的高24位作为内存注册表的查询序号,查询到内存注册表项,判断访问密钥的低8位密钥是否与内存注册表项中的记录相符,以及请求访问的虚拟内存范围是否在注册的虚拟内存范围内,当上述两个条件都满足时,将二分跳表的指针返回给所述查询控制单元;
25.所述二分跳表查询单元用于对所述二分跳表存储单元进行查询,所述二分跳表查询单元将rdma传输请求中的虚拟地址作为查询的键,通过所述内存注册表查询单元提供的
二分跳表指针索引到表头,再按照跳表查询策略进行查询,二分跳表查询的结果为包含rdma传输请求的虚拟地址范围的所有物理地址段。
26.进一步地,所述查询控制单元将rdma传输请求中的访问密钥的高24位作为内存注册表的查询序号,判断该序号是否超出了所述硬件存储单元的存储范围,当超出范围时,发起对所述地址映射管理软件的查询请求。
27.进一步地,所述rdma网络中的虚拟物理地址转换系统适至少适用于支持infiniband和roce类型的rdma网络协议的网卡设备。
28.本发明的有益之处在于所提供的rdma网络中的虚拟物理地址转换系统,使用软件与硬件结合的方式实现虚拟物理地址转换,兼有软件灵活管理的特点和硬件低延时的优点。使用二分跳表结构管理虚拟物理地址映射关系,适用于顺序插入和随机查询的场合,简化节点插入和查询步骤,提高插入和查询效率;降低rdma传输请求的响应延时,提高rdma传输效率;为虚拟物理地址转换提供备用软件通路,可以适应不同规模的应用系统,以及不同资源配置的rdma网卡硬件。
附图说明
29.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
30.图1是本发明的一种rdma网络中的虚拟物理地址转换系统的示意图;
31.图2是本发明的地址映射管理软件流程示意图;
32.图3是本发明的一种内存注册表表项的示意图;
33.图4(a)是本发明的一种二分跳表节点内部结构示意图;
34.图4(b)是本发明的一种二分跳表结构示意图;
35.图5是本发明的一种内存注册表与二分跳表关系示意图;
36.图6是本发明的一种地址映射查询逻辑模块示意图。
具体实施方式
37.下面详细描述本技术的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本技术,而不能理解为对本技术的限制。
38.在rdma网络中,rdma传输请求通过虚拟地址、长度和密钥来描述请求访问的内存,需要通过rdma网络协议栈将虚拟地址快速转换为物理地址。本技术实施例提供一种解决方案,主要思路是:基于主机rdma网卡驱动实现一个地址映射管理软件,在内存注册时将虚拟地址到物理地址的映射关系写入一个二分跳表结构,将注册内存的其他相关描述写入一个内存注册表,将内存注册表和二分跳表同步到rdma网卡,基于rdma网卡实现一个地址映射查询逻辑模块,在网卡收到rdma传输请求时,通过查询内存注册表和二分跳表得到rdma传输请求的物理地址。内存注册表和二分跳表结构简化了地址管理和地址查询步骤,降低rdma传输请求的响应延时,提高rdma传输效率。
39.如图1所示为本技术的一种rdma网络中的虚拟物理地址转换系统,包含:地址映射管理软件和地址映射查询逻辑模块。
40.地址映射管理软件设有软件存储单元,地址映射查询逻辑模块设有硬件存储单元。
41.地址映射管理软件主要用于内存的注册与注销。在应用程序请求内存注册时,地址映射管理软件将应用程序请求注册的虚拟地址空间映射到物理地址空间,并使用内存注册表结构和二分跳表结构保存对注册的虚拟内存的描述,同时将生成内存注册表和二分跳表存入软件存储单元和传输至硬件存储单元。在应用程序请求注销内存时,释放相应的内存注册表项和二分跳表结构。
42.地址映射查询逻辑模块用于响应rdma传输请求,通过查询硬件存储单元中的内存注册表和二分跳表,将rdma传输请求中虚拟地址转换为物理地址。
43.软件存储单元是地址映射管理软件的存储空间,主要存储内存注册表和二分跳表。硬件存储单元是地址映射查询逻辑模块的存储空间,位于rdma网卡的内部存储空间,主要存储内存注册表和二分跳表。优选地,软件存储单元和硬件存储单元中对于内存注册表和二分跳表的存储内容保持一致。更优地,在硬件存储单元大小受到资源限制时,硬件存储单元存储的内容是软件存储单元内容的子集。
44.在本技术的实施方式中,地址映射管理软件包含:虚拟物理地址映射单元、二分跳表生成单元、注册表生成单元和同步存储单元。
45.虚拟物理地址映射单元用于将应用程序请求注册的虚拟地址空间映射到物理地址空间,得到一个或多个物理内存片段。
46.二分跳表生成单元用于使用一个二分跳表结构保存物理内存片段的物理起始地址、长度以及对应的虚拟起始地址生成二分跳表,将生成的二分跳表保存到软件存储单元。
47.注册表生成单元用于为每一个注册内存空间分配唯一的访问密钥,使用一个内存注册表结构保存对注册内存的描述生成内存注册表,将生成的内存注册表保存到软件存储单元。
48.同步存储单元用于在每一次内存注册结束之前,将新增的内存注册表和二分跳表传输到硬件存储单元。
49.在本技术的实施方式中,地址映射管理软件还包含:虚拟物理地址转换单元。
50.虚拟物理地址转换单,用于在地址映射查询逻辑模块查询失效时,地址映射管理软件作为备选通过虚拟物理地址转换单元将rdma传输请求中的虚拟地址转换为物理地址。
51.可以理解的是,硬件存储单元的存储空间受限于rdma网卡硬件内部存储资源,在系统初始化时,软件存储单元和硬件存储单元为内存注册表和二分跳表预留相同大小的存储空间。随着系统运行,注册内存数量增多,当预留的存储空间不足时,作为优选,地址映射管理软件可以根据需求扩大软件存储单元的大小,但是硬件存储单元大小不会改变,当查询的内容超出硬件存储单元范围时,地址映射查询逻辑模块发起对地址映射管理软件的查询请求,通过地址映射管理软件进行虚拟物理地址转换。
52.如图2所示为本技术的地址映射管理软件流程示意图,该流程如下:
53.s11、判断来自应用程序的内存请求,如果收到内存注册请求则实施步骤s12,如果收到内存注销请求则实施步骤s16;
54.s12、将应用程序请求注册的虚拟地址空间映射到物理地址空间,得到一个或多个物理内存片段;
55.s13、使用一个二分跳表结构保存所述物理内存片段的物理起始地址、长度以及对应的虚拟起始地址,将这个二分跳表结构保存到软件存储单元;
56.s14、为这个注册内存空间分配唯一的访问密钥,使用一个内存注册表项保存对注册内存的描述,将这个内存注册表项保存到软件存储单元;
57.s15、将新增的内存注册表项和二分跳表结构传输到rdma网卡硬件存储单元,内存注册步骤结束;
58.s16、定位到与该内存相关的内存注册表项和二分跳表结构,释放软件存储单元中该内存注册表项和二分跳表;
59.s17、将释放内存注册表项和二分跳表的信息传输到rdma网卡硬件存储单元,内存注销结束。
60.在本技术的实施方式中,内存注册表是地址映射管理软件管理的一个数组,在系统初始化时分配该数组,每个数组元素为一个内存注册表项,内存注册表项包含注册的虚拟内存地址、长度、密钥、二分跳表的指针和二分跳表的层高,其中二分跳表的指针指向表头节点位置,是表头节点在数组中的索引序号。
61.访问密钥为一个32位整数,其中低8位为随机产生的密钥数值,高24位为内存注册表项在内存注册表中的序号。每一段注册内存的访问密钥具有唯一性,密钥的高24位可用于查询相应的内存注册表项。
62.如图3所示,本实施例中内存注册表表项的内容,具体包括以下字段:
63.有效:表示该表项是否有效,在内存注册时将这一字段设置为“有效”,在内存注销时,设置该字段为“无效”,通过设置有效字段实现对数组元素的占用与释放,减少对存储单元的写入。
64.虚拟地址:被注册的内存的虚拟起始地址,这是发起内存注册的应用程序虚拟地址空间的地址。
65.长度:被注册的内存的大小,是连续的虚拟地址空间的大小。
66.密钥:在内存注册时生成的访问密钥。
67.二分跳表指针:与该内存注册表项相关的二分跳表头节点的指针。作为优选,设置为头节点元素在二分跳表数组中的索引。
68.二分跳表高度:与该内存注册表项相关的二分跳表的实际高度。
69.在本技术的实施方式中,二分跳表结构是跳表数据结构的衍生结构,将虚拟地址作为节点的键,物理地址和长度作为节点的值,保存到二分跳表结构,(因跳表在插入新节点时使用随机数决定插入的层高,而在本技术中虚拟地址,即节点的键,按从小到大的单调顺序插入)根据节点在物理内存段中的次序决定其层高。
70.图4(a)为本技术一实施例提供的二分跳表节点内部结构示意图,一个高度为m的二分跳表,其每个节点包括具体如下字段:
71.键:在本技术的实施例中,二分跳表节点的键为虚拟地址。
72.值:在本技术的实施例中,二分跳表节点的值为物理地址和长度。
73.第1~m层指针:指针指向该层下一个大于该节点的节点。
74.图4(b)为本技术一实施例提供的二分跳表结构示意图,二分跳表算法具体如下:
75.在多数实例中,一个有k个节点(不包括头节点)的二分跳表中,n为与k值最接近的2的幂次整数,那么二分跳表高度为m=logn。将有序键值对插入二分跳表中时,第en/2m个键值对(e为奇数,1《=m《=m)插入二分跳表的第(m-m+1)层。
76.在图4(b)所示的一实施例中,包含了一个头节点和9个键值对节点,图中键值对节点自上而下的内容为:第m~1层指针、虚拟地址、物理地址和长度。二分跳表包含了k=9个节点,二分跳表的高度为m=log8=3,当有序的键值对插入二分跳表时,第1、3、5、7、8、9个键值对插入第一层,第2、6个键值对插入第二层,第4个键值对插入第三层。
77.在一些其他实施例中,键值对节点数量较多,而二分跳表数组元素的存储空间是受限的,也就是二分跳表节点的指针数量必须有一定的限制。因此为二分跳表实例设置最高层数mmax,二分跳表每个节点的指针数量最多也是mmax。当logn》mmax时,设定二分跳表高度为m=mmax。将有序键值对插入二分跳表中时,第en/2m个键值对(e为奇数,1《=m《=logn)插入二分跳表的第((logn-m+1)%m)层。
78.即,在一个有k个节点(不包括头节点)的二分跳表中,n为与k值最接近的2的幂次整数,那么二分跳表高度为m=logn,为限制二分跳表节点指针数量,设置一个最高层高mmax,最终二分跳表的层高m为logn和最高层高mmax之间的较小值,当有序的键值对构建二分跳表时,每个键值对构成一个节点,第en/2m个键值对(e为奇数,1《=m《=logn)插入二分跳表的第(logn-m+1)%m层。)
79.如图5为本技术一示例性实施例提供的内存注册表与二分跳表关系示意图。在本技术的实施例中,内存注册表是一个数组,二分跳表是一个数组。内存注册表表项中的二分跳表指针指向二分跳表在数组中头节点的位置,二分跳表高度表示该二分跳表的实际高度。在大多数实施例中,一块注册内存相关的二分跳表节点不一定存储在连续的数组元素中,节点的指针将这些节点联系起来。
80.在本技术的实施方式中,硬件存储单元包括内存注册表存储单元和二分跳表存储单元,内存注册表存储单元用于存储内存注册表,二分跳表存储单元用于存储二分跳表。
81.如图6所示,在本技术的实施方式中,地址映射查询逻辑模块包括:查询控制单元、内存注册表查询单元和二分跳表查询单元。
82.查询控制单元用于控制内存注册表查询单元对内存注册表进行查询,以及控制二分跳表查询单元对二分跳表进行查询。
83.内存注册表查询单元用于对内存注册表存储单元进行查询,内存注册表查询单元将rdma传输请求中的访问密钥的高24位作为内存注册表的查询序号,查询到内存注册表项,判断访问密钥的低8位密钥是否与内存注册表项中的记录相符,以及请求访问的虚拟内存范围是否在注册的虚拟内存范围内,当上述两个条件都满足时,将二分跳表的指针返回给查询控制单元。
84.二分跳表查询单元用于对二分跳表存储单元进行查询,二分跳表查询单元将rdma传输请求中的虚拟地址作为查询的键,通过内存注册表查询单元提供的二分跳表指针索引到表头,再按照跳表查询策略进行查询,二分跳表查询的结果为包含rdma传输请求的虚拟地址范围的所有物理地址段。
85.在本技术的实施方式中,查询控制单元将rdma传输请求中的访问密钥的高24位作
为内存注册表的查询序号,判断该序号是否超出了硬件存储单元的存储范围,当超出范围时,发起对地址映射管理软件的查询请求。
86.在本技术实施例中,地址映射查询逻辑模块处理rdma传输请求的步骤具体如下:
87.s21:查询控制单元接收到处理rdma传输请求的信号后,首先将密钥的高24位作为内存注册表查询序号,判断该序号是否超出了硬件存储单元的存储范围,如果超出范围则发送信号到地址映射管理软件,通过地址映射管理软件进行虚拟物理地址转换;否则使能内存注册表查询单元,传输rdma请求中的32位密钥、虚拟地址和长度到内存注册表查询单元,执行步骤s22。
88.s22:内存注册表查询单元将密钥的高24位作为内存注册表的查询序号,查询到内存注册表项;表项是否有效,如果有效则执行步骤s23,否则输出错误信号并结束查询。
89.s23:内存注册表查询单元判断密钥低8位是否与内存注册表项中密钥的低8位相同,以及rdma请求访问的虚拟内存范围是否在注册的虚拟内存范围内,如果这两个条件都满足,则输出二分跳表指针和二分跳表高度,并进行步骤s24,否则输出错误信号并结束查询。
90.s24:查询控制单元使能二分跳表查询单元,并传输步骤s23得到的二分跳表指针和二分跳表高度,以及rdma请求的虚拟地址和长度到二分跳表查询单元。
91.s25:二分跳表查询单元通过二分跳表指针查询到二分跳表的头节点,继续按照跳表的查询方式,找到小于等于输入的虚拟地址的最大节点,继续向前查询,直到将包含rdma请求的虚拟地址范围的所有物理分段都输出到查询控制单元。
92.在一个典型配置中,本发明实施例的地址映射管理软件运行在网络主机或服务器的cpu中,软件存储单元设置在主机或服务器的内存中,该主机或服务器通过总线与rdma网卡连接,地址映射查询逻辑模块运行在rdma网卡硬件中,硬件存储单元设置在rdma网卡的内部存储资源中,可以是bram、uram或ddr等形式的存储资源。
93.本领域内的技术人员应该明白,本技术实施例描述的主机或服务器cpu与rdma网卡仅是对设备功能的描述,主机或服务器与rdma网卡可以有多种形式的配置,例如在嵌入式设备中,一个芯片兼有网络主机和rdma网卡功能。再例如,网络主机或服务器可以通过pcie等外部总线,或者axi等芯片内部总线与rdma网卡相连接。rdma网卡支持的协议类型可以是infiniband、roce类型的rdma网络协议类型。
94.需要说明的是,上述实施例及附图中描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照在本文出现的顺序来执行或并行执行,操作步骤的序号仅仅是用于区分各个不同的操作,不代表任何执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序或并行执行。
95.以上显示和描述了本发明的基本原理、主要特征和优点。本行业的技术人员应该了解,上述实施例不以任何形式限制本发明,凡采用等同替换或等效变换的方式所获得的技术方案,均落在本发明的保护范围内。

技术特征:
1.一种rdma网络中的虚拟物理地址转换系统,其特征在于,包含:地址映射管理软件和地址映射查询逻辑模块;所述地址映射管理软件设有软件存储单元,所述地址映射查询逻辑模块设有硬件存储单元;所述地址映射管理软件将应用程序请求注册的虚拟地址空间映射到物理地址空间,并使用内存注册表结构和二分跳表结构保存对注册的虚拟内存的描述,同时将生成内存注册表和二分跳表存入所述软件存储单元和传输至所述硬件存储单元;所述地址映射查询逻辑模块响应rdma传输请求,通过查询所述硬件存储单元中的内存注册表和二分跳表,将rdma传输请求中虚拟地址转换为物理地址。2.根据权利要求1所述的rdma网络中的虚拟物理地址转换系统,其特征在于,所述地址映射管理软件包含:虚拟物理地址映射单元,用于将应用程序请求注册的虚拟地址空间映射到物理地址空间,得到一个或多个物理内存片段;二分跳表生成单元,用于使用一个二分跳表结构保存物理内存片段的物理起始地址、长度以及对应的虚拟起始地址生成二分跳表,将生成的二分跳表保存到所述软件存储单元;注册表生成单元,用于为每一个注册内存空间分配唯一的访问密钥,使用一个内存注册表结构保存对注册内存的描述生成内存注册表,将生成的内存注册表保存到所述软件存储单元;同步存储单元,用于在每一次内存注册结束之前,将新增的内存注册表和二分跳表传输到所述硬件存储单元。3.根据权利要求2所述的rdma网络中的虚拟物理地址转换系统,其特征在于,所述地址映射管理软件还包含:虚拟物理地址转换单元,用于在所述地址映射查询逻辑模块查询失效时,所述地址映射管理软件作为备选通过所述虚拟物理地址转换单元将rdma传输请求中的虚拟地址转换为物理地址。4.根据权利要求2所述的rdma网络中的虚拟物理地址转换系统,其特征在于,内存注册表是所述地址映射管理软件管理的一个数组,在系统初始化时分配该数组,每个数组元素为一个内存注册表项,内存注册表项包含注册的虚拟内存地址、长度、密钥、二分跳表的指针和二分跳表的层高,其中二分跳表的指针指向表头节点位置,是表头节点在数组中的索引序号;访问密钥为一个32位整数,其中低8位为随机产生的密钥数值,高24位为内存注册表项在内存注册表中的序号。5.根据权利要求2所述的rdma网络中的虚拟物理地址转换系统,其特征在于,二分跳表结构是跳表数据结构的衍生结构,将虚拟地址作为节点的键,物理地址和长度作为节点的值,保存到二分跳表结构,根据节点在物理内存段中的次序决定其层高;在一个有k个节点的二分跳表中,k个节点不包含头节点,n为与k值最接近的2的幂次整数,那么二分跳表高度为m=logn,为限制二分跳表节点指针数量,设置一个最高层高mmax,最终二分跳表的层高m为logn和最高层高mmax之间的较小值,当有序的键值对构建二分跳
表时,每个键值对构成一个节点,第en/2
m
个键值对插入二分跳表的第(logn-m+1)%m层。6.根据权利要求2所述的rdma网络中的虚拟物理地址转换系统,其特征在于,所述硬件存储单元包括内存注册表存储单元和二分跳表存储单元,所述内存注册表存储单元用于存储内存注册表,所述二分跳表存储单元用于存储二分跳表。7.根据权利要求2所述的rdma网络中的虚拟物理地址转换系统,其特征在于,所述地址映射查询逻辑模块包括:查询控制单元、内存注册表查询单元和二分跳表查询单元;所述查询控制单元用于控制所述内存注册表查询单元对内存注册表进行查询,以及控制所述二分跳表查询单元对二分跳表进行查询;所述内存注册表查询单元用于对内存注册表存储单元进行查询,所述内存注册表查询单元将rdma传输请求中的访问密钥的高24位作为内存注册表的查询序号,查询到内存注册表项,判断访问密钥的低8位密钥是否与内存注册表项中的记录相符,以及请求访问的虚拟内存范围是否在注册的虚拟内存范围内,当上述两个条件都满足时,将二分跳表的指针返回给所述查询控制单元;所述二分跳表查询单元用于对所述二分跳表存储单元进行查询,所述二分跳表查询单元将rdma传输请求中的虚拟地址作为查询的键,通过所述内存注册表查询单元提供的二分跳表指针索引到表头,再按照跳表查询策略进行查询,二分跳表查询的结果为包含rdma传输请求的虚拟地址范围的所有物理地址段。8.根据权利要求7所述的rdma网络中的虚拟物理地址转换系统,其特征在于,所述查询控制单元将rdma传输请求中的访问密钥的高24位作为内存注册表的查询序号,判断该序号是否超出了所述硬件存储单元的存储范围,当超出范围时,发起对所述地址映射管理软件的查询请求。9.根据权利要求1所述的rdma网络中的虚拟物理地址转换系统,其特征在于,所述rdma网络中的虚拟物理地址转换系统适至少适用于支持infiniband和roce类型的rdma网络协议的网卡设备。

技术总结
本发明公开了一种RDMA网络中的虚拟物理地址转换系统,包含:地址映射管理软件和地址映射查询逻辑模块;地址映射管理软件将应用程序请求注册的虚拟地址空间映射到物理地址空间,并使用内存注册表结构和二分跳表结构保存对注册的虚拟内存的描述,同时将生成内存注册表和二分跳表存入软件存储单元和传输至硬件存储单元;地址映射查询逻辑模块响应RDMA传输请求,通过查询硬件存储单元中的内存注册表和二分跳表,将RDMA传输请求中虚拟地址转换为物理地址。本发明提供的RDMA网络中的虚拟物理地址转换系统,使用软件与硬件结合的方式实现虚拟物理地址转换,兼有软件灵活管理的特点和硬件低延时的优点。件低延时的优点。件低延时的优点。


技术研发人员:邢钱舰
受保护的技术使用者:浙江大学
技术研发日:2023.07.11
技术公布日:2023/10/11
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐