多级高速缓存数据推送系统、方法、设备和计算机介质技术方案

技术编号:31239795 阅读:11 留言:0更新日期:2021-12-08 10:28
提供多级高速缓存数据推送系统、方法、设备和计算机介质,该系统包括:第一级高速缓存器;第二级高速缓存器,其中第二级高速缓存器的访问速度比第一级高速缓存器慢;控制单元,被配置为:判断在第二级高速缓存器的要被替换的缓存行中是否存在未来可能再次被访问的缓存行并判断第一级高速缓存器中是否存在空闲的缓存行;在判断在第二级高速缓存器中存在未来可能再次被访问的缓存行并且第一级高速缓存器中存在空闲的缓存行的情况下,将未来可能再次被访问的缓存行前推到空闲的缓存行中。本公开利用第一级高速缓存器的空闲空间,存储将来可能会被访问的第二级高速缓存器的要替换的缓存行,减轻了缓存系统的容量缺失和冲突缺失,提高了缓存的利用率。提高了缓存的利用率。提高了缓存的利用率。

【技术实现步骤摘要】
多级高速缓存数据推送系统、方法、设备和计算机介质


[0001]本申请涉及集成电路领域,更具体地,涉及多级高速缓存数据推送系统、方法、设备和计算机介质。

技术介绍

[0002]现代处理器中往往包含多级的高速缓存(Cache)系统,其访问和运行速度比内存快。图1示出了现有技术的多级的高速缓存系统的一般方框图。如图1所示,以L1级、L2级、L3级高速缓存系统为例,其中,L1缓存一般分为L1D缓存和L1I缓存,用于分别存储数据和指令,通常为各个处理器核分别设置相应的L1缓存,大小分别为16k~64k不等,L2缓存常作为私有缓存,不区分指令和数据,通常为各个处理器核分别设置相应的L2缓存,大小在256k~1M不等,L3缓存作为共享缓存,被多个处理器核共享,通常也不区分指令和数据,一般大于4M。在多级高速缓存系统中,一般L1I缓存和L1D缓存需要快速的访问速度,所以容量比较小。而L2缓存和L3缓存往往容量较大,面积较大,通常占据了芯片上相当比例的面积和晶体管数目。L3缓存可以通过片上网络与内存交换数据。
[0003]高速缓存里存的数据是内存中的常用数据的一个拷贝,以便处理器能够迅速地从高速缓存中取出常用的数据,以减少读取数据的时间。高速缓存的容量通常比较小,不可能缓存内存中的所有数据。因此,当高速缓存存满后,再需要存入一个新的数据条目时,就需要把其他数据从缓存中驱逐出去,这个过程称为驱逐(evict),一个被驱逐的数据条目称为牺牲(victim)缓存。这个过程称之为替换或替换。
[0004]需要合理的替换策略来保证高速地读取数据以及高效地利用缓存空间。

技术实现思路

