[发明专利]一种动态缓存污染防治系统及方法有效
申请号: | 201410168269.0 | 申请日: | 2014-04-24 |
公开(公告)号: | CN103970679B | 公开(公告)日: | 2017-02-01 |
发明(设计)人: | 廖小飞;金海;张德新;郭人通 | 申请(专利权)人: | 华中科技大学 |
主分类号: | G06F12/0893 | 分类号: | G06F12/0893;G06F11/30 |
代理公司: | 华中科技大学专利中心42201 | 代理人: | 廖盈春 |
地址: | 430074 湖北*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 动态 缓存 污染 防治 系统 方法 | ||
技术领域
本发明属于计算机缓存性能优化技术领域,更具体地,涉及一种动态缓存污染防治系统及方法。
背景技术
高速缓冲存储器(Cache)是存取速度比一般随机存取记忆体(RAM)更快的一种RAM,在计算机存储系统的层次结构中,是介于中央处理器和主存储器之间的高速小容量存储器。高速缓冲存储器和主存储器之间信息的调度和传送是由硬件自动进行的,程序员感觉不到高速缓冲存储器的存在,因而其对程序员是透明的。
在计算机技术发展过程中,主存储器存取速度一直比中央处理器操作速度慢得多,使得中央处理器的高速处理能力不能充分发挥,影响了整个计算机系统的工作效率。目前有很多方法可用来缓和中央处理器与主存储器之间速度不匹配的矛盾,例如采用多个通用寄存器、多存储体交叉存取等,但在存储层次上采用高速缓冲存储器是最常用的方法。
高速缓冲存储器的容量一般只有主存储器的几百分之一,但其存取速度能与中央处理器相匹配。根据程序局部性原理,正在使用的主存储器某一单元其邻近的单元将被用到的可能性很大。因而,当中央处理器存取主存储器某一单元时,计算机硬件就自动地将包括该单元在内的一组单元内容调入高速缓冲存储器,中央处理器即将存取的主存储器单元很可能就在刚刚调入到高速缓冲存储器的那一组单元内。于是,中央处理器就可以直接对高速缓冲存储器进行存取。在整个处理过程中,如果中央处理器绝大多数存取主存储器的操作能为存取高速缓冲存储器所代替,计算机系统处理速度就能显著提高。
但是,当前处理器高速缓存大多采用最近最少使用(Least Recently Used,LRU)替换算法,该算法不能有效识别被访问数据的局部性特征并根据数据局部性的变化及时调节管理策略,导致高复用度的数据被低复用度的数据所替换,从而引发高速缓存的污染问题。另一方面,随着多核/众核系统的日益普及和发展,每个内核上的缓存污染都可能导致多核心之间共享缓存的污染,进一步加剧缓存的污染问题,对高性能计算的影响越来越大。
现有的一些缓存污染过滤策略虽然可在一定程序上缓解该问题,但存在缓存调整开销过大、对用户层不透明、离线分析无法实时动态调整或者需要特殊的硬件支持等问题,目前还缺乏一种通用计算机上的在线低开销的缓存污染监控机制。
发明内容
针对现有技术的缺陷,本发明的目的在于提供一种动态缓存污染防治系统及方法,旨在解决现有方法中存在的开销过大、不透明及无法动态调整的技术问题。
为实现上述目的,按照本发明的一方面,提供一种动态缓存污染防治系统,包括内存监测模块、分析模块和决策分配模块,其特征在于:
所述内存监测模块对为上层用户层程序动态分配的堆内存进行采样监测并收集数据,并将所述数据发送至所述分析模块,其中,所述数据包括动态分配内存的大小、所述用户层程序运行时函数调用栈的内容及深度、所述被采样监测页面相邻两次猝发访问的时间间隔ΔT和所述时间间隔ΔT内各级缓存访问缺失次数ΔCi,i=1、2、3;
所述分析模块对所述采样监测模块收集到的所述数据进行分析,判断所述用户层程序的所述堆内存是否对缓存造成污染,确定对所述缓存的污染类型为Li级缓存污染,并将分析结果发送至所述决策分配模块;
所述决策分配模块对原有的伙伴系统加入以page-color为基础的页面管理机制,将内存页面管理与页面映射分离,根据所述分析模块的所述分析结果控制系统逻辑页面到物理页框的映射方式,以实现对缓存污染的有效限制。
为实现上述目的,按照本发明的另一方面,提供一种动态缓存污染防治方法,包括以下步骤:
步骤1追踪用户层程序的内存分配和释放操作;
步骤2对动态分配的堆内存进行采样监测并收集数据,所述数据包括动态分配内存的大小、所述用户层程序运行时函数调用栈的内容及深度、被采样监测页面相邻两次猝发访问的时间间隔ΔT和所述时间间隔ΔT内各级缓存访问缺失次数ΔCi,i=1、2、3,并判断当前内存分配点是否为第一次分配内存,若是,则新建采样哈希表,并执行步骤1;否则更新所述采样哈希表,并执行步骤3;
步骤3根据所述步骤2所收集的所述数据,分析当前所述堆内存对缓存的污染情况,将所述各级缓存访问缺失次数ΔCi与所述各级缓存的容量大小进行对比,分析得出当前所述堆内存是否对缓存造成污染,并确定当前所述堆内存对所述缓存的污染类型为Li级缓存污染;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410168269.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:顶门紧固件
- 下一篇:一种独立油缸多功能轴芯