首页> 中国专利> 一种基于封装后修复技术的内存修复方法及相关组件

一种基于封装后修复技术的内存修复方法及相关组件

摘要

本申请公开了一种基于封装后修复技术的内存修复方法、装置、设备及存储介质。该方法包括:当目标服务器启动后,在PEI阶段读取目标地址存储的历史错误信息,和所述历史错误信息对应的目标内存单元的修复标志位;根据所述历史错误信息和所述修复标志位,对相应的目标内存单元进行内存修复,然后更新所述目标内存单元对应的修复标志位;在系统运行阶段,按照所述目标地址的顺序依次存储实时产生的包含错误类型的错误信息;其中,所述错误类型包括不可纠正类错误和可纠正类错误;在所述目标地址存满后,将新接收到的不可纠正类错误替换掉已存储的可纠正类错误。提高了封装后修复技术对故障内存修复的实用性,优化了封装后修复技术的内存修复功能。

著录项

  • 公开/公告号CN113282434A

    专利类型发明专利

  • 公开/公告日2021-08-20

    原文格式PDF

  • 申请/专利权人 苏州浪潮智能科技有限公司;

    申请/专利号CN202110811947.0

  • 发明设计人 陈思彤;罗鹏芳;

    申请日2021-07-19

  • 分类号G06F11/07(20060101);

  • 代理机构11227 北京集佳知识产权代理有限公司;

  • 代理人丁曼曼

  • 地址 215100 江苏省苏州市吴中区吴中经济开发区郭巷街道官浦路1号9幢

  • 入库时间 2023-06-19 12:18:04

说明书

技术领域

本发明涉及计算机领域,特别涉及一种基于封装后修复技术的内存修复方法、装置、设备及存储介质。

背景技术

封装后修复(Post Package Repair,PPR)技术作为LPDDR4内存标准,目前市场上基本所有主流内存厂商均支持此功能。在Intel x86平台,支持在基本输入输出系统(BasicInput Output System,BIOS)配置菜单中设置PPR类型为hPPR(hard PPR)或者为sPPR(softPPR),区别在于是否更改Fuse(Filesystem in Userspace,用户空间文件系统)而变成永久性的替换,hPPR提供的是永久性替换,而sPPR提供的是当次开机生效,在实际使用过程中,为了保证系统稳定与数据完整性,大多采取的都是hPPR,即在BIOS启动阶段,由BIOS中MRC代码(Memory Reference Code,内存参照代码)实现内存中的冗余行空间替换故障行空间。DDR4内存协议规定每一个Bank group至少支持一个Row(行)的替换空间,根据各内存厂商设计不同,内存所预留的冗余空间也不同,目前绝大多数厂商可以做到一个Bank group支持一个Row的替换空间。目前,Intel PPR技术仅提供了示例代码,实现了PPR对故障内存修复的基本功能,并未完全覆盖客户实际使用场景,实际使用时效果较差,因此,完善PPR对故障内存修复的功能,提高PPR技术对故障内存修复的实用性是目前亟需解决的问题。

发明内容

有鉴于此,本发明的目的在于提供一种基于封装后修复技术的内存修复方法、装置、设备及介质,提高了封装后修复技术对故障内存修复的实用性,优化了基于封装后修复技术的内存修复功能。其具体方案如下:

第一方面,本申请公开了一种基于封装后修复技术的内存修复方法,包括:

当目标服务器启动后,在PEI阶段读取目标地址存储的历史错误信息,和所述历史错误信息对应的目标内存单元的修复标志位;

根据所述历史错误信息和所述修复标志位,对相应的目标内存单元进行内存修复,然后更新所述目标内存单元对应的修复标志位;

在系统运行阶段,按照所述目标地址的顺序依次存储实时产生的包含错误类型的错误信息;其中,所述错误类型包括不可纠正类错误和可纠正类错误;

在所述目标地址存满后,将新接收到的不可纠正类错误替换掉已存储的可纠正类错误。

可选的,所述根据所述历史错误信息和所述修复标志位,对相应的目标内存单元进行内存修复之前,还包括:

将所述历史错误信息对应的当前内存配置信息,与本地存储的上次开机的内存配置信息进行匹配;

