计算机设备的内存访问方法和计算机设备技术

技术编号:24120947 阅读:13 留言:0更新日期:2020-05-13 03:04
本公开提供了一种计算机设备的内存访问方法,该计算机设备包括经由互连总线连接的多个节点,每个节点包括集成的处理器核心和缓存、以及内存,该方法包括:多个节点中的节点在其本地存储其他节点的缓存中的缓存行,形成为远端缓存本地映像;以及该节点的处理器核心从该远端缓存本地映像访问缓存行。根据本公开,计算机设备中的节点将其他节点处的缓存数据镜像到本地存储,从而减少了跨节点访问内存的次数,提高了大内存应用场景下的计算机性能。

Memory access method and computer equipment of computer equipment

【技术实现步骤摘要】
计算机设备的内存访问方法和计算机设备
本公开涉及计算机
,更具体地,涉及一种计算机设备的内存访问方法以及计算机设备。
技术介绍
现有的基于NUMA(非一致性内存访问)架构的服务器可以把几十个CPU(甚至上百个CPU)组合在一个服务器内,具有良好的扩展能力。在一个NUMA架构的服务器中,多个节点通过互连网络连接在一起,每个节点具有独立的CPU、缓存、内存和I/O设备,并且所有内存在整个服务器内都是共享的。在这种情况下,CPU在访问节点内的本地内存要比访问节点外的远端内存更快,延时更少。然而,在一些大内存使用的应用(例如数据库查表)下,各节点的CPU无法避免地要频繁访问远端内存,这大大降低了服务器的性能。
技术实现思路
有鉴于此,提供了一种计算机设备的内存访问方法及计算机设备,计算机设备具有多个节点,该计算机设备中的节点将其他节点处的缓存数据镜像到本地存储,从而减少了跨节点访问内存的次数,提高了大内存应用场景下的计算机性能。根据本公开的第一方面,提供了一种计算机设备的内存访问方法,所述计算机设备包括经由互连总线连接的多个节点,每个节点包括集成的处理器核心和缓存、以及内存,所述方法包括:所述多个节点中的节点在其本地存储其他节点的缓存中的缓存行,形成为远端缓存本地映像RCLS;以及所述节点的处理器核心从所述RCLS访问所述缓存行。在一个可能实施例中,所述节点可以包括多个处理器核心,所述缓存可以是所述多个处理器核心共享的L3缓存。在一个可能的实施例中,所述RCLS存储在所述节点的内存或L4缓存中。在一个可能的实施例中,所述RCLS的缓存行可以定期更新,或者可以在所述其他节点的缓存中的缓存行不频繁读写时更新。在一个可能的实施例中,所述缓存行可以包括写历史信息,所述写历史信息记录所述缓存行在L3缓存被写的次数,并且可以在被传输到所述RCLS时清零或修改为在所述L3缓存和所述RCLS中一致。在一个可能的实施例中,所述方法还可以包括:所述节点的处理器核心在所述互连总线上广播缓存行请求消息;所述节点的处理器核心接收所述其他节点的响应消息,所述响应消息指示所述其他节点在其缓存中具有所述缓存行,所述响应消息包括所述缓存行的写历史信息;所述节点的处理器核心比较所述RCLS中缓存行的写历史信息和所述响应消息的写历史信息;根据所述比较,所述节点的处理器核心从所述RCLS获取所述缓存行或者从所述其他节点获取所述缓存行。在一个可能的实施例中,当所述比较指示所述其他节点的缓存行与所述RCLS的缓存行相同时,可以从所述RCLS获取所述缓存行;当所述比较指示其他节点的缓存行与所述RCLS的缓存行不同时,可以从所述其他节点获取所述缓存行,并更新所述RCLS。在一个可能的实施例中,所述方法还可以包括,在所述节点的处理器核心获取所述缓存行之后,当所述访问是读操作时,修改所述其他节点的缓存中的所述缓存行的标志位为共享;当所述访问是写操作时,修改所述其他节点的缓存中的所述缓存行的标志位为无效。根据本公开的第二方面,提供了一种计算机设备,所述计算机设备包括经由互连总线连接的多个节点,每个节点包括集成的处理器核心和缓存、以及内存,其中所述多个节点中的节点在其本地存储有远端缓存本地映像RCLS,所述RCLS用于存储其他节点的缓存中的缓存行和向所述节点的处理器核心提供所述缓存行。在一个可能的实施例中,所述节点可以包括多个处理器核心,所述缓存是所述多个处理器核心共享的L3缓存。在一个可能的实施例中,所述RCLS可以存储在所述节点的内存或L4缓存中。在一个可能的实施例中,所述RCLS的缓存行可以定期更新,或者在所述其他节点的缓存中的缓存行可以不频繁读写时更新。在一个可能的实施例中,所述缓存行可以包括写历史信息,所述写历史信息记录所述缓存行在L3缓存被写的次数,并且可以在被传输到所述RCLS时清零或修改为在所述L3缓存和所述RCLS中一致。在一个可能的实施例中,所述节点的处理器核心可以被配置用于:在所述互连总线上广播缓存行请求消息;接收所述其他节点的响应消息,所述响应消息指示所述其他节点在其缓存中具有所述缓存行,所述响应消息包括所述缓存行的写历史信息;比较所述RCLS中缓存行的写历史信息和所述响应消息的写历史信息;根据所述比较,从所述RCLS获取所述缓存行或者从所述其他节点获取所述缓存行。在一个可能的实施例中,所述节点的处理器核心还可以被配置用于当所述比较指示所述其他节点的缓存行与所述RCLS的缓存行相同时,从所述RCLS获取所述缓存行;当所述比较指示其他节点的缓存行与所述RCLS的缓存行不同时,从所述其他节点获取所述缓存行,并更新所述RCLS。在一个可能的实施例中,所述节点的处理器核心还被配置用于在获取所述缓存行之后,当所述访问是读操作时,修改所述其他节点的缓存中的所述缓存行的标志位为共享;当所述访问是写操作时,修改所述其他节点的缓存中的所述缓存行的标志位为无效。本申请的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例而了解。本申请的目的和其他优点可通过在所写的说明书以及附图中所特别指出的结构来实现和获得。附图说明当结合附图时,通过引用以下具体实施方式,本专利技术的前述方面以及伴随的优点中的许多优点将变得更容易理解,附图中相似的附图标记指的是相似的部分,除非另有规定。图1示出了根据本公开实施例的一种NUMA架构的计算机设备的示意图。图2示出了根据本公开实施例的一种NUMA架构的内存访问方法的示意流程图。图3示出了根据本公开实施例的另一种NUMA架构的计算机设备的示意图。图4示出了根据本公开实施例的另一种NUMA的内存访问方法的示意流程图。具体实施方式以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。这里使用的词语“一”、“一个(种)”和“该”等也应包括“多个”、“多种”的意思,除非上下文另外明确指出。此外,在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。举例来说,在本公开中术语“缓存”具有与“高速缓存(cache)”相同的含义,术语“内存”具有与“主存(memory)”、“系统存储器”的相同的含义图1示出了根据本公开实施例的一种NUMA架构的计算机设备100的示意图。计算机设备100可以是例如服务器设备、家用电脑、高性能计算机(HPC)本文档来自技高网...

