CN109328340A - 内存故障的检测方法、装置和服务器 - Google Patents

内存故障的检测方法、装置和服务器 Download PDF

Info

Publication number
CN109328340A
CN109328340A CN201780039033.9A CN201780039033A CN109328340A CN 109328340 A CN109328340 A CN 109328340A CN 201780039033 A CN201780039033 A CN 201780039033A CN 109328340 A CN109328340 A CN 109328340A
Authority
CN
China
Prior art keywords
rank
memory
count device
hopper
hopper count
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.)
Granted
Application number
CN201780039033.9A
Other languages
English (en)
Other versions
CN109328340B (zh
Inventor
宋刚
丁成果
张飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN109328340A publication Critical patent/CN109328340A/zh
Application granted granted Critical
Publication of CN109328340B publication Critical patent/CN109328340B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2268Logging of test results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2273Test methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair

Abstract

本申请提供了一种内存故障的检测方法、装置和服务器。该方法包括:接收服务器的第一漏斗计数器的计数值达到第一阈值时发送的第一中断信号;关闭第一漏斗计数器的中断开关;在关闭第一漏斗计数器的中断开关的时间达到预设时间后,对第一漏斗计数器的计数值清零后,开启第一漏斗计数器的中断开关;接收第二漏斗计数器的计数值达到第二阈值时发送的第二中断信号,第二漏斗计数器用于对第二漏斗计数器对应的第二RANK中发生的可纠正错误进行计数;在第二漏斗计数器与第一漏斗计数器为同一漏斗计数器,且第二RANK和第一RANK也为同一RANK的情况下,确定第一RANK发生硬件故障。本申请能更准确地确定发生硬件故障的内存。

Description

内存故障的检测方法、装置和服务器
技术领域
本申请涉及服务器技术领域,并且更具体地,涉及一种内存故障的检测方法、装置和服务器。
背景技术
随着服务器技术的发展,服务器中配置的内存的容量越来越大,内存的运行速度越来越高。在服务器运行过程中,大量高速运行的内存成为服务器中最影响系统稳定性的故障高发地带,如果服务器的内存出现硬件故障,则无法保证服务器持续的正常运行。
目前,识别服务器的内存故障的现有方案是在服务器中配置漏斗计数器,利用漏斗计数器对服务器中的内存发生的可纠正错误进行计数,当漏斗计数器的计数值达到一定的阈值后触发中断并发出内存故障预告警。
然而,某些内存故障的类型并非硬件故障,而为软故障(例如,宇宙射线导致的比特翻转)或者瞬时故障(例如,数据线的串扰),这些非硬件故障发生时,也会产生可纠正错误。现有方案中利用漏斗计数器进行内存故障预告警的方式无法识别是由硬件故障还是非硬件故障导致的可纠正错误,从而无法准确识别内存是否发生了硬件故障,从而影响其他的以准确识别硬件故障为前提的操作的效率,例如故障维修或导致故障误告警等。
发明内容
本申请提供一种内存故障的检测方法、装置和服务器,以更准确地确定出发生硬件故障的内存。
第一方面,提供了一种内存故障的检测方法,该方法包括:接收服务器的第一漏斗计数器的计数值达到第一阈值时发送的第一中断信号,其中,所述第一漏斗计数器用于对所述第一漏斗计数器对应的第一RANK中发生的可纠正错误进行计数;关闭所述第一漏斗计数器的中断开关;在关闭所述第一漏斗计数器的中断开关的时间达到预设时间后,对所述第一漏斗计数器的计数值清零后,开启所述第一漏斗计数器的中断开关;接收第二漏斗计数器的计数值达到所述第二阈值时发送的第二中断信号,所述第二漏斗计数器用于对所述第二漏斗计数器对应的第二RANK中发生的可纠正错误进行计数;在所述第二漏斗计数器与所述第一漏斗计数器为同一漏斗计数器,且所述第二RANK和所述第一RANK也为同一RANK的情况下,确定所述第一RANK发生硬件故障。
本申请中,通过复判(两次接收中断信号)与间隔时间(第一次接收到中断信号之后将漏斗计数器的中断开关关闭)能够更准确地确定发生硬件故障的内存,具体地,在第一次接收到漏斗计数器的中断信号之后并不是直接确定该漏斗计数器对应的RANK发生了硬件故障,而是将该漏斗计数器的中断开关关闭一段时,并对计数值清零,然后再开启,如果再次接收到该漏斗计数器的中断信号,那么就确定该漏斗计数器对应的RANK发生了硬件故障。
结合第一方面,在第一方面的某些实现方式中,在所述第二漏斗计数器与所述第一漏斗计数器为同一漏斗计数器,且所述第二RANK和所述第一RANK也为同一RANK的情况下,所述方法还包括:在接收到所述第一中断信号的情况下,记录所述第一RANK中发生可纠正错误的内存颗粒;在接收到所述第二中断信号的情况下,记录所述第一RANK中发生可纠正错误的内存颗粒;确定所述第一RANK中发生可纠正错误的内存颗粒的记录次数;在所述第一RANK中的第一内存颗粒的记录次数达到预定次数时,确定所述第一内存颗粒发生硬件故障。
通过比较内存颗粒的记录次数与预定次数的关系,能够进一步的确定硬件故障发生的具体层级(是某个内存颗粒还是整个RANK),便于针对性的进行故障处理。
结合第一方面,在第一方面的某些实现方式中,在所述第二漏斗计数器与所述第一漏斗计数器为同一漏斗计数器,且所述第二RANK和所述第一RANK也为同一RANK的情况下,所述方法还包括:在接收到所述第一中断信号的情况下,记录所述第一RANK;在接收到所述第二中断信号的情况下,记录所述第一RANK;确定所述第一RANK的记录次数;所述确定所述第一RANK发生硬件故障,包括:在所述第一RANK的记录次数达到预定次数的情况下,确定所述第一RANK发生硬件故障。
通过比较RANK的记录次数与预定次数的关系,能够进一步确定某个RANK是否真正发生了硬件故障,便于更加准确地确定发生故障的内存。
结合第一方面,在第一方面的某些实现方式中,在所述第二漏斗计数器与所述第一漏斗计数器为同一漏斗计数器,且所述第二RANK和所述第一RANK也为同一RANK的情况下,所述方法还包括:在接收到所述第一中断信号的情况下,记录第一内存条,其中,所述第一内存条包括所述第一RANK;在接收到所述第二中断信号的情况下,记录所述第一内存条;确定所述第一内存条的记录次数;在所述第一内存条的记录次数达到预定次数的情况下,确定所述第一内存条发生硬件故障。
通过比较内存条的记录次数与预定次数的关系,能够确定某个内存条是否真正发生了硬件故障,能够更加准确地确定发生故障的内存。
结合第一方面,在第一方面的某些实现方式中,所述第一漏斗计数器与所述第二漏斗计数器为不同漏斗计数器,所述方法还包括:在接收到所述第一中断信号的情况下,记录第一内存条,其中,所述第一内存条包括所述第一RANK和所述第二RANK;在接收到所述第二中断信号的情况下,记录所述第一内存条;确定所述第一内存条的记录次数;在所述第一内存条的记录次数达到预定次数的情况下,确定所述第一内存条发生硬件故障。
当第一漏斗计数器和第二漏斗计数器为不同的漏斗计数器时,也可以通过比较内存条的记录次数与预定次数的关系,能够确定某个内存条是否真正发生了硬件故障,能够更加准确地确定发生故障的内存。
结合第一方面,在第一方面的某些实现方式中,在确定所述第一内存颗粒发生硬件故障的情况下,所述方法还包括:对所述第一RANK中的所述内存颗粒进行在线替换。
当第一内存颗粒出现硬件故障时,通过在线替换将发生硬件故障的第一内存颗粒替换掉,从而避免服务器由于第一RANK中的内存颗粒发生硬件故障而不能正常运行。
结合第一方面,在第一方面的某些实现方式中,在对所述第一内存颗粒进行在线替换之前,所述方法还包括:确定所述第一RANK中存在冗余内存颗粒;所述对所述第一内存颗粒进行在线替换,包括:通过所述冗余内存颗粒对所述第一内存颗粒进行在线替换。
结合第一方面,在第一方面的某些实现方式中,在确定所述第一RANK发生硬件故障的情况下,所述方法还包括:对所述第一RANK进行在线替换。
当第一RANK出现硬件故障时,通过在线替换将发生硬件故障的第一RANK替换掉,从而保证服务器的正常运行。
结合第一方面,在第一方面的某些实现方式中,在对所述第一RANK进行在线替换之前,所述方法还包括:确定所述第一RANK所在的内存条中存在冗余RANK;所述对所述第一RANK进行在线替换,包括:通过所述冗余RANK对所述第一RANK进行在线替换。
结合第一方面,在第一方面的某些实现方式中,所述方法还包括:将所述第一漏斗计数器的计数值清零。
通过将第一漏斗计数器的计数值清零,使得漏斗计数器重新开始对可纠正错误进行计数,从而继续进行内存故障的诊断。
结合第一方面,在第一方面的某些实现方式中,在确定所述第一内存条发生硬件故障的情况下,所述方法还包括:发出故障告警,所述故障告警用于指示所述第一内存条发生硬件故障。
通过故障告警能够提示技术人员对出现硬件故障的内存条进行替换或者其它处理,从而保证服务器的正常运行。
结合第一方面,在第一方面的某些实现方式中,所述第一漏斗计数器或者第二漏斗计数器的漏斗频率是根据服务器中的内存的访问频率以及非硬件故障(例如软故障或瞬时故障)发生的内存可纠正错误的频率来设置。
具体地,在设置漏斗频率时可以使得漏斗频率小于内存访问的频率而大于非硬件故障发生的内存可纠正错误的频率。例如,漏斗频率可以设置在1个/秒至100个/秒之间。
结合第一方面,在第一方面的某些实现方式中,所述第一阈值是根据非硬件故障持续的时间以及漏斗频率来确定的。
第二方面,提供了一种内存故障的检测装置,所述装置包括用于执行所述第一方面或者第一方面的任一可能的实现方式中的方法的模块。
第三方面,提供一种内存故障的检测装置,包括存储器、收发器和处理器,所述存储器用于存储程序,所述处理器用于执行程序,当所述程序被执行时,所述处理器和所述收发器执行所述第一方面或者第一方面的任一可能的实现方式中的方法。
第四方面,提供一种服务器,所述服务器包括所述第二方面或者第三方面中的内存故障的检测装置和存储器,其中,所述内存故障的检测装置用于检测所述存储器中的内存是否发生硬件故障,所述存储器中的内存包含内存条、内存模组RANK以及内存颗粒中的至少一种。
第五方面,提供一种芯片,所述芯片包括处理器与通信接口,所述通信接口用于与外部器件进行通信,所述处理器用于执行第一方面或第一方面的任一可能的实现方式中的方法。
可选地,作为一种实现方式,所述芯片还可以包括存储器,所述存储器中存储有指令,所述处理器用于执行所述存储器上存储的指令,当所述指令被执行时,所述处理器用于执行第一方面或第一方面的任一可能的实现方式中的方法。
附图说明
图1是本申请实施例的服务器的示意性框图;
图2是本申请实施例的内存故障的检测方法的示意性流程图;
图3是本申请实施例的内存故障的检测方法的示意图;
图4是本申请实施例的内存故障的检测装置的示意性框图;
图5是本申请实施例的内存故障的检测装置的示意性框图。
具体实施方式
为了更好地理解本申请实施例的内存故障的检测方法,下面先结合图1对本申请实施例的应用场景进行简单的介绍。
如图1所示,为本申请实施例提供的服务器100,该服务器100包括控制模块101、内存控制器102以及存储器103。其中,控制模块101可以由中央处理器(Central ProcessingUnit,CPU)以及基本输入输出系统(Basic Input Output System,BIOS)组成,其中,BIOS中可以存储SMI中断处理程序。存储器103由多个内存条组成,每个内存条由两个内存模组(RANK,下文中将内存模组简称为RANK)组成,每个RANK由多个内存颗粒组成。可以理解,具体实现中,内存条也可以由多个RANK组成,本申请对此不做具体限制。
具体地,存储器103包含内存条1至内存条N,内存条1由RANK1和RANK2组成,内存条2由RANK3和RANK4组成,对于RANK1至RANK4来说,每个RANK均包含内存颗粒1至内存颗粒M,M可以为8、16或者其它数值。应理解,不同RANK中具有相同编号的内存颗粒是不同的内存颗粒,例如,RANK1中的内存颗粒1表示RANK1中编号为1的内存颗粒,而RANK2中的内存颗粒1表示RANK2中编号为1的内存颗粒。
一般情况下,对于存储器103中的每一个RANK来说,内存控制器102中均有一个与其对应的漏斗计数器,如图1所示,RANK1至RANK4对应的漏斗计数器分别为漏斗计数器1至漏斗计数器4,每个漏斗计数器用于对对应的RANK中发生的可纠正错误进行计数。另外,图1中的漏斗计数器L对应的是内存条N中的最后一个RANK,用于对内存条N中的最后一个RANK中发生的可纠正错误进行计数。对于每个漏斗计数器来说,漏斗计数器中还可以包含一个寄存器,该寄存器可以记录漏斗计数器的计数值达到一定阈值后发生可纠正错误的内存颗粒的编号、发生可纠正错误的内存颗粒所属的RANK的编号以及发生可纠正错误的内存颗粒所属的内存条的编号等等。
当某个漏斗计数器记录的可纠正错误的计数值达到一定的阈值时可以触发SMI中断,这时,控制模块可以记录下该漏斗计数器的计数值达到一定的阈值后,发生可纠正错误的内存颗粒,RANK以及内存条等等。例如,当漏斗计数器1记录的可纠正错误的计数值达到一定的阈值后,漏斗计数器1向控制模块发送中断信号,控制模块记录此时发生可纠正错误的内存条1、RANK1以及RANK1中发生可纠正错误的内存颗粒。
应理解,在服务器100中,控制模块101与存储器103之间可以是存在连接关系的(图中未画出),以便于控制模块101将数据存储到存储器103中或者将数据从存储器103中读出。另外,服务器100中还可以存在其它的模块或者单元,为了简洁,图1中只示出了控制器101、内存控制器102以及存储器103这三个主要的模块。
本申请实施例的内存故障的检测方法可以适用于图1所示的服务器中,具体地,本申请实施例的内存故障的检测方法可以对图1的服务器100中的存储器103中的内存进行故障检测。应理解,图1所示的服务器只是本申请实施例应用的一个具体的场景,本申请实施例还可以应用于其它能够进行内存故障检测的场景,本申请对应用场景不作具体限制。
图2是本申请实施例的内存故障的检测方法的示意性流程图。图2所示的方法可以由(服务器中的)控制模块或者控制单元来执行,例如,图2所示的方法可以由图1中的控制模块101或者具体由控制模块101中的CPU执行。利用图2所示的方法能够对存储器103进行故障检测。图2所示的方法具体包括:
210、接收服务器的第一漏斗计数器的计数值达到第一阈值时发送的第一中断信号,其中,第一漏斗计数器用于对第一漏斗计数器对应的第一RANK中发生的可纠正错误进行计数。
应理解,上述第一漏斗计数器可以是设置在服务器中的任意一个漏斗计数器,例如,第一漏斗计数器可以是图1的服务器100中的漏斗计数器1,用于对RANK1中发生的可纠正错误进行计数。只有在第一漏斗计数器的计数值达到第一阈值时才会向外发送中断信号,如果第一漏斗计数器的计数值小于第一阈值,那么第一漏斗计数器不向外发送中断信号。
服务器中可以包含多个漏斗计数器,其中,每个漏斗计数器可以对应于服务器中的一个RANK,当服务器运行时,如果访问该RANK中的内存出现了可纠正错误,那么该漏斗计数器就会对该RANK发生的可纠正错误进行计数。当漏斗计数器的计数值达到第一阈值时,该漏斗计数器就会触发系统管理中断(System Management Interrupt,SMI),并发送中断信号。
另外,上述漏斗计数器也可以称为内存可纠正错误漏斗计数器或者内存漏斗计数器或者其他名称,其作用是对该漏斗计数器中发生的可纠正错误进行计数,为了描述方便,本文中统一采用漏斗计数器这一名称进行描述。
220、关闭第一漏斗计数器的中断开关。
应理解,在关闭第一漏斗计数器的中断开关之后,即使第一漏斗计数器的计数值达到第一阈值也无法向外发送中断信号。因此,关闭第一漏斗计数器的中断开关后,CPU也无法接收到第一漏斗计数器发送的中断信号。
230、在关闭第一漏斗计数器的中断开关的时间达到预设时间后,对第一漏斗计数器的计数值进行清零后,开启第一漏斗计数器的中断开关。
在接收到第一漏斗计数器的第一中断信号之后,通过关闭第一漏斗计数器的中断开关一段时间并清零,然后再开启的方式,可以区分由于非硬件故障(软故障或者瞬时故障)导致的内存可纠正错误以及硬件故障导致的可纠正错误。
可选地,步骤230中的预设时间是预先设置的一段固定的时间间隔,该预设时间可以在10-20秒之间,例如,该预设时间可以是15秒,18秒,20秒等等。
可选地,预设时间的长短可以与非硬件故障(包括软故障或者瞬时故障)的持续时间有关,如果非硬件故障的持续时间较长,可以设置一个较长的预设时间,如果非硬件故障的持续时间较短时可以设置一个较短的预设时间。
具体地,硬件故障导致的可纠正错误一般会复现,而非硬件故障导致的可纠正错误一般不会复现,因此,在关闭了漏斗计数器的中断开关一段时间(例如,15秒钟)之后还可以再接收到漏斗计数器发送的中断信号,那么可以认为内存发生了硬件故障,而在关闭了漏斗计数器的中断开关一段时间之后没有再接收到漏斗计数器发送的中断信号,那么可以认为内存发生了非硬件故障。
另外,关闭漏斗计数器的中断开关具体可以是指关闭该漏斗计数器的SMI,可以理解,本申请实施例也可以采取其他已有的硬件或软件的方式关闭漏斗计数器的中断开关,本申请对此不做限定,在中断开关关闭期间,即使漏斗计数器的计数值达到了第一阈值,漏斗计数器也无法向外发送中断信号。在关闭漏斗计数器的SMI的时间达到预设时间之后,重新开启漏斗计数器的SMI,使得漏斗计数器的计数值达到第一阈值后能够再次向外发送中断信号。
240、接收第二漏斗计数器的计数值达到第二阈值时发送的第二中断信号,第二漏斗计数器用于对第二漏斗计数器对应的第二RANK中发生的可纠正错误进行计数。第一阈值和第二阈值可以为同一阈值或不同阈值,在此不作具体的限定。
250、在第一漏斗计数器与第二漏斗计数器为同一漏斗计数器,且第二RANK和第一RANK也为同一RANK的情况下,确定第一RANK发生硬件故障。
例如,如图1所示,当上述第一漏斗计数器和第二漏斗计数器均为图1中的漏斗计数器1且第一RANK和第二RANK均为图1中的RANK1时,确定图1中的RANK1发生硬件故障。
本申请中,通过复判(两次接收中断信号)与间隔时间(第一次接收到中断信号之后将漏斗计数器的中断开关关闭)能够更准确地确定发生硬件故障的内存,具体地,在第一次接收到漏斗计数器的中断信号之后并不是直接确定该漏斗计数器对应的RANK发生了硬件故障,而是将该漏斗计数器的中断开关关闭一段时间,并对计数值清零,然后再开启,如果再次接收到该漏斗计数器的中断信号,那么就确定该漏斗计数器对应的RANK发生了硬件故障。
在通过多次复判与间隔时间判断出发生硬件故障的RANK后,还可以通过记录每次漏斗计数器的计数值达到第一阈值时漏斗计数器对应的RANK、内存颗粒以及内存条发生可纠正错误的次数来进一步确定硬件故障具体发生在某个内存颗粒、RANK还是内存条中,从而确定发生硬件故障的内存所处的具体层级。
另外,在上述步骤210至步骤250中,第一漏斗计数器和第二漏斗计数器还可以对应不同的阈值,具体地,第一漏斗计数器达到第一阈值时发送第一中断信号,第二漏斗计数器达到第二阈值时发送第二中断信号。
漏斗计数器一般会设置有一定的漏斗频率和漏斗阈值。其中,漏斗频率是指漏斗计数值每秒钟需要减去的数值,例如,当漏斗计数器的漏斗频率为20时,漏斗计数器的计数值每秒钟要减去20。由于软故障发生的可纠正错误的次数少,因此,设置高频率的漏斗频率,可以减少漏斗计数器的计数值持续高于漏斗阈值的情况发生。另外,软故障发生的可纠正错误一般不会复现,因此,在接收到中断信号后,通过关闭中断开关在预设时间后,如果下一次接收到同一漏斗计数器发送的中断信号,可以准确识别服务器的内存是否发生硬件故障。
设置漏斗阈值的目的是为了漏斗计数器的计数值达到所述漏斗阈值时触发中断信号的发送,进而记录发生可纠正错误的内存。例如,漏斗阈值为6000,当漏斗计数器的计数值达到6000时漏斗计数器就向外发送中断信号,以记录发生可纠正错误的内存。
应理解,上述步骤210和步骤240中的第一阈值和第二阈值均可以认为是漏斗计数器的漏斗阈值。
在进行内存故障检测时,可以根据故障诊断的准确性要求来设置漏斗计数器的漏斗阈值,当对故障诊断的准确性要求较高时可以设置一个较大的漏斗阈值,反之,则可以设置一个较小的漏斗阈值。
另外,在进行内存故障检测时,还可以根据服务器中的内存的访问频率以及非硬件故障(软故障和瞬时故障)导致发生可纠正错误的频率来设置漏斗频率。具体地,在设置漏斗频率时可以使得漏斗频率小于内存访问的频率而大于非硬件故障(例如软故障)导致内存发生可纠正错误的频率。例如,漏斗频率可以设置在1个/秒至100个/秒之间。
因此,可以根据内存故障检测的实际需要来设置漏斗计数器的漏斗阈值和漏斗频率。
在设置漏斗计数器的漏斗阈值(相当于上文中的第一阈值,发生可纠正错误的次数达到漏斗阈值时,漏斗计数器会向外发送中断信号)时,可以根据非硬件故障持续的时间以及漏斗频率来确定的。具体地,可以设置一个持续时间段,该持续时间段的长度大于非硬件故障持续的时间,将该持续时间段与漏斗频率的乘积确定为漏斗计数器的漏斗阈值,或者,再根据内存故障检测时的准确性和覆盖率方面的要求设置一个倍数参数,将持续时间、倍数参数以及漏斗频率的乘积确定为漏斗计数器的漏斗阈值。
例如,漏斗计数器的漏斗频率为1个/秒,持续时间为60秒,倍数参数为100,则漏斗阈值为6000。
可选地,当第二漏斗计数器与第一漏斗计数器为同一漏斗计数器,并且第一RANK和第二RANK也为同一RANK时,图2所示的方法还包括:在接收到第一中断信号的情况下,记录第一RANK中发生可纠正错误的内存颗粒;在接收到第二中断信号的情况下,记录第一RANK中发生可纠正错误的内存颗粒;确定第一RANK中发生可纠正错误的内存颗粒的记录次数;在第一RANK中的第一内存颗粒的记录次数达到预定次数时,确定第一内存颗粒发生硬件故障。
应理解,在记录的第一RANK中发生可纠正错误的内存颗粒具体是指当第一漏斗计数器的计数值达到第一阈值时,第一RANK中的哪个内存颗粒发生可纠正错误就记录哪个内存颗粒,例如记录该内存颗粒的编号。
例如,上述预定次数为3次,如果图1中的漏斗计数器1连续三次达到第一阈值,并且,RANK1中的颗粒1的记录次数达到了三次,那么就可以确定图1中的RANK1中的颗粒1发生硬件故障。
通过比较内存颗粒的记录次数与预定次数的关系,能够进一步的确定硬件故障发生的具体层级(是某个内存颗粒还是整个RANK),便于针对性的进行故障处理。
由于第一漏斗计数器的计数值达到第一阈值时,第一漏斗计数器会在内部的寄存器(如图1所示,每个漏斗计数器中均包含一个寄存器)中保存当前发生可纠正错误的内存颗粒的信息,具体地,可以直接记录当前发生可纠正错误的内存颗粒的编号,这样就可以通过查询第一漏斗计数器的寄存器来记录第一RANK中发生可纠正错误的内存颗粒的编号。
上述预定次数可以是大于等于2的整数,例如,预定次数具体为2,如果第一RANK中的第一内存颗粒的记录次数达到两次,那么就确定第一RANK中的第一内存颗粒发生了硬件故障,从而确定出了硬件故障具体发生在第一RANK中的第一内存颗粒上。
在漏斗计数器每次达到第一阈值时,除了对发生可纠正错误的内存颗粒进行记录之外,还可以对发生可纠正错误的RANK进行记录。
可选地,当第一漏斗计数器与第二漏斗计数器为同一漏斗计数器,并且第一RANK和第二RANK也为同一RANK时,图2所示的方法还包括:在接收到第一中断信号的情况下,记录第一RANK;在接收到第二中断信号的情况下,记录第一RANK;确定第一RANK的记录次数;确定第一RANK发生硬件故障,具体包括:在第一RANK的记录次数达到预定次数的情况下,确定第一RANK发生硬件故障。
例如,第一漏斗计数器与第二漏斗计数器均为图1中所示的漏斗计数器1,第一RANK和第二RANK均为图1中所示的RANK1,并且RANK1的记录次数达到预定次数,那么就确定RANK1发生硬件故障。
通过比较RANK的记录次数与预定次数的关系,能够进一步确定某个RANK是否真正发生了硬件故障,便于更加准确地确定发生故障的内存。
应理解,当漏斗计数器的计数值达到第一阈值时,如果仅记录了该漏斗计数器对应的RANK,那么,只要某个RANK的记录次数达到预定次数,那么就可以确定该RANK发生了硬件故障。
例如,预定次数为2,如果第一RANK的记录次数达到两次,那么就可以确定第一RANK发生了硬件故障。
另外,当漏斗计数器(该漏斗计数器可以是上述第一漏斗计数器和第二漏斗计数器)的计数值达到漏斗阈值时,如果既记录了该漏斗计数器对应的RANK又记录了该RANK中发生可纠正错误的内存颗粒,那么,可以先确定该漏斗计数器对应的RANK中的内存颗粒的记录次数是否达到预定次数,当某个内存颗粒的记录次数达到预定次数时,那么就确定该内存颗粒发生了硬件故障。而如果该漏斗计数器对应的RANK中的任意一个内存颗粒的记录次数均未达到预定次数,那么,再确定该漏斗计数器对应的RANK的记录次数是否达到预定次数,如果该漏斗计数器对应的RANK的记录次数达到预定次数时,那么就确定该漏斗计数器对应的RANK发生硬件故障。
例如,预定次数具体为2,第一RANK中第一内存颗粒的记录次数达到两次,那么,第一RANK的记录次数也达到了两次,但是,由于连续记录同一内存颗粒的次数达到了两次,因此,可以直接确定第一内存颗粒发生硬件故障。如图1所示,RANK1的记录次数达到两次,RANK1中的颗粒1的记录次数也达到了两次,那么,可以确定RANK1中的颗粒1发生了硬件故障。
例如,预定次数仍为2,第一RANK中的第一内存颗粒的记录次数为1次,第一RANK中的第二内存颗粒的记录次数为1次,第一RANK的记录次数为2次,那么,由于第一内存颗粒和第二颗粒的记录次数均未达到预定次数,只有第一RANK的记录次数达到了预定次数,那么就确定第一RANK发生了硬件故障。如图1所示,RANK1中的颗粒1的记录次数为1次,RANK1中的颗粒2的记录次数为1次,RANK1的记录次数为2次,那么就确定RANK1发生了硬件故障。
在漏斗计数器每次达到第一阈值时,除了对发生可纠正错误的RANK进行记录之外,还可以对发生可纠正错误的内存条进行记录。
可选地,当第一漏斗计数器与第二漏斗计数器为同一漏斗计数器,并且第一RANK和第二RANK也为同一RANK时,图2所示的方法还包括:在接收到第一中断信号的情况下,记录第一内存条,其中,第一内存条包括第一RANK;在接收到第二中断信号的情况下,记录第一内存条;确定第一内存条的记录次数;在第一内存条的记录次数达到预定次数的情况下,确定第一内存条发生硬件故障。
通过比较内存条的记录次数与预定次数的关系,能够确定某个内存条是否真正发生了硬件故障,能够更加准确地确定发生故障的内存。
可选地,当上述第一漏斗计数器和第二漏斗计数器为不同的漏斗计数器时,即第一漏斗计数器和第二漏斗计数器分别对应与内存条中的两个不同的RANK时,并且第一内存条包括第一RANK和第二RANK时,上述图2所示的方法还包括:在接收到第一中断信号的情况下,记录第一内存条;在接收到第二中断信号的情况下,记录第一内存条;确定第一内存条的记录次数;当第一内存条的记录次数达到预定次数时,确定第一内存条发生硬件故障。
当第一漏斗计数器和第二漏斗计数器为不同的漏斗计数器时,也可以通过比较内存条的记录次数与预定次数的关系,能够确定某个内存条是否真正发生了硬件故障,能够更加准确地确定发生故障的内存。
例如,假设第一漏斗计数器为图1中的漏斗计数器1,第二漏斗计数器为图1中的漏斗计数器2,那么,当接收到漏斗计数器1和漏斗计数器2的中断信号之后,均要记录内存条1,当内存条1的记录次数达到预定次数时,就确定内存条1发生硬件故障。
应理解,在本申请中,当漏斗计数器的计数值达到第一阈值时,可以记录当前发生可纠正错误的内存条、RANK以及内存颗粒,具体地,可以记录当前发生可纠正错误的内存条、RANK以及内存颗粒的编号。例如,如图1所示,漏斗计数器1的计数值达到第一阈值时,RANK1中的颗粒1出现可纠正错误,那么,就可以记录内存条1、RANK1以及RANK1中的颗粒1。
例如,图1中的漏斗计数器1的计数值达到第一阈值的次数为三次,并且,漏斗计数器1每次达到第一阈值时发生可纠正错误的内存颗粒均为RANK1中的颗粒1,漏斗计数器1在每次达到第一阈值时均对颗粒1进行了记录,那么,颗粒1的记录次数就为三次。类似地,漏斗计数器1每次达到第一阈值时RANK1以及内存条1均发生了可纠正错误,RANK1以及内存条1的记录次数也为三次。
应理解,在确定内存条、RANK以及内存颗粒的记录次数时具体可以是确定内存条、RANK以及内存颗粒的连续记录次数。
例如,图1中的漏斗计数器1连续三次达到第一阈值,并且,漏斗计数器1前两次达到第一阈值时发生可纠正错误的内存颗粒均为RANK1中的颗粒1,而在漏斗计数器1第三次达到第一阈值时发生可纠正错误的内存颗粒为RANK1中的颗粒2,那么,颗粒1和颗粒2的连续记录次数均为1,这是由于漏斗计数器1的计数值第三次达到阈值时颗粒1未发生可纠正错误,因此,可以将颗粒1连续记录次数置为1,或者,也可以将颗粒1的连续记录次数置为0。在上述情况中,虽然漏斗计数器1连续三次达到第一阈值时发生可纠正错误的不是同一个内存颗粒,但是在漏斗计数器1连续三次达到第一阈值时内存条1和RANK1均发生了可纠正错误,因此,RANK1的连续次数以及内存条1的连续记录次数为三次。
由内存硬件故障导致的可纠正错误一般具有以下三个特点:
(1)、由内存硬件故障导致的可纠正错误一般可以复现,一般访问到有故障的内存就会报错。
(2)、由内存硬件故障导致的可纠正错误有较高的频率。
由于内存的访问一般有较高的频率,因此,一般访问到出现硬件故障的内存(或者访问受到内存硬件故障影响的内存区域),就会出现可纠正错误,因此,会导致可纠正错误会具有较高的频率。
(3)、由内存硬件故障导致的可纠正错误会出现较大的数量。
由于每次访问内存时访问量都比较大(一般是数K或者数M级别的),因此,当访问的内存有硬件故障时,产生的可纠正错误的数量也会比较大。
软故障或者瞬时故障产生的可纠正错误一般不具备上述三个特点,例如,软故障和瞬时故障产生的一般难以复现,软故障和瞬时故障产生的可纠正错误一般也不具备较高的频率,软故障导致的可纠正错误一般不会出现较大的数量。
而本申请实施例的内存故障的检测方法正是利用了硬件故障产生的可纠正错误的上述三个特点(具体可以是利用上述三个特点中的一个或者多个)来确定发生硬件故障的内存的具体层级。具体地,在本申请实施例的内存故障的检测方法中,可以通过多次复判(是否连续发生可纠正错误)来满足上述特点(1);通过设置合理的漏斗频率(例如,将漏斗频率设置为1个/秒)来满足上述特点(2);通过设置合理的第一阈值(例如,将第一阈值设置为6000)来满足上述特点(3)。
进一步的,还可以根据记录同一内存条、同一RANK以及同一内存颗粒的次数来精确地确定发生硬件故障的内存所处的具体层级。
可选地,作为一个实施例,在确定第一RANK中的第一内存颗粒发生硬件故障时,图2所示的方法还包括:对第一内存颗粒进行在线替换。
当第一内存颗粒出现硬件故障时,通过在线替换将发生硬件故障的第一内存颗粒替换掉,从而避免服务器由于第一RANK中的内存颗粒发生硬件故障而不能正常运行。
本申请中,由于能够更精准地确定发生硬件故障的内存是某个内存颗粒还是RANK,能够执行更加准确合理的内存故障处理措施。
可选地,作为一个实施例,在对第一内存颗粒进行在线替换之前,图2所示的方法还包括:确定第一RANK中存在冗余内存颗粒;此时,对第一内存颗粒进行在线替换,具体包括:通过冗余内存颗粒对第一内存颗粒进行在线替换。
具体地,在确定第一RANK中是否存在冗余内存颗粒时具体可以是指确定第一RANK中是否存在冗余的奇偶内存颗粒,如果存在冗余的奇偶内存颗粒,那么就可以确定第一RANK中存在冗余内存颗粒。例如,第一RANK中的奇偶内存颗粒并未存储奇偶校验数据,那么就可以认为第一RANK中的奇偶内存颗粒为冗余内存颗粒。
另外,在某些情况下,如果第一RANK中的某个内存颗粒没有存储数据,那么也可以将该内存颗粒确定为冗余内存颗粒。
例如,第一RANK中的第一内存颗粒发生了硬件故障,第一RANK中的奇偶颗粒没有被使用,这时可以由内存控制器使用第一RANK中的奇偶颗粒替换第一RANK中的第一内存颗粒,将原先存储在第一内存颗粒中的数据搬移到第一RANK的奇偶颗粒中。
具体地,如图1所示,当RANK1中的颗粒1出现硬件故障时,如果RANK1中的颗粒M为奇偶内存颗粒,并且RANK1中的颗粒M并未存储奇偶校验数据,那么RANK1中的M颗粒就是冗余内存颗粒,那么就可以利用颗粒M将颗粒1替换掉,将原来由颗粒1保存的数据搬移到颗粒M中。另外,当RANK1中的颗粒2为非奇偶内存颗粒,但是RANK1中的颗粒2并未存储数据,此时,RANK1中的颗粒2也为冗余颗粒,那么可以利用颗粒2将颗粒1替换掉,将原来由颗粒1保存的数据搬移到颗粒2中。
可选地,作为一个实施例,在确定第一RANK发生硬件故障的情况下,图2所示的方法还包括:对第一RANK进行在线替换。
当第一RANK出现硬件故障时,通过在线替换将发生硬件故障的第一RANK替换掉,从而保证服务器的正常运行。
可选地,作为一个实施例,在对第一RANK进行在线替换之前,图2所示的方法还包括:确定第一RANK所在的内存条中存在冗余RANK;此时,对第一RANK进行在线替换,具体包括:通过冗余RANK对第一RANK进行在线替换。
具体地,当第一RANK所在的内存条中存在其它没有存储数据的空闲RANK时,可以确定第一RANK所在的内存条存在冗余RANK。
在对第一RANK进行在线替换时具体可以是在内存控制器的控制下使用冗余RANK替换掉第一RANK,将之前存储在第一RANK中的数据搬移到冗余RANK中。
例如,如图1所示,RANK1发生硬件故障,RANK2未存储数据,那么就确定RANK2位冗余RANK,可以用RANK2将RANK1替换掉,将原来由RANK1保存的数据搬移到RANK2中。
可选地,冗余RANK可以是系统初始化指定的空闲的RANK。
可选地,当第一内存颗粒发生硬件故障或者第一RANK发生硬件故障时,图2所示的方法还包括:将第一漏斗计数器的计数值清零。
在确定了第一RANK中的内存颗粒或者第一RANK发生硬件故障后,将第一漏斗计数器的计数值清零,使得第一漏斗计数器能够对第一RANK发生的可纠正错误重新进行计数,以重新开始内存故障诊断。
应理解,将漏斗计数器的计数值清零后漏斗计数器能够继续对对应的RANK中发生的可纠正错误进行计数,并且当漏斗计数器的计数值达到漏斗阈值时会向控制模块发送中断信号,控制模块在接收到中断信号之后会记录漏斗计数器的计数值达到漏斗阈值时发生可纠正错误的内存。
而关闭漏斗计数器的中断开关并不改变漏斗计数器的计数值,也不会对漏斗计数器的计数产生任何影响,只是当关闭了漏斗计数器的中断开关之后,即便漏斗计数器的计数值达到了漏斗阈值,漏斗计数器也无法向控制模块发送中断信号,因此,控制模块也就无法对漏斗计数器的计数值达到漏斗阈值时发生可纠正错误的内存进行记录。
可选地,当上述第一内存条发生硬件故障时,图2所示的方法还包括:发出故障告警,该故障告警用于指示第一内存条发生硬件故障。
通过故障告警能够提示技术人员对出现硬件故障的内存条进行替换或者其它处理,从而保证服务器的正常运行。
上述故障告警具体可以是在基板管理控制器(Baseboard ManagementController,BMC)的管理界面产生,用于提示技术人员第一内存条已经发生了硬件故障,技术人员可以根据故障告警的指示对发生硬件故障的内存条进行替换。
另外,当第一内存条出现硬件故障时,还可以永久关闭第一内存条中的各个RANK对应的漏斗计数器,使得这些漏斗计数器不再对发生的可纠正错误进行计数。
应理解,这里的永久关闭第一内存条中的各个RANK对应的漏斗计数器可以是指关闭第一内存条中的各个RANK对应的漏斗计数器的中断开关,直到将第一内存条硬件故障或者将第一内存条替换为别的内存条之后再开启替换后的内存条中的各个RANK对应的漏斗计数器的中断开关。
通过永久关闭相应的漏斗计数器能够避免漏斗计数器由于持续发出中断信号对服务器中的控制器造成的干扰,另外,也能减少对服务器资源的占用,提高服务器的运行效率。
为了更好地理解本申请实施例的内存故障检测方法,下面结合图3对本申请实施例的内存故障检测方法进行详细的介绍。
图3示出了本申请实施例的内存故障检测方法的流程图。图3的方法可以由服务器中的CPU执行,图3的方法具体包括:
301、接收漏斗计数器的计数值达到阈值时发送的中断信号。
上述漏斗计数器可以是服务器中与任意一个RANK对应的漏斗计数器,用于对该RANK发生可纠正错误的次数进行计数。上述阈值可以是预先设置的阈值,该阈值具体可以是6000。
302、关闭漏斗计数器的SMI,记录本次漏斗计数器的计数值达到阈值时发生可纠正错误的内存条、RANK以及内存颗粒的编号。
应理解,当漏斗计数器的计数值达到阈值时,漏斗计数器就向服务器中的控制模块发送中断信号。
例如,第一漏斗计数器与第一RANK对应,当该第一漏斗计数器的计数值达到阈值时,第一RANK中的第一内存颗粒发生可纠正错误,那么,此时可以记录第一内存颗粒的编号、第一RANK的编号以及第一RANK所在的内存条的编号。
303、确定连续记录同一内存条中同一RANK或者同一内存颗粒的次数。
例如,如果在步骤302之前,已连续记录第一内存条、第一RANK以及第一内存颗粒发生可纠正错误的记录次数均为两次,在步骤302中,漏斗计数器的计数值达到阈值时发生可纠正错误的为第一内存条、第一RANK以及第二内存颗粒,那么就确定连续记录第一内存条的次数为三次,连续记录第一RANK的次数为三次,连续记录第二内存颗粒的次数为一次。由于在步骤302中未记录第一内存颗粒,因此,在步骤303中不再确定连续记录第一内存颗粒发生可纠正错误的次数,也就是说,在步骤303中仅确定步骤302中出现的内存条/RANK/内存颗粒连续记录的次数。
304、连续记录同一内存颗粒的或者同一RANK的次数达到三次,并且可以执行可靠性、可用性以及诊断功能(Reliability Availability and Serviceability,RAS)动作。
例如,连续记录第一内存颗粒的次数达到三次,或者,连续记录第一RANK的次数达到三次,并且可以执行RAS动作,那么就执行步骤305,如果连续记录的同一内存颗粒以及连续记录的同一RANK的次数均未达到三次,或者,连续记录的同一内存颗粒或者同一RANK的次数虽然达到了三次,但是不能够执行RAS动作,那么就执行步骤307。
确定是否能够执行RAS动作,具体可以是确定是否存在冗余内存颗粒或者冗余RANK,如果存在的话,确定可以执行RAS动作。这里的RAS动作包括对内存(RANK或者内存颗粒)进行在线替换等等。
305、执行RAS动作,并记录RAS事件。
具体地,当连续记录第一内存颗粒的次数达到三次时可以认为第一内存颗粒发生硬件故障,可以对该第一内存颗粒执行在线替换操作,从而将发生硬件故障的第一内存颗粒替换掉。
当连续记录第一RANK的次数达到三次时可以认为第一RANK发生硬件故障时,可以对该第一RANK执行在线替换操作,从而将发生硬件故障的第一RANK替换掉。
306、将漏斗计数器的计数值清零,开启漏斗计数器的SMI。
在对内存颗粒或者RANK执行了在线替换操作之后可以对漏斗计数器的计数值进行清零,并且重新开启漏斗计数器的SMI,使得漏斗计数器能够重新开始对可纠正错误进行计数,并且当漏斗计数器的计数器重新达到阈值时能够再次记录发生可纠正错误的内存条、RANK以及内存颗粒。
307、确定连续记录同一内存条的次数是否达到三次。
当连续记录同一内存条的次数达到三次时,执行步骤308,否则执行步骤309。
例如,连续记录第一内存颗粒的次数为两次,连续记录第一RANK的次数为两次,连续记录第一内存条的次数为三次,那么,由于连续记录的同一内存颗粒以及同一RANK的次数均未达到三次,那么无法确定某个内存条或者某个RANK出现了硬件故障,但是此时记录的第一内存条的次数达到了三次,那么可以认为该第一内存条出现了硬件故障。
308、永久关闭该内存条对应的漏斗计数器的SMI,发出内存条故障告警。
具体地,当连续记录第一内存条的次数达到三次时,可以认为该第一内存条出现了硬件故障,此时可以将第一内存条的各个RANK对应的漏斗计数器的SMI永久关闭,并向BMC发出故障告警,以指示第一内存条发生了(严重)硬件故障。
309、确定关闭漏斗计数器的SMI是否达到预设时间。
当关闭漏斗计数器的SMI达到预设时间后,执行步骤310,当关闭漏斗计数器的SMI未达到预设时间,那么就继续等待,直到关闭漏斗计数器的SMI达到预设时间。
310、将漏斗计数器的计数值进行清零,然后重新开启漏斗计数器的SMI。
当关闭漏斗计数器的SMI达到预设时间,重新开启漏斗计数器的SMI,这样当漏斗计数器的计数值又达到阈值时可以再次关闭漏斗计数器的SMI,并记录当前发生可纠正错误的内存条、RANK以及内存颗粒。
311、结束。
上文中结合图1至图3对本申请实施例的内存故障检测的方法进行了详细的介绍,下面结合图4和图5对本申请实施例的内存故障检测的装置进行详细的介绍。应理解,图4和图5中的装置能够实现图2和图3所示的本申请实施例的内存故障检测的方法,为了简洁,下面适当省略重复的描述。
图4是本申请实施例的内存故障的装置的示意性框图。图4的装置400包括:
接收单元410,用于接收服务器的第一漏斗计数器的计数值达到第一阈值时发送的第一中断信号,其中,所述第一漏斗计数器用于对所述第一漏斗计数器对应的第一RANK中发生的可纠正错误进行计数;
处理单元420,用于关闭所述第一漏斗计数器的中断开关;
所述处理单元420还用于在关闭所述第一漏斗计数器的中断开关的时间达到预设时间,对所述第一漏斗计数器的计数值清零后,开启所述第一漏斗计数器的中断开关;
所述接收单元410还用于接收第二漏斗计数器的计数值达到第二阈值时发送的第二中断信号,所述第二漏斗计数器用于对所述第二漏斗计数器对应的第二RANK中发生的可纠正错误进行计数;
所述处理单元420还用于在所述第二漏斗计数器与所述第一漏斗计数器为同一漏斗计数器且所述第二RANK和所述第一RANK也为同一RANK的情况下,确定所述第一RANK发生硬件故障。
装置400中的接收单元410的功能对应于上述步骤210和步骤240,接收单元410能够执行步骤210和步骤240中的动作。而装置400中的处理单元420的功能对应于上述步骤220、步骤230以及步骤250,处理单元420能够执行步骤220、步骤230以及步骤250中的动作。
另外,装置400具体可以是设置在服务器中具有控制功能的装置,例如,装置400可以是图1所示的服务器中的控制模块101。
另外,上述装置400既可以是设置在服务器之外的独立设备,也可以是直接集成在服务器中的模块,用于对服务器中的内存进行内存故障检测。
本申请中,通过复判(两次接收中断信号)与间隔时间(第一次接收到中断信号之后将漏斗计数器的中断开关关闭)能够更准确地确定发生硬件故障的内存,具体地,在第一次接收到漏斗计数器的中断信号之后并不是直接确定该漏斗计数器对应的RANK发生了硬件故障,而是将该漏斗计数器的中断开关关闭一段时,并对计数值清零,然后再开启,如果再次接收到该漏斗计数器的中断信号,那么就确定该漏斗计数器对应的RANK发生了硬件故障。
可选地,作为一个实施例,在所述第二漏斗计数器与所述第一漏斗计数器为同一漏斗计数器且所述第二RANK和所述第一RANK也为同一RANK的情况下,所述处理单元420还用于:在接收到所述第一中断信号的情况下,记录所述第一RANK中发生可纠正错误的内存颗粒;在接收到所述第二中断信号的情况下,记录所述第一RANK中发生可纠正错误的内存颗粒;确定所述第一RANK中发生可纠正错误的内存颗粒的记录次数;在所述第一RANK中的第一内存颗粒的记录次数达到预定次数时,确定所述第一内存颗粒发生硬件故障。
可选地,作为一个实施例,在所述第二漏斗计数器与所述第一漏斗计数器为同一漏斗计数器且所述第二RANK和所述第一RANK也为同一RANK的情况下,所述处理单元420还用于:在接收到所述第一中断信号的情况下,记录所述第一RANK;在接收到所述第二中断信号的情况下,记录所述第一RANK;确定所述第一RANK的记录次数;在所述第一RANK的记录次数达到预定次数的情况下,确定所述第一RANK发生硬件故障。
可选地,作为一个实施例,在所述第二漏斗计数器与所述第一漏斗计数器为同一漏斗计数器且所述第二RANK和所述第一RANK也为同一RANK的情况下,所述处理单元420还用于:在接收到所述第一中断信号的情况下,记录第一内存条,所述第一内存条包括所述第一RANK;在接收到所述第二中断信号的情况下,记录所述第一内存条;确定所述第一内存条的记录次数;在所述第一内存条的记录次数达到预定次数的情况下,确定所述第一内存条发生硬件故障。
可选地,作为一个实施例,所述第一漏斗计数器与所述第二漏斗计数器为不同漏斗计数器,所述处理单元420还用于:在接收到所述第一中断信号的情况下,记录所述第一内存条,其中,所述第一内存条包括所述第一RANK和所述第二RANK;在接收到所述第二中断信号的情况下,记录所述第一内存条;确定所述第一内存条的记录次数;在所述第一内存条的记录次数达到预定次数的情况下,确定所述第一内存条发生硬件故障。
可选地,作为一个实施例,在确定所述第一内存颗粒发生硬件故障的情况下,所述处理单元420还用于:对所述第一内存颗粒进行在线替换。
可选地,作为一个实施例,所述处理单元420还用于:在对所述第一内存颗粒进行在线替换之前,确定所述第一RANK中存在冗余内存颗粒;通过所述冗余内存颗粒对所述第一内存颗粒进行在线替换。
可选地,作为一个实施例,在确定所述第一RANK发生硬件故障的情况下,所述处理单元420还用于:对所述第一RANK进行在线替换。
可选地,作为一个实施例,所述处理单元420还用于:在对所述第一RANK进行在线替换之前,确定所述第一RANK所在的内存条中存在冗余RANK;通过所述冗余RANK对所述第一RANK进行在线替换。
可选地,作为一个实施例,所述处理单元420还用于:将所述第一漏斗计数器的计数值清零。
可选地,作为一个实施例,在确定所述第一内存条发生硬件故障的情况下,所述处理单元420还用于:发出故障告警,所述故障告警用于指示所述第一内存条发生硬件故障。
图5是本申请实施例的内存故障的装置的示意性框图。图5的装置500包括:
收发器510,用于接收服务器的第一漏斗计数器的计数值达到第一阈值时发送的第一中断信号,其中,所述第一漏斗计数器用于对所述第一漏斗计数器对应的第一RANK中发生的可纠正错误进行计数;
存储器520,用于存储程序;
处理器530,用于执行所述存储器520中存储的程序,当所述存储器520中的程序被执行时,所述处理器530具体用于:在接收到所述第一漏斗计数器的计数值达到第一阈值时发送的第一中断信号后,关闭所述第一漏斗计数器的中断开关;在关闭所述第一漏斗计数器的中断开关的时间达到预设时间,对所述第一漏斗计数器的计数值清零后,开启所述第一漏斗计数器的中断开关;接收第二漏斗计数器的计数值达到第二阈值时发送的第二中断信号,所述第二漏斗计数器用于对所述第二漏斗计数器对应的第二RANK中发生的可纠正错误进行计数;在所述第二漏斗计数器与所述第一漏斗计数器为同一漏斗计数器且所述第二RANK和所述第一RANK也为同一RANK的情况下,确定所述第一RANK发生硬件故障。
装置500中的收发器510的功能对应于上述步骤210和步骤240,收发器510能够执行步骤210和步骤240中的动作。而装置500中的处理器530的功能对应于上述步骤220、步骤230以及步骤250,处理器530能够执行步骤220、步骤230以及步骤250中的动作。
另外,装置500具体可以是设置在服务器中具有控制功能的装置,例如,装置500可以是图1所示的服务器中的控制模块101。
本申请中,通过复判(两次接收中断信号)与间隔时间(第一次接收到中断信号之后将漏斗计数器的中断开关关闭)能够更准确地确定发生硬件故障的内存,具体地,在第一次接收到漏斗计数器的中断信号之后并不是直接确定该漏斗计数器对应的RANK发生了硬件故障,而是将该漏斗计数器的中断开关关闭一段时,并对计数值清零,然后再开启,如果再次接收到该漏斗计数器的中断信号,那么就确定该漏斗计数器对应的RANK发生了硬件故障。
可选地,上述存储器520中存储的程序中的一部分程序存储在BIOS中,另一部分程序存储在服务器的其它内存中。存储在BIOS中的程序可以是与漏斗计数器产生中断,发送中断信号有关的程序,而另一部分存储在服务器的其它内存中的程序可以是与确定硬件故障相关的程序。
可选地,作为一个实施例,在所述第二漏斗计数器与所述第一漏斗计数器为同一漏斗计数器且所述第二RANK和所述第一RANK也为同一RANK的情况下,所述处理器530还用于:在接收到所述第一中断信号的情况下,记录所述第一RANK中发生可纠正错误的内存颗粒;在接收到所述第二中断信号的情况下,记录所述第一RANK中发生可纠正错误的内存颗粒;确定所述第一RANK中发生可纠正错误的内存颗粒的记录次数;在所述第一RANK中的第一内存颗粒的记录次数达到预定次数时,确定所述第一内存颗粒发生硬件故障。
可选地,作为一个实施例,在所述第二漏斗计数器与所述第一漏斗计数器为同一漏斗计数器且所述第二RANK和所述第一RANK也为同一RANK的情况下,所述处理器530还用于:在接收到所述第一中断信号的情况下,记录所述第一RANK;在接收到所述第二中断信号的情况下,记录所述第一RANK;确定所述第一RANK的记录次数;在所述第一RANK的记录次数达到预定次数的情况下,确定所述第一RANK发生硬件故障。
可选地,作为一个实施例,在所述第二漏斗计数器与所述第一漏斗计数器为同一漏斗计数器且所述第二RANK和所述第一RANK也为同一RANK的情况下,所述处理器530还用于:在接收到所述第一中断信号的情况下,记录第一内存条,所述第一内存条包括所述第一RANK;在接收到所述第二中断信号的情况下,记录所述第一内存条;确定所述第一内存条的记录次数;在所述第一内存条的记录次数达到预定次数的情况下,确定所述第一内存条发生硬件故障。
可选地,作为一个实施例,所述第一漏斗计数器与所述第二漏斗计数器为不同漏斗计数器,所述处理器530还用于:在接收到所述第一中断信号的情况下,记录所述第一内存条,其中,所述第一内存条包括所述第一RANK和所述第二RANK;在接收到所述第二中断信号的情况下,记录所述第一内存条;确定所述第一内存条的记录次数;在所述第一内存条的记录次数达到预定次数的情况下,确定所述第一内存条发生硬件故障。
可选地,作为一个实施例,在确定所述第一内存颗粒发生硬件故障的情况下,所述处理器530还用于:对所述第一内存颗粒进行在线替换。
可选地,作为一个实施例,所述处理器530还用于:在对所述第一内存颗粒进行在线替换之前,确定所述第一RANK中存在冗余内存颗粒;通过所述冗余内存颗粒对所述第一内存颗粒进行在线替换。
可选地,作为一个实施例,在确定所述第一RANK发生硬件故障的情况下,所述处理器530还用于:对所述第一RANK进行在线替换。
可选地,作为一个实施例,所述处理器530还用于:在对所述第一RANK进行在线替换之前,确定所述第一RANK所在的内存条中存在冗余RANK;通过所述冗余RANK对所述第一RANK进行在线替换。
可选地,作为一个实施例,所述处理器530还用于:将所述第一漏斗计数器的计数值清零。
可选地,作为一个实施例,在确定所述第一内存条发生硬件故障的情况下,所述处理器530还用于:发出故障告警,所述故障告警用于指示所述第一内存条发生硬件故障。
本申请还提供一种芯片,所述芯片包括处理器与通信接口,所述通信接口用于与外部器件进行通信,所述处理器用于执行本申请实施例的内存故障的检测方法。
可选地,作为一个实施例,所述芯片还包括存储器,所述存储器中存储有指令,所述处理器用于执行所述存储器上存储的指令,当所述指令被执行时,所述处理器用于执行本申请实施例的内存故障的检测方法。
应理解,上述芯片可以集成在服务器中,用于对服务器中的内存进行内存故障检测。
本申请还提供一种服务器,所述服务器包括内存故障的检测装置和存储器,其中,所述内存故障的检测装置用于检测所述存储器中的内存是否发生硬件故障,所述存储器中的内存包含内存条、RANK以及内存颗粒中的至少一种。所述内存故障检测装置具体可以是上述装置400或者装置500。该服务器中内存故障的检测装置可以相当于图1中的服务器中控制模块101和内存控制器102,用于检测存储器103中的内存是否发生硬件故障。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (23)

1.一种内存故障的检测方法,其特征在于,包括:
接收服务器的第一漏斗计数器的计数值达到第一阈值时发送的第一中断信号,其中,所述第一漏斗计数器用于对所述第一漏斗计数器对应的第一内存模组RANK中发生的可纠正错误进行计数;
关闭所述第一漏斗计数器的中断开关;
在关闭所述第一漏斗计数器的中断开关的时间达到预设时间,对所述第一漏斗计数器的计数值清零后,开启所述第一漏斗计数器的中断开关;
接收第二漏斗计数器的计数值达到所述第二阈值时发送的第二中断信号,所述第二漏斗计数器用于对所述第二漏斗计数器对应的第二RANK中发生的可纠正错误进行计数;
在所述第二漏斗计数器与所述第一漏斗计数器为同一漏斗计数器,且所述第二RANK和所述第一RANK也为同一RANK的情况下,确定所述第一RANK发生硬件故障。
2.如权利要求1所述的方法,其特征在于,在所述第二漏斗计数器与所述第一漏斗计数器为同一漏斗计数器,且所述第二RANK和所述第一RANK也为同一RANK的情况下,所述方法还包括:
在接收到所述第一中断信号的情况下,记录所述第一RANK中发生可纠正错误的内存颗粒;
在接收到所述第二中断信号的情况下,记录所述第一RANK中发生可纠正错误的内存颗粒;
确定所述第一RANK中发生可纠正错误的内存颗粒的记录次数;
在所述第一RANK中的第一内存颗粒的记录次数达到预定次数时,确定所述第一内存颗粒发生硬件故障。
3.如权利要求1或2所述的方法,其特征在于,在所述第二漏斗计数器与所述第一漏斗计数器为同一漏斗计数器,且所述第二RANK和所述第一RANK也为同一RANK的情况下,所述方法还包括:
在接收到所述第一中断信号的情况下,记录所述第一RANK;
在接收到所述第二中断信号的情况下,记录所述第一RANK;
确定所述第一RANK的记录次数;
所述确定所述第一RANK发生硬件故障,包括:
在所述第一RANK的记录次数达到预定次数的情况下,确定所述第一RANK发生硬件故障。
4.如权利要求1-3中任一项所述的方法,其特征在于,在所述第二漏斗计数器与所述第一漏斗计数器为同一漏斗计数器,且所述第二RANK和所述第一RANK也为同一RANK的情况下,所述方法还包括:
在接收到所述第一中断信号的情况下,记录第一内存条,其中,所述第一内存条包括所述第一RANK;
在接收到所述第二中断信号的情况下,记录所述第一内存条;
确定所述第一内存条的记录次数;
在所述第一内存条的记录次数达到预定次数的情况下,确定所述第一内存条发生硬件故障。
5.如权利要求1所述的方法,其特征在于,所述第一漏斗计数器与所述第二漏斗计数器为不同漏斗计数器,所述方法还包括:
在接收到所述第一中断信号的情况下,记录第一内存条,其中,所述第一内存条包括所述第一RANK和所述第二RANK;
在接收到所述第二中断信号的情况下,记录所述第一内存条;
确定所述第一内存条的记录次数;
在所述第一内存条的记录次数达到预定次数的情况下,确定所述第一内存条发生硬件故障。
6.如权利要求2所述的方法,其特征在于,在确定所述第一内存颗粒发生硬件故障的情况下,所述方法还包括:
对所述第一内存颗粒进行在线替换。
7.如权利要求6所述的方法,其特征在于,在对所述第一内存颗粒进行在线替换之前,所述方法还包括:
确定所述第一RANK中存在冗余内存颗粒;
所述对所述第一内存颗粒进行在线替换,包括:
通过所述冗余内存颗粒对所述第一内存颗粒进行在线替换。
8.如权利要求1或3所述的方法,其特征在于,在确定所述第一RANK发生硬件故障的情况下,所述方法还包括:
对所述第一RANK进行在线替换。
9.如权利要求8所述的方法,其特征在于,在对所述第一RANK进行在线替换之前,所述方法还包括:
确定所述第一RANK所在的内存条中存在冗余RANK;
所述对所述第一RANK进行在线替换,包括:
通过所述冗余RANK对所述第一RANK进行在线替换。
10.如权利要求6-9中任一项所述的方法,其特征在于,所述方法还包括:
将所述第一漏斗计数器的计数值清零。
11.如权利要求4或5所述的方法,其特征在于,在确定所述第一内存条发生硬件故障的情况下,所述方法还包括:
发出故障告警,所述故障告警用于指示所述第一内存条发生硬件故障。
12.一种内存故障的检测装置,其特征在于,包括:
接收单元,用于接收服务器的第一漏斗计数器的计数值达到第一阈值时发送的第一中断信号,其中,所述第一漏斗计数器用于对所述第一漏斗计数器对应的第一RANK中发生的可纠正错误进行计数;
处理单元,用于关闭所述第一漏斗计数器的中断开关;
所述处理单元还用于在关闭所述第一漏斗计数器的中断开关的时间达到预设时间,对所述第一漏斗计数器的计数值清零后,开启所述第一漏斗计数器的中断开关;
所述接收单元还用于接收第二漏斗计数器的计数值达到第二阈值时发送的第二中断信号,所述第二漏斗计数器用于对所述第二漏斗计数器对应的第二RANK中发生的可纠正错误进行计数;
所述处理单元还用于在所述第二漏斗计数器与所述第一漏斗计数器为同一漏斗计数器且所述第二RANK和所述第一RANK也为同一RANK的情况下,确定所述第一RANK发生硬件故障。
13.如权利要求12所述的装置,其特征在于,在所述第二漏斗计数器与所述第一漏斗计数器为同一漏斗计数器且所述第二RANK和所述第一RANK也为同一RANK的情况下,所述处理单元还用于:
在接收到所述第一中断信号的情况下,记录所述第一RANK中发生可纠正错误的内存颗粒;
在接收到所述第二中断信号的情况下,记录所述第一RANK中发生可纠正错误的内存颗粒;
确定所述第一RANK中发生可纠正错误的内存颗粒的记录次数;
在所述第一RANK中的第一内存颗粒的记录次数达到预定次数时,确定所述第一内存颗粒发生硬件故障。
14.如权利要求12或13所述的装置,其特征在于,在所述第二漏斗计数器与所述第一漏斗计数器为同一漏斗计数器,且所述第二RANK和所述第一RANK也为同一RANK的情况下,所述处理单元还用于:
在接收到所述第一中断信号的情况下,记录所述第一RANK;
在接收到所述第二中断信号的情况下,记录所述第一RANK;
确定所述第一RANK的记录次数;
在所述第一RANK的记录次数达到预定次数的情况下,确定所述第一RANK发生硬件故障。
15.如权利要求12-14中任一项所述的装置,其特征在于,在所述第二漏斗计数器与所述第一漏斗计数器为同一漏斗计数器且所述第二RANK和所述第一RANK也为同一RANK的情况下,所述处理单元还包括:
在接收到所述第一中断信号的情况下,记录第一内存条,所述第一内存条包括所述第一RANK;
在接收到所述第二中断信号的情况下,记录所述第一内存条;
确定所述第一内存条的记录次数;
在所述第一内存条的记录次数达到预定次数的情况下,确定所述第一内存条发生硬件故障。
16.如权利要求12所述的装置,其特征在于,所述第一漏斗计数器与所述第二漏斗计数器为不同漏斗计数器,所述处理单元还用于:
在接收到所述第一中断信号的情况下,记录所述第一内存条,其中,所述第一内存条包括所述第一RANK和所述第二RANK;
在接收到所述第二中断信号的情况下,记录所述第一内存条;
确定所述第一内存条的记录次数;
在所述第一内存条的记录次数达到预定次数的情况下,确定所述第一内存条发生硬件故障。
17.如权利要求13所述的装置,其特征在于,在确定所述第一内存颗粒发生硬件故障的情况下,所述处理单元还用于:
对所述第一内存颗粒进行在线替换。
18.如权利要求17所述的装置,其特征在于,所述处理单元还用于:
在对所述第一内存颗粒进行在线替换之前,确定所述第一RANK中存在冗余内存颗粒;
通过所述冗余内存颗粒对所述第一内存颗粒进行在线替换。
19.如权利要求12或14所述的装置,其特征在于,在确定所述第一RANK发生硬件故障的情况下,所述处理单元还用于:
对所述第一RANK进行在线替换。
20.如权利要求19所述的装置,其特征在于,所述处理单元还用于:
在对所述第一RANK进行在线替换之前,确定所述第一RANK所在的内存条中存在冗余RANK;
通过所述冗余RANK对所述第一RANK进行在线替换。
21.如权利要求17-20中任一项所述的装置,其特征在于,所述处理单元还用于:
将所述第一漏斗计数器的计数值清零。
22.如权利要求15或16所述的装置,其特征在于,在确定所述第一内存条发生硬件故障的情况下,所述处理单元还用于:
发出故障告警,所述故障告警用于指示所述第一内存条发生硬件故障。
23.一种服务器,其特征在于,所述服务器包括存储器以及如权利要求12-22中任意一项所述的内存故障的检测装置,其中,所述内存故障的检测装置用于检测所述存储器中的内存是否发生硬件故障,所述存储器中的内存包含内存条、内存模组RANK以及内存颗粒中的至少一种。
CN201780039033.9A 2017-09-30 2017-09-30 内存故障的检测方法、装置和服务器 Active CN109328340B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2017/105071 WO2019061517A1 (zh) 2017-09-30 2017-09-30 内存故障的检测方法、装置和服务器

Publications (2)

Publication Number Publication Date
CN109328340A true CN109328340A (zh) 2019-02-12
CN109328340B CN109328340B (zh) 2021-06-08

Family

ID=65244937

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780039033.9A Active CN109328340B (zh) 2017-09-30 2017-09-30 内存故障的检测方法、装置和服务器

Country Status (4)

Country Link
US (1) US11119874B2 (zh)
EP (1) EP3660681B1 (zh)
CN (1) CN109328340B (zh)
WO (1) WO2019061517A1 (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110008090A (zh) * 2019-04-15 2019-07-12 苏州浪潮智能科技有限公司 一种监控内存错误的方法、装置和计算机可读存储介质
CN110674005A (zh) * 2019-08-30 2020-01-10 苏州浪潮智能科技有限公司 一种监控服务器内存的方法、设备及可读介质
CN110718261A (zh) * 2019-08-21 2020-01-21 深圳市金泰克半导体有限公司 一种内存条管理方法及系统
CN110718262A (zh) * 2019-08-21 2020-01-21 深圳市金泰克半导体有限公司 定位故障内存颗粒所在rank的方法、装置、存储介质
CN111459557A (zh) * 2020-03-12 2020-07-28 烽火通信科技股份有限公司 一种缩短服务器开机时间的方法及系统
CN112579342A (zh) * 2020-12-07 2021-03-30 海光信息技术股份有限公司 内存纠错方法、内存控制器及电子设备
CN113127245A (zh) * 2021-03-24 2021-07-16 山东英信计算机技术有限公司 一种系统管理中断的处理方法、系统及装置
CN114356984A (zh) * 2021-12-24 2022-04-15 海光信息技术股份有限公司 标记存储器的风险状态的方法、装置、设备及存储介质
WO2023225885A1 (en) * 2022-05-25 2023-11-30 Intel Corporation Correctable error counter and leaky bucket for peripheral component interconnect express (pcie) and compute express link (cxl) devices

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10922203B1 (en) * 2018-09-21 2021-02-16 Nvidia Corporation Fault injection architecture for resilient GPU computing
CN112256507B (zh) * 2020-10-22 2023-10-27 地平线(上海)人工智能技术有限公司 芯片故障诊断方法、装置、可读存储介质及电子设备
CN112527544B (zh) * 2020-11-23 2022-04-29 聚好看科技股份有限公司 一种服务器、触发熔断的方法及装置
CN113010150B (zh) * 2021-03-05 2024-01-26 山东英信计算机技术有限公司 一种实现漏桶功能的方法、系统、设备及介质
WO2023044832A1 (en) * 2021-09-25 2023-03-30 Intel Corporation Apparatus, computer-readable medium, and method for increasing memory error handling accuracy

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101557121A (zh) * 2008-04-11 2009-10-14 中国北车集团大同电力机车有限责任公司 一种机车充电机的控制装置及方法
CN103455283A (zh) * 2013-08-19 2013-12-18 华中科技大学 一种混合存储系统
CN104317739A (zh) * 2014-10-28 2015-01-28 清华大学 一种混合内存页面调度方法及装置
CN105426288A (zh) * 2015-11-10 2016-03-23 浪潮电子信息产业股份有限公司 一种内存告警的优化方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4535455A (en) * 1983-03-11 1985-08-13 At&T Bell Laboratories Correction and monitoring of transient errors in a memory system
US6715116B2 (en) * 2000-01-26 2004-03-30 Hewlett-Packard Company, L.P. Memory data verify operation
US8069374B2 (en) * 2009-02-27 2011-11-29 Microsoft Corporation Fingerprinting event logs for system management troubleshooting
CN103218275B (zh) * 2013-03-28 2015-11-25 华为技术有限公司 数据错误修复方法、装置和设备
US9760136B2 (en) * 2014-08-15 2017-09-12 Intel Corporation Controlling temperature of a system memory
US10009294B2 (en) * 2015-05-15 2018-06-26 Avago Technologies General Ip (Singapore) Pte. Ltd. Communication device for limiting processing of interrupt-causing messages
CN105117301B (zh) * 2015-08-14 2018-08-14 杭州华为数字技术有限公司 一种内存预警的方法及装置
US9946595B2 (en) * 2015-09-30 2018-04-17 International Business Machines Corporation Reducing uncorrectable errors based on a history of correctable errors
US10235233B2 (en) * 2015-11-03 2019-03-19 Hewlett Packard Enterprise Development Lp Storage error type determination
US9990245B2 (en) * 2015-11-25 2018-06-05 Stmicroelectronics S.R.L. Electronic device having fault monitoring for a memory and associated methods

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101557121A (zh) * 2008-04-11 2009-10-14 中国北车集团大同电力机车有限责任公司 一种机车充电机的控制装置及方法
CN103455283A (zh) * 2013-08-19 2013-12-18 华中科技大学 一种混合存储系统
CN104317739A (zh) * 2014-10-28 2015-01-28 清华大学 一种混合内存页面调度方法及装置
CN105426288A (zh) * 2015-11-10 2016-03-23 浪潮电子信息产业股份有限公司 一种内存告警的优化方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
庞高荣等: "《高速铁路GSM-R通信系统》", 30 April 2011, 中国铁道出版社 *

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110008090A (zh) * 2019-04-15 2019-07-12 苏州浪潮智能科技有限公司 一种监控内存错误的方法、装置和计算机可读存储介质
CN110718261A (zh) * 2019-08-21 2020-01-21 深圳市金泰克半导体有限公司 一种内存条管理方法及系统
CN110718262A (zh) * 2019-08-21 2020-01-21 深圳市金泰克半导体有限公司 定位故障内存颗粒所在rank的方法、装置、存储介质
CN110674005A (zh) * 2019-08-30 2020-01-10 苏州浪潮智能科技有限公司 一种监控服务器内存的方法、设备及可读介质
CN111459557A (zh) * 2020-03-12 2020-07-28 烽火通信科技股份有限公司 一种缩短服务器开机时间的方法及系统
CN111459557B (zh) * 2020-03-12 2023-04-07 烽火通信科技股份有限公司 一种缩短服务器开机时间的方法及系统
CN112579342A (zh) * 2020-12-07 2021-03-30 海光信息技术股份有限公司 内存纠错方法、内存控制器及电子设备
CN112579342B (zh) * 2020-12-07 2024-02-13 海光信息技术股份有限公司 内存纠错方法、内存控制器及电子设备
CN113127245A (zh) * 2021-03-24 2021-07-16 山东英信计算机技术有限公司 一种系统管理中断的处理方法、系统及装置
CN114356984A (zh) * 2021-12-24 2022-04-15 海光信息技术股份有限公司 标记存储器的风险状态的方法、装置、设备及存储介质
CN114356984B (zh) * 2021-12-24 2024-01-23 海光信息技术股份有限公司 标记存储器的风险状态的方法、装置、设备及存储介质
WO2023225885A1 (en) * 2022-05-25 2023-11-30 Intel Corporation Correctable error counter and leaky bucket for peripheral component interconnect express (pcie) and compute express link (cxl) devices

Also Published As

Publication number Publication date
WO2019061517A1 (zh) 2019-04-04
EP3660681A4 (en) 2020-09-16
CN109328340B (zh) 2021-06-08
US20200159635A1 (en) 2020-05-21
US11119874B2 (en) 2021-09-14
EP3660681A1 (en) 2020-06-03
EP3660681B1 (en) 2023-01-11

Similar Documents

Publication Publication Date Title
CN109328340A (zh) 内存故障的检测方法、装置和服务器
JP6556346B2 (ja) トラブルシューティング方法及び装置
CN105117301B (zh) 一种内存预警的方法及装置
US7007191B2 (en) Method and apparatus for identifying one or more devices having faults in a communication loop
US8156382B1 (en) System and method for counting storage device-related errors utilizing a sliding window
KR100327652B1 (ko) 버스 접속 유닛 id에 대해 메모리로의 액세스를선택적으로 제한하는 시스템 및 방법
US7779306B1 (en) Method for automatically diagnosing hardware faults in a data storage system
CN106502814B (zh) 一种记录pcie设备错误信息的方法及装置
CN103563336B (zh) 一种方便网络内处理的方法和装置
CN103246585B (zh) 一种存储控制器故障检测方法
CN108762966A (zh) 系统异常拦截方法、装置、计算机设备及存储介质
CN109240847A (zh) 一种post过程中内存错误上报方法、装置、终端及存储介质
CN106980468A (zh) 触发raid阵列重建的方法及装置
CN110489260A (zh) 故障识别方法、装置及bmc
CN108768793A (zh) 一种存储双活链路故障测试方法及装置
JP4868980B2 (ja) シングルイベント機能割込み検出システム
CN103916272B (zh) 一种主控单板及一种主控单板故障检测方法
US8527815B2 (en) Method for detecting a failure in a SAS/SATA topology
US20100162269A1 (en) Controllable interaction between multiple event monitoring subsystems for computing environments
CN114218037A (zh) 一种硬盘管理方法、装置、设备及机器可读存储介质
CN113407391A (zh) 故障处理的方法、计算机系统、基板管理控制器和系统
CN106506265A (zh) 检测fpga芯片挂死的方法及装置
JPH11296311A (ja) 記憶装置の耐故障制御方式
CN109542808A (zh) 控制硬盘接入的方法和装置
CN111355528B (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
GR01 Patent grant
GR01 Patent grant