若不匹配,则不对相应的目标内存单元进行内存修复,并更新所述目标内存单元对应的修复标志位。

可选的,所述更新所述目标内存单元对应的修复标志位,包括:

通过预设移交数据区块,在所述PEI阶段存储所述修复标志位对应的更新变量;

将所述更新变量传递至驱动程序执行环境阶段,以便在所述驱动程序执行环境阶段将所述更新变量赋值给对应的修复标志位。

可选的,所述系统运行阶段启动之前,还包括:

检查主板中每个内存的产品序列号,并将检查到的更新的产品序列号保存至本地,得到内存配置信息。。

可选的,所述对相应的目标内存单元进行内存修复之后,还包括:

将修复结果发送给基板管理控制器;其中,所述修复结果包括修复成功或修复失败,以及对应的错误地址日志和错误类型;

其中,所述错误地址日志包括设备地址和行地址。

可选的,所述通过所述目标地址顺序存储实时产生的包含错误类型的错误信息之后,还包括:

将所述错误信息发送给所述基板管理控制器,以便在所述目标服务器关机后,根据所述修复结果和所述错误信息对相应的故障内存进行更新和配置。

可选的,所述将新接收到的不可纠正类错误替换掉已存储的可纠正类错误之后,还包括:

当所述目标地址存储的均为所述不可纠正类错误时,不再存储新接收到的不可纠正类错误。

可选的,所述对相应的目标内存单元进行内存修复之后,还包括:

根据修复结果筛选出修复失败的目标内存单元,并根据可配置内存级别将相应级别的内存单元的使用权限设置为禁用状态,以便禁用所述目标内存单元。

可选的,所述目标内存单元为Rank或Bank group。

第二方面,本申请公开了一种基于封装后修复技术的内存修复装置,包括:

变量读取模块,用于当目标服务器启动后,在PEI阶段读取目标地址存储的历史错误信息,和所述历史错误信息对应的目标内存单元的修复标志位;

内存修复模块,用于根据所述历史错误信息和所述修复标志位,对相应的目标内存单元进行内存修复,然后更新所述目标内存单元对应的修复标志位;

错误信息存储模块,用于在系统运行阶段,按照所述目标地址的顺序依次存储实时产生的包含错误类型的错误信息;其中,所述错误类型包括不可纠正类错误和可纠正类错误;

信息替换模块,用于在所述目标地址存满后,将新接收到的不可纠正类错误替换掉已存储的可纠正类错误。

可选的,所述基于封装后修复技术的内存修复装置,还包括:

内存信息匹配模块,用于将所述历史错误信息对应的当前内存配置信息,与本地存储器存储的上次开机的内存配置信息进行匹配;

修复标志位设置单元,用于若内存配置信息不匹配,则不对相应的目标内存单元进行内存修复,并更新所述目标内存单元对应的修复标志位。

第三方面,本申请公开了一种电子设备,包括:

存储器,用于保存计算机程序;

处理器,用于执行所述计算机程序,以实现前述的基于封装后修复技术的内存修复方法。

第四方面,本申请公开了一种计算机可读存储介质,用于存储计算机程序;其中计算机程序被处理器执行时实现前述的基于封装后修复技术的内存修复方法。

本申请中,当目标服务器启动后,在PEI阶段读取目标地址存储的历史错误信息,和所述历史错误信息对应的目标内存单元的修复标志位;根据所述历史错误信息和所述修复标志位,对相应的目标内存单元进行内存修复,然后更新所述目标内存单元对应的修复标志位;在系统运行阶段,按照所述目标地址的顺序依次存储实时产生的包含错误类型的错误信息;其中,所述错误类型包括不可纠正类错误和可纠正类错误;在所述目标地址存满后,将新接收到的不可纠正类错误替换掉已存储的可纠正类错误。可见,通过以目标内存单元为单位添加修复标志位,对执行过修复的目标内存单元更新修复标志位,在下一次开机时通过判断修复标志位,选择执行内存修复流程,避免了因PPR资源不足导致的修复失败;同时,在系统运行阶段,当用于存储错误信息的目标地址存满后,根据错误的类型支持将新接收到的不可纠正类错误替换掉以存储的可纠正类错误,由此一来,可以优先处理不可纠正类错误,提高了封装后修复技术对故障内存修复的实用性,优化了基于封装后修复技术的内存修复功能。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请提供的一种基于封装后修复技术的内存修复方法流程图;

