本发明实施例涉及计算机,具体涉及一种缓存状态记录方法、数据访问方法及相关装置、设备。
背景技术:
1、cxl(compute express link)互连协议是一种用于实现主机和设备的缓存一致性的协议,用于使得主机缓存的数据和设备缓存的数据保持一致,从而避免计算设备内出现数据冲突。
2、cxl协议支持缓存一致性协议,缓存一致性协议是一种多核处理器场景下,用于实现主机内,多个处理器核各自分别配置的缓存内的数据的一致性的协议。其中,缓存一致性协议将各缓存中的缓存数据划分为多个不同的状态,以表示对应的缓存数据被多个处理器核的共享程度,并基于对应的状态执行不同的操作。在cxl协议中,对应将外设设备缓存中的缓存数据进行对应的状态划分,并基于对应的状态执行对应的操作。
3、相应的,在基于cxl协议执行对应的缓存数据的访问时,需要记录外设设备中的缓存数据的状态,从而基于对应的状态进行对应的操作。如何记录外设设备中,缓存数据的状态,是本领域技术人员亟待解决的一个技术问题。
技术实现思路
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、其中,所述侦听过滤器配置有主机缓存记录表,所述主机缓存记录表用于记录主机的缓存数据在主机缓存中的状态,以及,对应所述缓存数据的外设共享标识,所述外设共享标识用于指示所述缓存数据是否被外设设备共享。
46、可选的,所述主机缓存记录表中包括与主机中的缓存数据一一对应的状态条目,所述状态条目包括地址标记、缓存状态、数据所有者、数据分布,以及,所述外设共享标识;
47、其中,所述外设共享标识配置在所述状态条目的冗余位;或者,所述外设共享标识配置在所述状态条目的独立存储位。
48、可选的,所述外设共享标识占据所述状态条目的1比特位存储空间。
49、可选的,所述主机还包括内存,所述外设设备的缓存数据的设备缓存信息存储于所述内存中,所述设备缓存信息用于记录外设设备的缓存数据的状态信息。
50、可选的,所述设备缓存信息存储于所述缓存数据对应的内存数据所在的内存页的冗余空间内。
51、可选的,所述设备缓存信息包括外设共享标识、设备缓存状态和设备缓存数据所有者,其中,外设共享标识用于标记对应的内存数据在外设设备中是否被缓存,设备缓存状态用于标记对应的内存数据在设备缓存中的状态,设备缓存数据所有者用于记录缓存所述内存数据的外设设备的设备标识。
52、可选的,所述内存中还包括错误检查和纠正验证码,所述错误检查和纠正验证码基于所述设备缓存信息和与之对应的内存数据计算得到。
53、本发明实施例还提供了一种缓存状态记录装置,应用于侦听过滤器,所述侦听过滤器中配置有主机缓存记录表,所述主机缓存记录表用于记录主机的缓存数据在主机缓存中的状态,以及,对应所述缓存数据的外设共享标识,所述外设共享标识用于指示所述缓存数据是否被外设设备共享,包括:
54、标识更新模块,用于在外设设备共享主机缓存中的缓存数据时,更新外设共享标识,以使得外设共享标识指示对应的缓存数据被外设设备共享;在处理器核独占缓存数据时,更新外设共享标识,以使得所述外设共享标识指示对应的缓存数据未被外设设备共享。
55、本发明实施例还提供了一种数据访问装置,包括:
56、请求获取模块,用于获取访问请求,所述访问请求用于使请求发起方访问待访问数据,所述访问请求中包括所述请求发起方所需获取的权限信息;
57、状态查询模块,用于查询主机缓存记录表中是否存在所述待访问数据的缓存状态,所述主机缓存记录表用于记录主机的缓存数据在主机缓存中的状态,以及,对应该缓存数据的外设共享标识,所述外设共享标识用于指示所述缓存数据是否被外设设备共享;
58、访问处理模块,用于基于所述访问请求所需获取的权限和所述主机缓存记录表中的信息,执行对待访问数据的处理。
59、本发明实施例还提供了一种存储介质,所述存储介质存储一条或多条可执行指令,所述一条或多条可执行指令用于执行本发明实施例提供的缓存状态记录方法,或者,执行本发明实施例提供的数据访问方法。
60、本发明实施例提供了一种缓存状态记录方法、数据访问方法及相关装置、设备,所述方法应用于侦听过滤器,所述侦听过滤器中配置有主机缓存记录表,所述主机缓存记录表用于记录主机的缓存数据在主机缓存中的状态,以及,对应所述缓存数据的外设共享标识,所述外设共享标识用于指示所述缓存数据是否被外设设备共享,所述方法包括:在外设设备共享主机缓存中的缓存数据时,更新外设共享标识,以使得外设共享标识指示对应的缓存数据被外设设备共享;在处理器核独占缓存数据时,更新外设共享标识,以使得所述外设共享标识指示对应的缓存数据未被外设设备共享。
61、可以看出,本发明实施例提供的缓存状态记录方案及数据访问方案,能够基于主机缓存记录表记录外设共享标识,确定影响数据处理流程的主要状态,从而能够实现外设设备中,缓存数据状态的记录,进而可以基于所述主机缓存记录表的信息,执行对应的访问流程。