计算设备及基于Cache的LRU算法优化方法技术

技术编号:34818668 阅读:11 留言:0更新日期:2022-09-03 20:29
本发明专利技术公开了一种基于Cache的LRU算法优化方法,其可提高mcu访问Cache数据的命中率,计算设备包括mcu、主存储器、高速缓冲存储器、flash存储器、计数器阵列、寄存器阵列、比较器阵列,高速缓冲存储器连接于mcu与主存储器之间,flash存储器与主存储器连接,高速缓冲存储器采用多路组相联的结构,将高速缓冲存储器均分为若干数据块,数据块与计数器一一对应连接,数据块内存储有数据,计数器用于对数据块的未使用次数进行计数;比较器阵列中的比较器用于对数据块的未使用次数进行比较;寄存器阵列中的寄存器用于对比较器的比较结果进行暂存;mcu用于向高速缓冲存储器中发送访问数据的指令。的指令。的指令。

【技术实现步骤摘要】
计算设备及基于Cache的LRU算法优化方法


[0001]本专利技术涉及高速缓存器
,具体为一种计算设备及基于Cache的LRU算法优化方法。

技术介绍

[0002]高速缓冲存储器(Cache,也称一级缓存器)是一种存取速度较快的RAM,由静态存储芯片组成,主要包括存储体、地址转换部件、替换部件,存储体用于存放由主存调入的指令与数据块,地址转换部件用于建立目录表以实现主存地址到缓存地址的转换,替换部件指按一定策略进行数据块替换。
[0003]Cache连接于主存储器与MCU之间,见图1,Cache存取速度接近于MCU,因此能够提高MCU的使用效率,当MCU从主存储器下载或存储数据时,会优先查找对应地址的数据是否缓存在Cache中,若是,则MCU直接从Cache中下载数据,若否,则从主存储器中依次下载数据至Cache、MCU中。MCU从Cache中下载数据时,常遵循随机法、先进先出法或最近最少使用法(LRU算法)等策略,其中,LRU算法指将最近最少使用的内容替换出Cache,以提高Cache使用效率。但在实际应用中,目前常用的LRU算法仅对cache中能够比较出未使用次数的数据进行替换,无法从几个未使用次数相等的数据块中选出最不常用的数据块进行替换,若此时随机选择任意一个不常用数据进行替换,会导致cache内可能存在最不常用的数据,降低了cache的命中率。

技术实现思路

