发明内容
本发明的实施例提供一种存储器资源优化方法和装置,提供了一种LLC与DRAMBank之间的协同划分策略,与工作集特性相结合,能够解决进程、线程在存储资源上的相互影响的问题,从而提高计算机的整机性能。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,提供一种存储器资源优化方法,所述方法包括:
获取工作集中各程序的性能数据,通过将所述各程序的性能数据和统计得到的所述各程序的访存频度与预设阈值进行比较,对所述各程序进行分类,所述各程序的性能数据为所述各程序预设性能指标随分配的最后一级高速缓存LLC资源容量变化而产生的变化量;
结合所述工作集中所述各程序所属的分类情况与预设决策策略,选择所述工作集对应的页着色划分策略,所述页着色划分策略包括同时对所述LLC与所述动态随机存取存储器内容库DRAM Bank进行页着色划分的页着色协同划分策略;
将所述工作集对应的页着色划分策略写入操作系统内核,并由所述操作系统内核进行相应页着色划分处理。
结合第一方面,在第一种可能的实现方式中,所述获取工作集中各程序的性能数据包括:
通过页着色技术将所述LLC资源划分为N份,以所述LLC资源最大容量的1/N为一级,起始时为所述各程序分配所述LLC资源的最大容量,每次调整将分配给所述各程序的所述LLC资源容量大小减小一级,直至减小为所述LLC资源最大容量的1/N;
监测调整过程中所述各程序预设性能指标随分配的所述LLC资源容量大小变化而产生的变化量,将所述变化量作为所述各程序的性能数据,所述预设性能指标为所述各程序的加速比。
结合第一方面或第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述通过将所述各程序的性能数据和统计得到的所述各程序的访存频度与预设阈值进行比较,对所述各程序进行分类包括:
统计所述各程序在运行过程的预设阶段中访问主存的次数,得到所述各程序的访存频度;
将所述各程序的性能数据和统计得到的所述各程序的访存频度与所述预设阈值进行比较;其中,所述预设阈值包括第一阈值、第二阈值和第三阈值,所述第一阈值、所述第二阈值为性能数据阈值,所述第三阈值为访存频度阈值;
若一个程序的性能数据大于所述第一阈值,则所述程序为高需求型;
若一个程序的性能数据小于所述第一阈值且大于所述第二阈值,则所述程序为中需求型;
若一个程序的性能数据小于所述第二阈值且访存频度大于所述第三阈值,则所述程序为低需求密集型。
结合第一方面,在第三种可能的实现方式中,所述结合所述工作集中所述各程序所属的分类情况与预设决策策略,选择所述工作集对应的页着色划分策略包括:
所述预设决策策略为所述操作系统内核中的划分策略决策树,所述划分策略决策树在所述操作系统内核中以算法形式实现;
将所述工作集中所述各程序所属的分类情况输入所述操作系统内核,结合所述工作集中所述各程序的分类,在所述操作系统内核中的所述划分策略决策树上查找对应的节点以确定所述工作集对应的页着色划分策略。
结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述页着色划分策略包括所述页着色协同划分策略和页着色非协同划分策略;
所述页着色协同划分策略为使用索引重合地址位O-bits作为页着色划分索引位的划分策略,所述O-bits为物理页帧中所述LLC索引位与所述DRAM Bank索引位重合的地址位,用于同时索引对所述LLC与对所述DRAM Bank的页着色划分;
所述页着色协同划分策略包括:
A类多级存储器协同划分策略A-MMCP,使用所述O-bits作为划分索引位,将所述LLC和所述DRAM Bank划分为数量相同的等份;
B类多级存储器协同划分策略B-MMCP,使用所述O-bits与所述DRAM Bank的索引位作为划分索引位,将所述LLC和所述DRAM Bank划分为数量不相同的等份,且所述DRAM Bank划分的数量大于所述LLC划分的数量;
C类多级存储器协同划分策略C-MMCP,使用所述O-bits与所述LLC的索引位作为划分索引位,将所述LLC和所述DRAM Bank划分为数量不相同的等份,且所述DRAM Bank划分的数量小于所述LLC划分的数量;
所述页着色协同划分策略为不使用所述O-bits的划分策略,包括:
Cache-Only策略,使用所述LLC的索引位,对所述LLC着色划分且不对所述DRAMBank进行着色划分;
Bank-Only策略,使用所述DRAM Bank的索引位,对所述DRAM Bank着色划分且不对所述LLC进行着色划分。
结合第一方面的第三种可能的实现方式或第一方面的第四种可能的实现方式,在第五种可能的实现方式中,所述结合所述工作集中所述各程序的分类,在所述操作系统内核中的所述划分策略决策树上查找对应的节点以确定所述工作集对应的页着色划分策略包括:
若所述工作集中所述各程序所属的分类都为所述高需求型,则选用所述Bank-Only策略;
若所述工作集中所述各程序所属的分类中存在所述低需求密集型,则进一步判断所述工作集中程序的数目,若程序的数目小于等于N,则选用A-MMCP,否则选用C-MMCP,其中,N为处理器的核心数;
若所述工作集中所述各程序所属的分类中存在所述中需求型且不存在所述低需求密集型,则进一步判断所述工作集中程序的数目,若程序的数目小于等于N,则选用A-MMCP,否则选用B-MMCP,其中,N为处理器的核心数。
第二方面,提供一种存储器资源优化装置,所述装置包括:
前端单元,用于获取工作集中各程序的性能数据,通过将所述各程序的性能数据和统计得到的所述各程序的访存频度与预设阈值进行比较,对所述各程序进行分类,所述各程序的性能数据为所述各程序预设性能指标随分配的最后一级高速缓存LLC资源容量变化而产生的变化量;
决策单元,用于结合所述工作集中所述各程序所属的分类情况与预设决策策略,选择所述工作集对应的页着色划分策略,所述页着色划分策略包括同时对所述LLC与所述动态随机存取存储器内容库DRAM Bank进行页着色划分的页着色协同划分策略;
划分单元,用于将所述工作集对应的页着色划分策略写入操作系统内核,并由所述操作系统内核进行相应页着色划分处理。
结合第二方面,在第一种可能的实现方式中,所述前端单元包括数据收集单元,所述数据收集单元具体用于:
通过页着色技术将所述LLC资源划分为N份,以所述LLC资源最大容量的1/N为一级,起始时为所述各程序分配所述LLC资源的最大容量,每次调整将分配给所述各程序的所述LLC资源容量大小减小一级,直至减小为所述LLC资源最大容量的1/N;
监测调整过程中所述各程序预设性能指标随分配的所述LLC资源容量大小变化而产生的变化量,将所述变化量作为所述各程序的性能数据,所述预设性能指标为所述各程序的加速比。
结合第二方面或第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述前端单元还包括分类单元,所述分类单元具体用于:
统计所述各程序在运行过程的预设阶段中访问主存的次数,得到所述各程序的访存频度;
将所述各程序的性能数据和统计得到的所述各程序的访存频度与所述预设阈值进行比较;其中,所述预设阈值包括第一阈值、第二阈值和第三阈值,所述第一阈值、所述第二阈值为性能数据阈值,所述第三阈值为访存频度阈值;
若一个程序的性能数据大于所述第一阈值,则所述程序为高需求型;
若一个程序的性能数据小于所述第一阈值且大于所述第二阈值,则所述程序为中需求型;
若一个程序的性能数据小于所述第二阈值且访存频度大于所述第三阈值,则所述程序为低需求密集型。
结合第二方面,在第三种可能的实现方式中,所述预设决策策略为所述操作系统内核中的划分策略决策树,所述划分策略决策树在所述操作系统内核中以算法形式实现,所述决策单元具体用于:
将所述工作集中所述各程序所属的分类情况输入所述操作系统内核,结合所述工作集中所述各程序的分类,在所述操作系统内核中的所述划分策略决策树上查找对应的节点以确定所述工作集对应的页着色划分策略。
结合第二方面的第三种可能的实现方式,在第四种可能的实现方式中,所述页着色划分策略包括所述页着色协同划分策略和页着色非协同划分策略;
所述页着色协同划分策略为使用索引重合地址位O-bits作为页着色划分索引位的划分策略,所述O-bits为物理页帧中所述LLC索引位与所述DRAM Bank索引位重合的地址位,用于同时索引对所述LLC与对所述DRAM Bank的页着色划分;
所述页着色协同划分策略包括:
A类多级存储器协同划分策略A-MMCP,使用所述O-bits作为划分索引位,将所述LLC和所述DRAM Bank划分为数量相同的等份;
B类多级存储器协同划分策略B-MMCP,使用所述O-bits与所述DRAM Bank的索引位作为划分索引位,将所述LLC和所述DRAM Bank划分为数量不相同的等份,且所述DRAM Bank划分的数量大于所述LLC划分的数量;
C类多级存储器协同划分策略C-MMCP,使用所述O-bits与所述LLC的索引位作为划分索引位,将所述LLC和所述DRAM Bank划分为数量不相同的等份,且所述DRAM Bank划分的数量小于所述LLC划分的数量;
所述页着色协同划分策略为不使用所述O-bits的划分策略,包括:
Cache-Only策略,使用所述LLC的索引位,对所述LLC着色划分且不对所述DRAMBank进行着色划分;
Bank-Only策略,使用所述DRAM Bank的索引位,对所述DRAM Bank着色划分且不对所述LLC进行着色划分。
结合第二方面的第三种可能的实现方式或第二方面的第四种可能的实现方式,在第五种可能的实现方式中,所述决策单元还具体用于:
若所述工作集中所述各程序所属的分类都为所述高需求型,则选用所述Bank-Only策略;
若所述工作集中所述各程序所属的分类中存在所述低需求密集型,则进一步判断所述工作集中程序的数目,若程序的数目小于等于N,则选用A-MMCP,否则选用C-MMCP,其中,N为处理器的核心数;
若所述工作集中所述各程序所属的分类中存在所述中需求型且不存在所述低需求密集型,则进一步判断所述工作集中程序的数目,若程序的数目小于等于N,则选用A-MMCP,否则选用B-MMCP,其中,N为处理器的核心数。
本发明的实施例提供一种存储器资源优化方法和装置,通过页着色技术对LLC进行划分获取工作集中各程序的性能数据,结合访存频度得到各程序的分类,根据各程序的分类选择工作集对应的页着色划分策略,并将页着色划分策略输入操作系统内核,完成相应的着色划分处理。这样,结合工作集的特点实现了LLC与DRAM Bank之间的协同划分策略,能够降低甚至消除进程、线程在存储资源上的相互干扰,提高了计算机的整机性能。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的实施例提供一种存储器资源优化方法,如图1所示,该方法包括:
S101、获取工作集中各程序的性能数据,通过将各程序的性能数据和统计得到的各程序的访存频度与预设阈值进行比较,对各程序进行分类,各程序的性能数据为各程序预设性能指标随分配的最后一级高速缓存LLC资源容量变化而产生的变化量。
S102、结合工作集中各程序所属的分类情况与预设决策策略,选择工作集对应的页着色划分策略,页着色划分策略包括同时对LLC与动态随机存取存储器内容库DRAM Bank进行页着色划分的页着色协同划分策略。
S103、将工作集对应的页着色划分策略写入操作系统内核,并由操作系统内核进行相应页着色划分处理。
本发明的实施例提供一种存储器资源优化方法,通过获取工作集中各程序的性能数据,结合访存频度得到各程序的分类,根据各程序的分类选择工作集的页着色划分策略,并将页着色划分策略输入操作系统内核,完成相应的着色划分处理。这样,结合工作集的特点实现了LLC与DRAM Bank之间的协同划分策略,能够降低甚至消除进程、线程在存储资源上的相互干扰,提高了计算机的整机性能。
为了使本领域技术人员能够更清楚地理解本发明实施例提供的技术方案,下面通过具体的实施例,对本发明实施例提供的另一种存储器资源优化方法进行详细说明,如图2所示,该方法包括:
S201、获取工作集中各程序的性能数据。
具体的,通过页着色技术对LLC资源进行划分,将LLC资源划分为N份,并以LLC资源最大容量的1/N为一级。起始时为各程序分配LLC资源的最大容量,每次调整将分配给各程序的LLC资源容量大小减小一级,直至分配给各程序的LLC资源减小为LLC资源最大容量的1/N;在调整过程中监测各程序预设性能指标随分配的LLC资源容量大小变化而产生的变化量,将变化量作为各程序的性能数据。
示例性的,在4核处理器中,N可以为8,以LLC资源最大容量的1/8为一级,调整分配给工作集中各程序的LLC资源容量,每次调整将分配给工作集中各程序的LLC资源容量减小一级,直至分配给各程序的LLC资源减小为LLC资源最大容量的1/8,监测上述调整过程中各程序的预设性能指标随分配的LLC资源容量大小变化而产生的变化量。
其中,各程序的预设性能指标可以为归一化加速比,获取在整个调整过程中,各程序归一化加速比随分配的LLC资源容量变化而产生的变化量,并将此变化量作为各程序的性能数据。
S202、结合统计得到的工作集中各程序的访存频度,确定各程序所属的分类。
具体的,通过硬件性能计数器统计各程序在运行过程的预设阶段或时间段中访问主存的次数,得到各程序的访存频度。
而后,结合各程序的性能数据与各程序的访存频度,根据预设阈值确定各程序所属的分类。
其中,预设阈值包括第一阈值、第二阈值和第三阈值;第一阈值、第二阈值为性能数据阈值,第三阈值为访存频度阈值;
示例性的,性能数据为各程序的归一化加速比随分配给各程序的LLC资源容量变化而产生的变化量,在调整分配给各程序的LLC容量从LLC最大容量减小到LLC最大容量1/N的过程,以四核计算机为例,N取8,如图3所示,获得各个程序的归一化加速比随分配给各程序的LLC资源容量变化的曲线。则可得主要分类方式如下:
若程序的归一化加速比大于第一阈值,可知此类程序性能随LLC资源容量的减小,降低幅度很大,即受分配的LLC资源容量影响很大,则将此类程序归类为高需求型031;
若程序的归一化加速比小于第一阈值且大于第二阈值,可知此类程序性能随LLC资源容量的减小,降低幅度适中,即受分配的LLC资源容量影响适中,则将此类程序归类为中需求型032;
若程序的归一化加速比小于第二阈值且访存频度大于第三阈值,可知此类程序性能随LLC资源容量的减小,变化幅度很小,但程序的访存频度高,即受分配的LLC资源容量影响较小,为低需求型033,但受主存容量的影响较大,为访存密集型,则将此类程序归类为低需求密集型。
示例性的,上述高需求031还可以具体包括:最后一级高速缓存高需求型(LLCFitting,LLCF)、最后一级高速缓存友好型(LLC Friendly,LLCFR);上述中需求型032可具体包括:最后一级高速缓存摇摆型(LLC Swing,LLCS);上述低需求型033可具体包括:低需求访存非密集型(Core Cache Fitting,CCS)、低需求访存密集型(LLC Thrashing,LLCT)。
S203、根据工作集中各程序所属的分类,选择工作集对应的页着色划分策略。
具体的,将工作集中各程序所属的分类,输入操作系统内核中,再根据预设决策策略选择工作集相应的页着色划分策略。
其中,工作集中各程序所属的分类可以通过/proc机制传入操作系统内核;预设决策策略可以为操作系统内核中的划分策略决策树,且划分策略决策树在操作系统内核中以算法形式实现。
具体的,将工作集中各程序所属的分类情况输入操作系统内核,结合工作集中各程序的分类,在操作系统内核中的划分策略决策树上查找对应的节点以确定工作集对应的页着色划分策略。页着色划分策略包括页着色协同划分策略和页着色非协同划分策略:
其中,页着色协同划分策略为使用索引重合地址位O-bits作为页着色划分索引位的划分策略,O-bits为物理页帧中LLC索引位与DRAM Bank索引位重合的地址位,用于同时索引对LLC与对DRAM Bank的页着色划分;
页着色协同划分策略包括:
A类多级存储器协同划分策略A-MMCP,使用O-bits作为划分索引位,将LLC和DRAMBank划分为数量相同的等份;
B类多级存储器协同划分策略B-MMCP,使用O-bits与DRAM Bank的索引位作为划分索引位,将LLC和DRAM Bank划分为数量不相同的等份,且DRAM Bank划分的数量大于LLC划分的数量;
C类多级存储器协同划分策略C-MMCP,使用O-bits与LLC的索引位作为划分索引位,将LLC和DRAM Bank划分为数量不相同的等份,且DRAM Bank划分的数量小于LLC划分的数量;
页着色协同划分策略为不使用O-bits的划分策略,包括:
Cache-Only策略,使用LLC的索引位,对LLC着色划分且不对DRAM Bank进行着色划分;
Bank-Only策略,使用DRAM Bank的索引位,对DRAM Bank着色划分且不对LLC进行着色划分。
示例性的,LLC与DRAM Bank索引重合地址位O-bits可以为物理页帧中的第{14,15}位,两位索引位可划分00、01、10、11四种颜色;且物理页帧中还存在LLC索引地址位{16,17,18}位及DRAM Bank索引地址位{21,22}位。
A-MMCP仅使用O-bits,即14位与15位两位进行着色划分,可将LLC划分为4个等份,将DRAM Bank划分为4个等份;
B-MMCP使用O-bits与DRAM Bank索引地址位中的一位,即14位、15位与21位三位进行着色划分,可将LLC划分为4个等份,将DRAM Bank划分为8个等份;
C-MMCP使用O-bits与LLC索引地址位中的一位,即14位、15位与16位三位进行着色划分,可将LLC划分为8个等份,将DRAM Bank划分为4个等份。
具体的,划分策略决策树在操作系统内核中以算法形式实现包括:
若工作集中各程序所属的分类都为高需求型031,则选用Bank-Only策略;
若工作集中各程序所属的分类中存在低需求密集型,则进一步判断工作集中程序的数目,若程序的数目小于等于N,则选用A-MMCP,否则选用C-MMCP,其中,N为处理器的核心数;
若工作集中各程序所属的分类中存在中需求型032且不存在低需求密集型,则进一步判断工作集中程序的数目,若程序的数目小于等于N,则选用A-MMCP,否则选用B-MMCP,其中,N为处理器的核心数。
S204、将工作集对应的页着色划分策略写入操作系统内核,并由操作系统内核进行相应页着色划分处理。
具体的,将选择的页着色划分策略可以通过/proc机制写入操作系统内核,由操作系统中的伙伴系统(Buddy System)对内存分配机制进行调整,完成着色划分操作。
示例性的,伙伴系统中管理机制与检索机制可完成对着色需求的页面进行管理与检索;且可调整内存分配机制在多种划分策略之间进行切换。
本发明的实施例提供一种存储器资源优化方法,通过页着色技术对LLC资源进行划分,获取工作集中各程序的性能数据,结合访存频度得到各程序的分类,根据各程序的分类选择工作集的页着色划分策略,并将页着色划分策略输入操作系统内核,完成相应的着色划分处理。这样,结合工作集的特点实现了LLC与DRAM Bank之间的协同划分策略,能够降低甚至消除进程、线程在存储资源上的相互干扰,提高了计算机的整机性能。
本发明的实施例提供一种存储器资源优化装置00,如图4所示,该装置包括:
前端单元001,用于获取工作集中各程序的性能数据,通过将各程序的性能数据和统计得到的各程序的访存频度与预设阈值进行比较,对各程序进行分类,各程序的性能数据为各程序预设性能指标随分配的最后一级高速缓存LLC资源容量变化而产生的变化量;
决策单元002,用于结合工作集中各程序所属的分类情况与预设决策策略,选择工作集对应的页着色划分策略,页着色划分策略包括同时对LLC与动态随机存取存储器内容库DRAM Bank进行页着色划分的页着色协同划分策略;
划分单元003,用于将工作集对应的页着色划分策略写入操作系统内核,并由操作系统内核进行相应页着色划分处理。
其中,如图5所示,前端单元001可以包括数据收集单元0011、分类单元0012。
可选的,数据收集单元0011用于通过页着色技术将LLC资源划分为N份,以LLC资源最大容量的1/N为一级,起始时为各程序分配LLC资源的最大容量,每次调整将分配给各程序的LLC资源容量大小减小一级,直至减小为LLC资源最大容量的1/N;
监测调整过程中各程序预设性能指标随分配的LLC资源容量大小变化而产生的变化量,将变化量作为各程序的性能数据,预设性能指标为各程序的加速比。
可选的,分类单元0012用于统计各程序在运行过程的预设阶段中访问主存的次数,得到各程序的访存频度;
将各程序的性能数据和统计得到的各程序的访存频度与预设阈值进行比较;其中,预设阈值包括第一阈值、第二阈值和第三阈值,第一阈值、第二阈值为性能数据阈值,第三阈值为访存频度阈值;
若一个程序的性能数据大于第一阈值,则程序为高需求型;
若一个程序的性能数据小于第一阈值且大于第二阈值,则程序为中需求型;
若一个程序的性能数据小于第二阈值且访存频度大于第三阈值,则程序为低需求密集型。
可选的,预设决策策略为操作系统内核中的划分策略决策树,划分策略决策树在操作系统内核中以算法形式实现,决策单元002具体用于:
将工作集中各程序所属的分类情况输入操作系统内核,结合工作集中各程序的分类,在操作系统内核中的划分策略决策树上查找对应的节点以确定工作集对应的页着色划分策略。
可选的,页着色划分策略包括页着色协同划分策略和页着色非协同划分策略,具体的:
页着色协同划分策略为使用索引重合地址位O-bits作为页着色划分索引位的划分策略,O-bits为物理页帧中LLC索引位与DRAM Bank索引位重合的地址位,用于同时索引对LLC与对DRAM Bank的页着色划分;
其中,页着色协同划分策略包括:
A类多级存储器协同划分策略A-MMCP,使用O-bits作为划分索引位,将LLC和DRAMBank划分为数量相同的等份;
B类多级存储器协同划分策略B-MMCP,使用O-bits与DRAM Bank的索引位作为划分索引位,将LLC和DRAM Bank划分为数量不相同的等份,且DRAM Bank划分的数量大于LLC划分的数量;
C类多级存储器协同划分策略C-MMCP,使用O-bits与LLC的索引位作为划分索引位,将LLC和DRAM Bank划分为数量不相同的等份,且DRAM Bank划分的数量小于LLC划分的数量;
其中,页着色协同划分策略为不使用O-bits的划分策略,包括:
Cache-Only策略,使用LLC的索引位,对LLC着色划分且不对DRAM Bank进行着色划分;
Bank-Only策略,使用DRAM Bank的索引位,对DRAM Bank着色划分且不对LLC进行着色划分。
可选的,决策单元002还具体用于:
若工作集中各程序所属的分类都为高需求型,则选用Bank-Only策略;
若工作集中各程序所属的分类中存在低需求密集型,则进一步判断工作集中程序的数目,若程序的数目小于等于N,则选用A-MMCP,否则选用C-MMCP,其中,N为处理器的核心数;
若工作集中各程序所属的分类中存在中需求型且不存在低需求密集型,则进一步判断工作集中程序的数目,若程序的数目小于等于N,则选用A-MMCP,否则选用B-MMCP,其中,N为处理器的核心数。
本发明的实施例提供一种存储器资源优化装置,通过页着色技术对LLC资源进行划分,获取工作集中各程序的性能数据,结合访存频度得到各程序的分类,根据各程序的分类选择工作集的页着色划分策略,并将页着色划分策略输入操作系统内核,完成相应的着色划分处理。这样,结合工作集的特点实现了LLC与DRAM Bank之间的协同划分策略,能够降低甚至消除进程、线程在存储资源上的相互干扰,提高了计算机的整机性能。
本发明实施例还提供了一种存储器资源优化装置01,如图6所示,该存储器资源优化装置01包括:
总线011、以及连接到总线011的处理器012、存储器013和接口014,其中接口014用于与外部设备进行通信;
该存储器013用于存储指令,该处理器012用于执行该指令用于获取工作集中各程序的性能数据,通过将各程序的性能数据和统计得到的各程序的访存频度与预设阈值进行比较,对各程序进行分类,各程序的性能数据为各程序预设性能指标随分配的最后一级高速缓存LLC资源容量变化而产生的变化量;
该处理器012执行该指令还用于结合工作集中各程序所属的分类情况与预设决策策略,选择工作集对应的页着色划分策略,页着色划分策略包括同时对LLC与动态随机存取存储器内容库DRAM Bank进行页着色划分的页着色协同划分策略;
该处理器012执行该指令还用于将工作集对应的页着色划分策略写入操作系统内核,并由操作系统内核进行相应页着色划分处理。
在本发明实施例中,可选的,该处理器012执行该指令可以具体用于:通过页着色技术将LLC资源划分为N份,以LLC资源最大容量的1/N为一级,起始时为各程序分配LLC资源的最大容量,每次调整将分配给各程序的LLC资源容量大小减小一级,直至减小为LLC资源最大容量的1/N;
并监测调整过程中各程序预设性能指标随分配的LLC资源容量大小变化而产生的变化量,将变化量作为各程序的性能数据,预设性能指标为各程序的加速比。
在本发明实施例中,可选的,该处理器012执行该指令可以具体用于:统计各程序在运行过程的预设阶段中访问主存的次数,得到各程序的访存频度;
将各程序的性能数据和统计得到的各程序的访存频度与预设阈值进行比较;其中,预设阈值包括第一阈值、第二阈值和第三阈值,第一阈值、第二阈值为性能数据阈值,第三阈值为访存频度阈值;
若一个程序的性能数据大于第一阈值,则程序为高需求型;
若一个程序的性能数据小于第一阈值且大于第二阈值,则程序为中需求型;
若一个程序的性能数据小于第二阈值且访存频度大于第三阈值,则程序为低需求密集型。
在本发明实施例中,可选的,预设决策策略为操作系统内核中的划分策略决策树,划分策略决策树在操作系统内核中以算法形式实现,该处理器012执行该指令可以具体用于:
将工作集中各程序所属的分类情况输入操作系统内核,结合工作集中各程序的分类,在操作系统内核中的划分策略决策树上查找对应的节点以确定工作集对应的页着色划分策略。
在本发明实施例中,可选的,页着色划分策略包括页着色协同划分策略和页着色非协同划分策略,具体的:
页着色协同划分策略为使用索引重合地址位O-bits作为页着色划分索引位的划分策略,O-bits为物理页帧中LLC索引位与DRAM Bank索引位重合的地址位,用于同时索引对LLC与对DRAM Bank的页着色划分;
其中,页着色协同划分策略包括:
A类多级存储器协同划分策略A-MMCP,使用O-bits作为划分索引位,将LLC和DRAMBank划分为数量相同的等份;
B类多级存储器协同划分策略B-MMCP,使用O-bits与DRAM Bank的索引位作为划分索引位,将LLC和DRAM Bank划分为数量不相同的等份,且DRAM Bank划分的数量大于LLC划分的数量;
C类多级存储器协同划分策略C-MMCP,使用O-bits与LLC的索引位作为划分索引位,将LLC和DRAM Bank划分为数量不相同的等份,且DRAM Bank划分的数量小于LLC划分的数量;
其中,页着色协同划分策略为不使用O-bits的划分策略,包括:
Cache-Only策略,使用LLC的索引位,对LLC着色划分且不对DRAM Bank进行着色划分;
Bank-Only策略,使用DRAM Bank的索引位,对DRAM Bank着色划分且不对LLC进行着色划分。
在本发明实施例中,可选的,该处理器012执行该指令可以具体用于:
若工作集中各程序所属的分类都为高需求型,则选用Bank-Only策略;
若工作集中各程序所属的分类中存在低需求密集型,则进一步判断工作集中程序的数目,若程序的数目小于等于N,则选用A-MMCP,否则选用C-MMCP,其中,N为处理器的核心数;
若工作集中各程序所属的分类中存在中需求型且不存在低需求密集型,则进一步判断工作集中程序的数目,若程序的数目小于等于N,则选用A-MMCP,否则选用B-MMCP,其中,N为处理器的核心数。
本发明的实施例提供一种存储器资源优化装置,通过页着色技术对LLC资源进行划分,获取工作集中各程序的性能数据,结合访存频度得到各程序的分类,根据各程序的分类选择工作集的页着色划分策略,并将页着色划分策略输入操作系统内核,完成相应的着色划分处理。这样,结合工作集的特点实现了LLC与DRAM Bank之间的协同划分策略,能够降低甚至消除进程、线程在存储资源上的相互干扰,提高了计算机的整机性能。
在本申请所提供的几个实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。另一点,所显示或讨论的模块相互之间的连接可以是通过一些接口,可以是电性,机械或其它的形式。
所述各个模块可以是或者也可以不是物理上分开的,可以是或者也可以不是物理单元。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理包括,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
上述以软件功能单元的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。