CN108021514A - 一种缓存替换的方法和设备 - Google Patents
一种缓存替换的方法和设备 Download PDFInfo
- Publication number
- CN108021514A CN108021514A CN201610974156.9A CN201610974156A CN108021514A CN 108021514 A CN108021514 A CN 108021514A CN 201610974156 A CN201610974156 A CN 201610974156A CN 108021514 A CN108021514 A CN 108021514A
- Authority
- CN
- China
- Prior art keywords
- cache
- cache blocks
- data
- caching
- guard interval
- 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.)
- Granted
Links
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
-
- 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/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
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
技术领域
本发明涉及数据处理技术领域,尤其涉及一种缓存替换的方法和设备。
背景技术
***可以包括处理器、缓存、缓存控制器、内存和内存控制器。其中,缓存可以包括一个或多个缓存块,每个缓存块用于存储数据。缓存控制器在接收到处理器发送的访问指令之后,若确定缓存中未存储待访问数据,即缓存未命中,则向内存控制器发送访问指令,其中,访问指令用于指示内存控制器从内存中获取待访问数据并向缓存控制器发送待访问数据。在缓存控制器接收到内存控制器发送的待访问数据之后,若确定缓存已满,则执行缓存替换过程,具体的:将缓存的待替换缓存块中的数据替换为待访问数据。
目前,一种实现方式为将最早被写入缓存的数据所在的缓存块作为待替换缓存块。示例的,假设缓存包括4个缓存块,内存包括非易失性存储器(non-volatile memory,NVM)和动态随机存取存储器(dynamic random access memory,DRAM)。D表示DRAM中的数据,N表示NVM中的数据。某一时刻该4个缓存块中的数据分别为:D1、N1、D2和N2。这4个数据按照被写入缓存的时间从早到晚排序后得到序列1:D1、N1、D2、N2,如图1所示。若第一时刻待访问数据为D3,则缓存控制器将序列1中的D1替换为D3,该情况下,缓存中的4个数据按照被写入缓存的时间从早到晚排序后得到序列2:N1、D2、N2、D3,如图1所示。若第二时刻待访问数据为D1,则缓存控制器将序列2中的N1替换为D1,该情况下,缓存中的4个数据按照被写入缓存的时间从早到晚排序后得到序列3:D2、N2、D3和D1,如图1所示。
上述提供的方法中,D1在第一时刻被替换,若在第二时刻待访问数据为D1,则缓存控制器将N1替换为D1,该情况下,缓存中的数据不包括D1,这样会导致不能提高缓存命中率,***的平均访存时延也变大。
发明内容
本发明的实施例提供一种缓存替换的方法和装置,用以提高缓存命中率,从而降低***平均访存时延。
为达到上述目的,本发明的实施例采用如下技术方案:
一方面,提供一种缓存替换的方法,应用于包括处理器、缓存控制器、缓存和内存的设备中;缓存包括保护区间和优化区间,保护区间内的数据不被替换;可以包括:缓存控制器接收处理器发送的包括待访问数据的地址访问指令;然后,根据待访问数据的地址确定缓存中未存储有待访问数据;接着从内存中读取待访问数据;后续,缓存控制器在优化区间中确定待替换缓存块;最后,缓存控制器将待替换缓存块中的数据替换为待访问数据。假设某时刻缓存未命中,那么,本发明实施例中缓存控制器将优化区间的待替换缓存块中的数据替换为待访问数据,不替换保护区间中的数据。这样,若下一时刻缓存控制器接收到包括被替换掉的数据的地址的访问指令,且若该数据存储在保护区间,则缓存控制器可以从保护区间中获取该数据,而不需再次进行缓存替换,从而能够提高缓存命中率,降低***的平均访存时延。
在一种可能的设计中,内存可以包括NVM和DRAM;缓存可以包括第一类缓存块和第二类缓存块;其中,第一类缓存块用于缓存NVM中的数据,第二类缓存块用于缓存DRAM中的数据。NVM中的数据被访问的时延大于DRAM中的数据被访问的时延。
在一种可能的设计中,缓存控制器在优化区间中确定待替换缓存块可以包括:当优化区间中包含有第二类缓存块时,缓存控制器从优化区间中的第二类缓存块中确定待替换缓存块。当优化区间中没有包含第二类缓存块时,缓存控制器从优化区间中的第一类缓存块中确定待替换缓存块。本发明实施例中,缓存控制器先在优化区间中的第二类缓存块中确定待替换缓存块,该情况下,优化区间中的第二类缓存块会减少,第一类缓存块会随之增多,这样,可以使缓存稳定时的优化区间中包括尽可能多的第一类缓存块,从而能够提高缓存命中率。
在一种可能的设计中,该方法还可以包括:缓存控制器更新保护区间的范围。可选的,当接收到处理器发送的访问指令的次数为kN时,缓存控制器更新保护区间的范围,其中,N为预设的访问次数,N为不小于1的整数,k为不小于1的整数。
在一种可能的设计中,由于第二类缓存块中的数据被访问的时延小于第一类缓存块中的数据被访问的时延,因此,优先替换第二类缓存块能够提高缓存命中率。又由于部分第二类缓存块中的数据被访问的次数高,也就是说,局部性较好,为了保护局部性较好的第二类缓存块,缓存控制器更新保护区间的范围,可以包括以下方式中的任一种:
方式1:当第一类缓存块的访问频率与第二类缓存块的访问频率的比值大于第一阈值时,缓存控制器缩小保护区间的范围。或,当第一类缓存块的访问频率与第二类缓存块的访问频率的比值小于第二阈值时,缓存控制器扩大保护区间的范围。其中,第一阈值大于第二阈值。实际实现时,该方法还可以包括:当第一类缓存块的访问频率与第二类缓存块的访问频率的比值,大于等于第二阈值且小于等于第一阈值时,缓存控制器不更新保护区间范围。
方式2:当优化区间内的第一类缓存块的命中次数与缓存的总命中次数的比值大于x时,缓存控制器缩小保护区间的范围,其中,0<x<1。或,当保护区间内的第二类缓存块的命中次数与缓存的总命中次数的比值大于y时,缓存控制器扩大保护区间的范围,其中,0<y<1。实际实现时,该方法还可以包括:当优化区间内的第一类缓存块的命中次数与缓存的总命中次数的比值小于等于x,缓存控制器不更新保护区间范围;当保护区间内的第二类缓存块的命中次数与缓存的总命中次数的比值小于等于y时,缓存控制器不更新保护区间范围。
方式3:当第一类缓存块的缺失率与第二类缓存块的缺失率的比值大于第三阈值时,缓存控制器缩小保护区间的范围;或,当第一类缓存块的缺失率与第二类缓存块的缺失率的比值小于第四阈值时,缓存控制器扩大保护区间的范围。其中,第三阈值大于第四阈值。其中,缺失率可以为:未命中的访问次数与访问总次数的比例。实际实现时,该方法还可以包括:当第一类缓存块的访问频率与第二类缓存块的缺失率的比值,大于等于第四阈值且小于等于第三阈值时,缓存控制器不更新保护区间范围。
在一种可能的设计中,在缓存控制器将待替换缓存块中的数据替换为待访问数据之后,该方法还可以包括:若待访问数据的访存时间不小于预设时长,则缓存控制器将待替换缓存块标记为第一类缓存块。或,若待访问数据的访存时间小于预设时长,则缓存控制器将待替换缓存块标记为第二类缓存块。该可选的实现方式提供了一种标记缓存块的具体实现方式,当然不限于此。
另一方面,提供一种计算设备,该计算设备可以包括处理器、缓存控制器、缓存和内存;缓存可以包括保护区间和优化区间,保护区间内的数据不被替换;缓存控制器可以用于:接收处理器发送的访问指令,其中,访问指令包括待访问数据的地址;根据待访问数据的地址确定缓存中未存储有待访问数据;从内存中读取待访问数据;在优化区间中确定待替换缓存块;将待替换缓存块中的数据替换为待访问数据。
在一种可能的设计中,内存可以包括NVM和DRAM;缓存可以包括第一类缓存块和第二类缓存块;其中,第一类缓存块用于缓存NVM中的数据,第二类缓存块用于缓存DRAM中的数据。
在一种可能的设计中,缓存控制器具体可以用于:当优化区间中包含有第二类缓存块时,从优化区间中的第二类缓存块中确定待替换缓存块。当优化区间中没有包含第二类缓存块时,从优化区间中的第一类缓存块中确定待替换缓存块。
在一种可能的设计中,缓存控制器还可以用于:更新保护区间的范围。
在一种可能的设计中,缓存控制器具体可以用于:当第一类缓存块的访问频率与第二类缓存块的访问频率的比值大于第一阈值时,缩小保护区间的范围;或,当第一类缓存块的访问频率与第二类缓存块的访问频率的比值小于第二阈值时,扩大保护区间的范围。
在一种可能的设计中,缓存控制器具体可以用于:当优化区间内的第一类缓存块的命中次数与缓存的总命中次数的比值大于x时,缩小保护区间的范围,其中,0<x<1;或,当保护区间内的第二类缓存块的命中次数与缓存的总命中次数的比值大于y时,扩大保护区间的范围,其中,0<y<1。
在一种可能的设计中,缓存控制器具体可以用于:当第一类缓存块的缺失率与第二类缓存块的缺失率的比值大于第三阈值时,缩小保护区间的范围;或,当第一类缓存块的缺失率与第二类缓存块的缺失率的比值小于第四阈值时,扩大保护区间的范围。
在一种可能的设计中,缓存控制器具体可以用于:当接收到处理器发送的访问指令的次数为kN时,缓存控制器更新保护区间的范围,其中,N为预设的访问次数,N为不小于1的整数,k为不小于1的整数。
在一种可能的设计中,缓存控制器还可以用于:若待访问数据的访存时间大于或等于预设时长,则将待替换缓存块标记为第一类缓存块;或,若待访问数据的访存时间小于预设时长,则将待替换缓存块标记为第二类缓存块。
又一方面,本发明实施例提供了一种缓存控制器,所述缓存控制器中包含有分别用于执行上述第一方面以及第一方面的各可能的实施方式中所示的方法的模块。
又一方面,提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当计算设备的至少一个处理器执行该计算机执行指令时,计算设备执行上述方面或者上述方面的任一种可能的实现方式所提供的缓存替换方法。
另一方面,提供一种计算机程序产品,该计算机程序产品包括计算机执行指令,该计算机执行指令存储在计算机可读存储介质中;计算设备的至少一个处理器可以从计算机可读存储介质读取该计算机执行指令,至少一个处理器执行该计算机执行指令使得计算设备实施上述方面或者上述方面的任一种可能的实现方式所提供的缓存替换方法。
可以理解地,上述提供的任一种计算设备或计算机存储介质均用于执行上文所提供的缓存替换的方法,因此,其所能达到的有益效果可参考上文所提供的相应的缓存替换的方法中的有益效果,此处不再赘述。
附图说明
图1为本发明实施例提供的一种缓存的结构示意图;
图2为本发明实施例所适用的一种***架构示意图;
图3为本发明实施例提供的一种缓存替换的方法的交互示意图;
图4为本发明实施例提供的另一种缓存的结构示意图;
图5为本发明实施例提供的另一种缓存的结构示意图;
图6为本发明实施例提供的另一种缓存的结构示意图;
图7为本发明实施例提供的一种重用距离表的结构示意图;
图8为本发明实施例提供的另一种缓存替换的方法的交互示意图;
图9为本发明实施例提供的一种缓存控制器的结构示意图;
图10为本发明实施例提供的另一种缓存控制器的结构示意图;
图11为本发明实施例提供的一种计算设备的结构示意图。
具体实施方式
本发明实施例提供的技术方案可以适用于如图2所示的***架构中,图2所示的***可以包括处理器、缓存、缓存控制器、内存和内存控制器。其中,缓存包括一个或多个缓存块。图2是以“缓存包括2个缓存块”为例说明的。处理器,是控制器的控制中心。缓存是介于处理器和内存之间的高速存储器,主要用于提升服务器的读写性能。缓存块用于存储数据。缓存控制器用于对缓存中的数据进行管理,示例的,可以将待访问数据写入缓存中。内存控制器用于对内存中的数据进行管理,示例的,可以将待访问数据发送给缓存控制器。需要说明的是,缓存中的数据是内存中的一部分数据。进一步的,若缓存中包含待访问数据,则处理器可从缓存中获取待访问数据,而不用从内存中获取待访问数据,从而加快了读取速度。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。本文中的“第一”和“第二”等是为了更清楚地区分不同的对象,并不做任何其他限定。本文中的“多个”是指两个或两个以上。
下面将结合本发明实施例的说明书附图,对本发明实施例提供的技术方案进行说明。显然,所描述的是本发明的一部分实施例,而不是全部的实施例。
如图3所示,为本发明实施例提供的一种缓存替换的方法交互图。该方法可以应用于包括处理器、缓存、缓存控制器和内存控制器的***架构中,如图2所示。缓存包括保护区间和优化区间。其中,保护区间可以包括一个或多个缓存块,优化区间可以包括一个或多个缓存块,可选的,优化区间可以是缓存中的除保护区间之外的剩余空间。下文中均以优化区间是缓存中的除保护区间之外的剩余空间为例进行说明。保护区间可以是位置上连续的多个缓存块构成的存储空间,也可以是位置上不连续的多个缓存块构成的存储空间,优化区间可以是位置上连续的多个缓存块构成的存储空间,也可以是位置上不连续的多个缓存块构成的存储空间。
保护区间中的缓存块不会被替换,而优化区间中的缓存块可以被替换。其中,替换规则可以包括但不限于以下算法中的任一种:最近最少使用算法(least recently used,LRU)、最不经常使用算法(least frequently used,LFU)、LRU的改进算法等。保护区间和优化区间的范围均可以被更新。
图3所示的方法可以包括以下步骤S101~S104:
S101:处理器向缓存控制器发送访问指令;其中,访问指令包括待访问数据的地址。
待访问数据可以是内存中存储的任一数据;且待访问数据可以是缓存中存储的数据,也可以不是缓存中存储的数据。若待访问数据是缓存中存储的数据,则待访问数据可以是保护区间中存储的数据,也可以是优化区间中存储的数据。
S102:缓存控制器接收处理器发送的访问指令。
S103:缓存控制器根据待访问数据的地址确定缓存中未存储有待访问数据。
具体的:缓存控制器根据待访问数据的地址,判断保护区间和优化区间中是否存储有待访问数据。
S104:缓存控制器从内存中读取待访问数据。
具体的:缓存控制器若确定保护区间和优化区间中均未存储待访问数据,则从内存中读取待访问数据。其中,从内存中获取待访问数据,可以包括:缓存控制器向内存控制器发送该访问指令;内存控制器接收该访问指令,并向缓存控制器发送访问响应消息,其中,访问响应消息携带待访问数据;缓存控制器接收该访问响应消息。
可选的,内存可以包括NVM和DRAM,该情况下,S104中读取到的待访问数据可以来自NVM或DRAM。其中,NVM中的数据被访问的时延大于DRAM中的数据被访问的时延。
S105:缓存控制器在优化区间中确定待替换缓存块。
本发明实施例对缓存控制器在优化区间中确定待替换缓存块的实现方式不进行限定。例如,缓存控制器可以将优化区间中的最早被写入缓存的数据所在的缓存块确定为待替换缓存块。
S106:缓存控制器将待替换缓存块中的数据替换为待访问数据。
具体实现时,在S106之后,该方法还可以包括:缓存控制器向处理器发送访问响应消息,该访问响应消息携带待访问数据。
可选的,在S102之后,该方法还可以包括:缓存控制器若根据待访问数据的地址,确定优化区间和保护区间中的任一个区间内存储有待访问数据,则向处理器发送访问响应消息,该访问响应消息携带待访问数据。
本发明实施例提供的缓存替换的方法中,只在优化区间内确定待替换缓存块,不在保护区间中确定待替换缓存块。假设某时刻缓存未命中,那么,现有技术中缓存控制器将待替换缓存块(即最早被写入缓存中的数据所在的块)中的数据替换为待访问数据,本发明实施例中缓存控制器将优化区间的待替换缓存块中的数据替换为待访问数据,不替换保护区间中的数据。若下一时刻缓存控制器接收到包括被替换掉的数据的地址的访问指令,则现有技术中需再次进行缓存替换,该情况下,本发明实施例中,若该数据存储在保护区间,则缓存控制器可以从保护区间中获取该数据,而不需再次进行缓存替换。显然,与现有技术相比,本发明实施例提高了缓存命中率,降低了***的平均访存时延。
可选的,缓存可以包括第一类缓存块和第二类缓存块。其中,第一类缓存块用于缓存NVM中的数据,第二类缓存块用于缓存DRAM中的数据。
基于该可选的实现方式,S106中的缓存控制器在优化区间中确定待替换缓存块,可以包括:当优化区间中包含有第二类缓存块时,缓存控制器从优化区间中的第二类缓存块中确定待替换缓存块,或,当优化区间中没有包含第二类缓存块时,缓存控制器从所述优化区间中的第一类缓存块中确定待替换缓存块。
具体的,当优化区间中包含有第二类缓存块时,缓存控制器可以将优化区间中的任一第二类缓存块作为待替换缓存块。可选的,缓存控制器将优化区间中的最早被写入缓存的数据所在的第二类缓存块作为待替换缓存块。或,当优化区间中没有包含第二类缓存块时,缓存控制器可以将优化区间中的任一第一类缓存块作为待替换缓存块。可选的,缓存控制器将优化区间中的最早被写入缓存的数据所在的第一类缓存块作为待替换缓存块。在S106中,缓存控制器先在优化区间中的第二类缓存块中确定待替换缓存块,该情况下,优化区间中的第二类缓存块会减少,第一类缓存块会随之增多,这样,可以使缓存稳定时的优化区间中包括尽可能多的第一类缓存块,从而能够提高缓存命中率。
基于该可选的实现方式,在S106之后,该方法还可以包括:若待访问数据的访存时间大于或等于预设时长,则缓存控制器将待替换缓存块标记为第一类缓存块;或,若待访问数据的访存时间小于预设时长,则缓存控制器将待替换缓存块标记为第二类缓存块。
其中,待访问数据的访存时间可以是缓存控制器向内存控制器发送访问指令的时刻,与缓存控制器接收到内存控制器发送的访存响应消息的时刻之间的时间段。示例的,假设预设时长为70ns(纳秒),若待访问数据的访存时间为80ns,则缓存控制器将待替换缓存块标记为第一类缓存块;若待访问数据的访存时间为60ns,则缓存控制器将待替换缓存块标记为第二类缓存块。
需要说明的是,本发明实施例对标记缓存块的类型的方法不进行限定,例如,缓存控制器可以为缓存中的每个缓存块增加一个时延位,用于表示该缓存块是第一类缓存块还是第二类缓存块。
可选的,在S106之后,该方法还可以包括:缓存控制器更新保护区间的范围。具体的,缓存控制器在接收到处理器发送的访问指令的次数为kN时,更新保护区间的范围,其中,预设访问次数为N,N为大于或等于1的整数,k为大于或等于1的整数。
实际实现时,缓存控制器可以通过多种方式更新保护区间的范围。下面列举两种可选的方式,即方式1、方式2和方式3,来更新保护区间的范围。需要说明的是,保护区间可以保护任一具有特定性质的数据。示例的,保护区间可以保护特定程序中的数据,或,保护区间可以保护按时延分类的数据,例如,保护区间可以保护第一类缓存块,也可以保护第二类缓存块。下文中均以“保护区间保护局部性好的第二类缓存块”为例进行说明。本领域技术人员应当能够根据下述方式1、方式2和方式3推测出保护区间保护其他性质的数据时的具体实现方式,此处不再赘述。
其中,“保护区间保护局部性好的第二类缓存块”可以理解为:保护区间用于保护访问局部性比较好的DRAM中的数据。局部性,可以用来描述程序是否能很好地利用缓存。一般地,局部性可以包括“空间局部性”和“时间局部性”两方面,空间局部性,表示“加载一个地址的数据之后,继续加载它附近的数据”,时间局部性,表示“在加载一个地址的数据之后,短时间内重新加载该数据”。局部性好可以理解为:能够较好的利用中央处理器(central processing unit,CPU)的缓存机制。例如,一个程序的局部性比较好,表示该程序能够较好地利用CPU的缓存机制。本发明实施例中,访问局部性比较好的DRAM中的数据可以认为是访问命中率比较高的数据。
需要说明的是,本发明实施例通过方式1、方式2和方式3任一种方式更新保护区间的范围之后,会使缓存维持在稳定状态,即优化区间包括尽可能多的第一类缓存块,保护区间包括尽可能多的第二类缓存块,这样,保护区间可以保护更多的局部性好的第二类缓存块,从而降低***的平均访存时延。
方式1:当第一类缓存块的访问频率与第二类缓存块的访问频率的比值大于第一阈值时,缓存控制器缩小保护区间的范围;或,当第一类缓存块的访问频率与第二类缓存块的访问频率的比值小于第二阈值时,缓存控制器扩大保护区间的范围。其中,第一阈值大于第二阈值。
具体的,当第一类缓存块的访问频率与第二类缓存块的访问频率的比值大于第一阈值时,说明第二类缓存块的访问次数减少,因此缓存中需要保护的第二类缓存块减少,则缩小保护区间范围。当第一类缓存块的访问频率与第二类缓存块的访问频率的比值小于第二阈值时,说明第二类缓存块的访问次数增多,因此缓存中需要保护的第二类缓存块增多,则扩大保护区间范围。其中,访问频率,可以为:缓存控制器在单位时间内接收到的处理器发送的访问指令的次数(即访问次数)。
实际实现时,该方法还可以包括:当第一类缓存块的访问频率与第二类缓存块的访问频率的比值,大于等于第二阈值且小于等于第一阈值时,缓存控制器不更新保护区间范围。
方式2:当优化区间内的第一类缓存块的命中次数与缓存的总命中次数的比值大于x时,缓存控制器缩小保护区间的范围;或,当保护区间内的第二类缓存块的命中次数与缓存的总命中次数的比值大于y时,缓存控制器扩大保护区间的范围;其中,x,y均大于0小于1。
具体的,当优化区间内的第一类缓存块的命中次数与缓存的总命中次数的比值大于x时,说明优化区间中的第一类缓存块增多,则需要扩大优化区间的范围,也就是说,需要缩小保护区间的范围。当保护区间内的第二类缓存块的命中次数与缓存中的总命中次数的比值大于y时,说明缓存中的第二类缓存块增多,则需要扩大保护区间的范围。
实际实现时,该方法还可以包括:当优化区间内的第一类缓存块的命中次数与缓存的总命中次数的比值小于等于x,缓存控制器不更新保护区间范围;当保护区间内的第二类缓存块的命中次数与缓存的总命中次数的比值小于等于y时,缓存控制器不更新保护区间范围。
方式3:当第一类缓存块的缺失率与第二类缓存块的缺失率的比值大于第三阈值时,缓存控制器缩小保护区间的范围;或,当第一类缓存块的缺失率与第二类缓存块的缺失率的比值小于第四阈值时,缓存控制器扩大保护区间的范围。其中,第三阈值大于第四阈值。
具体的,当第一类缓存块的缺失率与第二类缓存块的缺失率的比值大于第三阈值时,说明第一类缓存块的缺失率大,也就是说,第一类缓存块的命中率小,而缓存稳定时应使优化区间包括尽可能多的第一类缓存块可以提高第一类缓存块的命中率,因此,需要扩大优化区间的范围,也就是说,需要缩小保护区间的范围。
当第一类缓存块的缺失率与第二类缓存块的缺失率的比值小于第四阈值时,说明第二类缓存块的缺失率大,也就是说,第二类缓存块的命中率小,而缓存稳定时应使保护区间包括尽可能多的第二类缓存块以提高第二类缓存块的命中率,则扩大保护区间的范围。对该可选的实现方式的分析方式可以参考上述对方式1。其中,缺失率可以为:未命中的访问次数与访问总次数的比例。
实际实现时,该方法还可以包括:当第一类缓存块的访问频率与第二类缓存块的缺失率的比值,大于等于第四阈值且小于等于第三阈值时,缓存控制器不更新保护区间范围。
可选的,保护区间可以包括第一类缓存块和第二类缓存块,优化区间可以包括第一了缓存块和第二类缓存块。若保护区间和优化区间均是位置上连续的多个缓存块构成的存储空间,且保护区间和优化区间构成缓存空间,则缓存控制器可以通过指针来区分保护区间和优化区间,并通过改变指针的值来更新保护区间的范围。该指针的值所指向的位置,可以理解为保护区间和优化区间临界点所在的位置。该指针的值可以为离该指针所指向的位置最近的优化区间中的缓存块的块号。缓存可以包括N个缓存块,N个缓存块的块号可以分别为1,2…N,N≥1,N是整数。缓存中缓存块的块号大于指针的值的所有连续的缓存块构成的区间可以看作保护区间,缓存中缓存块的块号小于或等于指针的值的所有连续的缓存块构成的区间可以看作优化区间。
缓存控制器通过指针来区分保护区间和优化区间,可以包括:缓存控制器可以将指针的值设置为n/2,缓存中大于n/2的所有连续的缓存块构成的区间可以看作保护区间,缓存中小于或等于n/2的所有连续的缓存块构成的区间可以看作优化区间。其中,n为缓存中的缓存块的个数,n≥2,n是偶数。示例的,假设缓存包括8个缓存块,一种缓存的示意图,可以如图4所示。在图4中,指针的值为“4”,保护区间中的缓存块的块号为5~8,优化区间中的缓存块的块号为1~4。
缓存控制器通过改变指针的值来更新保护区间的范围,可以包括:缓存控制器若将指针的值改变为n/2+m(即指针的值变大),则说明保护区间减小,若将指针的值改变为n/2-m(即指针的值变小),则说明保护区间增大。其中,m≥1,m是整数。缓存控制器还可以设置指针的高阈值和指针的低阈值。其中,指针的高阈值可以为优化区间达到最大范围时的指针的值,指针的低阈值可以为保护区间达到最大范围时的指针的值。若更新后的指针的值大于高阈值,则指针的值取高阈值;若更新后的指针的值小于低阈值,则指针的值取低阈值。示例的,指针的高阈值可以为n-1,指针的低阈值可以为1。例如,基于图4,高阈值为7,低阈值为1,假设m=4,若更新后的指针的值为“8”(大于7),则指针的值取“7”;若更新后的指针的值为“0”(小于1),则指针位置的值取“1”。
示例的,保护区间包括的4个连续的缓存块可以分别属于第一类缓存块,第二类缓存块,第一类缓存块,第二类缓存块,优化区间包括的4个连续的缓存块可以都属于第二类缓存块,如图5所示。基于此,若要扩大保护区间的范围,则应使指针的值变小,例如,可以将指针的值由“4”改变为3,该情况下,保护区间中增加了一个第二类缓存块,说明扩大保护区间能够保护更多的第二类缓存块,其中,缓存的示意图可以如图6所示。
需要说明的是,本发明实施例对记录第一类缓存块和第二类缓存块的访问次数的方式不进行限定。可选的,缓存控制器为每个缓存块设置一个计数器,以记录该缓存块的访问次数;另外可选的,处理器每向缓存控制器发送一次访问指令,缓存控制器都根据访问情况将存储待访问数据的缓存块的重用距离(reuse distance,RD)信息统计到重用距离分布表中,其中,访问情况包括:缓存命中或缓存未命中,重用距离信息包括重用距离和访问次数。
其中,重用距离指缓存块被访问时距离上一次被访问之间不重复缓存块的个数。若缓存包括M个缓存块,则缓存不命中的重用距离都为M(即表示未命中)。示例的,缓存控制器接收到的访问指令可以依次为D、A、B、B、C、G、E、F、E、A。若访问指令B的重用距离为0(即表示连续命中),访问指令E的重用距离为1,而访问指令A的重用距离为5,则一种访问指令对应的重用距离的示意图可以如图7所示。
每次访问指令都可以在重用距离表中找到对应的访问次数。示例的,缓存包括M个缓存块,一种重用距离表可以如表1所示:
表1
缓存控制器每接收到处理器发送的一次访问指令,都会进行更新。例如,缓存控制器某时刻接收到重用距离为1的访问指令,则更新后,该访问指令对应的访问次数由“30”变为“31”。更新后的重用距离表可以如表2所示。
表2
重用距离 | 访问次数 |
0 | 20 |
1 | 31 |
2 | 50 |
… | … |
M-2 | 30 |
M-1 | 20 |
M | 100 |
Total(总数) | 300 |
下面通过一个具体的示例对上文提供的缓存替换的方法进行说明。
如图8所示,为本发明实施例提供的一种缓存替换的方法的交互图。图8所示的方法包括:
S201:处理器向缓存控制器发送访问指令;其中,访问指令包括待访问数据的地址。
S202:缓存控制器接收处理器发送的访问指令。
S203:缓存控制器根据访问指令判断缓存是否命中。
若否,则执行S204;若是,则执行S211。
实际实现时,若是,该方法还可以包括:更新缓存状态。更新缓存状态可以包括将命中的缓存块中的数据记录在缓存链表的首端,其中,该首端用于存储最晚被写入缓存的数据,缓存链表可以为包括按写入缓存的时间先后顺序排列的数据的序列。
S204:缓存控制器向内存控制器发送访问指令;其中,访问指令包括待访问数据的地址。
S205:内存控制器接收该访问指令,并向缓存控制器发送访问响应消息,其中,访问响应消息携带待访问数据。
S206:缓存控制器接收访问响应消息,并标记待访问数据所在的缓存块。
待访问数据所在的缓存块可以是第一类缓存块,也可以是第二类缓存块。
S207:缓存控制器在优化区间中寻找第二类缓存块。
S208:缓存控制器判断是否找到第二类缓存块。
若是,则执行S209;若否,则执行S210。
S209:缓存控制器先将优化空间中的第二类缓存块中的任一缓存块确定为待替换缓存块,再将该缓存块中的数据替换为待访问数据。
在执行S209之后,执行S211。
S210缓存控制器先将优化空间中的第一类缓存块中的任一缓存块确定为待替换缓存块,再将该缓存块中的数据替换为待访问数据。
在执行S210之后,执行S211。
S211:缓存控制器将采样次数加1。其中,缓存控制器每接收一次处理器发送的访问指令,表示为一次采样。
S212:缓存控制器判断采样次数是否达到预设阈值。
若是,则执行S213;若否,则返回S202。
S213缓存控制器更新保护区间的范围,将采样次数置零。
可选的,缓存控制器更新保护区间范围的方式可以采用上文中提供的任一种方式。
在执行S213之后,返回S202。
上述主要从缓存控制器的角度对本发明实施例提供的方案进行了介绍。可以理解的是,为了实现上述各个功能,缓存控制器包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,本发明能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
本发明实施例可以根据上述方法示例对缓存控制器进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用各个功能划分的各个功能模块的情况下,图9示出了一种缓存控制器9的结构示意图。缓存控制器9可以包括:接收模块901、确定模块902、读取模块903和替换模块904。可选的,缓存控制器9还可以包括:更新模块905。这各功能模块中的每个功能模块所具有的功能可以根据上文所提供的各方法实施例中的各步骤推断出来,或者可以参考上文发明内容部分所提供的内容,此处不再赘述。
在采用集成的模块的情况下,上述确定模块902、读取模块903、替换模块904和更新模块905均可以集成为缓存控制器9中的一个处理模块。上述接收模块901和发送模块均可以集成为缓存控制器9中的一个通信模块。另外,缓存控制器9中还可以包括存储模块。
如图10所示,为本发明实施例提供的一种缓存控制器10的结构示意图。缓存控制器10可以包括:处理模块1001和通信模块1002。其中,处理模块1001用于对缓存控制器10的工作进行控制管理,例如,处理模块1001用于支持缓存控制器10执行图3中的S103~S106、图8中的S203和S205~S213等,和/或用于本文所描述的技术的其它过程。通信模块1002用于支持缓存控制器10与其他网络实体的通信,例如通信模块1002用于支持缓存控制器10执行图3中的S101、图8中的S201~S202和S204~S206等,和/或用于本文所描述的技术的其它过程。可选的,缓存控制器10还可以包括:存储模块1003。存储模块1003用于存储缓存控制器10执行上文所提供的任一缓存替换的方法所对应的程序代码和数据。
如图11所示,为本发明实施例提供的一种计算设备11的结构示意图。计算设备11可以包括:处理器1101、缓存控制器1102、内存控制器1103、收发器1104、缓存1105、内存1106以及总线1107;其中,处理器1101、缓存控制器1102、内存控制器1103、收发器1104、缓存1105、内存1106通过总线1107相互连接。处理器1101可以是CPU,通用处理器,数字信号处理器(digital signal processor,DSP),专用集成电路(application-specificintegrated circuit,ASIC),现场可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。总线1107可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图11中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
结合本发明公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理模块执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(random access memory,RAM)、闪存、只读存储器(readonly memory,ROM)、可擦除可编程只读存储器(erasable programmable ROM,EPROM)、电可擦可编程只读存储器(electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、只读光盘(CD-ROM)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围。
Claims (16)
1.一种缓存替换的方法,其特征在于,应用于包括处理器、缓存控制器、缓存和内存的***中;所述缓存包括保护区间和优化区间,所述保护区间内的数据不被替换;所述方法包括:
所述缓存控制器接收所述处理器发送的访问指令,其中,所述访问指令包括待访问数据的地址;
所述缓存控制器根据所述待访问数据的地址确定所述缓存中未存储有所述待访问数据;
所述缓存控制器从所述内存中读取所述待访问数据;
所述缓存控制器在所述优化区间中确定待替换缓存块;
所述缓存控制器将所述待替换缓存块中的数据替换为所述待访问数据。
2.根据权利要求1所述的方法,其特征在于,所述内存包括非易失性存储器NVM和动态随机存取存储器DRAM;所述缓存包括第一类缓存块和第二类缓存块;其中,所述第一类缓存块用于缓存所述NVM中的数据,所述第二类缓存块用于缓存所述DRAM中的数据。
3.根据权利要求2所述的方法,其特征在于,所述缓存控制器在所述优化区间中确定待替换缓存块包括:
当所述优化区间中包含有所述第二类缓存块时,所述缓存控制器从所述优化区间中的第二类缓存块中确定所述待替换缓存块。
4.根据权利要求2所述的方法,其特征在于,所述缓存控制器在所述优化区间中确定待替换缓存块包括:
当所述优化区间中没有包含所述第二类缓存块时,所述缓存控制器从所述优化区间中的第一类缓存块中确定所述待替换缓存块。
5.根据权利要求1-4任意一项所述的方法,其特征在于,所述方法还包括:
所述缓存控制器更新所述保护区间的范围。
6.根据权利要求5所述的方法,其特征在于,所述缓存控制器更新所述保护区间的范围,包括:
当所述第一类缓存块的访问频率与所述第二类缓存块的访问频率的比值大于第一阈值时,所述缓存控制器缩小所述保护区间的范围;或
当所述第一类缓存块的访问频率与所述第二类缓存块的访问频率的比值小于第二阈值时,所述缓存控制器扩大所述保护区间的范围。
7.根据权利要求5所述的方法,其特征在于,所述缓存控制器更新所述保护区间的范围,包括:
当所述优化区间内的所述第一类缓存块的命中次数与所述缓存的总命中次数的比值大于x时,所述缓存控制器缩小所述保护区间的范围,其中,0<x<1;或
当所述保护区间内的所述第二类缓存块的命中次数与所述缓存的总命中次数的比值大于y时,所述缓存控制器扩大所述保护区间的范围,其中,0<y<1。
8.根据权利要求5所述的方法,其特征在于;所述缓存控制器更新所述保护区间的范围,包括:
当所述第一类缓存块的缺失率与所述第二类缓存块的缺失率的比值大于第三阈值时,所述缓存控制器缩小所述保护区间的范围;
或,当所述第一类缓存块的缺失率与所述第二类缓存块的缺失率的比值小于第四阈值时,所述缓存控制器扩大所述保护区间的范围。
9.一种计算设备,其特征在于,所述计算设备包括处理器、缓存控制器、缓存和内存;所述缓存包括保护区间和优化区间,所述保护区间内的数据不被替换;所述缓存控制器用于:
接收所述处理器发送的访问指令,其中,所述访问指令包括待访问数据的地址;
根据所述待访问数据的地址确定所述缓存中未存储有所述待访问数据;
从所述内存中读取所述待访问数据;
在所述优化区间中确定待替换缓存块;
将所述待替换缓存块中的数据替换为所述待访问数据。
10.根据权利要求9所述的计算设备,其特征在于:所述内存包括非易失性存储器NVM和动态随机存取存储器DRAM;所述缓存包括第一类缓存块和第二类缓存块;其中,所述第一类缓存块用于缓存所述NVM中的数据,所述第二类缓存块用于缓存所述DRAM中的数据。
11.根据权利要求10所述的计算设备,其特征在于,所述缓存控制器具体用于:
当所述优化区间中包含有所述第二类缓存块时,从所述优化区间中的第二类缓存块中确定所述待替换缓存块。
12.根据权利要求10所述的计算设备,其特征在于,所述缓存控制器具体用于:
当所述优化区间中没有包含所述第二类缓存块时,从所述优化区间中的第一类缓存块中确定所述待替换缓存块。
13.根据权利要求9-12任意一项所述的计算设备,其特征在于,所述缓存控制器还用于:更新所述保护区间的范围。
14.根据权利要求13所述的计算设备,其特征在于,所述缓存控制器具体用于:
当所述第一类缓存块的访问频率与所述第二类缓存块的访问频率的比值大于第一阈值时,缩小所述保护区间的范围;或
当所述第一类缓存块的访问频率与所述第二类缓存块的访问频率的比值小于第二阈值时,扩大所述保护区间的范围。
15.根据权利要求13所述的计算设备,其特征在于,所述缓存控制器具体用于:
当所述优化区间内的所述第一类缓存块的命中次数与所述缓存的总命中次数的比值大于x时,缩小所述保护区间的范围,其中,0<x<1;或
当所述保护区间内的所述第二类缓存块的命中次数与所述缓存的总命中次数的比值大于y时,扩大所述保护区间的范围,其中,0<y<1。
16.根据权利要求13所述的计算设备,其特征在于;所述缓存控制器具体用于:
当所述第一类缓存块的缺失率与所述第二类缓存块的缺失率的比值大于第三阈值时,缩小所述保护区间的范围;或
当所述第一类缓存块的缺失率与所述第二类缓存块的缺失率的比值小于第四阈值时,扩大所述保护区间的范围。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610974156.9A CN108021514B (zh) | 2016-10-28 | 2016-10-28 | 一种缓存替换的方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610974156.9A CN108021514B (zh) | 2016-10-28 | 2016-10-28 | 一种缓存替换的方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108021514A true CN108021514A (zh) | 2018-05-11 |
CN108021514B CN108021514B (zh) | 2020-11-06 |
Family
ID=62083719
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610974156.9A Active CN108021514B (zh) | 2016-10-28 | 2016-10-28 | 一种缓存替换的方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108021514B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109190070A (zh) * | 2018-08-01 | 2019-01-11 | 北京奇艺世纪科技有限公司 | 一种数据处理方法、装置、***及应用服务器 |
CN110879797A (zh) * | 2019-10-31 | 2020-03-13 | 西安交通大学 | 高速可重构处理器配置信息缓存替换方法及存储体系结构 |
CN110895515A (zh) * | 2018-09-12 | 2020-03-20 | 中兴通讯股份有限公司 | 内存缓存管理方法、多媒体服务器及计算机存储介质 |
CN111221749A (zh) * | 2019-11-15 | 2020-06-02 | 新华三半导体技术有限公司 | 数据块写入方法、装置、处理器芯片及Cache |
CN113421599A (zh) * | 2021-06-08 | 2021-09-21 | 珠海市一微半导体有限公司 | 一种预缓存外部存储器数据的芯片及其运行方法 |
CN116010300A (zh) * | 2023-03-24 | 2023-04-25 | 摩尔线程智能科技(北京)有限责任公司 | 一种gpu缓存方法及装置、电子设备和存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080235458A1 (en) * | 2005-11-30 | 2008-09-25 | Red Hat, Inc. | Method for tracking of non-resident pages |
US20130198453A1 (en) * | 2012-01-26 | 2013-08-01 | Korea Electronics Technology Institute | Hybrid storage device inclucing non-volatile memory cache having ring structure |
CN103412829A (zh) * | 2013-08-16 | 2013-11-27 | 深圳市汇顶科技股份有限公司 | 扩大mcu程序地址空间的方法及装置 |
CN103514110A (zh) * | 2012-06-20 | 2014-01-15 | 华为技术有限公司 | 非易失性存储设备的缓存管理方法及装置 |
CN104834608A (zh) * | 2015-05-12 | 2015-08-12 | 华中科技大学 | 一种异构内存环境下的缓存替换方法 |
CN105022700A (zh) * | 2015-07-17 | 2015-11-04 | 哈尔滨工程大学 | 一种基于缓存空间划分和内容相似度的命名数据网络缓存管理***和管理方法 |
CN105094686A (zh) * | 2014-05-09 | 2015-11-25 | 华为技术有限公司 | 数据缓存方法、缓存和计算机*** |
CN105612499A (zh) * | 2013-10-29 | 2016-05-25 | 华中科技大学 | 混合高速缓存管理 |
CN105893274A (zh) * | 2016-05-11 | 2016-08-24 | 华中科技大学 | 一种面向异构内存***建立检查点的装置 |
-
2016
- 2016-10-28 CN CN201610974156.9A patent/CN108021514B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080235458A1 (en) * | 2005-11-30 | 2008-09-25 | Red Hat, Inc. | Method for tracking of non-resident pages |
US20130198453A1 (en) * | 2012-01-26 | 2013-08-01 | Korea Electronics Technology Institute | Hybrid storage device inclucing non-volatile memory cache having ring structure |
CN103514110A (zh) * | 2012-06-20 | 2014-01-15 | 华为技术有限公司 | 非易失性存储设备的缓存管理方法及装置 |
CN103412829A (zh) * | 2013-08-16 | 2013-11-27 | 深圳市汇顶科技股份有限公司 | 扩大mcu程序地址空间的方法及装置 |
CN105612499A (zh) * | 2013-10-29 | 2016-05-25 | 华中科技大学 | 混合高速缓存管理 |
CN105094686A (zh) * | 2014-05-09 | 2015-11-25 | 华为技术有限公司 | 数据缓存方法、缓存和计算机*** |
CN104834608A (zh) * | 2015-05-12 | 2015-08-12 | 华中科技大学 | 一种异构内存环境下的缓存替换方法 |
CN105022700A (zh) * | 2015-07-17 | 2015-11-04 | 哈尔滨工程大学 | 一种基于缓存空间划分和内容相似度的命名数据网络缓存管理***和管理方法 |
CN105893274A (zh) * | 2016-05-11 | 2016-08-24 | 华中科技大学 | 一种面向异构内存***建立检查点的装置 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109190070A (zh) * | 2018-08-01 | 2019-01-11 | 北京奇艺世纪科技有限公司 | 一种数据处理方法、装置、***及应用服务器 |
CN109190070B (zh) * | 2018-08-01 | 2021-10-15 | 北京奇艺世纪科技有限公司 | 一种数据处理方法、装置、***及应用服务器 |
CN110895515A (zh) * | 2018-09-12 | 2020-03-20 | 中兴通讯股份有限公司 | 内存缓存管理方法、多媒体服务器及计算机存储介质 |
CN110879797A (zh) * | 2019-10-31 | 2020-03-13 | 西安交通大学 | 高速可重构处理器配置信息缓存替换方法及存储体系结构 |
CN110879797B (zh) * | 2019-10-31 | 2021-09-07 | 西安交通大学 | 高速可重构处理器配置信息缓存替换方法及存储体系结构 |
CN111221749A (zh) * | 2019-11-15 | 2020-06-02 | 新华三半导体技术有限公司 | 数据块写入方法、装置、处理器芯片及Cache |
CN113421599A (zh) * | 2021-06-08 | 2021-09-21 | 珠海市一微半导体有限公司 | 一种预缓存外部存储器数据的芯片及其运行方法 |
CN116010300A (zh) * | 2023-03-24 | 2023-04-25 | 摩尔线程智能科技(北京)有限责任公司 | 一种gpu缓存方法及装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108021514B (zh) | 2020-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108021514A (zh) | 一种缓存替换的方法和设备 | |
JP5305621B2 (ja) | 複数のデータ構造を用いてキャッシュ内のデータを管理するシステム | |
KR102043886B1 (ko) | 프로파일링 캐시 대체 | |
EP3229142B1 (en) | Read cache management method and device based on solid state drive | |
EP1654660B1 (en) | A method of data caching | |
CN109154911B (zh) | 用于监视高速缓存行在不同的高速缓存级下的状态的阴影标签存储器 | |
US6460114B1 (en) | Storing a flushed cache line in a memory buffer of a controller | |
US7757045B2 (en) | Synchronizing recency information in an inclusive cache hierarchy | |
JP3488215B2 (ja) | キャッシュからデータをデモートする方法、システム及びプログラム | |
CN108073527B (zh) | 一种缓存替换的方法和设备 | |
US10185498B2 (en) | Write buffer design for high-latency memories | |
CN104156323B (zh) | 一种高速缓冲存储器的数据块长度自适应读取方法及装置 | |
EP3115904B1 (en) | Method for managing a distributed cache | |
US11593268B2 (en) | Method, electronic device and computer program product for managing cache | |
US20090106496A1 (en) | Updating cache bits using hint transaction signals | |
CN109478164B (zh) | 用于存储用于高速缓存条目传输的高速缓存位置信息的***和方法 | |
JP5699854B2 (ja) | 記憶制御システムおよび方法、置換方式および方法 | |
US20210182213A1 (en) | Cache line re-reference interval prediction using physical page address | |
US10552343B2 (en) | Zero thrash cache queue manager | |
CN113791989B (zh) | 基于cache的缓存数据处理方法、存储介质及芯片 | |
JP4558003B2 (ja) | データアクセス処理方法及び記憶制御装置 | |
US11099985B2 (en) | Storage controller, storage array device, data depositing method, and storage medium | |
JP6112193B2 (ja) | アクセス制御プログラム、ディスク装置及びアクセス制御方法 | |
US11281587B2 (en) | Self-tuning cache | |
EP2782017A1 (en) | Arithmetic processing apparatus and control method of arithmetic processing apparatus |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |