System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 内存分配方法、装置、片上系统、计算设备和程序产品制造方法及图纸_技高网

内存分配方法、装置、片上系统、计算设备和程序产品制造方法及图纸

技术编号:44152713 阅读:0 留言:0更新日期:2025-01-29 10:25
本申请提出一种内存分配方法、装置、片上系统、计算设备和程序产品,该方法应用于包括多个系统节点的片上系统,该片上系统中设置有性能监测单元,用于监测多个系统节点中的内存访问事件;该方法包括:在第一系统节点中的第一线程请求分配内存的情况下,获取各个系统节点的内存访问带宽,以及确定第一系统节点与其他系统节点之间的距离;基于各个系统节点的内存访问带宽,以及第一系统节点与其他系统节点之间的距离,从多个系统节点中确定出使得第一线程访问内存时的内存访问速度最快的目标系统节点;目标系统节点用于为第一线程提供所需内存。该方法能够使得内存分配更合理,使得线程访问内存更顺畅,避免内存访问阻塞,有助于提高系统性能。

【技术实现步骤摘要】

本申请涉及计算机,尤其涉及一种内存分配方法、装置、片上系统、计算设备和程序产品。


技术介绍

1、在基于非一致性内存访问(non-uniform memory access,numa)架构的计算机系统中,每个系统节点中均设置有相应内存。但是,在实际运行过程中,并不是每个系统节点中的内核线程只使用其所在系统节点的内存,在所在系统节点的内存不足时,也会从其他系统节点为其分配内存。

2、这就使得基于numa架构的计算机系统中的内存分配更加复杂,而每个系统节点中的内存的访问通道带宽是有限的,如果内存分配不合理,将会导致内存访问阻塞,影响系统性能。


技术实现思路

1、基于上述技术问题,本申请提出一种内存分配方法、装置、片上系统、计算设备和程序产品,能够使得内存分配更合理,使得线程访问内存更顺畅,避免内存访问阻塞,有助于提高系统性能。

2、本申请第一方面提出一种内存分配方法,应用于片上系统,所述片上系统包括多个系统节点,所述系统节点中包括内存,所述片上系统中设置有性能监测单元,用于监测所述多个系统节点中的内存访问事件;所述方法包括:

3、在第一系统节点中的第一线程请求分配内存的情况下,获取各个系统节点的内存访问带宽,以及确定所述第一系统节点与其他系统节点之间的距离;其中,系统节点的内存访问带宽基于系统节点中的内存访问事件而确定;

4、基于各个系统节点的内存访问带宽,以及所述第一系统节点与其他系统节点之间的距离,从所述多个系统节点中确定出使得所述第一线程访问内存时的内存访问速度最快的目标系统节点;所述目标系统节点用于为所述第一线程提供所需内存。

5、在一些实现方式中,所述方法还包括:

6、获取所述性能监测单元监测的各个系统节点各自的内存访问事件;

7、基于各个系统节点各自的内存访问事件,通过计算各个系统节点各自的写数据总量和读数据总量之和,确定各个系统节点各自的内存读写数据总量;

8、通过计算各个系统节点各自的内存读写数据总量和运行周期的比值,确定各个系统节点各自的内存访问带宽。

9、在一些实现方式中,确定所述第一系统节点与其他系统节点之间的距离,包括:

10、基于所述多个系统节点之间的连接关系,确定所述多个系统节点之间的拓扑结构;

11、基于所述多个系统节点之间的拓扑结构,生成用于表示各个系统节点之间距离的距离矩阵,并基于所述距离矩阵确定所述第一系统节点与其他系统节点之间的距离。

12、在一些实现方式中,基于各个系统节点的内存访问带宽,以及所述第一系统节点与其他系统节点之间的距离,从所述多个系统节点中确定出使得所述第一线程访问内存时的内存访问速度最快的目标系统节点,包括:

13、将所述第一系统节点的内存访问带宽与其他系统节点的内存访问带宽进行对比,从所述其他系统节点中查找候选系统节点;其中,所述候选系统节点的内存访问带宽小于所述第一系统节点的内存访问带宽,并且所述第一系统节点的内存访问带宽与所述候选系统节点的内存访问带宽的差值大于设定带宽阈值;

14、在从所述其他系统节点中查找到所述候选系统节点的情况下,基于所述第一系统节点与其他系统节点之间的距离,从所述候选系统节点中确定出与所述第一系统节点的距离最近的候选系统节点,作为目标系统节点。

15、在一些实现方式中,所述方法还包括:

16、在从所述其他系统节点中未查找到所述候选系统节点的情况下,将所述第一系统节点确定为目标系统节点。

17、在一些实现方式中,在从所述其他系统节点中查找到所述候选系统节点的情况下,基于所述第一系统节点与其他系统节点之间的距离,从所述候选系统节点中确定出与所述第一系统节点的距离最近的候选系统节点,作为目标系统节点,包括:

18、在从所述其他系统节点中查找到第i个候选系统节点的情况下,基于所述第一系统节点与其他系统节点之间的距离,判断所述第i个候选系统节点与所述第一系统节点之间的距离是否小于第i-1距离阈值;所述i为从1开始的整数,在所述i=1时,所述第i-1距离阈值为预设距离阈值;

19、在所述第i个候选系统节点与所述第一系统节点之间的距离小于距离阈值的情况下,将所述第i个候选系统节点确定为目标系统节点,并将所述距离阈值更新为第i距离阈值,所述第i距离阈值等于所述第i个候选系统节点与所述第一系统节点之间的距离。

