CN1547126A - 一种发起方触发的远程内存访问操作虚实地址转换方法 - Google Patents

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

Info

Publication number
CN1547126A
CN1547126A CNA2003101170389A CN200310117038A CN1547126A CN 1547126 A CN1547126 A CN 1547126A CN A2003101170389 A CNA2003101170389 A CN A2003101170389A CN 200310117038 A CN200310117038 A CN 200310117038A CN 1547126 A CN1547126 A CN 1547126A
Authority
CN
China
Prior art keywords
smart process
initiator
address
rma
actual situation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2003101170389A
Other languages
English (en)
Other versions
CN1280735C (zh
Inventor
丹 孟
孟丹
霍志刚
马捷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Weifang Zhongke Zhishi Information Technology Co., Ltd
Original Assignee
Institute of Computing Technology of CAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CNB2003101170389A priority Critical patent/CN1280735C/zh
Publication of CN1547126A publication Critical patent/CN1547126A/zh
Application granted granted Critical
Publication of CN1280735C publication Critical patent/CN1280735C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明涉及计算机存储访问技术领域的发起方触发的远程内存访问操作虚实地址转换方法。该方法将RMA操作实现中涉及的对远程内存的虚实地址转换实现于RMA操作的发起方,即发起RMA操作的计算机。该方法在分布存储系统的每个计算机上运行一个系统精灵进程,用于维护本地内存页表和远程内存页表的高速缓存(cache)。RMA操作通过本机系统精灵进程与其它计算机上的精灵进程联系用以完成虚实地址转换。这种由发起方触发虚实地址转换的方法有利于提高通信系统中RMA操作实现的可扩展性。

Description

一种发起方触发的远程内存访问操作虚实地址转换方法
技术领域
本发明涉及计算机存储访问技术领域,特别是一种发起方触发的远程内存访问操作虚实地址转换方法。
背景技术
目前在主流的分布存储、不提供全局物理地址空间的高性能计算机系统中,为支持共享存储编程模式,支持对远程内存的访问,人们引入了远程内存访问操作(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操作的可扩展性提高。

Claims (11)

1、一种分布存储系统中由发起方触发的RMA操作虚实地址转换的方法,其特征在于包括以下步骤:
在RMA操作发起方的RMA目的地址的转换步骤;
使用物理地址进行数据传输的数据传输步骤。
2、如权利要求1所述的由发起方触发的RMA操作虚实地址转换方法,其特征在于:RMA操作实现中涉及的对远程内存的虚实地址转换实现于RMA操作的发起方,即发起RMA操作的计算机。
3、如权利要求1所述的由发起方触发的RMA操作虚实地址转换方法,其特征在于:由发起方发送给目的方实施RMA操作的命令中指定的是远程内存的物理地址。
4、如权利要求1所述的由发起方触发的RMA操作虚实地址转换方法,其特征在于:系统中各计算机上由一个系统精灵进程负责维护虚实地址转换所需的页表。
5、如权利要求1所述的由发起方触发的RMA操作虚实地址转换方法,其特征在于:各系统精灵进程实现的远程内存页表高速缓存采用存储分布系统中分布式cache的实现策略,系统中每个计算机上可被远程访问内存的页表由运行在该计算机上的系统精灵进程建立并维护,其他计算机上系统精灵进程维护的是上述页表的高速缓存,对该页表的修改操作只能在内存所在计算机上进行,在执行修改操作前,要先将其他计算机上该页表的高速缓存置为无效。
6.一种发起方触发的远程内存访问操作虚实地址转换方法,该方法的主要特征是将虚实地址转换由目的方的智能网卡转移到了发起方的主机上,开放存储空间的页表及其高速缓存由运行在各计算机上的系统精灵进程维护,这样当一个进程执行一个RMA操作,就会在其本地系统精灵进程维护的页表高速缓存中查找相应的表项,高速缓存命中就执行虚实地址转换,否则从目的方系统精灵进程获取所需表项,更新本地高速缓存,然后进行虚实地址转换。
7.根据权利要求6的发起方触发的远程内存访问操作虚实地址转换方法,其步骤如下:
1)系统初始启动时,在系统中各计算机上启动一个系统精灵进程;
2)当一个进程开放其部分存储空间,允许其它计算机上进程远程访问时,该进程所在目的方计算机上的系统精灵进程将相应存储空间锁定在物理内存中,并建立相应的页表项;
3)发起方计算机上的进程执行RMA操作时,在本地系统精灵进程维护的远程内存页表中查找相应的表项:如果命中,就完成虚实地址转换,将远程存储的物理地址写入RMA指令并发给目的方的智能网卡执行;否则,本地系统精灵进程会与目的方的系统精灵进程通信,获取所需表项,更新本地高速缓存,然后进行虚实地址转换;
4)一旦目的方要修改本地内存的页表,首先向其它维护有本地页表项的计算机上的系统精灵进程发出命令,将它们cache中的相应表项置为失效,然后再实施对本地表项的修改。
8.根据权利要求6或7的发起方触发的远程内存访问操作虚实地址转换方法,其特征在于,发起发触发的远程内存访问操作步骤如下:
1)在发起方用户程序向精灵进程查询目的方缓冲区物理地址;
2)精灵进程向用户程序返回该物理地址;
3)发起方用户程序使用物理地址进行RMA访问。
9.根据权利要求6或7的发起方触发的远程内存访问操作虚实地址转换方法,其特征在于,精灵进程的地址变换流程的步骤如下:
1)用户进程发出地址变换请求;
2)精灵进程查询远程内存页表Cache,若命中,则转至步骤7;
3)未命中时,精灵进程向目的方精灵进程发出地址变换请求;
4)目的方精灵进程查询本地内存页表;
5)目的方精灵进程返回地址转换结果;
6)精灵进程更新远程内存页表Cache;
7)精灵进程返回地址变换结果。
10、根据权利要求6的发起方触发的远程内存访问操作虚实地址转换方法,发起方的触发步骤如下:
由步骤3.1和3.2构成了用户程序中发起一次RMA操作的过程;步骤3.1先向本地精灵进程发出地址查询的请求,并等待本地精灵进程返回结果;步骤3.2在接到查询结果后,发起RMA操作;
步骤3.3和步骤3.4构成了与用户程序在同一计算机上的本地精灵进程流程中与用户程序交互的部分操作流程;步骤3.3等待用户程序的地址转换请求;步骤3.4在接到用户程序的地址转换请求后进行地址转换,并返回物理地址;执行完毕后,精灵进程将转回步骤3.3继续等待用户程序的地址转换请求。
11、根据权利要求6的发起方触发的远程内存访问操作虚实地址转换方法,精灵进程的步骤如下:
步骤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等待下一个请求的到达。
CNB2003101170389A 2003-12-04 2003-12-04 一种发起方触发的远程内存访问操作虚实地址转换方法 Expired - Fee Related CN1280735C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2003101170389A CN1280735C (zh) 2003-12-04 2003-12-04 一种发起方触发的远程内存访问操作虚实地址转换方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2003101170389A CN1280735C (zh) 2003-12-04 2003-12-04 一种发起方触发的远程内存访问操作虚实地址转换方法

