CN116382958A - 一种内存错误的处理方法及计算设备 - Google Patents

一种内存错误的处理方法及计算设备 Download PDF

Info

Publication number
CN116382958A
CN116382958A CN202310332958.XA CN202310332958A CN116382958A CN 116382958 A CN116382958 A CN 116382958A CN 202310332958 A CN202310332958 A CN 202310332958A CN 116382958 A CN116382958 A CN 116382958A
Authority
CN
China
Prior art keywords
error
indication information
srao
memory page
target memory
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
Application number
CN202310332958.XA
Other languages
English (en)
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.)
XFusion Digital Technologies Co Ltd
Original Assignee
XFusion Digital 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 XFusion Digital Technologies Co Ltd filed Critical XFusion Digital Technologies Co Ltd
Priority to CN202310332958.XA priority Critical patent/CN116382958A/zh
Publication of CN116382958A publication Critical patent/CN116382958A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/079Root cause analysis, i.e. error or fault diagnosis
    • 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/0793Remedial or corrective actions
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)
  • Retry When Errors Occur (AREA)

Abstract

本申请实施例公开了一种内存错误的处理方法及计算设备。获取目标内存页对应的错误对象;其中,错误对象用于指示目标内存页的错误类型;在错误对象包括第一错误指示信息的情况下,将第一错误指示信息修改为第二错误指示信息;其中,第一错误指示信息用于指示目标内存页发生选择处理SRAO错误,且SRAO错误包括处理器上下文错误PCC;第二错误指示信息用于指示目标内存页发生SRAO错误,且SRAO错误不包括PCC;根据第二错误指示信息对目标内存页进行隔离。本申请中,当内存页发生了SRAO错误后,通过第二错误指示信息来指示该SRAO错误不包括PCC,使得操作系统不会感知到发生了PCC事件,则不会进行系统复位,提高了操作系统的运行效率。

Description

