一种存储器资源优化方法和装置的制造方法

文档序号:8258373阅读:216来源:国知局
一种存储器资源优化方法和装置的制造方法
【技术领域】
[0001]本发明涉及计算机领域,尤其涉及一种存储器资源优化方法和装置。
【背景技术】
[0002]如今多核高性能计算机(Mult1-core High Performance Computer)的应用越来越广泛,但随着处理器上计算单元(核)数目的持续增多,多核间的访存竞争现象使得问题变的更加复杂。在并发执行的任意时间段内,来自不同核的访存请求将会在全局的存储资源上形成访存竞争,进而引发在内存控制器(Memory Controller, MC),带宽(Bandwidth),动态随机存取存储器内容库(DRAM Bank)等资源上的冲突,影响资源的利用率。
[0003]以主存上的访问为例,通常以单个晶体管作为存储单元,并以N乘M个存储单元组成存储矩阵,再以若干个存储矩阵构成内容库(Bank),每个Bank都有一个行缓冲(Row-Buffer),对数据的访问需要先将目标行中的数据移动到行缓冲中才能读取。现代的DRAM系统通常使用多个Bank,以并行的形式独立处理各自的访存请求。但如果有两个来自不同进程或线程的访存请求访问同一个DRAM Bank的不同行,则会产生DRAM Bank上的冲突(或称行缓冲冲突)加大访存延迟。高速缓存(Cache)用以缓解计算单元和主存储器之间的差距,由于它比主存储器更靠近计算单元,所以更容易影响计算性能。目前的处理器基本都采用了多核间最后一级高速缓存共享(Last Level Cache,LLC)的结构,但是,并发的多道程序、线程间对LLC也存在激烈的竞争,如果没有采用恰当的管理策略,很容易引发严重的性能下降。
[0004]现有技术采用页着色(Page-Coloring)对LLC或DRAM Bank进行划分:对LLC的页着色划分,通过对物理地址中高速缓存集(Cache Set)索引位进行页着色的方式将Cache资源划分为若干独立的部分,并分别赋予不同的线程,因此,线程间因对Cache的共享而引发的竞争就消失了。与LLC划分类似,DRAM Bank索引位也能反映在物理地址中,依据这些地址位进行着色同样能将DRAM Bank划分为互不影响的若干组,程序间在DRAM Bank上的竞争就消失了。对于某些工作集,能够实现较好的性能提升效果。
[0005]但是,传统页着色技术对某一个层次的资源进行划分时,对其它层次的资源利用造成了负影响,比如,与LLC划分相关的工作对DRAM Bank资源性能的提升产生了制约;反之,对DRAM Bank的划分工作也影响着LLC资源的性能;另一方面,由于现代计算机系统运行的工作集多种多样,现有对某一个层次资源的页着色划分机制难以针对不同的工作集特性进行相应的配合,无法实现最佳的划分效果,对计算机整机性能的提升产生了限制。

【发明内容】

