一种多核系统中对内存访问的优化方法和系统技术方案

技术编号:4270906 阅读:242 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种多核系统中对内存访存的优化方法和系统。该方法包括下列步骤:在中央处理器的最后一级缓存中添加异或缓存映射机制来计算缓存的索引;对操作系统中同时执行的多个目标程序中的每一个程序,利用操作系统中的页着色分配算法分别通过剖析测试得到每一个目标程序的失效率曲线和敏感度曲线;根据所述失效率曲线和敏感度曲线,计算适合目标程序集合的划分策略以降低多核系统中总的行缓存失效率,达到多核系统中对内存访存的优化。

【技术实现步骤摘要】

本专利技术涉及动态随机存储器(Dynamic Random Access Memory, DRAM)访存优化技 术领域,特别是涉及一种多核系统中对内存访问的优化方法和系统
技术介绍
计算机执行程序主要包括运算和取数两类操作。目前计算机中处理器的运算速度 要远远高于从DRAM中取数的速度,因此,如何优化DRAM的访问速度,提高从DRAM中取数的 速度,是众多公司和研究机构致力于研究的问题。 DRAM系统包括多个存储体(bank),这些bank能够被同时访问。每一个bank是由 若干DRAM存储单元按行和列组成的方阵。每一个bank都包括一个行缓存(row buffer)来 保存最近一次访问的行中的数据。行缓存的大小通常为2K字节或者4K字节。DRAM访问的 延迟依赖于DRAM访问是行缓存命中还是失效。如果对DRAM某一个bank的访问请求与上 一次对该bank的访问请求访问的是相同行,那么这一次的DRAM访问请求是行缓存命中的。 如果对DRAM某一个bank的访问请求与上一次对该bank的访问请求访问的是不同行,那么 就会发生一次行缓存冲突,这一次的DRAM访问请求就是行缓存失效的。行缓存命中的DRAM 访问时间大约是行缓存失效的DRAM访问时间的一半。因此如何降低DRAM行缓存冲突、降 低DRAM行缓存的失效率是优化DRAM的访问速度的重要方法。 一个程序可能同时有多个访 问请求访问DRAM,这些访问请求彼此之间可能存在行缓存冲突,我们把来自同一个程序的 不同访问请求之间发生的行缓存冲突称为程序内行缓存冲突。如果DRAM系统的bank数越 多,这些访问请求发生冲突的概率就越小。在多核系统下,同时会有多个DRAM访问请求来 自于同时执行的多个不同程序,来自不同程序的访问请求彼此之间会相互冲突,我们把来 自不同程序的访问请求之间发生的行缓存冲突称为程序间行缓存冲突。在多核系统下优化 DRAM行缓存命中率的目标就是要使程序间行缓存冲突和程序内行缓存冲突之和最小。 现有的技术通过在内存控制器中增加硬件逻辑来提高单个程序执行在DRAM行缓 存中的命中率。 一类是通过增加DRAM访存请求调度器,把内存控制器访存队列当中访问 DRAM相同bank相同行的请求调度到相邻位置,这样能够提高DRAM行缓存的命中率。另一 类是在内存控制器中采用基于XOR操作的地址映射方法,即在DRAM访问请求的物理地址到 DRAM存储单元空间的地址映射之间,加上一个XOR操作,这样做的目的是破坏多级存储地 址映射的对称性使发生最后一级cache (处理器最后一级高速缓存)冲突失效的多个访存 请求尽量被映射到不同bank,从而提高DRAM行缓存的命中率。 现有的方法虽然能够改善DRAM的行缓存命中率,但由于是通过增加硬件逻辑来 进行优化,因而会受到下面的限制DRAM访存调度器受到内存控制器访存队列长度的限 制,同时它也受到处理器中指令执行窗口队列长度的限制,因此调度能够作用的访存请求 范围有限。而XOR地址映射方法因为是硬件机制,不能够针对不同程序给出与之相适应的 办法,因此也不可能把每一个程序优化得很好。此外,这些已有的方法都是针对单个程序, 只考虑如何降低单个程序的程序内行缓存冲突,没有考虑多核系统下存在的程序间行缓存冲突。
技术实现思路
本专利技术的目的在于提供一种多核系统中对内存访存的优化方法和系统。其能够显著降低多核系统中总的行缓存冲突,降低多核系统中总的行缓存失效率,改善系统性能。 为实现本专利技术的目的而提供的一种多核系统中对内存访存的优化方法,包括下列步骤 步骤100.在中央处理器的最后一级缓存中添加异或缓存映射机制来计算缓存的索引; 步骤200.对操作系统中同时执行的多个目标程序中的每一个程序,利用操作系统中的页着色分配算法分别通过剖析测试得到每一个目标程序的失效率曲线和敏感度曲线; 步骤300.根据所述失效率曲线和敏感度曲线,计算适合目标程序集合的划分策略以降低多核系统中总的行缓存失效率,达到多核系统中对内存访存的优化。 如果操作系统不支持页着色的分配算法,则在步骤100之前,还包括步骤100'.为操作系统中添加页着色的分配算法,采用proc文件系统作为控制目标程序占有哪些颜色的接口。 所述步骤100中,如果内存控制器中存在异或地址映射,那么需要去掉在内存控制器中的异或地址映射。 所述计算缓存的索引的方法是把原有的缓存索引中跟存储体索引相对应的位与缓存标签相对应的位做异或操作,用异或操作之后的结果代替原有缓存索引中的对应部分。 所述步骤200,包括下列步骤 步骤210.在操作系统中分别在目标程序占有的相应颜色数目下单独执行目标程序,并记录相应目标程序占有的颜色数目下对应的目标程序的程序内行缓存失效率,用折线连接所述程序内行缓存失效率得到该目标程序的MRC曲线; 步骤220.将每一个目标程序与预先选定的一组标准测试程序分别同时执行一次,剖析测试得到目标程序的程序间行缓存失效率,对所述程序间行缓存失效率做二次曲线拟合,得到目标程序的行缓存失效率随同时执行的其它程序的行缓存失效率变化的SRC曲线。 所述步骤300,包括下列步骤 步骤310.根据页着色系统中颜色的数目,确定所有可能的颜色数目候选分配方案集合; 步骤320.从所述颜色数目候选分配方案集合中选择一个颜色数目候选分配方案,计算当前颜色数目候选分配方案的总的行缓存失效率最小的划分策略; 步骤330.判断是否还有颜色数目候选分配方案未处理,若是,则返回步骤320 ;否则,执行步骤340 ; 步骤340.比较每一个所述颜色数目候选分配方案对应的总的行缓存失效率最小的划分策略,选择其中最小的划分策略,采用这个划分策略通过proc文件系统设置着色掩码,对目标程序集进行动态随机存储器中存储体的划分。 所述步骤320,包括下列步骤 步骤321.为目标程序集中的每一个程序随意分配任一种颜色,作为当前划分策略; 步骤322.任意选择目标程序集中的一个程序和任意选择一种颜色,并且在所述当前划分策略下所述程序还没有拥有所述颜色,计算所述程序拥有所述颜色的情况下的系统行缓存失效率指标; 步骤323,判断是否存在还没有搜索过的程序与颜色的配对,若是,则返回步骤322,否则,执行步骤324 ; 步骤324.比较所有程序与所有颜色配对的系统行缓存失效率指标,选择指标最小的程序和颜色的配对; 步骤325.判断所述指标最小的程序拥有的颜色数目是否超过当前颜色数目分配方案中设置的程序应该拥有的颜色数,若是,则输出所述指标最小的程序和颜色的配对作为当前颜色数目候选分配方案的总的行缓存失效率最小的划分策略;否则,执行步骤326 ; 步骤326.把所述颜色指派给所述指标最小的程序,更新当前划分策略,返回步骤322。 步骤322中,计算所述程序拥有所述颜色的情况下的系统行缓存失效率指标的方法,包括下列步骤 计算给定划分策略下目标程序i的总的行缓存失效率指标,公式如下<formula>formula see original document page 8</formula> 其中,MR&和SR&分别对应失效率曲线和敏感度曲线,1^为目标程序i占有颜色数目,M为动本文档来自技高网
...