Publications (2)

Publication Number Publication Date
CN1547126A true CN1547126A (zh) 2004-11-17
CN1280735C CN1280735C (zh) 2006-10-18

Family

ID=34337680

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2003101170389A Expired - Fee Related CN1280735C (zh) 2003-12-04 2003-12-04 一种发起方触发的远程内存访问操作虚实地址转换方法

Country Status (1)

Country Link
CN (1) CN1280735C (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100377117C (zh) * 2005-07-14 2008-03-26 中国科学院计算技术研究所 用于虚实地址变换及读写高速缓冲存储器的方法及装置
CN100437522C (zh) * 2005-09-09 2008-11-26 中国科学院计算技术研究所 一种远程内存服务器及其实现方法
CN100520739C (zh) * 2006-12-30 2009-07-29 中国科学院计算技术研究所 一种快速虚实地址转换装置及其方法
CN1614577B (zh) * 2004-12-02 2010-11-24 中国科学院计算技术研究所 一种基于远程直接存储访问的图形终端方法和系统
CN107766259A (zh) * 2016-08-23 2018-03-06 华为技术有限公司 页表缓存的访问方法、页表缓存、处理器芯片和存储单元
WO2023044861A1 (en) * 2021-09-26 2023-03-30 Intel Corporation Concept for providing access to remote memory

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1614577B (zh) * 2004-12-02 2010-11-24 中国科学院计算技术研究所 一种基于远程直接存储访问的图形终端方法和系统
CN100377117C (zh) * 2005-07-14 2008-03-26 中国科学院计算技术研究所 用于虚实地址变换及读写高速缓冲存储器的方法及装置
CN100437522C (zh) * 2005-09-09 2008-11-26 中国科学院计算技术研究所 一种远程内存服务器及其实现方法
CN100520739C (zh) * 2006-12-30 2009-07-29 中国科学院计算技术研究所 一种快速虚实地址转换装置及其方法
CN107766259A (zh) * 2016-08-23 2018-03-06 华为技术有限公司 页表缓存的访问方法、页表缓存、处理器芯片和存储单元
CN107766259B (zh) * 2016-08-23 2021-08-20 华为技术有限公司 页表缓存的访问方法、页表缓存、处理器芯片和存储单元
WO2023044861A1 (en) * 2021-09-26 2023-03-30 Intel Corporation Concept for providing access to remote memory

Also Published As

Publication number Publication date
CN1280735C (zh) 2006-10-18

Similar Documents

Publication Publication Date Title
US10963387B2 (en) Methods of cache preloading on a partition or a context switch
JP5603507B2 (ja) ディレクトリベースのマルチコアアーキテクチャ上におけるキャッシュ状態の移動の加速
US9612975B2 (en) Page cache device and method for efficient mapping
US20050080986A1 (en) Priority-based flash memory control apparatus for XIP in serial flash memory,memory management method using the same, and flash memory chip thereof
US9336154B2 (en) Data bus efficiency via cache line usurpation
CN1955948A (zh) 用于管理高速缓存数据的数字数据处理设备和方法
TWI386810B (zh) 多處理器系統以目錄為主之資料傳輸協定
US7752386B1 (en) Application performance acceleration
US9411518B2 (en) Method, computer program product and apparatus for accelerating responses to requests for transactions involving data operations
EP3211547B1 (en) System and methods for providing fast cacheable access to a key-value device through a filesystem interface
US20240086403A1 (en) In-memory database (imdb) acceleration through near data processing
WO2016015583A1 (zh) 一种内存管理方法、装置以及内存控制器
CN1896972A (zh) 用于虚实地址变换及读写高速缓冲存储器的方法及装置
CN1280735C (zh) 一种发起方触发的远程内存访问操作虚实地址转换方法
CN107562806B (zh) 混合内存文件系统的自适应感知加速方法及系统
CN1238792C (zh) 一种数据库访问方法及实现该方法的客户机/服务器系统
CN111787062B (zh) 面向广域网络文件系统的自适应快速增量预读方法
TW200413912A (en) Execution of modified cheney scanning in a multithreaded processing environment
CN111273860B (zh) 一种基于网络和页粒度管理的分布式内存管理方法
CN110941565B (zh) 用于芯片存储访问的内存管理方法和装置
US20050216695A1 (en) Memory extension for a data processor to provide both common and separate physical memory areas for virtual memory spaces
CN116541415A (zh) 用于加速的装置、系统和方法
US6859868B2 (en) Object addressed memory hierarchy
JP3709586B2 (ja) 階層記憶システムにおけるデバイスアクセス方法
US20080147984A1 (en) Method and apparatus for faster execution path

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20170630

Address after: 100190 room 10, floor 6, scientific research complex, No. 1044 South Road, Haidian District Academy of Sciences, Beijing

Patentee after: Beijing Kejiyin Technology Co. Ltd.

Address before: 100080 No. 6 South Road, Zhongguancun Academy of Sciences, Beijing

Patentee before: Institute of Computing Technology, Chinese Academy of Sciences

TR01 Transfer of patent right

Effective date of registration: 20191223

Address after: Room 801, building 6, Qilu Chuangzhi Park, 2600 Wenhua South Road, Kuiwen District, Weifang City, Shandong Province

Patentee after: Weifang Zhongke Zhishi Information Technology Co., Ltd

Address before: 100190 1044, room 10, research complex, 6 South Road, Haidian District Science Academy, Beijing.

Patentee before: Beijing Kejiyin Technology Co. Ltd.

TR01 Transfer of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20061018

Termination date: 20201204

CF01 Termination of patent right due to non-payment of annual fee