一种高速缓存管理策略的调整方法及系统技术方案

技术编号:4021530 阅读:191 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种高速缓存管理策略的调整方法及系统,该方法包括将高速缓存划分为工作子系统和测试子系统;将测试子系统划分为多个采用不同的高速缓存管理策略的测试组;获取多个测试组的访问失效率信息;按照预先设置的访问失效率判断顺序,判断每个测试组的访问失效率信息是否在预先设置的每个测试组的访问失效率上下限值信息之间;在判断有测试组的访问失效率信息在该测试组的访问失效率上下限值信息之间时,将该访问失效率信息在该测试组的访问失效率上下限值信息之间的测试组所采用的策略作为工作子系统的目标高速缓存管理策略;根据本地预先设置的调整策略和目标高速缓存管理策略,调整工作子系统所采用的高速缓存管理策略。

【技术实现步骤摘要】

本专利技术涉及计算机处理器高速缓存领域,特别是涉及一种高速缓存管理策略的调整方法及系统
技术介绍
高速缓冲存储器(Cache,也称为高速缓存)是计算机处理器的重要组成部分之 一,是存储速度介于寄存器和内存之间的一种存储器。利用程序执行的局部性原理,尽可能 地把将要访问的数据存储到高速缓存,当处理器需要数据时可以以很小的时间延迟把数据 提交给处理器,从而达到减少访存时延,提高处理器性能的目的。由于高速缓存容量较小,需要对高速缓存进行有效的管理,尽可能将处理器需要 的数据放入到高速缓存中,从而减少系统访存失效几率,降低访存代价,提高系统的整体性 能。目前,高速缓存采用的替换管理方法主要包括随机替换方法(random)、先入先出 替换方法(FIFO)及最近最少使用替换方法(LRU)等。其中,LRU替换方法被普遍认为综合 性能较高,因此得到了工业界的广泛采用,大量应用在通用处理器高速缓存设计中。LRU替换方法中的最近最多使用(MRU)替换策略,是将新插入的缓存行放入最近 最多使用位置的方法,在面对工作集较小、局部性较好的应用时性能较好,可以带来较少的 访存失效。但是,随着网络和多媒体等容易产生大量顺序性访问、工作集较大、局部性较差的 应用程序被广泛使用,采用传统的LRU替换方法管理高速缓存已经不能满足这些应用程序 的高性能需求,往往会带来较大的失效损失和访存代价。针对LRU替换方法插入策略的缺点和不足,先后出现了一系列的优化方法和改 进方案,包括最少插入策略(Least Insertion Policy, LIP)、双峰插入策略(Bimodal Insertion Policy, BIP)和动态插入策略(Dynamic Insertion Policy, DIP)策略。在这 些优化方案中,DIP策略由于具有在LIP和DIP这两种策略间之间根据访存行为动态切换 的功能,因而具有较高的性能和较好的应用前景。但是,由于程序运行具有局部性特点,当前程序运行行为与已经过去较长一段时 间的运行状态之间的联系较少,DIP策略的动态决策如果不根据当前应用运行变化而作相 应调整,将可能会做出不符合当前应用运行行为的错误决策,从而带来较大的失效损失和 性能开销。此外,即使对DIP策略进行调整,也应当根据程序运行的行为进行动态调整。采用灵活性较差的静态调整方式,尽管实现较为简单,但是并没有从根本上改变 DIP决策方式与当前应用实际运行行为联系较少的问题,从而无法满足各种复杂情况的性 能要求,尤其在面对多线程多处理器共享缓存结构时,性能往往较差。
技术实现思路
本专利技术所要解决的技术问题是需要提供一种高速缓存管理策略的调整方法及系统,解决现有技术中高速缓存动态插入策略决策方式与应用访存行为实际需要出现偏差导 致的系统性能降低的问题。为了解决上述技术问题,本专利技术提供如下技术方案 一种高速缓存管理策略的调整系统,所述系统包括工作子系统、测试子系统和调 整子系统,所述工作子系统和所述测试子系统所包含的高速缓存构成全部的高速缓存,其 中所述工作子系统采用一种高速缓存管理策略管理所述工作子系统中的高速缓 存;所述测试子系统包括多个测试组,每个测试组分别采用不同的高速缓存管理策略 管理本测试组内的高速缓存;所述调整子系统根据所述测试子系统的测试结果,调整所述工作子系统所采用的 高速缓存管理策略,包括获取模块、判断模块、确定模块和调整模块,其中所述获取模块,用于获取每个测试组的访问失效率信息;所述判断模块,与所述获取模块相连,用于按照预先设置的访问失效率判断顺序, 判断每个测试组的访问失效率信息是否在该测试组的访问失效率上下限值信息之间;所述选择模块,与所述判断模块相连,用于选择一个访问失效率信息在该测试组 的访问失效率上下限值信息之间的测试组所采用的策略作为所述工作子系统的目标高速缓存管理策略;所述调整模块,与所述确定模块相连,用于根据本地预先设置的调整策略和所述 目标高速缓存管理策略,调整所述工作子系统所采用的高速缓存管理策略。进一步的,所述测试子系统包括响应当前进程的缓存行。进一步的,所述测试子系统中每个测试组所包含的缓存行数量相等。进一步的,所述调整子系统获取的访问失效率信息是一个或多个单位时间片的访 问失效率信息。进一步的,所述调整子系统所采用各个测试组的访问失效率上下限值信息是根据 该测试组当前单位时间片之前一个或多个单位时间片的访问失效率确定的。进一步的,所述调整模块包括记录单元、判断单元和调整单元,其中所述记录单元,用于记录所述选择模块连续选择同一目标高速缓存管理策略的次 数;所述判断单元,与所述记录单元相连,用于判断所述记录单元的次数是否达到预 先设置的阈值;所述调整单元,与所述判断单元相连,用于在判断单元判断达到所述阈值时,将所 述工作子系统所采用的高速缓存管理策略调整为所述目标高速缓存管理策略。一种高速缓存管理策略的调整方法,包括将高速缓存划分为工作子系统和测试子系统;将所述测试子系统划分为多个采用不同的高速缓存管理策略的测试组;获取所述多个测试组的访问失效率信息;按照预先设置的访问失效率判断顺序,判断每个测试组的访问失效率信息是否在 预先设置的每个测试组的访问失效率上下限值信息之间;在判断有测试组的访问失效率信息在该测试组的访问失效率上下限值信息之间 时,将该访问失效率信息在该测试组的访问失效率上下限值信息之间的测试组所采用的策 略作为所述工作子系统的目标高速缓存管理策略;根据本地预先设置的调整策略和所述目标高速缓存管理策略,调整所述工作子系 统所采用的高速缓存管理策略。进一步的,所述将高速缓存划分为工作子系统和测试子系统,包括获取所述高速缓存当前响应的进程状态;根据所述系统当前响应的状态,将包括响应当前进程的缓存行作为测试子系统, 剩余的缓存行作为工作子系统。进一步的,所述将所述测试子系统划分为多个采用不同的高速缓存管理策略的测 试组,包括 将所述测试子系统划分成多个包含相同数量缓存行的测试组,其中每个测试组采 用不同的高速缓存管理策略管理管理高速缓存。进一步的,所述获取所述多个测试组的访问失效率信息,包括按照一个或多个单位时间片对所述测试子系统中的高速缓存进行采样,得到每个 测试组一个或多个单位时间片的访问失效率信息。进一步的,所述每个测试组的访问失效率上下限值信息是根据该测试组当前单位 时间片之前一个或多个单位时间片的访问失效率确定的。进一步的,所述根据本地预先设置的调整策略和所述目标高速缓存管理策略,调 整所述工作子系统所采用的高速缓存管理策略,包括记录所述选择模块连续选择同一目标高速缓存管理策略的次数;判断所述记录的次数是否达到预先设置的阈值;如果判断达到所述阈值,将所述工作子系统所采用的高速缓存管理策略调整为所 述目标高速缓存管理策略;否则,不调整所述工作子系统所采用的高速缓存管理策略。本专利技术提供的技术方案,通过采用不同高速缓存管理策略的测试组输出的测试结 果来调整工作子系统内采用的高速缓存管理策略,保证工作子系统内采用的策略与应用访 存行为实际需要一致,降低访存失效的代价,提高了系统性能。附图说明图1为本专利技术提供一种高速缓存管理策略的调整方法实施例的流程示意图;图2为本专利技术提供的一种高速缓存管理策略本文档来自技高网
...