【技术保护点】
一种多核系统中对内存访存的优化方法,其特征在于,所述方法,包括下列步骤:步骤100.在中央处理器的最后一级缓存中添加异或缓存映射机制来计算缓存的索引;步骤200.对操作系统中同时执行的多个目标程序中的每一个程序,利用操作系统中的页着色分配算法分别通过剖析测试得到每一个目标程序的失效率曲线和敏感度曲线;步骤300.根据所述失效率曲线和敏感度曲线,计算适合目标程序集合的划分策略以降低多核系统中总的行缓存失效率,达到多核系统中对内存访存的优化。

【技术特征摘要】
一种多核系统中对内存访存的优化方法,其特征在于,所述方法,包括下列步骤步骤100.在中央处理器的最后一级缓存中添加异或缓存映射机制来计算缓存的索引;步骤200.对操作系统中同时执行的多个目标程序中的每一个程序,利用操作系统中的页着色分配算法分别通过剖析测试得到每一个目标程序的失效率曲线和敏感度曲线;步骤300.根据所述失效率曲线和敏感度曲线,计算适合目标程序集合的划分策略以降低多核系统中总的行缓存失效率,达到多核系统中对内存访存的优化。2. 根据权利要求1所述的多核系统中对内存访存的优化方法,其特征在于,如果操作 系统不支持页着色的分配算法,则在步骤100之前,还包括步骤100'.为操作系统中添加页 着色的分配算法,采用proc文件系统作为控制目标程序占有哪些颜色的接口。3. 根据权利要求1所述的多核系统中对内存访存的优化方法,其特征在于,所述步骤 100中,如果内存控制器中存在异或地址映射,那么需要去掉在内存控制器中的异或地址映 射。4. 根据权利要求1所述的多核系统中对内存访存的优化方法,其特征在于,所述计算缓存的索引的方法是把原有的缓存索引中跟存储体索引相对应的位与缓存标签相对应的 位做异或操作,用异或操作之后的结果代替原有缓存索引中的对应部分。5. 根据权利要求1所述的多核系统中对内存访存的优化方法,其特征在于,所述步骤200,包括下列步骤步骤210.在操作系统中分别在目标程序占有的相应颜色数目下单独执行目标程序, 并记录相应目标程序占有的颜色数目下对应的目标程序的程序内行缓存失效率,用折线连 接所述程序内行缓存失效率得到该目标程序的MRC曲线;步骤220.将每一个目标程序与预先选定的一组标准测试程序分别同时执行一次,剖 析测试得到目标程序的程序间行缓存失效率,对所述程序间行缓存失效率做二次曲线拟 合,得到目标程序的行缓存失效率随同时执行的其它程序的行缓存失效率变化的SRC曲 线。6. 根据权利要求1所述的多核系统中对内存访存的优化方法,其特征在于,所述步骤 300,包括下列步骤步骤310.根据页着色系统中颜色的数目,确定所有可能的颜色数目候选分配方案集合.步骤320.从所述颜色数目候选分配方案集合中选择一个颜色数目候选分配方案,计 算当前颜色数目候选分配方案的总的行缓存失效率最小的划分策略;步骤330.判断是否还有颜色数目候选分配方案未处理,若是,则返回步骤320 ;否则, 执行步骤340 ;步骤340.比较每一个所述颜色数目候选分配方案对应的总的行缓存失效率最小的划 分策略,选择其中最小的划分策略,采用该划分策略通过proc文件系统设置着色掩码,对 目标程序集进行动态随机存储器中存储体的划分。7. 根据权利要求6所述的多核系统中对内存访存的优化方法,其特征在于,所述步骤 320,包括下列步骤步骤321.为目标程序集中的每一个程序随意分配任一种颜色,作为当前划分策略;步骤322.任意选择目标程序集中的一个程序和任意选择一种颜色,并且在所述当前 划分策略下所述程序还没有拥有所述颜色,计算所述程序拥有所述颜色的情况下的系统行 缓存失效率指标;步骤323,判断是否存在还没有搜索过的程序与颜色的配对,若是,则返回步骤322,否 则,执行步骤324;步骤324.比较所有程序与所有颜色配对的系统行缓存失效率指标,选择指标最小的 程序和颜色的配对;步骤325.判断所述指标最小的程序拥有的颜色数目是否超过当前颜色数目分配方案 中设置的程序应该拥有的颜色数,若是,则输出所述指标最小的程序和颜色的配对作为当 前颜色数目候选分配方案的总的行缓存失效率最小的划分策略;否则,执行步骤326 ;步骤326.把所述颜色指派给所述指标最小的程序,更新当前划分策略,返回步骤322。8. 根据权利要求7所述的多核系统中对内存访存的优化方法,其特征在于,步骤322 中,计算所述程序拥有所述颜色的情况下的系统行缓存失效率指标的方法,包括下列步 骤计算给定划分策略下目标程序i的总的行缓存失效率指标,公式如下<formula>formula see original document page 3</formula>其中,MRCi和SR&分别对应失效率曲线和敏感度曲线,mi为目标程序i占有颜色数目, M为动态存储器系统中的存储体数目,为与任意程序j共享的颜色数目,①表示给定划分 策略条件下目标程序i的程序内行缓存失效率,而②表示目标程序i与任意程序j同时执 行导致的程序间行缓存冲突失效率。计算给定划分策略下多核系统中所有目标程序的总的行缓存失效率指标,计算公式^M(P)= S '其中k为多核系统中所有目标程序的数目。...

【专利技术属性】
技术研发人员:米伟冯晓兵贾耀仓
申请(专利权)人:中国科学院计算技术研究所
类型:发明
国别省市:11[中国|北京]

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

1