CN114968652A - 故障处理方法及计算设备 - Google Patents
故障处理方法及计算设备 Download PDFInfo
- Publication number
- CN114968652A CN114968652A CN202210803172.7A CN202210803172A CN114968652A CN 114968652 A CN114968652 A CN 114968652A CN 202210803172 A CN202210803172 A CN 202210803172A CN 114968652 A CN114968652 A CN 114968652A
- Authority
- CN
- China
- Prior art keywords
- memory
- fault
- information
- address
- processor firmware
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/18—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
- G06F11/181—Eliminating the failing redundant component
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请提供一种故障处理方法及计算设备,该方法应用于计算设备,所述计算设备包括带外管理模块和处理器固件。该方法包括:所述带外管理模块获取内存的内存信息;所述带外管理模块根据所述内存信息,确定所述内存的故障信息,所述故障信息包括故障位置,所述故障位置所包括的位置精度至少定位在故障所在的行地址;所述带外管理模块向所述处理器固件发送所述故障信息;所述处理器固件根据所述故障信息隔离所述故障位置处的内存。通过上述方法可以准确的确定内存发生故障的位置,提高了内存故障的处理精确度。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种故障处理方法及计算设备。
背景技术
随着计算机系统中内存的容量越来越大,内存出现故障的概率越来越高。
目前,主板管理控制单元(Baseboard Management Controller,BMC)可以根据内存发生故障时的错误信息,预测内存故障,以便于计算机系统中的处理模块对内存故障进行处理。然而,BMC预测内存故障时,对于内存发生故障的位置只能精确到存储阵列(bank)地址。当内存出现行故障,或者比特故障,BMC无法确定更精细化的故障地址,导致处理模块处理内存故障时无法准确定位到故障发生的位置,内存故障的处理精确度较低。
因此,如何预测内存故障,并准确定位故障发生的位置成为一个亟待解决的问题。
发明内容
本申请提供了一种故障处理方法及计算设备,用于预测内存故障,并准确定位故障发生的位置,提高了内存故障的处理精确度。
第一方面,本申请实施例提供一种故障处理方法,应用于计算设备,所述计算设备包括带外管理模块和处理器固件,所述方法包括:
所述带外管理模块获取内存的内存信息;
所述带外管理模块根据所述内存信息,确定所述内存的故障信息,所述故障信息包括故障位置,所述故障位置所包括的位置精度至少定位在故障所在的行地址;
所述带外管理模块向所述处理器固件发送所述故障信息;
所述处理器固件根据所述故障信息隔离所述故障位置处的内存。
上述方法中,计算设备可以根据内存信息确定内存故障,且可以将内存故障发生的位置至少定位在故障所在的行地址,提高了内存故障的处理精确度。
在一种可能的实施方式中,所述处理器固件根据所述故障信息隔离所述故障位置处的内存,包括:
当所述故障位置的位置精度定位在故障所在的行地址,所述处理器固件根据所述故障位置确定目标行,并隔离所述目标行处的内存;
当所述故障位置的位置精度定位在故障所在的比特地址,所述处理器固件根据所述故障位置确定目标比特,并隔离所述目标比特处的内存。
上述方法中,可以根据故障位置,确定发生故障的目标行/目标比特,使得计算设备可以对目标行/目标比特进行隔离。
在一种可能的实施方式中,所述故障信息还包括故障类型,所述故障信息还包括故障类型,所述带外管理模块向所述处理器固件发送所述故障信息包括:
当所述故障类型为行故障,所述带外管理模块向所述处理器固件发送所述故障位置和行隔离自愈请求,所述行隔离自愈请求用于指示所述处理器固件对故障行所对应的内存进行隔离;
所述处理器固件根据所述故障信息隔离所述故障位置处的内存,包括:
所述处理器固件根据所述行隔离自愈请求隔离所述故障位置处的内存。
上述方法中,当故障类型为行故障,处理器固件根据行隔离自愈请求隔离出现故障的目标行,使得内存故障的处理精确度较高。
在一种可能的实施方式中,所述故障信息还包括故障类型,所述带外管理模块向所述处理器固件发送所述故障信息包括:
当所述故障类型为比特故障,所述带外管理模块向所述处理器固件发送所述故障位置和比特隔离自愈请求,所述比特隔离自愈请求用于指示所述处理器固件对故障比特所对应的内存进行隔离;
所述处理器固件根据所述故障信息隔离所述故障位置处的内存,包括:
所述处理器固件根据所述比特隔离自愈请求隔离所述故障位置处的内存。
上述方法中,当故障类型为比特故障,处理器固件根据比特隔离自愈请求隔离出现故障的目标比特,使得内存故障的处理精确度较高。
在一种可能的实施方式中,所述故障位置包括:处理器地址、通道地址、内存地址、内存列(rank)地址、颗粒(device)地址、存储阵列(bank)地址、行地址、列地址和错误检查和纠正ECC寄存器信息。
上述方法中,故障位置可以包括内存故障区域所在的处理器地址、通道地址、内存地址、内存列地址、颗粒地址、存储阵列地址、行地址、列地址和ECC寄存器地址等,使得计算设备可以准确定位至故障区域。
在一种可能的实施方式中,所述处理器固件根据所述故障位置确定目标行,包括:
所述处理器固件根据故障位置中的处理器地址、通道地址、内存地址、内存列地址、颗粒地址和存储阵列地址,确定目标存储阵列;
所述处理器固件将所述目标存储阵列中、所述行地址所对应的行确定为所述目标行。
上述方法中,当内存故障类型为行故障时,计算设备可以根据故障位置定位目标行,使得故障处理精确度较高。
在一种可能的实施方式中,所述处理器固件根据所述故障位置确定目标比特,包括:
所述处理器固件根据故障位置中的处理器地址、通道地址、内存地址、内存列地址、颗粒地址和存储阵列地址,确定目标存储阵列;
所述处理器固件在所述目标存储阵列中,根据所述行地址和所述列地址确定待选存储单元;
所述处理器固件根据所述ECC寄存器信息,在所述待选存储单元中确定所述目标比特。
上述方法中,当内存故障类型为比特故障时,计算设备可以根据故障位置定位目标比特,使得故障处理精确度较高。
在一种可能的实施方式中,所述内存信息包括如下至少一种:
所述内存的错误信息;
所述内存的运行状态信息;
所述内存所在设备的设备运行信息。
上述方法中,计算设备可以获取内存的错误信息、内存的运行状态信息和内存所在设备的设备运行信息中的至少一种信息,使得计算设备可以根据获取的上述信息确定内存故障。
在一种可能的实施方式中,所述带外管理模块根据所述内存信息,确定所述内存的故障信息,包括:
所述带外管理模块通过机器学习算法对所述内存信息进行处理,得到所述故障信息。
上述方法中,可以通过机器学习算法确定故障信息,使得计算设备可以确定内存故障。
第二方面,本申请实施例提供一种计算设备,包括:一个或多个处理器、一个或多个存储器;所述一个或多个存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令;所述一个或多个处理器执行所述计算机指令,使得所述一个或多个处理器执行第一方面任一项所述的方法。
上述计算设备中,处理器可以执行第一方面任一项所述的故障处理方法,使得内存故障的处理精度较高。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种计算机系统的架构示意图;
图2为本申请实施例提供的一种处理器与内存的对应关系示意图;
图3为本申请实施例提供的一种内存结构示意图;
图4为一种内存故障预测及处理示意图;
图5为本申请实施例提供的内存故障预测及处理的方法示意图;
图6为本申请实施例提供的一种内存故障预测及处理方法的流程示意图;
图7为本申请实施例提供的一种行故障预测及处理方法流程示意图;
图8为本申请实施例提供的一种比特故障预测及处理方法流程示意图;
图9为本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
为便于理解,首先结合图1,对本申请实施例涉及的计算机系统架构进行说明。
图1为本申请实施例提供的一种计算机系统的架构示意图。如图1所示,该计算机系统100包括内存模块101、处理模块102、处理器固件103及带外管理模块104。
本申请实施例对计算机系统100的具体类型不做限定。计算机系统100可以是任何包含图1中相似结构的设备。计算机系统100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。例如,计算机系统100可以是服务器、服务器集群、膝上型计算机、台式计算机、平板电脑、移动电话、人工智能设备等。
内存模块101包括一个或多个内存。内存也称为内存储器或主存储器,安装在计算机设备的主板上的内存插槽中。内存可以用于存放处理器的运算数据。例如,内存可以为双列直插式存储模块(Dual-Inline-Memory-Modules,DIMM)、动态随机存取存储器(DynamicRandom Access Memory,DRAM)、随机存储器(Random Access Memory,RAM)或只读存储器(Read Only Memory,ROM)。
处理模块102包括一个或多个处理器。处理器中包括内存控制器。内存与内存控制器之间通过内存通道(channel)进行通信。
处理器固件103也称为处理器固件程序。处理器固件103可以为基本输入输出系统(Basic Input/Output System,BIOS)、统一可扩展固件接口(Unified ExtensibleFirmware Interface,UEFI)、管理引擎(management engine,ME)、智能管理单元(intelligent management unit,IMU),或微码等固件程序。需要说明的,本申请实施例对处理器固件103的具体形式并不限定,以上仅为示例性说明。在下述实施例中,仅以处理器固件103为BIOS为例进行说明。处理器固件103可以对内存故障时的错误信息进行收集。例如,错误信息可以为可纠正错误信息和不可纠正错误信息。
带外管理模块104可以为计算机系统100中非业务模块的管理模块。带外管理模块104通过专用接口与处理器固件103进行通信。带外管理模块104可以对计算机系统100进行维护和管理。例如,带外管理模块104可以为计算机或服务器设备外部的主板管理控制单元(Baseboard Management Controller,BMC)、计算机或服务器设备外部的监控管理单元、处理器外的管理芯片中的管理系统或服务器设备系统管理模块(system management mode,SMM)等。需要说明的,本申请实施例对带外管理模块的具体形式并不限定,以上仅为示例性说明。在下述实施例中,仅以带外管理模块104为BMC为例进行说明。
上述计算机系统中,处理器固件103可以收集内存出现故障时的内存信息,并可以向带外管理模块104发送内存信息。带外管理模块104可以根据处理器固件103发送的内存信息,确定内存的故障信息,并向处理器固件103发送故障信息。处理器固件103可以根据故障信息修复内存的故障。
为便于理解,下面结合图2,对处理器与内存的对应关系进行说明。
图2为本申请实施例提供的一种处理器与内存的对应关系示意图。如图2所示,以包括2个处理器的计算机系统为例,计算机系统100包括处理器,处理器包括内存控制器。例如,处理器可以为处理器1和处理器2。
处理器1可以具有通道0和通道1两个通道。通道0可以插入内存0和内存1两个内存。通道1也可以插入内存0和内存1两个内存。
处理器2可以具有通道0和通道1两个通道。通道0可以插入内存0和内存1两个内存。通道1也可以插入内存0和内存1两个内存。
在上述计算机系统100中,若要查找某个内存,需要获取该内存对应的处理器编号、通道编号,和内存编号。例如,假设计算机系统100中某个内存的处理器编号为2,通道编号为0,内存编号为1,则可以确定该内存为计算机系统100中处理器2的通道0中插入的内存1。
进一步的,内存具有至少一个内存列(rank),每个内存列分别位于内存的一个面上,每个内存列包括至少一个子内存列(subrank)。内存列或子内存列包括多个内存颗粒(device)。每个内存颗粒被划分为多个存储阵列组(bankgroup),每个存储阵列组包括多个存储阵列(bank)。每个存储阵列划分为多个存储单元(cell)。每个存储单元具有一个行(row)地址和一个列(column)地址。每个存储单元包括一个或多个比特。在一种划分方式中,内存从上级至下级可以依次划分为内存颗粒、存储阵列组、存储阵列,存储行/存储列、存储单元、比特(bit)。其中,内存颗粒、存储阵列组、存储阵列、行、列、存储单元、比特在内存上的地址为真实的物理地址。如果要查找内存上更小粒度的存储区域,需要更详细的物理地址。
下面,结合图3,通过具体示例,对内存中更详细的物理地址进行说明。
图3为本申请实施例提供的一种内存结构示意图。请参见图3,内存包括两个内存列。内存列可以为内存列0和内存列1。每个内存列可以配置多个颗粒。例如,颗粒可以为颗粒0、颗粒1、颗粒2……颗粒7和纠错颗粒。
针对上述任意一个内存颗粒,该颗粒可以划分为多个存储阵列。请参见图3,以内存列1中的颗粒7为例,颗粒7可以包括存储阵列0、存储阵列1……存储阵列14和存储阵列15。另外,还可以将多个存储阵列归为一个存储阵列组,其中,每个存储阵列组的存储阵列的数量可以相同,或者,也可以不同。
针对上述任意一个存储阵列,该存储阵列由多个存储单元组成。多个存储单元可以以二维矩阵方式排列。请参见图3,以内存列1中颗粒7的存储阵列14为例,存储阵列14包括多个存储单元,通过行地址和列地址可以唯一确定存储阵列上的一个存储单元。
针对任意一个存储单元,该存储单元包括多个比特。请参见图3,在存储阵列14中,根据行地址7和列地址2,可以唯一确定一个存储单元。该存储单元可以包括比特1、比特2……比特7和比特8。比特为内存中最小粒度的存储单位。
在上述内存结构中,可以通过内存编号、内存列编号、颗粒编号、存储阵列编号,以及行地址和列地址准确定位某个目标存储单元。也可以通过内存编号、内存列编号、颗粒编号、存储阵列编号,和行地址准确定位某个目标行。
下面,结合图4,示例性的示出一种对内存故障进行预测及处理的方法。
图4为一种内存故障预测及处理示意图。如图4所示,BMC可以获取内存故障时的错误信息,并根据获取的错误信息进行故障预测。通过故障预测,BMC可以确定故障特征模式,不同的故障特征模式对应的隔离技术方案及故障发生的块地址。故障特征模式可以包括比特故障和行故障。BMC还可以向BIOS发送故障特征模式、隔离技术方案及故障发生的块地址。BIOS可以执行BMC发送的隔离技术方案,以对内存故障进行处理。上述方法中,不论是行故障还是比特故障,BMC都只能确定故障发生的存储阵列地址,无法确定故障发生的具体行位置或者比特位置。
本申请实施例提供了一种内存故障预测及处理方法,能够准确定位故障发生的位置,提高内存故障的处理精确度。如图5所示,图5为本申请实施例提供的内存故障预测及处理的方法示意图。
请参见图5,处理器固件103可以收集内存信息。内存信息可以包括内存错误信息和内存运行状态信息等。带外管理模块104可以从处理器固件103中获取内存信息,并通过机器学习算法对内存信息进行处理,以得到故障信息。故障信息可以包括故障类型及故障位置。故障位置的位置精度至少可以定位在故障所在的行地址。带外管理模块104还可以向处理器固件103发送故障类型及故障位置,以使处理器固件103可以准确的对故障位置进行隔离,提高了内存故障的处理精确度。
下面以具体的实施例对本申请的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图6为本申请实施例提供的一种内存故障预测及处理方法的流程示意图。请参见图6,该方法可以包括:
S601、带外管理模块获取内存的内存信息。
内存信息包括如下至少一种:内存的错误信息、内存的运行状态信息、内存所在设备的设备运行信息。
内存的错误信息包括如下至少一种:错误检查和纠正(Error Correcting Code,ECC)技术纠错后的可纠正错误(Corrected Error,CE)信息、不可纠正错误(UncorrectedError,UCE)信息、ECC纠错寄存器信息、机器检查体系(machine-check architecture,MCA)寄存器信息、MCA报告(report)信息和模式寄存器(mode register,MR)寄存器信息。内存的错误信息可以包括内存当前的错误信息及内存的历史错误信息。
计算机系统支持ECC技术,并可以通过ECC技术检查和纠正内存运行过程中出现的错误。
CE信息可以包括CE的类别、CE的出错次数、CE发生的时间、CE发生的物理地址、CE的系统地址信息、内存巡检CE出错次数、内存巡检CE出错行地址和内存巡检CE出错最多行地址中的至少一种。
UCE信息可以包括UCE的出错次数、UCE发生的时间、UCE发生的物理地址、UCE的状态、内存巡检UCE出错次数和内存巡检UCE出错行地址中的至少一种。
内存的运行状态信息包括如下至少一种:内存条的容量、内存条的读写速率、内存温度信息、运行程序信息和内存健康状态信息。
内存所在设备的设备运行信息包括如下至少一种:设备的运行状态、处理器的厂商信息、处理器的类别、处理器的型号、处理器的主频、处理器的工艺代次、处理器占用率信息、处理器温度信息、内存的类型、内存的厂商信息、内存的工艺代次、内存的主频、内存的序列号、内存的最小电压、内存的内存列数量和内存的位宽。
需要说明的是,内存所在的设备中可以包括一个或多个内存。上述内存信息指设备中所有的内存对应的内存信息。例如,当内存所在的设备中包括一个内存时,内存信息可以包括该内存的错误信息、该内存的运行状态信息和内存所在设备的设备运行信息;当内存所在的设备中包括多个内存时,内存信息包括该多个内存的错误信息、该多个内存的运行状态信息和内存所在设备的设备运行信息。
带外管理模块可以从处理器固件获取内存信息。例如,处理器固件可以为BIOS。
可选的,带外管理模块从处理器固件获取内存信息之前,处理器固件可以收集内存信息。
示例性的,处理器固件可以收集内存运行过程中出现的CE的数量信息、CE发生的时间、CE发生的物理地址、UCE的数量信息、UCE发生的时间和UCE发生的物理地址等。处理器固件还可以收集各个内存条的容量、各个内存条的读写速率和各个内存条的温度等信息。
S602、带外管理模块根据内存信息,确定内存的故障信息。
一种可能的实现方式中,故障信息包括故障位置,故障位置所包括的位置精度至少定位在故障所在的行地址。
故障位置可以包括处理器地址、通道地址、内存地址、内存列地址、颗粒地址、存储阵列地址、行地址、列地址、ECC寄存器信息。
处理器地址可以为处理器编号,通道地址可以为通道编号,内存地址可以为内存编号,内存列地址可以为内存列编号,颗粒地址可以为颗粒编号,存储阵列地址可以为存储阵列编号,行地址可以为行编号,列地址可以为列编号。
ECC寄存器信息可以为ECC寄存器对内存中各个比特生成的故障编码,故障编码可以为“0”或者“1”。例如,针对任意一个比特,若该比特的故障编码为“1”,表示该比特出现故障;若该比特的故障编码为“0”,表示该比特没有内存故障。
故障位置的位置精度,可以通过故障位置中、对应的内存区域最小的地址表征。例如,假设故障位置包括的多个地址中,对应的内存区域最小的地址为行地址,则故障位置的位置精度定位在故障所在的行;假设故障位置包括的多个地址中,对应的内存区域最小的地址为比特地址,则故障位置的位置精度定位在故障所在的比特。
另一种可能的实现方式中,故障信息还包括故障类型。
故障类型包括比特故障和行故障。
比特故障指内存中某个比特上发生的故障。发生比特故障时,需要对该比特进行修复。
行故障指内存中某个行上发生故障。发生行故障时,需要对该行进行修复。
本申请实施例中,带外管理模块可以通过机器学习算法对内存信息进行处理,得到故障信息。机器学习算法包括但不限于基于内存信息建立的故障预测模型、基于内存信息的深度学习算法和基于内存信息的连邦学习优化类算法。
当机器学习算法为基于内存信息建立的故障预测模型。带外管理模块可以获取一段时间内设备中所有内存的内存信息,并基于获取的内存信息建立故障预测模型。确定内存故障信息时,带外管理模块可以通过故障预测模型处理当前获取的内存信息,以得到故障信息。可选的,带外管理模块也可以根据当前获取的内存信息更新故障预测模型,以提高故障预测模型的计算精度。
当机器学习算法为基于内存信息的深度学习算法和基于内存信息的连邦学习优化类算法。带外管理模块可以获取一段时间内设备中所有内存的内存信息、通过上述算法对获取的内存信息进行计算、根据计算结果确定出最易发生故障的内存区域,并将该内存区域对应的内存地址确定为故障位置。
示例性的,基于内存信息建立的故障预测模型包括但不限于分级阈值算法、随机森林模型、梯度下降决策树模型(gradient boosting decision tree,GBDT)、极端梯度提升(extreme gradient boosting,XGBoost)模型、朴素贝叶斯模型和支持向量机(supportvector machine,SVM)模型。
基于内存信息的深度学习算法包括但不限于卷积神经网络(Convolutionalneural network,CNN)算法和长短期神经网络(long short-term memory,LSTM)。
基于内存信息的连邦学习优化类算法包括但不限于联邦平均法(federatedaveraging,FedAvg)、近端联邦优化算法(Federated Optimization with proximal term,FedProx)和基于用户场景的联邦学习算法(Client Selection for Federated Learning,FedCS)。
应该理解的是,机器学习算法的输入参数可以为内存信息,输出参数可以为故障类型和故障位置。
S603、带外管理模块向处理器固件发送故障信息,故障信息用于处理器固件隔离故障位置处的内存。
一种可能的实现方式中,故障信息包括故障位置。
该情况下,带外管理模块向处理器固件发送故障位置。处理器固件可以根据故障位置对出现故障的内存处的内存进行隔离。
另一种可能的实现方式中,故障信息包括故障位置和故障类型。
该情况下,当所述故障类型为行故障,所述带外管理模块向所述处理器固件发送所述故障位置和行隔离自愈请求,所述行隔离自愈请求用于指示所述处理器固件对故障行所对应的内存进行隔离。当所述故障类型为比特故障,所述带外管理模块向所述处理器固件发送所述故障位置和比特隔离自愈请求,所述比特隔离自愈请求用于指示所述处理器固件对故障比特所对应的内存进行隔离。
实际实施过程中,可以用定义字段代替具体的故障信息。即带外管理模块可以直接向处理器固件发送故障类型的定义字段和故障位置的定义字段。
示例性的,故障类型的定义字段可以如表1所示:
表1
故障类型 | 定义字段 |
无待隔离故障信息 | 0 |
比特故障 | 1 |
行故障 | 6 |
列故障 | 2 |
存储阵列故障 | 3 |
颗粒故障 | 4 |
内存列故障 | 5 |
预留 | 其他值 |
故障位置的定义字段为各地址的编号。示例性的,故障位置的定义字段可以如表2所示:
表2
故障位置 | 定义字段 |
处理器地址 | 处理器编号 |
通道地址 | 通道编号 |
内存地址 | 内存编号 |
内存列地址 | 内存列编号 |
颗粒地址 | 颗粒编号 |
行地址 | 行编号 |
列地址 | 列编号 |
示例性的,隔离自愈请求的定义字段可以如表3所示:
表3
隔离自愈请求 | 定义字段 |
比特隔离自愈请求 | 0 |
行隔离自愈请求 | 1 |
S604、处理器固件根据故障信息隔离故障位置处的内存。
对故障位置处的内存隔离之前,处理器固件可以根据故障信息确定故障所在的行,即目标行;或者处理器固件可以根据故障信息确定故障所在的比特,即目标比特。
故障信息可以包括故障位置,或者故障信息可以包括故障位置和故障类型。针对故障信息中包括的不同内容,处理器固件确定目标行/目标比特至少包括如下两种情况:
情况1、故障信息包括故障位置。
一种可能的实现方式中,当故障位置的位置精度定位在故障所在的行地址,根据故障位置确定目标行,并隔离目标行处的内存;当故障位置的位置精度定位在故障所在的比特地址,根据故障位置确定目标比特,并隔离目标比特处的内存。
该情况下,处理器固件根据故障位置就能对故障位置处的内存进行隔离,使得带外管理模块确定故障信息的开销较小。
另一种可能的实现方式中,处理器固件可以根据故障位置和内存信息对故障所在的行,或故障所在的比特进行隔离。例如,处理器固件可以根据内存的错误信息、内存的运行状态信息好内存所在设备的设备运行信息中的至少一种,以及故障位置对故障位置处的内存进行隔离。
情况2、故障信息包括故障位置和故障类型。
当故障类型为行故障,根据故障位置确定目标行,并根据行隔离自愈请求隔离目标行处的内存;当故障类型为比特故障,根据故障位置确定目标比特,并根据比特隔离自愈请求隔离目标比特处的内存。
该情况下,处理器固件无需确定故障类型,使得处理器固件的隔离速度较快。
针对行故障和比特故障,处理器固件隔离故障位置处的内存包括如下两种情况:
情况1、行故障。
根据故障位置中的处理器地址、通道地址、内存地址、内存列地址、颗粒地址和存储阵列地址,确定目标存储阵列;将目标存储阵列中、行地址所对应的行确定为目标行。
目标存储阵列为目标行所在的存储阵列。
具体而言,处理器固件可以按照从大到小的地址范围,依次通过处理器地址确定目标行所对应的处理器、在确定的处理器中根据通道地址确定目标行所对应的通道、在确定的通道中根据内存地址确定目标行所在的内存、在确定的内存中根据内存列地址确定目标行所在的内存列、在确定的内存列中根据颗粒地址确定目标行所在的颗粒,并在确定的颗粒中根据存储阵列地址确定目标存储阵列,在目标存储阵列中根据行地址确定目标行。
确定目标行后,处理器固件可以对目标行进行隔离。
方法2、比特故障。
根据故障位置中的处理器地址、通道地址、内存地址、内存列地址、颗粒地址和存储阵列地址,确定目标存储阵列;在目标存储阵列中,根据行地址和列地址确定待选存储单元;根据ECC寄存器信息,在待选存储单元中确定目标比特。
待选存储单元为目标比特所处的存储单元。
具体而言,处理器固件可以按照从大到小的地址范围,依次通过处理器地址确定目标行所对应的处理器、在确定的处理器中根据通道地址确定目标行所对应的通道、在确定的通道中根据内存地址确定目标行所在的内存、在确定的内存中根据内存列地址确定目标行所在的内存列、在确定的内存列中根据颗粒地址确定目标行所在的颗粒,并在确定的颗粒中根据存储阵列地址确定目标存储阵列,在目标存储阵列中根据行地址和列地址确定待选存储单元,并可以根据ECC寄存器信息在待选存储单元中确定目标比特。
示例性的,假设ECC寄存器对正常比特生成的故障编码为“0”,对故障比特生成的故障编码为“1”。若待选存储单元包括8个比特,ECC寄存器对该8个比特生成的故障编码依次为00010000。则处理器固件可以确定目标比特为待选存储单元中的第4个比特。
本实施例提供的故障处理方法中,处理器固件可以收集内存信息。带外管理模块可以从处理器固件获取内存信息,并通过机器学习算法确定故障类型和故障位置。故障位置可以精确至故障发生的行地址或比特地址。带外管理模块还可以向处理器固件发送故障信息。处理器固件可以根据故障信息对故障发生的行或比特进行隔离。通过上述方法,可以确定内存故障的精确位置,避免了处理内存故障时无法准确定位故障发生位置的问题,提高了内存故障的处理精确度。
在图6实施例的基础上,结合图7-图8,分别对行故障和比特故障的预测和处理方法进行说明。
图7为本申请实施例提供的一种行故障预测及处理方法流程示意图。请参见图7,该方法可以包括:
S701、带外管理模块获取内存的内存信息。
S702、带外管理模块根据内存信息,确定行故障位置。
S701-S702的具体实施方式与S601-S602类似,在此不再赘述。
S703、带外管理模块向处理器固件发送行故障位置。
行故障位置可以包括处理器地址、通道地址、内存地址、内存列地址、颗粒地址、存储阵列地址和行地址。
示例性的,带外管理模块可以向处理器固件发送目标行所对应的处理器编号、通道编号、内存编号、内存列编号、颗粒编号、存储阵列编号和行编号。
S704、处理器固件根据行故障位置确定目标行。
处理器固件确定目标行的方法可以参见S604,在此不再赘述。
S705、处理器固件对目标行进行隔离。
通过上述方法,可以将内存故障位置精确至行地址。处理器固件可以根据行故障信息对目标行进行隔离,避免了隔离位置不精准的问题,提高了内存故障的处理精确度。
图8为本申请实施例提供的一种比特故障预测及处理方法流程示意图。请参见图8,该方法可以包括:
S801、带外管理模块获取内存的内存信息。
S802、带外管理模块根据内存信息,确定比特故障位置。
S801-S802的具体实施方式与S601-S602类似,在此不再赘述。
S803、带外管理模块向处理器固件发送比特故障位置。
比特故障位置可以包括处理器地址、通道地址、内存地址、内存列地址、颗粒地址、存储阵列地址、行地址、列地址和ECC寄存器信息。
示例性的,带外管理模块可以向处理器固件发送目标行所对应的处理器编号、通道编号、内存编号、内存列编号、颗粒编号、存储阵列编号、行编号、列编号和ECC寄存器信息。
S804、处理器固件根据比特故障位置确定目标比特。
处理器固件确定目标比特的方法可以参见S604,在此不再赘述。
S805、处理器固件对目标比特进行隔离。
通过上述方法,可以将内存故障位置精确至比特地址。处理器固件可以根据比特故障信息对目标比特进行隔离,避免了隔离位置不精准的问题,提高了内存故障的处理精确度。
图9为本申请实施例提供的一种计算设备。请参见图9,所述计算设备900包括一个或多个管理器901、一个或多个处理器902、一个或多个存储器903;所述一个或多个存储器903用于存储计算机程序代码,所述计算机程序代码包括计算机指令;所述一个或多个管理器901和所述一个或多个处理器902执行所述计算机指令,使得所述一个或多个管理器901和所述一个或多个处理器902执行上述方法实施例所示的方案。
需要说明的是,本申请实施例示意的结构并不构成对计算设备900的具体限定。在本申请另一些实施例中计算设备900可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。例如,图9中的管理器可以为上述方法实施例中的带外管理模块、处理器902可以为上述方法实施例中的处理器固件。
本申请实施例提供的计算设备可以执行上述方法实施例所示的方案,其实现原理以及有益效果类似,此处不再进行赘述。
实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一可读取存储器中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储器(存储介质)包括:只读存储器(英文:read-only memory,缩写:ROM)、RAM、快闪存储器、硬盘、固态硬盘、磁带(英文:magnetic tape)、软盘(英文:floppydisk)、光盘(英文:optical disc)及其任意组合。
本申请实施例是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程终端设备的处理单元以产生一个机器,使得通过计算机或其他可编程终端设备的处理单元执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程终端设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
在本申请中,术语“包括”及其变形可以指非限制性的包括;术语“或”及其变形可以指“和/或”。本申请中术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。本申请中,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
Claims (10)
1.一种故障处理方法,其特征在于,应用于计算设备,所述计算设备包括带外管理模块和处理器固件,所述方法包括:
所述带外管理模块获取内存的内存信息;
所述带外管理模块根据所述内存信息,确定所述内存的故障信息,所述故障信息包括故障位置,所述故障位置所包括的位置精度至少定位在故障所在的行地址;
所述带外管理模块向所述处理器固件发送所述故障信息;
所述处理器固件根据所述故障信息隔离所述故障位置处的内存。
2.根据权利要求1所述的方法,其特征在于,所述处理器固件根据所述故障信息隔离所述故障位置处的内存,包括:
当所述故障位置的位置精度定位在故障所在的行地址,所述处理器固件根据所述故障位置确定目标行,并隔离所述目标行处的内存;
当所述故障位置的位置精度定位在故障所在的比特地址,所述处理器固件根据所述故障位置确定目标比特,并隔离所述目标比特处的内存。
3.根据权利要求1所述的方法,其特征在于,所述故障信息还包括故障类型,所述带外管理模块向所述处理器固件发送所述故障信息包括:
当所述故障类型为行故障,所述带外管理模块向所述处理器固件发送所述故障位置和行隔离自愈请求,所述行隔离自愈请求用于指示所述处理器固件对故障行所对应的内存进行隔离;
所述处理器固件根据所述故障信息隔离所述故障位置处的内存,包括:
所述处理器固件根据所述行隔离自愈请求隔离所述故障位置处的内存。
4.根据权利要求1所述的方法,其特征在于,所述故障信息还包括故障类型,所述带外管理模块向所述处理器固件发送所述故障信息包括:
当所述故障类型为比特故障,所述带外管理模块向所述处理器固件发送所述故障位置和比特隔离自愈请求,所述比特隔离自愈请求用于指示所述处理器固件对故障比特所对应的内存进行隔离;
所述处理器固件根据所述故障信息隔离所述故障位置处的内存,包括:
所述处理器固件根据所述比特隔离自愈请求隔离所述故障位置处的内存。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述故障位置包括:处理器地址、通道地址、内存地址、内存列(rank)地址、颗粒(device)地址、存储阵列(bank)地址、行地址、列地址和错误检查和纠正ECC寄存器信息。
6.根据权利要求2-5任一项所述的方法,其特征在于,所述处理器固件根据所述故障位置确定目标行,包括:
所述处理器固件根据故障位置中的处理器地址、通道地址、内存地址、内存列地址、颗粒地址和存储阵列地址,确定目标存储阵列;
所述处理器固件将所述目标存储阵列中、所述行地址所对应的行确定为所述目标行。
7.根据权利要求2-5任一项所述的方法,其特征在于,所述处理器固件根据所述故障位置确定目标比特,包括:
所述处理器固件根据故障位置中的处理器地址、通道地址、内存地址、内存列地址、颗粒地址和存储阵列地址,确定目标存储阵列;
所述处理器固件在所述目标存储阵列中,根据所述行地址和所述列地址确定待选存储单元;
所述处理器固件根据所述ECC寄存器信息,在所述待选存储单元中确定所述目标比特。
8.根据权利要求1-7任一项所述的方法,其特征在于,所述内存信息包括如下至少一种:
所述内存的错误信息;
所述内存的运行状态信息;
所述内存所在设备的设备运行信息。
9.根据权利要求1-8任一项所述的方法,其特征在于,所述带外管理模块根据所述内存信息,确定所述内存的故障信息,包括:
所述带外管理模块通过机器学习算法对所述内存信息进行处理,得到所述故障信息。
10.一种计算设备,其特征在于,包括:一个或多个处理器、一个或多个存储器;所述一个或多个存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令;所述一个或多个处理器执行所述计算机指令,使得所述一个或多个处理器执行如权利要求1-9任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210803172.7A CN114968652A (zh) | 2022-07-09 | 2022-07-09 | 故障处理方法及计算设备 |
PCT/CN2023/098429 WO2024012094A1 (zh) | 2022-07-09 | 2023-06-05 | 故障处理方法及计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210803172.7A CN114968652A (zh) | 2022-07-09 | 2022-07-09 | 故障处理方法及计算设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114968652A true CN114968652A (zh) | 2022-08-30 |
Family
ID=82968276
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210803172.7A Pending CN114968652A (zh) | 2022-07-09 | 2022-07-09 | 故障处理方法及计算设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114968652A (zh) |
WO (1) | WO2024012094A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115292113A (zh) * | 2022-09-30 | 2022-11-04 | 新华三信息技术有限公司 | 对服务器的内存进行故障检测方法、装置及电子设备 |
CN115543678A (zh) * | 2022-11-30 | 2022-12-30 | 苏州浪潮智能科技有限公司 | 监管ddr5内存颗粒错误的方法、系统、存储介质及设备 |
CN115543665A (zh) * | 2022-09-23 | 2022-12-30 | 超聚变数字技术有限公司 | 一种内存可靠性评估方法、装置及存储介质 |
CN115686901A (zh) * | 2022-10-25 | 2023-02-03 | 超聚变数字技术有限公司 | 内存故障分析方法及计算机设备 |
CN116841795A (zh) * | 2023-08-29 | 2023-10-03 | 苏州浪潮智能科技有限公司 | 一种内存设备控制方法、装置、电子设备及存储介质 |
WO2024012094A1 (zh) * | 2022-07-09 | 2024-01-18 | 超聚变数字技术有限公司 | 故障处理方法及计算设备 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117806870B (zh) * | 2024-02-29 | 2024-05-28 | 双一力(宁波)电池有限公司 | 一种故障代码定位方法及相关装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019218110A1 (en) * | 2018-05-14 | 2019-11-21 | Intel Corporation | Technologies for providing remote out-of-band firmware updates |
CN112650612A (zh) * | 2020-12-24 | 2021-04-13 | 新华三云计算技术有限公司 | 一种内存故障定位方法及装置 |
CN114064333A (zh) * | 2020-08-05 | 2022-02-18 | 华为技术有限公司 | 一种内存故障处理方法和装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6306300B2 (ja) * | 2013-08-21 | 2018-04-04 | Necプラットフォームズ株式会社 | メモリ管理装置、制御方法、プログラムおよび記録媒体 |
US10489232B1 (en) * | 2015-09-29 | 2019-11-26 | Amazon Technologies, Inc. | Data center diagnostic information |
CN111104293A (zh) * | 2018-10-26 | 2020-05-05 | 伊姆西Ip控股有限责任公司 | 用于支持盘故障预测的方法、设备和计算机程序产品 |
CN114186524A (zh) * | 2020-08-28 | 2022-03-15 | 长鑫存储技术有限公司 | 晶圆探测数据的处理方法和计算机可读存储介质 |
CN115080331A (zh) * | 2022-07-09 | 2022-09-20 | 超聚变数字技术有限公司 | 故障处理方法及计算设备 |
CN114968652A (zh) * | 2022-07-09 | 2022-08-30 | 超聚变数字技术有限公司 | 故障处理方法及计算设备 |
-
2022
- 2022-07-09 CN CN202210803172.7A patent/CN114968652A/zh active Pending
-
2023
- 2023-06-05 WO PCT/CN2023/098429 patent/WO2024012094A1/zh unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019218110A1 (en) * | 2018-05-14 | 2019-11-21 | Intel Corporation | Technologies for providing remote out-of-band firmware updates |
CN114064333A (zh) * | 2020-08-05 | 2022-02-18 | 华为技术有限公司 | 一种内存故障处理方法和装置 |
CN112650612A (zh) * | 2020-12-24 | 2021-04-13 | 新华三云计算技术有限公司 | 一种内存故障定位方法及装置 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024012094A1 (zh) * | 2022-07-09 | 2024-01-18 | 超聚变数字技术有限公司 | 故障处理方法及计算设备 |
CN115543665A (zh) * | 2022-09-23 | 2022-12-30 | 超聚变数字技术有限公司 | 一种内存可靠性评估方法、装置及存储介质 |
CN115292113A (zh) * | 2022-09-30 | 2022-11-04 | 新华三信息技术有限公司 | 对服务器的内存进行故障检测方法、装置及电子设备 |
CN115686901A (zh) * | 2022-10-25 | 2023-02-03 | 超聚变数字技术有限公司 | 内存故障分析方法及计算机设备 |
CN115686901B (zh) * | 2022-10-25 | 2023-08-04 | 超聚变数字技术有限公司 | 内存故障分析方法及计算机设备 |
CN115543678A (zh) * | 2022-11-30 | 2022-12-30 | 苏州浪潮智能科技有限公司 | 监管ddr5内存颗粒错误的方法、系统、存储介质及设备 |
CN116841795A (zh) * | 2023-08-29 | 2023-10-03 | 苏州浪潮智能科技有限公司 | 一种内存设备控制方法、装置、电子设备及存储介质 |
CN116841795B (zh) * | 2023-08-29 | 2024-01-12 | 苏州浪潮智能科技有限公司 | 一种内存设备控制方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2024012094A1 (zh) | 2024-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114968652A (zh) | 故障处理方法及计算设备 | |
TWI465904B (zh) | 半導體記憶裝置 | |
EP3979079A1 (en) | Memory fault handling method and apparatus, device and storage medium | |
CN110291501B (zh) | 计算中的错误校正 | |
US11016679B2 (en) | Balanced die set execution in a data storage system | |
WO2022028209A1 (zh) | 一种内存故障处理方法和装置 | |
CN108509300A (zh) | 一种基于卫星星务系统的单粒子自纠正方法 | |
US10275312B1 (en) | Systems and methods for selecting a set of storage nodes for use in reconstructing data on a faulted node in an erasure-coded system | |
Du et al. | Predicting uncorrectable memory errors for proactive replacement: An empirical study on large-scale field data | |
CN114726713B (zh) | 节点故障模型训练方法、检测方法、设备、介质及产品 | |
CN114996065A (zh) | 内存故障预测方法、装置及设备 | |
CN115080331A (zh) | 故障处理方法及计算设备 | |
WO2024027325A1 (zh) | 内存故障处理方法、装置和存储介质 | |
US11334434B2 (en) | Multi-level erasure system with cooperative optimization | |
CN115421947A (zh) | 内存故障处理方法、装置和存储介质 | |
CN115640174A (zh) | 内存故障预测方法、系统、中央处理单元及计算设备 | |
Yan et al. | On designing efficient and reliable nonvolatile memory-based computing-in-memory accelerators | |
CN115269245B (zh) | 一种内存故障处理方法及计算设备 | |
US20220004564A1 (en) | Space partitioning method for database table, device and storage medium | |
CN115391072A (zh) | 内存故障处理方法、系统及存储介质 | |
CN115658358A (zh) | 内存故障处理方法及计算机设备 | |
CN115391075A (zh) | 内存故障处理方法、系统及存储介质 | |
CN116521413A (zh) | 内存检测方法和计算设备 | |
CN115391074A (zh) | 内存故障处理方法、系统及存储介质 | |
CN115686901B (zh) | 内存故障分析方法及计算机设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |