用于NUMA系统的内存访问方法和装置制造方法及图纸

技术编号:35067754 阅读:26 留言:0更新日期:2022-09-28 11:26
提供了一种用于NUMA系统的内存访问方法和装置,所述NUMA系统包括多个节点,所述多个节点中的每个节点被配置为运行预定程序并且包括为所述预定程序分配的预设内存,其中,相同的全局物理地址分别与所述多个节点中的每个节点的预设内存中的每个预设内存相应,所述方法包括:当所述预定程序在所述节点中的第一节点处运行时,针对对于第一节点为本地内存的第一预设内存执行操作;将针对第一预设内存执行的操作分别同步到对于所述多个节点中的其它节点中的每个节点为本地内存的每个预设内存,其中,所述多个节点中的每个节点被配置为:当在所述每个节点运行所述预定程序时,使用所述相同的全局物理地址访问其本地预设内存。述相同的全局物理地址访问其本地预设内存。述相同的全局物理地址访问其本地预设内存。

【技术实现步骤摘要】
用于NUMA系统的内存访问方法和装置


[0001]本申请涉及内存访问,更具体地,涉及一种用于非一致内存访问(Non

uniform Memory Access,NUMA)系统的内存访问方法和装置。

技术介绍

[0002]基于节点和内存的相对位置,NUMA系统可包括本地内存和远端内存。设置在节点处的中央处理器(Central Processing Unit,CPU)等设备可访问其他节点的远端内存,从而潜在地增加访问延迟并且/或者降低访问性能。

技术实现思路

