本技术涉及芯片,特别涉及一种加载存储单元、处理器及计算机设备。
背景技术:
1、在处理器中,加载存储单元(load store unit,lsu)负责访存获取数据。
2、相关技术中,lsu中包含多个缓冲,lsu在访存获取数据时,需要从多个缓冲以及数据缓存(dcache)中同时查询数据,并将多个缓冲以及数据缓存的查询结果进行合并。
3、然而,上述方案中存在对数据缓存的无效查询的情况,影响数据缓存的利用率和处理器的功耗。
技术实现思路
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、在一些实施例中,条目中包含指纹字段和位图字段;位图字段包含n个比特,每个比特对应缓存行粒度/n的一段地址范围;n为大于或者等于2的整数;上述方法还包括:
35、通过预测电路,在将第一数据的地址的指纹信息存储到第三条目的情况下,确定第一数据的地址中低于缓存行粒度的地址部分对应在位图字段中的目标比特位,将第三条目中的目标比特位设置为第一数值。
36、在一些实施例中,上述方法还包括:
37、通过预测电路,在响应于第二数据从存储缓冲器中移除,对第二数据的地址中,高于缓存行粒度的地址部分进行哈希计算,得到第二数据的地址的指纹信息;
38、通过预测电路,基于第二数据的地址计算第一缓存中的第五条目的位置,以及第二缓存中的第六条目的位置;
39、通过预测电路,将第二数据的地址的指纹信息分别与第五条目和第六条目中的指纹信息进行匹配,在第二数据的地址的指纹信息与第五条目或第六条目中的指纹信息匹配成功的情况下,将匹配成功的指纹信息移除。
40、在一些实施例中,上述通过预测电路,将第二数据的地址的指纹信息分别与第五条目和第六条目中的指纹信息进行匹配,包括:
41、通过预测电路,在第二数据的地址的指纹信息与第五条目或者第六条目中的指纹信息相同,且指纹信息相同的条目中被设置为指定数值的比特位所对应的地址范围包含第二数据的地址中低于缓存行粒度的地址部分的情况下,确定第二数据的地址的指纹信息与第五条目或第六条目中的指纹信息匹配成功。
42、在一些实施例中,上述通过预测电路,在第二数据的地址的指纹信息与第五条目或第六条目中的指纹信息匹配成功的情况下,将匹配成功的指纹信息移除,包括:通过预测电路,在第二数据的地址的指纹信息与第五条目或第六条目中的指纹信息匹配成功的情况下,将匹配成功的指纹信息所在的条目的位图字段中,对应第二数据的地址中低于缓存行粒度的地址部分的比特位设置为第二数值。
43、在一些实施例中,上述通过预测电路,基于载入数据地址预测载入指令对应的数据是否存在于存储队列或者存储缓冲器,包括:
44、通过预测电路,基于布隆过滤算法计算载入数据地址在目标数组中的多个位置,在载入数据地址在目标数组中的多个位置的值均为指定数值的情况下,确定预测出载入指令对应的数据存在于存储队列或者存储缓冲器。
45、在一些实施例中,上述方法还包括:
46、通过预测电路,响应于第三数据写入存储队列,通过布隆过滤算法计算第三数据的地址在目标数组中的多个位置,将第三数据的地址在目标数组中的多个位置的值设置为指定数值。
47、在一些实施例中,加载存储单元还包括:载入保留站以及数据合并电路;
48、载入保留站与地址计算电路相连,存储队列、存储缓冲器以及数据缓存分别与数据合并电路相连,数据合并电路还与载入保留站相连;
49、上述方法还包括:
50、通过载入保留站,向地址计算电路发送载入指令;
51、通过存储队列以及存储缓冲器,在预测电路预测出载入指令对应的数据存在于存储队列或者存储缓冲器的情况下,将查询到的数据发送给数据合并电路;
52、通过数据合并电路将存储队列以及存储缓冲器发送的数据进行合并,并对合并后的数据进行异常检测,并在检测到数据异常时,向载入保留站发送异常指令;
53、通过载入保留站,向地址计算电路重发载入指令;
54、通过预测电路,基于重发的载入指令,触发在数据缓存中查询载入指令对应的数据。
55、在一些实施例中,上述通过载入保留站,向地址计算电路重发载入指令,包括:
56、通过载入保留站,向地址计算电路重发载入指令,将重发的载入指令中的指定标志位的值设置为指定标志值;
57、上述通过预测电路,基于重发的载入指令,触发在数据缓存中查询载入指令对应的数据,包括:
58、通过预测电路,用于在重发的载入指令中的指定标志位的值为指定标志值的情况下,触发在数据缓存中查询载入指令对应的数据。
59、另一方面,提供了一种处理器,所述处理器包括至少一个如上所述的加载存储单元。
60、另一方面,提供了一种计算机设备,所述计算机设备包含至少一个处理器,所述处理器包括至少一个如上所述的加载存储单元。
61、本技术实施例提供的技术方案带来的有益效果至少包括:
62、在处理器的加载存储单元中,设置一个预测电路,该预测电路可以通过载入指令对应的载入数据地址预测载入指令对应的数据是否存在于存储队列或者所述存储缓冲器,若预测命中,即预测出载入指令对应的数据存在于存储队列或者所述存储缓冲器,则可以在预测电路以及存储队列中查询载入指令对应的数据,从而跳过在数据缓存中的查询过程,从而减少对数据缓存的无效访问,进而提高数据缓存的利用率,降低处理器的功耗。
1.一种加载存储单元,其特征在于,所述加载存储单元包括:地址计算电路、预测电路、存储队列以及存储缓冲器;
2.根据权利要求1所述的加载存储单元,其特征在于,所述预测电路,还用于在预测出所述载入指令对应的数据不存在于所述存储队列或者所述存储缓冲器的情况下,触发在所述存储队列、所述存储缓冲器以及所述数据缓存中查询所述载入指令对应的数据。
3.根据权利要求1或2所述的加载存储单元,其特征在于,所述预测电路中包含缓存电路,所述缓存电路用于存储所述存储队列以及所述存储缓冲器中的数据的地址的指纹信息;
4.根据权利要求3所述的加载存储单元,其特征在于,所述缓存电路包含第一缓存和第二缓存;所述第一缓存和所述第二缓存分别包含多个条目;
5.根据权利要求4所述的加载存储单元,其特征在于,所述预测电路,用于对所述载入数据地址中,高于缓存行粒度的地址部分进行哈希计算,得到所述载入数据地址的指纹信息。
6.根据权利要求4所述的加载存储单元,其特征在于,
7.根据权利要求4所述的加载存储单元,其特征在于,
8.根据权利要求7所述的加载存储单元,其特征在于,
9.根据权利要求8所述的加载存储单元,其特征在于,
10.根据权利要求7所述的加载存储单元,其特征在于,所述条目中包含指纹字段和位图字段;所述位图字段包含n个比特,每个比特对应缓存行粒度/n的一段地址范围;n为大于或者等于2的整数;
11.根据权利要求10所述的加载存储单元,其特征在于,
12.根据权利要求11所述的加载存储单元,其特征在于,
13.根据权利要求12所述的加载存储单元,其特征在于,
14.根据权利要求1或2所述的加载存储单元,其特征在于,所述预测电路,用于基于布隆过滤算法计算所述载入数据地址在目标数组中的多个位置,在所述载入数据地址在目标数组中的多个位置的值均为指定数值的情况下,确定预测出所述载入指令对应的数据存在于所述存储队列或者所述存储缓冲器。
15.根据权利要求14所述的加载存储单元,其特征在于,
16.根据权利要求1或2所述的加载存储单元,其特征在于,所述加载存储单元还包括:载入保留站以及数据合并电路;
17.一种指令处理方法,其特征在于,所述方法由如权利要求1至16任一所述的加载存储单元执行,所述方法包括:
18.一种处理器,其特征在于,所述处理器包括至少一个如权利要求1至16任一所述的加载存储单元。
19.一种计算机设备,其特征在于,所述计算机设备包含至少一个处理器,所述处理器包括至少一个如权利要求1至16任一所述的加载存储单元。