【技术保护点】
1.一种计算机设备的内存访问方法,所述计算机设备包括经由互连总线连接的多个节点,每个节点包括集成的处理器核心和缓存、以及内存,所述方法包括:/n所述多个节点中的节点在其本地存储其他节点的缓存中的缓存行,形成为远端缓存本地映像RCLS;以及/n所述节点的处理器核心从所述RCLS访问所述缓存行。/n

【技术特征摘要】
1.一种计算机设备的内存访问方法,所述计算机设备包括经由互连总线连接的多个节点,每个节点包括集成的处理器核心和缓存、以及内存,所述方法包括:
所述多个节点中的节点在其本地存储其他节点的缓存中的缓存行,形成为远端缓存本地映像RCLS;以及
所述节点的处理器核心从所述RCLS访问所述缓存行。


2.如权利要求1所述的方法,其中,所述节点包括多个处理器核心,所述缓存是所述多个处理器核心共享的L3缓存。


3.如权利要求1所述的方法,其中,所述RCLS存储在所述节点的内存或L4缓存中。


4.如权利要求1所述的方法,其中,所述RCLS的缓存行定期更新,或者在所述其他节点的缓存中的缓存行不频繁读写时更新。


5.如权利要求1所述的方法,其中,所述缓存行包括写历史信息,所述写历史信息记录所述缓存行在L3缓存被写的次数,并且在被传输到所述RCLS时清零或修改为在所述L3缓存和所述RCLS中一致。


6.如权利要求1所述的方法,所述方法还包括:
所述节点的处理器核心在所述互连总线上广播缓存行请求消息;
所述节点的处理器核心接收所述其他节点的响应消息,所述响应消息指示所述其他节点在其缓存中具有所述缓存行,所述响应消息包括所述缓存行的写历史信息;
所述节点的处理器核心比较所述RCLS中缓存行的写历史信息和所述响应消息的写历史信息;以及
根据所述比较,所述节点的处理器核心从所述RCLS获取所述缓存行或者从所述其他节点获取所述缓存行。


7.如权利要求6所述的方法,其中,
当所述比较指示所述其他节点的缓存行与所述RCLS的缓存行相同时,从所述RCLS获取所述缓存行;以及
当所述比较指示其他节点的缓存行与所述RCLS的缓存行不同时,从所述其他节点获取所述缓存行,并更新所述RCLS。


8.如权利要求1所述的方法,在所述节点的处理器核心获取所述缓存行之后,所述方法还包括
当所述访问是读操作时,修改所述其他节点的缓存中的所述缓存行的标志位为共享;以及
当所述访问是写操作时,修改所述其他节点的缓存中的所述缓存行的标志位为无效。

【专利技术属性】
技术研发人员:蔡云龙
申请(专利权)人:海光信息技术有限公司
类型:发明
国别省市:天津;12

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

1