一种数据互联装置、交织内存的配置方法及装置与流程

摘要: 本发明涉及计算机,尤其涉及一种数据互联装置、交织内存的配置方法、装置、电子设备及存储介质。背景技术:1、内存交织(memoryinterleaving)是一种硬...
一种数据互联装置、交织内存的配置方法及装置与流程

本发明涉及计算机,尤其涉及一种数据互联装置、交织内存的配置方法、装置、电子设备及存储介质。

背景技术:

1、内存交织(memory interleaving)是一种硬件层面的体系结构优化技术,能够通过将数据条带化分布到可用的内存中来实现对数据的并行读写,从而便于使内存物理总线达到饱和,最大化系统内存的访存吞吐量。

2、同一台设备中常常运行有多种工作负载,不同的工作负载对内存交织的需求情况不同。例如,对带宽要求较高的工作负载需要连续传输海量数据块,因此更倾向于启用内存交织,而对延迟确定性要求较高的工作负载更倾向于禁用内存交织,因为启用内存交织可能会导致并行读写的各路数据之间具有较大的延迟差异,是延迟确定性降低。

3、然而相关技术中,内存交织是内存的一种全局性的属性,会统一应用于整个系统的物理地址空间。因此,对带宽要求较高的工作负载和对延迟确定性要求较高的工作负载无法在同一台物理服务器上实现最优部署,硬件拓扑必须统一偏向于吞吐量(即启用交织)或延迟(即禁用交织),而这必然会牺牲其中一类工作负载的性能。

技术实现思路

1、有鉴于此,本发明实施例提供一种数据互联装置、交织内存的配置方法、装置、电子设备及存储介质,能够使同一台设备上对带宽要求较高的工作负载和对延迟确定性要求较高的工作负载都具有较高的性能。

2、第一方面,本发明的实施例提供一种数据互联装置,用于将处理器核心与目标内存电连接,所述装置包括:参数存储模块,配置为存储交织控制参数,所述交织控制参数包括边界地址参数,所述边界地址参数用于确定内存交界物理地址,所述内存交界物理地址用于将所述目标内存划分为交织内存区域与非交织内存区域;地址比较模块,与所述参数存储模块电连接,配置为将内存访问请求对应的待访问物理地址与所述内存交界物理地址相比较,根据比较结果将所述内存访问请求向所述交织内存区域或所述非交织内存区域发送。

3、在一种实施方式中,所述参数存储模块,配置为响应于所述处理器核心保存第一运行模式的运行现场后,从第一运行模式跳转到第二运行模式,根据参数配置请求,接收所述处理器核心发送的所述交织控制参数,以利用接收的所述交织控制参数对所述参数存储模块中存储的原交织控制参数进行更新。

4、在一种实施方式中,所述处理器核心在所述第一运行模式中运行操作系统代码,所述处理器核心在所述第二运行模式中运行第一固件代码,所述处理器核心在所述第二运行模式中的操作权限高于在所述第一运行模式中的操作权限。

5、在一种实施方式中,所述参数存储模块,配置为在所述处理器核心的第三运行模式中,根据参数配置请求,接收并存储所述处理器核心发送的所述交织控制参数,其中,所述第三运行模式在所述处理器核心启动阶段运行,所述处理器核心在所述第三运行模式中运行第二固件代码。

6、在一种实施方式中,所述装置还包括交织地址映射模块和非交织地址映射模块,所述交织地址映射模块和所述非交织地址映射模块分别与所述地址比较模块电连接;所述地址比较模块,配置为在所述比较结果为第一结果的情况下,将所述内存访问请求路由至所述交织地址映射模块,或者,在所述比较结果为第二结果的情况下,将所述内存访问请求路由至所述非交织地址映射模块;所述交织地址映射模块,配置为根据预设的交织规则,将所述内存访问请求映射到所述目标内存的至少两个物理内存单位,其中,所述交织内存区域的物理内存地址空间在多个所述物理内存单位之间轮转分配;所述非交织地址映射模块,配置为将所述内存访问请求映射到所述非交织内存区域。