图2为本申请提供的一种具体的基于封装后修复技术的内存修复方法流程图;

图3为本申请提供的一种具体的错误信息数据表;

图4为本申请提供的一种具体的基于封装后修复技术的内存修复方法流程图;

图5为本申请提供的一种基于封装后修复技术的内存修复装置结构示意图;

图6为本申请提供的一种电子设备结构图。

具体实施方式

现有技术中,Intel PPR技术仅提供了示例代码,实现了PPR对故障内存修复的基本功能,并未完全覆盖客户实际使用场景,实际使用时效果较差,因此,完善PPR对故障内存修复的功能,提高PPR技术对故障内存修复的实用性是目前亟需解决的问题。为克服上述技术问题,本申请提出一种基于装后修复技术的内存修复方法,可以提高封装后修复技术对故障内存修复的实用性,提高基于封装后修复技术的内存修复功能。

本申请实施例公开了一种基于封装后修复技术的内存修复方法,参见图1所示,该方法可以包括以下步骤:

步骤S11:当目标服务器启动后,在PEI阶段读取目标地址存储的历史错误信息,和所述历史错误信息对应的目标内存单元的修复标志位。

本实施例中,当目标服务器启动后,在基本输入输出系统的PEI(Pre-efiinitialization,预先EFI初始化)阶段(EFI,Extensible Firmware Interface,可扩展固件接口),读取目标地址存储的历史错误信息,和上述历史错误信息记录的目标内存单元的修复标志位。可以理解的是,上述历史错误信息为上一次关机前存储的错误信息,其中,上述历史错误信息包括错误地址信息和错误类型信息。

步骤S12:根据所述历史错误信息和所述修复标志位,对相应的目标内存单元进行内存修复,然后更新所述目标内存单元对应的修复标志位。

本实施例中,根据上述历史错误信息和修复标志位,对相应的目标内存单元进行内存修复,然后更新该目标内存单元对应的针对PPR的修复标志位;可以理解的是,现有技术中DDR4内存未预留可读取PPR冗余可用资源的寄存器,所以当PPR错误地址变量存在,但实则无PPR资源可用时,BIOS代码并未设置任何判断机制,仍会执行PPR修复流程,并会出现修复失败的情况,影响系统性能、机器启动速度与客户使用感受。本实施例中,上述内存修复即为hPPR修复,通过Row替换空间进行Row修复。

本实施例中,所述目标内存单元可以为Rank或Bank group。可以理解的是,一个Rank中可以包含相应数量的Bank group,即一个Rank中包含多个Bank,而相应数量的Bank组成一个Bank group。并且,DDR行业标准规定,每一个Bank group至少支持一个Row(行)的替换空间,即4个Bank支持一个Row的修复能力,因此,本实施例中以Rank或Bank group为目标内存单元,并为其设置修复标志位,以便在Rank或Bank group存在错误时进行Row修复。

具体实现可以通过BIOS Setup增加选项供用户选择,即配置Rank或Bank group级别的限制条件,当用户选择限制级别后,在启动阶段,根据该限制级别,对修复内存地址设置不同级别的标志位。例如,设置为Rank级别,具体可以通过在BIOS代码中定义PPR的修复标志位变量,每一个Rank对应一个比特位,若比特位为1,代表此Rank已执行过单次的PPR修复流程,不再支持hPPR修复,0代表仍持有PPR冗余资源,支持后续的hPPR流程。由此,避免因资源不足导致的修复失败。或者,设置为Bank group级别,具体可以通过在BIOS代码中增加对Bank group级别的修复标志位,若当次开机该Bank group下的Bank有进行PPR修复,则设置该Bank group的标志位,下次开机本Rank内的其他Bank group有出现内存Ecc,还是可以继续修复的,也就是Rank内所有的Bank group在需要修复时都可以进行一次修复,相较于上述以Rank为修复单元的方式,以Bank group为Row修复单元可以增加修复的细度,让冗余资源更充分利用,提高了内存修复的能力。