[0005]根据本申请的一个方面,提供一种多级高速缓存数据推送系统,包括:第一级高速缓存器;第二级高速缓存器,其中所述第二级高速缓存器的访问速度比第一级高速缓存器慢;控制单元,被配置为:判断在第二级高速缓存器的要被替换的缓存行中是否存在未来可能再次被访问的缓存行并判断第一级高速缓存器中是否存在空闲的缓存行;在判断在第二级高速缓存器中存在未来可能再次被访问的缓存行并判断第一级高速缓存器中存在空闲的缓存行的情况下,将所述未来可能再次被访问的缓存行前推到所述空闲的缓存行中。
[0006]根据本申请的另一个方面,提供一种多级高速缓存数据推送方法,包括:判断在第二级高速缓存器的要被替换的缓存行中是否存在未来可能再次被访问的缓存行;判断第一级高速缓存器中是否存在空闲的缓存行;在判断在第二级高速缓存器中存在未来可能再次被访问的缓存行并判断第一级高速缓存器中存在空闲的缓存行的情况下,将所述未来可能再次被访问的缓存行前推到所述空闲的缓存行中。
[0007]根据本申请的另一个方面,提供一种多级高速缓存数据推送设备,包括:处理器;存储器,存储了计算器可执行指令,其被处理器运行时进行本公开所述的各个方法。
[0008]根据本申请的另一个方面,提供一种计算机可读介质,存储有计算机可读指令,其
中当所述计算机可读指令由处理器运行时,进行本公开所述的各个方法。
[0009]本公开利用多级缓存系统中的第一级高速缓存器的空闲空间,存储将来可能会被访问的第二级高速缓存器的要替换的缓存行,减轻了缓存系统的容量缺失和冲突缺失,提高了缓存的利用率。
附图说明
[0010]为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0011]图1示出了现有技术的多级的高速缓存系统的一般方框图。
[0012]图2示出了高速缓存的组织形式和寻址方式。
[0013]图3示出了根据本公开的实施例的多级高速缓存数据推送系统的方框图。
[0014]图4示出了根据本公开的实施例的多级高速缓存数据推送系统的方框图以及数据流图。
[0015]图5示出了基于L3VB缓冲器的更详细的数据推送结构图。
[0016]图6示出了根据本公开的实施例的多级高速缓存数据推送方法的流程图。
[0017]图7示出了根据本公开的另一实施例的多级高速缓存数据推送方法的流程图。
[0018]图8示出了根据本公开的一个实施例的图7所示的步骤606的具体流程图。
[0019]图9示出了适于用来实现本申请实施方式的示例性计算机系统的框图。
[0020]图10示出了根据本公开的实施例的非暂时性计算机可读存储介质的示意图。
具体实施方式
[0021]现在将详细参照本申请的具体实施例,在附图中例示了本申请的例子。尽管将结合具体实施例描述本申请,但将理解,不是想要将本申请限于描述的实施例。相反,想要覆盖由所附权利要求限定的在本申请的精神和范围内包括的变更、修改和等价物。应注意,这里描述的方法步骤都可以由任何功能块或功能布置来实现,且任何功能块或功能布置可被实现为物理实体或逻辑实体、或者两者的组合。
[0022]图2示出了高速缓存的组织形式和寻址方式。如图2所示,高速缓存被组织为缓存行数组的形式。多个缓存行作为一行组成一个组(set),一列缓存行组成路(way)。通过物理地址获取数据或指令在缓存中的位置(set,way,byte),每个物理地址被分为三部分:索引(Index),选择缓存的组(set),同一组中的所有缓存行通过索引域来选择;标签(tag),选择一组(set)中特定的缓存行,物理地址的标签域与每个缓存行的标签域进行比较,如果匹配,则发出缓存命中(cache hit)信号,从而选择此缓存行,否则发出缓存缺失(cache miss)信号;偏移量(offset),物理地址在缓存行中的第一个字节(byte),数据或指令从此字节的位置读取。
[0023]在实际工作中,在L2级缓存需要替换时,L2级缓存会根据替换算法,选择一个缓存行(cacheline),作为牺牲缓存行(victim cacheline),发给L3级缓存。L3级缓存把这个L2级缓存牺牲缓存行作为数据输入,如果L3级缓存不需要替换,则可以直接将该缓存行存入。
如果L3级缓存需要替换,则根据L3级缓存的替换策略,选择一个L3级缓存的缓存行,送入L3级缓存的牺牲缓冲器(victim buffer,VB),进而从L3级缓存的牺牲缓冲器发送到内存,最后将这个L2级缓存的牺牲缓存行存入L3级缓存中。
[0024]目前高性能处理器的高速缓存替换策略主要有最少最近使用(least recently used,LRU)策略,再参考区间预测(Re

Reference Interval Prediction,RRIP)等,以及在此基础上的一些变种。主要的替换依据是这个缓存行被访问或读取的年龄信息,表示这个缓存行有多久没有被访问或读取了。一般年龄越大,表示越久没有被访问或读取,表示处理器再次访问或读取该缓存行的概率越小,则越容易本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种多级高速缓存数据推送系统,包括:第一级高速缓存器;第二级高速缓存器,其中所述第二级高速缓存器的访问速度比第一级高速缓存器慢;控制单元,被配置为:判断在第二级高速缓存器的要被替换的缓存行中是否存在未来可能再次被访问的缓存行并判断第一级高速缓存器中是否存在空闲的缓存行;在判断在第二级高速缓存器中存在未来可能再次被访问的缓存行并判断第一级高速缓存器中存在空闲的缓存行的情况下,将所述未来可能再次被访问的缓存行前推到所述空闲的缓存行中。2.根据权利要求1所述的系统,其中所述控制单元被配置为通过如下步骤中的至少一种来判断第二级高速缓存器中是否存在未来可能再次被访问的缓存行:响应于从第一级高速缓存器将第一缓存行替换到第二级高速缓存器,基于指示所述第一缓存行也被存储在第零级高速缓存器中的标记,判断所述第一缓存行是未来可能再次被访问的缓存行,其中,所述第零级高速缓存器的访问速度比第一级高速缓存器快;响应于从第一级高速缓存器将第一缓存行替换到所述第二级高速缓存器,如果所述第一缓存行的最近未被访问时间小于预定年龄阈值,判断所述第一缓存行是未来可能再次被访问的缓存行,其中所述第一缓存行的年龄是自第一所述缓存行上次被访问以来所经历的时间;响应于对第一级高速缓存器的访问请求命中所述第二级高速缓冲器中的第一缓存行,将所述第二级高速缓存器中的第一缓存行送入第一级高速缓存器中,并标记所述第一缓存行的来源为所述第二级高速缓存器,并且在从第一级高速缓存器将被标记的所述第一缓存行替换到所述第二高速缓冲器中的情况下,判断所述第一缓存行是未来可能再次被访问的缓存行;将对应于一个线程的存入所述第二级高速缓存器中的缓存行都判断是未来可能再次被访问的缓存行。3.根据权利要求1