【技术保护点】
一种高速缓存管理策略的调整系统,其特征在于,所述系统包括工作子系统、测试子系统和调整子系统,所述工作子系统和所述测试子系统所包含的高速缓存构成全部的高速缓存,其中:所述工作子系统采用一种高速缓存管理策略管理所述工作子系统中的高速缓存;所述测试子系统包括多个测试组,每个测试组分别采用不同的高速缓存管理策略管理本测试组内的高速缓存;所述调整子系统根据所述测试子系统的测试结果,调整所述工作子系统所采用的高速缓存管理策略,包括获取模块、判断模块、确定模块和调整模块,其中:所述获取模块,用于获取每个测试组的访问失效率信息;所述判断模块,与所述获取模块相连,用于按照预先设置的访问失效率判断顺序,判断每个测试组的访问失效率信息是否在该测试组的访问失效率上下限值信息之间;所述选择模块,与所述判断模块相连,用于选择一个访问失效率信息在该测试组的访问失效率上下限值信息之间的测试组所采用的策略作为所述工作子系统的目标高速缓存管理策略;所述调整模块,与所述确定模块相连,用于根据本地预先设置的调整策略和所述目标高速缓存管理策略,调整所述工作子系统所采用的高速缓存管理策略。

【技术特征摘要】

【专利技术属性】
技术研发人员:程旭黄涛管雪涛
申请(专利权)人:北京北大众志微系统科技有限责任公司
类型:发明
国别省市:11[中国|北京]

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

1