【技术实现步骤摘要】
多级高速缓存数据推送系统、方法、设备和计算机介质
[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]需要合理的替换策略来保 ...
【技术保护点】
【技术特征摘要】
1.一种多级高速缓存数据推送系统,包括:第一级高速缓存器;第二级高速缓存器,其中所述第二级高速缓存器的访问速度比第一级高速缓存器慢;控制单元,被配置为:判断在第二级高速缓存器的要被替换的缓存行中是否存在未来可能再次被访问的缓存行并判断第一级高速缓存器中是否存在空闲的缓存行;在判断在第二级高速缓存器中存在未来可能再次被访问的缓存行并判断第一级高速缓存器中存在空闲的缓存行的情况下,将所述未来可能再次被访问的缓存行前推到所述空闲的缓存行中。2.根据权利要求1所述的系统,其中所述控制单元被配置为通过如下步骤中的至少一种来判断第二级高速缓存器中是否存在未来可能再次被访问的缓存行:响应于从第一级高速缓存器将第一缓存行替换到第二级高速缓存器,基于指示所述第一缓存行也被存储在第零级高速缓存器中的标记,判断所述第一缓存行是未来可能再次被访问的缓存行,其中,所述第零级高速缓存器的访问速度比第一级高速缓存器快;响应于从第一级高速缓存器将第一缓存行替换到所述第二级高速缓存器,如果所述第一缓存行的最近未被访问时间小于预定年龄阈值,判断所述第一缓存行是未来可能再次被访问的缓存行,其中所述第一缓存行的年龄是自第一所述缓存行上次被访问以来所经历的时间;响应于对第一级高速缓存器的访问请求命中所述第二级高速缓冲器中的第一缓存行,将所述第二级高速缓存器中的第一缓存行送入第一级高速缓存器中,并标记所述第一缓存行的来源为所述第二级高速缓存器,并且在从第一级高速缓存器将被标记的所述第一缓存行替换到所述第二高速缓冲器中的情况下,判断所述第一缓存行是未来可能再次被访问的缓存行;将对应于一个线程的存入所述第二级高速缓存器中的缓存行都判断是未来可能再次被访问的缓存行。3.根据权利要求1
‑
2中任一所述的系统,其中,在所述缓存行从所述第二级高速缓存器送入第二级高速缓存器的牺牲缓冲器的情况下,所述缓存行的热位与所述缓存行的数据和状态一起被存入所述牺牲缓冲器。4.根据权利要求3所述的系统,其中,所述控制单元通过如下步骤中的至少一种来判断第一级高速缓存器中是否存在空闲的缓存行:在所述缓存行从所述第二级高速缓存器送入第二级高速缓存器的牺牲缓冲器之后,检测与所述缓存行处于同一索引域的各个第一级高速缓存器中有多少路是空闲的,如果所述空闲的路的数量大于预定路阈值,则判断第一级高速缓存器中存在空闲的缓存行;在每个采样周期,统计各个第一级高速缓存器发送到第二级高速缓存器的请求的数量,如果所述请求的数量小于预定请求阈值,则判断第一级高速缓存器中存在空闲的缓存行;各个第一级高速缓存器监控自己的空间占用和忙闲程度中的至少一种,如果所述空间占用和忙闲程度中的至少一种大于相应的预定程度阈值,则判断第一级高速缓存器中存在空闲的缓存行。
5.根据权利要求4所述的系统,其中,所述控制单元被配置为:在判断第二级高速缓存器中存在未来可能再次被访问的缓存行并判断第一级高速缓存器中存在空闲的缓存行的情况下,从第二级高速缓存器的牺牲缓冲器将所述可能再次被访问的缓存行的第一数据送到响应复用器,其中所述响应复用器还接收第二数据、第三数据和第四数据中的至少一个,所述第二数据是响应于对第一级高速缓存器的访问请求命中所述第二级高速缓冲器中的缓存行而要被送入所述第一级高速缓存器中的缓存行,第三数据是从内存或第三级高速缓存器发送的,以及第四数据是从另一第一级高速缓存器发送的,其中所述第三级高速缓存器的访问速度比第二级高速缓存器的访问速度慢;使得所述响应复用器将接收到的第一数据、第二数据、第三数据和第四数据中的至少一种以送入所述第一级高速缓存器。6.根据权利要求5所述的系统,其中,所述控制单元被配置为:使得所述响应复用器从接收到的第一数据、第二数据、第三数据和第四数据中选择优先级最高的数据以送入所述第一级高速缓存器,其中,所述第一数据的优先级低于所述第二数据、第三数据和第四数据的优先级。7.根据权利要求5所述的系统,其中,所述控制单元被配置为:在所述第一数据被缓冲在牺牲缓冲器中达预定时间的情况下,拒绝将所述第一数据从所述牺牲缓冲器送入所述第一级高速缓存器,而是将所述第一数据送入第三存储区,其中所述第三存储区的访问速度比所述第二级高速缓存器的访问速度慢。8.根据权利要求5所述的系统,其中,所述控制单元被配置为:在所述第一数据的数量超过预定数量阈值的情况下,拒绝将所述第一数据从所述牺牲缓冲器送入所述第一级高速缓存器,而是将所述第一数据送入第三存储区,其中所述第三存储区的访问速度比所述第二级高速缓存器的访问速度慢。9.根据权利要求5所述的系统,其中,所述控制单元被配置为:在所述第一级高速缓存器的索引域中不存在空闲的路的情况下,拒绝将所述第一数据从所述牺牲缓冲器送入所述第一级高速缓存器,而是将所述第一数据送入第三存储区,其中所述第三存储区的访问速度比所述第二级高速缓存器的访问速度慢。10.一种多级高速缓存数据推送方法,包括:判断在第二级高速缓存器的要被替换的缓存行中是否存在未来可能再次被访问的缓存行;判断第一级高速缓存器中是否存在空闲的缓存行;在判断在第二级高速缓存器中存在未来可能再次被访问的缓存行并判断第一级高速缓存器中存在空闲的缓存行的情况下,将所述未来可能再次被访问的缓存行前推到所...
【专利技术属性】
技术研发人员:姚涛,贾琳黎,耿恒生,
申请(专利权)人:成都海光微电子技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。