故障处理方法及计算设备与流程

文档序号:31608216发布日期:2022-09-21 12:33阅读:159来源:国知局
故障处理方法及计算设备与流程

1.本技术涉及计算机技术领域,尤其涉及一种故障处理方法及计算设备。


背景技术:

2.中央处理器(central processing unit,cpu)中可以存储虚拟地址和物理内存地址的映射关系表,cpu可以通过该映射关系表将虚拟地址转换为对应的物理内存地址,以实现对物理内存地址的访问。当进程访问的虚拟地址所对应的物理内存地址在映射关系表中查不到时,会导致内存出现页故障。此时,操作系统(operating system,os)可以在物理内存中为该进程分配内存空间,并将该内存空间与上述进程访问的虚拟地址的映射关系添加至映射关系表,以对页故障进行处理。
3.执行上述页故障处理方法时,需要定制专用os,使得页故障处理难度较高。因此,如何预测页故障,并降低页故障处理难度是一个亟待解决的问题。


技术实现要素:

4.本技术提供了一种故障处理方法及计算设备,该方法可以对内存页故障进行预测和处理,页故障处理难度较低。
5.第一方面,本技术实施例提供一种故障处理方法,应用于计算设备,所述计算设备包括带外管理模块和处理器固件,所述方法包括:
6.所述带外管理模块获取内存的内存信息;
7.所述带外管理模块根据所述内存信息,确定所述内存的页故障信息,所述页故障信息包括故障位置;
8.所述带外管理模块向所述处理器固件发送所述页故障信息;
9.所述处理器固件向所述计算设备的操作系统os发送所述页故障信息,所述页故障信息用于指示所述os隔离所述故障位置处的内存。
10.上述方法中,带外管理模块可以根据内存信息确定页故障信息,并向处理器固件发送页故障信息。处理器固件可以向os转发页故障信息,以使os可以根据页故障信息对页故障进行处理。通过该方法,可以避免os与带外管理模块直接通信,降低了页故障处理难度。
11.在一种可能的实施方式中,所述页故障信息还包括所述内存的内存状态,所述内存状态为健康状态或者非健康状态。
12.上述方法中,页故障信息还包括了内存状态,使得计算设备可以根据内存状态判断内存是否出现故障。
13.在一种可能的实施方式中,所述带外管理模块向所述处理器固件发送所述页故障信息,包括:
14.在所述内存状态为非健康状态时,所述带外管理模块向所述处理器固件发送所述页故障信息。
15.上述方法中,带外管理模块可以对内存状态进行判断,降低了处理器固件和os的开销。
16.在一种可能的实施方式中,所述处理器固件向所述计算设备的操作系统os发送所述页故障信息,包括:
17.在所述内存状态为非健康状态时,所述处理器固件向所述os发送所述页故障信息。
18.上述方法中,处理器固件可以对内存状态进行判断,降低了带外管理模块和os的开销。
19.在一种可能的实施方式中,所述故障信息用于指示,在所述内存状态为非健康状态时,所述os隔离所述故障位置处的内存。
20.上述方法中,os可以对内存状态进行判断,降低了带外管理模块和处理器固件的开销。
21.在一种可能的实施方式中,所述故障位置包括物理地址和/或页地址,其中,所述物理地址包括:处理器地址、通道地址、内存地址、内存列地址、颗粒地址、存储阵列地址、行地址和列地址。
22.上述方法中,故障位置可以包括故障页对应的物理地址和/或页地址,使得计算设备可以准确定位至内存故障页。
23.在一种可能的实施方式中,所述故障位置包括物理地址,所述页故障信息用于指示,所述os隔离所述物理地址对应的页;
24.所述故障位置包括页地址,所述页故障信息用于指示,所述os隔离所述页地址对应的页。
25.上述方法中,os可以根据物理地址或页地址确定故障页,使得故障页的确定方法较为丰富。
26.在一种可能的实施方式中,所述带外管理模块根据所述内存信息,确定所述内存的页故障信息,包括:
27.所述带外管理模块通过机器学习算法对所述内存信息进行处理,得到所述页故障信息。
28.上述方法中,可以通过机器学习算法确定页故障信息,使得计算设备可以确定内存的页故障信息。
29.在一种可能的实施方式中,所述内存信息包括如下至少一种:
30.所述内存的错误信息;
31.所述内存的运行状态信息;
32.所述内存所在设备的设备运行信息。
33.上述方法中,计算设备可以获取内存的错误信息、内存的配置信息和内存所在设备的设备运行信息中的至少一种信息,使得计算设备可以根据获取的上述信息确定内存的页故障信息。
34.第二方面,本技术实施例提供一种计算设备,包括:一个或多个管理器、一个或多个处理器、一个或多个存储器;所述一个或多个存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令;所述一个或多个管理器和所述一个或多个处理器执行所述计
算机指令,使得所述一个或多个管理器和所述一个或多个处理器执行如第一方面任一项所述的方法。
35.上述计算设备中,管理器和处理器可以执行第一方面任一项所述的故障处理方法,使得计算设备可以对内存的页故障进行预测及处理。
附图说明
36.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
37.图1a为本技术实施例提供的一种计算机系统的架构示意图;
38.图1b为本技术实施例提供的一种页地址与物理内存地址的对应关系示意图;
39.图1c为本技术实施例提供的一种内存结构示意图;
40.图1d为本技术实施例提供的另一种计算机系统的架构示意图;
41.图2为本技术提供的一种内存页故障预测及处理示意图;
42.图3为本技术实施例提供的故障处理的方法示意图;
43.图4为本技术实施例提供的一种故障处理方法的流程示意图;
44.图5为本技术实施例提供的一种故障页隔离方法的流程示意图;
45.图6为本技术实施例提供的一种计算设备。
具体实施方式
46.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。
47.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
48.相关技术中提出一种页故障处理方法,该方法中,主板管理控制单元(baseboard management controller,bmc)可以根据内存故障时的错误信息,对页故障进行预测,并向操作系统(operating system,os)发送页故障预测结果,以使os可以根据预测结果对页故障进行处理。然而,bmc是独立于os的管理单元,目前计算机系统不支持bmc与os直接通信。故
49.为便于理解,首先结合图1a-图1d,对本技术实施例涉及的计算机系统架构进行说明。
50.图1a为本技术实施例提供的一种计算机系统的架构示意图。如图1a所示,该计算机系统100包括处理器101和内存102。
51.本技术实施例对计算机系统100的具体类型不做限定。计算机系统100可以是任何包含图1中相似结构的设备。计算机系统100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。例如,计算机系统100可以是服务器、服务器集群、膝上型计算机、台式计算机、平板电脑、移动电话、人工智能设备等。
52.内存102也称为内存储器或主存储器,安装在计算机设备的主板上的内存插槽中。内存102可以用于存放处理器101的运算数据。例如,内存102可以为动态随机存取存储器(dynamic random access memory,dram)、随机存储器(random access memory,ram)、只读存储器(read only memory,rom),或双列直插式存储模块(dual-inline-memory-modules,dimm)。
53.内存102具有至少一个内存列(rank),每个内存列分别位于内存的一个面上,每个内存列包括至少一个子内存列(subrank)。内存列或子内存列包括多个内存颗粒(device)。每个内存颗粒被划分为多个存储阵列组(bankgroup),每个存储阵列组包括多个存储阵列(bank)。每个存储阵列划分为多个存储单元(cell)。每个存储单元具有一个行(row)地址和一个列(column)地址。每个存储单元包括一个或多个比特。在一种划分方式中,内存从上级至下级可以依次划分为内存颗粒、存储阵列组、存储阵列,存储行/存储列、存储单元、比特(bit)。其中,内存颗粒、存储阵列组、存储阵列、行、列、存储单元、比特在内存上的地址为真实的物理地址。在另一种划分方式中,处理器101基于分页机制将内存芯片划分为多个内存页(page),其中,内存页的页地址为虚拟地址,虚拟地址需要转换后才会变为真实的物理地址。
54.处理器101中可以包括页表,页表为页地址和物理内存地址的映射关系表。处理器101可以通过页表将页地址转换为物理内存地址,以便于对页地址对应的物理内存地址进行访问。
55.为便于理解,下面结合图1b,对页地址与物理内存地址的对应关系进行说明。
56.图1b为本技术实施例提供的一种页地址与物理内存地址的对应关系示意图。如图1b所示,包括处理器101和内存102。处理器101可以执行计算机系统100中的任务进程,每一个任务进程对应一个页地址。例如,页地址可以为页1、页2、页3

