一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

内存错误动态处理方法、系统、终端及存储介质与流程

2022-02-22 08:44:30 来源:中国专利 TAG:


1.本发明涉及服务器技术领域,具体涉及一种内存错误动态处理方法、系统、终端及存储介质。


背景技术:

2.内存(memory)是计算机的重要部件之一,也称内存储器和主存储器,它用于暂时存放cpu中的运算数据,与硬盘等外部存储器交换的数据。它是外存与cpu进行沟通的桥梁,计算机中所有程序的运行都在内存中进行,内存性能的强弱影响计算机整体发挥的水平。只要计算机开始运行,操作系统就会把需要运算的数据从内存调到cpu中进行运算,当运算完成,cpu将结果传送出来。内存的运行也决定计算机整体运行快慢的程度。内存条由内存芯片、电路板、金手指等部分组成。随着服务器市场蓬勃的发展,内存故障是服务器宕机的最常见原因之一,另外内存的纳米制程也在提高,现在普遍芯片工艺都提高到10nm以内了,芯片制程的提高也代表着内存坏块率更高。传统的服务器内存ce检错机制是通过smi中断或者cmci中断处理。
3.当采用smi中断方式处理时,由于之前的内存纳米制程不够小,所以错误率不高,产生的中断也不会很高。但是随着内存制程的提高错误率增高,如果还采用这种smi中断的方式,可能会造成当系统在处理业务的时候,产生smi中断,占用系统资源,影响系统性能。
4.当采用cmci中断方式处理时,此中断方式由系统处理,系统默认此处理方式阈值为一,所以在系统日志中会产生大量错误记录,另外此方式严重依赖于系统驱动包。服务器厂商客户众多,每个客户使用的系统版本都不一致,使用的系统处理程式也不一致,所以不能做到更好的策略统一。从当前统计的客户看,做的比较好的是行业中的腾讯和美团,而这两家也是在os下做的内存统一坏块分析处理。os下做的错误处理,不能做到行业统一。


技术实现要素:

