CN116069578A - 一种内存故障预警方法和计算设备 - Google Patents
一种内存故障预警方法和计算设备 Download PDFInfo
- Publication number
- CN116069578A CN116069578A CN202310084350.XA CN202310084350A CN116069578A CN 116069578 A CN116069578 A CN 116069578A CN 202310084350 A CN202310084350 A CN 202310084350A CN 116069578 A CN116069578 A CN 116069578A
- Authority
- CN
- China
- Prior art keywords
- power consumption
- consumption value
- memory bank
- memory
- deviation degree
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 326
- 238000000034 method Methods 0.000 title claims abstract description 46
- 238000004364 calculation method Methods 0.000 claims description 19
- 238000001514 detection method Methods 0.000 abstract description 2
- 238000007726 management method Methods 0.000 description 51
- 230000006870 function Effects 0.000 description 14
- 230000000875 corresponding effect Effects 0.000 description 10
- 238000004590 computer program Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000009286 beneficial effect Effects 0.000 description 7
- 230000015556 catabolic process Effects 0.000 description 5
- 238000006731 degradation reaction Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000008439 repair process Effects 0.000 description 3
- 229920001621 AMOLED Polymers 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000002096 quantum dot Substances 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 241000125205 Anethum Species 0.000 description 1
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000005684 electric field Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 229910021645 metal ion Inorganic materials 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2273—Test methods
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本申请公开了一种内存故障预警方法和计算设备,涉及内存故障检测技术领域,用于提升内存故障预警的准确性。该方法应用于计算设备,计算设备包括至少一个内存条,该方法包括:获取至少一个内存条的功耗值和至少一个内存条的参考功耗值;确定至少一个内存条的功耗值分别与参考功耗值的偏离程度;在偏离程度超出预设范围的情况下,输出预警信息,该预警信息用于指示至少一个内存条中存在偏离程度超出预设范围的目标内存条,该目标内存条是指存在故障风险的内存条。
Description
技术领域
本申请涉及内存故障检测技术领域,尤其涉及一种内存故障预警方法和计算设备。
背景技术
当前,内存故障预警方法通常由基板管理控制器(baseboard managementcontroller,BMC)获取内存已经发生故障中可纠正错误(correctable error,CE)以及不可纠正错误(uncorrectable error,UCE)的发生次数,实现对内存未来发生故障的风险进行预警。然而,根据CE推测内存发生故障的风险存在误报与漏失的可能性较高,因此,如何提升内存故障预警的准确性是目前亟待解决的技术问题。
发明内容
本申请实施例提供了一种内存故障预警方法和计算设备,用于提升内存故障预警的准确性。
为达到上述目的,本申请的实施例采用如下技术方案:
第一方面,提供了一种内存故障预警方法,应用于计算设备,计算设备包括至少一个内存条,该方法包括:获取至少一个内存条的功耗值和至少一个内存条的参考功耗值;确定至少一个内存条的功耗值分别与参考功耗值的偏离程度;在偏离程度超出预设范围的情况下,输出预警信息,预警信息用于指示至少一个内存条中存在偏离程度超出预设范围的目标内存条,该目标内存条是指存在故障风险的内存条。
通过上述方式,基于内存硬件本身的物理信息,通过内存的功耗值判断内存的运行状况,实现内存故障预警,从而避免由于内存中的电路退化,引起系统宕机,提升内存故障预警的准确性。
在一种可能的实现方式中,确定至少一个内存条的功耗值分别与参考功耗值的偏离程度,包括:在至少一个内存条的功耗值中确定大于参考功耗值的一个或多个目标功耗值;计算一个或多个目标功耗值分别与参考功耗值的偏离程度。
该种可能的实现方式,有助于降低偏离程度的计算复杂度。当前计算设备中可能包括较多数量的内存条,而由于电路退化存在故障风险的内存条的功耗值通常较高,因此,可以针对功耗值高于参考功耗值的内存条进行偏离程度的计算,降低计算量。
在一种可能的实现方式中,确定至少一个内存条的功耗值分别与参考功耗值的偏离程度,包括:确定至少一个内存条的功耗值中的最大功耗值;计算最大功耗值与参考功耗值的偏离程度。
该种可能的实现方式,通过计算计算设备中最大功耗值与参考功耗值的偏离程度,有助于进一步地节省计算资源。
在一种可能的实现方式中,确定至少一个内存条的功耗值分别与参考功耗值的偏离程度,包括:将至少一个内存条的功耗值按照由大到小的顺序进行排序,得到功耗值序列;逐一计算功耗值序列中的功耗值与参考功耗值的偏离程度;方法还包括:当偏离程度不超出预设范围时,停止计算。
该种可能的实现方式,有助于计算设备按照由大到小的顺序计算各个内存条的功耗值与参考功耗值的偏离程度,从而输出功耗值相对于参考功耗值偏离程度较大的目标内存条的预警信息,并进一步地停止后续功耗值与参考功耗值的偏离程度的计算,从而节省计算资源。
在一种可能的实现方式中,获取至少一个内存条的功耗值,包括:周期性获取至少一个内存条的功耗值。
该种可能的实现方式,通过周期性获取内存的功耗值,有助于BMC自动实现内存故障预警,提升方案的智能性。
在一种可能的实现方式中,参考功耗值为预设值或至少一个内存条的平均功耗值。
该种可能的实现方式,提供了在计算设备存在一个内存条的情况下,可以基于预设值确定该内存条的功耗值的偏离程度;在计算设备存在多个内存条的情况下,可以基于平均功耗值确定偏离程度,从而灵活调整偏离程度的计算方式。
在一种可能的实现方式中,预警信息包括目标内存条的标识,或者,预警信息包括目标内存条的标识以及目标内存条的功耗值。
该种可能的实现方式,有助于输出内存故障预警所指示的内存条的标识,便于用户及时确认故障风险情况,及时进行调整或修复,避免引起系统宕机。
第二方面,提供了一种计算设备,包括:用于执行第一方面提供的任意一种方法的功能单元,各个功能单元所执行的动作通过硬件实现或通过硬件执行相应的软件实现。例如,该计算设备可以包括:获取单元、确定单元和输出单元。获取单元,用于获取至少一个内存条的功耗值和至少一个内存条的参考功耗值。确定单元,用于确定至少一个内存条的功耗值分别与参考功耗值的偏离程度。输出单元,用于在偏离程度超出预设范围的情况下,输出预警信息,预警信息用于指示至少一个内存条中存在偏离程度超出预设范围的目标内存条,该目标内存条是指存在故障风险的内存条。
第三方面,提供了一种计算设备,包括处理器、管理控制器和至少一个内存条,管理控制器和至少一个内存条分别与处理器连接;处理器,用于获取至少一个内存条的第一信息并发送给管理控制器;管理控制器,用于获取第一信息,并根据第一信息确定至少一个内存条的功耗值的偏离程度;管理控制器,还用于输出预警信息,预警信息用于指示至少一个内存条中存在偏离程度超出预设范围的目标内存条,该目标内存条是指存在故障风险的内存条。
上述计算设备通过处理器获取至少一个内存条的信息,反馈至管理控制器,管理控制器通过确定至少一个内存条的功耗值的偏离程度判断内存的运行情况,实现内存故障预警。上述计算设备有助于避免由于内存中的电路退化,引起系统宕机,实现根据内存的物理信息及时预警,提升内存故障预警的准确性。
在一种可能的实现方式中,第一信息包括至少一个内存条的功耗值,管理控制器具体用于:根据至少一个内存条的功耗值,确定至少一个内存条的平均功耗值;根据至少一个内存条的功耗值和平均功耗值确定至少一个内存条的功耗值分别与平均功耗值的偏离程度。
该种可能的实现方式,管理控制器通过第一信息直接获取至少一个内存条的功耗值,进一步地,通过计算平均功耗值以获取至少一个内存条的功耗值的偏离程度,有助于基于当前至少一个内存条的实际功耗值,确定偏离程度,提升故障预警的准确性。
在一种可能的实现方式中,第一信息包括至少一个内存条的功耗值和参考功耗值,参考功耗值是预设值或至少一个内存条的平均功耗值;管理控制器具体用于:根据至少一个内存条的功耗值和参考功耗值,确定至少一个内存条的功耗值分别与参考功耗值的偏离程度。
该种可能的实现方式,管理控制器通过第一信息直接获取至少一个内存条的功耗值和参考功耗值,进一步获取偏离程度,有助于减小管理控制器的计算量,提升方法执行效率。
在一种可能的实现方式中,第一信息包括至少一个内存条的偏离程度,处理器具体用于:获取至少一个内存条的功耗值和参考功耗值,参考功耗值是预设值或至少一个内存条的平均功耗值;根据至少一个内存条的功耗值和参考功耗值,确定至少一个内存条的功耗值分别与参考功耗值的偏离程度。
该种可能的实现方式中,处理器通过至少一个内存条的功耗值和参考功耗值,确定至少一个内存条的功耗值的偏离程度,使得管理控制器直接获取偏离程度,输出预警信息,进一步提升方法执行效率以及方案可实施性。
在一种可能的实现方式中,第一信息包括至少一个内存条的功耗值和参考功耗值,当至少一个内存条为一个内存条时,参考功耗值为预设值;当至少一个内存条为多个内存条时,参考功耗值是平均功耗值。
该种可能的实现方式中,提供了在计算设备存在一个内存条的情况下,可以基于预设值确定该内存条的功耗值的偏离程度;在计算设备存在多个内存条的情况下,可以基于平均功耗值确定偏离程度,从而灵活调整偏离程度的计算方式。
在一种可能的实现方式中,管理控制器,还用于向处理器发送指示信息,指示信息用于指示处理器读取至少一个内存条的功耗值;处理器,用于根据指示信息,向至少一个内存条发送读取指令,读取指令用于读取至少一个内存条的功耗值;至少一个内存条,用于根据读取指令,向处理器发送至少一个内存条的功耗值;处理器,用于接收至少一个内存条的功耗值并转发至管理控制器。
该种可能的实现方式中,提供了管理控制器获取至少一个内存条的功耗值的具体实现方式,通过指示处理器读取,内存条反馈实现,提升方案可实施性。
第四方面,提供了一种计算设备,包括:处理器和存储器。处理器与存储器连接,存储器用于存储计算机执行指令,处理器执行存储器存储的计算机执行指令,从而实现第一方面提供的任意一种方法。
第五方面,提供了一种芯片,该芯片包括:处理器和接口电路;接口电路,用于接收代码指令并传输至处理器;处理器,用于运行代码指令以执行第一方面提供的任意一种方法。
第六方面,提供了一种计算机可读存储介质,包括计算机执行指令,当计算机执行指令在计算机上运行时,使得计算机执行第一方面提供的任意一种方法。
第七方面,提供了一种计算机程序产品,包括计算机执行指令,当计算机执行指令在计算机上运行时,使得计算机执行第一方面提供的任意一种方法。
第二方面至第七方面中的任一种实现方式所带来的技术效果可参见第一方面中对应实现方式所带来的技术效果,此处不再赘述。
附图说明
图1为本申请实施例提供的一种系统架构图;
图2为本申请实施例提供的一种内存故障预警方法的流程示意图;
图3为本申请实施例提供的一种DDR5的组成示意图;
图4为本申请实施例提供的一种内存故障预警方法的流程示意图;
图5为本申请实施例提供的一种计算设备的组成示意图。
具体实施方式
在本申请的描述中,除非另有说明,“/”表示“或”的意思,例如,A/B可以表示A或B。本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。此外,“至少一个”是指一个或多个,“多个”是指两个或两个以上。“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
需要说明的是,本申请中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
如图1所示,为本申请实施例提供的一种系统架构图。该系统架构图是计算设备的架构图。参考图1,该计算设备的硬件部分包括处理器、管理控制器以及内存,软件部分主要包括带外管理模块、处理器固件以及操作系统(operating system,OS)管理单元。其中,OS管理单元存储于处理器内,带外管理模块存储于管理控制器内,处理器固件可以存储于处理器内(如图1所示),或者处理器固件也可以存储于处理器外的固件芯片(图1中未示出)内,固件芯片与处理器连接,处理器可以运行处理器固件。固件芯片例如可以是闪存Flash芯片等非易失性存储芯片。计算设备中的处理器主要用于满足用户的业务需求,也可以理解为通用中央处理单元(central processing unit,CPU),管理控制器主要用于实现对计算设备的监控与维护。
处理器固件也可以称为处理器固件程序。具体地,处理器固件包括Firmware、基本输入输出系统(basic input output system,BIOS)、管理引擎(management engine,ME)、微码或智能管理单元(intelligent management unit,IMU)等固件。其中,BIOS是计算设备启动后最先运行的软件,用于在计算设备启动时设置硬件,为OS管理单元的运行做准备。
需要说明的是,本申请实施例对处理器固件的具体形式并不限定,以上仅为示例性说明。
带外管理模块可以为非业务模块的管理单元。例如,带外管理模块可以通过专用的数据通道对计算设备进行远程维护和管理,该带外管理模块是完全独立于计算设备的操作系统之外,可以通过管理控制器的带外管理接口与处理器固件和OS管理单元(或OS管理单元)进行通信。示例性的,带外管理模块可以包括计算设备运行状态的管理单元、处理器外的管理芯片中的管理系统、BMC、系统管理模块(system management mode,SMM)等。其中,BMC可以在计算设备未启动的情况下,对处理器中的软件进行检查或升级。
需要说明的是,本申请实施例对带外管理模块的具体形式并不限定,以上仅为示例性说明。在下述实施例中,仅以带外管理模块为BMC为例进行说明。
需要说明的是,不同计算设备中对BMC有不同的称呼,例如一些公司称为BMC,一些公司称为完全自动化集成(integrated lights-out,iLO),另一公司称为集成戴尔远程访问控制器(integrated Dell remote access controller,iDRAC)。不论是叫BMC,还是叫iLO或iDRAC,都可以理解为是本发明实施例中的BMC。
需要说明的是,上述带外管理模块与处理器固件中所包含的部分管理单元或模块与固件仅作为示例。事实上,部分管理单元也可以作为处理器固件程序在计算设备中运行,例如SMM也可以为用户提供业务服务,执行BIOS的相关功能。类似地,部分处理器固件也可以作为非业务模块的管理单元,例如ME、IMU等,执行BMC的相关功能。
内存,也称为内存储器或主存储器,主要用于暂时存放计算设备中的运算数据,以及硬盘等外部存储器(简称外存)的交换数据。内存与处理器中的内存控制器之间通过内存通道(channel)进行通信。其中,内存控制器可以作为处理器中的一部分,实现处理器与内存之间的通信。当前,内存当前通常以内存条的形式安装在计算设备的主板上的内存插槽中,插槽中的各个槽位可以作为内存条的标识,用于区别插接在不同槽位的内存条。在内存发生故障时,可以对插槽中的内存条进行修复或更换。
其中,内存具有至少一个内存列(rank),每个内存电路板(printed circuitboard,PCB)的一个安装面上的所有内存芯片为一个内存列,每个内存列包括至少一个子内存列(subrank),内存列或子内存列包括多个内存芯片(device),每个内存芯片被划分为多个存储阵列组(bank group),每个存储阵列组包括多个存储阵列(bank),每个存储阵列划分为多个存储单元(cell),每个存储单元具有一个行(row)地址和一个列(column)地址,每个存储单元包括一个或多个比特位。也即是说,只要指定存储阵列上的行(row)和列(column),则可以在存储阵列上定位一个存储单元。其中,内存发生故障的最小单位为存储阵列上的存储单元。
当前,大部分计算设备都支持对内存进行检查,并对检查到的错误进行纠错,即修复内存中的故障。例如,在内存每次执行读写任务时,采用错误检查与纠正(errorchecking and correcting,ECC)方法识别内存中故障并进行修复。其中,ECC方法用于识别内存中较少比特失效时的错误。能够被纠正的错误称为可纠正错误(corrected error,CE),也可以称为可纠正故障。如果超出纠错算法的能力,例如,内存上有大范围的多比特失效时,则会纠错失败,产生不可纠正错误(uncorrected error,UCE),也可以称为不可纠正故障。当产生UCE时,则会导致计算机设备的系统发生严重故障,比如,宕机,造成内存中的数据丢失。
基于上述方式,计算设备通常会将内存故障发生地址、发生次数以及相应的修复结果(如CE和UCE)统计在寄存器内。BMC通过读取寄存器中统计的信息,进行内存故障预警。例如,根据故障发生地址和相应的发生次数,在预设时间段内发生次数超出预设阈值时,认为该故障发生地址对应的存储单元存在故障风险。进一步地,向用户反馈预警信息,以指示存在故障风险的存储单元。而该种预警方式,在实际应用中,由于基于历史发生故障的修复结果推断当前存储单元再次发生故障的风险程度,而推断结果存在预警错误或遗漏的风险,影响预警的准确性。对此,本申请实施例提出基于内存条硬件本身的物理信息,实现内存故障预警,从而提升内存故障预警的准确程度。
需要说明的是,本申请实施例描述的系统架构以及应用场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着系统架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本申请实施例提供的方法可适用但不限于动态随机存取存储器(dynamic randomaccess memory,DRAM)、静态随机存取存储器(static random access memory,SRAM)等内存,本申请实施例的方法对于内存的类型不作限制。
需要指出的是,图1中示出的结构并不构成对计算设备的限定,除图1所示部件之外,计算设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。例如,计算设备还可以包括或者外接输出器件,例如显示屏,也可以称为显示器,用于显示图像,视频等。显示屏包括显示面板。显示面板可以采用液晶显示屏(liquid crystaldisplay,LCD),有机发光二极管(organic light-emitting diode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrix organic light emitting diode,AMOLED),柔性发光二极管(flex light-emitting diode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot light emitting diodes,QLED)等。在一些实施例中,计算设备可以包括或外接1个或N个显示屏,N为大于1的正整数。示例性的,本申请实施例中,计算设备可配置有显示屏,用于显示预警信息。
本申请实施例对计算设备的具体形式不作任何限制。例如,计算设备具体可以是终端装置,也可以是网络设备。其中,终端装置可以被称为:终端、用户设备(userequipment,UE)、终端设备、接入终端、用户单元、用户站、移动站、远方站、远程终端、移动设备、用户终端、无线通信设备、用户代理或用户装置等。终端装置具体可以是手机、增强现实(augmented reality,AR)设备、虚拟现实(virtual reality,VR)设备、平板电脑、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)等。网络设备具体可以是服务器等。其中,服务器可以是机架式服务器、刀片式服务器或塔式服务器,对此不作限制。
如图2所示,为本申请提供的一种内存故障预警方法的流程示意图,该方法应用计算设备,该计算设备包括至少一个内存条,包括以下步骤S201-S203。
S201、获取至少一个内存条的功耗值和至少一个内存条的参考功耗值。
其中,内存条的功耗值是指该内存条在运行时产生的功耗。参考功耗值用于计算设备确定内存条的功耗值的偏离程度。当前,内存条在正常运行的情况下,功耗值通常在5w至10w的范围内,上述参考功耗值可以为5w至10w中的任意一个数值或数值范围。在使用过程中,内存条中的电路在电场作用下,金属离子发生迁移的现象,也可以称为电迁移现象,导致电路退化,整体阻值降低,可能发生短路,引起内存故障。而在整体阻值降低的情况下,整体功耗会增加。因此,通过获取内存条的功耗值,有助于判断内存条的电路是否处于正常运行状态。
在一种应用的场景中,基于内存技术标准,内存已发展至第5代(双倍速率同步动态随机存储器(double data rate synchronous dynamic random access memory),简称DDR5)。如图3所示,为一种DDR5的结构示意图。DDR5可以包括串行存在检测集线器(serialpresence detect hub,SPD hub)、电源管理集成电路(power management integratedcircuit,PMIC)、寄存时钟驱动器(register clock driver,RCD)和温度传感器(temperature sensor,TS)。
其中,SPD hub具备传统SPD的功能,记录了DDR5中的芯片及模组厂商、工作频率、工作电压、速度、容量、电压与行、列地址以及带宽等参数。通常根据内存中芯片的实际性能预先写入SPD中。SPD hub相比于传统SPD还增加了用于与CPU中的SPD芯片基于改进的内部集成电路(improved inter integrated circuit,I3C)总线通信的功能。CPU中的SPD芯片,基于I3C总线,与DDR5中SPD hub进行数据的传输。
PMIC是内存由DDR4发展至DDR5新增的一种电源管理芯片,通过调节内存中电压的输入与输出,实现灵活调整内存的功率,另外,还可以实时测量DDR5的功耗值。
RCD具体用于CPU与内存之间指令与数据信号的转换。
TS主要用于检测内存中的温度。
可以理解的是,图2所示的DDR5还可以包括更多或更少的组件,本申请对此不作限制。
结合图1,在计算设备的内存中,包括如图2所示的至少一个DDR5,步骤S201在计算设备中具体可以通过以下步骤S11-S14实现。
S11、BMC向CPU发送指示信息。
其中,该指示信息用于指示CPU读取至少一个内存条的功耗值。
S12、CPU根据指示信息,向至少一个内存条发送读取指令。
其中,该读取指令用于读取至少一个内存条的功耗值。
S13、至少一个内存条根据读取指令,向CPU发送至少一个内存条的功耗值。
例如,DDR5中的PMIC芯片测量功耗值,并将功耗值反馈至CPU。
S14、CPU接收至少一个内存条的功耗值并转发至BMC。
通过上述方式,BMC实现对计算设备中内存的实时功耗的监控,进一步地有助于基于内存的功耗,确定内存的故障风险。
可选的,周期性执行上述步骤S201。示例性的,按照一天一次的频率,周期性获取内存的功耗值和参考功耗值。其中,该周期可以预设于BMC中。
可以理解的是,通过周期性获取内存的功耗值,有助于BMC自动实现内存故障预警,提升方案的智能性。
S202、确定至少一个内存条的功耗值分别与参考功耗值的偏离程度。
可选的,偏离程度可以通过与参考功耗值的差值表示。
在一种可能的实现方式中,参考功耗值为预设值。结合上述步骤S201中的描述,该预设值可以为具体的数值,或者也可以为一个数值范围。例如,参考功耗值为5w,则偏离程度用于表示至少一个内存条的功耗值与5w的差值。又如,参考功耗值为5w-8w,则当至少一个内存条的功耗值不在上述数值范围内,该内存条的功耗值存在与该参考功耗值的偏离程度,若小于5w,则偏离程度可以为内存条的功耗值与5w的差值,若大于8w,则偏离程度可以为内存条的功耗值与8w的差值。
在另一种可能的实现方式中,参考功耗值为至少一个内存条的平均功耗值。其中,平均功耗值是基于至少一个内存条的功耗值的和计算得到的平均值。可以理解的是,该种可能的实现方式应用于至少一个内存条的数量大于两个的情况。基于该种方式,有助于基于至少一个内存条的数量确定参考功耗值,再基于参考功耗值确定偏离程度,使得该参考功耗值跟随当前内存条的功耗值灵活调整。
结合步骤S201中所描述的场景,具体可以由计算设备中的BMC或CPU根据至少一个内存条的功耗值计算偏离程度。
示例性的,假设计算设备中包括内存条1、内存条2和内存条3。其中,内存条1的功耗值为5w,内存条2的功耗值为5.2w,内存3的功耗值为5.7w,若基于平均功耗值计算偏离程度时,则计算得到的平均功耗值为(5+5.2+5.7)/3=5.3。
进一步地,计算各个内存条的功耗值与平均功耗值的差值分别为:0.3、0.1、0.4。
可选的,偏离程度还可以通过平均差表示。
在上述示例中,平均差为:
[(|5-5.3|)+(|5.2-5.3|)+(|5.7-5.3|)]/3≈0.27
可以理解的是,内存条处于正常运行状态中,其功耗值较为均衡,此时平均差应当接近于零,若平均差较大,则表示该平均功耗值在各个功耗值中的代表性较小,此时可能存在处于异常运行状态功耗值较高的内存条。
需要说明的是,偏离程度还可以通过方差、标准差等其他计算方式表示,对此不作限制。
需要说明的是,当参考功耗值为平均功耗值时,平均功耗值可以由BMC、CPU或内存进行计算。进一步地,该参考功耗值可以周期性更新,从而避免在每一次计算偏离程度时,重新计算获取,减小计算量。
此外,参考功耗值还可以为通过其他计算方式得到的其他数值。例如,统计至少一个内存条的功耗值在不同采集时间的平均值,再次计算得到的平均值,本申请对此不作限制。
S203、在偏离程度超出预设范围的情况下,输出预警信息。
其中,预警信息用于指示至少一个内存条中存在偏离程度超出预设范围的目标内存条,该目标内存条是存在故障风险的内存条。
可以理解的是,超出预设范围表示该内存条存在故障风险。结合上述偏离程度的计算方式,若通过与平均功耗值的差值表示时,示例性的,预设范围为超出平均功耗值0.1w,或者超出平均功耗值的2%等,则上述内存条3为目标内存条,存在故障风险。
可选的,预警信息中包括目标内存条的标识,或者,预警信息中包括目标内存条的标识以及目标内存条的功耗值。
结合步骤S201中所描述的场景,当计算设备中的BMC确定存在目标内存条后,向用户发送预警信息。
在一种示例中,该计算设备还可以用于管理多个子设备,该计算设备中的BMC可以用于监控各个子设备的运行情况。当该计算设备获取到各个子设备的内存条的功耗情况时,可以根据功耗情况向各个子设备反馈预警信息。
可选的,计算设备还可以通过输出器件(显示屏)向用户显示预警信息。
通过上述方式,基于内存硬件本身的物理信息,通过内存的功耗值判断内存的运行状况,实现内存故障预警,从而避免由于内存中的电路退化,引起系统宕机,提升内存故障预警的准确性。
可选的,上述步骤S202还可以包括以下三种可能的实现方式。
在第一种可能的实现方式中,步骤S202通过步骤S21-S22实现。
S21、在至少一个内存条的功耗值中确定大于参考功耗值的一个或多个目标功耗值。
S22、计算一个或多个目标功耗值分别与参考功耗值的偏离程度。
结合步骤S202中的示例,其中,内存条3的功耗值5.7大于参考功耗值5.3。进一步地,按照上文描述的计算方式,计算内存条3的功耗值与参考功耗值的偏离程度。
可以理解的是,通过该种方式,有助于降低偏离程度的计算复杂度。当前计算设备中可能包括较多数量的内存条,而由于电路退化存在故障风险的内存条的功耗值通常较高,因此,可以针对功耗值高于参考功耗值的内存条进行偏离程度的计算,降低计算量。
在第二种可能的实现方式中,步骤S202通过步骤S31-S32实现。
S31、确定至少一个内存条的功耗值中的最大功耗值。
S32、计算最大功耗值与参考功耗值的偏离程度。
与第一种可能的实现方式类似,通过计算计算设备中最大功耗值与参考功耗值的偏离程度,有助于进一步地节省计算资源。
在第三种可能的实现方式中,如图4所示,包括步骤S401-S405。
S401、将至少一个内存条的功耗值按照由大到小的顺序进行排序,得到功耗值序列Ni。
其中,0≤i≤n,n为至少一个内存条的数量。
结合上述步骤S202中示例,功耗值序列为{5.7,5.2,5}。
S402、逐一计算功耗值序列与参考功耗值的偏离程度。
结合步骤S401的示例,计算功耗值为5.7与参考功耗值的偏离程度,并继续执行步骤S403。
S403、逐一判断偏离程度是否超出预设范围。
若是,则执行步骤S404、输出预警信息。
若否,则执行步骤S405、停止计算。
示例性的,当功耗值为5.7与参考功耗值的偏离程度超出预设范围时,输出预警信息,并按照功耗值序列,继续计算功耗值为5.2与参考功耗值的偏离程度;当功耗值为5.7与参考功耗值的偏离程度未超出预设范围时,则停止计算,直至循环结束。
通过上述方式,有助于计算设备按照由大到小的顺序计算各个内存条的功耗值与参考功耗值的偏离程度,从而输出功耗值相对于参考功耗值偏离程度较大的目标内存条的预警信息,并进一步地停止后续功耗值与参考功耗值的偏离程度的计算,从而节省计算资源。
通过上述三种可能的实现方式,基于内存条的功耗值,通过不同的计算方式,实现内存故障预警,提升预警的准确性。
上述主要从方法的角度对本申请实施例的方案进行了介绍。可以理解的是,计算设备为了实现上述功能,其包含了执行各个功能相应的硬件结构和软件模块中的至少一个。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对计算设备中的主板以及硬盘背板进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,图5示出上述实施例中所涉及的主板的一种可能的结构示意图。如图5所示,主板50包括获取单元501、确定单元502和输出单元503。
获取单元501,用于获取至少一个内存条的功耗值和至少一个内存条的参考功耗值。
确定单元502,用于确定至少一个内存条的功耗值分别与参考功耗值的偏离程度。
输出单元503,用于在偏离程度超出预设范围的情况下,输出预警信息,预警信息用于指示至少一个内存条中存在偏离程度超出预设范围的目标内存条,该目标内存条是指存在故障风险的内存条。
在一种示例中,确定单元502,具体用于在至少一个内存条的功耗值中确定大于参考功耗值的一个或多个目标功耗值;计算一个或多个目标功耗值分别与参考功耗值的偏离程度。
在一种示例中,确定单元502,具体用于确定至少一个内存条的功耗值中的最大功耗值;计算最大功耗值与参考功耗值的偏离程度。
在一种示例中,确定单元502,具体用于将至少一个内存条的功耗值按照由大到小的顺序进行排序,得到功耗值序列;逐一计算功耗值序列中的功耗值与参考功耗值的偏离程度。确定单元502,还用于当偏离程度不超出预设范围时,停止计算。
在一种示例中,获取单元501,具体用于周期性获取至少一个内存条的功耗值。
在一种示例中,参考功耗值为预设值或至少一个内存条的平均功耗值。
在一种示例中,预警信息包括目标内存条的标识,或者,预警信息包括目标内存条的标识以及目标内存条的功耗值。
在一种示例中,计算设备50还包括存储单元504。存储单元504用于存储计算机执行指令,计算设备中的其他单元可以根据存储单元504中存储的计算机执行指令执行相应的动作。
关于上述可选方式的具体描述可以参见前述的方法实施例,此处不再赘述。此外,上述提供的任一种计算设备50的解释以及有益效果的描述均可参考上述对应的方法实施例,不再赘述。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,当该计算机程序在计算机上运行时,使得该计算机执行上文提供的任一种计算设备所执行的方法。
关于上述提供的任一种计算机可读存储介质中相关内容的解释及有益效果的描述,均可以参考上述对应的实施例,此处不再赘述。
本申请实施例还提供了一种芯片。该芯片中集成了用于实现上述计算设备的功能的控制电路和一个或者多个端口。可选的,该芯片支持的功能可以参考上文,此处不再赘述。本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可通过程序来指令相关的硬件完成。所述的程序可以存储于一种计算机可读存储介质中。上述提到的存储介质可以是只读存储器,随机接入存储器等。上述处理单元或处理器可以是中央处理器,通用处理器、特定集成电路(application specific integrated circuit,ASIC)、微处理器(digital signal processor,DSP),现场可编程门阵列(field programmable gatearray,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。
本申请实施例还提供了一种包含指令的计算机程序产品,当该指令在计算机上运行时,使得计算机执行上述实施例中的任意一种方法。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD)、或者半导体介质(例如SSD)等。
应注意,本申请实施例提供的上述用于存储计算机指令或者计算机程序的器件,例如但不限于,上述存储器、计算机可读存储介质和通信芯片等,均具有非易失性(non-transitory)。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digitalsubscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
尽管在此结合各实施例对本申请进行了描述,然而,在实施所要求保护的本申请过程中,本领域技术人员通过查看附图、公开内容、以及所附权利要求书,可理解并实现公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
尽管结合具体特征及其实施例对本申请进行了描述,显而易见的,在不脱离本申请的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本申请的示例性说明,且视为已覆盖本申请范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种内存故障预警方法,其特征在于,应用于计算设备,所述计算设备包括至少一个内存条,包括:
获取所述至少一个内存条的功耗值和参考功耗值;
确定所述至少一个内存条的功耗值分别与所述参考功耗值的偏离程度;
在所述偏离程度超出预设范围的情况下,输出预警信息,所述预警信息用于指示所述至少一个内存条中存在偏离程度超出预设范围的目标内存条,所述目标内存条是指存在故障风险的内存条。
2.根据权利要求1所述的方法,其特征在于,所述确定所述至少一个内存条的功耗值分别与所述参考功耗值的偏离程度,包括:
在所述至少一个内存条的功耗值中确定大于所述参考功耗值的一个或多个目标功耗值;
计算所述一个或多个目标功耗值分别与所述参考功耗值的偏离程度。
3.根据权利要求1所述的方法,其特征在于,所述确定所述至少一个内存条的功耗值分别与所述参考功耗值的偏离程度,包括:
确定所述至少一个内存条的功耗值中的最大功耗值;
计算所述最大功耗值与所述参考功耗值的偏离程度。
4.根据权利要求1所述的方法,其特征在于,所述确定所述至少一个内存条的功耗值分别与所述参考功耗值的偏离程度,包括:
将所述至少一个内存条的功耗值按照由大到小的顺序进行排序,得到功耗值序列;
逐一计算所述功耗值序列中的功耗值与所述参考功耗值的偏离程度;
所述方法还包括:
当所述偏离程度不超出所述预设范围时,停止计算。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述参考功耗值为预设值或所述至少一个内存条的平均功耗值。
6.一种计算设备,其特征在于,包括处理器、管理控制器和至少一个内存条,所述管理控制器和所述至少一个内存条分别与所述处理器连接;
所述处理器,用于获取所述至少一个内存条的第一信息并发送给所述管理控制器;
所述管理控制器,用于获取所述第一信息,并根据所述第一信息确定所述至少一个内存条的功耗值的偏离程度;
所述管理控制器,还用于输出预警信息,所述预警信息用于指示所述至少一个内存条中存在偏离程度超出预设范围的目标内存条,所述目标内存条是指存在故障风险的内存条。
7.根据权利要求6所述的计算设备,其特征在于,所述第一信息包括所述至少一个内存条的功耗值,所述管理控制器具体用于:
根据所述至少一个内存条的功耗值,确定所述至少一个内存条的平均功耗值;
根据所述至少一个内存条的功耗值和所述平均功耗值确定所述至少一个内存条的功耗值分别与所述平均功耗值的偏离程度。
8.根据权利要求6所述的计算设备,其特征在于,所述第一信息包括所述至少一个内存条的功耗值和参考功耗值,所述参考功耗值是预设值或所述至少一个内存条的平均功耗值;所述管理控制器具体用于:
根据所述至少一个内存条的功耗值和所述参考功耗值,确定所述至少一个内存条的功耗值分别与所述参考功耗值的偏离程度。
9.根据权利要求6所述的计算设备,其特征在于,所述第一信息包括所述至少一个内存条的偏离程度,所述处理器具体用于:
获取所述至少一个内存条的功耗值和参考功耗值,所述参考功耗值是预设值或所述至少一个内存条的平均功耗值;
根据所述至少一个内存条的功耗值和所述参考功耗值,确定所述至少一个内存条的功耗值分别与所述参考功耗值的偏离程度。
10.根据权利要求6-9任一项所述的计算设备,其特征在于,
所述管理控制器,还用于向所述处理器发送指示信息,所述指示信息用于指示所述处理器读取所述至少一个内存条的功耗值;
所述处理器,用于根据所述指示信息,向所述至少一个内存条发送读取指令,所述读取指令用于读取所述至少一个内存条的功耗值;
所述至少一个内存条,用于根据所述读取指令,向所述处理器发送所述至少一个内存条的功耗值;
所述处理器,用于接收所述至少一个内存条的功耗值并转发至所述管理控制器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310084350.XA CN116069578A (zh) | 2023-01-17 | 2023-01-17 | 一种内存故障预警方法和计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310084350.XA CN116069578A (zh) | 2023-01-17 | 2023-01-17 | 一种内存故障预警方法和计算设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116069578A true CN116069578A (zh) | 2023-05-05 |
Family
ID=86179813
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310084350.XA Pending CN116069578A (zh) | 2023-01-17 | 2023-01-17 | 一种内存故障预警方法和计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116069578A (zh) |
-
2023
- 2023-01-17 CN CN202310084350.XA patent/CN116069578A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12014791B2 (en) | Memory fault handling method and apparatus, device, and storage medium | |
US8977905B2 (en) | Method and system for detecting abnormality of network processor | |
CN114968652A (zh) | 故障处理方法及计算设备 | |
US9489138B1 (en) | Method and apparatus for reliable I/O performance anomaly detection in datacenter | |
CN111221775B (zh) | 处理器、缓存处理方法及电子设备 | |
US8984333B2 (en) | Automatic computer storage medium diagnostics | |
US11200141B2 (en) | Apparatus and method for troubleshooting poor part life zones in a datacenter | |
CN110825561A (zh) | 控制系统以及控制装置 | |
CN115658373B (zh) | 基于服务器的内存处理方法和装置、处理器及电子设备 | |
CN116069578A (zh) | 一种内存故障预警方法和计算设备 | |
CN116302740A (zh) | 内存故障修复能力评估方法、装置及计算机设备 | |
CN116089147A (zh) | 内存数据处理方法、系统、存储介质及计算机终端 | |
CN115421947A (zh) | 内存故障处理方法、装置和存储介质 | |
CN116302625A (zh) | 故障上报方法、设备及存储介质 | |
CN115421946A (zh) | 内存故障处理方法、装置和存储介质 | |
KR101001071B1 (ko) | 메모리 비트 정정 보고 방법 및 장치 | |
US11593209B2 (en) | Targeted repair of hardware components in a computing device | |
CN115686901B (zh) | 内存故障分析方法及计算机设备 | |
CN111506460A (zh) | 内存故障的处理方法、装置、移动终端及存储介质 | |
CN115705261A (zh) | 内存故障的修复方法、cpu、os、bios及服务器 | |
CN116483630A (zh) | 内存故障修复方法 | |
CN114416304A (zh) | 一种虚拟机疏散方法和系统 | |
CN115391075A (zh) | 内存故障处理方法、系统及存储介质 | |
CN107451035B (zh) | 用于计算机装置的错误状态数据提供方法 | |
CN115391074A (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 |