[0004]针对现有技术中存在的使用现有LRU算法对Cache中内容进行替换的策略存在无法更加精准的替换最不常用的数据,导致Cache的使用效率降低问题,本专利技术提供了一种基于Cache的LRU算法优化方法,当Cache中数据缺失且两个或多个cache line的计数器记满或者记录的未使用次数相同时,仍可实现不常用数据的精确替换,可提高Cache的使用效率,同时可提升mcu访问Cache中数据的命中率。
[0005]为实现上述目的,本专利技术采用如下技术方案:
[0006]一种计算设备,其包括mcu、主存储器、高速缓冲存储器、flash存储器,所述高速缓冲存储器连接于所述mcu与所述主存储器之间,所述flash存储器与所述主存储器连接,其特征在于,其还包括计数器阵列、寄存器阵列、比较器阵列,高速缓冲存储器采用多路组相联的结构,将所述高速缓冲存储器均分为若干数据块,所述数据块与所述计数器阵列中的计数器数量一致,且所述块与所述计数器一一对应连接,所述数据块内存储有数据,所述计数器用于对相应数据块的未使用次数进行计数;
[0007]所述比较器阵列与所述计数器阵列连接,所述比较器阵列包括两级:一级比较器阵列、二级比较器阵列,所述比较器阵列中的比较器用于对相应数据块的未使用次数进行比较;
[0008]所述寄存器阵列中的寄存器用于对所述比较器的比较结果进行暂存;
[0009]所述mcu用于向所述高速缓冲存储器中发送访问数据的指令。
[0010]其进一步特征在于,
[0011]所述高速缓冲存储器为N*M的阵列结构,N*M表示将所述高速缓冲存储器划分为N路,每路包含M行,其中,N、M均为正整数;M行通过组索引彼此区分,所述mcu向所述高速缓冲存储器发送的指令包含:组索引、标签、偏移量,通过所述组索引、标签、偏移量确定所述高速缓冲存储器内某一字节数据的地址;
[0012]所述高速缓冲存储器的大小为4K,采用4路组相连的结构,所述块的大小为128字节,所述地址为16位,所述地址中前6位为所述标签、中间3位为所述组索引、后7位为所述偏移量;
[0013]进一步的,所述N为4,M为8,每行包含有第一偶数块、第一奇数数块、第二偶数块、第二奇数块;
[0014]所述一级比较器包括第一一级比较器、第二一级比较器,所述第一一级比较器用于对所述第一偶数块、第一奇数块中的数据使用频次进行比较,所述第二一级比较器用于对所述第二偶数块、第二奇数块中的数据使用频次进行比较,所述二级比较器用于对所述第一一级比较器的比较结果、第二一级比较器的比较结果进行比较;
[0015]所述寄存器阵列包括至少两级寄存器:一级寄存器、二级寄存器,各级所述寄存器与各级所述比较器一一对应连接,所述一级寄存器与所述一级比较器连接,用于存储所述一级比较器的比较结果,所述二级寄存器与所述二级比较器连接,用于存储所述二级比较器的比较结果;
[0016]所述一级比较器为16个,包括8个第一一级比较器、8个第二一级比较器,所述一级寄存器为16个,包括8个第一一级寄存器、8个第二一级寄存器,所述二级比较器、二级寄存器均为8个,所述第一一级寄存器与所述第一一级比较器一一对应连接,所述第二一级比较器与所述第二一级寄存器一一对应连接,所述二级比较器与所述二级寄存器一一对应连接。
[0017]一种基于Cache的LRU算法优化方法,该方法应用了权利要求1或7所述的计算设备,其特征在于,该优化方法包括S1、mcu下发访问Cache中数据的指令;
[0018]S2、判断Cache中是否缓存有mcu要访问的数据,若是,则表明命中,若否,则表明该数据缺失;
[0019]其中,当发生命中时,计数器将命中的数据块的计数器清零,同时,将同一组索引内的其余数据块的未使用次数均递增1;然后,MCU对Cache中选中地址的数据进行数据交互;
[0020]当发生数据缺失时,进入步骤S3;
[0021]S3、通过一级比较器对当前组索引中数据块的未使用次数进行比较,选出未使用次数最多的数据块,并将比较结果暂存于相应的寄存器阵列中,进入步骤S4;
[0022]S4、根据一级比较器的比较结果,通过二级比较器对一级比较器选中的两个数据块的未使用次数进行比较,选出未使用次数最多的数据块,并将比较结果暂存于相应的寄存器阵列中,进入步骤S5;
[0023]S5、把选中的需要更新的数据块的计数器清零,同时,将所述组索引所在行的其余数据块的未使用次数均递增1;然后,MCU对Cache中选中地址的数据进行数据交互。
[0024]其进一步特征在于,
[0025]步骤S1中,mcu下发的指令为:从Cache的某一地址中下载数据或向Cache中存储数据,所述指令为cache内某一字节的地址;
[0026]步骤S2中,判断Cache中是否缓存有mcu要访问的数据的方式为:S21、根据指令中的组索引找到Cache中相应的行;S22、根据指令中的标签找到该行中相应的路,在步骤S21选中的行中,如果有一个数据块的标签与指令中的标签一致,表明命中,如果两者不一致,则表明Cache中未缓存有mcu要访问的数据,数据缺失;S23、根据指令中的偏移量确定该行该路所对应的块内地址;
[0027]S3中,通过一级比较器阵列对当前组索引中数据块的未使用次数进行比较的方式为:S31、通过第一一级比较器对步骤S21确定的所述行中的第一偶数块、第一奇数块中数据的未使用次数进行比较,判断这两个数据块的未使用次数是否相等。若否,选出未使用次数最多的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种计算设备,其包括mcu、主存储器、高速缓冲存储器、flash存储器,所述高速缓冲存储器连接于所述mcu与所述主存储器之间,所述flash存储器与所述主存储器连接,其特征在于,其还包括计数器阵列、寄存器阵列、比较器阵列,将所述高速缓冲存储器均分为若干数据块,所述数据块与所述计数器阵列中的计数器数量一致,且所述块数据与所述计数器一一对应连接,所述数据块内存储有数据,所述计数器用于对相应数据块的未使用次数进行计数;所述比较器阵列与所述计数器阵列连接,所述比较器阵列包括两级:一级比较器阵列、二级比较器阵列,所述比较器阵列中的比较器用于对所述数据块的未使用次数进行比较;所述寄存器阵列中的寄存器用于对所述比较器的比较结果进行暂存;所述mcu用于向所述高速缓冲存储器中发送访问数据的指令。2.根据权利要求1所述的计算设备,其特征在于,所述高速缓冲存储器为N*M的阵列结构,N*M表示将所述高速缓冲存储器划分为N路,每路包含M行,其中,N、M均为正整数;M行通过组索引彼此区分,所述mcu向所述高速缓冲存储器发送的指令包含:组索引、标签、偏移量,通过所述组索引、标签、偏移量确定所述高速缓冲存储器内某一字节数据的地址。3.根据权利要求2所述的计算设备,其特征在于,所述高速缓冲存储器的大小为4K,采用4路组相连的结构,所述数据块的大小为128字节,所述指令为16位,所述指令前6位为所述标签、中间3位为所述组索引、后7位为所述偏移量。4.根据权利要求3所述的计算设备,其特征在于,所述N为4,M为8,每行包含有第一偶数块、第一奇数数块、第二偶数块、第二奇数块。5.根据权利要求4所述的计算设备,其特征在于,所述一级比较器包括第一一级比较器、第二一级比较器,所述第一一级比较器用于对所述第一偶数块、第一奇数块中的数据未使用次数进行比较,所述第二一级比较器用于对所述第二偶数块、第二奇数块中的数据未使用次数进行比较,所述二级比较器用于对所述第一一级比较器的比较结果、第二一级比较器的比较结果进行比较。6.根据权利要求5所述的计算设备,其特征在于,所述寄存器阵列包括一级寄存器、二级寄存器,所述一级寄存器与所述一级比较器连接,用于存储所述一级比较器阵列的比较结果,所述二级寄存器与所述二级比较器阵列连接,用于存储所述二级比较器阵列的比较结果。7.根据权利要求6所述的计算设备,其特征在于,所述一级比较器为16个,包括8个第一一级比较器、8个第二一级比较器,所述一级寄存器为16个,包括8个第一一级寄存器、8个第二一级寄存器,所述二级比较器、二级寄存器均为8个,所述第一一级寄存器与所述第一一级比较器一一对应连接,所述第二一级比较器与所述第二一级寄存器一一对应连接,所述二级比较器与所述二级寄存器一一对应连接。8.一种基于Cache的LRU算法优化方法,该方法应用了权利要求1或7所述的计算设备,其特征在于...

【专利技术属性】
技术研发人员:韩肖郭晓旭李明
申请(专利权)人:江苏集萃智能集成电路设计技术研究所有限公司
类型:发明
国别省市:

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

1