可以理解的是,若目标地址中存在错误信息变量,在MRC代码阶段,开启hPPR修复流程,并在修复前首先会对上述修复标志位进行判断,若修复标志位置起,则代表此目标内存单元之前已执行过hPPR流程,则跳过此次PPR修复流程;若修复标志位未置起,代表此目标内存单元为首次修复,在完成PPR修复后,无论成功与否,均设置此目标内存单元关联的PPR修复标志位,以便下次开机不再对此目标内存单元执行PPR修复,避免资源不足导致的修复失败。

本实施例中,所述对相应的目标内存单元进行内存修复之后,还可以包括:根据修复结果筛选出修复失败的目标内存单元,并根据可配置内存级别将相应级别的内存单元的使用权限设置为禁用状态,以便禁用所述目标内存单元。为保证用户使用的内存单元为正常可靠的内存单元,在对进行内存修复之后可以据可配置内存级别将相应级别的内存单元的使用权限设置为禁用状态,以便禁用上述目标内存单元。可以理解的是,由于DDR对使用权限设置的级别限制,在根据修复结果筛选出修复失败的目标内存单元后,若上述目标内存单元为Rank,则将上述修复失败的目标内存单元的使用权限设置为禁用状态,即直接禁用该Rank;若上述目标内存单元为Bank group,则将上述修复失败的目标内存单元所在的Rank的使用权限设置为禁用状态,即禁用该Bank group所在的Rank。

步骤S13:在系统运行阶段,按照所述目标地址的顺序依次存储实时产生的包含错误类型的错误信息;其中,所述错误类型包括不可纠正类错误和可纠正类错误。

本实施例中,在系统运行阶段,将实时产生的错误信息和对应的错误类型顺序依次存储到上述目标地址中;其中,上述错误类型包括不可纠正类错误(CE,CorrectedError)和可纠正类错误(UCE,Uncorrected Error)。可以理解的是,在系统运行阶段,若CE/UCE触发,BIOS会搜集错误位置信息,写入上述目标地址,并记录错误的类型,即不可纠正类错误或可纠正类错误。

步骤S14:在所述目标地址存满后,将新接收到的不可纠正类错误替换掉已存储的可纠正类错误。

本实施例中,在上述目标地址存满后,将新接收到的不可纠正类错误覆盖掉已存储的可纠正类错误。可以理解的是,由于Intel只默认存储20个错误地址变量,因此当存储满后,将不会再存储新的错误,但由于不可纠正类错误硬件无法纠正,因此所以对于不可纠正类错误,PPR处理的优先级应高于可纠正类错误,因此,本实施例通过在存储的错误信息中添加错误类型,在目标地址存满后,将新接收到的不可纠正类错误替换掉已存储的可纠正类错误,实现了不可纠正类错误的优先处理。

本实施例中,所述将新接收到的不可纠正类错误替换掉已存储的可纠正类错误之后,还可以包括:当所述目标地址存储的均为所述不可纠正类错误时,不再存储新接收到的不可纠正类错误。可以理解的是,在系统启动阶段,通常最先出现的不可纠正类错误为最主要最突出的问题,后续的错误很可能关联于先出现的不可纠正类错误,因此,当不可纠正类错误存满目标地址,即目标地址内存储的全部都是不可纠正类错误时,面对新接收到的不可纠正类错误不再执行替换存储,而是保留当前目标地址内存储的不可纠正类错误。

