本技术涉及缓存验证,特别涉及图形处理器,尤其涉及一种缓存验证装置、方法及系统。
背景技术:
1、缓存能够正确的执行写请求写入数据,以及按照地址读取符合预期的数据,是处理器能够正确存储和读取数据,保证正常运行的关键。
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、根据输入所述缓存的验证请求确定待校验的数据,其中,所述验证请求至少包括读请求和/或写请求,所述待校验的数据包括所述缓存发送的回读数据、所述缓存模型中的数据以及所述下游行为级模型的数据中的至少两种;
46、基于所述待校验的数据确定校验结果。
47、本技术还公开了一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上所述方法。
48、本技术还公开了一种计算机可读介质,其上存储有计算机程序,
49、该程序被处理器执行时实现如上所述方法。
50、本技术缓存验证装置包括一致性校验模块、缓存模型和下游行为级模型。该一致性校验模块可基于输入缓存的验证请求的不同确定对应的待校验的数据,并根据待校验的数据确定校验结果。其中,验证请求至少包括读请求和/或写请求,待校验的数据可以是缓存发送的回读数据、缓存模型中的数据以及下游行为级模型中的数据的至少两种。从而,本技术可识别验证请求的请求类型,并可根据验证请求对缓存的回读数据、缓存模型和下游行为级模型中的数据的至少两种进行校验,实现缓存的不同缓存类型的自动化验证,降低缓存验证的人力成本,缩短缓存验证时间,提高缓存验证效率。