一种内存错误的处理方法及计算设备
技术领域
本申请涉及服务器技术领域,尤其涉及一种内存错误的处理方法及计算设备。
背景技术
随着计算机技术的进步,中央处理器(central processing unit,CPU)所使用的内存容量不断增大,内存故障已经成为系统硬件故障的高频问题。
内存设备在硬件设计上是支持错误检测和校验机制的。当内存发生可纠正错误(corrected error,CE)时,通常内存控制器可以检测到该错误并可以进行纠正。然而,当内存发生不可纠正错误(uncorrected error,UCE)时,校验算法无法还原正确的值。而硬件纠正不了该错误,会触发进程中断,通知操作系统中的硬件错误处理模块从软件层面继续处理。其中,UCE中的可恢复错误,可以分类为不需要处理(uncorrected no action,UCNA)错误、选择处理(software recover ableacti onoptional,SRAO)错误以及必须处理(software recover ableaction required,SRAR)错误。
在某些不支持进行SRAO错误处理的CPU平台上,当SRAO错误被检测到后,硬件会触发中断,操作系统(operating system,OS)会按照硬件的指示进行系统复位,进而影响操作系统的运行效率。
发明内容
本申请实施例提供了一种内存错误的处理方法及计算设备,用于提高系统的运行效率。
第一方面,本申请实施例提供了一种内存错误的处理方法。本申请中内存错误的处理方法,适用于不支持进行SRAO错误处理的CPU平台,可以避免内存页在发生SRAO错误时,操作系统只能进行系统复位的问题。其中,对于这类不支持进行SRAO错误处理的CPU平台,当硬件检测到目标内存页发生SRAO错误后,会指示该SRAO错误包括处理器上下文错误(processor context corrupted,PCC)。而操作系统感知到PCC后,便会进行系统复位。
本申请实施例中,目标内存页发生了SRAO错误,而且,该SRAO错误包括了处理器上下文错误(processor context corrupted,PCC)。则先对目标内存页所发生的包括了PCC的SRAO错误进行识别(例如识别出PCC的Bit位取值为1的SRAO错误),然后针对该目标内存页的SRAO错误,生成相应的错误对象,以便用于在软件层面向操作系统反馈该SRAO错误。其中,该错误对象包括第一错误指示信息,第一错误指示信息指示目标内存页发生SRAO错误,且SRAO错误包括PCC。
由于第一错误指示信息,指示了目标内存页所发生的SRAO错误包括了PCC。此时,若操作系统感知到发生了PCC事件时,便会进行系统复位。因此,本申请中,将第一错误指示信息更新为第二错误指示信息,即目标内存页对应的错误对象包括了第二错误指示信息,第二错误指示信息指示目标内存页发生SRAO错误,且该SRAO错误不包括PCC。因此,操作系统便不会感知到发生了PCC事件,则不会进行系统复位。
本申请实施例中,当内存页发生了SRAO错误后,通过第二错误指示信息来指示该SRAO错误不包括PCC,使得操作系统不会感知到发生了PCC事件,则不会进行系统复位,提高了操作系统的运行效率。另一方面,操作系统不会进行系统复位,从而增加了操作系统的在线运行时长,减少了业务中断时间,提升了操作系统的可服务性。并且,对于支持处理SRAO错误的CPU,其采购成本会更高,本申请的内存错误的处理方法,扩展了不支持SRAO错误的CPU的应用场景,减少了对于支持处理SRAO错误的CPU的使用,降低了用户的硬件成本开销。
基于第一方面,一种可选的实施方式中,可以通过第一指示字和第二指示字来表示是否发生了PCC,其中,第一指示字指示发生了PCC,第二指示字指示没有发生PCC。因此,本申请实施例中,第一错误指示信息包括了描述目标内存页所发生的SRAO错误包括PCC的第一指示字,第二错误指示信息包括了描述目标内存页所发生的SRAO错误不包括PCC的第二指示字。其中,第一指示字和第二指示字不同。
基于第一方面,一种可选的实施方式中,第一指示字为1,第二指示字为0。
基于第一方面,一种可选的实施方式中,可以将第一错误指示信息中的第一指示字修改为第二指示字,生成第二错误指示信息。
基于第一方面,一种可选的实施方式中,获取错误寄存器存储的错误信息;基于将错误寄存器存储的错误信息生成目标内存页对应的错误对象。
基于第一方面,一种可选的实施方式中,当内存控制器与CPU独立设置时,由内存控制器执行检测目标内存页的状态信息,获取目标内存页的错误检测信息。
基于第一方面,一种可选的实施方式中,当内存控制器集成在CPU内部时,由CPU执行检测目标内存页的状态信息,获取目标内存页的错误检测信息。
第二方面,本申请实施例提供了一种内存错误处理装置,包括:
获取单元,用于获取目标内存页对应的错误对象;其中,错误对象用于指示目标内存页的错误类型;
处理单元,用于在错误对象包括第一错误指示信息的情况下,将第一错误指示信息修改为第二错误指示信息;其中,第一错误指示信息用于指示目标内存页发生选择处理SRAO错误,且SRAO错误包括处理器上下文错误PCC;第二错误指示信息用于指示目标内存页发生SRAO错误,且SRAO错误不包括PCC;
隔离单元,根据第二错误指示信息对目标内存页进行隔离。
基于第二方面,一种可选的实施方式中,第一错误指示信息包括描述SRAO错误包括PCC的第一指示字;第二错误指示信息包括描述SRAO错误不包括PCC的第二指示字;第一指示字与第二指示字不同。
基于第二方面,一种可选的实施方式中,第一指示字为1;第二指示字为0。
基于第二方面,一种可选的实施方式中,处理单元,用于在错误对象包括第一错误指示信息的情况下,将第一错误指示信息修改为第二错误指示信息,包括:
处理单元用于将第一错误指示信息中的第一指示字修改为第二指示字,生成第二错误指示信息。
基于第二方面,一种可选的实施方式中,处理单元,还用于将错误对象与第一错误信息进行匹配,确定错误对象是否包括第一错误指示信息。
基于第二方面,一种可选的实施方式中,获取单元,具体用于:获取错误寄存器存储的错误信息;
基于将错误寄存器存储的错误信息生成目标内存页对应的错误对象。
基于第二方面,一种可选的实施方式中,处理单元,还用于触发内存控制器检测目标内存页的错误信息,
将错误信息写入错误寄存器。
基于第二方面,一种可选的实施方式中,处理单元,还用于检测目标内存页的错误信息,将错误信息写入错误寄存器。
基于第二方面,一种可选的实施方式中,错误寄存器包括状态寄存器和全局状态寄存器;
处理单元,具体用于:基于获取的错误信息,更新状态寄存器的Bit位和全局状态寄存器的Bit位。
本方面所示实施例的信息交互和执行过程等内容,与第一方面所示的实施例基于同一构思,因此,本方面所示的有益效果的说明,请详见上述第一方面所示,具体此处不做赘述。
第三方面,本申请实施例提供了一种计算机设备,包括存储器、通信接口及与存储器和通信接口耦合的处理器;存储器用于存储指令,处理器用于执行指令,通信接口用于在处理器的控制下与其他设备进行通信;其中,处理器执行指令使计算设备执行第一方面及其相关实施方式中的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,当计算机程在处理器上运行时,使得计算设备实现上述第一方面及其相关实施方式中的方法。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为一种计算设备结构示意图;
图2为内存错误的类型的示意图;
图3A为本申请实施例提供的一种内存错误的处理方法的流程示意图;
图3B为本申请实施例提供的获取目标内存页的错误对象的流程示意图;
图4为本申请实施例中寄存器中描述不同错误类型的各Bit位的组合意图;
图5为状态寄存器中不同Bit位的释义示意图;
图6为全局状态寄存器中不同Bit位的释义示意图;
图7为SRAO错误在状态寄存器中所对应的描述示意图;
图8中为SRAO错误在全局状态寄存器中所对应的描述示意图;
图9为本申请实施例提供的一种内存错误处理装置的结构示意图。
具体实施方式
本申请实施例提供了一种内存错误的处理方法及相关装置,用于提高操作系统的运行效率。
下面结合本申请实施例中的附图对本申请实施例进行描述。本申请的实施方式部分使用的术语仅用于对本申请的具体实施例进行解释,而非旨在限定本申请。本领域普通技术人员可知,随着技术的发展和新场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
请参阅图1,该图1为本申请实施例的一种计算设备的结构示意图。
该计算设备100包括但不限于为服务器、交换器和小型计算机等具有计算功能的电子设备。其中,当计算设备为服务器时,该服务器可以是支持内存页隔离技术的任意类型的服务器,例如X86架构的服务器,具体可以是刀片服务器、高密服务器、机架服务器或高性能服务器等各种类型的服务器。
下文以服务器作为例进行本申请实施例中各方案的描述。
该服务器100可以包括处理器101、内存控制器102和内存103。在实际应用中,服务器中还包括总线(图中未示出),总线可实现在服务器各个部件(例如,处理器101、内存控制器102和内存103)之间传送信息的通路。总线可以是外设部件互连标准(PeripheralComponent Interconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。
其中,处理器101与内存控制器102可以集成在一起,也可以是独立设置的。处理器101可以是中央处理单元(central processing unit,CPU)、通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请实施例公开内容所描述的各种示例性的方法流程。该处理器101也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理器和微处理器的组合等等。
内存103是缓存空间,用于存放处理器101中的运算数据,以及与硬盘等外部存储器交换的数据。它是外部存储或外设存与处理器101进行沟通的桥梁。内存103一般采用半导体存储单元,包括但不限于随机存储器(Random Access Memory,RAM),只读存储器(ReadOnly Memory,ROM),以及高速缓存(Cache)。内存103包括本申请实施例中的目标内存页。
内存控制器102用于对内存103中的数据/程序访问进行管理,在本申请实施例中,内存控制器可以检测到目标内存页所发生的错误,并将该错误反馈给处理器101中的错误寄存器。
需要说明的是,图1所示的服务器仅为可适用于本申请实施例的一种服务器的结构示意图,其不对本申请实施例所适用的服务器构成限定,例如,服务器中还可以包括持久性存储介质、通信接口、通信线路等。
服务器的中央处理器所使用的内存容量不断增大,内存故障已经成为内存故障系统硬件故障的高频问题。
内存设备在硬件设计上是支持错误检测和校验机制的。当内存发生可纠正错误时,通常内存控制器可以检测到该错误并可以进行纠正。然而,当内存发生不可纠正错误时,校验算法无法还原正确的值。而硬件纠正不了该错误,会触发进程中断,通知操作系统中的硬件错误处理模块从软件层面继续处理。
请参阅图2,图2为内存错误的类型的示意图。如图2所示,UCE中包括了致命错误和可恢复错误,其中,可恢复错误表示错误在软件层面有可能可以修复,但不一定可以修复。如果不能,最终结果就是终止访问该错误内存对应的进程或者系统复位。具体的,可恢复错误可以分类为不需要处理(uncorrected no action,UCNA)错误、选择处理(softwarerecover ableacti onoptional,SRAO)错误以及必须处理(software recover ableactionrequired,SRAR)错误。其中,SRAO错误表示当内存所发生错误后,所产生的错误数据,尚未加载到CPU内的缓存中,不在CPU的执行路径中。
相关技术中,针对这种SRAO错误,根据不同类型的CPU,大致可以分为以下两种处理情况。下面分别进行说明。
在支持SRAO错误处理的CPU平台上,当SRAO错误被检测到后,硬件会触发中断,操作系统会按照硬件的指示尝试修复内存错误。例如,从软件层面尝试隔离有错误的内存页面。系统不是直接复位。
而在某些不支持进行SRAO错误处理的CPU平台上,当SRAO错误被检测到后,硬件会触发中断,操作系统会按照硬件的指示进行系统复位,进而影响操作系统的运行效率。
有鉴于此,本申请实施例公开了一种内存错误的处理方法,用于提高操作系统的运行效率。
请参阅图3A,图3A为本申请实施例中内存错误的处理方法的流程示意图。本申请实施例中内存错误的处理方法,包括:
201.获取目标内存页的错误对象,该错误对象用于指示目标内存页的错误类型。
本申请实施例中内存错误的处理方法,适用于不支持进行SRAO错误处理的CPU平台(例如,可以是图1对应实施例中服务器所搭载的CPU),可以避免内存页在发生SRAO错误时,操作系统只能进行系统复位的问题。其中,这类不支持进行SRAO错误处理的CPU平台,可以部署于图1所示的服务器、网络设备或者终端当中,具体此处不做限定,本申请实施例中,仅以这类不支持进行SRAO错误处理的CPU平台部署于服务器为例,进行介绍。
请参阅图3B,图3B为本申请实施例中,获取目标内存页的错误对象的流程示意图。
如图3B所示,获取目标内存页的错误对象,具体可以包括以下步骤:
2011.获取目标内存页的错误信息。
在一种实现方式中,当内存控制器与CPU独立设置时,由内存控制器执行检测目标内存页的状态信息,获取目标内存页的错误检测信息。
在一种实现方式中,当内存控制器集成在CPU内部时,由CPU执行检测目标内存页的状态信息,获取目标内存页的错误检测信息。
2012.将目标内存页的错误信息写入目标内存页对应的错误寄存器。
CPU/内存控制器将检测到的目标内存页的错误信息写入到错误寄存器,该错误寄存器用于存储目标内存页的错误检测信息,其中,每个错误信息对应可以一种错误类型。
具体的,在实际应用中,错误寄存器中存储了用于描述各个错误类型的错误信息。示例性的,错误寄存器中所存储的描述各个错误类型的错误信息可以是一个或多个比特(Bit)位的组合。该示例中,内存控制器或CPU在检测到内存页发生了错误之后,内存控制器/CPU可以写入错误寄存器中的对应Bit位,当写入后的错误寄存器Bit位的组合情况,匹配了某个错误类型对应的Bit位的条件时,则CPU可以确定该内存页发生了该错误类型的错误。
2013.基于错误信息确定目标内存页是否发生SRAO错误。
示例性的,请参阅图4,图4为错误寄存器中描述不同错误类型的各Bit位的一种可能的组合情况。如图4所示,SRAO错误、UCNA错误和CE错误,都需要通过多个Bit位的组合情况来反馈得到。其中,对于不支持进行SRAO错误处理的CPU来说,当发生了SRAO错误后,描述PCC的Bit位取值会置1,指示该SRAO错误包括了PCC,从而触发操作系统进行系统复位。
一般来说,每一类错误对应到错误寄存器的关键bit位都有明确的定义,且这些定义从兼容性角度,芯片厂商不会改变原有的语义。在实际应用中,CPU的错误寄存器一般包括状态寄存器(IA32_MCi_STATUS)和全局状态寄存器(IA32_MCG_STATUS)。
示例性的,图5为状态寄存器(IA32_MCi_STATUS)中不同Bit位的定义;图6为全局状态寄存器(IA32_MCG_STATUS)中不同Bit位的定义。其中,图4中用于指示SRAO错误的Bit位包括来自图5的状态寄存器中第63位的VAL字段、第61位的UC字段、第57位的PCC字段、第56位的Service字段、第55位的AR字段、第58位的ADDRV字段、第59位的MISCV字段、和,以及图6的全局状态寄存器中第0位的RIPV字段和第1位的EIPV字段。
由图4可知,SRAO错误需要由状态寄存器(IA32_MCi_STATUS)中的Bit位和全局状态寄存器(IA32_MCG_STATUS)中的Bit位来共同指示,具体的,图7为SRAO错误在状态寄存器(IA32_MCi_STATUS)中所对应的描述;图8中为SRAO错误在全局状态寄存器(IA32_MCG_STATUS)中所对应的描述。
示例性的,在Linux架构中,可以调用函数__mc_scan_banks,此函数是获取硬件错误信息的主函数,在读取到硬件错误之后,再通过mce_severity函数生成对应的错误对象(MCE Error Object),并得到该错误对象的类型(如确定目标内存页所发生的错误类型为包括PCC的SRAO错误)。
2014.在目标内存页发生SRAO错误的情况下,基于错误信息生成SRAO错误对应的错误对象。
本申请实施例中,CPU的错误寄存器确定目标内存页发生了SRAO错误,而且,该SRAO错误包括了处理器上下文错误(processor context corrupted,PCC)。CPU针对该目标内存页的SRAO错误,生成相应的错误对象,以便用于在软件层面向操作系统反馈该SRAO错误。其中,该错误对象包括第一错误指示信息,第一错误指示信息指示目标内存页发生SRAO错误,且SRAO错误包括PCC。
在实际应用中,所生成的SRAO错误对应的错误对象,可以以顺序表、链表、栈、队列、树结构或图存储结构等形式进行存储,示例性的,该错误对象为结构体。本申请对此不做限定。
202.在错误对象包括第一错误指示信息的情况下,将第一错误指示信息修改为第二错误指示信息。第二错误指示信息指示目标内存页发生SRAO错误,该SRAO错误不包括处理器上下文错误(processor context corrupted,PCC)。
由于第一错误指示信息,指示了目标内存页所发生的SRAO错误包括了PCC。此时,若操作系统感知到发生了PCC事件时,便会进行系统复位。因此,将第一错误指示信息修改为第二错误指示信息,目标内存页对应的错误对象包括了第二错误指示信息,第二错误指示信息指示目标内存页发生SRAO错误,且该SRAO错误不包括PCC。因此,操作系统便不会感知到发生了PCC事件,则不会进行系统复位。
本实施例中,当内存页发生了SRAO错误后,通过第二错误指示信息来指示该SRAO错误不包括PCC,使得操作系统不会感知到发生了PCC事件,则不会进行系统复位,提高了操作系统的运行效率。另一方面,操作系统不会进行系统复位,从而增加了操作系统的在线运行时长,减少了业务中断时间,提升了操作系统的可服务性。并且,扩展了不支持SRAO错误的CPU的应用场景,减少了对于支持处理SRAO错误的CPU的使用,降低了用户的硬件成本开销。
在一种可能的实现方式中,可以通过第一指示字和第二指示字来表示是否发生了PCC,其中,第一指示字指示发生了PCC,第二指示字指示没有发生PCC。因此,本申请实施例中,第一错误指示信息包括了描述目标内存页所发生的SRAO错误包括PCC的第一指示字,第二错误指示信息包括了描述目标内存页所发生的SRAO错误不包括PCC的第二指示字。其中,第一指示字和第二指示字不同。因此,可以将第一错误指示信息中的第一指示字修改为第二指示字,生成第二错误指示信息。
在一种可能的实现方式中,第一指示字为1,第二指示字为0。示例性的,第一错误指示信息可以为上述图4所示的Bit位,假设该第一错误信息为11110111010,其中,PCC的描述字段上的第一指示字为1,表示PCC的Bit位的取值已置1,指示该SRAO错误包括了PCC。
应理解,在实际应用中,除了通过第一指示字和第二指示字来表示SRAO错误是否包括PCC之外,还可以通过其他的方式,来表示SRAO错误是否包括PCC。例如,还可以是第一指示字为M表示SRAO错误包括PCC,而第二指示字为N则表示SRAO错误不包括PCC,本申请对此不做限定。
203.根据第二错误指示信息对目标内存页进行隔离。
目标内存页对应的错误对象中,第二错误指示信息指示了目标内存页发生SRAO错误,且该SRAO错误不包括PCC后,操作系统便不会感知到发生了PCC事件,则不会进行系统复位。此时,可以对目标内存页进行隔离处理,避免了目标内存页所产生的错误数据影响到其他的进程,提高了系统执行效率。
请参阅图9,图9为本申请实施例提供的一种内存错误处理装置300的结构示意图。
如图9所示,内存错误处理装置300包括:
获取单元301,用于获取目标内存页对应的错误对象;其中,错误对象用于指示目标内存页的错误类型;
处理单元302,用于在错误对象包括第一错误指示信息的情况下,将第一错误指示信息修改为第二错误指示信息;其中,第一错误指示信息用于指示目标内存页发生选择处理SRAO错误,且SRAO错误包括处理器上下文错误PCC;第二错误指示信息用于指示目标内存页发生SRAO错误,且SRAO错误不包括PCC;
隔离单元,根据第二错误指示信息对目标内存页进行隔离。
在一种可能的设计中,第一错误指示信息包括描述SRAO错误包括PCC的第一指示字;第二错误指示信息包括描述SRAO错误不包括PCC的第二指示字;第一指示字与第二指示字不同。
在一种可能的设计中,第一指示字为1;第二指示字为0。
在一种可能的设计中,将第一错误指示信息修改为第二错误指示信息,包括:
将第一错误指示信息中的第一指示字修改为第二指示字,生成第二错误指示信息。
在一种可能的设计中,所述处理单元302,还用于将错误对象与第一错误信息进行匹配,确定错误对象是否包括第一错误指示信息。
在一种可能的设计中,所述获取单元301,具体用于:获取错误寄存器存储的错误信息;
基于将错误寄存器存储的错误信息生成目标内存页对应的错误对象。
在一种可能的设计中,所述处理单元302,还用于触发内存控制器检测目标内存页的错误信息,
将错误信息写入错误寄存器。
在一种可能的设计中,所述处理单元302,还用于检测目标内存页的错误信息,
将错误信息写入错误寄存器。
在一种可能的设计中,错误寄存器包括状态寄存器和全局状态寄存器;
所述处理单元302,具体用于:基于获取的错误信息,更新状态寄存器的Bit位和全局状态寄存器的Bit位。
需要说明的是,内存错误处理装置300中各模块/单元之间的信息交互、执行过程等内容,与本申请中图3A对应的方法实施例基于同一构思,具体内容可参见本申请前述所示的方法实施例中的叙述,此处不再赘述。
本申请实施例还提供了一种包含指令的计算机程序产品。所述计算机程序产品可以是包含指令的,能够运行在计算设备上或被储存在任何可用介质中的软件或程序产品。当所述计算机程序产品在至少一个计算机设备上运行时,使得至少一个计算机设备执行如前述图3A所示实施例描述的方法。
本申请实施例还提供了一种计算机可读存储介质。所述计算机可读存储介质可以是计算设备能够存储的任何可用介质或者是包含一个或多个可用介质的数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘)等。该计算机可读存储介质包括指令,所述指令指示计算设备执行上述应用于执行如前述图3A所示实施例描述的方法。
本申请实施例提供的远端访问装置具体可以为芯片,芯片包括:处理单元和通信单元,所述处理单元例如可以是处理器,所述通信单元例如可以是输入/输出接口、管脚或电路等。该处理单元可执行存储单元存储的计算机执行指令,以使芯片执行上述图3A所示实施例描述的方法。可选地,所述存储单元为所述芯片内的存储单元,如寄存器、缓存等,所述存储单元还可以是所述无线接入设备端内的位于所述芯片外部的存储单元,如只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)等。
所另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本申请提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本申请而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、U盘、移动硬盘、ROM、RAM、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,训练设备,或者网络设备等)执行本申请各个实施例所述的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、训练设备或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、训练设备或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的训练设备、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。

