一种隔离内存的方法和装置与流程

专利2024-07-17  51



1.本技术实施例涉及计算机领域,尤其涉及一种隔离内存的方法和装置。


背景技术:

2.计算机中,内存作为中央处理器(central processing unit,cpu)与其他部件沟通的桥梁,其性能强弱将直接影响计算机整体性能。一旦内存发生异常,将导致计算机发生故障甚至宕机,为降低内存带来计算机故障的风险,在计算机启动时,基本输入输出系统(basic input output system,bios)对运行阶段或启动过程中检测到的故障内存进行隔离,将故障内存设置为不可使用,使得操作系统无法访问该故障内存。
3.计算机在运行中为了兼顾所有的内存,仅以所有内存均支持的性能指标运行,若计算设备内存在性能指标低下的内存,将会严重拉低计算设备的性能。而当前的方法中,bios仅可以检测到发生硬失效的情况,但在实际应用中还存在批次用料质量问题和使用寿命引起的的内存性能下降和功能异常,进而导致计算机的性能下降和功能异常,如何降低这种情况的发生概率就成为当下需要解决的问题。


技术实现要素:

4.本技术实施例提供了一种隔离内存的方法和装置,用于主动对内存进行隔离,以降低内存性能下降和功能异常引发的计算机性能下降和功能异常的发生概率。
5.本发明的第一方面提供了一种隔离内存的方法,包括:从非易失性存储器获取内存信息,内存信息指示第一内存组为待隔离内存;根据内存信息隔离第一内存组;启动操作系统。
6.该方法从非易失性存储器获取指示第一内存组为待隔离内存的内存信息,并根据该内存信息对第一内存组进行隔离。通过从非易失性存储器获取内存信息,并对内存信息指示需要隔离的第一内存组进行隔离的方法,使用户可以向非易失性存储器写入需要隔离的第一内存组,实现在获知内存可能出现的问题后,对主动对内存进行隔离,以降低内存性能下降和功能异常引发的计算机性能下降和功能异常的发生概率。
7.在第一方面可能的实现方式中,该方法还包括:获取内存信息,向非易失性存储器写入内存信息。该方法通过获取内存信息,并将内存信息写入非易失性存储器,用户可以通过多种途径获取内存信息,并将内存信息写入非易失性存储器,保障了内存信息在设备内的稳定性,避免因为计算设备掉电而丢失。
8.在第一方面可能的实现方式中,获取内存信息包括:显示第一界面,第一界面显示内存隔离配置选项;响应针对第一界面的操作指令,获取内存信息。该方法通过显示第一界面,在第一界面显示内存隔离配置选项,使用户可以通过第一界面键入操作指令,并根据针对第一界面的操作指令,获取内存信息。通过第一界面与用户建立了交互渠道,使用户可以更加直观清晰的对内存进行配置,提升用户的使用体验。
9.在第一方面可能的实现方式中,第一界面为操作系统的内存配置软件界面;响应
针对第一界面的操作指令,获取所述内存信息,向非易失性存储器写入内存信息包括:响应针对第一界面的操作指令,通过操作系统下bios提供的runtime service接口向非易失性存储器写入内存信息;或,响应针对第一界面的操作指令,通过操作系统下对应非易失性存储介质的驱动向非易失性存储器写入内存信息。该方法中当第一界面为操作系统的内存配置软件界面时,在用户针对第一界面键入操作指令后,可以通过操作系统下bios提供的runtime service接口向非易失性存储器写入内存信息,或通过操作系统下对应非易失性存储介质的驱动向非易失性存储器写入内存信息,充分利用了非易失性存储器与内存配置软件之间的多种接口,为向非易失性存储器写入内容提供了更多可能,即使其中一种路径发生异常仍然可以通过另一种途径向非易失性存储器写入内容。
10.在第一方面可能的实现方式中,第一界面包括全球广域网web管理界面;响应针对第一界面的操作指令,获取所述内存信息,向非易失性存储器写入内存信息包括:响应针对第一界面的操作指令,通过web与非易失性存储器之间的通道向非易失性存储器写入内存信息。该方法中当第一界面为web管理界面时,在用户针对第一界面键入操作指令后,通过web与非易失性存储器之间的通道向非易失性存储器写入内存信息,由于web管理系统可以在计算机通电的任何时刻进行接入,使得用户在任意时刻都可以通过第一界面将内存信息写入非易失性存储器,不受限于计算机的运行状态,大大提升了方案的便捷性。
11.在第一方面可能的实现方式中,第一界面包括基本输入输出系统bios界面;响应针对第一界面的操作指令,向非易失性存储器写入内存信息包括:响应针对第一界面的操作指令,获取所述内存信息,通过bios与非易失性存储器之间的通道向非易失性存储器写入内存信息。该方法中当第一界面为bios界面时,在用户针对第一界面键入操作指令后,通过bios与非易失性存储器之间的通道向非易失性存储器写入内存信息,由于bios是在计算机启动阶段工作,在计算机进行内存检测前写入需要主动隔离的内存,减少了bios内存检测的工作量,提升了计算机启动效率。
12.在第一方面可能的实现方式中,内存信息包括第一数据和第二数据,第一数据为携带了第一内存组信息的二进制数据,第二数据为第一数据按照预设规则进行计算获得的数据;根据内存信息隔离第一内存组,包括:从内存信息中提取第一数据和第二数据;根据预设规则计算第二数据,获得第三数据;若第二数据和第三数据相等,隔离第一内存组;若第二数据和第三数据不相等,删除内存信息。该方法在获取到内存信息后,对内存信息进行循环冗余校验(cyclic redundancy check,crc),若内存信息在传递过程中没有出现异常,则对第一内存组进行隔离,若内存信息在传递过程中出现异常,删除内存信息。利用crc验证保障了内存信息在传递过程中的稳定性,避免了由于内存信息在传递过程中出现异常而导致的隔离错误内存的故障发生。
13.在第一方面可能的实现方式中,第一界面还携带隔离内存信息。该方法中,第一界面还携带着上次启动阶段被隔离的内存的隔离内存信息,用户可以通过隔离内存信息获知当下已经被主动隔离的内存情况,并在待隔离内存信息指示的内存组的基础上调整需要主动隔离的内存,使用户可以了解当前已经被主动隔离的内存,提升了用户体验。
14.在第一方面可能的实现方式中,非易失性存储器包括闪存flash,电可擦除可编程制度存储器eeprom和非易失性随机访问存储器nvram。
15.在第一方面可能的实现方式中,第一内存组中内存的粒度为内存通道channel,双
列直插式存储模块dimm和/或内存列rank。
16.本发明第二方面提供了一种计算装置,包括:获取单元,用于从非易失性存储器获取内存信息,内存信息指示第一内存组为待隔离内存;隔离单元,用于根据内存信息隔离第一内存组。
17.在第二方面可能的实现方式中,获取单元,还用于获取内存信息;该计算装置还包括:写入单元,用于向非易失性存储器写入内存信息。
18.在第二方面可能的实现方式中,获取单元,具体用于显示第一界面,第一界面显示内存隔离配置选项;响应针对第一界面的操作指令,获取内存信息。
19.在第二方面可能的实现方式中,第一界面为操作系统的内存配置软件界面;写入单元,具体用于:响应针对第一界面的操作指令,通过操作系统下bios提供的runtime service接口向非易失性存储器写入内存信息;或,响应针对第一界面的操作指令,通过操作系统下对应非易失性存储介质的驱动向非易失性存储器写入内存信息。
20.在第二方面可能的实现方式中,第一界面包括全球广域网web管理界面;写入单元,具体用于:响应针对第一界面的操作指令,通过web与非易失性存储器之间的通道向非易失性存储器写入内存信息。
21.在第二方面可能的实现方式中,第一界面包括基本输入输出系统bios界面;写入单元,具体用于:响应针对第一界面的操作指令,通过bios与非易失性存储器之间的通道向非易失性存储器写入内存信息。
22.在第二方面可能的实现方式中,内存信息包括第一数据和第二数据,第一数据为携带了第一内存组信息的二进制数据,第二数据为第一数据按照预设规则进行计算获得的数据;隔离单元,具体用于:从内存信息中提取第一数据和第二数据;根据预设规则计算第二数据,获得第三数据;若第二数据和第三数据相等,隔离第一内存组;若第二数据和第三数据不相等,删除内存信息。在第二方面可能的实现方式中,第一界面还携带待隔离内存信息。
23.在第二方面可能的实现方式中,第一界面还携带已隔离的内存的内存信息。
24.本发明第三方面提供一种计算装置,包括:处理器和存储器;存储器用于存储计算机执行指令;处理器用于执行存储器所存储的计算机执行指令,以使计算装置执行前述第一方面和第一方面可能的实现方式中描述的方法。
25.本发明第四方面提供一种计算机可读存储介质,包括:计算机可读存储介质用于存储指令或计算机程序;当指令或计算机程序被执行时,以使计算装置执行前述第一方面和第一方面可能的实现方式中描述的方法。
26.本发明第五方面提供一种计算机程序产品,其特征在于,包括:指令或计算机程序;指令或计算机程序被执行时,以使计算装置执行前述第一方面和第一方面可能的实现方式中描述的方法。
附图说明
27.图1为本技术实施例提供的计算设备的一种结构示意图;
28.图2为本技术实施例提供的计算机内存的一种结构示意图;
29.图3为本技术实施例提供的配置内存信息的一种流程示意图;
30.图4为本技术实施例提供的在计算机运行阶段的操作系统中配置内存信息的流程示意图;
31.图5为本技术实施例提供的操作系统的界面的一种示意图;
32.图6为本技术实施例提供的操作系统的界面的另一种示意图;
33.图7为本技术实施例提供的操作系统的界面的另一种示意图;
34.图8为本技术实施例提供的内存空间与字符串之间的对应关系一种示意图;
35.图9为本技术实施例提供的通过web管理模块配置内存信息的流程示意图;
36.图10为本技术实施例提供的web管理界面的一种示意图;
37.图11为本技术实施例提供的web管理界面的另一种示意图;
38.图12为本技术实施例提供的web管理界面的另一种示意图;
39.图13为本技术实施例提供的计算机启动阶段的bios运行下配置内存信息的流程示意图;
40.图14为本技术实施例提供的bios设置界面的一种示意图;
41.图15为本技术实施例提供的bios设置界面的另一种示意图;
42.图16为本技术实施例提供的隔离内存的方法的一种流程示意图;
43.图17为本技术实施例提供的隔离内存的方法的另一种流程示意图;
44.图18为本技术实施例提供的隔离内存的方法的另一种流程示意图;
45.图19为本技术实施例提供的隔离内存的方法的另一种流程示意图;
46.图20为本技术实施例提供的计算装置的另一种结构示意图。
具体实施方式
47.下面结合附图,对本技术的实施例进行描述,显然,所描述的实施例仅仅是本技术一部分的实施例,而不是全部的实施例。本领域普通技术人员可知,随着技术发展和新场景的出现,本技术实施例提供的技术方案对于类似的技术问题,同样适用。
48.本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
49.为了便于理解,首先对本技术提出的方案的应用场景进行简单的介绍,请参阅图1,图1为本技术实施例提供的计算设备的一种结构示意图,计算设备包括:处理器101、存储器102、内存103、通信接口104和总线系统105。
50.总线系统105,用于将计算设备的各个硬件组件耦合在一起。总线系统105可以是外设部件互连(pci)总线或扩展工业标准结构(eisa)总线等。总线系统105可以分为地址总线、数据总线、控制总线等。
51.通信接口104,用于实现计算设备与其他设备之间的通信连接,可以为有线接口(例如以太网接口),可以为内部接口(例如高速串行计算机扩展总线(pcie)总线接口)、有
线接口(例如以太网接口)或无线接口(例如蜂窝网络接口或使用无线局域网接口)。
52.内存103,用于暂时存放处理器中的运算数据,以及与硬盘等外部存储器交换的数据。示例性的,请参阅图2,图2为本技术实施例提供的计算机内存的一种结构示意图。计算机中可以有多个cpu作为计算机的运算和控制核心,这些cpu又分别与多个内存连接,当内存访问由cpu发起时,最先到达内存通道channel,每个channel中能够设置多个双列直插式存储模块(dual in-line memory module,dimm),每个dimm又可以分为多个列rank。具体的,dimm可以为内存条,rank为一组连接到同一个片选(chip select,cs)的动态随机存取存储器(dynamic random access,dram)芯片。
53.存储器102,用于存储程序指令和数据,可以包括易失性存储器,例如随机存取存储器(ram);存储器102也可以包括非易失性存储器,例如只读存储器(rom)、快闪存储器、硬盘(hdd)或固态硬盘(ssd);存储器102还可以包括上述种类的组合。
54.处理器101,用于读取存储器102中存储指令和数据,可以由至少一个通用处理器构成,例如中央处理器(cpu),或者cpu和硬件芯片的组合。上述硬件芯片可以是专用集成电路(asic)、可编程逻辑器件(pld)或其组合。上述pld可以是复杂可编程逻辑器件(cpld)、现场可编程门阵列(fpga)、通用阵列逻辑(gal)或其任意组合。
55.当内存出现故障时,根据故障的实际情况,可以对故障发生的最小区域进行隔离,而故障发生的最小区域可以以channel,dimm或rank为粒度进行处理。当故障发生的最小区域为channel时,对该channel进行隔离;当故障发生的最小区域为dimm时,对该dimm进行隔离;当故障发生的最小区域为rank时,对该rank进行隔离。这样通过精准定位可以最小化内存故障对计算机正常内存空间的影响。
56.基于图1所示的计算设备结构示意图,由于计算机在不断运行过程中,可能会发生内存的硬失效,具体的可以为,cpu向内存写入字符串后无法读取,或cpu无法向内存写入字符串,或cpu向内存写入字符串并读取后,写入的字符串与读取到的字符串不同等问题。而这些内存的失效均可以通过一定的算法检测到,计算机在启动时,基本输入输出系统(basic input output system,bios)会通过一定的算法对内存进行检测,如果访问内存出现了不可使用的故障,则会对最小不可用区域对内存进行隔离,也就是bios内存检测流程。在计算机启动后,bios利用算法对计算机的所有内存进行检测,若存在内存故障,则对故障内存进行隔离,若不存在内存故障,启动操作系统。
57.这样的内存检测流程仅可以满足内存中存在写入或擦除失败的场景,但是内存的失效场景远不仅如此,例如,已知某一批次的内存由于质量问题,使用寿命直线下降,若不及时进行隔离,必然会出现在计算机运行过程中内存异常的情况,进而导致计算机功能异常,或,由于计算机中存在内存混插,导致计算机以所有内存均支持的性能指标运行,无法发挥其他高性能内存的优势,导致的计算机性能下降。如何降低这类由于内存问题引发的计算机性能下降的情况的发生概率。
58.本技术提出可以通过主动对内存进行隔离,以降低内存性能下降或功能异常引发的计算机性能下降和功能异常事件的发生概率,本技术提供了一种用于对内存进行主动隔离的方法和设备。
59.本技术提出的技术方案中,对内存进行主动隔离可以分为配置内存信息和根据内存信息对内存进行隔离两个阶段,下面将结合图示,对这两个阶段分别进行介绍。
60.首先,对配置内存信息阶段应用于不同场景中,分别进行介绍:
61.请参阅图3,图3为本技术实施例提供的配置内存信息的一种流程示意图。
62.301、获取内存信息;
63.处理器可以在计算机运行阶段的操作系统中,计算机启动阶段的bios运行下,或在计算机的任一阶段通过web管理模块响应用户键入的指令,获取用于指示待隔离内存的内存信息。
64.示例性的,内存信息可以为字符串,用户根据计算设备中已有的内存的数量,包括channel的数量、dimm的数量以及rank的数量来确定宝石内存信息的字符串的长度,然后使用字符串中每一个比特位对应内存空间的一个channel或dimm或rank,当比特位数值为0时,表示该比特位对应的内存无需进行隔离,当比特位数值为1时,表示该比特位对应的内存需要进行隔离。
65.302、向非易失性存储器写入内存信息。
66.在响应用户键入的指令,获取内存信息后,根据计算机的运行状态调用接口或驱动向非易失性存储器中写入该内存信息。
67.下面分别根据用户键入指令的场景的不同,分别具体介绍在计算机运行阶段的操作系统中,计算机启动阶段的bios运行下,或在计算机的任一阶段通过web管理模块这三种场景中,配置内存信息的方法。请参阅图4,图4为本技术实施例提供的在计算机运行阶段的操作系统中配置内存信息的流程示意图。
68.401、显示操作系统的界面;
69.根据用户的操作,显示操作系统的界面。操作系统界面显示了内存隔离配置选项。具体的,请参阅图5,图5为本技术实施例提供的操作系统的界面的一种示意图。操作系统的界面中显示了内存隔离配置选项,选项包括:channel1,channel2,dimm1,dimm2,dimm3,dimm4,rank1,rank2,...,rank8和隔离isolation。用户可以在第一界面选定需要隔离的内存后,选定isolation进行确认。被选定的需要隔离的内存组成第一内存组。
70.可选的,操作系统的界面中还可以对当前已经被手动隔离的内存进行标记,请参阅图6,图6为本技术实施例提供的操作系统的界面的另一种示意图。图6中可以看出,当前rank1和dimm3已经被隔离,在第一界面中通过灰色进行标记,使得用户在进行手动隔离的时候可以获知当前已经被手动隔离的内存,并且进行选择是否要改变这些已经被手动隔离的内存的状态。
71.可选的,操作系统的界面还可以显示导入配置文件选项。具体的,请参阅图7,图7为本技术实施例提供的操作系统的界面的另一种示意图。操作系统的界面显示了导入配置文件选项,用户可以通过该选项直接选择导入已经根据内存空间与二进制字符串之间的对应关系生成的二进制字符串。
72.需要说明的是,图5,图6和图7描述的操作系统的界面的示意图仅为可能的一种情况,对操作系统的界面的具体展示形式不做限定,在实际应用中,应结合应用场景进行适应性调整。
73.处理器可以根据用户选择需要隔离的内存生成内存信息。
74.具体地,可以使用字符串来表示内存信息。首先可以根据计算机设备中已有的内存的数量,包括channel的数量、dimm的数量以及rank的数量来确定表示内存信息的字符串
的长度,然后使用字符串中的每一个比特位对应内存空间的一个channel或dimm或rank,当比特位数值为0时,表示该比特位对应的内存无需进行隔离,当比特位数值为1时,表示该比特位对应的内存需要进行隔离。示例性地,本技术实施例以计算设备中存在两个channel为例进行介绍,请参阅图8,图8为本技术实施例提供的内存空间与字符串之间的对应关系一种示意图,内存信息可以为一段至少14位的二进制字符串,其中14位对应channel1,channel2,dimm1,dimm2,dimm3,dimm4,rank1,rank2,...,rank8这14个内存空间。
75.需要说明的是,此处的二进制字符串与14个内存空间的对应关系仅为示例,在具体情况中可以按需设置,此处不做限定。
76.402、响应针对操作系统的界面的操作指令,向非易失性存储器写入内存信息;
77.操作系统在响应针对操作系统的界面的操作指令,生成内存信息后,调用bios与操作系统之间的接口或驱动向非易失性存储器中写入该内存信息。示例性的,调用bios与操作系统之间的runtime service接口,向flash中写入该内存信息。
78.可选的,操作系统还可以在响应针对操作系统的界面的操作指令,获取内存信息后,利用计算机的flash驱动向flash写入内存信息。
79.需要注意的是,此处对操作系统响应针对操作系统的界面的操作指令,向flash中写入内存信息的方式仅为举例,非易失性存储器还可以为eeprom或nvram等存储介质,在实际应用中,可以结合实际的应用场景对非易失性存储器的具体类型和向存储空间写入内存信息的接口进行调整,此处不做具体限定。
80.可选的,内存信息还可以分为两个部分。以图5,图6或图7所示的操作系统的界面中提供的内存隔离配置选项对应的内存信息为例,内存信息还可以包括第一数据和第二数据,其中第一数据为携带了第一内存组的信息的14位二进制数据,第二数据为第一数据按预设规则进行计算获得的数据,其中预设规则为照循环冗余校验(cyclic redundancy check,crc)常用的计算规则,此处不做具体限定。
81.本技术实施例中,用户通过操作系统的界面以及runtime service接口或flash驱动将内存信息写入非易失性存储器,充分利用了非易失性存储器与内存配置软件之间的多种接口,为向非易失性存储器写入内容提供了更多可能,即使其中一种路径发生异常仍然可以通过另一种途径向非易失性存储器写入内容。
82.请参阅图9,图9为本技术实施例提供的通过web管理模块配置内存信息的流程示意图。
83.901、显示全球广域网web管理界面;
84.根据用户的操作,显示web管理界面。web管理界面显示了内存隔离配置选项。具体的,请参阅图10,图10为本技术实施例提供的web管理界面的一种示意图。操作系统的内存配置软件界面中显示了内存隔离配置选项,选项包括:channel1,channel2,dimm1,dimm2,dimm3,dimm4,rank1,rank2,...,rank8和确定。用户可以在web管理界面标记需要隔离的内存后,选定确定进行确认。
85.可选的,操作系统的内存配置软件界面中还可以对当前已经被手动隔离的内存进行标记,请参阅图11,图11为本技术实施例提供的web管理界面的另一种示意图。图11中可以看出,当前rank1和dimm3已经被隔离,在web管理界面中标记为隔离,使得用户在进行手动隔离的时候可以获知当前已经被手动隔离的内存,并且进行选择是否要改变这些已经被
手动隔离的内存的状态。
86.可选的,web管理界面还可以显示导入配置文件选项。具体的,请参阅图12,图12为本技术实施例提供的web管理界面的另一种示意图。web管理界面显示了导入配置文件选项,用户可以通过该选项直接选择导入已经根据内存空间与二进制字符串之间的对应关系生成的二进制字符串。
87.需要说明的是,图10,图11和图12描述的web管理界面的示意图仅为可能的一种情况,对web管理界面的具体展示形式不做限定,在实际应用中,应结合应用场景进行适应性调整。
88.处理器可以根据用户选择需要隔离的内存生成内存信息。
89.具体地,可以使用字符串来表示内存信息。首先可以根据计算机设备中已有的内存的数量,包括channel的数量、dimm的数量以及rank的数量来确定表示内存信息的字符串的长度,然后使用字符串中的每一个比特位对应内存空间的一个channel或dimm或rank,当比特位数值为0时,表示该比特位对应的内存无需进行隔离,当比特位数值为1时,表示该比特位对应的内存需要进行隔离。具体的,请参阅前述图8,以及对图8的描述,此处不再赘述。
90.902、响应针对web管理界面的操作指令,向非易失性存储器写入内存信息;
91.bios响应针对web管理界面的操作指令,通过web管理模块与flash之间的串行外设接口(serial peripheral interface,spi)向flash写入内存信息。
92.可选的,内存信息还可以分为两个部分。以图10,图11或图12所示的操作系统的内存配置软件界面中提供的内存隔离配置选项对应的内存信息为例,内存信息还可以包括第一数据和第二数据,其中第一数据为携带了第一内存组的信息的14位二进制数据,第二数据为第一数据按预设规则进行计算获得的数据,其中预设规则为crc常用的计算规则,此处不做具体限定。
93.本技术实施例中,用户通过web管理界面以及web管理模块与flash之间的spi将内存信息写入非易失性存储器,由于web管理系统可以在计算机通电的任何时刻进行接入,使得用户在任意时刻都可以通过第一界面将内存信息写入非易失性存储器,不受限于计算机的运行状态,大大提升了方案的便捷性。
94.请参阅图13,图13为本技术实施例提供的计算机启动阶段的bios运行下配置内存信息的流程示意图。
95.1301、显示bios设置界面;
96.根据用户的操作,显示bios设置界面。bios设置界面显示了内存隔离配置选项。具体的,请参阅图14,图14为本技术实施例提供的bios设置界面的一种示意图。bios设置界面中显示了内存隔离配置选项,选项包括:channel1,channel2,dimm1,dimm2,dimm3,dimm4,rank1,rank2,...,rank8和确定。用户可以在bios设置界面在需要隔离的内存后面的输入框中对该内存进行标记,输入框中数字为0代表无需隔离,输入框中数字为1代表需要对该内存进行隔离,点击确定选项进行确认。
97.可选的,操作系统的内存配置软件界面中还可以对当前已经被手动隔离的内存进行标记,请参阅图15,图15为本技术实施例提供的bios设置界面的另一种示意图。图15中可以看出,当前rank1和dimm3已经被隔离,在bios设置界面中通过输入框中的数字为1标记,使得用户在进行手动隔离的时候可以获知当前已经被手动隔离的内存,并且进行选择是否
要改变这些已经被手动隔离的内存的状态。
98.需要说明的是,图14和图15描述的bios设置界面的示意图仅为可能的一种情况,对bios设置界面的具体展示形式不做限定,在实际应用中,应结合应用场景进行适应性调整。
99.处理器可以根据用户选择需要隔离的内存生成内存信息。
100.具体地,可以使用字符串来表示内存信息。首先可以根据计算机设备中已有的内存的数量,包括channel的数量、dimm的数量以及rank的数量来确定表示内存信息的字符串的长度,然后使用字符串中的每一个比特位对应内存空间的一个channel或dimm或rank,当比特位数值为0时,表示该比特位对应的内存无需进行隔离,当比特位数值为1时,表示该比特位对应的内存需要进行隔离。具体的,请参阅前述图8,以及对图8的描述,此处不再赘述。
101.1302、响应针对bios设置界面的操作指令,向非易失性存储器写入内存信息;
102.bios响应针对web管理界面的操作指令,通过web管理模块与flash之间的串行外设接口(serial peripheral interface,spi)向flash写入内存信息。
103.可选的,内存信息还可以分为两个部分。以图14或图15所示的bios设置界面中提供的内存隔离配置选项对应的内存信息为例,内存信息还可以包括第一数据和第二数据,其中第一数据为携带了第一内存组的信息的14位二进制数据,第二数据为第一数据按预设规则进行计算获得的数据,其中预设规则为crc常用的计算规则,此处不做具体限定。
104.本技术实施例中,用户通过bios界面以及bios与flash之间的spi将内存信息写入非易失性存储器,由于bios是在计算机启动阶段工作,在计算机进行内存检测前写入需要主动隔离的内存,减少了bios内存检测的工作量,提升了计算机启动效率。
105.结合以上任一种配置内存信息的方法,下面对隔离内存的方法进行介绍,请参阅图16,图16为本技术实施例提供的隔离内存的方法的一种流程示意图。
106.1601、从非易失性存储器读取内存信息;
107.bios从非易失性存储器读取内存信息,结合图8中内存空间与字符串之间的对应关系对内存信息中的二进制字符串进行解码,获知需要进行隔离的第一内存组。
108.可选的,内存信息还携带了用于进行数据传递准确性校验的第二数据时,内存信息包括第一数据和第二数据,bios从内存信息中提取第一数据和第二数据,根据预设规则对第一数据进行计算,获得第三数据,若第三数据和第二数据一致,说明内存信息正确,执行步骤1602。
109.若第三数据和第二数据不一致,说明内存信息在传递的过程中出现错误,执行步骤1603。
110.1602、对第一内存组进行隔离;
111.bios对内存中二进制字符串进行解码获知需要对第一内存组进行隔离后,对第一内存组中的内存进行隔离,并执行步骤1604。具体的,对第一内存组中的channel通道进行关闭,使得cpu在对内存进行读写时,无法访问该channel;对第一内存组中的dimm包括的所有rank对应的片选进行标记,使得cpu在对内存进行读写时,直接跳过被标记的片选;对第一内存组中的rank对应的片选进行标记,使得cpu在对内存进行读写时,直接跳过被标记的片选。
112.例如,当第一内存组包括rank1和dimm3,对rank1和dimm3进行隔离,计算机中内存
关系如前述图5、图6、图7、图10、图11、图12、图14或图15所示时,对rank1和dimm3进行隔离即为对rank1、rank5和rank6进行隔离。
113.需要注意的是,此处对第一内存组的描述仅为举例,在实际应用中应结合实际场景进行设定和判断,此处不作具体限制。
114.1603、删除内存信息;
115.当bios通过计算获知内存信息在传递的过程中出现错误后,删除内存信息,并执行步骤1604。
116.1604、启动操作系统。
117.bios根据内存信息对第一内存组进行隔离,或由于内存信息在传递过程中发生错误,对内存信息进行删除后,启动操作系统。
118.可选的,bios读取计算机内的所有内存,检测内存是否有故障,若有,对故障内存进行隔离后启动计算机,若没有,启动操作系统。需要注意的是,此处在检测内存是否有故障时,需要跳过主动隔离的内存。
119.需要注意的时候,此处对启动操作系统前,对计算机的内存进行读取和检测的描述仅为示例,在实际应用中,应结合实际场景判断是否需要对计算机的其他内存进行故障检测。
120.本技术实施例通过从非易失性存储器读取内存信息,并按照内存空间与二进制字符串之间的对应关系获知需要进行隔离的第一内存组,使用户可以通过向非易失性存储器写入需要隔离的第一内存的内存信息,实现在获知内存可能出现的问题后,主动对内存进行隔离,以降低内存性能下降或功能异常引发的计算机性能下降和功能异常事件的发生概率。
121.以上对本技术提供的多种配置内存信息的方法和隔离内存的方法进行了介绍,下面将结合具体应用场景对方案进行介绍。
122.用户通过bios设置界面配置内存信息时,请参阅图17,图17为本技术实施例提供的隔离内存的方法的另一种流程示意图。
123.计算机进入启动阶段后,进入bios setup状态,并显示bios设置界面,bios设置界面中展示当前计算机内存channel、dimm和rank级联信息,并提供可供选择的配置选项;在用户选定需要隔离的channel、dimm和/或rank后点击保存,bios根据内存空间与二进制字符串之间的对应关系,将用户选定需要隔离的channel、dimm和/或rank信息以二进制字符串的形式写入flash预留的存储空间中。并执行bios重启动作,bios重启后读取flash中保存的二进制字符串并根据crc验证数据的准确性,确认二进制字符串无误后,再根据内存空开关键与二进制字符串之间的对应关系,对二进制字符串进行解码获知需要隔离的channel、dimm和/或rank,bios对这些需要隔离的channel、dimm和/或rank进行隔离。进入bios内存检测流程并启动计算机。
124.用户通过管理模块配置内存信息时,请参阅图18,图18为本技术实施例提供的隔离内存的方法的另一种流程示意图。
125.用户通过web管理界面标记需要隔离的channel、dimm和/或rank后点击确认,或通过web管理界面进行配置文件导入后点击确认,web管理模块根据内存空间与二进制字符串之间的对应关系,将用户选定需要隔离的channel、dimm和/或rank信息以二进制字符串的
形式写入flash预留的存储空间中或直接将配置文件中的二进制字符串写入flash预留的存储空间中。在计算机重启并进入启动阶段后,bios读取flash中保存的二进制字符串并根据crc验证数据的准确性,确认二进制字符串无误后,再根据内存空开关键与二进制字符串之间的对应关系,对二进制字符串进行解码获知需要隔离的channel、dimm和/或rank,bios对这些需要隔离的channel、dimm和/或rank进行隔离。进入bios内存检测流程并启动计算机。
126.用户通过操作系统配置内存信息时,请参阅图19,图19为本技术实施例提供的隔离内存的方法的另一种流程示意图。
127.计算机启动的状态下进入操作系统,根据用户的操作展示操作系统的界面,操作系统的界面显示了内存隔离配置选项和配置文件导入选项,用户标记需要隔离的channel、dimm和/或rank后点击确认,或通过操作系统的界面进行配置文件导入后点击确认,操作系统配套的内存配置软件、脚本或导入工具根据内存空间与二进制字符串之间的对应关系,将用户选定需要隔离的channel、dimm和/或rank信息以二进制字符串的形式通过bios与操作系统之间的runtime servive接口或自身的flash驱动写入flash预留的存储空间中或直接将配置文件中的二进制字符串通过bios与操作系统之间的runtime servive接口或自身的flash驱动写入flash预留的存储空间中。在计算机重启并进入启动阶段后,bios读取flash中保存的二进制字符串并根据crc验证数据的准确性,确认二进制字符串无误后,再根据内存空开关键与二进制字符串之间的对应关系,对二进制字符串进行解码获知需要隔离的channel、dimm和/或rank,bios对这些需要隔离的channel、dimm和/或rank进行隔离。进入bios内存检测流程并启动计算机。
128.以上介绍了本技术提出的隔离内存的方法流程,下面将结合具体的场景,对本技术提出的计算装置进行介绍。
129.请参阅图20,图20为本技术实施例提供的计算装置的另一种结构示意图。
130.该计算装置包括:
131.获取单元2001,用于从非易失性存储器获取内存信息,所述内存信息指示第一内存组为待隔离内存;
132.隔离单元2002,用于根据所述内存信息隔离所述第一内存组;
133.启动单元2003,用于启动操作系统。
134.可选的,所述获取单元2001,还用于获取所述内存信息;
135.该计算装置还包括:
136.写入单元2004,用于向所述非易失性存储器写入所述内存信息。
137.可选的,所述获取单元2001,具体用于:
138.显示第一界面,所述第一界面显示内存隔离配置选项;
139.响应针对所述第一界面的操作指令,获取所述内存信息。
140.可选的,所述第一界面为操作系统的内存配置软件界面;
141.所述写入单元2004,具体用于:
142.响应针对所述第一界面的操作指令,通过操作系统下bios提供的runtime service接口向所述非易失性存储器写入内存信息;
143.或,响应针对所述第一界面的操作指令,通过操作系统下对应非易失性存储介质
的驱动向所述非易失性存储器写入内存信息。
144.可选的,所述第一界面包括全球广域网web管理界面;
145.所述写入单元2004,具体用于:
146.响应针对所述第一界面的操作指令,通过web与非易失性存储器之间的通道向所述非易失性存储器写入内存信息。
147.可选的,所述第一界面包括基本输入输出系统bios界面;
148.所述写入单元2004,具体用于:
149.响应针对所述第一界面的操作指令,通过bios与非易失性存储器之间的通道向所述非易失性存储器写入内存信息。
150.可选的,所述内存信息包括第一数据和第二数据,所述第一数据为携带了第一内存组信息的二进制数据,所述第二数据为所述第一数据按照预设规则进行计算获得的数据;
151.所述隔离单元2002,具体用于:
152.从所述内存信息中提取所述第一数据和所述第二数据;
153.根据所述预设规则计算所述第二数据,获得第三数据;
154.若所述第二数据和所述第三数据相等,隔离所述第一内存组;
155.若所述第二数据和所述第三数据不相等,删除所述内存信息。
156.可选的,所述第一界面还携带隔离内存信息。
157.根据本技术实施例,图20所示的计算装置中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本技术的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本技术的其它实施例中,基于电子设备也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
158.需要说明的是,各个单元的实现还可以对应参照上述图4、图9、图13或图16所示的方法实施例的相应描述。
159.本技术实施例还提供一种计算机可读存储介质,上述计算机可读存储介质中存储有计算机程序,当上述计算机程序在一个或多个处理器上运行时,可以实现上述图4、图9、图13或图16所示的方法。
160.本技术实施例还提供一种计算机程序产品,上述计算机程序产品包括计算机程序,当上述计算机程序产品在处理器上运行时,可以实现上述图4、图9、图13或图16所示的方法。
161.本技术实施例还提供一种芯片,该芯片包括处理器,所述处理器用于执行指令,当该处理器执行所述指令时,可以实现上述图4、图9、图13或图16所示的方法。可选的,该芯片还包括通信接口,该通信接口用于输入信号或输出信号。
162.本技术实施例还提供了一种系统,该系统包括了至少一个如上述隔离内存的设备或芯片。
163.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,
装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
164.在本技术所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
165.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
166.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
167.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。