20、在一些实现方式中,所述方法还包括:

21、响应于应用程序发送的带宽查询请求,向所述应用程序反馈所述多个系统节点各自的内存访问带宽;

22、和/或,

23、响应于应用程序发送的监测周期设置命令,设置所述性能监测单元的监测周期。

24、本申请第二方面提出一种内存分配装置,应用于片上系统,所述片上系统包括多个系统节点,所述系统节点中包括内存,所述片上系统中设置有性能监测单元,用于监测所述多个系统节点中的内存访问事件;所述装置包括:

25、数据采集单元,用于在第一系统节点中的第一线程请求分配内存的情况下,获取各个系统节点的内存访问带宽,以及确定所述第一系统节点与其他系统节点之间的距离;其中,系统节点的内存访问带宽基于系统节点中的内存访问事件而确定;

26、判断选择单元,用于基于各个系统节点的内存访问带宽,以及所述第一系统节点与其他系统节点之间的距离,从所述多个系统节点中确定出在被所述第一线程访问内存时的内存访问速度最快的目标系统节点;所述目标系统节点用于为所述第一线程分配内存。

27、本申请第三方面提出一种片上系统,包括多个系统节点,所述系统节点中包括内存,所述片上系统中设置有性能监测单元,用于监测所述多个系统节点中的内存访问事件;所述片上系统被配置为实现上述的内存分配方法。

28、本申请第四方面提出一种计算设备,包括上述的片上系统。

29、本申请第五方面提出一种计算机程序产品,包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行上述的内存分配方法。

30、本申请提出的内存分配方法在为第一线程分配内存时,综合考虑了各个系统节点中的内存访问带宽,也就是考虑了各个系统节点中的内存访问通道的负载,同时还考虑了第一线程所在系统节点与其他系统节点之间的距离,基于以上两方面从多个系统节点中选出使得第一线程访问内存时的内存访问速度最快的目标系统节点,也就是选出能够使得第一线程的内存访问速度最快的系统节点用作为第一线程提供所需内存的系统节点。上述内存分配方法在为线程分配内存时综合考虑了各系统节点的内存访问带宽和各系统节点之间的距离,从而能够选出使得线程访问内存性能最优的目标系统节点来为线程分配内存,因此能够使得内存分配更合理,使得线程访问内存更顺畅,避免内存访问阻塞,有助于提高系统性能。

本文档来自技高网...

【技术保护点】

1.一种内存分配方法,其特征在于,应用于片上系统,所述片上系统包括多个系统节点,所述系统节点中包括内存,所述片上系统中设置有性能监测单元,用于监测所述多个系统节点中的内存访问事件;所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述方法还包括:

3.根据权利要求1所述的方法,其特征在于,确定所述第一系统节点与其他系统节点之间的距离,包括:

4.根据权利要求1至3中任意一项所述的方法,其特征在于,基于各个系统节点的内存访问带宽,以及所述第一系统节点与其他系统节点之间的距离,从所述多个系统节点中确定出使得所述第一线程访问内存时的内存访问速度最快的目标系统节点,包括:

5.根据权利要求4所述的方法,其特征在于,所述方法还包括:

6.根据权利要求4所述的方法,其特征在于,在从所述其他系统节点中查找到所述候选系统节点的情况下,基于所述第一系统节点与其他系统节点之间的距离,从所述候选系统节点中确定出与所述第一系统节点的距离最近的候选系统节点,作为目标系统节点,包括:

7.根据权利要求1至3中任意一项所述的方法,其特征在于,所述方法还包括:

8.一种内存分配装置,其特征在于,应用于片上系统,所述片上系统包括多个系统节点,所述系统节点中包括内存,所述片上系统中设置有性能监测单元,用于监测所述多个系统节点中的内存访问事件;所述装置包括:

9.一种片上系统,其特征在于,包括多个系统节点,所述系统节点中包括内存,所述片上系统中设置有性能监测单元,用于监测所述多个系统节点中的内存访问事件;所述片上系统被配置为实现如权利要求1至7中任意一项所述的内存分配方法。

10.一种计算设备,其特征在于,包括如权利要求9所述的片上系统。

11.一种计算机程序产品,其特征在于,包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行如权利要求1至7中任意一项所述的内存分配方法。

...

【技术特征摘要】

1.一种内存分配方法,其特征在于,应用于片上系统,所述片上系统包括多个系统节点,所述系统节点中包括内存,所述片上系统中设置有性能监测单元,用于监测所述多个系统节点中的内存访问事件;所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述方法还包括:

3.根据权利要求1所述的方法,其特征在于,确定所述第一系统节点与其他系统节点之间的距离,包括:

4.根据权利要求1至3中任意一项所述的方法,其特征在于,基于各个系统节点的内存访问带宽,以及所述第一系统节点与其他系统节点之间的距离,从所述多个系统节点中确定出使得所述第一线程访问内存时的内存访问速度最快的目标系统节点,包括:

5.根据权利要求4所述的方法,其特征在于,所述方法还包括:

6.根据权利要求4所述的方法,其特征在于,在从所述其他系统节点中查找到所述候选系统节点的情况下,基于所述第一系统节点与其他系统节点之间的距离,从所述候选系统...

【专利技术属性】
技术研发人员:彭禹强王银峰
申请(专利权)人:飞腾信息技术有限公司
类型:发明
国别省市:

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

1