Claims (10)

1.一种内存错误的处理方法,其特征在于,包括:
获取目标内存页对应的错误对象;其中,所述错误对象用于指示所述目标内存页的错误类型;
在所述错误对象包括第一错误指示信息的情况下,将所述第一错误指示信息修改为第二错误指示信息;其中,所述第一错误指示信息用于指示目标内存页发生选择处理SRAO错误,且所述SRAO错误包括处理器上下文错误PCC;所述第二错误指示信息用于指示所述目标内存页发生SRAO错误,且所述SRAO错误不包括PCC;
根据所述第二错误指示信息对所述目标内存页进行隔离。
2.根据权利要求1所述的方法,其特征在于,所述第一错误指示信息包括描述所述SRAO错误包括PCC的第一指示字;所述第二错误指示信息包括描述所述SRAO错误不包括PCC的第二指示字;第一指示字与所述第二指示字不同。
3.根据权利要求2所述的方法,其特征在于,所述第一指示字为1;所述第二指示字为0。
4.根据权利要求2或3所述的方法,其特征在于,所述将所述第一错误指示信息修改为第二错误指示信息,包括:
将所述第一错误指示信息中的第一指示字修改为第二指示字,生成第二错误指示信息。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述获取目标内存页对应的错误对象之后,所述方法还包括:
将所述错误对象与所述第一错误信息进行匹配,确定所述错误对象是否包括所述第一错误指示信息。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述获取目标内存页对应的错误对象,包括:获取错误寄存器存储的错误信息;
基于将所述错误寄存器存储的错误信息生成目标内存页对应的错误对象。
7.根据权利要求6所述的方法,其特征在于,所述获取所述错误寄存器存储的错误信息之前,所述方法还包括:
触发所述内存控制器检测所述目标内存页的错误信息,
将所述错误信息写入所述错误寄存器。
8.根据权利要求6所述的方法,其特征在于,所述获取所述错误寄存器存储的错误信息之前,所述方法还包括:
检测所述目标内存页的错误信息,
将所述错误信息写入所述错误寄存器。
9.根据权利要求7或8所述的方法,其特征在于,所述错误寄存器包括状态寄存器和全局状态寄存器;
所述将所述错误信息写入所述错误寄存器,包括:
基于获取的所述错误信息,更新状态寄存器的Bit位和全局状态寄存器的Bit位。
10.一种计算机设备,其特征在于,包括处理器和存储器,其中,所述处理器与所述存储器耦合;
所述存储器,用于存储程序指令;
所述处理器,用于执行所述程序指令,使得所述计算机设备执行如权利要求1至9中任一项所述的方法。
CN202310332958.XA 2023-03-30 2023-03-30 一种内存错误的处理方法及计算设备 Pending CN116382958A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310332958.XA CN116382958A (zh) 2023-03-30 2023-03-30 一种内存错误的处理方法及计算设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310332958.XA CN116382958A (zh) 2023-03-30 2023-03-30 一种内存错误的处理方法及计算设备

