书签 分享 收藏 举报 版权申诉 / 22

一种多核系统中对内存访问的优化方法和系统.pdf

  • 上传人:狗**
  • 文档编号:5781621
  • 上传时间:2019-03-19
  • 格式:PDF
  • 页数:22
  • 大小:1.22MB
  • 摘要
    申请专利号:

    CN200910243195.1

    申请日:

    2009.12.31

    公开号:

    CN101719105A

    公开日:

    2010.06.02

    当前法律状态:

    授权

    有效性:

    有权

    法律详情:

    授权|||实质审查的生效IPC(主分类):G06F 12/08申请日:20091231|||公开

    IPC分类号:

    G06F12/08

    主分类号:

    G06F12/08

    申请人:

    中国科学院计算技术研究所

    发明人:

    米伟; 冯晓兵; 贾耀仓

    地址:

    100080 北京市海淀区中关村科学院南路6号

    优先权:

    专利代理机构:

    北京律诚同业知识产权代理有限公司 11006

    代理人:

    祁建国;梁挥

    PDF完整版下载: PDF下载
    内容摘要

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

    权利要求书

    1: 一种多核系统中对内存访存的优化方法,其特征在于,所述方法,包括下列步骤: 步骤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的总的行缓存失效率指标,公式如下: 其中,MRC i 和SRC i 分别对应失效率曲线和敏感度曲线,m i 为目标程序i占有颜色数目,M为动态存储器系统中的存储体数目,m ij 为与任意程序j共享的颜色数目,①表示给定划分策略条件下目标程序i的程序内行缓存失效率,而②表示目标程序i与任意程序j同时执行导致的程序间行缓存冲突失效率。 计算给定划分策略下多核系统中所有目标程序的总的行缓存失效率指标,计算公式: RBM ( P ) = Σ I ≤ k ≤ N RB M k , ]]> 其中k为多核系统中所有目标程序的数目。
    9: 一种多核系统中对内存访存的优化系统,其特征在于,所述系统,包括: 添加异或映射模块,用于中央处理器的最后一级缓存中添加异或缓存映射机制来计算缓存的索引; 曲线计算模块,用于对操作系统中同时执行的多个目标程序中的每一个程序,利用操作系统中的页着色分配算法分别通过剖析测试得到每一个目标程序的失效率曲线和敏感度曲线; 划分策略获取模块,用于根据所述失效率曲线和敏感度曲线,计算适合目标程序集合的划分策略以降低多核系统中总的行缓存失效率,达到多核系统中对内存访存的优化。 10.根据权利要求9所述的多核系统中对内存访存的优化系统,其特征在于,包括: 页着色的分配算法添加模块,用于在所述操作系统不支持页着色的分配算法时,为操作系统添加页着色的分配算法,采用proc文件系统作为控制目标程序占有哪些颜色的接口。 11.根据权利要求9所述的多核系统中对内存访存的优化系统,其特征在于,包括: 删除模块,用于在内存控制器中存在异或地址映射时,去掉在内存控制器中的异或地址映射。 12.根据权利要求9所述的多核系统中对内存访存的优化系统,其特征在于,所述曲线计算模块,包括: MRC曲线计算模块,用于在操作系统中分别在目标程序占有的相应颜色数目下单独执行目标程序,并记录相应目标程序占有的颜色数目下对应的目标程序的程序内行缓存失效率,用折线连接所述程序内行缓存失效率得到该目标程序的MRC曲线; SRC曲线计算模块,用于将每一个目标程序与预先选定的一组标准测试程序分别同时执行一次,剖析测试得到目标程序的程序间行缓存失效率,对所述程序间行缓存失效率做二次曲线拟合,得到目标程序的行缓存失效率随同时执行的其它程序的行缓存失效率变化的SRC曲线。 13.根据权利要求9所述的多核系统中对内存访存的优化系统,其特征在于,所述划分策略获取模块,包括: 候选集合模块,用于根据页着色系统中颜色的数目,确定所有可能的颜色数目候选分配方案集合; 行缓存失效率计算模块,用于从所述颜色数目候选分配方案集合中选择一个颜色数目候选分配方案,计算当前颜色数目候选分配方案的总的行缓存失效率最小的划分策略; 判断模块,用于判断是否还有颜色数目候选分配方案未处理,若是,则触发行缓存失效率计算模块;否则,触发划分模块; 划分模块,用于比较每一个所述颜色数目候选分配方案对应的总的行缓存失效率最小的划分策略,选择其中最小的划分策略,采用这个划分策略通过proc文件系统设置着色掩码,对目标程序集进行动态随机存储器中存储体的划分。 14.根据权利要求13所述的多核系统中对内存访存的优化系统,其特征在于,所述行缓存失效率计算模块,包括: 预设模块,用于为目标程序集中的每一个程序随意分配任一种颜色,作为当前划分策略; 计算子模块,用于任意选择目标程序集中的一个程序和任意选择一种颜色,并且在所述当前划分策略下所述程序还没有拥有所述颜色,计算所述程序拥有所述颜色的情况下的系统行缓存失效率指标; 判断子模块,判断是否存在还没有搜索过的程序与颜色的配对,若是,则触发计算子模块,否则,触发比较模块; 比较模块,比较所有程序与所有颜色配对的系统行缓存失效率指标,选择指标最小的程序和颜色的配对; 数目判断模块,用于判断所述指标最小的程序拥有的颜色数目是否超过当前颜色数目分配方案中设置的程序应该拥有的颜色数,若是,则输出所述指标最小的程序和颜色的配对作为当前颜色数目候选分配方案的总的行缓存失效率最小的划分策略;否则,触发分配更新模块; 分配更新模块,用于把所述颜色指派给所述指标最小的程序,更新当前划分策略,并触发计算子模块。 15.根据权利要求14所述的多核系统中对内存访存的优化系统,其特征在于,所述计算子模块,采用以下公式计算所述程序拥有所述颜色的情况下的系统行缓存失效率指标的 方法, 计算给定划分策略下目标程序i的总的行缓存失效率指标,公式如下: 其中,MRC i 和SRC i 分别对应失效率曲线和敏感度曲线,m i 为目标程序i占有颜色数目,M为动态存储器系统中的存储体数目,m ij 为与任意程序j共享的颜色数目,①表示给定划分策略条件下目标程序i的程序内行缓存失效率,而②表示目标程序i与任意程序j同时执行导致的程序间行缓存冲突失效率。 计算给定划分策略下多核系统中所有目标程序的总的行缓存失效率指标,计算公式: RBM ( P ) = Σ I ≤ k ≤ N RB M k , ]]> 其中k为多核系统中所有目标程序的数目。
    10: 在操作系统中分别在目标程序占有的相应颜色数目下单独执行目标程序,并记录相应目标程序占有的颜色数目下对应的目标程序的程序内行缓存失效率,用折线连接所述程序内行缓存失效率得到该目标程序的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的总的行缓存失效率指标,公式如下: 其中,MRC i 和SRC i 分别对应失效率曲线和敏感度曲线,m i 为目标程序i占有颜色数目,M为动态存储器系统中的存储体数目,m ij 为与任意程序j共享的颜色数目,①表示给定划分策略条件下目标程序i的程序内行缓存失效率,而②表示目标程序i与任意程序j同时执行导致的程序间行缓存冲突失效率。 计算给定划分策略下多核系统中所有目标程序的总的行缓存失效率指标,计算公式: RBM ( P ) = Σ I ≤ k ≤ N RB M k , ]]> 其中k为多核系统中所有目标程序的数目。 9.一种多核系统中对内存访存的优化系统,其特征在于,所述系统,包括: 添加异或映射模块,用于中央处理器的最后一级缓存中添加异或缓存映射机制来计算缓存的索引; 曲线计算模块,用于对操作系统中同时执行的多个目标程序中的每一个程序,利用操作系统中的页着色分配算法分别通过剖析测试得到每一个目标程序的失效率曲线和敏感度曲线; 划分策略获取模块,用于根据所述失效率曲线和敏感度曲线,计算适合目标程序集合的划分策略以降低多核系统中总的行缓存失效率,达到多核系统中对内存访存的优化。 10.根据权利要求9所述的多核系统中对内存访存的优化系统,其特征在于,包括: 页着色的分配算法添加模块,用于在所述操作系统不支持页着色的分配算法时,为操作系统添加页着色的分配算法,采用proc文件系统作为控制目标程序占有哪些颜色的接口。
    11: 根据权利要求9所述的多核系统中对内存访存的优化系统,其特征在于,包括: 删除模块,用于在内存控制器中存在异或地址映射时,去掉在内存控制器中的异或地址映射。
    12: 根据权利要求9所述的多核系统中对内存访存的优化系统,其特征在于,所述曲线计算模块,包括: MRC曲线计算模块,用于在操作系统中分别在目标程序占有的相应颜色数目下单独执行目标程序,并记录相应目标程序占有的颜色数目下对应的目标程序的程序内行缓存失效率,用折线连接所述程序内行缓存失效率得到该目标程序的MRC曲线; SRC曲线计算模块,用于将每一个目标程序与预先选定的一组标准测试程序分别同时执行一次,剖析测试得到目标程序的程序间行缓存失效率,对所述程序间行缓存失效率做二次曲线拟合,得到目标程序的行缓存失效率随同时执行的其它程序的行缓存失效率变化的SRC曲线。
    13: 根据权利要求9所述的多核系统中对内存访存的优化系统,其特征在于,所述划分策略获取模块,包括: 候选集合模块,用于根据页着色系统中颜色的数目,确定所有可能的颜色数目候选分配方案集合; 行缓存失效率计算模块,用于从所述颜色数目候选分配方案集合中选择一个颜色数目候选分配方案,计算当前颜色数目候选分配方案的总的行缓存失效率最小的划分策略; 判断模块,用于判断是否还有颜色数目候选分配方案未处理,若是,则触发行缓存失效率计算模块;否则,触发划分模块; 划分模块,用于比较每一个所述颜色数目候选分配方案对应的总的行缓存失效率最小的划分策略,选择其中最小的划分策略,采用这个划分策略通过proc文件系统设置着色掩码,对目标程序集进行动态随机存储器中存储体的划分。
    14: 根据权利要求13所述的多核系统中对内存访存的优化系统,其特征在于,所述行缓存失效率计算模块,包括: 预设模块,用于为目标程序集中的每一个程序随意分配任一种颜色,作为当前划分策略; 计算子模块,用于任意选择目标程序集中的一个程序和任意选择一种颜色,并且在所述当前划分策略下所述程序还没有拥有所述颜色,计算所述程序拥有所述颜色的情况下的系统行缓存失效率指标; 判断子模块,判断是否存在还没有搜索过的程序与颜色的配对,若是,则触发计算子模块,否则,触发比较模块; 比较模块,比较所有程序与所有颜色配对的系统行缓存失效率指标,选择指标最小的程序和颜色的配对; 数目判断模块,用于判断所述指标最小的程序拥有的颜色数目是否超过当前颜色数目分配方案中设置的程序应该拥有的颜色数,若是,则输出所述指标最小的程序和颜色的配对作为当前颜色数目候选分配方案的总的行缓存失效率最小的划分策略;否则,触发分配更新模块; 分配更新模块,用于把所述颜色指派给所述指标最小的程序,更新当前划分策略,并触发计算子模块。
    15: 根据权利要求14所述的多核系统中对内存访存的优化系统,其特征在于,所述计算子模块,采用以下公式计算所述程序拥有所述颜色的情况下的系统行缓存失效率指标的 方法, 计算给定划分策略下目标程序i的总的行缓存失效率指标,公式如下: 其中,MRC i 和SRC i 分别对应失效率曲线和敏感度曲线,m i 为目标程序i占有颜色数目,M为动态存储器系统中的存储体数目,m ij 为与任意程序j共享的颜色数目,①表示给定划分策略条件下目标程序i的程序内行缓存失效率,而②表示目标程序i与任意程序j同时执行导致的程序间行缓存冲突失效率。 计算给定划分策略下多核系统中所有目标程序的总的行缓存失效率指标,计算公式: RBM ( P ) = Σ I ≤ k ≤ N RB M k , ]]> 其中k为多核系统中所有目标程序的数目。

    说明书


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

        【技术领域】

        本发明涉及动态随机存储器(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的总的行缓存失效率指标,公式如下:

        其中,MRCi和SRCi分别对应失效率曲线和敏感度曲线,mi为目标程序i占有颜色数目,M为动态存储器系统中的存储体数目,mij为与任意程序j共享的颜色数目,①表示给定划分策略条件下目标程序i的程序内行缓存失效率,而②表示目标程序i与任意程序j同时执行导致的程序间行缓存冲突失效率。

        计算给定划分策略下多核系统中所有目标程序的总的行缓存失效率指标,计算公式:RBM(P)=Σ1≤k≤NRBMk,]]>其中k为多核系统中所有目标程序的数目。

        为实现本发明的目的还提供一种多核系统中对内存访存的优化系统,包括:

        添加异或映射模块,用于中央处理器的最后一级缓存中添加异或缓存映射机制来计算缓存的索引;

        曲线计算模块,用于对操作系统中同时执行的多个目标程序中的每一个程序,利用操作系统中的页着色分配算法分别通过剖析测试得到每一个目标程序的失效率曲线和敏感度曲线;

        划分策略获取模块,用于根据所述失效率曲线和敏感度曲线,计算适合目标程序集合的划分策略以降低多核系统中总的行缓存失效率,达到多核系统中对内存访存的优化。

        所述的多核系统中对内存访存的优化系统,包括:

        页着色的分配算法添加模块,用于在所述操作系统不支持页着色的分配算法时,为操作系统添加页着色的分配算法,采用proc文件系统作为控制目标程序占有哪些颜色的接口。

        所述的多核系统中对内存访存的优化系统,包括:

        删除模块,用于在内存控制器中存在异或地址映射时,去掉在内存控制器中的异或地址映射。

        所述曲线计算模块,包括:

        MRC曲线计算模块,用于在操作系统中分别在目标程序占有的相应颜色数目下单独执行目标程序,并记录相应目标程序占有的颜色数目下对应的目标程序的程序内行缓存失效率,用折线连接所述程序内行缓存失效率得到该目标程序的MRC曲线;

        SRC曲线计算模块,用于将每一个目标程序与预先选定的一组标准测试程序分别同时执行一次,剖析测试得到目标程序的程序间行缓存失效率,对所述程序间行缓存失效率做二次曲线拟合,得到目标程序的行缓存失效率随同时执行的其它程序的行缓存失效率变化的SRC曲线。

        所述划分策略获取模块,包括:

        候选集合模块,用于根据页着色系统中颜色的数目,确定所有可能的颜色数目候选分配方案集合;

        行缓存失效率计算模块,用于从所述颜色数目候选分配方案集合中选择一个颜色数目候选分配方案,计算当前颜色数目候选分配方案的总的行缓存失效率最小的划分策略;

        判断模块,用于判断是否还有颜色数目候选分配方案未处理,若是,则触发行缓存失效率计算模块;否则,触发划分模块;

        划分模块,用于比较每一个所述颜色数目候选分配方案对应的总的行缓存失效率最小的划分策略,选择其中最小的划分策略,采用这个划分策略通过proc文件系统设置着色掩码,对目标程序集进行动态随机存储器中存储体的划分。

        所述行缓存失效率计算模块,包括:

        预设模块,用于为目标程序集中的每一个程序随意分配任一种颜色,作为当前划分策略;

        计算子模块,用于任意选择目标程序集中的一个程序和任意选择一种颜色,并且在所述当前划分策略下所述程序还没有拥有所述颜色,计算所述程序拥有所述颜色的情况下的系统行缓存失效率指标;

        判断子模块,判断是否存在还没有搜索过的程序与颜色的配对,若是,则触发计算子模块,否则,触发比较模块;

        比较模块,比较所有程序与所有颜色配对的系统行缓存失效率指标,选择指标最小的程序和颜色的配对;

        数目判断模块,用于判断所述指标最小的程序拥有的颜色数目是否超过当前颜色数目分配方案中设置的程序应该拥有的颜色数,若是,则输出所述指标最小的程序和颜色的配对作为当前颜色数目候选分配方案的总的行缓存失效率最小的划分策略;否则,触发分配更新模块;

        分配更新模块,用于把所述颜色指派给所述指标最小的程序,更新当前划分策略,并触发计算子模块。

        所述计算子模块,采用以下公式计算所述程序拥有所述颜色的情况下的系统行缓存失效率指标的方法,

        计算给定划分策略下目标程序i的总的行缓存失效率指标,公式如下:

        其中,MRCi和SRCi分别对应失效率曲线和敏感度曲线,mi为目标程序i占有颜色数目,M为动态存储器系统中的存储体数目,mij为与任意程序j共享的颜色数目,①表示给定划分策略条件下目标程序i的程序内行缓存失效率,而②表示目标程序i与任意程序j同时执行导致的程序间行缓存冲突失效率。

        计算给定划分策略下多核系统中所有目标程序的总的行缓存失效率指标,计算公式:RBM(P)=Σ1≤k≤NRBMk,]]>其中k为多核系统中所有目标程序的数目。

        本发明的有益效果是:

        采用本发明的一种多核系统中对内存访存的优化方法和系统,能够显著降低多核系统下多个程序同时执行时访问内存的行缓存失效率,降低DRAM的平均访问延迟,达到优化内存访问速度的目的,提高了多核系统的吞吐率,改善系统性能。

        【附图说明】

        图1是本发明一种多核系统中对内存访存的优化方法的步骤流程图;

        图2是本发明中XOR cache映射的原理图;

        图3是现有技术中采用XOR地址映射会破坏DRAM bank的划分效果图;

        图4是本发明中程序fma3d的MRC曲线图;

        图5是本发明中程序fma3d的SRC曲线图;

        图6是本发明中计算MRC和SRC曲线的方法步骤流程图;

        图7是本发明中计算适合目标程序集合的划分策略的方法步骤流程图;

        图8是本发明中计算当前颜色数目候选分配方案总的行缓存失效率最小的划分策略的步骤流程图;

        图9是本发明的一种多核系统中对内存访存的优化系统结构示意图。

        【具体实施方式】

        为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明的一种多核系统中对内存访存的优化方法和系统进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

        本发明的一种多核系统中对内存访存的优化方法和系统,是基于页着色的操作系统页分配算法,通过划分同时执行的多个程序占有的动态随机存储器(Dynamic Random Access Memory,DRAM)的bank,尽量使不同程序占有不同的bank,来降低程序间行缓存冲突,进而达到优化内存访问速度的效果。本发明提出的基于页着色的DRAM bank划分方法为我们控制哪些程序访问哪些bank提供了基础,基于该划分方法我们需要进一步确定具体的划分策略:即确定每一个程序究竟访问多少bank以及访问哪些bank。由于我们的目的是使程序内和程序间行缓存冲突之和减少,因此我们给出了一个计算方法用来计算每一个程序应该占有多少bank以及占用哪些bank,以尽可能多地降低系统总的行缓存失效率。

        本发明提出的多核系统下基于页着色的DRAM bank划分方法以及bank划分策略的计算方法一起构成了我们的对DRAM访存的优化方法,该优化方法能够显著降低多核系统中总的行缓存冲突,降低多核系统中总的行缓存失效率,改善系统性能。

        下面结合上述目标详细介绍本发明的一种多核系统中对内存访存的优化方法,图1是本发明一种多核系统中对内存访存的优化方法的步骤流程图,如图1所示,所述方法,包括下列步骤:

        步骤100’.如果操作系统不支持页着色的分配算法,则在操作系统中添加页着色的分配算法,并且采用proc文件系统作为控制目标程序占有哪些颜色的接口。如果DRAM系统有M个bank,且行缓存大小与页大小一致,那么页着色系统就有M种颜色。

        所述页着色的分配算法为现有技术,在此不再一一赘述。

        步骤100.XOR cache映射:在中央处理器(CPU)的最后一级缓存(cache)中添加异或(XOR)cache映射机制来计算cache的索引;

        由于在某些机器的内存控制器中存在XOR地址映射,因此在最后一级缓存(cache)中添加异或(XOR)cache映射机制的同时,需要去掉在系统的内存控制器中的XOR地址映射。

        图2是本发明中XOR cache映射的原理图。在CPU的最后一级cache中采用XOR cache映射来计算cache的索引,具体的做法如图2所示,即把原有的cache索引中跟bank索引相对应的位与缓存标签(cache tag)相对应的位做XOR操作,用XOR操作之后的结果代替原有cache索引中的对应部分。原来计算cache索引的时候,是直接取物理地址当中的M位;现在的做法是把物理地址中原来用来作为cache索引的这M位当中的N位拿出来(后面的XOR操作计算完了还要放回去),与其它一些位(cache tag的低N位)做一次XOR操作,然后把做完XOR操作的结果与M位剩余的部分合起来作为新的cache索引。这样做的效果是可以用cache中增加XOR cache映射来取代在内存控制器中采用XOR地址映射。

        图3是现有技术中采用XOR地址映射会破坏DRAM bank的划分效果图。我们在背景技术中提到,在内存控制器中采用XOR地址映射能够消除多级存储层次的地址对称性,降低程序内行缓存失效率,因此内存控制器中采用XOR地址映射是必要的。但通过页着色控制DRAM bank划分与在内存控制器中采用XOR地址映射之间存在矛盾,如图3所示,在内存控制器中采用XOR地址映射会破坏页着色的bank划分效果。而我们发现XOR cache映射是从CPU最后一级cache这一层破坏多级地址映射的对称性,取得与在内存控制器中采用XOR地址映射同样的效果,而且XOR cache映射不在物理地址到DRAM存储单元映射的路径上,因此不会影响页着色的效果。那么通过后面的页着色技术加上XORcache映射,我们既能够取得XOR地址映射对程序内行缓存失效率的优化效果,又能够通过页着色实现对DRAM bank划分的控制。

        步骤200.对操作系统中同时执行的多个目标程序中的每一个程序,分别通过剖析测试得到每一个目标程序的失效率曲线(Miss Rate Curve,MRC)和敏感度曲线(Sensitivity Rate Curve,SRC)曲线;

        失效率曲线,是通过改变目标程序占有的颜色数目,剖析测试对应颜色数目下该程序的行缓存失效率,然后绘制得到的曲线。

        如果DRAM系统有M个bank,且行缓存大小与物理页大小一致,那么页着色系统就有M种颜色。页着色的页分配机制可以通过改变目标程序占有的颜色数目来间接控制目标程序占有的bank数目。图4是本发明中程序fma3d的MRC曲线图,如图4所示,它反映了目标程序的程序内行缓存冲突随bank数目变化的情况。

        敏感度曲线,也是通过剖析测试得到。我们选择了一组程序作为标准测试程序(我们选择的5个程序分别是SPEC2000标准测试集中的swim,equake,fma3d,mgrid和vpr),每一个目标程序都需要与这一组标准测试程序分别同时执行一次,测试得到每一次执行目标程序的行缓存失效率。以每一次执行的标准程序的最后一级cache的失效率作为横坐标,目标程序的行缓存失效率作为纵坐标,可以得到一组坐标点,最后对这一组坐标点进行二次曲线拟合得到我们想要的敏感度曲线,图5是本发明中程序fma3d的SRC曲线图,如图5所示,它反映了目标程序受其它程序干扰影响导致程序间行缓存冲突的情况。

        图6是本发明中计算MRC和SRC曲线的方法步骤流程图,如图6所示,所述步骤200,包括下列步骤:

        步骤210.计算目标程序的程序内行缓存失效率,绘制MRC曲线:在操作系统中分别在目标程序占有的相应颜色数目下单独执行目标程序,并记录相应目标程序占有的颜色数目下对应的目标程序的程序内行缓存失效率,用折线连接所述程序内行缓存失效率得到该目标程序的MRC曲线;

        假设页着色系统中有M种颜色。让目标程序在操作系统中单独执行多次,通过proc文件系统这个控制接口,控制目标程序占有的颜色数目从1到M,记录每一次执行目标程序的行缓存失效率。根据得到的M个点,用折线绘制MRC曲线,对应的MRC函数就是一个M个元素的数组,记录颜色数目从1到M变化时,目标程序的行缓存失效率的值。如图4所示。

        作为一种可实施方式,本发明通过性能监测计数器得到程序内行缓存失效率,然后把得到的所有点用线段连接起来得到MRC曲线。

        步骤220.计算目标程序的程序间行缓存失效率,绘制SRC曲线:将每一个目标程序与预先选定的一组标准测试程序分别同时执行一次,剖析测试得到目标程序的程序间行缓存失效率,对所述程序间行缓存失效率做二次曲线拟合,得到目标程序的行缓存失效率随同时执行的其它程序的行缓存失效率变化的SRC曲线。

        从SPEC2000fp选择一组标准程序,我们这里选择swim、equake、fma3d、mgrid、vpr,并通过剖析测试得到每一组程序的行缓存失效率。每一个目标程序都与这一组标准程序两两同时执行,剖析测试得到目标程序的行缓存失效率。5次剖析测试得到5个点,每一个点的横坐标是标准程序的cache失效率,纵坐标是目标程序的行缓存失效率。对这5个点做二次曲线拟合,得到目标程序的行缓存失效率随同时执行的其它程序的cache失效率变化的曲线SRC曲线。如图5所示。

        作为一种可实施方式,本发明通过性能监测计数器得到目标程序的行缓存失效率,然后用matlab软件的二次曲线拟合得到SRC曲线。

        步骤300.根据所述MRC和SRC曲线,计算适合目标程序集合的划分策略以降低多核系统中总的行缓存失效率,达到多核系统中对内存访存的优化。

        本步骤中,所述划分策略有两部分组成,一部分是确定每一目标程序占有的颜色数目,以及与任意程序共享的颜色数目,计算每一个目标程序的总的行缓存失效率;另一部分是进一步确定每一目标程序具体占有的那些颜色。

        图7是本发明中计算适合目标程序集合的划分策略的方法步骤流程图,如图7所示,所述步骤300,包括下列步骤:

        步骤310.根据页着色系统中颜色的数目,确定所有可能的颜色数目候选分配方案集合Candidate_Set;

        步骤320.从所述候选分配方案集合Candidate_Set中选择一个候选分配方案Candidate,计算当前颜色数目候选分配方案candidate的总的行缓存失效率最小的划分策略;

        步骤330.判断是否还有颜色数目候选分配方案candidate未处理,若是,则返回步骤320;否则,执行步骤340;

        步骤340.选择所述行缓存失效率最小的划分策略,采用这个划分策略通过proc文件系统设置着色掩码,对目标程序集进行DRAM bank划分。

        图8是本发明中计算当前颜色数目候选分配方案总的行缓存失效率最小的划分策略的步骤流程图,如图8所示,所述步骤320,包括下列步骤:

        步骤321.为目标程序集中的每一个程序随意分配任一种颜色,作为当前划分策略;

        步骤322.任意选择目标程序集中的一个程序和任意选择一种颜色,并且在所述当前划分策略下所述程序还没有拥有所述颜色,计算所述程序拥有所述颜色的情况下的系统行缓存失效率指标;

        有了MRC曲线和SRC曲线之后,我们可以根据下面这个公式来估计任意划分策略情况下,每一个目标程序的总的行缓存失效率指标(Row Buffer Missrate indicator,RBM)。

        假设DRAM系统中的bank数为M,对应页着色系统中总的颜色数目也为M。假设系统中同时执行的程序数量为N,目标程序的编号是i,它的MRC曲线和SRC曲线对应的函数分别为MRCi和SRCi。假设给定划分策略下:目标程序i占有颜色数目为mi,与任意程序j共享的颜色数目为mij。假设任意程序j的最后一级cache失效率表示为cmj,那么目标程序i的总的行缓存失效率指标(RBM)的公式如下:

        其中①表示给定划分策略条件下目标程序i的程序内行缓存失效率,而②表示目标程序i与任意程序j同时执行导致的程序间行缓存冲突失效率。

        通过上面这个公式计算给定划分策略下每一个目标程序的总的行缓存失效率情况,就能计算同时执行的所有程序的总的行缓存失效率RBM(P),从而评估与所有程序的总的行缓存失效率RBM(P)相对应的给定划分策略的好坏。即任意给定一个划分策略P,就能够得到该划分策略下多核系统中所有目标程序的总的行缓存失效率指标的计算公式:RBM(P)=Σ1≤k≤NRBMk,]]>其中k为多核系统中所有目标程序的数目。

        步骤323,判断是否存在还没有搜索过的程序与颜色的配对,若是,则返回步骤322,否则,执行步骤324;

        步骤324.比较所有程序与所有颜色配对的系统行缓存失效率指标,选择指标最小的程序min_i和颜色min_j的配对;

        步骤325.判断所述指标最小的程序min_i和颜色min_j的配对中程序min_i拥有的颜色数目min_j是否超过当前颜色数目分配方案candidate中设置的程序应该拥有的颜色数,若是,则输出所述指标最小的程序min_i和颜色min_j的配对作为当前颜色数目候选分配方案candidate的总的行缓存失效率最小的划分策略;否则,执行步骤326;

        步骤326.把颜色min_j指派给程序min_i,更新当前划分策略,返回步骤322。

        相应于本发明的一种多核系统中对内存访存的优化方法,还提供一种多核系统中对内存访存的优化系统,图9是本发明的一种多核系统中对内存访存的优化系统结构示意图,如图9所示,所述系统,包括:

        添加异或映射模块1,用于中央处理器的最后一级缓存中添加异或缓存映射机制来计算缓存的索引;

        曲线计算模块2,用于对操作系统中同时执行的多个目标程序中的每一个程序,利用操作系统中的页着色分配算法分别通过剖析测试得到每一个目标程序的失效率曲线和敏感度曲线;

        划分策略获取模块3,用于根据所述失效率曲线和敏感度曲线,计算适合目标程序集合的划分策略以降低多核系统中总的行缓存失效率,达到多核系统中对内存访存的优化。

        所述系统,还包括:

        页着色的分配算法添加模块4,用于在所述操作系统不支持页着色的分配算法时,为操作系统添加页着色的分配算法,采用proc文件系统作为控制目标程序占有哪些颜色的接口。

        所述系统,还包括:

        删除模块5,用于在内存控制器中存在异或地址映射时,去掉在内存控制器中的异或地址映射。

        所述曲线计算模块2,包括:

        MRC曲线计算模块21,用于在操作系统中分别在目标程序占有的相应颜色数目下单独执行目标程序,并记录相应目标程序占有的颜色数目下对应的目标程序的程序内行缓存失效率,用折线连接所述程序内行缓存失效率得到该目标程序的MRC曲线;

        SRC曲线计算模块22,用于将每一个目标程序与预先选定的一组标准测试程序分别同时执行一次,剖析测试得到目标程序的程序间行缓存失效率,对所述程序间行缓存失效率做二次曲线拟合,得到目标程序的行缓存失效率随同时执行的其它程序的行缓存失效率变化的SRC曲线。

        所述划分策略获取模块3,包括:

        候选集合模块31,用于根据页着色系统中颜色的数目,确定所有可能的颜色数目候选分配方案集合;

        行缓存失效率计算模块32,用于从所述颜色数目候选分配方案集合中选择一个颜色数目候选分配方案,计算当前颜色数目候选分配方案的总的行缓存失效率最小的划分策略;

        判断模块33,用于判断是否还有颜色数目候选分配方案未处理,若是,则触发行缓存失效率计算模块32;否则,触发划分模块34;

        划分模块34,用于比较每一个所述颜色数目候选分配方案对应的总的行缓存失效率最小的划分策略,选择其中最小的划分策略,采用这个划分策略通过proc文件系统设置着色掩码,对目标程序集进行动态随机存储器中存储体的划分。

        所述行缓存失效率计算模块32,包括:

        预设模块321,用于为目标程序集中的每一个程序随意分配任一种颜色,作为当前划分策略;

        计算子模块322,用于任意选择目标程序集中的一个程序和任意选择一种颜色,并且在所述当前划分策略下所述程序还没有拥有所述颜色,计算所述程序拥有所述颜色的情况下的系统行缓存失效率指标;

        判断子模块323,判断是否存在还没有搜索过的程序与颜色的配对,若是,则触发计算子模块322,否则,触发比较模块324;

        比较模块324,比较所有程序与所有颜色配对的系统行缓存失效率指标,选择指标最小的程序和颜色的配对;

        数目判断模块325,用于判断所述指标最小的程序拥有的颜色数目是否超过当前颜色数目分配方案中设置的程序应该拥有的颜色数,若是,则输出所述指标最小的程序和颜色的配对作为当前颜色数目候选分配方案的总的行缓存失效率最小的划分策略;否则,触发分配更新模块326;

        分配更新模块326,用于把所述颜色指派给所述指标最小的程序,更新当前划分策略,并触发计算子模块322。

        所述计算子模块322,采用以下公式计算所述程序拥有所述颜色的情况下的系统行缓存失效率指标的方法,

        计算给定划分策略下目标程序i的总的行缓存失效率指标,公式如下:

        其中,MRCi和SRCi分别对应失效率曲线和敏感度曲线,mi为目标程序i占有颜色数目,M为动态存储器系统中的存储体数目,mij为与任意程序j共享的颜色数目,①表示给定划分策略条件下目标程序i的程序内行缓存失效率,而②表示目标程序i与任意程序j同时执行导致的程序间行缓存冲突失效率。

        计算给定划分策略下多核系统中所有目标程序的总的行缓存失效率指标,计算公式:RBM(P)=Σ1≤k≤NRBMk,]]>其中k为多核系统中所有目标程序的数目。

        本发明的有益效果在于:

        采用本发明的一种多核系统中对内存访存的优化方法和系统,能够显著降低多核系统下多个程序同时执行时访问内存的行缓存失效率,降低DRAM的平均访问延迟,达到优化内存访问速度的目的,提高了多核系统的吞吐率,改善系统性能。

        通过结合附图对本发明具体实施例的描述,本发明的其它方面及特征对本领域的技术人员而言是显而易见的。

        以上对本发明的具体实施例进行了描述和说明,这些实施例应被认为其只是示例性的,并不用于对本发明进行限制,本发明应根据所附的权利要求进行解释。

    关 键  词:
    一种 多核 系统 内存 访问 优化 方法
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:一种多核系统中对内存访问的优化方法和系统.pdf
    链接地址:https://www.zhuanlichaxun.net/p-5781621.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
    经营许可证编号:粤ICP备2021068784号-1