用于远程直接内存访问的设备和方法技术

技术编号:38946591 阅读:13 留言:0更新日期:2023-09-25 09:42
本发明专利技术涉及通过RDMA操作在例如请求设备和响应设备等设备之间进行的数据通信。所述请求设备和所述响应设备各自包括存储器、控制器和通信接口。所述请求设备的所述控制器与响应设备的内存区域进行关联,所述内存区域包括一个或多个内存块。此外,所述响应设备关联其存储器中的所述内存区域,确定所述内存区域的内存状态,通过所述通信接口传输关于与所述内存区域有关的所述内存状态的通知。此外,基于所述内存状态,所述请求设备判断待访问的内存块在所述响应设备的所述存储器中是否就绪,然后相应地通过所述通信接口向所述响应设备传输请求,所述请求与所述待访问的内存块有关。所述请求与所述待访问的内存块有关。所述请求与所述待访问的内存块有关。

【技术实现步骤摘要】
【国外来华专利技术】用于远程直接内存访问的设备和方法


[0001]本专利技术一般涉及数据传送;更具体地说,涉及用于远程直接内存访问的设备和方法。

技术介绍

[0002]近年来,高性能计算(high

performance computing,HPC)领域在现有IP基础设施和定制无损技术上利用了InfiniBand等高性能和低时延网络。这些互连提供远程直接内存访问(remote direct memory access,RDMA)等高级网络功能,以实现高吞吐量和低时延以及低CPU利用率。RDMA正在高性能计算(high

performance computing,HPC)、数据中心、Web2.0、大数据、云、存储、金融服务和保险(finance services and insurance,FSI)、医疗服务、联邦等领域中使用。然而,多个计算设备的网络中的高速数据通信增加了人们对数据可靠性和时延的担忧。
[0003]通常,远程直接内存访问(remote direct memory access,RDMA)涉及从一个计算设备的存储器到另一个计算设备的存储器的直接内存访问。通常,RDMA技术不需要任何计算设备(即,传统发送设备和传统接收设备)的操作系统(operating system,OS),能够在网络上进行高吞吐量、低时延的数据传送,并且在性能至关重要的部署中特别有用。有两种常见的RDMA技术,即InfiniBand和互联网工程任务组(internet engineering task force,IETF)。IETF协议也被称为互联网广域RDMA协议(internet wide Area RDMA protocol,iWARP)。具体来说,InfiniBand RDMA有两个变体,允许它在以太网网络上运行(RoCE)和在UDP/IP网络上运行(RoCEv2)。例如,在传统RDMA系统的示例性实现场景中,例如在RDMA读或写操作中,数据(或数据包)使用支持RDMA的网络适配器直接从(例如,传统请求设备的)源存储器传递到(例如,传统响应设备的)目标存储器。具体来说,它不涉及中央处理器(central processing unit,CPU)(或处理器)或交互设备(即,传统发送设备和传统接收设备)中的任何一个的操作系统。然而,与访问存储器的请求方(例如,传统请求设备)在数据包生成时具有关于数据包的知识(QP上下文、操作信息)不同,响应方(例如,传统响应设备)在从网络接收数据包时接收与特定操作有关的信息。因此,该进程获得了相当大的处理时间,并增加了数据通信期间的时延。此外,以现代RNIC的线速(25

400Gbps)执行这些操作变得极具挑战性。因此,在传统系统中,从主机存储器获取信息需要时间,而且通常需要几次数据获取迭代,这导致时延增加和性能降低。
[0004]目前,主机存储器非常昂贵(估计高达主机总成本的40%),资源有限。这种有限资源的可用性由于需要为DMA操作保留内存而得到增强,使得保留的或物理的内存可根据需要用于RDMA NIC。传统上,有两种方法来克服上述问题,要么通过固定内存,要么通过采用按需分页。然而,由于在非活动(即,不用于DMA操作)期间不能用于其他目的,占可用物理内存很大一部分的固定内存有效地减少了主机设备上可用的物理内存。因此,没有在DMA操作与资源(即,内存或RAM)之间建立成功的权衡。此外,按需分页(on

demand paging,ODP)要求通过在执行期间动态将页面映射为DMA目的地来处理缺失的页面映射,而无需用户应用
程序的直接干预。虽然ODP是可行的,但可能会导致性能下降,例如速度或执行时间降低、入站网络流量降低或速率受限,从而导致显著的负面性能影响。通常,在DMA操作之前,在响应方预取数据可以通过在每个DMA操作之前向响应方发送预取提示请求来减少性能开销,从而减轻按需分页的性能影响。但是,每个或每几个DMA操作的预取提示请求本身会在网络上产生带宽开销。此外,在页面已经映射的情况下,冗余的预取提示请求会延迟对有用的预取提示请求的处理。
[0005]因此,根据上述讨论,需要克服与用于数据通信的传统远程直接内存访问(remote direct memory access,RDMA)技术的传统请求设备、传统响应设备和传统方法相关联的上述缺点。