本实施例中,当目标服务器启动后,在PEI阶段读取目标地址存储的历史错误信息,和所述历史错误信息对应的目标内存单元的修复标志位;根据所述历史错误信息和所述修复标志位,对相应的目标内存单元进行内存修复,然后更新所述目标内存单元对应的修复标志位;在系统运行阶段,按照所述目标地址的顺序依次存储实时产生的包含错误类型的错误信息;其中,所述错误类型包括不可纠正类错误和可纠正类错误;在所述目标地址存满后,将新接收到的不可纠正类错误替换掉已存储的可纠正类错误。可见,通过以目标内存单元为单位添加修复标志位,对执行过修复的目标内存单元更新修复标志位,在下一次开机时通过判断修复标志位,选择执行内存修复流程,避免了因PPR资源不足导致的修复失败;同时,在系统运行阶段,当用于存储错误信息的目标地址存满后,根据错误的类型支持将新接收到的不可纠正类错误替换掉以存储的可纠正类错误,由此一来,可以优先处理不可纠正类错误,提高了封装后修复技术对故障内存修复的实用性,优化了基于封装后修复技术的内存修复功能。

本申请实施例公开了一种具体的基于封装后修复技术的内存修复方法,参见图2所示,该方法可以包括以下步骤:

步骤S21:当目标服务器启动后,在PEI阶段读取目标地址存储的历史错误信息,和所述历史错误信息对应的目标内存单元的修复标志位。

步骤S22:将所述历史错误信息对应的当前内存配置信息,与本地存储的上次开机的内存配置信息进行匹配。

本实施例中,在得到上述历史错误信息后,将上述历史错误信息对应的当前内存配置信息与本地存储的上次开机的内存配置信息进行匹配,可以理解的是,本地存储的上次开机的内存配置信息,是上次设备运行时在系统运行阶段启动之前,通过检查主板中每个内存的产品序列号(SN,Serial Number),并存储到本地得到内存配置信息,并且可以将上述内存配置信息存储到本地的NVRAM(Non-Volatile Random Access Memory)存储器中,NVRAM存储器是一种非易失性随机访问存储器,指断电后仍能保持数据的一种RAM存储器;上述历史错误信息对应的当前内存配置信息,为上次设备在系统运行阶段存储的错误信息的地址,对应到当前内存的内存产品序列号。通过对别当前内存的产品序列号与本地存储的上次开机时内存的产品序列号,可以确定出内存是否被更换。具体的,例如图3所示,若从目标地址读取到历史错误信息,则根据历史错误信息读取对应的当前内存序列号,与本地存储的上次开机的内存配置信息进行匹配。

步骤S23:若不匹配,则不对相应的目标内存单元进行内存修复,并更新所述目标内存单元对应的修复标志位。

本实施例中,若当前读取的历史错误信息对应的当前内存配置信息,与本地存储的上次开机的内存配置信息不匹配,则可以表明当前历史错误信息对应的内存被更换,即此时的内存不再需要进行内存修复,于是选择不对相应的目标内存单元进行内存修复,由此,避免对更新后没有故障的内存执行不必要的修复操作;然后,更新上述目标内存单元对应的修复标志位,即通过修改上述目标内存单元对应的修复标志位的变量,以表征上述目标内存单元未执行过PPR修复流程。

步骤S24:根据所述历史错误信息和所述修复标志位,对相应的目标内存单元进行内存修复,然后更新所述目标内存单元对应的修复标志位。

本实施例中,所述更新所述目标内存单元对应的修复标志位,可以包括:通过预设移交数据区块(HOB,Hand-off Blocks),在所述PEI阶段存储所述修复标志位对应的更新变量;将所述更新变量传递至驱动程序执行环境(DXE,Driver execution environment)阶段,即初始化服务器上硬件驱动的执行环境阶段,以便在所述驱动程序执行环境阶段将所述更新变量赋值给对应的修复标志位。其中,上述HOB列表用于将BIOS需要的数据信息从PEI阶段传递到DXE阶段,并且,PEI阶段生成HOB,DXE阶段消费HOB,HOB只有在PEI阶段是可修改的,在DXE阶段为只读。可以理解的是,因为内存初始化与PPR修复流程是在PEI阶段进行的,但在PEI阶段仅支持获取变量值,无法对变量进行赋值操作,因此暂将修复标志位的更新变量存于PEI阶段的结构体局部变量Host中,支持在MRC代码阶段进行传递运算,通过HOB传递至DXE阶段后,再将更新变量写入对应的修复标志位。具体的,可以将修复标志位更新变量写入HOB列表,在DXE阶段从HOB获取更新变量,并写入NVRAM空间的修复标志位。

