缓存LRU算法实现方法、缓存控制器及缓存系统与流程
未命名
08-17
阅读:99
评论:0
缓存lru算法实现方法、缓存控制器及缓存系统
技术领域
1.本发明涉及缓存技术领域,具体涉及缓存lru算法实现方法、缓存控制器及缓存系统。
背景技术:
2.现有的嵌入式系统中,为了提升系统性能,通常需要在处理器和非易失存储器nvm(non-volatile memory)之间设置缓存;而为了解决缓存颠簸问题,提升缓存工作效率,通常在缓存中采用多路组相连结构实现,且在多路组相连结构的缓存中,一般使用最近最少使用lru(least recently used)算法来进行缓存页面更新管理,该算法较为复杂,但因为能够较好的解决缓存颠簸问题,因此被广泛应用。
3.现有技术对缓存lru算法的实现,如图1、图2所示,一般采用计数器索引的方式,即在多路组相连的缓存结构中,针对缓存中每一行的每一组缓存进行访问计数,使用计数值来表示该行缓存的某个组数据的新旧程度,一般来说,某一行中越久没有被访问的组对应的计数值越大,反之越小。
4.具体地,如图1所示,当系统总线102正在访问的内容如果在缓存中存在,则在当前行对应的各组计数器中,其中每一组依次对应一组缓存单元,因此必有一组寄存器索引与当前缓存内容所在的组索引一致,在更新时,将其它比该组计数值小的计数器加一,而比该组计数值大的计数器保持不变,同时将该组计数器清零,即表示为最新被访问的组。
5.如图2所示,当系统总线102正在访问的内容没有存在于缓存中时,需要将当前地址所在行的数据内容从存储器中读取出来,并存储到该行计数器中最大计数值所在的寄存器所对应组,即最久被访问的组的缓存单元中,而同时将最大计数值所在的寄存器清零,而其他计数器进行加一操作。
6.但是现有的方法在每次进行计数器值更新时,每一个计数寄存器都需要与匹配组的计数器的值做比较,以决定是否进行加一操作,这样的方式操作复杂,效率较低;另外该方法不能直接输出寄存器的值作为最久被访问的缓存组的索引,只能将最大计数值所在的计数器做译码后输出对应组的索引。
技术实现要素:
7.有鉴于此,本发明的目的在于提供缓存lru算法实现方法、缓存控制器及缓存系统,以克服缓存lru索引更新效率低及不能直接输出寄存器的值作为缓存组的索引的问题。
8.为实现以上目的,本发明采用如下技术方案:
9.第一方面,本技术提供了一种缓存lru算法实现方法,包括:
10.为多路组相连结构缓存中每一个缓存组设置对应的索引寄存器;
11.所述索引寄存器中保存有用于表示对应缓存组的索引值;
12.每一个所述索引寄存器均具有编号,且互不相同;
13.所述编号用于表示所述索引寄存器对应的缓存数据的新旧程度;
14.接收到数据操作指令时,根据所述索引寄存器的编号,更新所述索引寄存器中保存的索引值。
15.进一步的,以上所述的缓存lru算法实现方法,所述数据操作指令是总线读取指令,且确定所述总线读取指令中的目标数据存在于缓存中时,则所述根据寄存器编号,更新所述索引寄存器中保存的索引值,包括:
16.将所述总线读取指令中的目标数据对应的缓存索引值赋值到编号最新的索引寄存器中;
17.编号最旧的索引寄存器中的索引值不变;
18.其它索引寄存器中的索引值按照编号从新到旧的顺序,依次赋值到更旧一级的索引寄存器中。
19.进一步的,以上所述的缓存lru算法实现方法,所述数据操作指令是总线读取指令,且确定所述总线读取指令中的目标数据未存在于缓存中时,则所述根据寄存器编号,更新所述索引寄存器中保存的索引值包括:
20.等待从非易失存储器中取回所述目标数据到缓存之后,对所述目标数据对应的每一个索引寄存器的索引值按照编号从新到旧的顺序,依次赋值到更旧一级的索引寄存器中;
21.其中最旧的索引寄存器中索引值赋值到最新的寄存器中。
22.进一步的,以上所述的缓存lru算法实现方法,确定所述总线读取指令中的目标数据存在于缓存中,包括:将所述总线读取指令中的目标数据的地址标签与缓存中的索引标签进行匹配,若匹配成功,则确定所述总线读取指令中的目标数据存在于缓存中。
23.第二方面,本技术提供了一种缓存控制器,包括:指令解析模块、数据存储模块和lru索引模块;
24.所述指令解析模块,用于解析接收到的数据操作指令;
25.所述数据存储模块,用于存储缓存的数据;
26.所述lru索引模块,用于保存对应所述数据存储模块中每一个数据组的索引寄存器;所述索引寄存器中保存有用于表示对应数据组的索引值;每一个所述索引寄存器均具有编号,且互不相同;所述编号用于表示所述索引寄存器对应的缓存数据的新旧程度;在所述指令解析模块接收到数据操作指令时,根据所述索引寄存器的编号,更新所述索引寄存器中保存的索引值。
27.进一步的,以上所述的缓存控制器,所述lru索引模块包括:
28.索引寄存器,用于保存对应所述数据存储模块中每一个数据组的索引值;
29.索引更新单元,用于在所述指令解析模块接收到总线读取指令,且确定所述总线读取指令中的目标数据存在于所述数据模块中时,将所述总线读取指令中的目标数据对应的缓存索引值赋值到编号最新的索引寄存器中;编号最旧的索引寄存器中的索引值不变;其它索引寄存器中的索引值按照编号从新到旧的顺序,依次赋值到更旧一级的索引寄存器中。
30.进一步的,以上所述的缓存控制器,所述lru索引模块包括:
31.索引寄存器,用于保存对应所述数据存储模块中每一个数据组的索引值;
32.索引更新单元,用于在所述指令解析模块接收到总线读取指令,且确定所述总线
读取指令中的目标数据未存在于所述数据模块中时,等待从非易失存储器中取回所述目标数据到缓存之后,对所述目标数据对应的每一个索引寄存器的索引值按照编号从新到旧的顺序,依次赋值到更旧一级的索引寄存器中;其中最旧的索引寄存器中索引值赋值到最新的寄存器中。
33.进一步的,以上所述的缓存控制器,所述指令解析模块包括:标签与数据访问控制单元、标签存储单元、标签匹配单元和数据输入输出单元;
34.所述标签与数据访问控制单元,用于根据接收到的所述数据操作指令,对所述标签存储单元和所述数据存储单元进行读写操作;
35.所述标签存储单元,用于存储缓存数据的地址标签;
36.所述标签匹配单元,用于根据所述数据操作指令分离出的地址标签信号与从标签存储单元读出的各个组的标签信号做匹配操作,输出组匹配信号给所述lru索引模块,同时也输出该信号给所述数据输入输出单元;
37.数据输入输出单元,用于通过所述标签匹配单元的组匹配信号选择所述数据存储模块中的目标数据,并根据所述数据操作指令对所述目标数据进行操作。
38.第三方面,本技术提供了一种缓存系统,包括处理器、缓存控制器、nvm控制器和nvm,
39.所述处理器,用于负责指令读取与执行;
40.所述缓存控制器,用于缓存曾经访问过的数据或指令;
41.所述nvm控制器,用于根据内部总线104所提供的信号生成nvm所需求的符合特定时序需求的读写信号、地址信号和写入数据信号;
42.所述nvm,用于存储指令或者数据信息。
43.本发明的有益效果为:本发明缓存lru算法实现方法、缓存控制器及缓存系统,其中缓存lru算法实现方法,首先对多路组相连结构缓存中每一个缓存组设置对应的索引寄存器,索引寄存器中保存有用于表示对应缓存组的索引值,能够直接输出寄存器中的值作为缓存组的索引;然后,每个人索引寄存器都具有编号,且互不相同,同来表示索引寄存器对应的缓存数据的新旧程度,对缓存更新时,直接根据索引寄存器的编号,更新索引寄存器中保存的索引值,提升了缓存更新效率。
附图说明
44.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
45.图1是现有技术中对缓存lru算法实现方法的一种实施例提供的流程图;
46.图2是现有技术中对缓存lru算法实现方法的一种实施例提供的流程图;
47.图3是本发明缓存lru算法实现方法一种实施例提供的流程图;
48.图4是本发明缓存lru算法实现方法对寄存器索引更新的一种实施例提供的流程图;
49.图5是本发明缓存lru算法实现方法对寄存器索引更新的一种实施例提供的流程
图;
50.图6是本发明缓存控制器一种实施例提供的结构示意图;
51.图7是本发明缓存系统一种实施例提供的结构示意图。
具体实施方式
52.为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方案进行详细的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本发明所保护的范围。
53.目前,现有的方法一般采用计数器索引的方式,使用计数值来表示该行缓存的某个组数据的新旧程度,在每次进行计数器值更新时,每一个计数寄存器都需要与匹配组的计数器的值做比较,以决定是否进行加一操作,这样的方式操作复杂,效率较低;另外该方法不能直接输出寄存器的值作为最久被访问的缓存组的索引,只能将最大计数值所在的计数器做译码后输出对应组的索引。
54.为了解决上述问题,本发明的目的在于提供缓存lru算法实现方法、缓存控制器及缓存系统,以克服缓存lru索引更新效率低及不能直接输出寄存器的值作为缓存组的索引的问题。
55.参照图1,图3是本发明缓存lru算法实现方法一种实施例提供的流程图,本实施例可以包括以下步骤:
56.s11、为多路组相连结构缓存中每一个缓存组设置对应的索引寄存器。
57.首先,获取多路组相连结构缓存中每一个缓存组的信息,然后根据获取到的信息,为每个缓存组设置对应的索引寄存器。
58.s12、索引寄存器中保存有用于表示对应缓存组的索引值。
59.s13、每一个索引寄存器均具有编号,且互不相同。
60.在一些可选的实施例中,每一个索引表项由四个寄存器组成,用r3、r2、r1和r0来个四个寄存器进行编号,且每个寄存器的编号都不同。
61.s14、编号用于表示索引寄存器对应的缓存数据的新旧程度。
62.在一些可选的实施例中,r0~r3依次存储的是由新到旧的组索引,r0中存储的为最新被访问的组的索引,r3中存储的为最久没有被访问的组的索引。
63.s15、接收到数据操作指令时,根据索引寄存器的编号,更新索引寄存器中保存的索引值。
64.根据图4所示,当接收到的数据操作指令为总线读取指令,将总线读取指令中的目标数据的地址标签与缓存中的索引标签进行匹配,匹配成功,确定总线读取指令中的目标数据存在于缓存中时,将总线读取指令中的目标数据对应的缓存索引值赋值到编号最新的索引寄存器中,编号最旧的索引寄存器中的索引值不变,其它索引寄存器中的索引值按照编号从新到旧的顺序,依次赋值到更旧一级的索引寄存器中;具体的,假设目标数据存在于缓存中,而match_index与r2所存储的index3匹配,表示当前系统地址所访问的内容存在于第四组中(索引值为3),而对应的匹配信号会置位,从而使得r0~r3发生变化,发生匹配的r2存储的内容(即index3)被赋值给r0,而r0之前存储的内容(即index1)被赋值给r1,而r1
把之前存储的内容(即index0)赋值给r2,而r3的内容(即index2)保持不变化。
65.根据图5所示,当接收到的数据操作指令为总线读取指令,将总线读取指令中的目标数据的地址标签与缓存中的索引标签进行匹配,匹配不成功,确定总线读取指令中的目标数据未存在于缓存中时,从非易失存储器中取回目标数据,并存储到缓存中最旧的索引寄存器中索引值对应的缓存组之后,对目标数据对应的每一个索引寄存器的索引值按照编号从新到旧的顺序,依次赋值到更旧一级的索引寄存器中,其中最旧的索引寄存器中索引值赋值到最新的寄存器中;具体的,如果目标数据不在于缓存中,则需要从非易失存储器中回取该行数据到最旧的缓存组单元中,即r3所存储的索引为2的组中(即第3组),在所有该行的数据被回取结束后,将对该行对应的lru索引项进行更新,r0~r3的值做了一次循环移动,即r3被赋值给了r0,r0的原值被传给了r1,而r1的原值被赋给了r2,r2的原值被赋给了r3,这样,索引值为3的组代替了索引值为2的组成为了最久没有被访问的组。
66.首先对多路组相连结构缓存中每一个缓存组设置对应的索引寄存器,索引寄存器中保存有用于表示对应缓存组的索引值,能够直接输出寄存器中的值作为缓存组的索引;然后,每个人索引寄存器都具有编号,且互不相同,同来表示索引寄存器对应的缓存数据的新旧程度,对缓存更新时,直接根据索引寄存器的编号,更新索引寄存器中保存的索引值,提升了缓存更新效率。
67.基于一个总的发明构思,参照图6,本技术还提出了一种缓存控制器,具有指令解析模块1、数据存储模块2和lru索引模块3;
68.指令解析模块1,用于解析接收到的数据操作指令;
69.数据存储模块2,用于存储缓存的数据;
70.lru索引模块3,用于保存对应数据存储模块2中每一个数据组的索引寄存器;索引寄存器中保存有用于表示对应数据组的索引值;每一个索引寄存器均具有编号,且互不相同;编号用于表示索引寄存器对应的缓存数据的新旧程度;在指令解析模块1接收到数据操作指令时,根据索引寄存器的编号,更新索引寄存器中保存的索引值。
71.进一步的,lru索引模块3包括,索引寄存器和索引更新单元;
72.索引寄存器,用于保存对应所述数据存储模块2中每一个数据组的索引值;
73.索引更新单元,用于在指令解析模块1接收到总线读取指令,且确定总线读取指令中的目标数据存在于数据模块中时,将总线读取指令中的目标数据对应的缓存索引值赋值到编号最新的索引寄存器中;编号最旧的索引寄存器中的索引值不变;其它索引寄存器中的索引值按照编号从新到旧的顺序,依次赋值到更旧一级的索引寄存器中。
74.进一步的,lru索引模块3包括,索引寄存器和索引更新单元;
75.索引寄存器,用于保存对应数据存储模块2中每一个数据组的索引值;
76.索引更新单元,用于在指令解析模块1接收到总线读取指令,且确定总线读取指令中的目标数据未存在于数据模块中时,等待从非易失存储器中取回目标数据到缓存之后,对目标数据对应的每一个索引寄存器的索引值按照编号从新到旧的顺序,依次赋值到更旧一级的索引寄存器中;其中最旧的索引寄存器中索引值赋值到最新的寄存器中。
77.进一步的,指令解析模块1包括:标签与数据访问控制单元11、标签存储单元12、标签匹配单元13和数据输入输出单元14;
78.标签与数据访问控制单元11,用于根据接收到的数据操作指令,对标签存储单元
12和数据存储单元进行读写操作;
79.标签存储单元12,用于存储缓存数据的地址标签;
80.标签匹配单元13,用于根据数据操作指令分离出的地址标签信号与从标签存储单元12读出的各个组的标签信号做匹配操作,输出组匹配信号给lru索引模块3,同时也输出该信号给数据输入输出单元14;
81.数据输入输出单元14,用于通过标签匹配单元13的组匹配信号选择数据存储模块2中的目标数据,并根据数据操作指令对目标数据进行操作。
82.基于一个总的发明构思,参照图7,本技术还提出了一种缓存系统,包括处理器101、缓存控制器103、nvm控制器105和nvm107;
83.处理器101通过系统总线102与缓存控制器103进行连接,缓存控制器103通过内部总线104与nvm控制器105进行连接,nvm控制器105与nvm107通过导线106连接。
84.处理器101,作为处理器单元,负责指令读取与执行;
85.缓存控制器103,用来缓存曾经访问过的数据或指令,当系统总线102发起对nvm107访问操作时,如果缓存控制器103内部的缓存中已经存在需要访问的数据或者指令,则直接从缓存读取或者对缓存写入,大大减少了对nvm107存储器的访问次数,提高了系统性能;
86.nvm控制器105,根据内部总线104所提供的信号生成nvm107所需求的符合特定时序需求的读写信号、地址信号和写入数据信号;
87.nvm107,用来存储指令或者数据信息。
88.当进行读取操作时,处理器101向缓存控制器103发送读取信号;
89.缓存控制器103根据系统总线102的信号发起对标签存储单元和数据存储单元的读取操作;
90.标签匹配单元将从标签存储器读出的标签进行匹配操作,以判断当前地址内容是否存在于缓存中。如果匹配成功,会依据匹配成功的标签项对应的组,读出当前地址对应的数据内容到系统总线102上;如果匹配不成功,会发起对nvm107的读取操作;
91.nvm控制器105会根据缓存控制器103发送的读取请求信号,对当前地址所在的行内容进行读取;
92.nvm控制器105将nvm107读出的数据返回给缓存控制器103,并向缓存控制器103返回数据握手信号,而缓存控制器103会将当前返回的数据写入到lru索引单元所指示的最旧的表项中;
93.通过判断对当前地址的行内容的读取操作是否结束,如果该行的所有数据都完成读取,则会将对应标签项的有效位置位,并更新lru索引单元,同时返回到开始状态,如果未完成,则继续读取操作。
94.当进行写操作时,处理器101向缓存控制器103发送写操作信号;
95.系统总线102将地址信号和控制信号传送给缓存单元;
96.缓存单元会根据系统总线102提供的地址信号和控制信号,从标签存储单元中读出对应的标签表项,同时从数据存储单元中读出对应的数据表项;
97.标签匹配单元会对读出的地址标签表项与当前地址对应的标签进行比对,如果一致则生成匹配组的索引,将系统总线102上的写数据与之前从数据存储单元读出的数据表
项进行合并之后再写回到匹配组的相应数据表项中。
98.如果读出的地址标签项与当前地址标签不匹配,查看当前行数据的脏位标志是否被置位,如果该位被置位,则说明当前行数据没有被回写到nvm107中,将当前的脏行数据回写到nvm107中,待返回后nvm控制器105会依据缓存控制器103发送的地址信号和控制信号,对当前行数据进行依次读取;如果当前脏位标示无效,则nvm控制器105会依据缓存控制器103发送的地址信号和控制信号,对当前行数据进行依次读取;
99.每当nvm控制器105返回一个属于当前行地址的内存数据后,需要和当前系统总线102上的写数据进行合并之后写入到lru索引单元所指示的最旧的数据表项中;
100.缓存控制器103会检查当前行的所有数据是否已经回写完成,如果未完成,继续下一个内存数据的读取,如果完成,则将系统数据的地址标签写入到当前行所在的标签项中,同时置位数据有效位,并置位脏位,表示之前合并存储到缓存中的数据没有被回写,同时还需要更新lru索引单元,之后返回到开始状态。
101.本实施例涉及的数据流程是非常成熟的现有技术,本领域的技术人员可以在不耗费创造性的前提下得到,此处不做赘述。
102.可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。
103.需要说明的是,在本发明的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是指至少两个。
104.流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
105.应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
106.本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
107.此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
108.上述提到的存储介质可以是只读存储器,磁盘或光盘等。
109.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
110.尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
技术特征:
1.一种缓存lru算法实现方法,其特征在于,包括:为多路组相连结构缓存中每一个缓存组设置对应的索引寄存器;所述索引寄存器中保存有用于表示对应缓存组的索引值;每一个所述索引寄存器均具有编号,且互不相同;所述编号用于表示所述索引寄存器对应的缓存数据的新旧程度;接收到数据操作指令时,根据所述索引寄存器的编号,更新所述索引寄存器中保存的索引值。2.根据权利要求1所述的缓存lru算法实现方法,其特征在于,所述数据操作指令是总线读取指令,且确定所述总线读取指令中的目标数据存在于缓存中时,则所述根据寄存器编号,更新所述索引寄存器中保存的索引值,包括:将所述总线读取指令中的目标数据对应的缓存索引值赋值到编号最新的索引寄存器中;编号最旧的索引寄存器中的索引值不变;其它索引寄存器中的索引值按照编号从新到旧的顺序,依次赋值到更旧一级的索引寄存器中。3.根据权利要求1或2中任一项所述的缓存lru算法实现方法,其特征在于,所述数据操作指令是总线读取指令,且确定所述总线读取指令中的目标数据未存在于缓存中时,则所述根据寄存器编号,更新所述索引寄存器中保存的索引值包括:等待从非易失存储器中取回所述目标数据到缓存之后,对所述目标数据对应的每一个索引寄存器的索引值按照编号从新到旧的顺序,依次赋值到更旧一级的索引寄存器中;其中最旧的索引寄存器中索引值赋值到最新的寄存器中。4.根据权利要求2所述的缓存lru算法实现方法,其特征在于,确定所述总线读取指令中的目标数据存在于缓存中,包括:将所述总线读取指令中的目标数据的地址标签与缓存中的索引标签进行匹配,若匹配成功,则确定所述总线读取指令中的目标数据存在于缓存中。5.一种缓存控制器,其特征在于,包括:指令解析模块、数据存储模块和lru索引模块;所述指令解析模块,用于解析接收到的数据操作指令;所述数据存储模块,用于存储缓存的数据;所述lru索引模块,用于保存对应所述数据存储模块中每一个数据组的索引寄存器;所述索引寄存器中保存有用于表示对应数据组的索引值;每一个所述索引寄存器均具有编号,且互不相同;所述编号用于表示所述索引寄存器对应的缓存数据的新旧程度;在所述指令解析模块接收到数据操作指令时,根据所述索引寄存器的编号,更新所述索引寄存器中保存的索引值。6.根据权利要求5所述的缓存控制器,其特征在于,所述lru索引模块包括:索引寄存器,用于保存对应所述数据存储模块中每一个数据组的索引值;索引更新单元,用于在所述指令解析模块接收到总线读取指令,且确定所述总线读取指令中的目标数据存在于所述数据模块中时,将所述总线读取指令中的目标数据对应的缓存索引值赋值到编号最新的索引寄存器中;编号最旧的索引寄存器中的索引值不变;其它索引寄存器中的索引值按照编号从新到旧的顺序,依次赋值到更旧一级的索引寄存器中。
7.根据权利要求5所述的缓存控制器,其特征在于,所述lru索引模块包括:索引寄存器,用于保存对应所述数据存储模块中每一个数据组的索引值;索引更新单元,用于在所述指令解析模块接收到总线读取指令,且确定所述总线读取指令中的目标数据未存在于所述数据模块中时,等待从非易失存储器中取回所述目标数据到缓存之后,对所述目标数据对应的每一个索引寄存器的索引值按照编号从新到旧的顺序,依次赋值到更旧一级的索引寄存器中;其中最旧的索引寄存器中索引值赋值到最新的寄存器中。8.根据权利要求5所述的缓存控制器,其特征在于,所述指令解析模块包括:标签与数据访问控制单元、标签存储单元、标签匹配单元和数据输入输出单元;所述标签与数据访问控制单元,用于根据接收到的所述数据操作指令,对所述标签存储单元和所述数据存储单元进行读写操作;所述标签存储单元,用于存储缓存数据的地址标签;所述标签匹配单元,用于根据所述数据操作指令分离出的地址标签信号与从标签存储单元读出的各个组的标签信号做匹配操作,输出组匹配信号给所述lru索引模块,同时也输出该信号给所述数据输入输出单元;数据输入输出单元,用于通过所述标签匹配单元的组匹配信号选择所述数据存储模块中的目标数据,并根据所述数据操作指令对所述目标数据进行操作。9.一种缓存系统,其特征在于,包括处理器、缓存控制器、nvm控制器和nvm;所述处理器,用于负责指令读取与执行;所述缓存控制器,用于缓存曾经访问过的数据或指令;所述nvm控制器,用于根据内部总线104所提供的信号生成nvm所需求的符合特定时序需求的读写信号、地址信号和写入数据信号;所述nvm,用于存储指令或者数据信息。
技术总结
本发明涉及缓存技术领域,具体涉及缓存LRU算法实现方法、缓存控制器及缓存系统,其中缓存LRU算法实现方法,首先对多路组相连结构缓存中每一个缓存组设置对应的索引寄存器,索引寄存器中保存有用于表示对应缓存组的索引值,能够直接输出寄存器中的值作为缓存组的索引;然后,每个人索引寄存器都具有编号,且互不相同,同来表示索引寄存器对应的缓存数据的新旧程度,对缓存更新时,直接根据索引寄存器的编号,更新索引寄存器中保存的索引值,提升了缓存更新效率。缓存更新效率。缓存更新效率。
技术研发人员:陈世柱
受保护的技术使用者:昆腾微电子股份有限公司
技术研发日:2022.02.07
技术公布日:2023/8/16
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
