CN107368437B - 一种末级缓存管理方法及系统 - Google Patents
一种末级缓存管理方法及系统 Download PDFInfo
- Publication number
- CN107368437B CN107368437B CN201710607258.1A CN201710607258A CN107368437B CN 107368437 B CN107368437 B CN 107368437B CN 201710607258 A CN201710607258 A CN 201710607258A CN 107368437 B CN107368437 B CN 107368437B
- Authority
- CN
- China
- Prior art keywords
- cache
- bloom filter
- data
- address
- group
- 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.)
- Active
Links
- 238000007726 management method Methods 0.000 title claims abstract description 24
- 238000000034 method Methods 0.000 claims abstract description 34
- 238000003780 insertion Methods 0.000 claims abstract description 14
- 230000037431 insertion Effects 0.000 claims abstract description 14
- 238000013507 mapping Methods 0.000 claims abstract description 6
- 238000012545 processing Methods 0.000 claims description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 230000015654 memory Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 1
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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- 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/122—Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7839—Architectures of general purpose stored program computers comprising a single central processing unit with memory
- G06F15/7842—Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
- G06F15/7846—On-chip cache and off-chip main memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请公开了一种末级缓存管理方法,应用于基于组相连映射的Cache,包括:当接收到CPU发送的访问请求时,根据访问请求的地址,判断是否被命中;若未被命中,则将地址对应的缓存组中优先级位置最低的缓存行进行替换,并将缓存行的tag数据插入到预先在缓存组中添加的布隆过滤器中;判断地址的tag数据是否存在于布隆过滤器当中;若地址的tag数据存在于布隆过滤器中,则将访问请求对应的数据插入到缓存组的最高优先级的位置中。本申请通过在Cache中的缓存组中添加布隆过滤器,为数据的插入位置提供了可靠的理论依据,有效提升了缓存的空间利用率。另外,本申请还公开了一种末级缓存管理系统。
Description
技术领域
本发明涉及缓存管理领域,特别涉及一种末级缓存管理方法及系统。
背景技术
随着科学技术的进步,微处理器与存储器之间的性能差距越来越大。为了减缓处理器与存储器之间的性能差距,片上缓存被广泛使用。然而怎样利用缓存中的末级缓存(Last Level Cache,LLC)对系统的性能起着至关重要的作用。然而,这些缓存在使用传统的缓存管理策略时,空间资源的利用率会很低,其主要原因是因为缓存中的缓存污染(Cache Pollution)和缓存抖动(Cache Thrashing)问题。目前已经有相关研究表明,改变数据块的插入位置可以提高末级缓存的性能,例如通过修改最近未被使用(LeastRecently Used,LRU)的插入策略来减轻缓存污染或者是缓存抖动的问题,但是在使用双向插入策略(Bimodal Insertion Policy,BIP)修改LRU的插入策略的过程中,仅仅是依据概率来选择数据块的插入位置,通常是以1/64的概率将数据块插入到缓存组最高优先级的位置,其余插入到最低优先级的位置。显然,这种方法理论性不足,极易引起访问次数较多的数据块误判的情况,从而致使Cache的空间资源利用率不高,这也是在该技术领域亟待解决的一个问题。
发明内容
有鉴于此,本发明的目的在于提供一种末级缓存管理方法及系统,以提高缓存空间的利用率。其具体方案如下:
一种末级缓存管理方法,应用于基于组相连映射的Cache,包括:
当接收到CPU发送的访问请求时,根据所述访问请求的地址,判断是否被命中;
若未被命中,则将所述地址对应的缓存组中优先级位置最低的缓存行进行替换,并将所述缓存行的tag数据插入到预先在所述缓存组中添加的布隆过滤器中;
判断所述地址的tag数据是否存在于所述布隆过滤器当中;
若所述地址的tag数据存在于所述布隆过滤器中,则将所述访问请求对应的数据插入到所述缓存组的最高优先级的位置中。
优选的,还包括:
若所述地址的tag数据不存在于所述布隆过滤器中,则将所述访问请求对应的数据插入到所述缓存组的任意位置中。
优选的,所述将所述地址对应的缓存组中优先级位置最低的缓存行进行替换的过程之后,还包括:
判断预先在所述缓存组中添加的饱和计数器的当前计数值是否等于所述布隆过滤器的数据容量大小;
若所述饱和计数器的当前计数值等于所述数据容量大小,则对所述布隆过滤器和所述饱和计数器进行复位操作;
若所述饱和计数器的当前计数值小于所述布隆过滤器的数据容量大小,则对所述饱和计数器的当前计数值进行加1。
优选的,还包括:
预先将所述布隆过滤器的数据容量大小设置为4W,并且,将所述布隆过滤器的位数组大小设置为6W;
其中,W为所述缓存组的路数。
优选的,还包括:
预先在所述Cache的每个缓存组中均添加一个所述布隆过滤器和/或所述饱和计数器。
本发明还相应公开了一种末级缓存管理系统,应用于基于组相连映射的Cache,包括:
命中判断模块,用于当接收到CPU发送的访问请求时,根据所述访问请求的地址,判断是否被命中;
数据处理模块,用于未被命中时,则将所述地址对应的缓存组中优先级位置最低的缓存行进行替换,并将所述缓存行的tag数据插入到预先在所述缓存组中添加的布隆过滤器中;
数据判断模块,用于判断所述地址的tag数据是否存在于所述布隆过滤器当中;
第一位置插入模块,用于当所述地址的tag数据存在于所述布隆过滤器中时,则将所述访问请求对应的数据插入到所述缓存组的最高优先级的位置中。
优选的,还包括:
第二位置插入模块,用于当所述地址的tag数据不存在于所述布隆过滤器中时,则将所述访问请求对应的数据插入到所述缓存组的任意位置中。
优选的,还包括:
计数值判断模块,用于将所述地址对应的缓存组中优先级位置最低的缓存行进行替换的过程之后,判断预先在所述缓存组中添加的饱和计数器的当前计数值是否等于所述布隆过滤器的数据容量大小;
计数器复位模块,用于当所述饱和计数器的当前计数值等于所述数据容量大小时,则对所述布隆过滤器和所述饱和计数器进行复位操作;
计数器计数模块,用于当所述饱和计数器的当前计数值小于所述布隆过滤器的数据容量大小时,则对所述饱和计数器的当前计数值进行加1。
优选的,还包括:
布隆过滤器设置模块,用于预先将所述布隆过滤器的数据容量大小设置为4W,并且,将所述布隆过滤器的位数组大小设置为6W;
其中,W为所述缓存组的路数。
优选的,还包括:
缓存组添加模块,用于预先在所述Cache的每个缓存组中均添加一个所述布隆过滤器和/或所述饱和计数器。
本发明中,一种末级缓存管理方法,应用于基于组相连映射的Cache,包括:当接收到CPU发送的访问请求时,根据访问请求的地址,判断是否被命中;若未被命中,则将地址对应的缓存组中优先级位置最低的缓存行进行替换,并将缓存行的tag数据插入到预先在缓存组中添加的布隆过滤器中;判断地址的tag数据是否存在于布隆过滤器当中;若地址的tag数据存在于布隆过滤器中,则将访问请求对应的数据插入到缓存组的最高优先级的位置中。
本发明是在缓存组中预先添加了一个布隆过滤器,然后将缓存组中被替换的缓存行的tag数据存储到布隆过滤器当中,再将访问请求的地址的tag数据和布隆过滤器中的数据进行比较,若访问请求的地址的tag数据存在于布隆过滤器当中,则将该访问请求对应的数据插入到对应缓存组中优先级最高的位置,由此可以得出,通过数据的不断更新替换,最终可以保证存储在缓存组中的数据为重复访问次数较多的数据。相比于现有技术中的仅仅是依靠概率来确定访问请求对应数据的插入位置的方法,本发明的方法为数据的插入位置提供了合理的理论依据,减少了将重复访问次数较多的数据被提前替换出Cache的误判率,降低了缓存中的缓存污染问题,有效地提高了缓存空间的利用率。
而且,在缓存组中添加饱和计数器,对缓存组中被替换的缓存行进行计数,如果计数值大于一定的上限,则对对布隆过滤器和饱和计数器进行定期的复位,解决了缓存抖动的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例一公开的一种末级缓存管理方法流程图;
图2为本发明实施例二公开的一种末级缓存管理方法流程图;
图3为本发明实施例二的具体执行流程图;
图4为本发明实施例公开的一种末级缓存管理系统结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例一公开了一种末级缓存管理方法,参见图1所示,该方法包括:
步骤S11:当接收到CPU发送的访问请求时,根据访问请求的地址,判断是否被命中。
可以理解的是,当接收到CPU发送的访问请求时,首先系统会根据访问请求的地址,在系统的存储空间中去寻找所访问的数据是否存在于系统的存储空间当中,若存在,则命中,若不存在,则未命中。
步骤S12:若未被命中,则将地址对应的缓存组中优先级位置最低的缓存行进行替换,并将缓存行的tag数据插入到预先在缓存组中添加的布隆过滤器中。
本实施例中,当访问请求的数据不存在于系统的存储空间当中时,则未命中,在此条件下,系统会将访问请求的地址对应的缓存组中优先级位置最低的缓存行进行替换,也即,此时,上述缓存行会被替换出Cache,然后,上述缓存行对应的tag数据会被插入到预先在缓存中添加的布隆过滤器当中。
需要说明的是,布隆过滤器是一种空间效率很高的数据结构,它可以利用位数组很简洁地表示一个集合,而且它可以插入一个数据到集合中、测试一个数据是否在集合中和清空集合。
步骤S13:判断地址的tag数据是否存在于布隆过滤器当中。
可以理解的是,这一步骤的目的,是通过将访问请求的地址对应的tag数据和布隆过滤器中的数据进行比较,来判定插入数据的位置。
步骤S14:若地址的tag数据存在于布隆过滤器中,则将访问请求对应的数据插入到缓存组的最高优先级的位置中。
本实施例中,访问请求的地址的tag数据如果存在于布隆过滤器当中,则将访问请求对应的数据插入到缓存组的最高优先级的位置当中,通过不断的更新数据,可以保证缓存组中缓存行存储的数据均为重复访问次数较多的数据,应用本实施例中的方法,可以避免将重复访问次数较多的缓存行给替换出Cache的情况。
本发明是在缓存组中预先添加了一个布隆过滤器,然后将缓存组中被替换的缓存行的tag数据存储到布隆过滤器当中,再将访问请求的地址的tag数据和布隆过滤器中的数据进行比较,若访问请求的地址的tag数据存在于布隆过滤器当中,则将该访问请求对应的数据插入到对应缓存组中优先级最高的位置,由此可以得出,通过数据的不断更新替换,最终可以保证存储在缓存组中的数据为重复访问次数较多的数据。相比于现有技术中的仅仅是依靠概率来确定访问请求对应数据的插入位置的方法,本发明的方法为数据的插入位置提供了合理的理论依据,减少了将重复访问次数较多的数据被提前替换出Cache的误判率,降低了缓存中的缓存污染问题,有效地提高了缓存空间的利用率。
本发明实施例二公开了一种具体的末级缓存管理方法,参见图2所示,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。具体的:
步骤S21:当接收到CPU发送的访问请求时,根据访问请求的地址,判断是否被命中。
本实施例中,当接收到CPU发送的访问请求时,首先系统会根据访问请求的地址,在系统的存储空间中去寻找所访问的数据是否存在于系统的存储空间当中,若存在,则命中,若不存在,则未命中。
步骤S22:若未被命中,则将地址对应的缓存组中优先级位置最低的缓存行进行替换,并将缓存行的tag数据插入到预先在缓存组中添加的布隆过滤器中。
可以理解的是,当访问请求的数据不存在于系统的存储空间当中时,则未命中,在此条件下,系统会将访问请求的地址对应的缓存组中优先级位置最低的缓存行进行替换,也即,此时,上述缓存行会被替换出cache,然后,上述缓存行的tag数据会被插入到预先在缓存中添加的布隆过滤器当中。
需要说明的是,布隆过滤器是一种空间效率很高的数据结构,它可以利用位数组很简洁地表示一个集合,而且它可以插入一个数据到集合中、测试一个数据是否在集合中和清空集合。
进一步的,预先将布隆过滤器的数据容量大小设置为4W,并且,将布隆过滤器的位数组大小设置为6W;
其中,W为缓存组的路数。
需要说明的是,通过在本实施例中添加这样的布隆过滤器,是为了降低存储空间的计算复杂度,而且通过这样的设置,可以降低布隆过滤器测试一个数据是否在集合中的错误率,因为当布隆过滤器的相关参数满足k=1n2(m/n),m/n≥1.44时,可以保证布隆过滤器的错误率最低。其中,k为布隆过滤器中哈希函数的个数,m为布隆过滤器的位数组的位数,n为插入布隆过滤器中数据的个数。
所以,在本实施例中将插入到布隆过滤器的数据数目设为4W,也即,布隆过滤器的数据容量大小为4W,布隆过滤器的位数组大小设置为6W,由此可以推断出此时布隆过滤器中的哈希函数的个数为1个时,此时布隆过滤器的错误率最低。
进一步的,将地址对应的缓存组中优先级位置最低的缓存行进行替换的过程之后,还可以包括下面步骤H11至H13:
步骤H11:判断预先在缓存组中添加的饱和计数器的当前计数值是否等于布隆过滤器的数据容量大小;
需要说明的是,饱和计数器的当前计数值计算的是缓存中被替换掉的缓存行的数目,可以理解的是,通过将饱和计数器的计数值和预设的阈值进行比较,以方便判断缓存组中的缓存行被替换的情况。在本实施例中,是将饱和计数器的阈值设置为布隆过滤器的数据容量大小,当然,在实际应用当中,也可以是其他的数值,此处不作限定。
步骤H12:若饱和计数器的当前计数值等于数据容量大小,则对布隆过滤器和饱和计数器进行复位操作;
步骤H13:若饱和计数器的当前计数值小于布隆过滤器的数据容量大小,则对饱和计数器的当前计数值进行加1。
可以理解的是,通过步骤H12和步骤H13的方法,通过将饱和计数器的计数值和预设的阈值进行比较,当饱和计数器的计数值达到预设的阈值时,对布隆过滤器和饱和计数器进行复位,可以将缓存组中缓存行中的数据进行定期的更新,通过这样的方法,解决了现有技术当中缓存抖动的问题,也即,通过这样的方法,避免了重复访问的缓存行相互之间竞争Cache资源,将被重复访问次数较多的缓存行很快被替换出Cache的情况的发生。
步骤S23:判断地址的tag数据是否存在于布隆过滤器当中。
可以理解的是,在系统工作的过程中,通过不断的访问请求,布隆过滤器中,会存储一部分缓存行的对应的tag数据,通过将访问请求的地址的tag数据和布隆过滤器中的tag数据进行比较,可以大致确定访问请求的数据是否为重复访问次数较多的数据。
步骤S24:若地址的tag数据存在于布隆过滤器中,则将访问请求对应的数据插入到缓存组的最高优先级的位置中。
进一步的,若地址的tag数据不存在于布隆过滤器中,则将访问请求对应的数据插入到缓存组的任意位置中。
可以理解的是,访问请求的地址的tag数据如果存在于布隆过滤器当中,则将访问请求对应的数据插入到缓存组的最高优先级的位置当中,通过系统不断的更新数据,可以保证缓存组中缓存行存储的数据均为重复访问次数较多的数据,通过本实施例中的方法,可以避免缓存污染的问题,也即,可以避免将重复访问次数较多的缓存行给替换出Cache的情况的发生。图3是本申请实施例的具体执行流程图。
进一步的,预先在Cache的每个缓存组中均添加一个布隆过滤器和/或饱和计数器。
可以理解的是,为Cache中的每一个缓存组添加一个布隆过滤器和饱和计数器,可以进一步提高Cache中的空间利用率,而且每一个缓存组中的布隆过滤器和饱和计数器都是相互独立的,不会出现因为某一个布隆过滤器或饱和计数器发生故障,而影响其他缓存组工作的问题,进而,提高了Cache的空间利用率。
相应的,本发明还公开了一种末级缓存管理系统,参见图4所示,该系统包括:
命中判断模块41,用于当接收到CPU发送的访问请求时,根据访问请求的地址,判断是否被命中。
数据处理模块42,用于未被命中时,则将地址对应的缓存组中优先级位置最低的缓存行进行替换,并将缓存行的tag数据插入到预先在缓存组中添加的布隆过滤器中。
数据判断模块43,用于判断地址的tag数据是否存在于布隆过滤器当中。
第一位置插入模块44,用于当地址的tag数据存在于布隆过滤器中时,则将访问请求对应的数据插入到缓存组的最高优先级的位置中。
进一步的,本发明实施例公开的末级缓存管理系统,还包括:
第二位置插入模块,用于当地址的tag数据不存在于布隆过滤器中时,则将访问请求对应的数据插入到缓存组的任意位置中。
进一步的,本发明实施例公开的末级缓存管理系统,还包括:
计数值判断模块,用于将地址对应的缓存组中优先级位置最低的缓存行进行替换的过程之后,判断预先在缓存组中添加的饱和计数器的当前计数值是否等于布隆过滤器的数据容量大小。
计数器复位模块,用于当饱和计数器的当前计数值等于数据容量大小时,则对布隆过滤器和饱和计数器进行复位操作。
计数器计数模块,用于当饱和计数器的当前计数值小于布隆过滤器的数据容量大小时,则对饱和计数器的当前计数值进行加1。
进一步的,本发明实施例公开的末级缓存管理系统,还包括:
布隆过滤器设置模块,用于预先将布隆过滤器的数据容量大小设置为4W,并且,将布隆过滤器的位数组大小设置为6W;
其中,W为缓存组的路数。
进一步的,本发明实施例公开的末级缓存管理系统,还包括:
缓存组添加模块,用于预先在Cache的每个缓存组中均添加一个布隆过滤器和/或饱和计数器。
关于上述各个模块更加详细的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种末级缓存管理方法及系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (6)
1.一种末级缓存管理方法,其特征在于,应用于基于组相连映射的Cache,包括:
当接收到CPU发送的访问请求时,根据所述访问请求的地址,判断是否被命中;
若未被命中,则将所述地址对应的缓存组中优先级位置最低的缓存行进行替换,并将所述缓存行的tag数据插入到预先在所述缓存组中添加的布隆过滤器中;
判断所述地址的tag数据是否存在于所述布隆过滤器当中;
若所述地址的tag数据存在于所述布隆过滤器中,则将所述访问请求对应的数据插入到所述缓存组的最高优先级的位置中;
所述将所述地址对应的缓存组中优先级位置最低的缓存行进行替换的过程之后,还包括:
判断预先在所述缓存组中添加的饱和计数器的当前计数值是否等于所述布隆过滤器的数据容量大小;
若所述饱和计数器的当前计数值等于所述数据容量大小,则对所述布隆过滤器和所述饱和计数器进行复位操作;
若所述饱和计数器的当前计数值小于所述布隆过滤器的数据容量大小,则对所述饱和计数器的当前计数值进行加1;
还包括:
预先将所述布隆过滤器的数据容量大小设置为4W,并且,将所述布隆过滤器的位数组大小设置为6W;其中,W为所述缓存组的路数。
2.根据权利要求1所述的方法,其特征在于,还包括:
若所述地址的tag数据不存在于所述布隆过滤器中,则将所述访问请求对应的数据插入到所述缓存组的任意位置中。
3.根据权利要求1或2所述的方法,其特征在于,还包括:
预先在所述Cache的每个缓存组中均添加一个所述布隆过滤器和/或所述饱和计数器。
4.一种末级缓存管理系统,其特征在于,应用于基于组相连映射的Cache,包括:
命中判断模块,用于当接收到CPU发送的访问请求时,根据所述访问请求的地址,判断是否被命中;
数据处理模块,用于未被命中时,则将所述地址对应的缓存组中优先级位置最低的缓存行进行替换,并将所述缓存行的tag数据插入到预先在所述缓存组中添加的布隆过滤器中;
数据判断模块,用于判断所述地址的tag数据是否存在于所述布隆过滤器当中;
第一位置插入模块,用于当所述地址的tag数据存在于所述布隆过滤器中时,则将所述访问请求对应的数据插入到所述缓存组的最高优先级的位置中;
还包括:
计数值判断模块,用于将所述地址对应的缓存组中优先级位置最低的缓存行进行替换的过程之后,判断预先在所述缓存组中添加的饱和计数器的当前计数值是否等于所述布隆过滤器的数据容量大小;
计数器复位模块,用于当所述饱和计数器的当前计数值等于所述数据容量大小时,则对所述布隆过滤器和所述饱和计数器进行复位操作;
计数器计数模块,用于当所述饱和计数器的当前计数值小于所述布隆过滤器的数据容量大小时,则对所述饱和计数器的当前计数值进行加1;
布隆过滤器设置模块,用于预先将所述布隆过滤器的数据容量大小设置为4W,并且,将所述布隆过滤器的位数组大小设置为6W;其中,W为所述缓存组的路数。
5.根据权利要求4所述的系统,其特征在于,还包括:
第二位置插入模块,用于当所述地址的tag数据不存在于所述布隆过滤器中时,则将所述访问请求对应的数据插入到所述缓存组的任意位置中。
6.根据权利要求4或5任一项所述的系统,其特征在于,还包括:
缓存组添加模块,用于预先在所述Cache的每个缓存组中均添加一个所述布隆过滤器和/或所述饱和计数器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710607258.1A CN107368437B (zh) | 2017-07-24 | 2017-07-24 | 一种末级缓存管理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710607258.1A CN107368437B (zh) | 2017-07-24 | 2017-07-24 | 一种末级缓存管理方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107368437A CN107368437A (zh) | 2017-11-21 |
CN107368437B true CN107368437B (zh) | 2021-06-29 |
Family
ID=60308471
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710607258.1A Active CN107368437B (zh) | 2017-07-24 | 2017-07-24 | 一种末级缓存管理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107368437B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107861819B (zh) * | 2017-12-07 | 2021-07-16 | 郑州云海信息技术有限公司 | 一种缓存组负载均衡的方法、装置和计算机可读存储介质 |
CN109032964A (zh) | 2018-07-02 | 2018-12-18 | 京东方科技集团股份有限公司 | 缓存替换方法及其装置、异构多核系统 |
CN109165172B (zh) * | 2018-08-23 | 2021-10-29 | 郑州云海信息技术有限公司 | 缓存数据处理方法及相关设备 |
CN109492020A (zh) * | 2018-11-26 | 2019-03-19 | 北京知道创宇信息技术有限公司 | 一种数据缓存方法、装置、电子设备及存储介质 |
CN112052190B (zh) * | 2020-09-03 | 2022-08-30 | 杭州电子科技大学 | 一种基于布隆过滤器和二级lru表的固态硬盘热数据识别方法 |
CN115794674B (zh) * | 2023-01-19 | 2023-05-12 | 北京象帝先计算技术有限公司 | 一种缓存数据写回方法、装置、图形处理系统及电子设备 |
CN118550853A (zh) * | 2024-07-29 | 2024-08-27 | 北京开源芯片研究院 | 一种缓存替换方法、装置、电子设备及可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102880558A (zh) * | 2011-06-09 | 2013-01-16 | 苹果公司 | 用于高速缓存块一致性的系统、方法和设备 |
CN104408069A (zh) * | 2014-10-30 | 2015-03-11 | 浪潮电子信息产业股份有限公司 | 一种基于布隆过滤器思想的一致性目录设计方法 |
CN104408163A (zh) * | 2014-12-05 | 2015-03-11 | 浪潮(北京)电子信息产业有限公司 | 一种数据分级存储方法和装置 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9519614B2 (en) * | 2012-01-10 | 2016-12-13 | Verizon Digital Media Services Inc. | Multi-layer multi-hit caching for long tail content |
CN103092774A (zh) * | 2013-01-04 | 2013-05-08 | 北京北大众志微系统科技有限责任公司 | 一种处理器末级高速缓存的管理系统及方法 |
CN103150395B (zh) * | 2013-03-25 | 2014-07-23 | 中国人民解放军国防科学技术大学 | 基于ssd的文件系统目录路径解析方法 |
CN105094686B (zh) * | 2014-05-09 | 2018-04-10 | 华为技术有限公司 | 数据缓存方法、缓存和计算机系统 |
US9690710B2 (en) * | 2015-01-15 | 2017-06-27 | Qualcomm Incorporated | System and method for improving a victim cache mode in a portable computing device |
US9558117B2 (en) * | 2015-01-15 | 2017-01-31 | Qualcomm Incorporated | System and method for adaptive implementation of victim cache mode in a portable computing device |
CN106126434B (zh) * | 2016-06-22 | 2019-04-30 | 中国科学院计算技术研究所 | 中央处理器的缓存区的缓存行的替换方法及其装置 |
CN106569960B (zh) * | 2016-11-08 | 2019-05-28 | 郑州云海信息技术有限公司 | 一种混合主存的末级缓存管理方法 |
CN106850541B (zh) * | 2016-12-13 | 2020-11-06 | 华为技术有限公司 | 一种物联网中节点的地址确定方法和装置 |
CN106909515B (zh) * | 2017-02-11 | 2020-09-18 | 苏州浪潮智能科技有限公司 | 面向混合主存的多核共享末级缓存管理方法及装置 |
-
2017
- 2017-07-24 CN CN201710607258.1A patent/CN107368437B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102880558A (zh) * | 2011-06-09 | 2013-01-16 | 苹果公司 | 用于高速缓存块一致性的系统、方法和设备 |
CN104408069A (zh) * | 2014-10-30 | 2015-03-11 | 浪潮电子信息产业股份有限公司 | 一种基于布隆过滤器思想的一致性目录设计方法 |
CN104408163A (zh) * | 2014-12-05 | 2015-03-11 | 浪潮(北京)电子信息产业有限公司 | 一种数据分级存储方法和装置 |
Non-Patent Citations (1)
Title |
---|
Write-back aware shared last-level cache management for hybrid main memory;Deshan Zhang 等;《 2016 53nd ACM/EDAC/IEEE Design Automation Conference (DAC)》;20160818;第1-6页 * |
Also Published As
Publication number | Publication date |
---|---|
CN107368437A (zh) | 2017-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107368437B (zh) | 一种末级缓存管理方法及系统 | |
US11811660B2 (en) | Flow classification apparatus, methods, and systems | |
US9898206B2 (en) | Memory access processing method, apparatus, and system | |
TWI684099B (zh) | 剖析快取替代 | |
EP3089039B1 (en) | Cache management method and device | |
US20090094200A1 (en) | Method for Admission-controlled Caching | |
US9501419B2 (en) | Apparatus, systems, and methods for providing a memory efficient cache | |
CN111290973B (zh) | 数据写入方法、装置、计算机设备及存储介质 | |
CN107315694B (zh) | 一种缓存一致性管理方法及节点控制器 | |
CN107341114B (zh) | 一种目录管理的方法、节点控制器和系统 | |
US11461239B2 (en) | Method and apparatus for buffering data blocks, computer device, and computer-readable storage medium | |
US20130198460A1 (en) | Information processing device, memory management method, and computer-readable recording medium | |
EP2568386A1 (en) | Method for accessing cache and fictitious cache agent | |
CN112153170A (zh) | 访问服务器的方法、装置、设备及存储介质 | |
US20150081710A1 (en) | Data typing with probabilistic maps having imbalanced error costs | |
US20230342300A1 (en) | Data eviction method and apparatus, cache node, and cache system | |
CN104933054A (zh) | 缓存资源文件的url存储方法及装置、缓存服务器 | |
CN116594562A (zh) | 一种数据处理方法及装置、设备、存储介质 | |
CN114153760B (zh) | 基于权重的健值存储缓存淘汰方法、系统及存储介质 | |
CN107861819B (zh) | 一种缓存组负载均衡的方法、装置和计算机可读存储介质 | |
EP3274844A1 (en) | Hierarchical cost based caching for online media | |
CN103442000B (zh) | Web缓存置换方法及装置、http代理服务器 | |
EP3207457B1 (en) | Hierarchical caching for online media | |
CN113688107A (zh) | 分布式文件系统元数据缓存方法、装置、终端及存储介质 | |
CN112269947A (zh) | 空间文本数据的缓存方法、装置、电子设备及存储介质 |
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 |