一种写穿策略下多核系统的验证方法和系统与流程

文档序号:31839447发布日期:2022-10-18 22:11阅读:148来源:国知局
一种写穿策略下多核系统的验证方法和系统与流程

1.本发明属于计算机技术领域,具体为一种写穿策略下多核系统的验证方法和系统。


背景技术:

2.高性能处理器一般配置有一级缓存和二级缓存,根据不同的性能需求,缓存可以配置写回策略(write-back)和写穿策略(write-through),这两种策略的区别主要在对写请求的操作。写回策略下,存储指令访问一级缓存,若命中,直接将新数据写入一级缓存,若缺失,需要将缓存行从二级缓存或者内存中取回到一级缓存,然后写入新的数据到一级缓存。写穿策略下,存储指令访问一级缓存,若命中,则将数据写入一级缓存,同时将数据写入二级缓存或者内存,若缺失,则将数据直接写入二级缓存或内存,不需要将数据写入一级缓存。相比之下,写穿策略下设计更加简单,但是某些场景下性能没有写回策略好。
3.在现有技术中没有工具能够很完善的支持多核系统中一级缓存为写穿策略时访存指令的验证,多核系统验证与设计是紧耦合的,
4.针对上述问题本验证系统针对多核系统中一级缓存为写穿策略的验证,验证在写穿策略下,多核系统执行指令是否符合缓存一致性协议,访问指令是否取到正确的数据,存储指令是否将数据正确的写入缓存或内存。


技术实现要素:

5.本发明的目的在于提供一种写穿策略下多核系统的验证方法和系统,以解决上述背景技术中提出的问题。
6.为了实现上述目的,本发明提供如下技术方案:一种写穿策略下多核系统的验证方法,包括访问指令与存储指令,该写穿策略下多核系统的验证方法具体步骤如下:
7.一级缓存为写穿策略时,访问指令在验证系统中的执行流程:
8.s1、指令发生器发送指令到多核验证系统,访存指令控制器若判断指令类型为访问指令,则将该指令存入相应核的访问指令队列;
9.s2、监测dut中该访问指令更新信息,包括地址,属性,访问大小等信息,访存指令控制器将这些信息同步更新至访问指令队列中相应指令;
10.s3、当地址属性判断为可缓存地址时,访问指令的perform时间点为该访问指令从访存执行单元输送出数据的时间点,访存执行单元监测器监测每个核的访存执行单元输出数据,当访存执行单元输出有效数据时,表示有一条访问指令perform了,访存指令控制器根据写寄存器号在访问指令队列中查找相应单元,当找到相应访问指令后,验证系统执行该指令;
11.s4、对于可缓存地址,由于访问指令是投机执行的,数据可以从存储指令队列,存储缓冲器和内存模型中获得,访存指令控制器需要从正确的源选择数据,获得数据后保存,用于后续比较;
12.s5、当监测到dut中该访问指令提交时,比较验证系统中保存的访问数据和dut中获得的访问数据,打印比较结果;
13.一级缓存为写穿策略时,存储指令在验证系统中的执行流程:
14.s1、指令发生器发送指令到验证系统,访存指令控制器若判断指令类型为存储指令,则将该指令存入相应核的存储指令队列;
15.s2、监测dut中该存储指令更新信息,包括地址,属性,写数据和大小等信息,访存指令控制器将这些信息同步更新至存储指令队列中相应指令;
16.s3、当地址属性判断为可缓存地址,存储指令的perform时间点有两个,一个是数据写入一级缓存的时间点,另一个是数据写入二级缓存的时间点,缓存监测器同时监测每个核的一级缓存写接口和二级缓存写接口;
17.s4、当缓存监测器监测到有效的一级缓存写请求时,该写请求从dut中的store buffer模块输出,访问指令控制器根据写地址和store buffer的状态,查找存储指令队列,找到匹配单元后,执行该单元中的存储指令;
18.s5、当缓存监测器监测到有效的二级缓存写请求时,访问指令控制器根据写地址和核id查找相应核的存储指令队列,找出最老的且地址匹配的存储指令,执行该存储指令;
19.s6、多核验证系统执行存储指令时,将存储指令队列中相应单元的写数据写入内存模型,并对写数据和dut写数据进行比较,打印比较结果。
20.本技术还提出了一种写穿策略下多核系统的验证系统,包括有写穿模式下多核验证系统,写穿模式下多核验证系统包括有缓存监测器、访存执行单元监测器、访存指令控制器、访问指令队列、存储指令队列、内存模型、访问数据比较器和存储数据比较器,该写穿策略下多核系统的验证系统的操作流程:
21.s1、指令发生器将信息数据分别发送到待验证多核处理器系统与写穿模式下多核验证系统中;
22.s2、待验证多核处理器系统将指令分别发送给缓存监测器与访存执行单元监测器,缓存监测器与访存执行单元监测器同步把信息传输给访存指令控制器,且访存指令控制器与访存执行单元监测器同步将信息均传输给访问数据比较器与存储数据比较器;
23.s3、通过指令发生器传输的信息进入到写穿模式下多核验证系统中数据同步传输到访问指令队列与存储指令队列,同时穿模式下多核验证系统自身还将信息数据同步传输给访问指令队列、存储指令队列和访存指令控制器中;
24.s4、访问指令队列与存储指令队列则是将信息传输到内存模型中,访存指令控制器则是承接s2的操作步骤即可。
25.优选的,缓存监测器:监测dut中一级缓存和二级缓存的写请求信息,并将监测到的信息输送给访存指令控制器;
26.访存执行单元监测器:监测dut中访存执行单元,包括访存指令地址数据更新信息,指令提交信息,storebuffer更新信息等,并将监测到的信息输送给访存指令控制器;
27.访存指令控制器:接收缓存监测器和访存执行单元监测器监测到的信息,根据这些信息控制验证系统中的访存指令信息何时更新,何时执行访问内存模型和更新内存模型的操作,何时对数据进行比较,同时对于dut有刷流水线的行为,该控制器需要对验证系统中的队列进行刷新;
28.访问指令队列:用于存放访问指令的信息。指令发生器同时将指令发送到dut和验证系统,访存指令控制器根据指令类型将访问指令存入访问指令队列:
29.当dut中访问指令地址,属性等信息更新时,同步更新该队列中相应指令信息;
30.当dut中访问指令提交时,删除该队列中相应指令;
31.存储指令队列:用于存放存储指令的信息,指令发生器同时将指令发送到dut和验证系统,访存指令控制器根据指令类型将存储指令存入访问指令队列:
32.当dut中存储指令地址,属性,数据等信息更新时,同步更新该队列中相应指令信息;
33.当dut中访问指令提交时,删除该队列中相应指令,并将该指令信息存入存储缓冲器;
34.内存模型:验证系统中的内存模型,每个核都有读写权限,访存指令访问和更新内存模型的时间点即访存指令perform的时间点,验证系统中只有内存模型,没有cache模型;
35.访问数据比较器:在访问指令提交时,对验证系统中该指令获得的数据和dut获得的数据进行比较,并打印出比较结果;
36.存储数据比较器:在dut存储指令更新cache时,对验证系统中该指令的写数据和dut中的写数据进行比较,并打印出比较结果。
37.本发明的有益效果如下:
38.1、本发明的验证系统能够支持多核系统下一级缓存配置为写穿策略时的访问/存储指令的验证,验证的关键是准确的把握访问/存储指令的perform时间点,访问指令的perform时间点为dut中访存执行单元送出取得的数据的时刻,存储指令的perform时间点有两个,一个是数据写入一级缓存的时间点,另一个是数据写入二级缓存的时间点;
39.本验证系统能够实时比较每个核的访存指令执行的正确性,包括在访问指令提交时,比较访问得到数据的正确性,在存储指令更新cache时,比较写数据的正确性;
40.本验证系统支持多核系统中缓存为写穿策略的一致性验证;
41.本验证系统支持处理器的个数和cluster的个数可配,扩展性强。
附图说明
42.图1为本发明验证系统中访问/存储指令执行流程图;
43.图2为本发明多核验证系统结构图;
44.图3为本发明写穿策略和写回策略流程。
具体实施方式
45.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
46.如图1至图3所示,本发明实施例中,一种写穿策略下多核系统的验证方法,包括访问指令与存储指令,该写穿策略下多核系统的验证方法具体步骤如下:
47.一级缓存为写穿策略时,访问指令在验证系统中的执行流程如图1左边所示:
48.s1、指令发生器发送指令到多核验证系统,访存指令控制器若判断指令类型为访问指令,则将该指令存入相应核的访问指令队列;
49.s2、监测dut中该访问指令更新信息,包括地址,属性,访问大小等信息,访存指令控制器将这些信息同步更新至访问指令队列中相应指令;
50.s3、当地址属性判断为可缓存地址时,访问指令的perform时间点为该访问指令从访存执行单元输送出数据的时间点,访存执行单元监测器监测每个核的访存执行单元输出数据,当访存执行单元输出有效数据时,表示有一条访问指令perform了,访存指令控制器根据写寄存器号在访问指令队列中查找相应单元,当找到相应访问指令后,验证系统执行该指令;
51.s4、对于可缓存地址,由于访问指令是投机执行的,数据可以从存储指令队列,存储缓冲器和内存模型中获得,访存指令控制器需要从正确的源选择数据,获得数据后保存,用于后续比较;
52.s5、当监测到dut中该访问指令提交时,比较验证系统中保存的访问数据和dut中获得的访问数据,打印比较结果;
53.一级缓存为写穿策略时,存储指令在验证系统中的执行流程如图1右边所示:
54.s1、指令发生器发送指令到验证系统,访存指令控制器若判断指令类型为存储指令,则将该指令存入相应核的存储指令队列;
55.s2、监测dut中该存储指令更新信息,包括地址,属性,写数据和大小等信息,访存指令控制器将这些信息同步更新至存储指令队列中相应指令;
56.s3、当地址属性判断为可缓存地址,存储指令的perform时间点有两个,一个是数据写入一级缓存的时间点,另一个是数据写入二级缓存的时间点。缓存监测器同时监测每个核的一级缓存写接口和二级缓存写接口;
57.s4、当缓存监测器监测到有效的一级缓存写请求时,该写请求从dut中的store buffer模块输出,访问指令控制器根据写地址和store buffer的状态,查找存储指令队列,找到匹配单元后,执行该单元中的存储指令;
58.s5、当缓存监测器监测到有效的二级缓存写请求时,访问指令控制器根据写地址和核id查找相应核的存储指令队列,找出最老的且地址匹配的存储指令,执行该存储指令;
59.s6、多核验证系统执行存储指令时,将存储指令队列中相应单元的写数据写入内存模型,并对写数据和dut写数据进行比较,打印比较结果。
60.本技术还提出了一种写穿策略下多核系统的验证系统,包括有写穿模式下多核验证系统,写穿模式下多核验证系统包括有缓存监测器、访存执行单元监测器、访存指令控制器、访问指令队列、存储指令队列、内存模型、访问数据比较器和存储数据比较器,该写穿策略下多核系统的验证系统的操作流程:
61.s1、指令发生器将信息数据分别发送到待验证多核处理器系统与写穿模式下多核验证系统中;
62.s2、待验证多核处理器系统将指令分别发送给缓存监测器与访存执行单元监测器,缓存监测器与访存执行单元监测器同步把信息传输给访存指令控制器,且访存指令控制器与访存执行单元监测器同步将信息均传输给访问数据比较器与存储数据比较器;
63.s3、通过指令发生器传输的信息进入到写穿模式下多核验证系统中数据同步传输
到访问指令队列与存储指令队列,同时穿模式下多核验证系统自身还将信息数据同步传输给访问指令队列、存储指令队列和访存指令控制器中;
64.s4、访问指令队列与存储指令队列则是将信息传输到内存模型中,访存指令控制器则是承接s2的操作步骤即可,具体多核验证系统结构如图2所示。
65.其中,缓存监测器:监测dut中一级缓存和二级缓存的写请求信息,并将监测到的信息输送给访存指令控制器;
66.访存执行单元监测器:监测dut中访存执行单元,包括访存指令地址数据更新信息,指令提交信息,storebuffer更新信息等,并将监测到的信息输送给访存指令控制器;
67.访存指令控制器:接收缓存监测器和访存执行单元监测器监测到的信息,根据这些信息控制验证系统中的访存指令信息何时更新,何时执行访问内存模型和更新内存模型的操作,何时对数据进行比较,同时对于dut有刷流水线的行为,该控制器需要对验证系统中的队列进行刷新;
68.访问指令队列:用于存放访问指令的信息。指令发生器同时将指令发送到dut和验证系统,访存指令控制器根据指令类型将访问指令存入访问指令队列:
69.当dut中访问指令地址,属性等信息更新时,同步更新该队列中相应指令信息;
70.当dut中访问指令提交时,删除该队列中相应指令;
71.存储指令队列:用于存放存储指令的信息,指令发生器同时将指令发送到dut和验证系统,访存指令控制器根据指令类型将存储指令存入访问指令队列:
72.当dut中存储指令地址,属性,数据等信息更新时,同步更新该队列中相应指令信息;
73.当dut中访问指令提交时,删除该队列中相应指令,并将该指令信息存入存储缓冲器;
74.内存模型:验证系统中的内存模型,每个核都有读写权限,访存指令访问和更新内存模型的时间点即访存指令perform的时间点,验证系统中只有内存模型,没有cache模型;
75.访问数据比较器:在访问指令提交时,对验证系统中该指令获得的数据和dut获得的数据进行比较,并打印出比较结果;
76.存储数据比较器:在dut存储指令更新cache时,对验证系统中该指令的写数据和dut中的写数据进行比较,并打印出比较结果。
77.在现有技术中一级缓存为写穿策略时,存储指令写数据流程如图3左边所示,首先判断一级缓存是否命中,若命中,则将数据写入一级缓存,并且写入二级缓存或内存,若不命中,则将数据直接写入二级缓存或内存。一级缓存为写回策略时,存储指令写数据流程如图3右边所示,首先判断一级缓存是否命中,若命中,则将数据写入一级缓存,该存储指令的写操作结束,若不命中,则需要一级缓存分配一个可用的位置存放新的缓存行,若没有可用的位置,则需要踢出一条旧的缓存行,然后向二级缓存或内存请求写地址所在的缓存行,新的缓存行与写数据合并后写入一级缓存,该存储指令的写操作结束。可以看出,在一级缓存不命中的情况下,写穿策略的操作比较简单,但如果后续指令频繁访问同一缓存行,写回策略下的性能会比较好。
78.多核验证系统中一级缓存为写穿策略,与写回策略相比,主要变化在访问/存储指令的perform时间点,所谓perform时间点,对访问指令来说,就是获得数据能够确定的时间
点,对存储指令来说,就是写数据能被其他核看到的时间点。写穿策略下,访问指令的perform时间点为dut中访存执行单元送出取得的数据的时刻,存储指令的perform时间点有两个,一个是数据写入一级缓存的时间点,另一个是数据写入二级缓存的时间点。多核验证系统的关键在于对perform时间点的监测。
79.因此针对上述情况本技术提出了一种写穿策略下多核系统的验证方法和系统。
80.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
81.尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1