一种末级缓存管理方法及系统技术方案

技术编号:16605476 阅读:23 留言:0更新日期:2017-11-22 15:15
本申请公开了一种末级缓存管理方法,应用于基于组相连映射的Cache,包括:当接收到CPU发送的访问请求时,根据访问请求的地址,判断是否被命中;若未被命中,则将地址对应的缓存组中优先级位置最低的缓存行进行替换,并将缓存行的tag数据插入到预先在缓存组中添加的布隆过滤器中;判断地址的tag数据是否存在于布隆过滤器当中;若地址的tag数据存在于布隆过滤器中,则将访问请求对应的数据插入到缓存组的最高优先级的位置中。本申请通过在Cache中的缓存组中添加布隆过滤器,为数据的插入位置提供了可靠的理论依据,有效提升了缓存的空间利用率。另外,本申请还公开了一种末级缓存管理系统。

Last stage cache management method and system

The invention discloses a level cache management method, based on group connected mapping of the Cache, including: when receiving CPU sent the request to visit, according to the access request address, to determine whether it is hit; if not hit, it will replace the priority location cache group address corresponding to the minimum in the cache line, and the tag data cache line is inserted into the pre bloom filter added in the cache group in tag; judge the address of data exists in the bloom filter; if tag data address exists in the bloom filter, the access request to the corresponding data into the highest priority cache group location. This application by adding bloom filter cache group in Cache, provides a reliable theoretical basis for the insertion of position data, effectively increasing the cache space utilization. In addition, a cache management system for the last stage is also disclosed.

【技术实现步骤摘要】
一种末级缓存管理方法及系统
本专利技术涉及缓存管理领域,特别涉及一种末级缓存管理方法及系统。
技术介绍
随着科学技术的进步,微处理器与存储器之间的性能差距越来越大。为了减缓处理器与存储器之间的性能差距,片上缓存被广泛使用。然而怎样利用缓存中的末级缓存(LastLevelCache,LLC)对系统的性能起着至关重要的作用。然而,这些缓存在使用传统的缓存管理策略时,空间资源的利用率会很低,其主要原因是因为缓存中的缓存污染(CachePollution)和缓存抖动(CacheThrashing)问题。目前已经有相关研究表明,改变数据块的插入位置可以提高末级缓存的性能,例如通过修改最近未被使用(LeastRecentlyUsed,LRU)的插入策略来减轻缓存污染或者是缓存抖动的问题,但是在使用双向插入策略(BimodalInsertionPolicy,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:若未被命中,则将地址对应的缓存本文档来自技高网...
一种末级缓存管理方法及系统

【技术保护点】
一种末级缓存管理方法,其特征在于,应用于基于组相连映射的Cache,包括:当接收到CPU发送的访问请求时,根据所述访问请求的地址,判断是否被命中;若未被命中,则将所述地址对应的缓存组中优先级位置最低的缓存行进行替换,并将所述缓存行的tag数据插入到预先在所述缓存组中添加的布隆过滤器中;判断所述地址的tag数据是否存在于所述布隆过滤器当中;若所述地址的tag数据存在于所述布隆过滤器中,则将所述访问请求对应的数据插入到所述缓存组的最高优先级的位置中。

【技术特征摘要】
1.一种末级缓存管理方法,其特征在于,应用于基于组相连映射的Cache,包括:当接收到CPU发送的访问请求时,根据所述访问请求的地址,判断是否被命中;若未被命中,则将所述地址对应的缓存组中优先级位置最低的缓存行进行替换,并将所述缓存行的tag数据插入到预先在所述缓存组中添加的布隆过滤器中;判断所述地址的tag数据是否存在于所述布隆过滤器当中;若所述地址的tag数据存在于所述布隆过滤器中,则将所述访问请求对应的数据插入到所述缓存组的最高优先级的位置中。2.根据权利要求1所述的方法,其特征在于,还包括:若所述地址的tag数据不存在于所述布隆过滤器中,则将所述访问请求对应的数据插入到所述缓存组的任意位置中。3.根据权利要求1所述的方法,其特征在于,所述将所述地址对应的缓存组中优先级位置最低的缓存行进行替换的过程之后,还包括:判断预先在所述缓存组中添加的饱和计数器的当前计数值是否等于所述布隆过滤器的数据容量大小;若所述饱和计数器的当前计数值等于所述数据容量大小,则对所述布隆过滤器和所述饱和计数器进行复位操作;若所述饱和计数器的当前计数值小于所述布隆过滤器的数据容量大小,则对所述饱和计数器的当前计数值进行加1。4.根据权利要求3所述的方法,其特征在于,还包括:预先将所述布隆过滤器的数据容量大小设置为4W,并且,将所述布隆过滤器的位数组大小设置为6W;其中,W为所述缓存组的路数。5.根据权利要求1至4任一项所述的方法,其特征在于,还包括:预先在所述Cache的每个缓存组中均添加一个所述布隆过滤器和/或所述饱和计数器。6.一种末级缓存管理系统,其特征在于,应用于基于组相连映射的Cache,包括:命中判断模块,用于当接收到...

【专利技术属性】
技术研发人员:张德闪
申请(专利权)人:郑州云海信息技术有限公司
类型:发明
国别省市:河南,41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1