5.针对现有技术的上述不足,本发明提供一种内存错误动态处理方法、系统、终端及存储介质,以解决上述技术问题。
6.第一方面,本发明提供一种内存错误动态处理方法,包括:
7.将处理器配置为错误引脚启用模式,所述错误引脚在内存发生错误时向基板管理控制器发送电平信号,以使基板管理控制器读取从处理器底层错误检测寄存器读取错误信息;
8.根据所述错误信息执行错误验证程序,得到验证数据,根据所述验证数据获取错误类型,所述错误类型为软件错误或硬件错误的任一种;
9.根据所述错误类型在服务器重启过程中选取相应的修复工具,并执行所述修复工具对内存进行修复。
10.进一步的,所述方法还包括:
11.处理器底层错误检测寄存器通过pcie链路与基板管理控制器连接,如果接收到
bmc返回的读取错误信息失败的提示,则判定pcie链路故障,并启用基于串行接口协议中断的内存错误处理程序。
12.进一步的,将处理器配置为错误引脚启用模式,所述错误引脚在内存发生错误时向基板管理控制器发送电平信号,以使基板管理控制器读取从处理器底层错误检测寄存器读取错误信息,包括:
13.所述错误引脚设置在处理器上,且所述错误引脚连接基板管理控制器。
14.进一步的,将处理器配置为错误引脚启用模式,所述错误引脚在内存发生错误时向基板管理控制器发送电平信号,以使基板管理控制器读取从处理器底层错误检测寄存器读取错误信息,包括:
15.所述电平信号控制基板管理控制器通过中断方式触发异步消息处理程序,所述异步消息处理程序收集处理器底层错误检测寄存器的错误信息。
16.进一步的,根据所述错误信息执行错误验证程序,得到验证数据,根据所述验证数据获取错误类型,所述错误类型为软件错误或硬件错误的任一种,包括:
17.重复执行读写操作,基板管理控制器在每次执行读写操作之后采集错误信息,统计错误信息次数;
18.如果错误信息次数与读写操作执行次数相同,则判定错误类型为硬件错误;
19.如果错误信息次数小于读写操作执行次数,则判定错误类型为软件错误。
20.进一步的,根据所述错误类型在服务器重启过程中选取相应的修复工具,并执行所述修复工具对内存进行修复,包括:
21.从基板管理控制器获取错误类型,如果错误类型为硬件错误,则调用硬件修复程序修复内存颗粒;如果错误类型为软件错误,则调用软件修复程序修复内存颗粒。
22.第二方面,本发明提供一种内存错误动态处理系统,包括:
23.错误监控单元,用于将处理器配置为错误引脚启用模式,所述错误引脚在内存发生错误时向基板管理控制器发送电平信号,以使基板管理控制器读取从处理器底层错误检测寄存器读取错误信息;
24.错误判断单元,用于根据所述错误信息执行错误验证程序,得到验证数据,根据所述验证数据获取错误类型,所述错误类型为软件错误或硬件错误的任一种;
25.错误修复单元,用于根据所述错误类型在服务器重启过程中选取相应的修复工具,并执行所述修复工具对内存进行修复。
26.进一步的,所述系统还用于:
27.处理器底层错误检测寄存器通过pcie链路与基板管理控制器连接,如果接收到bmc返回的读取错误信息失败的提示,则判定pcie链路故障,并启用基于载波侦听多路访问协议中断的内存错误处理程序。
28.进一步的,所述错误监控单元用于:所述错误引脚设置在处理器上,且所述错误引脚连接基板管理控制器。
29.进一步的,所述错误监控单元用于:
30.所述电平信号控制基板管理控制器通过中断方式触发异步消息处理程序,所述异步消息处理程序收集处理器底层错误检测寄存器的错误信息。
31.进一步的,所述错误判断单元用于:
32.重复执行读写操作,基板管理控制器在每次执行读写操作之后采集错误信息,统计错误信息次数;
33.如果错误信息次数与读写操作执行次数相同,则判定错误类型为硬件错误;
34.如果错误信息次数小于读写操作执行次数,则判定错误类型为软件错误。
35.进一步的,所述错误修复单元用于:
36.从基板管理控制器获取错误类型,如果错误类型为硬件错误,则调用硬件修复程序修复内存颗粒;如果错误类型为软件错误,则调用软件修复程序修复内存颗粒。
37.第三方面,提供一种终端,包括:
38.处理器、存储器,其中,
39.该存储器用于存储计算机程序,
40.该处理器用于从存储器中调用并运行该计算机程序,使得终端执行上述的终端的方法。
41.第四方面,提供了一种计算机存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
42.本发明的有益效果在于,本发明提供的内存错误动态处理方法、系统、终端及存储介质,通过将处理器配置为错误引脚启用模式,所述错误引脚在内存发生错误时向基板管理控制器发送电平信号,以使基板管理控制器读取从处理器底层错误检测寄存器读取错误信息,初次生成的错误信息能够触发错误验证程序,得到验证数据,根据验证数据获取错误类型,错误类型为软件错误或硬件错误的任一种,然后根据错误类型在服务器重启过程中选取相应的修复工具,并执行所述修复工具对内存进行修复。本发明可减轻os业务压力(调用smi所造成的资源申请)转为bmc处理分析内存错误。当内存错误过多时,也可动态转化成结合基于载波侦听多路访问协议中断的内存错误处理程序再分析处理内存错误。
43.此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
附图说明
44.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
45.图1是本发明一个实施例的方法的示意性流程图。
46.图2是本发明一个实施例的方法的示意性原理图。
47.图3是本发明一个实施例的系统的示意性框图。
48.图4为本发明实施例提供的一种终端的结构示意图。
具体实施方式
49.为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
50.下面对本发明中出现的关键术语进行解释。
51.bmc,执行伺服器远端管理控制器,英文全称为baseboard management controller.为基板管理控制器。它可以在机器未开机的状态下,对机器进行固件升级、查看机器设备、等一些操作。在bmc中完全实现ipmi功能需要一个功能强大的16位元或32位元微控制器以及用于数据储存的ram、用于非挥发性数据储存的快闪记忆体和韧体,在安全远程重启、安全重新上电、lan警告和系统健康监视方面能提供基本的远程可管理性。除了基本的ipmi功能和系统工作监视功能外,通过利用2个快闪记忆体之一储存以前的bios,mbmc还能实现bios快速元件的选择和保护。例如,在远程bios升级後系统不能启动时,远程管理人员可以切换回以前工作的bios映像来启动系统。一旦bios升级後,bios映像还能被锁住,可有效防止病毒对它的侵害。
52.intel mca硬件机制,intel引入了machine-check architecture(mca)和machine-check exception(#mc),机制用来对服务器硬件进行自检,并在发现硬件错误的时候发出中断或异常。系统软件收到中断或异常后,会对其进行响应,进行相应的修复、告警或其他策略等动作。通过intel的这个ras特性,保证在发生crash等错误前,服务器可以有机会做一些容错处理,大大提升了intel在数据中心高可靠服务器领域的竞争实力。通过mca,系统可以探测硬件错误,如系统总线错误,ecc错误,奇偶校验错误,cache错误,tlb错误等。
53.handler在我们日常开发中会经常用到,它主要用于处理异步消息,当发出一个消息之后,首先进入到一个消息队列,发送消息的函数即可返回,而另外一个部分在消息队列中逐一取出,然后对消息进行处理。
54.bios是英文"basic input output system"的缩略词,直译过来后中文名称就是"基本输入输出系统"。在ibm pc兼容系统上,是一种业界标准的固件接口。它是一组固化到计算机内主板上一个rom芯片上的程序,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,它可从cmos中读写系统设置的具体信息。其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。此外,bios还向作业系统提供一些系统参数。系统硬件的变化是由bios隐藏,程序使用bios功能而不是直接控制硬件。现代作业系统会忽略bios提供的抽象层并直接控制硬件组件。
55.cpu中央处理器(central processing unit,简称cpu)作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。
56.为了减少程序直接控制方式中cpu等待时间以及提高系统的并行工作程度,用来控制外围设备和内存与cpu之间的数据传送称为中断方式。
57.图1是本发明一个实施例的方法的示意性流程图。其中,图1执行主体可以为一种内存错误动态处理系统。
58.如图1所示,该方法包括:
59.步骤110,将处理器配置为错误引脚启用模式,所述错误引脚在内存发生错误时向基板管理控制器发送电平信号,以使基板管理控制器读取从处理器底层错误检测寄存器读取错误信息;
60.步骤120,根据所述错误信息执行错误验证程序,得到验证数据,根据所述验证数据获取错误类型,所述错误类型为软件错误或硬件错误的任一种;
61.步骤130,根据所述错误类型在服务器重启过程中选取相应的修复工具,并执行所述修复工具对内存进行修复。
62.为了便于对本发明的理解,下面以本发明内存错误动态处理方法的原理,结合实施例中对内存错误动态进行处理的过程,对本发明提供的内存错误动态处理方法做进一步的描述。
63.具体的,请参考图2,所述内存错误动态处理方法包括:
64.s1、将处理器配置为错误引脚启用模式,所述错误引脚在内存发生错误时向基板管理控制器发送电平信号,以使基板管理控制器读取从处理器底层错误检测寄存器读取错误信息。
65.错误引脚设置在处理器上,且所述错误引脚连接基板管理控制器。电平信号控制基板管理控制器通过中断方式触发异步消息处理程序,所述异步消息处理程序收集处理器底层错误检测寄存器的错误信息。
66.具体的,配置cpu触发模式为error pin模式,此模式下当出现内存ce错误时,连接bmc的error pin会改变电平,bmc可以通过中断模式触发其handler程序,handler程序收集cpu底层mci bank寄存器,定位出错内存位置。
67.s2、根据所述错误信息执行错误验证程序,得到验证数据,根据所述验证数据获取错误类型,所述错误类型为软件错误或硬件错误的任一种。
68.出错内存利用bmc下的内存错误分析模块定位此报错内存是属于软件错误还是硬件错误(软件错误:宇宙射线粒子干扰等等。硬件错误:制作错误,硬件损伤等等)。
69.内存错误分析模块诊断错误类型的方法例如,重复执行读写操作,基板管理控制器在每次执行读写操作之后采集错误信息,统计错误信息次数;如果错误信息次数与读写操作执行次数相同,则判定错误类型为硬件错误;如果错误信息次数小于读写操作执行次数,则判定错误类型为软件错误。bmc挑选硬件错误的颗粒,生成错误报告存在bmc中。
70.s3、根据所述错误类型在服务器重启过程中选取相应的修复工具,并执行所述修复工具对内存进行修复。
71.从基板管理控制器获取错误类型,如果错误类型为硬件错误,则调用硬件修复程序修复内存颗粒;如果错误类型为软件错误,则调用软件修复程序修复内存颗粒。
72.具体的,服务器重启过程中获取bmc错误报告中的数据调用intel rc中的hard ppr和soft ppr修复内存颗粒。
73.s4、处理器底层错误检测寄存器通过pcie链路与基板管理控制器连接,如果接收到bmc返回的读取错误信息失败的提示,则判定pcie链路故障,并启用基于载波侦听多路访问协议中断的内存错误处理程序。
74.由于bmc处理内存数据必须经过peci通道获取mci bank寄存器,所以,如果某些故障导致peci通道不通,或者出现内存错误风暴,bmc获取错误速度无法比拟高速报错速度则需要动态切换为bios的smi方式,由bios快速处理错误。如果不切换成bios的smi方式则可能导致有些有效内存错误信息丢失。
75.如图3所示,该系统200包括:
76.错误监控单元310,用于将处理器配置为错误引脚启用模式,所述错误引脚在内存发生错误时向基板管理控制器发送电平信号,以使基板管理控制器读取从处理器底层错误
检测寄存器读取错误信息;
77.错误判断单元320,用于根据所述错误信息执行错误验证程序,得到验证数据,根据所述验证数据获取错误类型,所述错误类型为软件错误或硬件错误的任一种;
78.错误修复单元330,用于根据所述错误类型在服务器重启过程中选取相应的修复工具,并执行所述修复工具对内存进行修复。
79.可选地,作为本发明一个实施例,所述系统还用于:
80.处理器底层错误检测寄存器通过pcie链路与基板管理控制器连接,如果接收到bmc返回的读取错误信息失败的提示,则判定pcie链路故障,并启用基于载波侦听多路访问协议中断的内存错误处理程序。
81.可选地,作为本发明一个实施例,所述错误监控单元用于:所述错误引脚设置在处理器上,且所述错误引脚连接基板管理控制器。
82.可选地,作为本发明一个实施例,所述错误监控单元用于:
83.所述电平信号控制基板管理控制器通过中断方式触发异步消息处理程序,所述异步消息处理程序收集处理器底层错误检测寄存器的错误信息。
84.可选地,作为本发明一个实施例,所述错误判断单元用于:
85.重复执行读写操作,基板管理控制器在每次执行读写操作之后采集错误信息,统计错误信息次数;
86.如果错误信息次数与读写操作执行次数相同,则判定错误类型为硬件错误;
87.如果错误信息次数小于读写操作执行次数,则判定错误类型为软件错误。
88.可选地,作为本发明一个实施例,所述错误修复单元用于:
89.从基板管理控制器获取错误类型,如果错误类型为硬件错误,则调用硬件修复程序修复内存颗粒;如果错误类型为软件错误,则调用软件修复程序修复内存颗粒。
90.图4为本发明实施例提供的一种终端400的结构示意图,该终端400可以用于执行本发明实施例提供的内存错误动态处理方法。
91.其中,该终端400可以包括:处理器410、存储器420及通信单元430。这些组件通过一条或多条总线进行通信,本领域技术人员可以理解,图中示出的服务器的结构并不构成对本发明的限定,它既可以是总线形结构,也可以是星型结构,还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
92.其中,该存储器420可以用于存储处理器410的执行指令,存储器420可以由任何类型的易失性或非易失性存储终端或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。当存储器420中的执行指令由处理器410执行时,使得终端400能够执行以下上述方法实施例中的部分或全部步骤。
93.处理器410为存储终端的控制中心,利用各种接口和线路连接整个电子终端的各个部分,通过运行或执行存储在存储器420内的软件程序和/或模块,以及调用存储在存储器内的数据,以执行电子终端的各种功能和/或处理数据。所述处理器可以由集成电路(integrated circuit,简称ic)组成,例如可以由单颗封装的ic所组成,也可以由连接多颗相同功能或不同功能的封装ic而组成。举例来说,处理器410可以仅包括中央处理器(central processing unit,简称cpu)。在本发明实施方式中,cpu可以是单运算核心,也可
以包括多运算核心。
94.通信单元430,用于建立通信信道,从而使所述存储终端可以与其它终端进行通信。接收其他终端发送的用户数据或者向其他终端发送用户数据。
95.本发明还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本发明提供的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-only memory,简称:rom)或随机存储记忆体(英文:random access memory,简称:ram)等。
96.因此,本发明通过将处理器配置为错误引脚启用模式,所述错误引脚在内存发生错误时向基板管理控制器发送电平信号,以使基板管理控制器读取从处理器底层错误检测寄存器读取错误信息,初次生成的错误信息能够触发错误验证程序,得到验证数据,根据验证数据获取错误类型,错误类型为软件错误或硬件错误的任一种,然后根据错误类型在服务器重启过程中选取相应的修复工具,并执行所述修复工具对内存进行修复。本发明可减轻os业务压力(调用smi所造成的资源申请)转为bmc处理分析内存错误。当内存错误过多时,也可动态转化成结合基于载波侦听多路访问协议中断的内存错误处理程序再分析处理内存错误,本实施例所能达到的技术效果可以参见上文中的描述,此处不再赘述。
97.本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中如u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质,包括若干指令用以使得一台计算机终端(可以是个人计算机,服务器,或者第二终端、网络终端等)执行本发明各个实施例所述方法的全部或部分步骤。
98.本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于终端实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
99.在本发明所提供的几个实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,系统或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
100.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
101.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
102.尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明
的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献