一种内存条故障检测装置及检测方法与流程

文档序号:32597387发布日期:2022-12-17 14:00阅读:55来源:国知局
1.本技术涉及计算设备的内存故障检测领域,尤其涉及一种计算设备的内存条的故障检测及方法。
背景技术
::2.内存条(randomaccessmemory),又名随机存取存储器,是与处理器(cpu)直接交换数据的内部存储器,通常作为操作系统或其他正在运行中的程序的临时数据存储介质。内存条工作时可以随时从任何一个指定的地址写入或读出信息,内存条是计算设备内使用最多和价值最高的器件。然而,随着内存架构的演进,为了在同样面积硅片中放入更多的存储单元,并进行更快速度的读写,内存制程越来越小,工作频率越来越高,为控制发热,工作电压被迫不断降低,使内存介质本身的可靠性不断降低,失效率越来越高,当前内存故障已经成为计算设备领域最普遍的故障源之一,而当内存故障时,严重时会导致计算设备异常重启或宕机,因此,对对内存条的健康状态的检测显得尤为重要,对其进行监控,可提前识别风险内存并处理,降低计算设备系统宕机风险。3.内存条是被动器件,不能自行判断自身的健康状态。目前对内存条健康状态的识别依赖于带外管理系统bmc日志记录,然而,该识别方式不够直观,一方面,运维人员不能够及时发现内存故障,另一方面,在运维过程中存在有误更换内存条的可能性。4.内存的故障可以分为可纠正错误(correctableerror,ce,以下简称ce)和不可纠正错误(uncorrectableerror,uce,以下简称uce),内存的ce故障是可以被中央处理器纠正的,不会影响系统的正常运行,而当内存条的ce数量达到一定数值时,可认为有产生uce的风险,而内存的uce是无法被处理器纠正的故障,会导致服务器异常重启或宕机,因此,如何及时准确的检测内存的可纠正错误ce成为当下亟须解决的问题。技术实现要素:5.本技术实施例提供了一种内存条的故障检测装置和方法,提高了内存条故障检测的及时性和准确性,有利于及时确定发生故障的内存条并对其进行更换,降低了计算设备宕机的风险。6.为实现上述目的,本技术采用如下技术方案:7.第一方面,提供一种内存条的故障检测装置,该故障检测装置包括内存管理控制器、锁存器,该内存管理控制器的输入端连接所述内存条,该内存管理控制器的输出端连接锁存器的一个输入端;内存管理控制器用于检测内存条的可纠正错误ce并确定内存条的可纠正错误ce的数量,在内存条的可纠正错误ce数量超过预设门限值的情况下,内存管理控制器向所述锁存器发送锁存信号。8.本技术方案,通过内存故障检测装置对内存条进行故障检测,通过在故障检测装置中设置内存管理控制器、锁存器,使得内存条的故障信息能够被内存管理控制器获取,并从该故障信息中确定内存可纠正错误ce的数量,在内存可纠正错误ce的数量超过预设门限时,该内存控制管理器向锁存器发送锁存信号,该锁存信号用于表示内存条的可纠正错误ce数量已经该达到一临界值,需要及时对内存条进行修复或者更换,通过内存管理控制器向锁存器发出的锁存信号,使得内存条的ce错误能够被及时发现,增强了内存条故障检测的及时性,降低了计算设备宕机的风险。9.在一种可能的实现方式中,内存管理控制器还包括计数器和处理器,其中计数器用于对所述可纠正错误ce数量进行统计,处理器用于将计数器统计到的可纠正错误ce数量与预设门限值进行比较,在所述ce数量大于其预设门限值的情况下,向锁存器发送锁存信号。10.该可能的实现方式中,使得内存管理控制器进一步包括计数器和处理器,由计数器对内存条的可纠正错误ce的数量进行统计,处理器将该数量与预设门限值进行比较,使得对内存条的可纠正错误ce的数量的统计更为准确。11.在一种可能的实现方式中,内存管理控制器包括bios芯片和基板管理控制器bmc,通过bios芯片获取所述内存条的故障信息,根据内存条的故障信息,确定可纠正错误ce的数量,其中,内存条的故障信息包括可纠正错误ce的数量;该bios芯片还可以将可纠正错误ce的数量发送给基板管理控制器bmc;该基板管理控制器bmc通过接收所述bios芯片发送的所述可纠正错误ce的数量,并将可纠正错误ce的数量与预设门限值进行比较,在所述ce数量大于所述预设门限值的情况下,向所述锁存器发送锁存信号。12.该可能的实现方式中,进一步给出了内存管理控制器的另一种构成方式,即可以采用计算设备本身所具有的bios芯片和基板管理控制器bmc实现内存管理控制器的功能,进一步降低了该内存条故障检测装置的成本。13.在一种可能的实现方式中,故障检测装置还包括存储器,存储器设置于内存条或内存管理控制器中,所述存储器用于对所述内存条的故障信息进行存储记录。14.该可能的实现方式中,通过在内存条或内存管理控制器中进一步设置用于保存内存条故障信息的存储器,使得内存条的故障信息不容易丢失,便于对内存条的维护。15.在一种可能的实现方式中,内存条为多个,锁存器为多个且与多个内存条一一对应,在可纠正错误ce数量超过预设门限值的情况下,内存管理控制器确定超过门限阈值的目标故障内存条,并向与该目标故障内存条对应的锁存器发送锁存信号;其中所述目标故障内存条为多个所述内存条中的一个或多个。16.该可能的实现方式中,使得在内存条为多个时,通过设置多个锁存器,且每个锁存器都与每个内存条连接,可以实现通过该内存管理控制器对多个内存条的故障检测,使得在任意一个内存条故障时,该内存管理控制器都能向与该内存条对应的锁存器发送锁存信号,实现对多个内存条故障的检测。17.在一种可能的实现方式中,所述故障检测装置还包括状态指示件,所述状态指示件与所述锁存器的输出端连接;状态指示件用于:在锁存器接收到内存管理控制器发送的锁存信号的情况下,接收所述锁存器输出高电平并发出报警信号。18.在该可能的实现方式中,通过在故障检测装置中设置状态指示件,使得内存条的故障显示更为直观。19.在一种可能的实现方式中,状态指示件为指示灯和/或蜂鸣器。20.在该可能的实现方式中,通过进一步将状态指示件设置为指示灯或者蜂鸣器,使得内存条的故障信息通过灯信号或者声音信号来进行表征,进一步提升了内存条故障显示的直观性和有效性。21.在一种可能的实现方式中,内存条还包括pcb电路板,状态指示件设置在该pcb电路板上或设置在计算设备的插槽上,插槽用于安装所述内存条。22.在该可能的实现方式中,通过将状态指示件设置在内存条的电路板或者安装内存条的插槽上,有利于状态指示件的安装与维护。23.在一种可能的实现方式中,所述计算设备为服务器。24.在该可能的实现方式中,可以将该故障检测装置应用于服务器,从而提高了服务器内存故障检测的及时性和准确性,减少服务器的宕机风险。25.第二方面,本技术实施例提供一种内存条故障检测方法,用于内存条故障检测装置中,所述内存条故障检测装置包括内存管理控制器、锁存器和状态指示件,所述内存管理控制器的输入端连接所述内存条,所述内存管理控制器的输出端连接一锁存器的输入端,所述锁存器的输出端连接一状态指示件,其特征在于,所述方法包括以下步骤:26.s11:所述内存故障检测装置获取所述内存条的故障信息,根据所述内存条的故障信息,确定所述内存条的可纠正错误ce的数量;27.s12:在所述内存条的可纠正错误ce的数量大于预设门限值的情况下,所述内存故障检测装置确定超过门限阈值的故障内存条,并向与所述故障内存条对应的锁存器发送锁存信号;所述锁存信号用于:使得所述状态指示件发出报警信号。28.本技术方案,通过该内存条故障检测方法,使得内存条的故障信息能够被获取,并从该故障信息中确定内存可纠正错误ce的数量,在内存可纠正错误ce的数量超过预设门限时,向锁存器发送锁存信号,该锁存信号用于表示内存条的可纠正错误ce数量已经该达到一临界值,需要及时对内存条进行修复或者更换,通过该锁存信号,使得内存条的ce错误能够被及时发现,增强了内存条故障检测的及时性,降低了计算设备宕机的风险。29.第三方面,本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条计算机程序,所述计算机程序由处理器加载并执行以实现如上述第二方面所述的内存条故障检测方法。30.第四方面,本技术实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。终端的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该终端执行上述第二方面的各种可选实现方式中提供的内存故障预测方法。附图说明31.为了更清楚地说明本发明实施例或现有技术中的方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。32.图1为相关技术中内存故障检测的示意图;33.图2为本技术实施例提供的一种内存条故障检测装置的示意图;34.图3为本技术实施例提供的另一种内存条故障检测装置的示意图;35.图4为本技术实施例提供的一种多个内存条故障检测的连接示意图;36.图5为本技术实施例提供的一种检测电路示意图;37.图6为本技术实施例提供的一种状态指示件安装示意图;38.图7为本技术实施例提供的一种内存条故障检测方法流程图。具体实施方式39.本技术的实施方式部分使用的术语仅用于对本技术的具体实施例进行解释,而非旨在限定本技术,下面将结合附图对本技术实施例的实施方式进行详细描述。40.首先介绍本技术中涉及的专用名词。41.cpu:中央处理器(centralprocessingunit),是计算设备的运算和控制核心,是信息处理、程序运行的最终执行单元。42.寄存器:寄存器是cpu内用来暂存指令、数据和地址的存储器。寄存器是有限存储容量的高速存储部件,可以用来暂存指令、数据和地址。43.bios:基本输入输出系统(basicinputoutputsystem),是在通电启动阶段执行硬件初始化,以及为操作系统提供运行时服务的固件。bios多存储于闪存芯片上,便于bios的更新。44.bmc:基板管理控制器(baseboardmanagementcontroller),可以在计算设备未开机的状态下,对设备进行固件升级,对设备的运行状态进行管理以及排出故障等。基板管理控制器可以对计算设备内的存储器中的程序代码进行维护,包括升级或恢复等。基板管理控制器还可以对计算设备内的电源电路或时钟电路进行控制等。45.行故障:为内存中行(row)发生的可纠正错误(correctederror,ce)的故障或不可纠正错误(uncorrectederror,uce)的故障。其中,内存的物理粒度从大到小依次为:dimm、rank、device、bank、row/column、cell、bit;其该多个物理粒度之间的关系具体为:每个计算机设备可以包括多个内存条(dimm),每个内存条上具有两个内存列(rank),分别位于内存的两个面,例如,两个内存列分别为内存列0(rank0)和内存列1(rank1)。其中,每个内存列上可以配置多个内存芯片(chip)用于存储数据,内存芯片也可以称为内存颗粒(device),内存芯片可以是动态随机存取存储器(dynamicrandomaccessmemory,dram)、静态随机存取存储器(staticrandomaccessmemory,sram)等,每个内存芯片可以划分为多个存储阵列(bank),内存芯片在存储数据时,该数据以位(bit)为单位写入一个存储阵列中。另外,还可以将多个存储阵列归为一个存储阵列组(bankgroup),其中,每个存储阵列组的存储阵列的数量可以相同,或者,也可以不同。存储阵列由大量的存储单元(cell)组成,大量的存储单元排列成二维矩阵形式,只要指定存储阵列上的行(row)和列(column),则可以在存储阵列上定位一个存储单元,内存发生故障的最小单位为存储阵列上的存储单元。也就是说,内存故障包括:dimm故障、rank故障、device故障、bank故障、row故障/column故障、cell故障以及bit故障中的至少一种。46.锁存器:是一种对脉冲电平敏感的存储单元电路,可以在特定输入脉冲电平作用下改变状态,把信号暂存以维持某种电平状态。47.本技术实施例计算设备以服务器为例,现有用于服务器内存条的故障检测方法,具体可参照图1所示,处理器1检测内存条的ce,具体而言,处理器1会将对应的故障信息(包含故障地址、故障的dimm、故障的rank、device,bankgroup,bank,行/列、cell故障、bit故障等信息)记录到处理器的寄存器2中,寄存器2对内存ce数量进行统计,当其超过门限阈值时,处理器1触发中断,bios芯片3会响应此中断并在中断服务程序中将记录在寄存器2中的内存相关的故障信息全部收集后上报给服务器带外管理系统bmc,带外管理系统bmc基于上述故障信息在其界面显示故障内存条对应槽位的内存错误告警。48.然而,上述方法需要运维人员实时关注bmc的界面,并且不能够很直观的显示内存条的错误状态。一方面,若运维人员没有及时观察到bmc界面对故障内存条的提示,就不能及时对故障内存条进行更换或相应处理,服务器系统就会有宕机风险。一方面,由于运维人员不能够较为直观的观测到内存条的错误状态,因此,存在一定的误更换内存条的风险。49.基于此,本技术实施例提供一种内存条故障检测的装置,通过设置检测装置,当处理器检测到内存故障时,使得检测装置中的状态指示件发出报警信号,从而使得可以直观的观测到内存条的故障状态。图2为本实施例提供的内存条故障检测装置的架构图示意图。50.参照图2所示,本发明实施例提供的内存条故障检测装置10包括内存管理控制器13、锁存器11、状态指示件12,其中内存管理控制器13的输入端连接内存条,输出端连接锁存器11的输入端,锁存器11的输出端连接状态指示件12。51.其中,内存管理控制器13用于读取内存条的ce信息并执行相关动作。52.内存管理控制器13用于检测内存条的可纠正错误ce(correctableerror),具体地,在内存条对数据进行存储时,由于服务器内部的中央处理器对内存数据具有一定的纠错能力,因此,通常情况下,当内存条中的ce数量在一定范围内时,可认为内存条中存储的数据是服务器可接收的数据,此时服务器不存在宕机风险;然而,当内存条中的ce数量超过预设的门限值时,则认为这些内存ce中有产生uce的可能,而一旦内存产生了uce,将会导服务器异常重启或宕机,因此,运维人员需要将有产生内存uce风险的内存条找出并及时更换。示例性的,当内存条的存储容量为10亿bit时,可将该预设的门限值设置为6000,该预设门限值为预先设定的值,可根据具体内存条的容量在内存管理控制器13中进行设置。53.内存管理控制器13用于,当内存中的ce故障由于被访问到而被触发,内存管理控制器13会将对应的故障信息(包含故障地址、故障类型(包括ce和uce)、故障的dimm、故障的rank、device,bankgroup,bank,行/列、cell故障、bit故障等信息)记录到内存管理控制器13中的存储器(图中未示出)中。54.存储器可以设置于内存管理控制器13中,存储器用于对内存的故障信息进行存储记录,可选地,存储器可以为寄存器、dram(动态随机存取存储器)、sram(静态随机存取存储器)中的任意一种。55.可选的,存储器还可以设置于内存条20中,内存管理控制器13还用于直接访问内存条中的存储器获取对应的内存故障信息。56.内存管理控制器13还用于对存储器中的内存条的ce数量进行统计,并将内存条ce的数量与其预设门限进行比较,当其统计到的内存条ce的数量大于其预设门限值时,内存管理控制器13向锁存器11发送锁存信号,使得锁存器11持续输出高电平。57.具体地,内存管理控制器13中设置有计数器以及处理器(图中未示出),该计数器用于响应处理器的命令,对存储器中的内存条的ce数量进行统计。58.处理器用于向计数器发送命令,使其对内存条ce数量进行统计,处理器还用于将计数器统计到的ce数量与其预设门限值相比较,当计数器统计到的ce数量大于其预设门限值时,将计数器所统计的数据清零,并向锁存器11发送锁存信号。59.需要说明书的是,预设门限值为可以预先根据具体内存条的工作环境以及内存容量而具体设置。60.在一种实施方式中,内存管理控制器13可以包括:bios芯片14和bmc4,参见图3,bios芯片14的输入端连接内存条20,bios芯片14与bmc4相连接,bmc4的输出端连接锁存器11的输入端,锁存器11的输出端连接状态指示件12。需要说明的是,bios芯片14和bmc4可以采用计算设备自身具有的bios芯片和bmc,可以节约成本。61.bios芯片14用于存储bios程序,bios程序运行在bios芯片14上;bios芯片14还用于获取内存条20中的故障信息,并对内存条的ce数量进行统计。62.存储器可设置于bios芯片14中,存储器用于对内存的故障信息进行存储记录。可选地,存储器可以为寄存器、dram(动态随机存取存储器)、sram(静态随机存取存储器)中的任意一种。63.可选的,存储器设置于内存条20上,bios芯片14还用于直接访问内存条中的存储器获取对应的内存故障信息。64.bmc4用于接收bios芯片14上报的全部内存故障信息(包括内存条的ce数量),将bios芯片14统计到的内存条ce的数量与其预设门限进行比较,当内存条ce数量大于其预设门限值时,bmc4向bios芯片14发送中断信号,并向锁存器11发送锁存信号,使得锁存器11持续输出高电平。65.bios芯片14还用于,响应bmc4发送的中断信号,停止对内存条的ce数量的统计动作并将之前的统计数据清零。66.需要说明书的是,预设门限值为可以根据具体内存条的工作环境以及内存容量而具体设置。67.在其他实施方式中,内存管理控制器13还可以为bios芯片14或bmc4,此时,由bios芯片14或bmc4单独执行对内存条故障信息的获取、内存条ce数量的统计以及ce数量与预设门限值的比较,并向锁存器发送锁存信号,其执行原理与前述实施方式相同。68.锁存器11用于在接收到内存管理控制器13发送过来的锁存信号后,持续输出高电平,使得状态指示件12发出告警信号。69.在一种实施方式中,参照图4,服务器内部可以设置多个内存条,多个存储器,每一个存储器用于存储与其相对应的内存条的故障信息,为了便于对不同内存条的健康状态进行监测,可以设置多个锁存器,多个锁存器与多个内存条一一对应,多个锁存器连接多个状态指示件,当内存管理控制器13统计到的任意一个内存条ce故障的数量大于其预设门限值时,内存管理控制器13通过存储器中存储的内存故障信息查找超过门限阈值的故障内存条,并向与该故障内存条对应的锁存器发送锁存信号。70.参照图5所示,图5为检测电路示意图,其中锁存器11的两个输入端分别连接vdd与内存管理控制器13的一个输出端,锁存器11的输出端连接状态指示件12的一端,状态指示件12的另一端接地vss。其中vdd为锁存器11的电源电压,根据锁存器11不同类型的选择,vdd对应不同的参数,可选地,锁存器11可选择为r-s锁存器、74l373等,只要能够实现锁存电平的功能即可,此处对锁存器11的具体类型不做具体限制。71.具体地,内存条正常工作状态下,内存管理控制器13与锁存器11相连接的输出端alert_n保持高电平信号,此时锁存器11输出无效信号,当内存管理控制器13检测到内存条的ce故障数量超过预设门限值,认为该内存条故障,此时,内存管理控制器13的输出端alert_n则输出低电平,锁存器11接收到该低电平信号后,持续输出高电平,从而使得状态指示件工作而发出告警信号。72.可选的,状态指示件12可以是指示灯、lcd显示屏、数码管、蜂鸣器中的任意一种,或者其他具有警示作用的器件,此处不做特别限制。73.参见图6,图6为内存条上安装状态指示件意图,图5中内存条20与内存管理控制器13连接并接受内存管理控制器13的检测,内存条20包括:内存芯片16,pcb板17以及针脚18。74.其中,内存芯片16用于存储数据,针脚18用于提供各内存芯片16与内存管理控制器13以及服务器上其他组件的连接,针脚18还用于将内存条20固定于服务器内部。pcb板17用于实现内存芯片16与内存管理控制器13以及服务器其他组件的连接,pcb板17还用于对内存芯片16提供支撑与固定。75.本发明的一个实施例将状态指示件12设置于内存条20上,一方面便于直观地观测到该内存条的故障信息,一方面将状态指示件12直接设置于内存条的pcb板17上,可以直接利用pcb板17上的电源为状态指示件12提供供电电源。76.可选地,状态指示件12还可以设置在与内存条20连接的插板上(图中未示出),只要能便于查找到故障内存条的位置即可,此处对状态指示件12的安装位置不做具体限制。77.上述实施例提供的内存条检测装置10能够在内存管理控制器13检测到内存条故障时,通过状态指示件的发出的告警信号,能够直观地观测到具体故障的内存条,能对该故障的内存条进行及时处理,杜绝了误更换的风险,降低服务器系统宕机风险。78.本发明实施例还提供一种内存条故障的检测方法,应用于上述装置实施例提供的故障检测装置,参照图7所示该方法包括:79.s11:所述内存故障检测装置获取所述内存条的故障信息,根据所述内存条的故障信息,确定所述内存条的可纠正错误ce的数量;80.s12:在所述内存条的可纠正错误ce的数量大于预设门限值的情况下,所述内存故障检测装置确定超过门限阈值的故障内存条,并向与所述故障内存条对应的锁存器发送锁存信号;所述锁存信号用于:使得所述状态指示件发出报警信号。在一种实施方式中,内存条故障检测装置进一步包括内存管理控制器、锁存器和状态指示件,所述内存管理控制器的输入端连接所述内存条,所述内存管理控制器的输出端连接一锁存器的输入端,所述锁存器的输出端连接一状态指示件,由内存管理控制器执行上述步骤s11-s12。81.在一种实现方式中,内存管理控制器可以选自处理器、bios芯片、dsp芯片、cpld中的任意一种。82.在一种实现方式中,内存管理控制器还可以包括计数器和处理器。83.在一种实现方式中,内存管理控制器还可以包括bios芯片和基板管理控制器bmc。84.前述实施例所描述的内存条故障检测装置,可广泛应用不同的计算场景,例如但不限于,超级计算机、hpc(highperformancecomputing,高性能计算机群),密集计算型服务器等场景下。85.在一示例性实施例中,还提供了一种计算机可读存储介质,用于存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现上述内存条故障检测方法中的全部或部分步骤。例如,该计算机可读存储介质可以是只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、只读光盘(compactdiscread-onlymemory,cd-rom)、磁带、软盘和光数据存储设备等。86.在一示例性实施例中,还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算设备执行上述图7任一实施例所示方法的全部或部分步骤。87.在一些实施例中,本技术实施例所示的方法可以实施为以机器可读格式被编码在计算机可读存储介质上的或者被编码在其它非瞬时性介质或者制品上的计算机程序指令。88.在具体应用中,该计算设备可以为服务器,也可以为个人电脑(personalcomputer,pc)。89.应当理解,相应计算设备的其他功能构成非本技术的核心发明点所在,故本文不再赘述。以上仅是本发明的优选实施方式,应当指出,对于本
技术领域
:的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1