当前位置: 首页 > 专利查询>内蒙古大学专利>正文

基于子组的自适应高速缓冲存储器块替换策略制造技术

技术编号:6799892 阅读:499 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种应用于通用微处理器基于子组的自适应高速缓冲存储器块替换策略,包括以下步骤:步骤100,判定访存是否命中;步骤110,访存命中,根据更新策略更新子组堆栈;步骤120,访存命中假,定位活跃子组,根据替换策略选择换出块;步骤130,根据插入策略插入缓存块并更新堆栈位;步骤140,根据阈值选择机制确定当前阈值;步骤150,判定是否变更活跃子组;步骤160,变更为真将相邻组标记为活跃子组。本发明专利技术以采样的方式动态控制各子组保留的访问记录,适应不同应用程序的需求及多核平台环境,进而提升缓冲存储器性能。

【技术实现步骤摘要】

本专利涉及一种应用于通用微处理器基于子组的自适应高速缓冲存储器块替换策略,尤其涉及最后一级缓冲存储器块替换策略。
技术介绍
缓冲存储器块替换策略在缓存设计中起着至关重要的作用。最近最少使用替换策略(LRU)在过去的十几年中广泛应用于微处理器缓存设计。近些年,一些基于最近最少使用替换策略的优化方法及全新的设计方法层出不穷。缓存替换策略的主要目标是选择保留尽可能多的将来会再次访问的缓存块。传统的最近最少使用策略根据访问局部性原则假定新换入缓存块很可能不久就会再次被访问到,故将其直接放置在最经常访问的位置,保证它在缓存中停留更长的时间。该策略在应用程序的访问工作集小于可用缓存空间,或者访问具有很高的空间局部性时性能非常出众。但是,当应用程序的工作集大于可用缓存空间时(如访存密集型应用),采用LRU 策略大多数缓存块会从缓存的最经常访问位置逐渐替换到最少访问位置,最终被丢弃(换出),未带来新的命中却占用了缓存空间。同时一些经常使用到的缓存块会被很少使用的块或其它常使用块替换出缓存,即出现缓存抖动问题。面对这种状况,已有研究表明可以通过保留大工作集中的少部分缓存块来提高缓存性能,这部分缓存块会在将来带来一些缓存命中。基于子组的缓存替换策略就是该思想的一种全新的尝试。
技术实现思路
一种应用于通用微处理器基于子组的自适应高速缓冲存储器块替换策略,其特征在于,包括以下步骤步骤100,判定访存是否命中;步骤110,访存命中真,根据更新策略更新子组堆栈;步骤120,访存命中假,定位活跃子组,根据替换策略选择换出块;步骤130,根据插入策略插入缓存块并更新堆栈位;步骤140,根据阈值选择机制确定当前阈值;步骤150,判定是否变更活跃子组;步骤160,变更为真,将相邻组标记为活跃子组。策略中缓存结构为将每个缓存组平均划分为N个子组,每个子组内独立维护一个完整堆栈结构。步骤110中,更新策略为将命中块移动到子组中最常访问堆栈位。步骤120中,所述的定位活跃子组指,根据当前缓存块活跃子组指针,定位当前块活跃子组;步骤120中所述替换策略指,找到最近最少访问堆栈位所对应的缓存块。步骤120中,所述活跃子组,指每个缓存组N个子组中只有一个为活跃子组,用于选择换出块和接收新插入块,其它子组为非活跃组。所述活跃子组指针,指在缓存结构中每个缓存组设置一个活跃子组寄存器,用于记录当前组活跃子组位置。步骤130中,所述插入策略指,用插入块替换步骤120中选择的换出块,并将其更新到子组中最近最少访问堆栈位。步骤140中,所述阈值选择机制指,在缓存结构中,为每个缓存组设定一个计数器,记录当前组缓存失效数,当失效数大于当前给定阈值,该缓存组中活跃子组轮转到相邻子组并将本组缓存失效计数清零。所述阈值选择机制,指选定η个给定阈值,从所有缓存组中选出n*m个采样组,每m个采样组设定一个给定阈值。并设定η个采样组缓存失效计数器,用于记录采样组中使用相同阈值的缓存组失效次数。当需要阈值选择机制选定当前合适阈值时,如该缓存块为采样组,直接给出对应阈值,如为非采样组,比较η个采样组缓存失效计数器,给出失效数最小的的采样组对应的给定阈值。步骤140中,所述η个计数器为饱和计数器,当任何一个溢出时同时清零。步骤150中,用该缓存组缓存失效计数与步骤140给出的当前阈值比较,当前者大于后者,变更活跃子组。否则什么也不做。步骤160中,所述将相邻组标记为活跃子组,指将活跃子组指针指向原活跃子组的相邻子组,并将该缓存组失效计数清零。缓存替换策略在缓缓冲存储器设计中起着至关重要的作用。最近最少使用替换策略(LRU)在过去的十几年中广泛应用于微处理器缓存设计。但是,伴随着应用需求的日益增加和多核平台已成为微处理设计主流的趋势,传统LRU策略在改善缓存性能上略显不足。本专利采用子组划分技术,通过将原有缓冲存储器块划分为多个子组,一定时间内只有一个子组为活跃组其它子组为非活跃组。当缓存失效发生时换出块仅从活跃组中选取。同时,每个缓存组都将设置一个计数器统计缓存失效数,当计数大于给定阈值,活跃子组将切换到相邻子组。为了适应程序行为的变化,方法采取了组竞争策略动态从阈值池中选择造成缓存失效最小的阈值。本专利以采样的方式动态控制各子组保留的访问记录,适应不同应用程序的需求及多核平台环境,进而提升缓冲存储器性能。附图说明图1缓存结构;图2采样组分配;图3阈值选择机制;图4本专利技术的具体实施方法流程图。具体实施例方式以下结合附图和优选实施例对本专利技术的技术方案进行详细地阐述。以下的实施例仅用于说明和解释本专利技术,而不构成对本专利技术技术方案的限制。以下实验都使用了支持乱序执行基于pin工具的系统结构模拟器CMP$im。系统的基准配置详见表1。表1基准系统配置权利要求1.一种应用于通用微处理器基于子组的自适应高速缓冲存储器块替换策略,其特征在于,包括以下步骤步骤100,判定访存是否命中;步骤110,访存命中真,根据更新策略更新子组堆栈;步骤120,访存命中假,定位活跃子组,根据替换策略选择换出块;步骤130,根据插入策略插入缓存块并更新堆栈位;步骤140,根据阈值选择机制确定当前阈值;步骤150,判定是否变更活跃子组;步骤160,变更为真,将相邻组标记为活跃子组。2.根据权利要求1所述的替换策略,其特征在于,策略中缓存结构为将每个缓存组平均划分为N个子组,每个子组内独立维护一个完整堆栈结构。3.根据权利要求1所述的,其特征在于,步骤110中,更新策略为将命中块移动到子组中最常访问堆栈位。4.根据权利要求1所述的替换策略,其特征在于,步骤120中,所述的定位活跃子组指, 根据当前缓存块活跃子组指针,定位当前块活跃子组;步骤120中所述替换策略指,找到最近最少访问堆栈位所对应的缓存块。5.根据权利要求4所述的替换策略,其特征在于,所述活跃子组,指每个缓存组N个子组中只有一个为活跃子组,用于选择换出块和接收新插入块,其它子组为非活跃组。所述活跃子组指针,指在缓存结构中每个缓存组设置一个寄存器,用于记录当前组活跃子组位置。6.根据权利要求1所述的替换策略,其特征在于,步骤130中,所述插入策略指,用插入块替换步骤120中选择的换出块,并将其更新到子组中最近最少访问堆栈位。7.根据权利要求1所述的替换策略,其特征在于,步骤140中,所述阈值选择机制指,在缓存结构中,为每个缓存组设定一个计数器,记录当前组缓存失效数,当失效数大于当前给定阈值,该缓存组中活跃子组轮转到相邻子组并将本组缓存失效计数清零。所述阈值选择机制,指选定η个给定阈值,并从所有缓存组中选出n*m个采样组,每m个采样组设定一个给定阈值。并设定η个计数器,用于记录采样组中使用相同阈值的缓存组失效次数。当需要阈值选择机制选定当前合适阈值时,如该缓存块为采样组,直接给出对应阈值,如为非采样组,比较η个计数器,给出失效数最小的的采样组对应的给定阈值。8.根据权利要求7所述的替换策略,其特征在于,所述η个计数器为饱和计数器,当任何一个溢出时同时清零。9.根据权利要求1所述的替换策略,其特征在于,步骤150中,用该缓存组缓存失效计数与步骤140给出的当前阈值比较,当前者大于后者,变更活跃子组,否则什么也不做。10.根据权利要求1所述的替换策略,其本文档来自技高网...

【技术保护点】
1.一种应用于通用微处理器基于子组的自适应高速缓冲存储器块替换策略,其特征在于,包括以下步骤:步骤100,判定访存是否命中;步骤110,访存命中真,根据更新策略更新子组堆栈;步骤120,访存命中假,定位活跃子组,根据替换策略选择换出块;步骤130,根据插入策略插入缓存块并更新堆栈位;步骤140,根据阈值选择机制确定当前阈值;步骤150,判定是否变更活跃子组;步骤160,变更为真,将相邻组标记为活跃子组。

【技术特征摘要】

【专利技术属性】
技术研发人员:何立强孙岩张朝中
申请(专利权)人:内蒙古大学
类型:发明
国别省市:15

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

1