当前位置: 首页 > 专利查询>浙江大学专利>正文

缓存分区方法技术

技术编号:7124283 阅读:357 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种缓存分区方法,包括如下步骤:分区:在逻辑上将最后一级缓存分成大小相同的两个区域,分别为分区一和分区二;新增缓存数据块信息位:增加被访问次数位,用2个比特位来表示缓存数据块被访问次数;新增历史访问记录表:新增一个历史访问记录表,记录被访问过的缓存数据块,每条记录就是缓存数据块的信息标记位和有效位。发明专利技术将最后一级缓存分区来提高最后一级缓存的使用效率。针对大容量缓存,通过将访问次数较多的缓存数据块保存在缓存中,而将访问次数较少的缓存数据块移到主存,从而提高缓存访问命中率,提高系统性能。

【技术实现步骤摘要】

本专利技术属于存储
,涉及大容量缓存及多核架构下的。
技术介绍
目前大多数计算机系统的性能在很大程度上是受内存平均访问延迟来决定的,提高缓存的命中率就能减少内存的访问次数,也就能提高系统性能。当前的处理器都使用缓存机制,缓存的作用主要是缓解调整处理器与低速主存之间速度及性能上的不匹配。缓存实行分级机制,目前的处理器大多采用三级缓存(L1,L2,L3),其最后一级缓存(U)靠近主存。随着最后一级缓存的容量不断增加,相应的管理策略也要不断改进,以提高缓存的利用率,减少主存的访问次数。缓存的管理策略包括插入算法和替换算法。插入算法是从主存中读入到缓存的一个缓存数据块应该放置到缓存的什么位置上。而替换算法是由于缓存空间容量有限,当有新的缓存块要进来时,需要将缓存中的一个缓存数据块从缓存移到主存中,以便腾出空间给新的缓存数据块。目前大多数处理器使用的缓存管理策略是最近最少使用算法(LRU)。 LRU是将一组缓存看成是一个链表,当有新的缓存数据块要插入的缓存中时,将表尾的缓存数据块移到主存中,表中其他缓存数据块相应地往后移一个位置,将新的缓存数据块放在表头。在缓存访问过程中,如果一个缓存数据块被命中了,那么LRU算法就会将这个缓存数据块移到表头位置。LRU算法对于管理小容量的缓存是很有效的,但是对于管理容量较大的缓存,却显得有些低效,目前的最后一级缓存容量比较大,如何管理这个大容量缓存,是很多科研工作者都在思考的一个问题。故,实有必要进行研究,提供一种方法以解决目前存在的问题。
技术实现思路
本专利技术实施例的目的在于提供一种,提高缓存访问命中率,提高系统性能。本专利技术实施例是这样实现的,一种,包括如下步骤分区在逻辑上将最后一级缓存分成大小相同的两个区域,分别为分区一和分区 --;新增缓存数据块信息位增加被访问次数位,用2个比特位来表示缓存数据块被访问次数;新增历史访问记录表新增一个历史访问记录表,记录被访问过的缓存数据块,每条记录就是缓存数据块的信息标记位和有效位。进一步地,所述分区一和分区二的缓存配置相同,分区一存放的是没有被访问过的缓存数据块;而分区二存放的是之前被访问过,但是被移到主存中的缓存数据块。进一步地,所述新增缓存数据块信息位系增加被访问次数位,用2个比特位来表7J\ ο3进一步地,每一个缓存数据块都有一些信息位,主要包括标记位、有效位、LRU位、 读写位以及被访问次数位。进一步地,所述历史访问记录表存储的是被替换出去的缓存数据块的访问记录, 每条记录就是缓存数据块的信息标记位和有效位。进一步地,所述历史访问记录表中可记录的数据块条数与分区可容纳的缓存数据块数一样。进一步地,所述历史访问记录表是用来存储之前被替换到主存的缓存数据块的标记位,当一个缓存数据块要被移到主存中时,它的标记位就会存放到这个表中。进一步地,当一个缓存数据块从主存被读入到缓存中时,需要进行查表操作,如果这个缓存数据块的标记位在记录表中,则将它存储到分区二中并将其在记录表中的记录的有效位设置成0,否则将其存储到分区一中。进一步地,所述记录表采用的是先进先出的替换方法,当一个缓存数据块的标记位要存入到表中时,先查找表中是否有有效位为0的记录,如果有,则将这些标记位存入到这个有效位为0的记录中,并将有效位设置成1,否则,将表中最后一条记录的标记位设置成需要存储的标记位本专利技术将最后一级缓存分区来提高最后一级缓存的使用效率。针对大容量缓存, 通过将访问次数较多的缓存数据块保存在缓存中,而将访问次数较少的缓存数据块移到主存,从而提高缓存访问命中率,提高系统性能。附图说明图1是本专利技术的流程图示。 具体实施例方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。本专利技术是将大容量缓存分成大小相同的两个区,其是一种基于最近最少使用策略的缓存管理策略。两个分区分别存放不同性质的数据块,将访问较少的数据块移出缓存,将更多的空间留给访问次数较多的数据块,从而以提高缓存的使用效率。其通过一张历史访问记录表来记录被访问过的缓存数据块。当需要从主存中读取缓存数据块到缓存中时,需要查找这个历史访问记录表。如果这个缓存数据块的标记位信息在这个表中找到,那么就将这个缓存数据块放置到分区二中,否则将它放置到分区一中。请参照图1所示,本专利技术包括如下步骤分区在逻辑上将最后一级缓存分成大小相同的两个区域,分别为分区一和分区 --;新增缓存数据块信息位增加被访问次数位,用2个比特位来表示缓存数据块被访问次数;新增历史访问记录表新增一个历史访问记录表,记录被访问过的缓存数据块,每条记录就是缓存数据块的信息标记位和有效位。其中,所述分区一和分区二的缓存配置相同,其在组相关联度和访问延迟方面均是一样的,都是利用最近最少使用(LRU)管理策略;分区一存放的是没有被访问过的缓存数据块;而分区二存放的是之前被访问过,但是被移到主存中的缓存数据块。分成两个容量较小的分区的优点是小容量缓存的访问延迟较小,这是因为缓存访问延迟与它的容量大小成正比,即容量大,访问延迟就高,容量小,访问延迟就小。分区一存放的是没有被访问过的缓存数据块,这些数据块被认为是被访问比较少的。分区二存放的是之前被访问过,但是被移到主存中的缓存数据块,这些数据块被认为是被访问次数较多。这样将被访问次数多和被访问次数少的数据块分开来存放,减小缓存的访问延迟。所述新增缓存数据块信息位系增加被访问次数位,用2个比特位来表示。每一个缓存数据块都有一些信息位,主要包括,标记位,有效位,LRU位,读写位。当前的缓存数据块都有信息位,根据不同的缓存替换算法,需要不同的信息位。例如,一个16路组相联的缓存,采用最近最少使用替换算法(LRU),那么每一个缓存数据块就需要4个比特位来存储 LRU信息。本创作在原有的基础上增加被访问次数位,用2个比特位来表示,以记录缓存数据块被访问的次数,简称为UC。当一个新的缓存数据块从主存被读入到缓存(分区1或分区2)中时,其UC值设置为0,其他的信息位的设置还是按照原始的方法。在缓存访问过程中,如果一个缓存数据块被命中了并且它的UC值小于3,那么,它的UC值就加1。这是因为UC值是用2个比特位表示,它的取值范围是0 3。由于缓存容量有限,需要进行缓存数据块替换操作时,以假设当前新缓存数据块将要存放到分区一中为例,LRU策略首先选择分区一中LRU值最大的那个缓存数据块。该缓存数据块简称为victim。然后,分析victim的UC值。如果这个UC值小于2,那么就将 victim的标记位存储到历史访问记录表中,并将它移到主存中。否则,将它的UC位设置为 0,并移到分区二中,此时需要将分区二中LRU值最大的缓存数据块替换出去,这个缓存数据块简称为victim。同样,需要检查victim的UC值,如果小于2,则直接移到主存,并将标记位存储到历史访问记录表中,否则就将它的UC位清零并移到分区一中。如此反复,直至找到一个缓存数据块,它的LRU值最大且UC值小于2,那么就将这个缓存数据块移到主存并将它的标记位存储到历史访问记录表中。所述新增历史访问记录表系新增一个历史访问记录表,记录被访问过本文档来自技高网...

【技术保护点】
1.一种缓存分区方法,其特征在于,包括如下步骤:分区:在逻辑上将最后一级缓存分成大小相同的两个区域,分别为分区一和分区二;新增缓存数据块信息位:增加被访问次数位,用2个比特位来表示缓存数据块被访问次数;新增历史访问记录表:新增一个历史访问记录表,记录被访问过的缓存数据块,每条记录就是缓存数据块的信息标记位和有效位。

【技术特征摘要】

【专利技术属性】
技术研发人员:陈天洲虞保忠马建良胡一帆叶敏娇
申请(专利权)人:浙江大学
类型:发明
国别省市:86

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

1