CN115617712A - 一种基于组相联高速缓存Cache的LRU替换算法 - Google Patents
一种基于组相联高速缓存Cache的LRU替换算法 Download PDFInfo
- Publication number
- CN115617712A CN115617712A CN202211258433.8A CN202211258433A CN115617712A CN 115617712 A CN115617712 A CN 115617712A CN 202211258433 A CN202211258433 A CN 202211258433A CN 115617712 A CN115617712 A CN 115617712A
- Authority
- CN
- China
- Prior art keywords
- cache
- entry
- state
- lru
- entries
- 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
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
本发明公开了一种基于组相联高速缓存Cache的LRU替换算法,包括以下步骤:根据所述组相联高速缓存中Cache的组数和地址位数设置相应组数的状态寄存器,所述状态寄存器用于记录相同地址查找的相应条目的数据块淘汰优先级顺序;根据Cache的命中状态,利用近期最少使用原则LRU按照淘汰优先级从高到低的顺序依次对所述状态寄存器中记录的内容进行替换更新。本发明实现在增加较小硬件代价的情况下,保持Cache的高命中率。
Description
技术领域
本发明涉及处理器设计领域,特别涉及一种基于组相联高速缓存Cache的LRU替换算法。
背景技术
随着处理器性能的不断提升,处理器与存储器之间的鸿沟越来越不可忽视,这个鸿沟也被行业内部称之为存储墙;而高速缓存Cache是“跨越”存储墙的必要组件,也是当今处理器设计中绕不开的一个重要组件,相比主存而言,高速缓存离核心更近、读取数速度更快。高速缓存Cache的出现自然就引出了有关缓存替换算法的讨论,缓存替换是指当高速缓存已经存满并且没有当前处理所需要的数据块时,需要选择高速缓存中一块数据块进行数据替换;缓存替换算法会直接影响高速缓存的命中率从而影响处理的性能。
目前高速缓存中常用的替换算法有:随机替换算法(Random Replancement,RAND)、先进先出算法(First in First out,FIFO)、最少频繁使用算法(Least FrequentlyUsed,LFU)、近期最少使用替换算法(Least Rencetly Used,LRU)。其中,RAND替换算法是指随机在高速缓存中选择一个数据块进行替换,该算法在实际应用中有着替换速度快、硬件实现简单的优点,但是由于替换数据块时随机选择的,从而有大概率替换掉即将要使用到的数据块,进而导致命中率降低,影响处理器性能;LFU替换算法是指先装入高速缓存中的数据块先被替换,最先装入高速缓存的数据块替换优先级最高,该算法实现起来也较为简单,但在大循环类型的程序中同样会影响命中率,降低处理器工作性能;LRU替换算法是指选择替换在程序运行阶段被使用到最少的数据块,该算法在一定程度上可以提高命中率,但是由于需要记录数据块的使用信息,会增加硬件设计的复杂度,其复杂度随着高速缓存的容量指数增长;因此,需要对LRU替换算法的应用进行改进来实现在增加较小硬件代价的情况下,保持Cache的高命中率。
发明内容
本发明的目的在于克服现有技术中的不足,提供一种基于组相联高速缓存Cache的LRU替换算法,能够提高替换效率和命中率。
为达到上述目的,本发明是采用下述技术方案实现的:
本发明提供一种基于组相联高速缓存Cache的LRU替换算法,其特征在于,包括以下步骤:
根据所述组相联高速缓存中Cache的组数和地址位数设置相应组数的状态寄存器,所述状态寄存器用于记录相同地址查找的相应条目的数据块淘汰优先级顺序;
根据Cache的命中状态,利用近期最少使用原则LRU按照淘汰优先级从高到低的顺序依次对所述状态寄存器中记录的内容进行替换更新。
优选地,根据Cache的命中状态,利用近期最少使用原则LRU按照淘汰优先级从高到低的顺序依次对所述状态寄存器中记录的内容进行替换更新的方法包括:
Cache未命中时,将替换条目的路号装填到淘汰优先级最低路号的状态寄存器条目中,原本记录在淘汰优先级最低的路号装填到比其优先级高一级的状态寄存器条目中,以此类推,按照淘汰优选级从低到高的顺序逐级替换各状态寄存器的条目,并将记录在淘汰优先级最高的状态寄存器的条目淘汰;
Cache命中时,将命中的条目路号装到淘汰优先级最低路号的状态寄存器条目中,并按照路号状态寄存器中路号淘汰优先级重新装填剩余状态寄存器的条目。
优选地,所述组相联高速缓存中Cache共有四组,相应的所述状态寄存器设置为四组;四组所述状态寄存器按照淘汰优选级从高到低的顺序依次为LRU_REG0、LRU_REG1、LRU_REG2和LREU_REG3;其中,所述LRU_REG0中记录的是当前地址下四路条目中淘汰优先级最高一路的路号,以此类推,所述LRU_REG3中记录的是当前地址下四路条目中淘汰优先级最低一路的路号。
优选地,基于四组所述状态寄存器的替换算法包括:Cache未命中时,将替换条目的路号装到优先级最低路号状态寄存器ITME3条目中,原本记录在ITEM3条目中的路号装填到ITEM2条目中,原本记录在ITEM2条目中的路号装填到ITEM1条目中,并将记录在ITEM0中的条目淘汰;Cache命中时,将命中的条目路号装到ITEM3条目中,并按照路号状态寄存器中数据块的淘汰优先级重新装填剩余条目。
优选地,所述算法进行替换前,除了考虑Cache的命中状态还需考虑与Cache中地址相同的一组Cache存储块的状态,所述状态寄存器每一路地址相同的数据块组合成一组Cache存储块;
所述Cache存储块的状态包括:若一组地址相同的Cache存储块中都存在有效数据,则该组Cache存储块为“满”状态;若不存在有效数据,则该组Cache存储块为“空”状态;最初一组Cache存储块中不存在有效数据,该组Cache存储块为“初始”状态;其余状态的Cache存储块为“未满”状态。
优选地,所述Cache存储块为“初始”状态且Cache未命中时,对四组所述状态寄存器中记录的内容进行替换更新的方法包括:
当前状态对地址为0x02的Cache数据块发起访存且未命中,将LRU_REG3地址为0x02的ITEM3条目中装入2’b11;原本装填在ITEM3条目中的数据被顺移装到ITEM2条目中,原本装填在ITEM2条目中的数据被顺移装到ITEM1条目中,原本装填在ITEM1条目中的数据被顺移装到ITEM0条目中。
优选地,所述Cache存储块为“未满”状态且Cache命中时,对四组所述状态寄存器中记录的内容进行替换更新的方法包括:
当前状态对地址为0x02的数据块发起访存且命中LRU_REG3,将LRU_REG3地址为0x02的ITEM3条目中装入2’b11,原本装填在ITEM3条目中的数据被顺移装到ITEM2条目中,原本装填在ITEM2条目中的数据被顺移装到ITEM1条目中,原本装填在ITEM0条目中的数据保持不变。
优选地,所述Cache存储块为“满”状态且Cache未命中时,对四组所述状态寄存器中记录的内容进行替换更新的方法包括:
当前状态对地址为0x02的数据块发起访存且未命中,将原本装填在ITEM0条目中的数据淘汰,并将在LRU_REG3中地址为0x02的ITEM3条目中装入2’b10;原本装填在ITEM3条目中的数据被顺移装到ITEM2条目中,原本装填在ITEM2条目中的数据被顺移装到ITEM1条目中。
优选地,所述Cache存储块为“满”状态且Cache命中时,对四组所述状态寄存器中记录的内容进行替换更新的方法包括:
当前状态对地址为0x02的数据块发起访存且命中,将LRU_REG3中地址为0x02的ITEM3条目中装入2’b11,原本装填在ITEM3条目中的数据被顺移装到ITEM2条目中,原本装填在ITEM1和ITEM0条目中的数据保持不变。
与现有技术相比,本发明所达到的有益效果:
本发明提供的替换算法适用于多路组相联高速缓存Cache结构,具体实现过程较为简单,能够在增加较少的硬件开销的情况下实现按照数据块使用频率筛选淘汰功能,大幅度提高了Cache的命中率,从而减少因为处理器处理访存指令而导致的堵塞情况,进一步提高了替换效率。
附图说明
图1是本发明实施例提供的多组状态寄存器的结构示意图;
图2本发明实施例提供的四组状态寄存器的数据结构示意图;
图3本发明实施例提供的基于组相联高速缓存Cache的LRU替换算法中针对四组状态寄存器的替换逻辑整体流程示意图;
图4本发明实施例提供的基于组相联高速缓存Cache的LRU替换算法中针对四组状态寄存器中四种情况下的替换逻辑流程示意图;
图5本发明实施例提供的与图4中四种情况相对应对的四组状态寄存器内部状态转变示意图。
具体实施方式
下面通过附图以及具体实施例对本发明技术方案做详细的说明,应当理解本申请实施例以及实施例中的具体特征是对本申请技术方案的详细的说明,而不是对本申请技术方案的限定,在不冲突的情况下,本申请实施例以及实施例中的技术特征可以相互组合。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符"/",一般表示前后关联对象是一种“或”的关系。
本实施例介绍一基于组相联高速缓存Cache的LRU替换算法,具体包括如下步骤:
步骤1:根据所述组相联高速缓存中Cache的组数和地址位数设置相应组数的状态寄存器,所述状态寄存器用于记录相同地址查找的相应条目的数据块淘汰优先级顺序;
步骤2:根据Cache的命中状态,利用近期最少使用原则LRU按照淘汰优先级从高到低的顺序依次对所述状态寄存器中记录的内容进行替换更新。
作为本发明的一种实施例,步骤2中的替换更新过程具体包括:
Cache未命中时,将替换条目的路号装填到淘汰优先级最低路号的状态寄存器条目中,原本记录在淘汰优先级最低的路号装填到比其优先级高一级的状态寄存器条目中,以此类推,按照淘汰优选级从低到高的顺序逐级替换各状态寄存器的条目,并将记录在淘汰优先级最高的状态寄存器的条目淘汰;
Cache命中时,将命中的条目路号装到淘汰优先级最低路号的状态寄存器条目中,并按照路号状态寄存器中路号淘汰优先级重新装填剩余状态寄存器的条目。
具体的,如图1所示,本发明实施例提供的组相联高速缓存中Cache的组数2n和地址为k位,相应的设置2n组且每组条目数量均为2k的状态寄存器用于记录相同地址查找的相应条目的数据块淘汰优先级顺序;各所述状态寄存器按照淘汰优先级从高到低的顺序记录的路号依次为LRU_REG0、LRU_REG1、LRU_REG2……LREU_REG2n;n和k均为正整数。
需要进一步说明的是,本发明实施例以4路组相联Cache为例,以更好的说明本发明实施例提供的组相联高速缓存Cache的LRU替换算法,如图2所示,状态寄存器组设置为四组,其数据结构例化为一个6端口输入,4端口输出的LRU模块;该LRU模块内部由四路128*2位(128由i_addr位数决定,2由Cache路数决定)的状态寄存器LRE_REG组成,分别标记为LRU_REG0、LRU_REG1、LRU_REG2和LREU_REG3,用于记录Cache行的状态。其中,输入信号i_addr[6:0]用于指示当前处理数据块的地址;i_data0[1:0]、i_data1[1:0]、i_data2[1:0]和i_data3[1:0]分别为当前状态下LRU模块内部各状态存储器LRU_REG0、LRU_REG1、LRU_REG2和LREU_REG3即将要更新的状态;i_wrie为写使能;输出信号o_item0[1:0]、o_item1[1:0]、o_item2[1:0]、o_item3[1:0]为当前LRU模块内部各状态存储器的状态。此外,四组所述状态寄存器按照淘汰优选级从高到低的顺序依次为LRU_REG0、LRU_REG1、LRU_REG2和LREU_REG3;其中,所述LRU_REG0中记录的是当前地址下四路条目中淘汰优先级最高一路的路号,以此类推,所述LRU_REG3中记录的是当前地址下四路条目中淘汰优先级最低一路的路号。
如图3所示,本发明实施例提供的基于四组所述状态寄存器的替换算法包括:Cache未命中时,将替换条目的路号装到优先级最低路号状态寄存器ITME3条目中,原本记录在ITEM3条目中的路号装填到ITEM2条目中,原本记录在ITEM2条目中的路号装填到ITEM1条目中,并将记录在ITEM0中的条目淘汰;Cache命中时,将命中的条目路号装到ITEM3条目中,并按照路号状态寄存器中数据块的淘汰优先级重新装填剩余条目。图3中:NEW表示未满状态下选择装填的路号;ITME指相同地址匹配4路状态寄存器条目,其中ITEM0中记录的是最老的路号且淘汰优先级最高,ITEM3中记录的是最新的路号且淘汰优先级最低;EVICT指需要进行淘汰路号。
作为本发明的一种实施例,本发明实施例提供的替换算法,除了考虑Cache的命中状态还需考虑与Cache中地址相同的一组Cache存储块的状态,所述状态寄存器每一路地址相同的数据块组合成一组Cache存储块;其中,Cache存储块的状态包括:若一组地址相同的Cache存储块中都存在有效数据,则该组Cache存储块为“满”状态;若不存在有效数据,则该组Cache存储块为“空”状态;最初一组Cache存储块中不存在有效数据,该组Cache存储块为“初始”状态;其余状态的Cache存储块为“未满”状态。其中,如图5虚线椭圆圈出部分所示,其表示地址为0x10的一组Cache数据块。
如图4和图5所示,本发明实施例提供的替换算法对四组状态寄存器中记录的内容进行替换更新的过程包括以下四种情况:
情况一:Cache存储块为“初始”状态且Cache未命中时,
初始状态下Cache中没有有效数据,此时状态寄存器LRU_EEG0、LRU_REG1、LRU_REG2和LRU_REG3中的数据均为00;
当前状态对地址为0x02的数据块发起访存且未命中,根据算法将LRU_REG3中地址为0x02的ITEM3条目中装入2’b11,表示地址为0x02的Cache中的第4路数据块被本次访存“使用”,ITEM3中记录相同地址中最近调用的路号,即第4路;原本装填在ITEM3条目中的数据被顺移装到ITEM2条目中,原本装填在ITEM2条目中的数据被顺移装到ITEM1条目中,原本装填在ITEM1条目中的数据被顺移装到ITEM0条目中;由于本组Cache不是“满”状态,所以不存在淘汰路。
情况二:Cache存储块为“未满”状态且Cache命中时(本发明实施例命中的是第4路),
本发明实施例提供的情况二中“未满”状态表现为:在地址为0x02的那一组数据中,第4路、第3路、第2路存在有效数据,并且最近使用数据被存在第2路中,此时状态寄存器LRU_EEG0、LRU_REG1、LRU_REG2和LRU_REG3中的数据分别为00、11、10和01;
当前状态对地址为0x02的数据块发起访存且命中LRU_REG3,将LRU_REG3地址为0x02的ITEM3条目中装入2’b11,表示地址为0x02的Cache中的第四路数据块被本次访存“使用”,ITEM3中记录相同地址中最近调用的路号,即第4路;原本装填在ITEM3条目中的数据被顺移装到ITEM2条目中,原本装填在ITEM2条目中的数据被顺移装到ITEM1条目中,由于原本装填在ITEM1条目中的是第4路,而当前第四路数据块再次被“使用”被记录到最近使用条目ITEM3中,所以此时ITEM0中保存的信息不会被原来装在ITEM1中的信息覆盖,因此原本装填在ITEM0条目中的数据保持不变;由于本组Cache没有不是“满”状态,所以不存在淘汰路。
情况三:Cache存储块为“满”状态且Cache未命中时,
本发明实施例提供的情况三中“满”状态表现为,在地址为0x02的那一组数据中,第4路、第3路、第2路、第1路都存在有效数据,并且最近使用数据被存在第1路中,此时状态寄存器LRU_EEG0、LRU_REG1、LRU_REG2和LRU_REG3中的数据分别为10、01、11和00;
当前状态对地址为0x02的数据块发起访存且未命中,根据算法将选择最老使用的那一路数据作为淘汰数据块并把新数据装进那一路使之成为最新使用的路;因此最终表现为,最老状态寄存器LRU_REG0中ITEM0记录的为2’b10,即第3路为最老使用路;所以选择将Cache地址为0x02第3路的数据淘汰,并将新数据装入,并在状态寄存器LRU_REG3中地址为0x02的ITEM3中装入2’b10,表示第3路因为本次替换成为最近使用路;原本装填在ITEM3条目中的数据被顺移装到ITEM2条目中,原本装填在ITEM2条目中的数据被顺移装到ITEM1条目中。
情况四:所述Cache存储块为“满”状态且Cache命中时:
本发明实施例提供的情况四中“满”状态表现为,在地址为0x02的那一组数据中,第4路、第3路、第2路、第1路存在有效数据,并且最近使用数据被存在第1路中,此时状态寄存器LRU_EEG0、LRU_REG1、LRU_REG2和LRU_REG3中的数据分别为10、01、11和00;
当前状态对地址为0x02的数据块发起访存且命中第4路,根据算法将LRU_REG3中地址为0x02的ITEM3条目装入2‘b11,表示地址为0x02的Cache中的第4路数据块被本次访存“使用”,ITEM3中记录相同地址中最近调用的路号,即第4路;原本装填在ITEM3条目中的数据被顺移装到ITEM2条目中,由于原本装填在ITEM2的是第4路,而当前第4路数据块再次被“使用”被记录到最近使用ITEM3条目中,所以此时ITEM1条目中保存的信息不会被原来装在ITEM2中的信息覆盖,因此原本装填在ITEM1条目中的数据保持不变,同理ITEM0条目中的数据也保持不变;由于本组Cache没有不是“满”状态,所以不存在淘汰路。
本发明实施例提供的基于组相联高速缓存Cache的LRU替换算法,具体实现过程较为简单,能够在增加较少的硬件开销的情况下实现按照数据块使用频率筛选淘汰功能,大幅度提高了Cache的命中率,从而减少因为处理器处理访存指令而导致的堵塞情况,进一步提高了替换效率。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
Claims (9)
1.一种基于组相联高速缓存Cache的LRU替换算法,其特征在于,包括以下步骤:
根据所述组相联高速缓存中Cache的组数和地址位数设置相应组数的状态寄存器,所述状态寄存器用于记录相同地址查找的相应条目的数据块淘汰优先级顺序;
根据Cache的命中状态,利用近期最少使用原则LRU按照淘汰优先级从高到低的顺序依次对所述状态寄存器中记录的内容进行替换更新。
2.根据权利要求1所述的基于组相联高速缓存Cache的LRU替换算法,其特征在于,根据Cache的命中状态,利用近期最少使用原则LRU按照淘汰优先级从高到低的顺序依次对所述状态寄存器中记录的内容进行替换更新的方法包括:
Cache未命中时,将替换条目的路号装填到淘汰优先级最低路号的状态寄存器条目中,原本记录在淘汰优先级最低的路号装填到比其优先级高一级的状态寄存器条目中,以此类推,按照淘汰优选级从低到高的顺序逐级替换各状态寄存器的条目,并将记录在淘汰优先级最高的状态寄存器的条目淘汰;
Cache命中时,将命中的条目路号装到淘汰优先级最低路号的状态寄存器条目中,并按照路号状态寄存器中路号淘汰优先级重新装填剩余状态寄存器的条目。
3.根据权利要求1所述的基于组相联高速缓存Cache的LRU替换算法,其特征在于,所述组相联高速缓存中Cache共有四组,相应的所述状态寄存器设置为四组;四组所述状态寄存器按照淘汰优选级从高到低的顺序依次为LRU_REG0、LRU_REG1、LRU_REG2和LREU_REG3;其中,所述LRU_REG0中记录的是当前地址下四路条目中淘汰优先级最高一路的路号,以此类推,所述LRU_REG3中记录的是当前地址下四路条目中淘汰优先级最低一路的路号。
4.根据权利要求3所述的基于组相联高速缓存Cache的LRU替换算法,其特征在于,基于四组所述状态寄存器的替换算法包括:Cache未命中时,将替换条目的路号装到优先级最低路号状态寄存器ITME3条目中,原本记录在ITEM3条目中的路号装填到ITEM2条目中,原本记录在ITEM2条目中的路号装填到ITEM1条目中,并将记录在ITEM0中的条目淘汰;Cache命中时,将命中的条目路号装到ITEM3条目中,并按照路号状态寄存器中数据块的淘汰优先级重新装填剩余条目。
5.根据权利要求1至4任一所述的基于组相联高速缓存Cache的LRU替换算法,其特征在于,所述算法进行替换前,除了考虑Cache的命中状态还需考虑与Cache中地址相同的一组Cache存储块的状态,所述状态寄存器每一路地址相同的数据块组合成一组Cache存储块;
所述Cache存储块的状态包括:若一组地址相同的Cache存储块中都存在有效数据,则该组Cache存储块为“满”状态;若不存在有效数据,则该组Cache存储块为“空”状态;最初一组Cache存储块中不存在有效数据,该组Cache存储块为“初始”状态;其余状态的Cache存储块为“未满”状态。
6.根据权利要求5所述的基于组相联高速缓存Cache的LRU替换算法,其特征在于,所述Cache存储块为“初始”状态且Cache未命中时,对四组所述状态寄存器中记录的内容进行替换更新的方法包括:
当前状态对地址为0x02的Cache数据块发起访存且未命中,将LRU_REG3地址为0x02的ITEM3条目中装入2’b11;原本装填在ITEM3条目中的数据被顺移装到ITEM2条目中,原本装填在ITEM2条目中的数据被顺移装到ITEM1条目中,原本装填在ITEM1条目中的数据被顺移装到ITEM0条目中。
7.根据权利要求5所述的基于组相联高速缓存Cache的LRU替换算法,其特征在于,所述Cache存储块为“未满”状态且Cache命中时,对四组所述状态寄存器中记录的内容进行替换更新的方法包括:
当前状态对地址为0x02的数据块发起访存且命中LRU_REG3,将LRU_REG3地址为0x02的ITEM3条目中装入2’b11,原本装填在ITEM3条目中的数据被顺移装到ITEM2条目中,原本装填在ITEM2条目中的数据被顺移装到ITEM1条目中,原本装填在ITEM0条目中的数据保持不变。
8.根据权利要求5所述的基于组相联高速缓存Cache的LRU替换算法,其特征在于,所述Cache存储块为“满”状态且Cache未命中时,对四组所述状态寄存器中记录的内容进行替换更新的方法包括:
当前状态对地址为0x02的数据块发起访存且未命中,将原本装填在ITEM0条目中的数据淘汰,并将在LRU_REG3中地址为0x02的ITEM3条目中装入2’b10;原本装填在ITEM3条目中的数据被顺移装到ITEM2条目中,原本装填在ITEM2条目中的数据被顺移装到ITEM1条目中。
9.根据权利要求5所述的基于组相联高速缓存Cache的LRU替换算法,其特征在于,所述Cache存储块为“满”状态且Cache命中时,对四组所述状态寄存器中记录的内容进行替换更新的方法包括:
当前状态对地址为0x02的数据块发起访存且命中,将LRU_REG3中地址为0x02的ITEM3条目中装入2’b11,原本装填在ITEM3条目中的数据被顺移装到ITEM2条目中,原本装填在ITEM1和ITEM0条目中的数据保持不变。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211258433.8A CN115617712A (zh) | 2022-10-14 | 2022-10-14 | 一种基于组相联高速缓存Cache的LRU替换算法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211258433.8A CN115617712A (zh) | 2022-10-14 | 2022-10-14 | 一种基于组相联高速缓存Cache的LRU替换算法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115617712A true CN115617712A (zh) | 2023-01-17 |
Family
ID=84862787
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211258433.8A Pending CN115617712A (zh) | 2022-10-14 | 2022-10-14 | 一种基于组相联高速缓存Cache的LRU替换算法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115617712A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116107926A (zh) * | 2023-02-03 | 2023-05-12 | 摩尔线程智能科技(北京)有限责任公司 | 缓存替换策略的管理方法、装置、设备、介质和程序产品 |
CN116644008A (zh) * | 2023-06-16 | 2023-08-25 | 合芯科技有限公司 | 一种缓存替换控制方法及装置 |
CN117389914A (zh) * | 2023-12-12 | 2024-01-12 | 北京象帝先计算技术有限公司 | 缓存系统、缓存写回方法、片上系统及电子设备 |
-
2022
- 2022-10-14 CN CN202211258433.8A patent/CN115617712A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116107926A (zh) * | 2023-02-03 | 2023-05-12 | 摩尔线程智能科技(北京)有限责任公司 | 缓存替换策略的管理方法、装置、设备、介质和程序产品 |
CN116107926B (zh) * | 2023-02-03 | 2024-01-23 | 摩尔线程智能科技(北京)有限责任公司 | 缓存替换策略的管理方法、装置、设备、介质和程序产品 |
CN116644008A (zh) * | 2023-06-16 | 2023-08-25 | 合芯科技有限公司 | 一种缓存替换控制方法及装置 |
CN116644008B (zh) * | 2023-06-16 | 2023-12-15 | 合芯科技有限公司 | 一种缓存替换控制方法及装置 |
CN117389914A (zh) * | 2023-12-12 | 2024-01-12 | 北京象帝先计算技术有限公司 | 缓存系统、缓存写回方法、片上系统及电子设备 |
CN117389914B (zh) * | 2023-12-12 | 2024-04-16 | 北京象帝先计算技术有限公司 | 缓存系统、缓存写回方法、片上系统及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7284096B2 (en) | Systems and methods for data caching | |
CN115617712A (zh) | 一种基于组相联高速缓存Cache的LRU替换算法 | |
US7958334B2 (en) | Method and apparatus for an efficient multi-path trace cache design | |
US8176258B2 (en) | System and method for cache management | |
JP3795985B2 (ja) | コンピュータメモリシステムの競合キャッシュ | |
US5465342A (en) | Dynamically adaptive set associativity for cache memories | |
US6990557B2 (en) | Method and apparatus for multithreaded cache with cache eviction based on thread identifier | |
US8583874B2 (en) | Method and apparatus for caching prefetched data | |
US20090031084A1 (en) | Cache line replacement techniques allowing choice of lfu or mfu cache line replacement | |
CN1361887A (zh) | 具有保护的最近最少使用置换方法 | |
US7237067B2 (en) | Managing a multi-way associative cache | |
CN109918131B (zh) | 一种基于非阻塞指令cache的指令读取方法 | |
JPS638848A (ja) | データ取り出し方法 | |
JP2012203560A (ja) | キャッシュメモリおよびキャッシュシステム | |
US5953747A (en) | Apparatus and method for serialized set prediction | |
US20060265551A1 (en) | Handling of cache accesses in a data processing apparatus | |
US20160217079A1 (en) | High-Performance Instruction Cache System and Method | |
CN103885890B (zh) | 高速缓冲存储器cache中cache块的替换处理方法和装置 | |
US6412050B1 (en) | Memory record update filtering | |
JPH08255079A (ja) | コンピュータ・プロセッサ用のレジスタ・キャッシュ | |
CN109669881B (zh) | 一种基于Cache空间预约算法的计算方法 | |
US5966737A (en) | Apparatus and method for serialized set prediction | |
JP2013041414A (ja) | 記憶制御システムおよび方法、置換方式および方法 | |
US8756362B1 (en) | Methods and systems for determining a cache address | |
US20120102271A1 (en) | Cache memory system and cache memory control method |
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 |