System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及内存调整,尤其涉及一种内存容量调整方法、装置、电子设备及存储介质。
技术介绍
1、在计算机系统中,通常数据信息需要运行在内存上,即使部分处理器会支持一定容量的缓存功能,但这些缓存功能也只是为处理器开机运行时提供的基本指令运行需求而已。同样的bios(basic input output system,基本输入输出系统)镜像运行也需要运行在一定的内存空间上,服务器开机启动的自检程序及系统下运行的应用程序均需要一定数量的内存进行支持,所以,内存是任何架构计算机产品中必须存在的物理设备。内存在服务器运行中涉及多个参数的设置,如内存的芯片及模组厂商、工作频率、工作电压、速度、容量、电压与行、列地址带宽等参数,这些参数均被内存的spd(serial presence detect,模组存在的串行检测)所控制。
2、spd是内存模块上的一种存储器,用来存储内存模块的参数信息,这些信息在计算机启动时被读取并保存到主板芯片组中,以便系统能够正确地配置内存控制器,其中最重要的是自动配置内存的工作频率,以确保内存控制器工作在合适的频率范围内,从而提高计算机的性能。随着使用环境的不同,需要将传统的内存由插槽形式转化为主板贴片形式,这种转变只是单独的内存链接方式的改变并不影响实际的使用。但在某些特殊场合或者节约投入成本的考量,需要将内存的spd控制器进行移除,即无spd控制器。
3、通常情况下,针对无spd控制器的内存需要运维人员对接入服务器的内存进行拆卸,以调整内存容量,此种方式,会导致内存的使用寿命降低,且增加了运
技术实现思路
1、本申请实施例提供一种内存容量调整方法、装置、电子设备及存储介质,以解决现有技术中人工拆卸导致内存使用寿命降低,增加了运维成本,且内存条混插接入服务器整机会导致服务器无法开机的问题。
2、为了解决上述技术问题,本申请实施例是这样实现的:
3、第一方面,本申请实施例提供了一种内存容量调整方法,应用于bios,所述方法包括:
4、从所述bios的bios镜像内读取预留的目标内存的spd数据,所述目标内存为未设置spd控制器的物理内存;
5、基于所述目标内存的spd数据,调整所述目标内存的内存容量。
6、可选地,在所述从所述bios的bios镜像内读取预留的目标内存的spd数据之前,还包括:
7、获取多种类型内存的spd数据,所述多种类型内存包括所述目标内存;
8、在所述bios镜像内建立每个内存参数对应的数据结构体;
9、根据每种类型内存的内存参数,将每种类型内存的所述spd数据存储于对应的数据结构体中;
10、将每种类型内存的数据结构体存储于每种类型内存对应的存储地址内。
11、可选地,所述根据每种类型内存的内存参数,将每种类型内存的所述spd数据存储于对应的数据结构体中,包括:
12、获取用户设置的每种类型内存的内存容量参数;
13、基于所述内存容量参数替换所述每种类型内存的spd数据中的原始内存容量参数,生成所述每种类型内存的新的spd数据;
14、将所述spd数据和所述新的spd数据分别存储于对应的数据结构体内,不同的spd数据对应于不同的数据结构体。
15、可选地,所述从所述bios的bios镜像内读取预留的目标内存的spd数据,包括:
16、在响应于服务器启动,所述bios进入初始化阶段之后,获取用户对所述目标内存设置的内存容量参数;
17、从所述bios镜像内读取所述目标内存的与所述内存容量参数匹配的spd数据。
18、可选地,所述从所述bios镜像内读取所述目标内存的与所述内存容量参数匹配的spd数据,包括:
19、根据所述目标内存的内存类型,确定所述目标内存对应的目标存储地址;
20、基于预设协议从所述目标存储地址内读取与所述内存容量参数匹配的spd数据。
21、可选地,所述基于预设协议从所述目标存储地址内读取与所述内存容量参数匹配的spd数据,包括:
22、获取所述内存容量参数对应的目标数据结构体;
23、基于所述预设协议从所述目标存储地址内读取所述目标数据结构体内的与所述内存容量参数匹配的spd数据。
24、可选地,所述基于所述目标内存的spd数据,调整所述目标内存的内存容量,包括:
25、将所述目标内存的spd数据赋值给所述目标内存;
26、对所述目标内存进行初始化处理,以调整所述目标内存的内存容量。
27、可选地,在所述基于所述目标内存的spd数据,调整所述目标内存的内存容量之后,还包括:
28、在所述目标内存初始化完成之后,检查接入所述bios所属服务器的内存中是否存在未初始化的内存;
29、在所述内存中存在未初始化的内存的情况下,依次识别所述内存中未初始化的内存;
30、从所述bios镜像内依次读取所述未初始化的内存的spd数据,以依次对所述未初始化的内存进行初始化处理。
31、可选地,在所述检查接入所述bios所属服务器的内存中是否存在未初始化的内存之后,还包括:
32、在检查到所述内存全部初始化完成之后,确定所述服务器是否正常启动;
33、响应于所述服务器未正常启动,对所述内存重新进行初始化处理。
34、可选地,所述对所述内存重新进行初始化处理,包括:
35、获取预先设置的所述内存的最小内存参数;
36、从所述bios镜像内读取所述最小内存参数对应的目标spd数据;
37、将所述目标spd数据赋值给所述内存,并对所述内存进行初始化处理。
38、可选地,在所述对所述内存重新进行初始化处理之后,还包括:
39、响应于所述服务器正常启动,从所述bios镜像内依次读取所述内存的spd数据;
40、依次基于所述内存的spd数据对所述内存进行初始化处理,以调整所述内存的内存容量。
41、可选地,在所述确定所述服务器是否正常启动之后,还包括:
42、响应于所述服务器正常启动,结束内存初始化流程。
43、第二方面,本申请实施例提供了一种内存容量调整装置,应用于bios,所述装置包括:
44、spd数据读取模块,用于从所述bios的bios镜像内读取预留的目标内存的spd数据,所述目标内存为未设置spd控制器的物理内存;
45、内存容量调整模块,用于基于所述目标内存的spd数据,调整所述目标内存的内存容量。
46、本文档来自技高网...
【技术保护点】
1.一种内存容量调整方法,其特征在于,应用于BIOS,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,在所述从所述BIOS的BIOS镜像内读取预留的目标内存的SPD数据之前,还包括:
3.根据权利要求2所述的方法,其特征在于,所述根据每种类型内存的内存参数,将每种类型内存的所述SPD数据存储于对应的数据结构体中,包括:
4.根据权利要求1所述的方法,其特征在于,所述从所述BIOS的BIOS镜像内读取预留的目标内存的SPD数据,包括:
5.根据权利要求4所述的方法,其特征在于,所述从所述BIOS镜像内读取所述目标内存的与所述内存容量参数匹配的SPD数据,包括:
6.根据权利要求5所述的方法,其特征在于,所述基于预设协议从所述目标存储地址内读取与所述内存容量参数匹配的SPD数据,包括:
7.根据权利要求1所述的方法,其特征在于,所述基于所述目标内存的SPD数据,调整所述目标内存的内存容量,包括:
8.根据权利要求1所述的方法,其特征在于,在所述基于所述目标内存的SPD数据,调整所述目标内存的
9.根据权利要求8所述的方法,其特征在于,在所述检查接入所述BIOS所属服务器的内存中是否存在未初始化的内存之后,还包括:
10.根据权利要求9所述的方法,其特征在于,所述对所述内存重新进行初始化处理,包括:
11.根据权利要求9所述的方法,其特征在于,在所述对所述内存重新进行初始化处理之后,还包括:
12.根据权利要求9所述的方法,其特征在于,在所述确定所述服务器是否正常启动之后,还包括:
13.一种内存容量调整装置,其特征在于,应用于BIOS,所述装置包括:
14.一种电子设备,其特征在于,包括:
15.一种可读存储介质,其特征在于,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行权利要求1至12中任一项所述的内存容量调整方法。
...【技术特征摘要】
1.一种内存容量调整方法,其特征在于,应用于bios,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,在所述从所述bios的bios镜像内读取预留的目标内存的spd数据之前,还包括:
3.根据权利要求2所述的方法,其特征在于,所述根据每种类型内存的内存参数,将每种类型内存的所述spd数据存储于对应的数据结构体中,包括:
4.根据权利要求1所述的方法,其特征在于,所述从所述bios的bios镜像内读取预留的目标内存的spd数据,包括:
5.根据权利要求4所述的方法,其特征在于,所述从所述bios镜像内读取所述目标内存的与所述内存容量参数匹配的spd数据,包括:
6.根据权利要求5所述的方法,其特征在于,所述基于预设协议从所述目标存储地址内读取与所述内存容量参数匹配的spd数据,包括:
7.根据权利要求1所述的方法,其特征在于,所述基于所述目标内存的spd数据,调整所述目标内存的内存容量,包括...
【专利技术属性】
技术研发人员:孙秀强,成珊,刘宝俊,张炳会,
申请(专利权)人:苏州元脑智能科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。