[0003]本专利技术的实施例可提供一种用于NUMA系统的内存访问方法和/或装置,所述方法和/或装置可使得NUMA系统中的节点最小化或避免远端内存访问。
[0004]根据本公开的实施例,提供一种用于NUMA系统的内存访问方法,所述NUMA系统包括多个节点,所述多个节点中的每个节点被配置为运行预定程序并且包括为所述预定程序分配的预设内存,其中,相同的全局物理地址与所述多个节点中的每个节点的预设内存中的每个预设内存分别相应,所述方法包括:当所述预定程序在所述节点中的第一节点处运行时,针对对于第一节点为本地内存的第一预设内存执行操作;将针对第一预设内存执行的操作分别同步到对于所述多个节点中的其它节点中的每个节点为本地内存的每个预设内存,其中,所述多个节点中的每个节点被配置为:当在所述每个节点运行所述预定程序时,使用所述相同的全局物理地址访问其本地预设内存。
[0005]根据本实施例,一种内存访问方法基于NUMA系统,其中,所述NUMA系统包括至少两个节点,所述至少两个节点中的被配置为运行预定程序的节点中的每个节点的内存中包括为所述预定程序分配的预设内存,被配置为运行所述预定程序的节点中的每个节点的预设内存对应的全局物理地址相同,所述方法包括:当所述预定程序在被配置为运行所述预定程序的节点中的第一节点运行时,对所述第一节点的预设内存进行操作;将对所述第一节点的预设内存进行的操作同步到被配置为运行所述预定程序的节点中的其他节点的预设内存,以使得所述其它节点中的任一节点运行所述预定程序时访问本地的预设内存。
[0006]由于相同的全局物理地址分别与每个节点的本地物理内存相应,且每个节点的本地物理内存被同步更新,因此,当软件在不同节点运行时可以保证软件的程序具有连续的全局物理地址空间,从而避免了对页表页(Page Table Pages)进行迁移或备份的复杂操作。
[0007]可选地,所述操作包括以下项中的至少一个:请求所述第一节点为所述预定程序在所述预设内存分配第一物理地址以用于存储数据;请求所述第一节点更新所述预定程序在所述预设内存的第二物理地址中存储的数据;请求所述第一节点释放所述预定程序在所述预设内存的第三物理地址中存储的数据。
[0008]可选地,当所述操作为请求所述第一节点为所述预定程序在所述预设内存分配第
一物理地址以用于存储数据时,将对所述第一节点的所述预设内存进行的操作同步到所述其它节点的预设内存的步骤包括:向所述其它节点发送第一同步消息,以使得所述其它节点为所述预定程序在预设内存分配第一物理地址并存储数据;当所述操作为请求所述第一节点更新所述预定程序在所述预设内存的第二物理地址中存储的数据时,将对所述第一节点的所述预设内存进行的操作同步到所述其它节点的预设内存的步骤包括:向所述其它节点发送第二同步消息,以使得所述其它节点更新所述预定程序在预设内存的第二物理地址中存储的数据;当所述操作为请求所述第一节点释放所述预定程序在所述预设内存的第三物理地址中存储的数据时,将对所述第一节点的所述预设内存进行的操作同步到所述其它节点的预设内存的步骤包括:向其它节点发送第三同步消息,以使得所述其它节点释放所述预定程序在预设内存的第三物理地址中存储的数据。
[0009]根据本公开的实施例,提供一种用于NUMA系统的内存访问装置,所述NUMA系统包括多个节点,所述多个节点中的每个节点被配置为运行预定程序并且包括为所述预定程序分配的预设内存,其中,相同的全局物理地址分别与所述多个节点中的每个节点的预设内存中的每个预设内存相应,所述装置包括:操作模块,被配置为当所述预定程序在所述节点中的第一节点处运行时,针对对于第一节点为本地内存的第一预设内存执行操作;以及同步模块,被配置为将针对第一预设内存执行的操作分别同步到对于所述多个节点中的其它节点中的每个节点为本地内存的每个预设内存,其中,所述多个节点中的每个节点被配置为:当在所述每个节点运行所述预定程序时,使用所述相同的全局物理地址访问其本地预设内存。
[0010]根据实施例,当应用程序在一个节点处执行写入新数据、更新数据和/或删除数据的操作时,本公开的方法通过同步消息将操作同步到其它节点。由于每个节点的与应用程序相应的内存具有相同的全局物理地址,使得当应用程序在节点运行时,运行应用程序的节点可避免远端访问。
[0011]可选地,所述方法还包括:在被配置为运行预定程序的节点中针对所述预定程序配置所述预设内存。
[0012]可选地,在被配置为运行预定程序的节点中针对所述预定程序配置所述预设内存包括:在配置为运行预定程序的节点的系统地址映射(SAM)表中针对所述预定程序配置所述预设内存。
[0013]可选地,所述NUMA系统包括的基本上所有节点可以为被配置为运行预定程序的节点。
[0014]根据实施例,内存访问装置可基于NUMA系统,其中,所述NUMA系统包括至少两个节点,所述至少两个节点中的被配置为运行预定程序的节点中的每个节点的内存中包括为预定程序分配的预设内存,所述被配置为运行预定程序的节点中的每个节点的预设内存对应的全局物理地址相同,所述装置包括:操作模块,被配置为当预定程序在所述被配置为运行预定程序的节点中的第一节点运行时,对所述第一节点的预设内存进行操作;以及同步模块,被配置为将对所述第一节点的预设内存进行的操作同步到所述被配置为运行所述预定程序的节点中的其他它节点的预设内存,以使得所述其它节点中的任一节点运行所述预定程序时访问本地的预设内存。
[0015]由于相同的全局物理地址分别与每个节点的本地物理内存相应,且每个节点的本
地物理内存被同步更新,因此,当软件在不同节点运行时可以保证程序具有连续的全局物理地址空间,从而避免了对页表页(Page Table Pages)进行迁移或备份的复杂操作。
[0016]可选地,所述操作模块被配置为执行以下操作中的至少一种:请求所述第一节点为所述预定程序在所述预设内存分配第一物理地址以用于存储数据;请求所述第一节点更新所述预定程序在所述预设内存的第二物理地址中存储的数据;请求所述第一节点释放所述预定程序在所述预设内存的第三物理地址中存储的数据。
[0017]可选地,当所述操作模块被配置为请求所述第一节点为所述预定程序在所述预设内存分配第一物理地址以用于存储数据时,所述同步模块被配置为:向所述其它节点发送第一同步消息,以使得所述其它节点为所述预定程序在预设内存分配第一物理本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于非一致性内存访问NUMA系统的内存访问方法,所述NUMA系统包括多个节点,所述多个节点中的每个节点被配置为运行预定程序并且包括为所述预定程序分配的预设内存,其中,相同的全局物理地址分别与所述多个节点中的每个节点的预设内存中的每个预设内存相应,所述方法包括:当所述预定程序在所述多个节点中的第一节点上运行时,针对对于所述第一节点为本地内存的第一预设内存执行操作;将针对第一预设内存执行的操作分别同步到对于所述多个节点中的其它节点中的每个节点为本地内存的每个预设内存,其中,所述多个节点中的每个节点被配置为:当在所述每个节点运行所述预定程序时,使用所述相同的全局物理地址访问其本地预设内存。2.根据权利要求1所述的方法,其中,所述操作包括以下项中的至少一个:请求所述第一节点为所述预定程序在所述预设内存分配第一物理地址以用于存储数据;请求所述第一节点更新所述预定程序在所述预设内存的第二物理地址中存储的数据;请求所述第一节点释放所述预定程序在所述预设内存的第三物理地址中存储的数据。3.根据权利要求2所述的方法,其中,当所述操作为请求所述第一节点为所述预定程序在所述预设内存分配第一物理地址以用于存储数据时,将对所述第一节点的所述预设内存进行的操作同步到所述其它节点的预设内存的步骤包括:向所述其它节点发送第一同步消息,以使得所述其它节点为所述预定程序在预设内存分配第一物理地址并存储数据;当所述操作为请求所述第一节点更新所述预定程序在所述预设内存的第二物理地址中保存的数据时,将对所述第一节点的所述预设内存进行的操作同步到所述其它节点的预设内存的步骤包括:向所述其它节点发送第二同步消息,以使得所述其它节点更新所述预定程序在预设内存的第二物理地址中保存的数据;当所述操作为请求所述第一节点释放所述预定程序在所述预设内存的第三物理地址中保存的数据时,将对所述第一节点的预设内存进行的操作同步到所述其它节点的预设内存的步骤包括:向其它节点发送第三同步消息,以使得所述其它节点释放所述预定程序在预设内存的第三物理地址中保存的数据。4.根据权利要求1所述的方法,其中,所述方法还包括:在被配置为运行所述预定程序的节点中针对所述预定程序配置所述预设内存。5.根据权利要求4所述的方法,其中,在被配置为运...

【专利技术属性】
技术研发人员:戴月华王磊许莹赵民栋
申请(专利权)人:三星电子株式会社
类型:发明
国别省市:

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

1