2中任一所述的系统,其中,在所述缓存行从所述第二级高速缓存器送入第二级高速缓存器的牺牲缓冲器的情况下,所述缓存行的热位与所述缓存行的数据和状态一起被存入所述牺牲缓冲器。4.根据权利要求3所述的系统,其中,所述控制单元通过如下步骤中的至少一种来判断第一级高速缓存器中是否存在空闲的缓存行:在所述缓存行从所述第二级高速缓存器送入第二级高速缓存器的牺牲缓冲器之后,检测与所述缓存行处于同一索引域的各个第一级高速缓存器中有多少路是空闲的,如果所述空闲的路的数量大于预定路阈值,则判断第一级高速缓存器中存在空闲的缓存行;在每个采样周期,统计各个第一级高速缓存器发送到第二级高速缓存器的请求的数量,如果所述请求的数量小于预定请求阈值,则判断第一级高速缓存器中存在空闲的缓存行;各个第一级高速缓存器监控自己的空间占用和忙闲程度中的至少一种,如果所述空间占用和忙闲程度中的至少一种大于相应的预定程度阈值,则判断第一级高速缓存器中存在空闲的缓存行。
5.根据权利要求4所述的系统,其中,所述控制单元被配置为:在判断第二级高速缓存器中存在未来可能再次被访问的缓存行并判断第一级高速缓存器中存在空闲的缓存行的情况下,从第二级高速缓存器的牺牲缓冲器将所述可能再次被访问的缓存行的第一数据送到响应复用器,其中所述响应复用器还接收第二数据、第三数据和第四数据中的至少一个,所述第二数据是响应于对第一级高速缓存器的访问请求命中所述第二级高速缓冲器中的缓存行而要被送入所述第一级高速缓存器中的缓存行,第三数据是从内存或第三级高速缓存器发送的,以及第四数据是从另一第一级高速缓存器发送的,其中所述第三级高速缓存器的访问速度比第二级高速缓存器的访问速度慢;使得所述响应复用器将接收到的第一数据、第二数据、第三数据和第四数据中的至少一种以送入所述第一级高速缓存器。6.根据权利要求5所述的系统,其中,所述控制单元被配置为:使得所述响应复用器从接收到的第一数据、第二数据、第三数据和第四数据中选择优先级最高的数据以送入所述第一级高速缓存器,其中,所述第一数据的优先级低于所述第二数据、第三数据和第四数据的优先级。7.根据权利要求5所述的系统,其中,所述控制单元被配置为:在所述第一数据被缓冲在牺牲缓冲器中达预定时间的情况下,拒绝将所述第一数据从所述牺牲缓冲器送入所述第一级高速缓存器,而是将所述第一数据送入第三存储区,其中所述第三存储区的访问速度比所述第二级高速缓存器的访问速度慢。8.根据权利要求5所述的系统,其中,所述控制单元被配置为:在所述第一数据的数量超过预定数量阈值的情况下,拒绝将所述第一数据从所述牺牲缓冲器送入所述第一级高速缓存器,而是将所述第一数据送入第三存储区,其中所述第三存储区的访问速度比所述第二级高速缓存器的访问速度慢。9.根据权利要求5所述的系统,其中,所述控制单元被配置为:在所述第一级高速缓存器的索引域中不存在空闲的路的情况下,拒绝将所述第一数据从所述牺牲缓冲器送入所述第一级高速缓存器,而是将所述第一数据送入第三存储区,其中所述第三存储区的访问速度比所述第二级高速缓存器的访问速度慢。10.一种多级高速缓存数据推送方法,包括:判断在第二级高速缓存器的要被替换的缓存行中是否存在未来可能再次被访问的缓存行;判断第一级高速缓存器中是否存在空闲的缓存行;在判断在第二级高速缓存器中存在未来可能再次被访问的缓存行并判断第一级高速缓存器中存在空闲的缓存行的情况下,将所述未来可能再次被访问的缓存行前推到所...

【专利技术属性】
技术研发人员:姚涛贾琳黎耿恒生
申请(专利权)人:成都海光微电子技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1