技术特征:
1.一种隔离内存的方法,其特征在于,包括:在基本输入输出系统bios上电的过程中,从非易失性存储器获取内存信息,所述内存信息指示第一内存组为待隔离内存;根据所述内存信息隔离所述第一内存组;启动操作系统。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:获取所述内存信息;向所述非易失性存储器写入所述内存信息。3.根据权利要求2所述的方法,其特征在于,所述获取所述内存信息包括:显示第一界面,所述第一界面显示内存隔离配置选项;响应针对所述第一界面的操作指令,获取所述内存信息。4.根据权利要求3所述的方法,其特征在于,所述第一界面为操作系统的内存配置软件界面;响应针对所述第一界面的操作指令,获取所述内存信息,向所述非易失性存储器写入内存信息包括:响应针对所述第一界面的操作指令,获取所述内存信息,通过操作系统的接口向所述非易失性存储器写入内存信息;或,响应针对所述第一界面的操作指令,通过所述非易失性存储介质的驱动向所述非易失性存储器写入内存信息。5.根据权利要求3所述的方法,其特征在于,所述第一界面包括全球广域网web管理界面;响应针对所述第一界面的操作指令,获取所述内存信息,向所述非易失性存储器写入内存信息包括:响应针对所述第一界面的操作指令,获取所述内存信息,通过web与非易失性存储器之间的通道向所述非易失性存储器写入内存信息。6.根据权利要求3所述的方法,其特征在于,所述第一界面包括基本输入输出系统bios界面;响应针对所述第一界面的操作指令,获取所述内存信息,向所述非易失性存储器写入内存信息包括:响应针对所述第一界面的操作指令,获取所述内存信息,通过bios与非易失性存储器之间的通道向所述非易失性存储器写入内存信息。7.一种计算装置,其特征在于,包括:获取单元,用于从非易失性存储器获取内存信息,所述内存信息指示第一内存组为待隔离内存;隔离单元,用于根据所述内存信息隔离所述第一内存组;启动单元,用于启动操作系统。8.根据权利要求7所述的计算装置,其特征在于,所述获取单元,还用于获取所述内存信息;所述计算装置还包括:
写入单元,用于向所述非易失性存储器写入所述内存信息。9.根据权利要求8所述的计算装置,其特征在于,所述获取单元,具体用于:显示第一界面,所述第一界面显示内存隔离配置选项;响应针对所述第一界面的操作指令,获取所述内存信息。10.根据权利要求9所述的计算装置,其特征在于,所述第一界面为操作系统的内存配置软件界面;所述写入单元,具体用于:响应针对所述第一界面的操作指令,获取所述内存信息,通过操作系统的接口向所述非易失性存储器写入内存信息;或,响应针对所述第一界面的操作指令,通过所述非易失性存储介质的驱动向所述非易失性存储器写入内存信息。11.根据权利要求9所述的计算装置,其特征在于,所述第一界面包括全球广域网web管理界面;所述写入单元,具体用于:响应针对所述第一界面的操作指令,获取所述内存信息,通过web与非易失性存储器之间的通道向所述非易失性存储器写入内存信息。12.根据权利要求9所述的计算装置,其特征在于,所述第一界面包括基本输入输出系统bios界面;所述写入单元,具体用于:响应针对所述第一界面的操作指令,获取所述内存信息,通过bios与非易失性存储器之间的通道向所述非易失性存储器写入内存信息。13.一种计算装置,其特征在于,包括:处理器和存储器;所述存储器用于存储计算机执行指令;所述处理器用于执行所述存储器所存储的计算机执行指令,以使所述计算装置执行如权利要求1至6中任一项所述的方法。

技术总结
本申请实施例公开了一种隔离内存的方法,用于主动对内存进行隔离。本申请实施例方法包括:从非易失性存储器获取内存信息,所述内存信息指示第一内存组为待隔离内存;根据内存信息隔离第一内存组。该方法从非易失性存储器获取指示第一内存组为待隔离内存的内存信息,并根据该内存信息对第一内存组进行隔离。通过从非易失性存储器获取内存信息,并对内存信息指示需要隔离的第一内存组进行隔离的方法,使用户可以向非易失性存储器写入需要隔离的第一内存组,实现在获知内存可能出现的问题后,主动对内存进行隔离,以降低内存性能突发性下降和功能异常引发的计算机性能下降和功能异常事件的发生概率。事件的发生概率。事件的发生概率。


技术研发人员:王刚
受保护的技术使用者:超聚变数字技术有限公司
技术研发日:2022.06.22
技术公布日:2022/11/1
转载请注明原文地址: https://tieba.8miu.com/read-8779.html

最新回复(0)