7、在一种实施方式中,所述交织地址映射模块及所述非交织地址映射模块还分别与所述参数存储模块电连接;所述交织地址映射模块,还配置为根据所述参数存储模块存储的所述边界地址参数,确定所述交织内存区域的物理内存地址空间,将所述交织内存区域的物理内存地址空间以预设交织粒度,在所述目标内存的多个所述物理内存单位之间轮转映射;所述非交织地址映射模块,还配置为根据所述参数存储模块存储的所述边界地址参数,确定所述非交织内存区域的物理内存地址空间,并将所述非交织映射区域的物理内存地址空间按照非交织算法映射到所述目标内存。

8、在一种实施方式中,所述物理内存单位包括以下至少一项:处理器插槽对应的内存、晶粒对应的内存、内存通道、内存秩、内存体。

9、在一种实施方式中,所述交织控制参数还包括交织粒度参数;所述装置还包括交织地址映射模块,所述交织地址映射模块与所述参数存储模块电连接;所述交织地址映射模块,还配置为:根据所述边界地址参数确定所述交织内存区域的物理内存地址空间,并根据所述交织粒度参数确定所述交织内存区域的目标交织粒度;将所述交织内存区域的物理内存地址空间以所述目标交织粒度,在所述目标内存的多个所述物理内存单位之间轮转映射。

10、在一种实施方式中,所述参数存储模块的数量为至少两个;其中每个所述参数存储模块用于存储一个对应的所述交织控制参数,所述交织控制参数包括边界地址参数,每个所述边界地址参数用于确定一个对应的内存交界物理地址,各所述内存交界物理地址用于将所述目标内存划分为至少两个所述交织内存区域和/或至少两个非交织内存区域;所述地址比较模块分别与各所述参数存储模块电连接,用于将所述内存访问请求对应的所述待访问物理地址分别与各所述内存交界物理地址相比较,并根据比较结果将所述内存访问请求向其中的一个交织内存区域或其中的一个非交织内存区域发送。

11、在一种实施方式中,所述处理器核心基于预设指令集运行,所述预设指令集包括以下至少一种:x86指令集、arm指令集、第五代精简指令集(risc-v,reduced instructionset computer–fifth generation)、龙架构(loongarch)。

12、在一种实施方式中,所述参数存储模块包括寄存器。

13、在一种实施方式中,所述处理器核心的数量为至少一个;各所述处理器核心设置在至少一个晶粒上;所述至少一个晶粒设置在至少一个处理器中;各所述处理器设置于同一台电子设备的不同插槽中;所述目标内存包括以下至少一种:所述电子设备中的至少一个处理器的本地内存,所述本地内存为与所述处理器的内存控制器电连接的内存;所述数据互联装置通过所述内存控制器与所述目标内存电连接;所述电子设备中的至少一个处理器的远端内存,所述远端内存为与所述处理器的内存扩展接口电连接的内存;所述电子设备中的至少一个处理器的所述本地内存和至少一个处理器的所述远端内存;所述电子设备的任一处理器中,任一晶粒上的处理器核心对应的本地内存;任一处理器核心对应的本地内存中,属于同一内存通道的内存。

14、第二方面,本发明的实施例还提供一种处理器,包括:处理器核心以及本发明的实施例提供的任一种数据互联装置;所述处理器核心与所述数据互联装置电连接。

15、第三方面,本发明的实施例还提供一种交织内存的配置方法,包括:获取参数配置请求,所述参数配置请求中携带交织控制参数,所述交织控制参数包括边界地址参数,所述边界地址参数用于确定内存交界物理地址,所述内存交界物理地址用于将目标内存划分为交织内存区域与非交织内存区域;根据所述参数配置请求,将所述交织控制参数写入数据互联装置中预设的参数存储模块,其中,所述数据互联装置用于将处理器核心与所述目标内存电连接。

16、在一种实施方式中,所述根据所述参数配置请求,将所述交织控制参数写入数据互联装置中预设的参数存储模块包括:根据所述参数配置请求,在预设运行模式中,将所述交织控制参数写入数据互联装置中预设的参数存储模块;或者,向预设的协处理器或基板管理控制器发送所述参数配置请求,以使所述协处理器或所述基板管理控制器将所述交织控制参数写入数据互联装置中预设的参数存储模块。

17、在一种实施方式中,所述预设运行模式包括第二运行模式;所述获取参数配置请求包括:在第一运行模式下,获取参数配置请求;所述根据所述参数配置请求,在预设运行模式中,将所述交织控制参数写入数据互联装置中预设的参数存储模块包括:根据所述参数配置请求,保存所述第一运行模式的运行现场,从所述第一运行模式跳转到所述第二运行模式;在所述第二运行模式中,将所述参数配置请求携带的所述交织控制参数写入所述参数存储模块。

18、在一种实施方式中,所述第一运行模式用于运行操作系统代码,所述第二运行模式用于运行第一固件代码,所述第二运行模式中的操作权限高于所述第一运行模式中的操作权限。

19、在一种实施方式中,所述在所述第二运行模式中,将所述参数配置请求携带的所述交织控制参数写入所述参数存储模块之后,所述方法还包括:在所述第二运行模式中,根据所述交织控制参数更新非一致性内存访问节点属性表;退出所述第二运行模式,切换回所述第一运行模式;在所述第一运行模式中,根据更新的所述非一致性内存访问节点属性表,以及各应用程序对内存交织属性的偏好,调整各所述应用程序所在的物理内存。

20、在一种实施方式中,所述在所述第一运行模式中,根据更新的所述非一致性内存访问节点属性表,以及各应用程序对内存交织属性的偏好,调整各所述应用程序所在的物理内存包括:根据更新的所述非一致性内存访问节点属性表确定所述目标内存的所述交织内存区域和所述非交织内存区域;指定偏好交织内存的所述应用程序的内存分配来自所述交织内存区域,指定偏好非交织内存的所述应用程序的内存分配来自所述非交织区域;或者,将各所述应用程序中吞吐量大于预设吞吐量阈值的数据结构或内存空间,与所述交织内存区域绑定,将各所述应用程序中延迟小于预设延迟阈值的数据结构或内存空间与所述非交织内存区域绑定。

21、在一种实施方式中,所述在第一运行模式下,获取参数配置请求包括:在所述第一运行模式下,监控各应用程序的性能表现,得到性能统计参数;根据所述性能统计参数确定各所述应用程序整体对交织内存与非交织内存的需求比例;在所述需求比例与当前真实比例的差的绝对值大于预设的比例阈值的情况下,生成所述参数配置请求。

22、在一种实施方式中,所述在第一运行模式下,获取参数配置请求包括:在所述第一运行模式下,接收用户输入的所述参数配置请求。

23、在一种实施方式中,所述在第一运行模式下,获取参数配置请求之后,所述根据所述参数配置请求,保存所述第一运行模式的运行现场之前,所述方法还包括:根据所述参数配置请求,对所述目标内存中的数据进行迁移;所述根据所述参数配置请求,保存所述第一运行模式的运行现场包括:根据所述参数配置请求,保存所述目标内存进行数据迁移后的所述第一运行模式的运行现场。

24、在一种实施方式中,所述根据所述参数配置请求,对所述目标内存中的数据进行迁移包括:根据所述参数配置请求中携带的所述交织控制参数,确定所述目标内存的调整范围;根据所述调整范围,确定受所述参数配置请求影响的进程,得到第一待迁移进程;将所述第一待迁移进程从当前所在的内存区域迁移至所述目标内存中所述调整范围以外的空闲内存。

25、在一种实施方式中,所述根据所述参数配置请求,对所述目标内存中的数据进行迁移包括:根据所述参数配置请求,启动操作系统的休眠机制,将操作系统的上下文序列化并写入非易失性存储器。