技术实现思路

[0006]本专利技术寻求提供用于远程直接内存访问(remote direct memory access,RDMA)的请求设备、响应设备、方法和系统。本专利技术寻求借助传统的设备、方法和传统的远程直接内存访问系统来解决现有的低效和不可靠的数据通信问题。本专利技术的目的是提供一种至少部分克服现有技术中遇到的问题的解决方案,并提供用于RDMA操作的高效(例如,减少时延)和可靠数据通信的改进设备、方法和系统。本专利技术的目标是通过所附独立权利要求中提供的技术方案来实现的。本专利技术的有利实现方式在从属权利要求中进一步定义。
[0007]本专利技术的目标是通过所附独立权利要求中提供的技术方案来实现的。本专利技术的有利实现方式在从属权利要求中进一步定义。
[0008]在一个方面,本专利技术提供了一种请求设备,包括存储器、控制器和通信接口。控制器用于与响应设备的内存区域进行关联,内存区域包括一个或多个内存块。此外,控制器用于通过通信接口从响应设备接收关于与内存区域有关的内存状态的通知;基于内存状态判断待访问的内存块在响应设备的存储器中是否就绪,并通过通信接口向响应设备传输请求,该请求与待访问的内存块有关。
[0009]本专利技术的请求设备能够保持对内存区域或一个或多个内存块的内存状态的跟踪,并允许响应设备借助内存预取、预取提示等优化各个方面。这些操作用于使响应设备能够提前开始加载内存块或内存区域(如果有必要),或准备以高效的方式接受传入的数据包。此外,通过在需要时交换内存区域,一次传输与多个事务(或操作)有关的多个通知,能够实现更快、更高效的操作。响应设备将更新报告为通知,以便请求设备有更高的机会在没有页面错误的情况下获得服务。
[0010]在另一种实现形式中,控制器还用于接收内存块大小的指示,内存块大小小于或等于内存区域的大小,其中关于内存状态的通知与一个或多个内存块有关。
[0011]内存块大小的指示通过允许请求设备基于接收到的内存块大小的指示重新配置或改变请求的粒度或结构使得能够优化操作期间页面错误的发生和控制开销,并确保高效的数据通信。
[0012]在另一种实现形式中,控制器还用于在接收内存块大小的指示之前,向响应设备传输所指示的内存块大小,以向响应设备指示请求设备支持的内存状态粒度。
[0013]传输的所指示内存块大小允许响应设备基于请求设备传输的所指示大小重新配置或改变响应设备中内存块的粒度,以优化操作期间页面错误的发生和控制开销,并确保
高效的内存状态报告通信。
[0014]在又一种实现形式中,控制器还用于针对内存块大小发起与响应设备本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种请求设备(100),其特征在于,包括存储器(102)、控制器(104)和通信接口(106),所述控制器(104)用于:与响应设备(300)的内存区域进行关联,所述内存区域包括一个或多个内存块;通过所述通信接口(106)从所述响应设备接收关于与所述内存区域有关的内存状态的通知(512);基于所述内存状态判断待访问的内存块在所述响应设备(300)的存储器(302)中是否就绪;通过所述通信接口向所述响应设备传输请求(514),所述请求(514)与所述待访问的内存块有关。2.根据权利要求1所述的请求设备(100),其特征在于,所述控制器(104)还用于接收内存块大小的指示,所述内存块大小小于或等于所述内存区域的大小,其中关于所述内存状态的所述通知(512)与一个或多个内存块有关。3.根据权利要求2所述的请求设备(100),其特征在于,所述控制器(100)还用于在接收所述内存块大小的所述指示之前,向所述响应设备(300)传输所指示的内存块大小。4.根据权利要求2所述的请求设备(100),其特征在于,所述控制器(104)还用于针对所述内存块大小发起与所述响应设备(300)的协商过程,其中,所述内存块大小基于带宽标准、响应设备(300)能力和请求设备(100)能力中的一个或多个。5.根据权利要求2至4中任一项所述的请求设备(100),其特征在于,所述控制器(104)还用于接收更新的内存块大小的指示。6.根据权利要求5所述的请求设备(100),其特征在于,所述更新的内存块大小基于内存动作数量、带宽使用、响应设备(300)能力和请求设备(100)能力中的一个或多个。7.根据前述权利要求中任一项所述的请求设备(100),其特征在于,所述控制器(104)还用于存储内存块的所述内存状态。8.根据前述权利要求中任一项所述的请求设备(100),其特征在于,所述控制器(104)还用于:将多个内存块分组为内存块组;基于所述多个内存块的所述内存状态确定所述内存块组的内存组状态;存储所述内存组状态。9.根据权利要求8所述的请求设备(100),其特征在于,所述内存组状态包括计数器,所述控制器(104)用于:如果所述接收到的内存状态指示所述内存块组的所述多个内存块中包括的内存块已经改变其内存状态,调整所述计数器。10.根据权利要求9所述的请求设备(100),其特征在于,所述内存组状态包括内存标志,控制器(104)用于:如果指示所述内存状态的所述通知(512)指示所述内存块组的内存块当前不在所述响应设备(300)的所述存储器(302)中,设置所述标志。11.根据前述权利要求中任一项所述的请求设备(100),其特征在于,关于内存状态的所述通知(512)指示一个或多个内存块的变化。12.根据前述权利要求中任一项所述的请求设备(100),其特征在于,关于内存状态的所述通知(512)指示一个或多个内存块的当前内存状态。13.根据权利要求1所述的请求设备(100),其特征在于,所述控制器(104)还用于:如果
确定所述待访问的内存块在所述响应设备(300)的存储器(302)中尚未就绪,发送包括预取提示请求(714)的消息,所述预取提示请求向所述响应设备(300)指示所述待访问的内存块。14.根据前述权利要求中任一项所述的请求设备(100),其特征在于,关于内存状态的所述通知(512)指示所述响应设备(300)不兼容,其中所述控制器(104)还用于:相应地调整与所述待访问的内存块有关的所述请求,当附属于权利要求13时,不发送包括所述预取提示请求(714)的所述消息。15.一种用于请求设备(100)的方法(200),其特征在于,所述请求设备(100)包括存储器(102)、控制器(104)和通信接口(106),所述方法(200)包括:与响应设备(300)的内存区域进行关联,所述内存区域包括一个或多个内存块;通过所述通信接口(106)从所述响应设备(300)接收关于内存状态的通知(512);基于所述内存状态判断待访问的内存块在所述响应设备的存储器(302)中是否就绪;通过所述通信接口向所述响应设备传输请求...

【专利技术属性】
技术研发人员:本沙哈尔
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1