[0006]本发明的实施例提供一种存储器资源优化方法和装置,提供了一种LLC与DRAMBank之间的协同划分策略,与工作集特性相结合,能够解决进程、线程在存储资源上的相互影响的问题,从而提高计算机的整机性能。
[0007]为达到上述目的,本发明的实施例采用如下技术方案:
[0008]第一方面,提供一种存储器资源优化方法,所述方法包括:
[0009]获取工作集中各程序的性能数据,通过将所述各程序的性能数据和统计得到的所述各程序的访存频度与预设阈值进行比较,对所述各程序进行分类,所述各程序的性能数据为所述各程序预设性能指标随分配的最后一级高速缓存LLC资源容量变化而产生的变化量;
[0010]结合所述工作集中所述各程序所属的分类情况与预设决策策略,选择所述工作集对应的页着色划分策略,所述页着色划分策略包括同时对所述LLC与所述动态随机存取存储器内容库DRAM Bank进行页着色划分的页着色协同划分策略;
[0011]将所述工作集对应的页着色划分策略写入操作系统内核,并由所述操作系统内核进行相应页着色划分处理。
[0012]结合第一方面,在第一种可能的实现方式中,所述获取工作集中各程序的性能数据包括:
[0013]通过页着色技术将所述LLC资源划分为N份,以所述LLC资源最大容量的1/N为一级,起始时为所述各程序分配所述LLC资源的最大容量,每次调整将分配给所述各程序的所述LLC资源容量大小减小一级,直至减小为所述LLC资源最大容量的1/N ;
[0014]监测调整过程中所述各程序预设性能指标随分配的所述LLC资源容量大小变化而产生的变化量,将所述变化量作为所述各程序的性能数据,所述预设性能指标为所述各程序的加速比。
[0015]结合第一方面或第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述通过将所述各程序的性能数据和统计得到的所述各程序的访存频度与预设阈值进行比较,对所述各程序进行分类包括:
[0016]统计所述各程序在运行过程的预设阶段中访问主存的次数,得到所述各程序的访存频度;
[0017]将所述各程序的性能数据和统计得到的所述各程序的访存频度与所述预设阈值进行比较;其中,所述预设阈值包括第一阈值、第二阈值和第三阈值,所述第一阈值、所述第二阈值为性能数据阈值,所述第三阈值为访存频度阈值;
[0018]若一个程序的性能数据大于所述第一阈值,则所述程序为高需求型;
[0019]若一个程序的性能数据小于所述第一阈值且大于所述第二阈值,则所述程序为中需求型;
[0020]若一个程序的性能数据小于所述第二阈值且访存频度大于所述第三阈值,则所述程序为低需求密集型。
[0021]结合第一方面,在第三种可能的实现方式中,所述结合所述工作集中所述各程序所属的分类情况与预设决策策略,选择所述工作集对应的页着色划分策略包括:
[0022]所述预设决策策略为所述操作系统内核中的划分策略决策树,所述划分策略决策树在所述操作系统内核中以算法形式实现;
[0023]将所述工作集中所述各程序所属的分类情况输入所述操作系统内核,结合所述工作集中所述各程序的分类,在所述操作系统内核中的所述划分策略决策树上查找对应的节点以确定所述工作集对应的页着色划分策略。
[0024]结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述页着色划分策略包括所述页着色协同划分策略和页着色非协同划分策略;
[0025]所述页着色协同划分策略为使用索引重合地址位Ο-bits作为页着色划分索引位的划分策略,所述Ο-bits为物理页帧中所述LLC索引位与所述DRAM Bank索引位重合的地址位,用于同时索引对所述LLC与对所述DRAM Bank的页着色划分;
[0026]所述页着色协同划分策略包括:
[0027]A类多级存储器协同划分策略A-MMCP,使用所述0_bits作为划分索引位,将所述LLC和所述DRAM Bank划分为数量相同的等份;
[0028]B类多级存储器协同划分策略B-MMCP,使用所述0_bits与所述DRAM Bank的索引位作为划分索引位,将所述LLC和所述DRAM Bank划分为数量不相同的等份,且所述DRAMBank划分的数量大于所述LLC划分的数量;
[0029]C类多级存储器协同划分策略C-MMCP,使用所述0_bits与所述LLC的索引位作为划分索引位,将所述LLC和所述DRAM Bank划分为数量不相同的等份,且所述DRAM Bank划分的数量小于所述LLC划分的数量;
[0030]所述页着色协同划分策略为不使用所述Ο-bits的划分策略,包括:
[0031]Cache-Only策略,使用所述LLC的索引位,对所述LLC着色划分且不对所述DRAMBank进行着色划分;
[0032]Bank-Only策略,使用所述DRAM Bank的索引位,对所述DRAM Bank着色划分且不对所述LLC进行着色划分。
[0033]结合第一方面的第三种可能的实现方式或第一方面的第四种可能的实现方式,在第五种可能的实现方式中,所述结合所述工作集中所述各程序的分类,在所述操作系统内核中的所述划分策略决策树上查找对应的节点以确定所述工作集对应的页着色划分策略包括:
[0034]若所述工作集中所述各程序所属的分类都为所述高需求型,则选用所述Bank-Only 策略;
[0035]若所述工作集中所述各程序所属的分类中存在所述低需求密集型,则进一步判断所述工作集中程序的数目,若程序的数目小于等于N,则选用A-CMMP,否则选用C-CMMP,其中,N为处理器的核心数;
[0036]若所述工作集中所述各程序所属的分类中存在所述中需求型且不存在所述低需求密集型,则进一步判断所述工作集中程序的数目,若程序的数目小于等于N,则选用A-CMMP,否则选用B-CMMP,其中,N为处理器的核心数。
[0037]第二方面,提供一种存储器资源优化装置,所述装置包括:
[0038]前端单元,用于获取工作集中各程序的性能数据,通过将所述各程序的性能数据和统计得到的所述各程序的访存频度与预设阈值进行比较,对所述各程序进行分类,所述各程序的性能数据为所述各程序预设性能指标随分配的最后一级高速缓存LLC资源容量变化而产生的变化量;
[0039]决策单元,用于结合所述工作集中所述各程序所属的分类情况与预设决策策略,选择所述工作集对应的页着色划分策略,所述页着色划分策略包括同时对所述LLC与所述动态随机存取存储器内容库DRAM Bank进行页着色划分的页着色协同划分策略;
[0040]划分单元,用于将所述工作集对应的页着色划分策略写入操作系统内核,并由所述操作系统内核进行相应页着色划分处理。
[0041]结合第二方面,在第一种可能
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1