26、在一种实施方式中,所述根据所述参数配置请求,对所述目标内存中的数据进行迁移包括:根据所述参数配置请求中携带的所述交织控制参数,确定所述目标内存的调整范围;在所述调整范围内查找受监控进程,得到第二待迁移进程,其中,所述受监控进程为存储于所述目标内存中预设区域的进程;确定所述目标内存中所述调整范围以外的空闲内存是否大于或等于所述第二待迁移进程的大小;在所述目标内存中所述调整范围以外的空闲内存大于或等于所述第二待迁移进程的大小的情况下,将所述第二待迁移进程从当前所在的内存区域迁移至所述目标内存中所述调整范围以外的空闲内存;或者,在所述目标内存中所述调整范围以外的空闲内存小于所述第二待迁移进程的大小的情况下,将所述第二待迁移进程从当前所在的内存区域换出至非易失性存储器。

27、在一种实施方式中,所述预设运行模式包括第三运行模式;所述第三运行模式在所述处理器核心启动阶段运行,所述处理器核心在所述第三运行模式中运行第二固件代码;所述获取参数配置请求包括:在所述第三运行模式中提供参数配置交互界面;根据用户在所述参数配置交互界面中输入的所述交织控制参数生成所述参数配置请求;所述根据所述参数配置请求,在预设运行模式中,将所述交织控制参数写入数据互联装置中预设的参数存储模块包括:根据所述参数配置请求,在所述第三运行模式中,将所述交织控制参数写入所述参数存储模块。

28、在一种实施方式中,所述交织控制参数还包括交织粒度参数。

29、第四方面,本发明的实施例还提供一种交织内存的配置装置,包括:获取单元,用于获取参数配置请求,所述参数配置请求中携带交织控制参数,所述交织控制参数包括边界地址参数,所述边界地址参数用于确定内存交界物理地址,所述内存交界物理地址用于将目标内存划分为交织内存区域与非交织内存区域;写入单元,用于根据所述参数配置请求,将所述交织控制参数写入数据互联装置中预设的参数存储模块,其中,所述数据互联装置用于将处理器核心与所述目标内存电连接。

30、在一种实施方式中,所述写入单元包括:写入模块,用于根据所述参数配置请求,在预设运行模式中,将所述交织控制参数写入数据互联装置中预设的参数存储模块;或者,发送模块,用于向预设的协处理器或基板管理控制器发送所述参数配置请求,以使所述协处理器或所述基板管理控制器将所述交织控制参数写入数据互联装置中预设的参数存储模块。

31、在一种实施方式中,所述预设运行模式包括第二运行模式;所述获取单元具体用于:在第一运行模式下,获取参数配置请求;所述写入模块包括:跳转子模块,用于根据所述参数配置请求,保存所述第一运行模式的运行现场,从所述第一运行模式跳转到所述第二运行模式;写入子模块,用于在所述第二运行模式中,将所述参数配置请求携带的所述交织控制参数写入所述参数存储模块。

32、在一种实施方式中,所述第一运行模式用于运行操作系统代码,所述第二运行模式用于运行第一固件代码,所述第二运行模式中的操作权限高于所述第一运行模式中的操作权限。

33、在一种实施方式中,所述写入模块还包括:更新子模块,用于在所述第二运行模式中,将所述参数配置请求携带的所述交织控制参数写入所述参数存储模块之后,在所述第二运行模式中,根据所述交织控制参数更新非一致性内存访问节点属性表;退出子模块,用于退出所述第二运行模式,切换回所述第一运行模式;所述装置还包括:调整单元,用于在所述第一运行模式中,根据更新的所述非一致性内存访问节点属性表,以及各应用程序对内存交织属性的偏好,调整各所述应用程序所在的物理内存。

34、在一种实施方式中,所述调整单元包括:确定模块,用于根据更新的所述非一致性内存访问节点属性表确定所述目标内存的所述交织内存区域和所述非交织内存区域;指定模块,用于指定偏好交织内存的所述应用程序的内存分配来自所述交织内存区域,指定偏好非交织内存的所述应用程序的内存分配来自所述非交织区域;或者,绑定模块,用于将各所述应用程序中吞吐量大于预设吞吐量阈值的数据结构或内存空间,与所述交织内存区域绑定,将各所述应用程序中延迟小于预设延迟阈值的数据结构或内存空间与所述非交织内存区域绑定。