页n。每一个页地址对应内存102中的一个物理地址。处理器101中包括页表。处理器101可以通过页表将页地址转换为对应的内存102中的物理地址。其中,内存的物理地址可以通过该部分内存对应的行地址、列地址等进行标记。为便于理解,下面结合图1c,通过具体示例,对内存的物理地址进行说明。
57.图1c为本技术实施例提供的一种内存结构示意图。请参见图1c,内存包括两个内存列。内存列可以为内存列0和内存列1。每个内存列可以配置多个颗粒。例如,颗粒可以为颗粒0、颗粒1、颗粒2
……
颗粒7和纠错颗粒。
58.针对上述任意一个内存颗粒,该颗粒可以划分为多个存储阵列。请参见图1c,以内存列1中的颗粒7为例,颗粒7可以包括存储阵列0、存储阵列1
……
存储阵列14和存储阵列15。另外,还可以将多个存储阵列归为一个存储阵列组,其中,每个存储阵列组的存储阵列的数量可以相同,或者,也可以不同。
59.针对上述任意一个存储阵列,该存储阵列由多个存储单元组成。多个存储单元可
以以二维矩阵方式排列。请参见图1c,以内存列1中颗粒7的存储阵列14为例,存储阵列14包括多个存储单元,通过行地址和列地址可以唯一确定存储阵列上的一个存储单元。
60.在上述内存结构中,可以通过内存地址、内存列地址、颗粒地址、存储阵列地址,以及行地址和列地址准确定位某个存储单元。
61.在一些实施例中,计算机系统100还可以包括其他部件。如图1d所示,图1d为本技术实施例提供的另一种计算机系统的架构示意图。请参见图1d,计算机系统100包括内存模块103、处理模块104、os105、处理器固件106和带外管理模块107。
62.内存模块103包括一个或多个内存。需要说明的,本技术实施例对内存的数量不做限定。
63.处理模块104包括一个或多个处理器。需要说明的,本技术实施例对处理器的数量不做限定。
64.os105可以在处理器上运行。os105可以对内存的页故障进行处理。
65.处理器固件105也称为处理器固件程序。处理器固件105可以为基本输入输出系统(basic input/output system,bios)、统一可扩展固件接口(unified extensible firmware interface,uefi)、管理引擎(management engine,me)、智能管理单元(intelligent management unit,imu),或微码等固件程序。需要说明的,本技术实施例对处理器固件105的具体形式并不限定,以上仅为示例性说明。在下述实施例中,仅以处理器固件105为bios为例进行说明。处理器固件105可以对内存故障时的错误信息进行收集。例如,错误信息可以为可纠正错误信息和不可纠正错误信息。
66.带外管理模块106可以为计算机系统100中非业务模块的管理模块。带外管理模块106通过专用接口与处理器固件105进行通信。带外管理模块106可以对计算机系统100进行维护和管理。例如,带外管理模块106可以为计算机或服务器设备外部的主板管理控制单元(baseboard management controller,bmc)、计算机或服务器设备外部的监控管理单元、处理器外的管理芯片中的管理系统和服务器设备系统管理模块(system management mode,smm)等。需要说明的,本技术实施例对带外管理模块的具体形式并不限定,以上仅为示例性说明。在下述实施例中,仅以带外管理模块106为bmc为例进行说明。
67.相关技术中提出一种页故障处理方法,该方法中,主板管理控制单元(baseboard management controller,bmc)可以根据内存故障时的错误信息,对页故障进行预测,并向操作系统(operating system,os)发送页故障预测结果,以使os可以根据预测结果对页故障进行处理。然而,bmc是独立于os的管理单元,部分计算机系统不支持bmc与os直接通信。
68.下面,结合图2,示例性的示出一种对内存页故障进行预测及处理的方法。该方法可以解决bmc和os无法直接通信的问题。
69.图2为本技术提供的一种内存页故障预测及处理示意图。如图2所示,bios可以收集内存故障时的错误信息。错误信息可以包括页故障发生时间、页故障发生次数等。bmc可以从底层固件获取底层固件收集的错误信息,并根据错误信息实施故障诊断,确定故障位置。bmc确定故障位置后,可以向os发送故障位置。os可以对故障位置处的内存进行隔离,以对页故障进行修复。然而,由于目前发行的主流os不支持与bmc直接通信,因此上述方法中,需要定制专用os,使得页故障处理难度较高。
70.为解决上述方法中存在的技术问题,本技术实施例提供了一种故障处理方法。如
图3所示,图3为本技术实施例提供的故障处理的方法示意图。请参见图3,处理器固件可以收集内存信息。内存信息可以包括内存错误信息和内存配置信息等。带外管理模块可以从处理器固件中获取内存信息,并通过机器学习算法对内存信息进行处理,以得到页故障信息。页故障信息可以包括故障位置和内存状态。带外管理模块还可以向处理器固件发送页故障信息。处理器固件可以接收页故障信息,并向os发送页故障信息,以使os根据页故障信息对页故障进行修复。通过上述方法,可以避免os与带外管理模块直接通信,降低了页故障处理难度。
71.下面以具体的实施例对本技术的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
72.图4为本技术实施例提供的一种故障处理方法的流程示意图。请参见图4,该方法可以包括:
73.s401、带外管理模块获取内存的内存信息。
74.内存信息包括如下至少一种:内存的错误信息、内存的运行状态信息、内存所在设备的设备运行信息。
75.内存的错误信息包括如下至少一种:错误检查和纠正(error correcting code,ecc)技术纠错后的可纠正错误(corrected error,ce)信息,以及不可纠正错误(uncorrected error,uce)信息、ecc纠错寄存器信息、机器检查体系(machine-check architecture,mca)寄存器信息、mca报告(report)信息和模式寄存器(mode register,mr)寄存器信息。内存的错误信息可以包括内存当前的错误信息及内存的历史错误信息。
76.计算机系统支持ecc技术,并可以通过ecc技术检查和纠正内存运行过程中出现的错误。
77.ce信息可以包括ce的类别、ce的出错次数、ce发生的时间、ce发生的物理地址、ce的系统地址信息、内存巡检ce出错次数、内存巡检ce出错行地址和内存巡检ce出错最多行地址中的至少一种。
78.uce信息可以包括uce的出错次数、uce发生的时间、uce发生的物理地址、uce的状态、内存巡检uce出错次数和内存巡检uce出错行地址中的至少一种。
79.内存的运行状态信息包括如下至少一种:内存条的容量、内存条的读写速率、内存温度信息、运行程序信息和内存健康状态信息。
80.内存所在设备的设备运行信息包括如下至少一种:设备的运行状态、处理器的厂商信息、处理器的类别、处理器的型号、处理器的主频、处理器的工艺代次、处理器占用率信息、处理器温度信息、内存的类型、内存的厂商信息、内存的工艺代次、内存的主频、内存的序列号、内存的最小电压、内存的内存列数量和内存的位宽。
81.需要说明的是,内存所在的设备中可以包括一个或多个内存。上述内存信息指设备中所有的内存对应的内存信息。例如,当内存所在的设备中包括一个内存时,内存信息可以包括该内存的错误信息、该内存的运行状态信息和内存所在设备的设备运行信息;当内存所在的设备中包括多个内存时,内存信息包括该多个内存的错误信息、该多个内存的运行状态信息和内存所在设备的设备运行信息。
82.带外管理模块可以从处理器固件获取内存信息。例如,处理器固件可以为bios。
83.可选的,带外管理模块从处理系统获取内存信息之前,处理器固件可以收集内存
信息。
84.示例性的,处理器固件可以收集内存运行过程中出现的ce的数量信息、ce发生的时间、ce发生的物理地址、uce的数量信息、uce发生的时间和uce发生的物理地址。处理器固件还可以收集各个内存条的容量、各个内存条的读写速率和各个内存条的温度等信息。
85.s402、带外管理模块根据内存信息,确定内存的页故障信息。
86.一种可能的实现方式中,页故障信息包括故障位置。
87.故障位置包括物理地址和/或页地址,其中,物理地址包括:处理器地址、通道地址、内存地址、内存列地址、颗粒地址、存储阵列地址、行地址和列地址。
88.物理地址可以用于标记内存上对应的存储区域。
89.页地址可以为计算机系统中任务进程对应的虚拟地址。
90.物理地址与页地址之间存在对应关系,物理地址与页地址可以通过对应关系进行转换。
91.处理器地址可以为处理器编号,通道地址可以为通道编号,内存地址可以为内存编号,内存列地址可以为内存列编号,颗粒地址可以为颗粒编号,存储阵列地址可以为存储阵列编号,行地址可以为行编号,列地址可以为列编号。
92.另一种可能的实现方式中,页故障信息可以包括故障位置和内存的内存状态。
93.内存状态用于指示内存是否出现故障。内存状态为健康状态或者非健康状态。
94.应该理解的是,当内存的内存状态为健康状态时,内存未出现页故障;当内存的内存状态为非健康状态时,内存出现页故障并需要被修复。
95.另一种可能的实现方式中,页故障信息可以包括故障位置和页故障特征。
96.页故障特征包括用于指示故障位置处出现页故障的特征信息。
97.本技术实施例中,带外管理模块可以通过机器学习算法对内存信息进行处理,得到页故障信息。机器学习算法包括但不限于基于内存信息建立的故障预测模型、基于内存信息的深度学习算法和基于内存信息的连邦学习优化类算法。
98.当机器学习算法为基于内存信息建立的故障预测模型。带外管理模块可以获取一段时间内设备中所有内存的内存信息,并基于获取的内存信息建立故障预测模型。确定页故障信息时,带外管理模块可以通过故障预测模型处理当前获取的内存信息,以得到页故障信息。可选的,带外管理模块也可以根据当前获取的内存信息更新故障预测模型,以提高故障预测模型的计算精度。
99.当机器学习算法为基于内存信息的深度学习算法和基于内存信息的连邦学习优化类算法。带外管理模块可以获取一段时间内设备中所有内存的内存信息、通过上述算法对获取的内存信息进行计算、根据计算结果确定出最易发生故障的内存区域,并将该内存区域对应的物理地址或页地址确定为故障位置。
100.示例性的,基于内存信息建立的故障预测模型包括但不限于分级阈值算法、随机森林模型、梯度下降决策树模型(gradient boosting decision tree,gbdt)、极端梯度提升(extreme gradient boosting,xgboost)模型、朴素贝叶斯模型和支持向量机(support vector machine,svm)模型。
101.基于内存信息的深度学习算法包括但不限于卷积神经网络(convolutional neural network,cnn)算法和长短期神经网络(long short-term memory,lstm)。
102.基于内存信息的连邦学习优化类算法包括但不限于联邦平均法(federated averaging,fedavg)、近端联邦优化算法(federated optimization with proximal term,fedprox)和基于用户场景的联邦学习算法(client selection for federated learning,fedcs)。
103.应该理解的是,机器学习算法的输入参数可以为内存信息,输出参数可以为页故障信息。
104.s403、带外管理模块向处理器固件发送页故障信息。
105.相应的,处理器固件接收带外管理模块发送的页故障信息。
106.实际实施过程中,可以用定义字段代替具体的页故障信息。即带外管理模块可以直接向处理器固件发送故障位置的定义字段和内存状态的定义字段。
107.故障位置的定义字段为各地址的编号。示例性的,故障位置的定义字段可以如表1所示:
108.表1
109.故障位置定义字段处理器地址处理器编号通道地址通道编号内存地址内存编号内存列地址内存列编号颗粒地址颗粒编号行地址行编号列地址列编号页地址页编号
110.示例性的,内存状态的定义字段可以如表2表示:
111.表2
112.内存状态定义字段健康状态0非健康状态1
113.页故障信息中可以包括内存状态,或者不包括内存状态。针对上述两种情况,带外管理模块向处理器固件发送页故障信息包括如下两种情况:
114.情况1、故障信息未包括内存状态。
115.该情况下,带外管理模块可以直接向处理器固件发送页故障信息。例如,带外管理模块可以向处理器固件发送故障位置,或者,带外管理模块可以向处理器固件发送故障位置和页故障特征。
116.情况2、故障信息包括内存状态。
117.该情况下,带外管理模块可以直接向处理器固件发送页故障信息;或者,当带外管理模块判断内存状态为非健康状态,带外管理模块向处理器固件发送页故障信息。
118.需要说明的是,可以在计算设备中设置带外管理模块是否需要判断内存状态。例如,若带外管理模块上负载较多,可以设置带外管理模块直接向处理器固件发送页故障信息,以节省带外管理模块的开销;若带外管理模块上负载较少,可以设置带外管理模块判断
内存状态,并在内存状态为非健康状态,向处理器固件发送页故障信息。
119.一种可能的实现方式中,带外管理模块还可以向处理器固件发送修复请求,修复请求用于指示os对页故障进行修复。修复请求中可以包括软隔离修复请求和页隔离修复请求中的至少一种。
120.s404、处理器固件向计算设备的os发送页故障信息,页故障信息用于指示os隔离故障位置处的内存。
121.应该理解的是,计算设备的os不能与带外管理模块直接通信。本技术实施例中,处理器固件可以接收带外管理模块发送的页故障信息,并可以向os转发页故障信息,以便于os对页故障进行处理。例如,处理器固件可以通过高级配置和电源管理接口(advanced configuration and power management interface,acpi)向os发送页故障信息。
122.页故障信息中可以包括内存状态,或者不包括内存状态。针对上述两种情况,处理器固件向os发送页故障信息包括如下两种情况:
123.情况1、故障信息未包括内存状态。
124.该情况下,处理器固件可以直接向os发送页故障信息。例如,处理器固件可以向os发送故障位置,或者,处理器固件可以向os发送故障位置和页故障特征。
125.情况2、故障信息包括内存状态。
126.该情况下,处理器固件可以直接向os发送页故障信息;或者,当处理器固件判断内存状态为非健康状态,处理器固件向os发送页故障信息。
127.需要说明的是,可以在计算设备中设置处理器固件是否需要判断内存状态。例如,若处理器固件上负载较多,可以设置处理器固件直接向os发送页故障信息,以节省处理器固件的开销;若处理器固件上负载较少,可以设置处理器固件判断内存状态,并在内存状态为非健康状态,向os发送页故障信息。
128.一种可能的实现方式中,处理器固件还可以向os发送页隔离请求,页隔离请求用于指示os对页故障进行修复。页隔离请求中可以包括软隔离修复请求和页隔离修复请求中的至少一种。该实现方式中,os可以根据修复请求在故障位置处执行相应的隔离方案。
129.相应的,计算设备的os可以接收页故障信息。
130.当页故障信息包括故障位置、未包括内存状态时,os直接对故障位置处的内存进行隔离;当故障信息包括故障位置、且包括内存状态时,os可以判断内存状态,并在内存状态为非健康状态时,对故障位置处的内存进行隔离。
131.需要说明的是,故障位置包括物理地址和/或页地址。物理地址可以通过预设页表转换为页地址,以使os可以根据页地址对故障页进行隔离。预设页表可以为物理地址与页地址的对应关系表。预设页表可以存储于处理器固件中,或者os中。
132.一种可能的实现方式中,处理器固件向os发送故障信息时,可以向os直接发送未经转换的故障位置。
133.该情况下,若故障位置包括物理地址,处理器固件向os发送该物理地址;若故障位置包括页地址,处理器固件向os发送该页地址;若故障位置包括物理地址和页地址,处理器固件向os发送该物理地址和页地址。
134.该情况下,处理器固件无需对物理地址进行转换,使得处理器固件的开销较小。
135.另一种可能的实现方式中,处理器固件向os发送故障信息之前,可以将故障位置
中的物理地址和/或页地址转换为页地址,并向os发送该页地址。
136.该情况下,若故障位置包括物理地址,处理器固件将物理地址转换为页地址,向os发送该页地址;若故障位置包括页地址,处理器固件向os发送该页地址;若故障位置包括物理地址和页地址,处理器固件向os发送该页地址。
137.物理地址转换为页地址的方法具体可以参见s501,在此不再赘述。
138.该情况下,os无需对物理地址进行转换,使得os的开销较小。
139.另一种可能的实现方式中,在上述步骤s403中,带外管理模块向处理器固件发送页故障信息之前,可以将页故障位置中的物理地址和/或页地址转换为页地址,并向处理器固件发送该页地址。该情况下,处理器固件和os无需对物理地址进行转换,使得处理器固件和os的开销较小。
140.本实施例提供的故障处理方法中,处理器固件可以收集内存信息。带外管理模块可以从处理器固件获取内存信息,并通过机器学习算法确定页故障信息。页故障信息可以包括故障位置和内存状态。带外管理模块还可以向处理器固件发送页故障信息,以使处理器固件可以向os转发页故障信息。os可以根据页故障信息,对故障页进行隔离处理。通过上述方法,可以避免os与带外管理模块直接通信,降低了页故障处理难度。
141.在图4实施例的基础上,os可以根据接收的页故障信息对故障页进行隔离。下面,结合图5对故障页隔离方法进行说明。
142.图5为本技术实施例提供的一种故障页隔离方法的流程示意图。请参见图5,该方法可以包括:
143.s501、os根据页故障信息确定故障页。
144.os处理页故障时,需要根据页故障信息中的故障位置确定故障页。
145.一种可能的实现方式中,若处理器固件向os发送的故障位置为转换后的页地址,则os将该页地址对应的页确定为故障页。
146.另一种可能的实现方式中,若处理器固件向os发送的故障位置为未经转换的故障位置,则故障位置包括物理地址和/或页地址,当故障位置中包括的地址不同,os根据故障位置确定故障页的方式也不同,可以包括如下三种情况:
147.情况1、故障位置包括页地址。
148.该情况下,页地址对应的页为故障页。
149.示例性的,假设os接收的故障位置为页n,则页n为故障页。
150.该情况下,os可以快速确定故障页。
151.情况2、故障位置包括物理地址。
152.该情况下,os根据物理地址,在预设页表中查询物理地址对应的页地址,并将页地址对应的页确定为故障页。
153.预设页表可以为物理地址与页地址的对应关系表。预设页表可以存储于os中。
154.具体而言,os可以按照从大到小的地址范围,依次通过处理器地址确定故障页对应的处理器、在确定的处理器中根据通道地址确定故障页对应的通道、在确定的通道中根据内存地址确定故障页对应的内存、在确定的内存中根据面地址确定故障页对应的内存列、在确定的内存列中根据颗粒地址确定故障页对应的颗粒、在确定的颗粒中根据块地址确定故障页对应的块,并在确定的块中,根据故障位置中的行地址和列地址确定物理地址
对应的具体内存区域。确定物理地址对应的具体内存区域后,os还可以通过预设页表查询该内存区域对应的页地址,并将页地址对应的页确定为故障页。
155.情况3、故障位置包括物理地址和页地址。
156.该情况下,os可以直接根据页地址确定故障页;或者,os也可以通过物理地址确定故障页。os可以根据实际需要选择对应的地址确定故障页。
157.s502、os对故障页处的内存进行隔离。
158.os可以根据页故障信息故障页进行页隔离。例如,页隔离可以为页面软离线(page soft-offline),或者页面硬脱机(page hard-offline),或者页面离线(pageofflining),或者软脱机(soft-offlining)等。
159.本实施例提供的故障页隔离方法中,os可以根据处理器固件发送的故障位置确定故障页,并对故障页进行页隔离。通过上述方法,可以使os对内存页故障进行处理,且避免了os与带外管理模块直接通信,使得页故障处理难度较低。
160.图6为本技术实施例提供的一种计算设备。请参见图6,所述计算设备600包括一个或多个管理器601、一个或多个处理器602、一个或多个存储器603;所述一个或多个存储器603用于存储计算机程序代码,所述计算机程序代码包括计算机指令;所述一个或多个管理器601和所述一个或多个处理器602执行所述计算机指令,使得所述一个或多个管理器601和所述一个或多个处理器602执行上述方法实施例所示的方案。
161.需要说明的是,本技术实施例示意的结构并不构成对计算设备600的具体限定。在本技术另一些实施例中计算设备600可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。例如,图6中的管理器可以为上述方法实施例中的带外管理模块、处理器602可以为上述方法实施例中的处理器固件。
162.本技术实施例提供的计算设备可以执行上述方法实施例所示的方案,其实现原理以及有益效果类似,此处不再进行赘述。
163.实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一可读取存储器中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储器(存储介质)包括:只读存储器(英文:read-only memory,缩写:rom)、ram、快闪存储器、硬盘、固态硬盘、磁带(英文:magnetic tape)、软盘(英文:floppy disk)、光盘(英文:optical disc)及其任意组合。
164.本技术实施例是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程终端设备的处理单元以产生一个机器,使得通过计算机或其他可编程终端设备的处理单元执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
165.这些计算机程序指令也可存储在能引导计算机或其他可编程终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个
方框中指定的功能。
166.这些计算机程序指令也可装载到计算机或其他可编程终端设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
167.显然,本领域的技术人员可以对本技术实施例进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术实施例的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
168.在本技术中,术语“包括”及其变形可以指非限制性的包括;术语“或”及其变形可以指“和/或”。本技术中术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。本技术中,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1