步骤S25:将修复结果发送给基板管理控制器;其中,所述修复结果包括修复成功或修复失败,以及对应的错误地址日志和错误类型;其中,所述错误地址日志包括设备地址和行地址。

本实施例中,对相应的目标内存单元进行修复后,将修复结果发送给基板管理控制器,其中,上述修复结果包括修复成果或修复失败,以及修复成果/修复失败对应的错误地址日志和错误类型,上述错误类型包括可纠正类错误和不可纠正类错误,上述错误地址日志包括设备(Device)地址和行(Row)地址。上述修复结果数据表具体可以如图4所示,即在修复流程完成后,发送修复成功/失败结果至BMC,同时也要将目标地址中错误信息包含的错误地址日志和错误类型,发送至BMC,发送错误地址颗粒度需要细化到具体Device和Row地址,方便后续厂商对内存故障定位分析。例如图3所示,上述更新所述目标内存单元对应的修复标志位,并向基板管理控制器发送修复信息后,还需要清除上述目标地址中的错误信息变量,由此,便于设备后续在本次系统运行阶段存储错误信息。

步骤S26:在系统运行阶段,按照所述目标地址的顺序依次存储实时产生的包含错误类型的错误信息;其中,所述错误类型包括不可纠正类错误和可纠正类错误。

本实施例中,所述系统运行阶段启动之前,还可以包括:检查主板中每个内存的产品序列号,并将检查到的更新的产品序列号保存至本地,得到内存配置信息。即检查主板上各内存的SN,例如Byte325~328,是否一致,若不一致,则更新内存SN存入内存配置信息变量,若有新插入内存,则为新内存新建变量,上述内存配置信息存储到本地的NVRAM存储器中。以便在下一次开机时,利用本地存储的内存配置信息执行步骤S22的过程。

步骤S27:将所述错误信息发送给所述基板管理控制器,以便在所述目标服务器关机后,根据所述修复结果和所述错误信息对相应的故障内存进行更新和配置。

本实施例中,运行阶段结束后,将运行阶段的错误信息发送基板管理控制器,例如图3所示,以便再服务器关机后,运维人员通过读取基板管理控制器的日志记录情况对故障内存进行更换与重新配置,然后,再开机或重启上述目标设备。

本实施例可用于服务器、笔记本电脑和存储等计算机系统中,且在Eagle Stream平台以及Purley平台也具有方案兼容性。

其中,关于上述步骤S21、步骤S24、步骤S26的具体过程可以参考前述实施例公开的相应内容,在此不再进行赘述。

由上可见,本实施例中通过将历史错误信息对应的当前内存配置信息,与本地存储的上次开机的内存配置信息进行匹配,避免对更新后没有故障的内存执行不必要的修复操作;并且,在错误信息中增加了表征错误类型的变量,以及变量替换机制,以便根据错误类型优先存储不可修复类错误,并下次开机启动过程将错误类型也可传递至基板管理控制器管理端口;最后,将运行阶段的错误信息发送基板管理控制器,运维人员根据基板管理控制器日志记录情况对故障内存进行更换与重新配置。本实施例修复了Intel PPR技术目前存在的不足点,创建了完善的PPR处理流程,增加了对PPR资源的执行判断机制,并支持向管理端口推送PPR修复的具体信息,提升了后端对内存故障运维的效率,可作为内存RAS(Reliability、Availability、Serviceability,可靠性、可用性、可维护性)新增特性在业界进行广泛应用。

相应的,本申请实施例还公开了一种基于封装后修复技术的内存修复装置,参见图5所示,该装置包括:

变量读取模块11,用于当目标服务器启动后,在PEI阶段读取目标地址存储的历史错误信息,和所述历史错误信息对应的目标内存单元的修复标志位;

内存修复模块12,用于根据所述历史错误信息和所述修复标志位,对相应的目标内存单元进行内存修复,然后更新所述目标内存单元对应的修复标志位;

错误信息存储模块13,用于在系统运行阶段,按照所述目标地址的顺序依次存储实时产生的包含错误类型的错误信息;其中,所述错误类型包括不可纠正类错误和可纠正类错误;

