多节点缓存一致性维护方法、装置、设备、介质及产品与流程
- 国知局
- 2024-07-31 23:14:28
本发明涉及计算机,特别是涉及一种多节点缓存一致性维护方法、装置、设备、介质及产品。
背景技术:
1、数据处理量的爆炸增长和人工智能、云计算等技术的快速发展对计算系统的性能要求越来越高,但是随着摩尔定律逼近极限,单个处理器中晶体管数目的增加速度逐渐放缓。中央处理器(central processing unit,简称cpu)的性能提升主要依赖内核数量的增加,随着核心数量的增多,传统采用对称多处理器系统架构的处理器的内存控制器读取内存的性能瓶颈越来越明显,导致其扩展能力非常有限。基于此,非一致性内存访问(non-uniform memory access,简称numa)架构成为中央处理器发展的一种趋势。
2、在numa架构中,每个计算节点均拥有各自的内存,且该内存也可被其它节点访问,导致中央处理器核心在访问自身节点内内存时的访存速度要大于访问其它节点内内存时的访存速度。在相关的技术方案中,为了维护系统的缓存一致性,某一计算节点的所有缓存一致性请求均会直接进入计算节点内的主节点模块进行处理,这就进一步导致跨节点缓存一致性请求的处理效率下降,进而影响系统的整体计算性能。
技术实现思路
1、本发明的目的是提供一种多节点缓存一致性维护方法、装置、设备、介质及产品,能够大幅提高跨节点缓存一致性请求的处理速度,进而提高整体计算性能。
2、为了解决上述技术问题,本发明提供一种多节点缓存一致性维护方法,应用于本地计算节点的节点控制器,所述方法包括:
3、接收第一远程计算节点发送的第一缓存一致性请求;
4、解析所述第一缓存一致性请求的数据包中的地址域段,查询除了所述第一远程计算节点之外的其它远程计算节点的缓存中是否有与解析结果对应的目标数据;
5、若是,则向其它远程计算节点发送第一监听请求,以使其它远程计算节点返回所述目标数据;
6、将所述目标数据发送至所述第一远程计算节点;
7、若否,则将所述第一缓存一致性请求转发至所述本地计算节点内的主节点模块。
8、第一方面,在本发明提供的上述多节点缓存一致性维护方法中,还包括:
9、接收所述本地计算节点的第二监听请求;
10、解析所述第二监听请求的数据包中的地址域段,当查询到目标远程计算节点的缓存中有与解析结果对应的处于共享状态的脏数据,则判定自身的缓存模块中存储有所述脏数据,将所述脏数据取出并返回至所述本地计算节点内的主节点模块;
11、同时将所述第二监听请求转发至所述目标远程计算节点;所述目标远程计算节点无需返回数据。
12、另一方面,在本发明提供的上述多节点缓存一致性维护方法中,解析所述第一缓存一致性请求的数据包中的地址域段,查询除了所述第一远程计算节点之外的其它远程计算节点的缓存中是否有与解析结果对应的目标数据,包括:
13、解析所述第一缓存一致性请求的数据包中的地址域段,得到第一目标地址信息;
14、根据所述第一目标地址信息,查询自身的目录模块;
15、判断所述目录模块中记录的除了所述第一远程计算节点之外的其它远程计算节点的缓存中是否具有所述第一目标地址信息对应的目标数据。
16、另一方面,在本发明提供的上述多节点缓存一致性维护方法中,解析所述第一缓存一致性请求的数据包中的地址域段,得到第一目标地址信息,包括:
17、当所有的计算节点为 m个时,解析所述第一缓存一致性请求的数据包中从初始位至位的地址编码;
18、将解析得到的地址信息作为第一目标地址信息。
19、另一方面,在本发明提供的上述多节点缓存一致性维护方法中,向其它远程计算节点发送第一监听请求,以使其它远程计算节点返回所述目标数据,包括:
20、向缓存状态权限最高的其它远程计算节点发送第一监听请求,以使缓存状态权限最高的其它远程计算节点返回所述目标数据。
21、另一方面,在本发明提供的上述多节点缓存一致性维护方法中,将所述目标数据发送至所述第一远程计算节点,包括:
22、当所述目标数据为脏数据时,将所述目标数据发送至所述第一远程计算节点,同时将所述目标数据存储至自身的缓存模块中;
23、当所述目标数据为非脏数据时,只将所述目标数据发送至所述第一远程计算节点。
24、另一方面,在本发明提供的上述多节点缓存一致性维护方法中,在接收第一远程计算节点发送的第一缓存一致性请求之前,还包括:
25、当所述本地计算节点内的主节点模块中的目录记录有一内存地址对应的缓存行数据在所述节点控制器中的状态为缓存行仅存在于当前高速缓存中的状态时,利用自身的目录模块记录缓存行数据存在于第二远程计算节点中,且在所述第二远程计算节点中的状态为缓存行仅存在于当前高速缓存中的状态;
26、对应地,判断所述目录模块中记录的除了所述第一远程计算节点之外的其它远程计算节点的缓存中是否具有所述第一目标地址信息对应的目标数据,包括:
27、判断所述目录模块中记录的所述第二远程计算节点的缓存中是否具有所述第一目标地址信息对应的目标数据;
28、对应地,向缓存状态权限最高的其它远程计算节点发送第一监听请求,以使缓存状态权限最高的其它远程计算节点返回所述目标数据,包括:
29、向所述第二远程计算节点发送第一监听请求,以使所述第二远程计算节点返回所述目标数据。
30、另一方面,在本发明提供的上述多节点缓存一致性维护方法中,在所述第二远程计算节点返回所述目标数据的同时,还包括:
31、所述第二远程计算节点返回监听响应信息,并根据监听响应信息将缓存行数据状态更新为缓存行可能存储在其它缓存中并且是脏的状态;
32、对应地,将所述目标数据发送至所述第一远程计算节点,包括:
33、将所述目标数据根据接收的监听响应信息完成监听响应,并将完成响应信息和所述目标数据发送至所述第一远程计算节点。
34、另一方面,在本发明提供的上述多节点缓存一致性维护方法中,在将完成响应信息和所述目标数据发送至所述第一远程计算节点的同时,还包括:
35、将所述完成响应信息写入自身的缓存模块,并更新自身的目录模块中的目录信息;
36、向所述本地计算节点内的主节点模块发送目录同步请求,以更新所述本地计算节点内的主节点模块的目录信息。
37、另一方面,在本发明提供的上述多节点缓存一致性维护方法中,更新所述本地计算节点内的主节点模块的目录信息,包括:
38、所述本地计算节点内的主节点模块中的目录记录的缓存行数据在所述节点控制器中的状态更新为缓存行可能存储在其它缓存中并且是脏的状态;
39、向所述节点控制器发送针对所述目录同步请求的响应。
40、另一方面,在本发明提供的上述多节点缓存一致性维护方法中,在所述第一远程计算节点接收到所述完成响应信息之后,还包括:
41、根据所述完成响应信息将缓存行数据状态更新为缓存行可能存储在其它缓存中并且可能已被修改的状态;
42、向所述节点控制器发送针对所述完成响应信息的响应。
43、另一方面,在本发明提供的上述多节点缓存一致性维护方法中,解析所述第二监听请求的数据包中的地址域段,当查询到目标远程计算节点的缓存中有与解析结果对应的处于共享状态的脏数据,则判定自身的缓存模块中存储有所述脏数据,将所述脏数据取出并返回至所述本地计算节点内的主节点模块,包括:
44、解析所述第二监听请求的数据包中的地址域段,得到第二目标地址信息;
45、根据所述第二目标地址信息,查询自身的目录模块;
46、若所述目录模块中记录的所述目标远程计算节点内具有所述第二目标地址信息对应的脏数据,且所述脏数据为共享状态,则判定所述脏数据同样存储在自身的缓存模块中;
47、根据所述第二目标地址信息将所述脏数据取出,并发送至所述本地计算节点内的主节点模块。
48、另一方面,在本发明提供的上述多节点缓存一致性维护方法中,解析所述第二监听请求的数据包中的地址域段,得到第二目标地址信息,包括:
49、当所有计算节点为 m个时,解析所述第二监听请求的数据包中从初始位至位的地址编码;
50、将解析得到的地址信息作为第二目标地址信息。
51、另一方面,在本发明提供的上述多节点缓存一致性维护方法中,在接收所述本地计算节点的第二监听请求之前,还包括:
52、当所述本地计算节点内的主节点模块中的目录记录有一内存地址对应的缓存行数据在所述节点控制器中的状态为缓存行可能存储在其他缓存中并且是脏的状态时,利用自身的目录模块记录缓存行数据只存在于所述目标远程计算节点中,且在所述目标远程计算节点中的状态为缓存行可能存储在其他缓存中并且是脏的状态。
53、另一方面,在本发明提供的上述多节点缓存一致性维护方法中,接收所述本地计算节点的第二监听请求,包括:
54、当所述本地计算节点内的主节点模块接收到所述目标远程计算节点发送的第二缓存一致性请求,且查询到所述第二缓存一致性请求的地址数据为位于所述目标远程计算节点的缓存内且处于共享状态的脏数据时,接收所述本地计算节点发送的第二监听请求。
55、另一方面,在本发明提供的上述多节点缓存一致性维护方法中,在将所述第二监听请求转发至所述目标远程计算节点之后,还包括:
56、所述目标远程计算节点根据所述第二监听请求将缓存行数据状态更新为缓存行可能存储在其他缓存中并且可能已被修改的状态;
57、向所述节点控制器返回针对所述第二监听请求的监听响应信息。
58、另一方面,在本发明提供的上述多节点缓存一致性维护方法中,根据所述第二目标地址信息将所述脏数据取出,并发送至所述本地计算节点内的主节点模块,包括:
59、根据所述第二目标地址信息将所述脏数据取出,将所述脏数据和监听响应信息发送至所述本地计算节点内的主节点模块,以便所述本地计算节点内的主节点模块接收到所述脏数据和监听响应信息后更新目录信息。
60、另一方面,在本发明提供的上述多节点缓存一致性维护方法中,在向所述节点控制器返回针对所述第二监听请求的监听响应信息之后,还包括:
61、将自身的目录模块中的目录信息记录的缓存行数据在目标远程节点中的状态更新为缓存行可能存储在其他缓存中并且可能已被修改的状态;
62、同时向所述本地计算节点内的主节点模块发送目录同步请求,以使所述本地计算节点内的主节点模块中的目录记录的缓存行数据在所述节点控制器中的状态更新为缓存行可能存储在其他缓存中并且可能已被修改的状态。
63、为了解决上述技术问题,本发明还提供一种多节点缓存一致性维护装置,应用于本地计算节点的节点控制器,所述装置包括:
64、请求接收模块,用于接收第一远程计算节点发送的第一缓存一致性请求;
65、请求处理模块,用于解析所述第一缓存一致性请求的数据包中的地址域段,查询除了所述第一远程计算节点之外的其它远程计算节点的缓存中是否有与解析结果对应的目标数据;
66、请求路由模块,用于当查询到除了所述第一远程计算节点之外的其它远程计算节点的缓存中有与解析结果对应的目标数据时,向其它远程计算节点发送第一监听请求,以使其它远程计算节点返回所述目标数据;将所述目标数据发送至所述第一远程计算节点;还用于当查询到除了所述第一远程计算节点之外的其它远程计算节点的缓存中未有与解析结果对应的目标数据时,将所述第一缓存一致性请求转发至所述本地计算节点内的主节点模块。
67、另一方面,在本发明提供的上述多节点缓存一致性维护装置中,所述请求接收模块,还用于接收所述本地计算节点的第二监听请求;
68、所述请求处理模块,还用于解析所述第二监听请求的数据包中的地址域段,查询目标远程计算节点的缓存中是否有与解析结果对应的目标数据;
69、所述请求路由模块,还用于当查询到目标远程计算节点的缓存中有与解析结果对应的处于共享状态的脏数据,则判定自身的缓存模块中存储有所述脏数据,并将所述脏数据返回至所述本地计算节点内的主节点模块;同时将所述第二监听请求转发至所述目标远程计算节点;所述目标远程计算节点无需返回数据。
70、为了解决上述技术问题,本发明还提供一种多节点缓存一致性维护设备,所述设备包括:
71、存储器,用于存储计算机程序;
72、处理器,用于执行所述计算机程序时实现上述多节点缓存一致性维护方法的步骤。
73、为了解决上述技术问题,本发明还提供一种非易失性存储介质,所述非易失性存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述多节点缓存一致性维护方法的步骤。
74、为了解决上述技术问题,本发明还提供一种计算机程序产品,包括计算机程序/指令,所述计算机程序/指令被处理器执行时实现上述多节点缓存一致性维护方法的步骤。
75、从上述技术方案可以看出,本发明所提供的一种多节点缓存一致性维护方法,应用于本地计算节点的节点控制器,该方法包括:接收第一远程计算节点发送的第一缓存一致性请求;解析第一缓存一致性请求的数据包中的地址域段,查询除了第一远程计算节点之外的其它远程计算节点的缓存中是否有与解析结果对应的目标数据;若是,则向其它远程计算节点发送第一监听请求,以使其它远程计算节点返回目标数据;将目标数据发送至第一远程计算节点;若否,则将第一缓存一致性请求转发至本地计算节点内的主节点模块。
76、本发明的有益效果在于,本发明提供的上述多节点缓存一致性维护方法,缓存一致性请求可以由本地计算节点的节点控制器来接收并处理,当节点控制器接收到第一远程计算节点发送的第一缓存一致性请求时,解析该请求数据包中的地址域段,若查询到其它远程计算节点内的缓存中具有与解析结果对应的目标数据时,可提前发起对其它远程计算节点发送第一监听请求,使得目标数据返回至该节点控制器,便于节点控制器将该目标数据发送至发起第一缓存一致性请求的第一远程计算节点,该过程节点控制器无需将第一缓存一致性请求转发给本地计算节点内的主节点模块,即节点控制器分担了主节点模块的部分任务,能够大幅提高跨节点缓存一致性请求的处理速度,进而提高整体计算性能。
77、此外,本发明还针对多节点缓存一致性维护方法提供了相应的多节点缓存一致性维护装置、多节点缓存一致性维护设备、非易失性存储介质及产品,与上述提到的多节点缓存一致性维护方法具有相同或相对应的技术特征,效果同上。
本文地址:https://www.jishuxx.com/zhuanli/20240730/196594.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。