CN113392043A - 缓存数据替换方法、装置、设备和存储介质 - Google Patents
缓存数据替换方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN113392043A CN113392043A CN202110760095.7A CN202110760095A CN113392043A CN 113392043 A CN113392043 A CN 113392043A CN 202110760095 A CN202110760095 A CN 202110760095A CN 113392043 A CN113392043 A CN 113392043A
- Authority
- CN
- China
- Prior art keywords
- storage
- way
- cache
- ways
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/123—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请提供一种缓存数据替换方法、装置、设备和存储介质,该方法包括:在处理器访问缓存数据未命中任一存储路时,检测缓存中所有存储路是否均已被使用,其中,缓存包括多个存储组,每个存储组包括多个存储路;若缓存中所有的存储路均已被使用,获取每个存储路的历史使用信息;根据历史使用信息对多个存储路做最近最少使用计算,以从多个存储路中选出最近最少使用的第一存储路;从主存中取出处理器访问的目标数据,将第一存储路中的数据替换为目标数据,并根据第一存储路更新各个存储路的历史使用信息。本申请通过位比较对各存储路数据访问先后进行排序、对有效位与比较位进行复用,提高缓存的有效利用率,节省了面积和功耗。
Description
技术领域
本申请涉及存储器技术领域,具体而言,涉及一种缓存数据替换方法、装置、设备和存储介质。
背景技术
Cache存储器,在电脑中为高速缓冲存储器,是一种根据程序局部性原则,通过小容量速度快的存储器缓存部分数据,以减少处理器对慢速大容量存储器的访问次数,从而提升处理器取指效率的机制。处理器进行数据读取时,通常先在读取速度更快的高速缓存(Cache)中进行读取,以缩短数据获取的周期,从而加快处理器运行速度。作为内存数据的备份场所,高速缓存和内存之间的映射通常可以分为全相联映射,直接相联映射和组相联映射。相较于全相联映射和直接相联映射,组相联映射在大多数应用场合尤其多处理器架构中可以提供更加好的性能,因此一般被用作现代处理器高速缓存和内存之间的映射方式。据一个组(set)中所含有存储路(way)的数量N的不同,可以将高速缓存称作N路组联映射高速缓存,简称N路组相联高速缓存。通常而言,N是2的k次方(k大于或等于1,且k是整数)。例如,N等于2、4、8、16等等。
当处理器访问高速缓存时,如果发生数据未命中,此时如果高速缓存还拥有未被使用的可使用单元,则将新数据从内存中取出放入高速缓存:此时如果高速缓存内的可使用单元都被占用,则必须选择一条数据并将其从高速缓存中拿出,从而释放存储单元来存储从内存中拿出的未命中数据。对于后一种情况,高速缓存数据替换部件需要按照一定方式来决定拿出哪条数据,也就是高速缓存的数据替换方法。
Cache替换算法是指当Cache缺失发生后,Cache按某种机制选中高速缓存中的某个地址进行数据更新。Cache替换算法对Cache的命中率有较大的影响。目前主流的Cache替换算法有随机数法、先进先出法、最不经常使用法和最近最少使用法(Least RecentlyUsed,最近最少使用,简称“LRU”)等。在这几种替换策略中,由于CPU执行命令具有局限性(即当前执行的程序代码,在不久后会再次访问该代码段)的特点,LRU法替代策略的缺失率比较低,效果好。
但是,LRU法的原理是在每个行中设置一个计数器,哪一行被CPU访问,则这行置0,其他行增1。在一段时间内,如此循环,待到要替换时,把计数值最大的行替换出去。在组相联高速缓存设计中,其硬件开销比较大。
发明内容
本申请实施例的目的在于提供一种缓存数据替换方法、装置、设备和存储介质,实现了通过位比较对各存储路数据访问先后进行排序、对有效位与比较位进行复用,提高缓存的有效利用率,节省了面积和功耗。
本申请实施例第一方面提供了一种缓存数据替换方法,包括:在处理器访问缓存数据未命中任一存储路时,检测所述缓存中所有存储路是否均已被使用,其中,所述缓存包括多个存储组,每个所述存储组包括多个所述存储路;若所述缓存中所有的所述存储路均已被使用,获取每个所述存储路的历史使用信息;根据所述历史使用信息对多个所述存储路做最近最少使用计算,以从多个所述存储路中选出最近最少使用的第一存储路;从主存中取出所述处理器访问的目标数据,将所述第一存储路中的数据替换为所述目标数据,并根据所述第一存储路更新各个所述存储路的历史使用信息。
于一实施例中,还包括:若所述缓存中存在未被使用的无效存储路,从所述主存中取出所述处理器访问的目标数据,将所述目标数据存储至所述无效存储路,并根据所述无效存储路更新各个所述存储组的历史使用信息。
于一实施例中,还包括:在所述处理器访问所述缓存数据命中了第二存储路时,检测所述缓存中所有的所述存储路是否均已被使用;若所述缓存中所有的所述存储路均已被使用,根据所述第二存储路更新各个所述存储路的历史使用信息。
于一实施例中,所述根据所述第一存储路更新各个所述存储路的历史使用信息,包括:在所述历史使用信息中标记所述第一存储路为最近使用的存储路。
于一实施例中,所述根据所述无效存储路更新各个所述存储组的历史使用信息,包括:若在将所述目标数据存储至所述无效存储路之后,所述缓存中还存在未被使用的存储路,在所述历史使用信息中标记所述无效存储路为已被使用的有效存储路;若在将所述目标数据存储至所述无效存储路之后,所述缓存中不存在未被使用的存储路,在所述历史使用信息中标记存储有所述目标数据的所述无效存储路为最近使用的存储路。
于一实施例中,所述根据所述第二存储路更新各个所述存储路的历史使用信息,包括:在所述历史使用信息中标记所述第二存储路为最近使用的存储路。
本申请实施例第二方面提供了一种缓存数据替换装置,包括:检测模块,用于在处理器访问缓存数据未命中任一存储路时,检测所述缓存中所有存储路是否均已被使用,其中,所述缓存包括多个存储组,每个所述存储组包括多个所述存储路;获取模块,用于若所述缓存中所有的所述存储路均已被使用,获取每个所述存储路的历史使用信息;选择模块,用于根据所述历史使用信息对多个所述存储路做最近最少使用计算,以从多个所述存储路中选出最近最少使用的第一存储路;替换模块,用于从主存中取出所述处理器访问的目标数据,将所述第一存储路中的数据替换为所述目标数据,并根据所述第一存储路更新各个所述存储路的历史使用信息。
于一实施例中,还包括:存储模块,用于若所述缓存中存在未被使用的无效存储路,从所述主存中取出所述处理器访问的目标数据,将所述目标数据存储至所述无效存储路,并根据所述无效存储路更新各个所述存储组的历史使用信息。
于一实施例中,所述检测模块还用于在所述处理器访问所述缓存数据命中了第二存储路时,检测所述缓存中所有的所述存储路是否均已被使用;所述替换模块还用于若所述缓存中所有的所述存储路均已被使用,根据所述第二存储路更新各个所述存储路的历史使用信息。
于一实施例中,所述根据所述第一存储路更新各个所述存储路的历史使用信息,包括:在所述历史使用信息中标记所述第一存储路为最近使用的存储路。
于一实施例中,所述根据所述无效存储路更新各个所述存储组的历史使用信息,包括:若在将所述目标数据存储至所述无效存储路之后,所述缓存中还存在未被使用的存储路,在所述历史使用信息中标记所述无效存储路为已被使用的有效存储路;若在将所述目标数据存储至所述无效存储路之后,所述缓存中不存在未被使用的存储路,在所述历史使用信息中标记存储有所述目标数据的所述无效存储路为最近使用的存储路。
于一实施例中,所述根据所述第二存储路更新各个所述存储路的历史使用信息,包括:在所述历史使用信息中标记所述第二存储路为最近使用的存储路。
本申请实施例第三方面提供了一种电子设备,包括:存储器,用以存储计算机程序;处理器,用以执行本申请实施例第一方面及其任一实施例的方法,以对缓存中的存储数据进行替换。
本申请实施例第四方面提供了一种电子设备,包括:存储器,用以存储计算机程序;处理器,用以执行本申请实施例第二方面及其任一实施例的方法,以从编码图像中恢复出原始图像。
本申请提供的缓存数据替换方法、装置、设备和存储介质,在处理器访问缓存数据未命中任一存储路、并且缓存中的所有存储路均已被使用时,通过每个存储路的历史使用信息,对多个所述存储路做最近最少使用计算,以从多个所述存储路中选出最近最少使用的第一存储路,进而将处理器访问的目标数据替换第一存储路中的原有数据,如此,提高缓存的有效利用率,节省了功耗。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请一实施例的电子设备的结构示意图;
图2A为本申请一实施例的缓存数据替换场景的示意图;
图2B为本申请一实施例的5BIT LRU阵列的基本存储单元的示意图;
图3为本申请一实施例的缓存数据替换方法的流程示意图;
图4为本申请一实施例的缓存数据替换方法的流程示意图;
图5为本申请一实施例的缓存数据替换装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
如图1所示,本实施例提供一种电子设备1,包括:至少一个处理器11和存储器12,图1中以一个处理器为例。处理器11和存储器12通过总线10连接。存储器12存储有可被处理器11执行的指令,指令被处理器11执行,以使电子设备1可执行下述的实施例中方法的全部或部分流程,以对缓存中的存储数据进行替换。
于一实施例中,电子设备1可以是手机、平板电脑、笔记本电脑、台式计算机等设备。
请参看图2A,其为本申请一实施例的所有存储路全有效时的缓存数据替换的场景示意图,可以采用演算法将高速缓存中的存储路按照二进位树(binary tree)的形式组织起来,二进位树的每个节点表示子树上的存储路的历史信息(比如历史使用信息)。
在实际场景中,从二进位树的顶部搜寻到二进位树的底部就可以找出应该替换的存储路。在每一个二进位树的节点,把二进位树的子树作为一个整体进行考量它们的历史信息。
以4个存储路(way0至way3)为例,采用3个储存单元(即存储单元21、存储单元22和存储单元23)节点,以二进位树的形式组织,每个节点的存储单元用于存储左右子树的比较位,用来标识左右子树的相对使用顺序。当虚拟最近最少使用二进位树的节点为0时,则沿着左子树进行查找,否则沿着右子树进行查找,直到找到最后应该被替换的存储路为止。其中,当替换发生或者命中发生的时候,需要更新储存单元中所储存的相对使用顺序。请参看图2B,其为本申请一实施例的5BIT LRU阵列的基本存储单元,其可以应用于如图2A所示的4路存储路的场景中,其中:LRU[0]:即Valid(有效)位,下述简称“V”位,用来表示该SET中的所有存储路数据是否均有效。
当LRU[0]为0,表示4个way数据不全有效:
LRU[1]表示way0的有效标志;
LRU[2]表示way1的有效标志;
LRU[3]表示way2的有效标志;
LRU[4]表示way3的有效标志;
LRU[0]为1:表示4个way数据全有效。此时LRU[3:1]:用来表示存储路的历史使用信息,即可以表示每个存储路的使用顺序信息。对应于图2A中的存储单元21、存储单元22和存储单元23。比如,LRU[2]:对应于存储单元21,其存储的数据用于表示最近使用的是WAY3/WAY2或是WAY1/WAY0:如果为1,则表示最近使用的是WAY3/WAY2,如果为0,则表示最近使用的是WAY1/WAY0。
LRU[3]:对应于存储单元22,其存储的数据用于标志WAY3和WAY2的使用情况:如果为1,则表示最近使用的是WAY3,如果为0,则表示最近使用的是WAY2。
LRU[1]:对应于存储单元23,其存储数据用于标志WAY1和WAY0的使用情况:如果为1,则表示最近使用的是WAY1,如果为0,则表示最近使用的是WAY0。当LRU[0]为1时,LRU[4]无作用。
于一实施例中,对应N路而言,原理和4路相同,可以使用N+1比特LRU实现:
当LRU[0]=0(在数据不全有效时)时:
LRU[1]:way0的有效指示;
LRU[2]:way1的有效指示;
……
LRU[N+1]:wayN的有效指示。
当LRU[0]=1(在数据全有效)时,当数据均有效时,可以使用N位实现:
其中,当LRU[M/2]为1时,表示存储的数据用于表示最近使用的是way(M-1)/way(M-2)..../way(M/2)。当LRU[M/2]为0时,表示存储的数据用于表示最近使用的是way(M/2-1)..../way0,(其中M取值为从2遍历到2N)。
综上,当存在无效的存储路时,LRU值,作为表征存储路是否有效的有效位;当全部存储路均有效时,LRU值用来作为表征存储路使用顺序的比较位,实现了有效位与比较位的复用。
请参看图3,其为本申请一实施例的缓存数据替换方法,该方法可由图1所示的电子设备1来执行,并可以应用于如图2A至2B所示的缓存数据替换的场景中,以对缓存中的存储数据进行替换。该方法包括如下步骤:
步骤301:检测处理器访问缓存是否命中,若是进入步骤307,否则,进入步骤302。
在本步骤中,高速缓存工作时,首先匹配CPU发出的所需数据的地址信息,如果在标签TAG中找到与CPU所需数据相吻合的地址信息,且其Valid(有效)位显示相应way(存储路)有效,表示命中,进入步骤307,否则表示未命中,进入步骤302。
步骤302:在处理器访问缓存数据未命中任一存储路时,检测缓存中所有存储路是否均已被使用,若是,进入步骤303,否则进入步骤306。
在本步骤中,其中,缓存包括多个存储组,每个存储组包括多个存储路。以缓存中包括4路存储路为例,如图2A所示,way0和way1为一存储组,way2和way3为一存储组。假设在处理器访问缓存数据未命中任一存储路时,则检测缓存中所有存储路是否均已被使用,若是,进入步骤303,否则进入步骤306。
步骤303:获取每个存储路的历史使用信息。
在本步骤中,若缓存中所有的存储路均已被使用,说明缓存中每个存储路都是有效的,以4个存储路为例,此时,可以通过读取如图2B中5BIT LRU阵列的基本存储单元内存储的数据,来获取到每个存储路的历史使用信息。步骤304:根据历史使用信息对多个存储路做最近最少使用计算,以从多个存储路中选出最近最少使用的第一存储路。
在本步骤中,历史使用信息至少包括每个存储路的使用顺序信息,以四个存储路为例,每个存储路都是有效的,即对应LRU[0]为1的情况。此时LRU[3:1]用来表示存储路的历史使用信息。比如LRU[3:1]的值可以表示四个存储路之间的使用顺序信息,因此可以基于LRU的取值,从多个存储路中选出最近最少使用的第一存储路。具体选择方式参见下表1。
步骤305:从主存中取出处理器访问的目标数据,将第一存储路中的数据替换为目标数据,并根据第一存储路更新各个存储路的历史使用信息。
在本步骤中,以如图2A至图2B中所示的4路存储路为例,不命中且全部存储路已被使用时,根据如图2B中LRU的值表示的历史使用信息,选择相应的第一存储路进行替换,并相应更新LRU值。具体操作如表1所示:
表1 未命中且全部存储路均有效
步骤306:从主存中取出处理器访问的目标数据,将目标数据存储至无效存储路,并根据无效存储路更新各个存储组的历史使用信息。
在本步骤中,以如图2B中所示的路存储路为例,未命中且缓存中存在未被使用的无效存储路时,根据如图2B中LRU的值表示的历史使用信息,直接选择相应的无效存储路进行数据替换,并相应更新LRU值。
于一实施例中,若在将目标数据存储至无效存储路之后,缓存中还存在未被使用的存储路,在历史使用信息中标记无效存储路为已被使用的有效存储路。
于一实施例中,若在将目标数据存储至无效存储路之后,缓存中不存在未被使用的存储路,在历史使用信息中标记存储有目标数据的无效存储路为最近使用的存储路。历史使用信息至少包括每个存储路的有效位信息。
由于步骤306中将目标数据存储至无效存储路,说明此后该无效存储路就是被使用的了,是有效的,通过在历史使用信息中进行标记,以供后续步骤判断。对应未命中且存在无效存储路时,如果此次替换,不能使该set中的所有路均有效,即存在V无效,则LRU的各位表示的是有效标志位。当此次替换使该set中的所有路均有效,即V置1,才将LRU的有效标志替换为无效存储路为最近使用的存储路。
于一实施例中,以四个存储路为例,存在无效存储路时,即对应LRU[0]为0的情况。此时LRU[3:1]用来表示对应存储路的有效位信息。因此可以通过对该无效存储路的LRU执行操作,设置其LRU取值,用来将该无效存储路标记为已被使用的有效存储路。若本次操作中替换的是最后一个无效存储器路,则将数据全部有效标志置1,否则将该路对应的有效标志置1。具体操作如表2所示:
表2 未命中且存在无效存储路
在上述表2中,当Valid(有效)位不全有效时,即LRU[0]为0时,LRU[3:1]用来分别表征四个存储路的有效位。参看图2B下半部分,当需要替换时,如果LRU[1]为0,则替换WAY0,同时将LRU[1]置1;否则如果LRU[2]为0,则替换WAY1,同时将LRU[2]置1;否则如果LRU[3]为0,则替换WAY2,同时将LRU[3]置1;否则如果LRU[4]为0,替换WAY3,将LRU[0]置1,此时LRU的意义发生了变化,参看图2B上半部分,表明最近使用的是WAY3,最近最少使用的是WAY0。
当某一way由于某些因素要从有效转为无效时,要把对应的V位清零,此时,如果LRU[0]为1,则需要将LRU[0]清零,其它way置1(要置为无效的way除外)。
步骤307:在处理器访问缓存数据命中了第二存储路时,检测缓存中所有的存储路是否均已被使用。若是,进入步骤308,否则说明存在未被使用的存储路,则无需对LRU阵列的基本存储单元进行变更,如下表3中的LRU[0]为0的情况。
步骤308:根据第二存储路更新各个存储路的历史使用信息。
在本步骤中,在处理器访问缓存数据命中了第二存储路,且缓存中所有的存储路均已被使用,说明所有的存储路均有效,则直接根据第二存储路更新各个存储路的历史使用信息,以四个存储路为例,每个存储路都是有效的,即对应LRU[0]为1的情况。此时LRU[3:1]可以用来表示四个存储路之间的使用顺序信息,因此可以通过设置对应存储路LRU的取值,来更新各个存储路的历史使用信息。如表3所示:
表3 命中时的操作过程
上述缓存数据替换,采用位复用算法用一位(Flag)来表示存储路的V是否均有效。在V位未全部有效之前,V位根据系统的运行情况改变,但4路way的V均有效后,V一般情况下就不再需要改动,即使高速缓存空间满了需要替换,也只替换数据Data和标签Tag,而不需更新V位。此时用来表示某个way有效与否的V位就作为比较位用。如此进行复用,可以节省空间,尤其当高速缓存较大,LRU阵列的数目较多时,上述位复用位方式,LRU可以节省2/7Valid Ram空间,从而也节省了缓存功耗。
请参看图4,其为本申请一实施例的缓存数据替换方法,该方法可由图1所示的电子设备1来执行,并可以应用于如图2A至2B所示的缓存数据替换的场景中,以对缓存中的存储数据进行替换。以如图2A至图2B中所示的4路存储路为例,该方法包括如下步骤:
步骤401:检测处理器访问缓存是否命中,若是进入步骤411,否则,进入步骤202。
步骤402:判断LRU[0]是否为1,若是进入步骤403,否则进入步骤410。
步骤403:判断LRU[2]是否为1,若是,进入步骤404,否则进入步骤407。
步骤404:判断LRU[1]是否为1,若是进入步骤405,否则进入步骤406。
步骤405:替换WAY0,设置LRU[2:1]为00,其余位不变。
步骤406:替换way1,设置LRU[2:1]为01,其余位不变。
步骤407:判断LRU[3]是否为1,若是进入步骤408,否则进入步骤409。
步骤408:替换WAY2,设置LRU[3:2]为01,其余位不变。
步骤409:替换WAY3,设置LRU[3:2]为11,其余位不变。
步骤410:按照如下规则操作:
如果LRU[4:1]=4'b0000,替换WAY0,置LRU[4:1]=4'b0001。
如果LRU[4:1]=4'b0001,替换WAY1,置LRU[4:1]=4'b0011。
如果LRU[4:1]=4'b0011,替换WAY2,置LRU[4:1]=4'b0111。
如果LRU[4:1]=4'b0111,替换WAY3,置LRU[4:0]=5'b01111。
步骤411:判断LRU[0]是否为1,若是进入步骤412,否则进入步骤414。
步骤412:判别命中的是哪一个存储路,并根据判定结果,进入步骤413的规则操作。
步骤413:若命中WAY0:设置LRU[2:1]为00,其余位不变。若命中WAY1:设置LRU[2:1]为01,其余位不变。若命中WAY2:设置LRU[3:2]为01,其余位不变。若命中WAY3:设置LRU[3:2]为11,其余位不变。
步骤414:LRU[4:1]保持不变。
上述缓存数据替换方法,采用5bit位复用近似LRU算法,相对于带计数器的LRU算法,具备电路复杂性较小、命中率高、实用性强等特点。
请参看图5,其为本申请一实施例的缓存数据替换装置500,该装置应用于图1所示的电子设备1,并可以应用于如图2A至2B所示的缓存数据替换的场景中,以对缓存中的存储数据进行替换。该装置包括:检测模块501、获取模块502、选择模块503和替换模块504,各个模块的原理关系如下:
检测模块501,用于在处理器访问缓存数据未命中任一存储路时,检测缓存中所有存储路是否均已被使用,其中,缓存包括多个存储组,每个存储组包括多个存储路。
获取模块502,用于若缓存中所有的存储路均已被使用,获取每个存储路的历史使用信息。
选择模块503,用于根据历史使用信息对多个存储路做最近最少使用计算,以从多个存储路中选出最近最少使用的第一存储路。
替换模块504,用于从主存中取出处理器访问的目标数据,将第一存储路中的数据替换为目标数据,并根据第一存储路更新各个存储路的历史使用信息。
于一实施例中,还包括:存储模块505,用于若缓存中存在未被使用的无效存储路,从主存中取出处理器访问的目标数据,将目标数据存储至无效存储路,并根据无效存储路更新各个存储组的历史使用信息。
于一实施例中,检测模块501还用于在处理器访问缓存数据命中了第二存储路时,检测缓存中所有的存储路是否均已被使用。替换模块504还用于若缓存中所有的存储路均已被使用,根据第二存储路更新各个存储路的历史使用信息。
于一实施例中,根据第一存储路更新各个存储路的历史使用信息,包括:在历史使用信息中标记第一存储路为最近使用的存储路。
于一实施例中,根据无效存储路更新各个存储组的历史使用信息,包括:若在将目标数据存储至无效存储路之后,缓存中还存在未被使用的存储路,在历史使用信息中标记所述无效存储路为已被使用的有效存储路;若在将目标数据存储至无效存储路之后,缓存中不存在未被使用的存储路,在历史使用信息中标记存储有所述目标数据的所述无效存储路为最近使用的存储路。
于一实施例中,根据第二存储路更新各个存储路的历史使用信息,包括:在历史使用信息中标记第二存储路为最近使用的存储路。
上述缓存数据替换装置500的详细描述,请参见上述如图3至图4中所示的实施例中相关方法步骤的描述。
本发明实施例还提供了一种非暂态电子设备可读存储介质,包括:程序,当其在电子设备上运行时,使得电子设备可执行上述实施例中方法的全部或部分流程。其中,存储介质可为磁盘、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(RandomAccess Memory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等。存储介质还可以包括上述种类的存储器的组合。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (10)
1.一种缓存数据替换方法,其特征在于,包括:
在处理器访问缓存数据未命中任一存储路时,检测所述缓存中所有存储路是否均已被使用,其中,所述缓存包括多个存储组,每个所述存储组包括多个所述存储路;
若所述缓存中所有的所述存储路均已被使用,获取每个所述存储路的历史使用信息;
根据所述历史使用信息对多个所述存储路做最近最少使用计算,以从多个所述存储路中选出最近最少使用的第一存储路;
从主存中取出所述处理器访问的目标数据,将所述第一存储路中的数据替换为所述目标数据,并根据所述第一存储路更新各个所述存储路的历史使用信息。
2.根据权利要求1所述的方法,其特征在于,还包括:
若所述缓存中存在未被使用的无效存储路,从所述主存中取出所述处理器访问的目标数据,将所述目标数据存储至所述无效存储路,并根据所述无效存储路更新所述存储组的历史使用信息。
3.根据权利要求1所述的方法,其特征在于,还包括:
在所述处理器访问所述缓存数据命中了第二存储路时,检测所述缓存中所有的所述存储路是否均已被使用;
若所述缓存中所有的所述存储路均已被使用,根据所述第二存储路更新各个所述存储路的历史使用信息。
4.根据权利要求1所述的方法,其特征在于,所述根据所述第一存储路更新各个所述存储路的历史使用信息,包括:
在所述历史使用信息中标记所述第一存储路为最近使用的存储路。
5.根据权利要求2所述的方法,其特征在于,所述根据所述无效存储路更新各个所述存储组的历史使用信息,包括:
若在将所述目标数据存储至所述无效存储路之后,所述缓存中还存在未被使用的存储路,在所述历史使用信息中标记所述无效存储路为已被使用的有效存储路;
若在将所述目标数据存储至所述无效存储路之后,所述缓存中不存在未被使用的存储路,在所述历史使用信息中标记存储有所述目标数据的所述无效存储路为最近使用的存储路。
6.根据权利要求3所述的方法,其特征在于,所述根据所述第二存储路更新各个所述存储路的历史使用信息,包括:
在所述历史使用信息中标记所述第二存储路为最近使用的存储路。
7.一种缓存数据替换装置,其特征在于,包括:
检测模块,用于在处理器访问缓存数据未命中任一存储路时,检测所述缓存中所有存储路是否均已被使用,其中,所述缓存包括多个存储组,每个所述存储组包括多个所述存储路;
获取模块,用于若所述缓存中所有的所述存储路均已被使用,获取每个所述存储路的历史使用信息;
选择模块,用于根据所述历史使用信息对多个所述存储路做最近最少使用计算,以从多个所述存储路中选出最近最少使用的第一存储路;
替换模块,用于从主存中取出所述处理器访问的目标数据,将所述第一存储路中的数据替换为所述目标数据,并根据所述第一存储路更新各个所述存储路的历史使用信息。
8.根据权利要求7所述的装置,其特征在于,
所述检测模块还用于在所述处理器访问所述缓存数据命中了第二存储路时,检测所述缓存中所有的所述存储路是否均已被使用;
所述替换模块还用于若所述缓存中所有的所述存储路均已被使用,根据所述第二存储路更新各个所述存储路的历史使用信息。
9.一种电子设备,其特征在于,包括:
存储器,用以存储计算机程序;
处理器,用以执行如权利要求1至6中任一项所述的方法,以对缓存中的存储数据进行替换。
10.一种非暂态电子设备可读存储介质,其特征在于,包括:程序,当其藉由电子设备运行时,使得所述电子设备执行权利要求1至6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110760095.7A CN113392043A (zh) | 2021-07-06 | 2021-07-06 | 缓存数据替换方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110760095.7A CN113392043A (zh) | 2021-07-06 | 2021-07-06 | 缓存数据替换方法、装置、设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113392043A true CN113392043A (zh) | 2021-09-14 |
Family
ID=77625300
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110760095.7A Pending CN113392043A (zh) | 2021-07-06 | 2021-07-06 | 缓存数据替换方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113392043A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113849455A (zh) * | 2021-09-28 | 2021-12-28 | 致真存储(北京)科技有限公司 | 一种基于混合式存储器的mcu及缓存数据的方法 |
CN114860785A (zh) * | 2022-07-08 | 2022-08-05 | 深圳云豹智能有限公司 | 缓存数据处理系统、方法、计算机设备和存储介质 |
-
2021
- 2021-07-06 CN CN202110760095.7A patent/CN113392043A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113849455A (zh) * | 2021-09-28 | 2021-12-28 | 致真存储(北京)科技有限公司 | 一种基于混合式存储器的mcu及缓存数据的方法 |
CN113849455B (zh) * | 2021-09-28 | 2023-09-29 | 致真存储(北京)科技有限公司 | 一种基于混合式存储器的mcu及缓存数据的方法 |
CN114860785A (zh) * | 2022-07-08 | 2022-08-05 | 深圳云豹智能有限公司 | 缓存数据处理系统、方法、计算机设备和存储介质 |
CN114860785B (zh) * | 2022-07-08 | 2022-09-06 | 深圳云豹智能有限公司 | 缓存数据处理系统、方法、计算机设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100962057B1 (ko) | 캐시 치환 폴리시의 간이화한 구현을 갖춘 멀티스레드 캐시의 방법 및 장치 | |
US9298615B2 (en) | Methods and apparatus for soft-partitioning of a data cache for stack data | |
CN1317645C (zh) | 具有基于线程标识符的缓存清除的多线程缓存方法和装置 | |
EP0185867B1 (en) | A memory hierarchy and its method of operation | |
EP0157175B1 (en) | Prefetching mechanism for a high speed buffer store | |
US7844778B2 (en) | Intelligent cache replacement mechanism with varying and adaptive temporal residency requirements | |
US9582282B2 (en) | Prefetching using a prefetch lookup table identifying previously accessed cache lines | |
US20030135694A1 (en) | Apparatus for cache compression engine for data compression of on-chip caches to increase effective cache size | |
US8677049B2 (en) | Region prefetcher and methods thereof | |
KR102344008B1 (ko) | 데이터 스토어 및 데이터 스토어에 데이터를 할당하는 방법 | |
GB2389205A (en) | Unified tag memory for multi-level cache memory | |
JP2004530995A (ja) | 高速かつ正確なキャッシュウェイの選択 | |
US7237067B2 (en) | Managing a multi-way associative cache | |
CN113392043A (zh) | 缓存数据替换方法、装置、设备和存储介质 | |
WO2011049051A1 (ja) | キャッシュメモリおよびその制御方法 | |
GB2546245A (en) | Cache memory | |
US6408364B1 (en) | Apparatus and method for implementing a least recently used cache replacement algorithm | |
EP2866148B1 (en) | Storage system having tag storage device with multiple tag entries associated with same data storage line for data recycling and related tag storage device | |
US20140013054A1 (en) | Storing data structures in cache | |
US6397298B1 (en) | Cache memory having a programmable cache replacement scheme | |
KR101976320B1 (ko) | 라스트 레벨 캐시 메모리 및 이의 데이터 관리 방법 | |
US20110283041A1 (en) | Cache memory and control method thereof | |
US9251070B2 (en) | Methods and apparatus for multi-level cache hierarchies | |
CN117971731A (zh) | Lru近似算法的硬件实现装置、lru值的更新方法及装置 | |
JPWO2010098152A1 (ja) | キャッシュメモリシステムおよびキャッシュメモリ制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |