减少冗余缓存一致性操作的方法、装置、设备和存储介质与流程
- 国知局
- 2024-07-31 22:35:59
本公开涉及计算机,特别地涉及一种减少冗余缓存一致性操作的方法、装置、设备和存储介质。
背景技术:
1、现代众核处理器上的每个处理器核都具有高速缓存(cache),用以提高数据的访问速度并确保程序编写的便捷性。在运行并行程序时,多个处理器核上运行的多个线程或进程可能会读写同一段共享内存区域内的数据。为了确保并行程序运行的正确性,同一计算节点内的不同处理器之间以及同一处理器的不同处理器核之间需要具备缓存一致性(cache coherence),以使同一份数据在多个处理器核的高速缓存之间保持一致。
2、随着计算机技术的不断发展,几乎所有运行在超级计算机上的应用程序都实现了进程级并行。然而在绝大多数情况下,不同进程之间并没有共享的内存区域或变量,因此通常无需在两个进程之间进行缓存一致性操作。有些应用程序可能同时具备进程级并行和线程级并行能力,即一个进程会包含运行在同一计算节点内的多个线程,由于属于同一进程的所有线程共同使用该进程的内存空间,因此通常需要在这些线程之间进行缓存一致性操作。尽管如此,各线程也会私有变量,因此线程之间不会在所有变量上都存在共享使用;即使对于同一共享变量,其在某一程序段可能出现多线程间的共享读写而在另一程序段则可能被各线程间私有使用。由此可见,绝大部分的缓存一致性操作是冗余的。维护缓存一致性,不仅会降低并行程序性能,还会增大硬件系统设计的压力,因此亟需一种减少冗余缓存一致性操作的方法。
技术实现思路
1、本公开提供一种减少冗余缓存一致性操作的方法、装置、设备和存储介质,以降低缓存一致性维护开销对程序性能的影响。
2、第一方面,本公开提供了一种减少冗余缓存一致性操作的方法,包括:
3、响应于对访存指令的调度执行,获取当前处理器核的缓存一致性协议的状态;
4、若当前处理器核的缓存一致性协议的状态为关闭状态,则在执行访存指令的过程中,不进行处理器核之间的缓存一致性操作;
5、若当前处理器核的缓存一致性协议的状态为开启状态,则按照处理器核之间的缓存一致性协议要求执行访存指令。
6、在一些实施例中,所述方法还包括:
7、响应于当前线程发起的缓存一致性关闭指令,将当前处理器核的缓存一致性协议的状态设置为关闭状态;
8、响应于当前线程发起的缓存一致性开启指令,将当前处理器核的缓存一致性协议的状态设置为开启状态。
9、在一些实施例中,若当前处理器核支持乱序执行,则所述方法还包括:
10、缓存一致性开启指令不能与在其之后发射的访存指令乱序执行;
11、缓存一致性关闭指令不能与在其之前发射的访存指令乱序执行。
12、在一些实施例中,不进行处理器核之间的缓存一致性操作包括以下方式中的至少一种:
13、当前处理器核不向缓存一致性的硬件系统发起任何关于缓存一致性的操作;
14、当前处理器核忽略任何由其他处理器核发起的缓存一致性的操作。
15、在一些实施例中,所述方法还包括:
16、在当前处理器核的缓存一致性协议的状态为关闭状态时,将访问过的缓存块标记为私有访问状态;
17、在当前处理器核的缓存一致性协议的状态为开启状态时,若访存指令命中了标记为私有访问状态的缓存块,则根据访存指令的属性和缓存一致性协议对标记为私有访问状态的缓存块进行初始化并去掉私有访问状态的标记。
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、本公开提供的一种减少冗余缓存一致性操作的方法、装置、设备和存储介质,通过响应于对访存指令的调度执行,获取当前处理器核的缓存一致性协议的状态;若当前处理器核的缓存一致性协议的状态为关闭状态,则在执行访存指令的过程中,不进行处理器核之间的缓存一致性操作;若当前处理器核的缓存一致性协议的状态为开启状态,则按照处理器核之间的缓存一致性协议要求执行访存指令。在缓存一致性协议的状态为关闭状态时,不进行处理器核之间的缓存一致性操作,可以降低缓存一致性维护开销对程序性能的影响。
本文地址:https://www.jishuxx.com/zhuanli/20240731/193793.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表