Publications (1)

Publication Number Publication Date
CN116382958A true CN116382958A (zh) 2023-07-04

Family

ID=86960993

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310332958.XA Pending CN116382958A (zh) 2023-03-30 2023-03-30 一种内存错误的处理方法及计算设备

Country Status (1)

Country Link
CN (1) CN116382958A (zh)

Similar Documents

Publication Publication Date Title
US5267242A (en) Method and apparatus for substituting spare memory chip for malfunctioning memory chip with scrubbing
US7698594B2 (en) Reconfigurable processor and reconfiguration method executed by the reconfigurable processor
JP3761614B2 (ja) キャッシュ・メモリ付きコンピュータ装置
US7945815B2 (en) System and method for managing memory errors in an information handling system
US10614905B2 (en) System for testing memory and method thereof
US10891185B2 (en) Error counters on a memory device
US20030037280A1 (en) Computer memory error management system and method
US8650437B2 (en) Computer system and method of protection for the system's marking store
US10062451B2 (en) Background memory test apparatus and methods
US8812915B2 (en) Determining whether a right to use memory modules in a reliability mode has been acquired
CN109785893B (zh) 用于验证存储器适当操作的错误纠正码校验位的冗余存储
EP3033680A1 (en) Memory migration in presence of live memory traffic
WO2003098439A2 (en) Method and apparatus for providing error correction within a register file of a cpu
CN112181712B (zh) 一种提高处理器核可靠性的方法及装置
US6898738B2 (en) High integrity cache directory
US20110320919A1 (en) High performance cache directory error correction code
CN116382958A (zh) 一种内存错误的处理方法及计算设备
US8151176B2 (en) CPU instruction RAM parity error procedure
US11182231B2 (en) Host system and computing system including the host system
JP2005149503A (ja) Dmaを使用してメモリをテストするためのシステムおよび方法
US7360132B1 (en) System and method for memory chip kill
US4815025A (en) Arrangement for supervising a data processing system
JP4131928B2 (ja) データ記憶制御方法および装置
CN117687833A (zh) 测试数据安全的方法、装置及存储介质
CN118113350A (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