信息替换模块14,用于在所述目标地址存满后,将新接收到的不可纠正类错误替换掉已存储的可纠正类错误。

由上可见,本实施例中当目标服务器启动后,在PEI阶段读取目标地址存储的历史错误信息,和所述历史错误信息对应的目标内存单元的修复标志位;根据所述历史错误信息和所述修复标志位,对相应的目标内存单元进行内存修复,然后更新所述目标内存单元对应的修复标志位;在系统运行阶段,按照所述目标地址的顺序依次存储实时产生的包含错误类型的错误信息;其中,所述错误类型包括不可纠正类错误和可纠正类错误;在所述目标地址存满后,将新接收到的不可纠正类错误替换掉已存储的可纠正类错误。可见,通过以目标内存单元为单位添加修复标志位,对执行过修复的目标内存单元更新修复标志位,在下一次开机时通过判断修复标志位,选择执行内存修复流程,避免了因PPR资源不足导致的修复失败;同时,在系统运行阶段,当用于存储错误信息的目标地址存满后,根据错误的类型支持将新接收到的不可纠正类错误替换掉以存储的可纠正类错误,由此一来,可以优先处理不可纠正类错误,提高了封装后修复技术对故障内存修复的实用性,优化了基于封装后修复技术的内存修复功能。

在一些具体实施例中,所述基于封装后修复技术的内存修复装置,还可以包括:

内存信息匹配模块,用于将所述历史错误信息对应的当前内存配置信息,与本地存储器存储的上次开机的内存配置信息进行匹配;

修复标志位设置单元,用于若内存配置信息不匹配,则不对相应的目标内存单元进行内存修复,并更新所述目标内存单元对应的修复标志位。

在一些具体实施例中,所述修复标志位设置单元具体可以包括:

变量存储单元,用于通过预设移交数据区块,在所述PEI阶段存储所述修复标志位对应的更新变量;

变量赋值单元,用于将所述更新变量传递至驱动程序执行环境阶段,以便在所述驱动程序执行环境阶段将所述更新变量赋值给对应的修复标志位。

在一些具体实施例中,所述基于封装后修复技术的内存修复装置,还可以包括:

序列号检查存储单元,用于检查主板中每个内存的产品序列号,并将检查到的更新的产品序列号保存至本地,得到内存配置信息。。

在一些具体实施例中,所述基于封装后修复技术的内存修复装置,还可以包括:

第一发送单元,用于将修复结果发送给基板管理控制器;其中,所述修复结果包括修复成功或修复失败,以及对应的错误地址日志和错误类型;其中,所述错误地址日志包括设备地址和行地址;

第二发送单元,用于将所述错误信息发送给所述基板管理控制器,以便在所述目标服务器关机后,根据所述修复结果和所述错误信息对相应的故障内存进行更新和配置。

在一些具体实施例中,所述基于封装后修复技术的内存修复装置,还可以包括:

停止存储单元,用于当所述目标地址存储的均为所述不可纠正类错误时,不再存储新接收到的不可纠正类错误。

在一些具体实施例中,所述基于封装后修复技术的内存修复装置,还可以包括:

禁用单元,用于根据修复结果筛选出修复失败的目标内存单元,并根据可配置内存级别将相应级别的内存单元的使用权限设置为禁用状态,以便禁用所述目标内存单元。

在一些具体实施例中,所述目标内存单元可以为Rank或Bank group。

进一步的,本申请实施例还公开了一种电子设备,参见图6所示,图中的内容不能被认为是对本申请的使用范围的任何限制。

图6为本申请实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的基于封装后修复技术的内存修复方法中的相关步骤。

本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。

另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统221、计算机程序222及包括历史错误信息在内的数据223等,存储方式可以是短暂存储或者永久存储。

其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,以实现处理器21对存储器22中海量数据223的运算与处理,其可以是Windows Server、Netware、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的基于封装后修复技术的内存修复方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。

进一步的,本申请实施例还公开了一种计算机存储介质,所述计算机存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现前述任一实施例公开的基于封装后修复技术的内存修复方法步骤。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上对本发明所提供的一种基于封装后修复技术的内存修复方法、装置、设备及介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号