一种发起方触发的远程内存访问操作虚实地址转换方法技术

技术编号:2868107 阅读:242 留言:0更新日期:2012-04-11 18:40
一种分布存储系统中由发起方触发的RMA操作虚实地址转换的方法,其特征在于包括以下步骤:    在RMA操作发起方的RMA目的地址的转换步骤;    使用物理地址进行数据传输的数据传输步骤。(*该技术在2023年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术涉及计算机存储访问
,特别是。
技术介绍
目前在主流的分布存储、不提供全局物理地址空间的高性能计算机系统中,为支持共享存储编程模式,支持对远程内存的访问,人们引入了远程内存访问操作(RMA操作)。RMA操作使得系统中一台计算机上运行的进程能够通过访问其它计算机上运行进程的虚拟地址空间而访问其它计算机上的内存。RMA操作主要包括远程读和远程写两种操作。一般的远程内存访问操作流程如下1.一台计算机上的一个进程将其部分存储空间开放,允许其它计算机上运行的进程访问。该计算机成为远程内存访问操作的目的方。2.其它计算机上运行的进程获取已经开放存储空间的标识。该计算机成为远程内存访问操作的发起方。3.发起方计算机上的进程执行远程读或远程写操作,对目的方进程开放的存储空间进行访问,完成对远程开放内存的读或写操作。目前RMA操作的实现基本上基于高性能互联网络的智能网卡。所谓智能网卡是指网卡上有本地的CPU,可运行通信控制程序,具有协议处理能力。一般采用的实现方法是由RMA操作发起方向目的方发送一个RMA操作指令,目的方计算机上的智能网卡在收到上述指令后,根据指令中指定的操作类型(读或写)以及地址、长度,通过DMA或PIO方式直接访问(读或写)指定的内存空间,访存结果(对于远程读)返回操作发起方进程。目的方计算机上的进程可以不知道这些存储访问操作的执行。在RMA操作实现中一个关键的步骤是进行开放存储空间的虚实地址转换。由于智能网卡只能使用物理地址访问计算机的内存空间,而RMA操作发起方进程对开放存储空间的访问使用的是虚拟地址或抽象的标识,因此在RMA实现中必须进行开放存储空间的虚实地址转换,将虚拟地址转换为物理地址。目前主要采用由目的方智能网卡完成虚实地址转换的方法。一旦目的方智能网卡收到其它计算机发来的RMA操作指令后,就从指令中分离出要访问存储空间的虚拟地址,并根据建立在网卡上的内存页表的高速缓存(cache)完成虚实地址转换。一旦cache不命中,智能网卡会向主机发中断,要求主机进行页表更新,然后再进行地址转换。一旦主机要修改页表,会先使智能网卡上的相应页表项无效。这种由目的方智能网卡实现虚实地址转换方法的一个主要缺点是可扩展性不高、协议复杂。由于目前计算机的内存空间越来越大,尤其是64位系统广泛使用后,而智能网卡上可用于存放页表的空间非常有限,这无疑会导致卡上页表cache内容的频繁替换,而且由智能网卡维护页表cache会使卡上的通信控制程序变得复杂,对通信性能造成影响。
技术实现思路
为解决上述问题,本专利技术提供了一个由发起方触发的RMA操作虚实地址转换方法。该方法的主要特征是将虚实地址转换由目的方的智能网卡转移到了发起方的主机上,开放存储空间的页表及其高速缓存(cache)由运行在各计算机上的系统的一个后台执行进程(精灵进程,Daemon)维护。这样当一个进程执行一个RMA操作,就会在其本地系统精灵进程维护的页表cache中查找相应的表项,cache命中就执行虚实地址转换,否则从目的方系统精灵进程获取所需表项,更新本地cache,然后进行虚实地址转换。由于发起方主机内存很大,所以此方法的可扩展性好,协议实现也相对简单。附图说明图1是本专利技术的发起发触发的RMA操作流程图;图2是本专利技术的精灵进程的地址变换流程图;图3是本专利技术的发起方触发的RMA操作程序流程图;图4是本专利技术的精灵进程的程序流程图。具体实施例方式图1中,箭头表示RMA流程中的步骤。1)在发起方用户程序向精灵进程查询目的方缓冲区物理地址;2)精灵进程向用户程序返回该物理地址;3)发起方用户程序使用物理地址进行RMA访问。图2中,箭头表示精灵进程的地址变换流程中的步骤。1)用户进程发出地址变换请求;2)精灵进程查询远程内存页表Cache,若命中,则转至步骤7;3)未命中时,精灵进程向目的方精灵进程发出地址变换请求;4)目的方精灵进程查询本地内存页表;5)目的方精灵进程返回地址转换结果;6)精灵进程更新远程内存页表Cache;7)精灵进程返回地址变换结果。图3中,由步骤3.1和3.2构成了用户程序中发起一次RMA操作的过程;步骤3.1先向本地精灵进程发出地址查询的请求,并等待本地精灵进程返回结果;步骤3.2在接到查询结果后,发起RMA操作;步骤3.3和步骤3.4构成了与用户程序在同一计算机上的本地精灵进程流程中与用户程序交互的部分操作流程;步骤3.3等待用户程序的地址转换请求;步骤3.4在接到用户程序的地址转换请求后进行地址转换,并返回物理地址;执行完毕后,精灵进程将转回步骤3.3继续等待用户程序的地址转换请求。图4中,步骤4.1至4.7构成了精灵进程的程序流程;步骤4.1等待接收由本地用户程序或远程精灵进程发出的请求,并根据请求的类型转入不同的流程;处理本地应用程序地址变换请求的流程由步骤4.2至4.5完成;步骤4.2查询精灵进程的远程内存页表Cache,若命中,转步骤4.5,否则转步骤4.3;步骤4.3向目的方精灵进程发出地址变换请求,并等待其返回结果;步骤4.4将返回的结果更新至精灵进程的远程内存页表Cache;步骤4.5将所获得的结果返回给用户进程,并转至步骤4.1等待下一个请求的到达;处理远程精灵进程地址转换请求的流程由步骤4.6和4.7完成;步骤4.6查询精灵进程的本地内存页表;步骤4.7进程地址转换,将转换所得的物理地址返回给发出请求的精灵进程,并转至步骤4.1等待下一个请求的到达。1)系统初始启动时,在系统中各计算机上启动一个系统精灵进程2)当一个进程开放其部分存储空间,允许其它计算机上进程远程访问时,该进程所在计算机(目的方)上的系统精灵进程将相应存储空间锁定在物理内存中,并建立相应的页表项。3)其它计算机(发起方)上的进程执行RMA操作时,在本地系统精灵进程维护的远程内存页表中查找相应的表项如果命中,就完成虚实地址转换,将远程存储的物理地址写入RMA指令并发给目的方的智能网卡执行;否则,本地系统精灵进程会与目的方的系统精灵进程通信,获取所需表项,更新本地cache,然后进行虚实地址转换。1)一旦目的方要修改本地内存的页表,它会首先向其它维护有本地页表项的计算机上的系统精灵进程发出命令,将它们cache中的相应表项置为失效,然后再实施对本地表项的修改。本专利技术的效果体现在1.RMA操作实现中的虚实地址转换在操作发起方的主机上完成。2.用于虚实地址转换的页表建立在主机内存中,空间较大。3.目的方智能网卡上的通信控制程序无需维护本地页表cache,可以直接从发起方发来的命令中获取要访问内存的物理地址,启动DMA或PIO进行访问,协议处理变得简单。4.RMA操作的可扩展性提高。权利要求1.一种分布存储系统中由发起方触发的RMA操作虚实地址转换的方法,其特征在于包括以下步骤在RMA操作发起方的RMA目的地址的转换步骤;使用物理地址进行数据传输的数据传输步骤。2.如权利要求1所述的由发起方触发的RMA操作虚实地址转换方法,其特征在于RMA操作实现中涉及的对远程内存的虚实地址转换实现于RMA操作的发起方,即发起RMA操作的计算机。3.如权利要求1所述的由发起方触发的RMA操作虚实地址转换方法,其特征在于由发起方发送给目的方实施本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:孟丹霍志刚马捷
申请(专利权)人:中国科学院计算技术研究所
类型:发明
国别省市:

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

1