35、在一种实施方式中,所述获取单元具体用于:在所述第一运行模式下,监控各应用程序的性能表现,得到性能统计参数;根据所述性能统计参数确定各所述应用程序整体对交织内存与非交织内存的需求比例;在所述需求比例与当前真实比例的差的绝对值大于预设的比例阈值的情况下,生成所述参数配置请求。

36、在一种实施方式中,所述获取单元,具体用于在所述第一运行模式下,接收用户输入的所述参数配置请求。

37、在一种实施方式中,所述装置还包括:迁移单元,用于在第一运行模式下,获取参数配置请求之后,根据所述参数配置请求,保存所述第一运行模式的运行现场之前,根据所述参数配置请求,对所述目标内存中的数据进行迁移;所述跳转子模块,具体用于根据所述参数配置请求,保存所述目标内存进行数据迁移后的所述第一运行模式的运行现场。

38、在一种实施方式中,所述迁移单元具体用于:根据所述参数配置请求中携带的所述交织控制参数,确定所述目标内存的调整范围;根据所述调整范围,确定受所述参数配置请求影响的进程,得到第一待迁移进程;将所述第一待迁移进程从当前所在的内存区域迁移至所述目标内存中所述调整范围以外的空闲内存。

39、在一种实施方式中,所述迁移单元,具体用于根据所述参数配置请求,启动操作系统的休眠机制,将操作系统的上下文序列化并写入非易失性存储器。

40、在一种实施方式中,所述迁移单元,具体用于:根据所述参数配置请求中携带的所述交织控制参数,确定所述目标内存的调整范围;在所述调整范围内查找受监控进程,得到第二待迁移进程,其中,所述受监控进程为存储于所述目标内存中预设区域的进程;确定所述目标内存中所述调整范围以外的空闲内存是否大于或等于所述第二待迁移进程的大小;在所述目标内存中所述调整范围以外的空闲内存大于或等于所述第二待迁移进程的大小的情况下,将所述第二待迁移进程从当前所在的内存区域迁移至所述目标内存中所述调整范围以外的空闲内存;或者,在所述目标内存中所述调整范围以外的空闲内存小于所述第二待迁移进程的大小的情况下,将所述第二待迁移进程从当前所在的内存区域换出至非易失性存储器。

41、在一种实施方式中,所述预设运行模式包括第三运行模式;所述第三运行模式在所述处理器核心启动阶段运行,所述处理器核心在所述第三运行模式中运行第二固件代码;所述获取单元,具体用于:在所述第三运行模式中提供参数配置交互界面;根据用户在所述参数配置交互界面中输入的所述交织控制参数生成所述参数配置请求;所述写入模块,具体用于:根据所述参数配置请求,在所述第三运行模式中,将所述交织控制参数写入所述参数存储模块。

42、在一种实施方式中,所述交织控制参数还包括交织粒度参数。

43、第五方面,本发明的实施例还提供一种电子设备,所述电子设备包括:处理器、存储器,所述处理器与所述存储器电连接;所述存储器用于存储可执行程序代码;所述处理器通过读取所述存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,以实现本发明的实施例提供的任一种交织内存的配置方法。

44、第六方面,本发明的实施例还提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现本发明的实施例提供的任一种交织内存的配置方法。

45、本发明的实施例提供的数据互联装置、交织内存的配置方法、装置、电子设备及存储介质,能够存储交织控制参数,将内存访问请求对应的待访问物理地址与由交织控制参数确定的内存交界物理地址相比较,并根据比较结果将所述内存访问请求向所述交织内存区域或所述非交织内存区域发送,这样,就能通过将目标内存划分为交织内存区域和非交织内存区域,使对带宽要求较高的工作负载能够使用交织内存区域从而获得较高带宽,而使对延迟确定性要求较高的工作负载能使用非交织内存区域从而获得较低的延迟和较高的延迟确定性,因此能够使同一台设备上对带宽要求较高的工作负载和对延迟确定性要求较高的工作负载都具有较高的性能。