一种基于阶段分析的缓存动态划分方法和系统技术方案

技术编号:4033335 阅读:293 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种基于phase分析的cache动态划分方法和系统,所述方法,包括下列步骤:启动决策进程,系统状态初始化为搜索状态并构建静态搜索树;启动应用程序进程;决策进程开始执行步骤100到300的循环,直至应用程序进程结束;划分决策模块读取采样数据,并根据采样数据识别出程序在当前时间片下运行的phase号,并更新历史记录;划分决策模块收集程序的当前phase在搜索集下各划分的性能数据,根据phase分析结果和系统状态确定下一时间片的Cache划分;当前时间片的决策过程结束,确定出下一时间片的Cache划分,再调用划分执行模块完成cache划分。

【技术实现步骤摘要】

本专利技术涉及多核处理器中共享缓存的动态划分
,特别是涉及一种基于阶 段(phase)分析的缓存(cache)动态划分方法和系统。
技术介绍
多核处理器是指单个芯片上集成多个处理器核的处理器。共享cache的多核处理 器是指多个处理器核共享使用芯片上的cache。cache是一种芯片上的存储资源,用以缓 存处理器最近使用的数据,由于cache容量有限,新数据会把旧数据替换出cache。在共享 cache的多核处理器上,目前的替换策略不区分数据来源,各处理器核间的数据会相互替 换,致使处理器核上同时运行的程序会相互干扰性能。Cache划分技术是指为同时运行的程 序分配共享cache的不同的区域,以此来消除程序间在cache中的数据替换,消除程序间性 能干扰,最大效率地发挥cache的作用。Cache划分技术又分为硬件划分方法和软件划分方法两类。硬件划分方法是利用 额外的硬件收集程序cache需求信息,由区分数据所有者的替换策略完成划分,这类方法 目前都是基于模拟器上的研究,没有实用。软件划分方法是利用了操作系统的页着色技术 将内存物理页按照其地址分成不同颜色的组,为不同进程(程序的动态执行体)分配不同 颜色的页,由于共享cache以物理地址为索引,不同颜色物理页上的数据会存储到cache的 不同区域,就达到了为不同程序划分cache的目的。软件划分方法在现有的操作系统和虚 拟机上可以实现和应用。Cache划分技术的核心在于在所有可能的划分方案中选出最优的划分方案和追求 程序性能最大化。为了确定程序在各种Cache划分下的性能表现,基于页着色的软件划分 方法需要试探性地运行各种划分,再从中选取性能较好的划分。我们定义划分空间为所有 可能划分方案的集合,软件动态划分方法就是从划分空间里在线搜索最优的过程,即随着 程序的运行不断试探,根据性能反馈不断调整搜索方向或缩小搜索范围,逐步逼近最优的 Cache划分。软件动态划分方法以固定的时间间隔(后文称为“时间片”)为单位周期的试 探划分、划分选优、再由当前最优制定执行下一步的搜索策略。现有软件动态划分方法的搜索策略是不断试探相邻的Cache划分,然后比较性 能,最优者作为下一次搜索的开始划分。但该软件动态划分方法存在下面两方面问题1.通过直接比较各时间片下程序的性能来确定Cache划分的优劣会产生误判问 题。由于程序在运行期间的性能随时间变化的情况,不是随机、混乱的,而往往会表现出规 律性,即在程序运行期间会经过一系列有序阶段(phase),在该阶段内程序的运行表现相 似,阶段间差异明显,而且这些阶段会重复出现,这些阶段称之为phase。程序在phase切换 时可能有性能变化,如果直接比较不同phase上时间片性能,将会将phase间的性能差异归 因于Cache划分的不同,从而对Cache划分优劣产生误判,搜索就偏离最优划分,程序性能 未能最大幅度提高;2.当程序进入稳定的phase时,该软 动态划分方法仍然在试探搜索,这种情况下如果已搜索到最优Cache划分,就可以停止搜索,减少搜索带来的开销。
技术实现思路
本专利技术的目的在于提供一种基于phase分析的cache动态划分方法和系统,其能 够明显提高系统的总体性能,节省大量开销。为实现本专利技术的目的而提供的一种基于phase分析的Cache动态划分方法,包括 下列步骤步骤000.启动决策进程,系统状态初始化为搜索状态并构建静态搜索树;启动应 用程序进程;决策进程开始执行步骤100到300的循环,直至应用程序进程结束;步骤100.划分决策模块读取采样数据,并根据采样数据识别出程序在当前时间 片下运行的phase号,并更新历史记录;步骤200,划分决策模块收集程序的当前phase在搜索集下各划分的性能数据,根 据phase分析结果和系统状态确定下一时间片的Cache划分;步骤300.当前时间片的决策过程结束,确定出下一时间片的Cache划分,再调用 划分执行模块完成cache划分。所述步骤000,包括下列步骤步骤010.划分空间为,静态搜索树的根结点为(n/4,n/2,3n/4),搜索步长 为n/4,开始构造子树,输入为中心点C、区域a和步长s,其中中心点c即为根节点的 3个划分,区域a为子树所含划分范围的上下界,将根结点3个划分的c、a和s信息 加入未构造队列;步骤020.判断未构造队列是否为空,若是,则结束构造;否则,执行步骤030.步骤030.取出未构造队列的第一组构造信息中心点C、区域a和步长s, 生成结点(1,c,h),若左右结点1和h超出区域则取区域边界L和H,否则1 = c-s/2,h = c+s/2,s = s/2,若s = 1则表示当前为叶子结点;否则将l,c,h的c、a* s加入未构造队 列,返回步骤020。所述搜索树是Cache划分空间的多级的树结构表示,树结点是有3个划分的搜索 集,同时有3个子结点,分别对应3个搜索方向。所述步骤100,包括下列步骤步骤110,性能采集模块周期采样时间片内的执行PC,采样周期为100万条指令;步骤120,建立PC频率向量,并归一化;步骤130,在phase的历史记录中查找和当前频率向量的曼哈顿距离最近的 phase,若该最近曼哈顿距离小于相似度阈值,则判定当前时间片程序处于最近曼哈顿距离 对应的phase ;若大于相似度阈值,则判定在当前时间片程序进入新的phase,并分配新的 phase编号和历史记录。所述步骤200,包括下列步骤步骤210.判断系统状态;若为搜索状态,则执行步骤220 ;若为保持状态,则执行 步骤250 ;步骤220 若历史数据中已有当前phase在当前搜索集中各Cache划分下的性能, 执行步骤230 ;否则执行步骤240 ;步骤230 从当前phase在当前搜索集中各Cache划分下的性能中选出性能最优 者作为当前最优Cache划分;步骤240 若历史数据中没有全部的当前phase在当前搜索集中各Cache划分下 的性能,则从当前搜索集中选出未搜索的Cache划分为下一时间片的Cache划分;步骤250.当前为保持状态,若发现当前phase没有被搜索过而且出现频率已经超 过热度阈值,执行步骤260 ;否则执行步骤270 ;步骤260 为当前phase构造搜索树,下一时间片的Cache划分为该搜索树根结点 上搜索集中离当前Cache划分最近的划分,并将系统状态设为搜索;步骤270 继续保持状态,下一时间片的Cache划分仍为当前Cache划分。在步骤230中,若当前搜索集在搜索树中处于叶子结点,则当前最优Cache划分为 该phase的全局最优Cache划分,系统进入保持最优Cache划分的状态;否则将当前搜索 集的当前最优Cache划分方向的子结点设为新的搜索集,并从新搜索集中选出离当前最优 Cache划分最近的Cache划分为下一时间片的Cache划分。所述步骤260,包括下列步骤步骤261.当前划分c,根结点搜索集(c-l,c,c+l),开始构造孩子结点,输入参数 为开始点b,区域a和搜索步长s,s的初始值为n/8,开始点为当前搜索集各划分,区 域为子树对应的搜索范围,将根结点中的初始开始点c-1和c+1的b、a和s本文档来自技高网
...

【技术保护点】
一种基于phase分析的Cache动态划分方法,其特征在于,包括下列步骤:步骤000.启动决策进程,系统状态初始化为搜索状态并构建静态搜索树;启动应用程序进程;决策进程开始执行步骤100到300的循环,直至应用程序进程结束;步骤100.划分决策模块读取采样数据,并根据采样数据识别出程序在当前时间片下运行的phase号,并更新历史记录;步骤200,划分决策模块收集程序的当前phase在搜索集下各划分的性能数据,根据phase分析结果和系统状态确定下一时间片的Cache划分;步骤300.当前时间片的决策过程结束,确定出下一时间片的Cache划分,再调用划分执行模块完成cache划分。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:贾耀仓武成岗徐地王振江李建军米伟
申请(专利权)人:中国科学院计算技术研究所
类型:发明
国别省市:11[中国|北京]

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

1