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

技术编号:4021528 阅读:166 留言: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策略由于具有在两种策略间之间根据访存行为动态切换的功能,因而具 有较高的性能和较好的应用前景。但是,由于程序运行具有局部性特点,当前程序运行行为与已经过去较长一段时 间的运行状态之间的联系较少,DIP策略的动态决策如果不根据当前应用运行变化而作相 应调整,将可能会做出不符合当前应用运行行为的错误决策,从而带来较大的失效损失和 性能开销。此外,即使对DIP策略进行调整,也应当根据程序运行的行为进行动态调整。采用灵活性较差的静态调整方式,尽管实现较为简单,但是并没有从根本上改变 DIP决策方式与当前应用实际运行行为联系较少的问题,从而无法满足各种复杂情况的性 能要求,尤其在面对多线程多处理器共享缓存结构时,性能往往较差。
技术实现思路
本专利技术所要解决的技术问题是需要提供一种高速缓存管理策略的调整方法及系统,解决现有技术中高速缓存动态插入策略决策方式与应用访存行为实际需要出现偏差导 致的系统性能降低的问题。为了解决上述技术问题,本专利技术提供如下技术方案一种高速缓存管理策略的调整系统,所述系统包括工作子系统、测试子系统和调 整子系统,所述工作子系统和所述测试子系统构成全部的高速缓存,其中所述工作子系统采用一种高速缓存管理策略管理所述工作子系统中的高速缓 存;所述测试子系统包括多个测试组,每个测试组分别采用不同的高速缓存管理策略 管理本测试组内的高速缓存;所述调整子系统记录所述多个测试组管理高速的访存信息,并根据所述多个测试 组的访存信息,对所述工作子系统采用的高速缓存管理策略进行调整。进一步的,所述测试子系统包括响应当前进程的缓存行。进一步的,所述测试子系统中每个测试组所包含的缓存行数量相等。进一步的,所述调整子系统包括获取模块、选择模块和调整模块,其中所述获取模块,用于获取每个测试组的访问失效数信息;所述选择模块,与所述获取模块相连,用于根据所述多个测试组的访问失效数信 息,选择该多个测试组中一个测试组所采用的高速缓存管理策略作为所述工作子系统的目 标高速缓存管理策略;所述调整模块,与所述选择模块相连,用于根据本地预先设置的调整策略和所述 目标高速缓存管理策略,调整所述工作子系统所采用的高速缓存管理策略。进一步的,所述获取模块获取的访问失效数信息是一个或多个单位时间片的访问 失效数信息。进一步的,所述调整模块包括记录单元、判断单元和调整单元,其中所述记录单元,用于记录所述选择模块连续选择同一目标高速缓存管理策略的次 数;所述判断单元,与所述记录单元相连,用于判断所述记录单元的次数是否达到预 先设置的阈值;所述调整单元,与所述判断单元相连,用于在判断单元判断达到所述阈值时,将所 述工作子系统所采用的高速缓存管理策略调整为所述目标高速缓存管理策略。—种高速缓存管理策略的调整方法,包括将高速缓存划分为工作子系统和测试子系统;将所述测试子系统划分为多个采用不同的高速缓存管理策略的测试组;获取所述多个测试组管理高速的访存信息;根据所述多个测试组的访存信息,对所述工作子系统采用的高速缓存管理策略进 行调整。进一步的,所述将高速缓存划分为工作子系统和测试子系统,包括获取所述高速缓存当前响应的进程状态;根据所述系统当前响应的状态,将包括响应当前进程的缓存行作为测试子系统, 剩余的缓存行作为工作子系统。进一步的,所述将所述测试子系统划分为多个采用不同的高速缓存管理策略的测 试组,包括将所述测试子系统划分成多个包含相同数量缓存行的测试组,其中每个测试组采 用不同的高速缓存管理策略管理管理高速缓存。进一步的,所述根据所述多个测试组的访存信息,对所述工作子系统采用的高速 缓存管理策略进行调整,包括获取每个测试组的访问失效数信息;根据所述多个测试组的访问失效数信息,选择该多个测试组中一个测试组所采用 的高速缓存管理策略作为所述工作子系统的目标高速缓存管理策略;根据本地预先设置的调整策略和所述目标高速缓存管理策略,调整所述工作子系 统所采用的高速缓存管理策略。 进一步的,所述访问失效数信息是一个或多个单位时间片的访问失效数信息。进一步的,所述根据本地预先设置的调整策略和所述目标高速缓存管理策略,调 整所述工作子系统所采用的高速缓存管理策略,包括记录所述选择模块连续选择同一目标高速缓存管理策略的次数;判断所述记录的次数是否达到预先设置的阈值;如果判断达到所述阈值,将所述工作子系统所采用的高速缓存管理策略调整为所 述目标高速缓存管理策略;否则,不调整所述工作子系统所采用的高速缓存管理策略。本专利技术提供的技术方案,通过采用不同高速缓存管理策略的测试组输出的测试结 果来调整工作子系统内采用的高速缓存管理策略,保证工作子系统内采用的策略与应用访 存行为实际需要一致,降低访存失效的代价,提高了系统性能。附图说明图1为本专利技术提供一种高速缓存管理策略的调整方法实施例的流程示意图;图2为为本专利技术提供的一种高速缓存管理策略的调整方法应用实例的流程示意 图;图3为本专利技术提供一种高速缓存管理策略的调整系统实施例的结构示意图;图4为图3所示实施例中调整子系统303的结构示意图;图5为图4所示实施例中调整模块403的结构示意图。具体实施例方式为使本专利技术的目的、技术方案和优点更加清楚,以下结合附图对本专利技术作进一步 地详细说明。图1为本专利技术提供的一种高速缓存管理策略的调整方法实施例的流程示意图。图 1所示方法实施例包括步骤S101、将高速缓存划分为工作子系统和测试子系统;步本文档来自技高网
...

【技术保护点】
一种高速缓存管理策略的调整系统,其特征在于,所述系统包括工作子系统、测试子系统和调整子系统,所述工作子系统和所述测试子系统构成全部的高速缓存,其中:所述工作子系统采用一种高速缓存管理策略管理所述工作子系统中的高速缓存;所述测试子系统包括多个测试组,每个测试组分别采用不同的高速缓存管理策略管理本测试组内的高速缓存;所述调整子系统记录所述多个测试组管理高速的访存信息,并根据所述多个测试组的访存信息,对所述工作子系统采用的高速缓存管理策略进行调整。

【技术特征摘要】

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

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

1