CN115729742A - 一种错误处理方法、装置、电子设备及存储介质 - Google Patents

一种错误处理方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN115729742A
CN115729742A CN202211500201.9A CN202211500201A CN115729742A CN 115729742 A CN115729742 A CN 115729742A CN 202211500201 A CN202211500201 A CN 202211500201A CN 115729742 A CN115729742 A CN 115729742A
Authority
CN
China
Prior art keywords
preset
processing
error
target
operating system
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
CN202211500201.9A
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.)
Nettrix Information Industry Beijing Co Ltd
Original Assignee
Nettrix Information Industry Beijing 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 Nettrix Information Industry Beijing Co Ltd filed Critical Nettrix Information Industry Beijing Co Ltd
Priority to CN202211500201.9A priority Critical patent/CN115729742A/zh
Publication of CN115729742A publication Critical patent/CN115729742A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种错误处理方法、装置、电子设备及存储介质。该方法包括:若处于操作系统的加载阶段及后续阶段,且目标PCIe设备中产生的可纠正错误的数量满足第一预设阈值,则触发系统控制中断,以执行预设关联方法;将预设关联方法对应的目标标识符返回至操作系统的高级配置和电源管理接口ACPI子系统,并通过ACPI子系统根据目标标识符从预设ACPI表中确定平台运行机制处理函数位置;通过平台运行机制处理函数处理可纠正错误。通过运行本发明实施例所提供的技术方案,可以解决处理可纠正错误时触发系统管理中断后引起的影响设备系统运行、系统性能降低甚至崩溃等问题,提升了目标PCIe设备作业的流畅度,提高目标PCIe设备运行的效率。

Description

一种错误处理方法、装置、电子设备及存储介质
技术领域
本发明涉及计算机技术,尤其涉及一种错误处理方法、装置、电子设备及存储介质。
背景技术
PCIe(peripheral component interconnect express,高速串行计算机扩展总线标准)设备的可纠正错误(Correctable Error,CE)是PCIe设备运行时常见的报错类型,因此需要对可纠正错误进行相应处理。
现有技术中,当PCIe设备出现可纠正错误时,通常会触发系统管理中断(SystemManagement Interrupt,SMI),此时PCIe设备系统的处理器中的全部线程都会响应该系统管理中断,因此若频繁出现可纠正错误则会导致频繁触发系统管理中断,影响系统的运行。
并且系统管理中断处理程序所在的内存空间SMRAM,仅可由BIOS(Basic InputOutput System,基本输入输出系统)进行访问,因此频繁触发系统管理中断则会导致频繁通过BIOS访问SMRAM,可能致使系统性能降低甚至崩溃。
发明内容
本发明提供一种错误处理方法、装置、电子设备及存储介质,以实现提高错误处理的有效性和适用性。
根据本发明的一方面,提供了一种错误处理方法,该方法包括:
若处于操作系统的加载阶段及后续阶段,且目标PCIe设备中产生的可纠正错误的数量满足第一预设阈值,则触发系统控制中断,以执行预设关联方法;
将所述预设关联方法对应的目标标识符返回至所述操作系统的ACPI子系统,并通过所述ACPI子系统根据所述目标标识符从预设ACPI表中确定平台运行机制处理函数位置;
通过所述平台运行机制处理函数处理所述可纠正错误。
可选的,所述触发系统控制中断,以执行预设关联方法,包括:
根据预设引脚更改预设通用输入输出端口的工作状态,触发所述系统控制中断,以执行所述预设关联方法;其中,所述预设通用输入输出端口被预先配置为触发所述系统控制中断,所述预设引脚与所述预设通用输入输出端口存在连接关系,且所述预设通用输入输出端口与所述预设关联方法存在预设关联关系。
这样设置的好处在于:通过预先将预设通用输入输出端口配置为可触发系统控制中断,将预设引脚与预设通用输入输出端口建立硬件连接关系,将预设通用输入输出端口与预设关联方法建立预设关联关系,使得在产生的可纠正错误的数量满足第一预设阈值时可以直接在触发系统控制中断时执行预设关联方法,提高方法执行效率。并且通过预设引脚更改预设通用输入输出端口的工作状态,实现在处理可纠正错误时触发的中断类型为系统控制中断,从而避免触发系统管理中断后引起的影响设备系统运行等问题。
可选的,还包括:
若平台运行机制选项为开启状态,且进入所述操作系统的加载阶段,则控制处理所述可纠正错误的方式由预设系统管理中断机制调整为预设系统控制中断机制;其中,所述预设系统管理中断机制用于在所述操作系统的加载阶段之前处理所述可纠正错误。
这样设置的好处在于:若平台运行机制选项为开启状态,且进入操作系统的加载阶段,则控制处理可纠正错误的方式由预设系统管理中断机制调整为预设系统控制中断机制,以实现在处于操作系统的加载阶段之前通过预设系统管理中断机制处理可纠正错误,解决预设系统控制中断机制仅在操作系统下支持,无法覆盖操作系统的加载阶段之前的阶段的问题。并且可以通过开启预设平台运行机制选项,在进入操作系统的加载阶段时更改处理可纠正错误的方式,提高了错误处理的灵活性。
可选的,在所述通过预设系统管理中断机制处理所述可纠正错误之后,还包括:
若进入所述操作系统的加载阶段,则向预设输入输出端口写入预设数值,以触发预设系统控制中断机制,并关闭所述预设系统管理中断机制。
这样设置的好处在于:仅需向预设输入输出端口写入预设数值,即可触发预设系统控制中断机制,提高触发效率,并同时关闭预设系统管理中断机制,实现中断机制的及时切换,避免同时存在两种中断机制导致影响错误处理。
可选的,还包括:
在处于所述操作系统的加载阶段之前,获取目标静态数据,并将所述目标静态数据存储至所述预设ACPI表;其中,所述目标静态数据与所述平台运行机制处理函数关联;
相应的,所述通过所述平台运行机制处理函数处理所述可纠正错误,包括:
从所述预设ACPI表中获取所述目标静态数据,并通过所述平台运行机制处理函数根据所述目标静态数据处理所述可纠正错误。
这样设置的好处在于:提前收集并存储与平台运行机制处理函数关联的目标静态数据,在平台运行机制处理函数处理可纠正错误时可直接进行获取,无需临时收集,提高了可纠正错误的处理效率。并且将目标静态数据存储至预设ACPI表,即预设ACPI表同时存储有平台运行机制处理函数位置以及目标静态数据,从而可以在从预设ACPI表中确定平台运行机制处理函数位置的同时,获取目标静态数据,无需从不同来源获取数据,提高数据获取效率。
可选的,还包括:
在处于所述操作系统的加载阶段之前,创建配置地址驱动;
通过所述配置地址驱动将所述预设平台运行机制处理函数关联的物理地址转化为虚拟地址。
这样设置的好处在于:由于在操作系统的运行时访问的内存地址通常都是虚拟地址,因此通过提前创建配置地址驱动,将预设平台运行机制处理函数关联的物理地址转化为虚拟地址,使得后续访问内存地址时可直接进行访问,提高后续访问平台运行机制处理函数位置等地址的访问效率。
根据本发明的另一方面,提供了一种错误处理装置,该装置包括:
中断触发模块,用于若处于操作系统的加载阶段及后续阶段,且目标PCIe设备中产生的可纠正错误的数量满足第一预设阈值,则触发系统控制中断,以执行预设关联方法;
位置确定模块,用于将所述预设关联方法对应的目标标识符返回至所述操作系统的ACPI子系统,并通过所述ACPI子系统根据所述目标标识符从预设ACPI表中确定平台运行机制处理函数位置;
错误处理模块,用于通过所述平台运行机制处理函数处理所述可纠正错误。
根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的错误处理方法。
根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的错误处理方法。
本发明实施例的技术方案,通过若处于操作系统的加载阶段及后续阶段,且目标PCIe设备中产生的可纠正错误的数量满足第一预设阈值,则触发系统控制中断,避免触发系统管理中断后引起的影响设备系统运行、系统性能降低甚至崩溃等问题。由于预设关联方法与目标标识符存在对应关系,目标标识符与平台运行机制处理函数存在对应关系,可根据预设关联方法得到目标标识符后直接根据目标标识符从预设ACPI表中查询到对应的平台运行机制处理函数,从而获取该平台运行机制处理函数的位置,避免无序查找,提高了平台运行机制处理函数位置获取的准确性以及效率。通过上述方式获得的平台运行机制处理函数对可纠正错误进行处理,使得处理错误时目标PCIe设备系统为可操作可运行的状态,提升了目标PCIe设备作业的流畅度,降低系统崩溃的可能性,提高目标PCIe设备运行的效率。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
图1为本发明实施例一提供的一种错误处理方法的流程图;
图2为本发明实施例二提供的一种错误处理方法的流程图;
图3为本发明实施例三提供的一种错误处理装置的结构示意图;
图4为用来实施本发明实施例的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“目标”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例一
图1为本发明实施例一提供的一种错误处理方法的流程图,本实施例可适用于处理PCIe设备中的可纠正错误的情况,该方法可以由本发明实施例所提供的错误处理装置来执行,该装置可以由软件和/或硬件的方式实现。参见图1,本实施例提供的错误处理方法,包括:
步骤110、若处于操作系统的加载阶段及后续阶段,且目标PCIe设备中产生的可纠正错误的数量满足第一预设阈值,则触发系统控制中断,以执行预设关联方法。
其中,操作系统为目标PCIe设备的操作系统,操作系统的加载阶段,为加载操作系统的阶段,后续阶段为加载阶段之后的阶段,例如操作系统初始化阶段等。
目标PCIe设备为当前关注的PCIe设备,若产生的可纠正错误的数量满足第一预设阈值,则触发系统控制中断(System Control Interrupt,SCI),以通知操作系统。操作系统执行预设关联方法,其中,预设关联方法可以为预先在BIOS代码中写好的方法,例如为ASL(ACPI Source language,高级配置和电源管理接口源语言)Method,本实施例对此不进行限制。ASL为一种声明性语言,ASL语句用于声明ACPI的对象。
执行预设关联方法的方式可以为通过操作系统对预设关联方法进行调用,并运行。
可选的,触发系统控制中断,以执行预设关联方法,包括:
根据预设引脚更改预设通用输入输出端口的工作状态,触发系统控制中断,以执行预设关联方法。
预设通用输入输出端口被预先配置为触发系统控制中断,预设引脚与预设通用输入输出端口存在连接关系,且预设通用输入输出端口与预设关联方法存在预设关联关系。其中,通用输入输出端口(General-purpose input/output,GPIO),用于电信号在电路中的输入输出,便于通过软件控制电路部件;预设通用输入输出端口可以为支持触发的系统控制中断的任一通用输入输出端口。可以通过BIOS代码预先配置预设通用输入输出端口引脚默认触发系统控制中断。
建立预设通用输入输出端口与预设关联方法的预设关联关系,预设关联关系可以为预设通用输入输出端口与预设关联方法的一对一映射关系,可以为在ASL代码中预先为通用输入输出端口添加对应的预设关联方法,并通过设置通用输入输出端口配置寄存器,将预设关联方法与通用输入输出端口进行关联。
预设引脚(Pin)可以为处理器的Error_Pin0,预设引脚与预设通用输入输出端口存在连接关系可以为在硬件上将预设引脚的引脚连接至预设通用输入输出端口上。
由于预设引脚与预设通用输入输出端口存在连接关系,因此在目标PCIe设备中产生的可纠正错误的数量满足第一预设阈值后,可通过拉高或拉低预设引脚更改预设通用输入输出端口的电平,从而更改预设通用输入输出端口的工作状态,其中,更改工作状态为由非工作状态更改为正在工作的状态;由于预设通用输入输出端口被预先配置为触发系统控制中断,因此更改预设通用输入输出端口的工作状态后,触发系统控制中断;由于预设通用输入输出端口与预设关联方法存在预设关联关系,因此触发系统控制中断后会执行与预设通用输入输出端口存在预设关联关系的预设关联方法。
这样设置的好处在于:通过预先将预设通用输入输出端口配置为可触发系统控制中断,将预设引脚与预设通用输入输出端口建立硬件连接关系,将预设通用输入输出端口与预设关联方法建立预设关联关系,使得在产生的可纠正错误的数量满足第一预设阈值时可以直接在触发系统控制中断时执行预设关联方法,提高方法执行效率。并且通过预设引脚更改预设通用输入输出端口的工作状态,实现在处理可纠正错误时触发的中断类型为系统控制中断,从而避免触发系统管理中断后引起的影响设备系统运行等问题。
步骤120、将预设关联方法对应的目标标识符返回至操作系统的高级配置和电源管理接口ACPI子系统,并通过ACPI子系统根据目标标识符从预设ACPI表中确定平台运行机制处理函数位置。
将预设关联方法对应的目标标识符返回至操作系统的ACPI子系统,其中,预设关联方法与目标标识符的关联关系可以预先设定,目标标识符用于唯一标识平台运行机制处理函数(Handler),可以为全局唯一标识符(Globally Unique Identifier,GUID),本实施例对此不进行限制。目标标识符可以在注册平台运行机制模块时产生,其中,注册平台运行机制模块用于收集平台运行机制处理函数所需用到的信息。
ACPI(Advanced Configuration and Power Interface,高级配置与电源接口)子系统为操作系统的子系统,ACPI子系统提供了操作系统和系统固件之间的电源管理和系统配置接口,建立了一个硬件寄存器集来定义电源状态,例如睡眠、休眠、唤醒等,无需直接从操作系统本地调用固件。
ACPI子系统根据目标标识符从预设ACPI表中确定平台运行机制处理函数位置,其中,预设ACPI表可以为预先设置的平台运行机制(Platform Runtime Mechanism,PRM)ACPI表,PRM ACPI表用于在固件和操作系统之间传递PRM信息。
预设ACPI表中预先存储有平台运行机制处理函数的位置,从而根据目标标识符可直接从预设ACPI表中查询到对应的平台运行机制处理函数,从而直接获取该平台运行机制处理函数的位置。
步骤130、通过平台运行机制处理函数处理可纠正错误。
平台运行机制处理函数为预设的可处理可纠正错误的函数,通过平台运行机制处理函数执行相应的错误处理程序,可直接处理当前产生的全部可纠正错误。
可选的,还包括:
在处于操作系统的加载阶段之前,获取目标静态数据,并将目标静态数据存储至预设ACPI表;其中,目标静态数据与平台运行机制处理函数关联;
相应的,通过平台运行机制处理函数处理可纠正错误,包括:
从预设ACPI表中获取目标静态数据,并通过平台运行机制处理函数根据目标静态数据处理可纠正错误。
其中,静态数据为在运行过程中主要作为控制或参考用的数据,并且通常不会发生变化,目标静态数据与平台运行机制处理函数关联,为平台运行机制处理函数处理可纠正错误时需要用到的静态数据,例如为目标PCIe设备的拓扑、内存的拓扑等。
目标静态数据可以预先收集好后存储在预设ACPI表中,在通过平台运行机制处理函数处理可纠正错误时,可以将目标静态数据按照所需处理的可纠正错误进行整合,并将需要用到的目标静态数据从预设ACPI表中传递至平台运行机制处理函数,使得平台运行机制处理函数结合目标静态数据处理可纠正错误。
这样设置的好处在于:提前收集并存储与平台运行机制处理函数关联的目标静态数据,在平台运行机制处理函数处理可纠正错误时可直接进行获取,无需临时收集,提高了可纠正错误的处理效率。并且将目标静态数据存储至预设ACPI表,即预设ACPI表同时存储有平台运行机制处理函数位置以及目标静态数据,从而可以在从预设ACPI表中确定平台运行机制处理函数位置的同时,获取目标静态数据,无需从不同来源获取数据,提高数据获取效率。
本实施例所提供的技术方案,通过若处于操作系统的加载阶段及后续阶段,且目标PCIe设备中产生的可纠正错误的数量满足第一预设阈值,则触发系统控制中断,避免触发系统管理中断后引起的影响设备系统运行、系统性能降低甚至崩溃等问题。
由于预设关联方法与目标标识符存在对应关系,目标标识符与平台运行机制处理函数存在对应关系,可根据预设关联方法得到目标标识符后直接根据目标标识符从预设ACPI表中查询到对应的平台运行机制处理函数,从而获取该平台运行机制处理函数的位置,避免无序查找,提高了平台运行机制处理函数位置获取的准确性以及效率。
通过上述方式获得的平台运行机制处理函数对可纠正错误进行处理,使得处理错误时目标PCIe设备系统为可操作可运行的状态,提升了目标PCIe设备作业的流畅度,降低系统崩溃的可能性,提高目标PCIe设备运行的效率。
实施例二
图2为本发明实施例二提供的一种错误处理方法的流程图,本技术方案是针对在处于操作系统的加载阶段之前的过程进行补充说明的。与上述方案相比,本方案具体优化为,若平台运行机制选项为开启状态,且进入所述操作系统的加载阶段,则控制处理所述可纠正错误的方式由预设系统管理中断机制调整为预设系统控制中断机制;其中,所述预设系统管理中断机制用于在所述操作系统的加载阶段之前处理所述可纠正错误。具体的,错误处理方法的流程图如图2所示:
步骤210、若平台运行机制选项为开启状态,且进入操作系统的加载阶段,则控制处理可纠正错误的方式由预设系统管理中断机制调整为预设系统控制中断机制;其中,预设系统管理中断机制用于在操作系统的加载阶段之前处理可纠正错误。
其中,在处于操作系统的加载阶段之前可以为处于操作系统的启动阶段等操作系统无法使用的阶段。
预设平台运行机制选项可以为预设的用于判断是否在处于操作系统的加载阶段及后续阶段应用预设系统控制中断机制的选项,若该选项为开启状态,表明在操作系统的加载阶段之前处理可纠正错误的机制为预设系统管理中断机制,在操作系统的加载阶段及之后处理可纠正错误的机制为预设系统控制中断机制。其中,预设系统管理中断机制为当可纠正错误的数量满足第二预设阈值时,触发预设系统管理中断通知BIOS,由BIOS去调用PCIe CE的修复特性的机制。当系统出现PCIe可纠正错误时,硬件会优先触发系统管理中断,收到此中断后,目标PCIe设备系统的处理器中的全部核心、全部线程响应该系统管理中断,并将其上下文保存在系统管理中断处理程序所在的内存空间并转换到系统管理模式,以执行BIOS中的系统管理中断处理错误程序对可纠正错误进行处理。其中,第二预设阈值可以与第一预设阈值相同,也可以不同,本实施例对此不进行限制。
若平台运行机制选项为关闭状态,则在操作系统进入加载阶段后,控制处理可纠正错误的方式保持为预设系统管理中断机制,即表明在目标PCIe设备的整个启动至运行过程中均采用预设系统管理中断机制处理可纠正错误。
预设系统控制中断机制为通过触发系统控制中断处理可纠正错误的机制,即为步骤220~步骤240描述的机制。
可选的,所述控制处理所述可纠正错误的方式由预设系统管理中断机制调整为预设系统控制中断机制,包括:
向预设输入输出端口写入预设数值,以触发预设系统控制中断机制,并关闭预设系统管理中断机制。
预设输入输出(Input/Output,IO)端口,可以为端口0xB2,本实施例对此不进行限制。
可以预先在ASL代码和/或C代码中定义软件系统管理中断数值X,并将软件系统管理中断数值X与预设输入输出端口建立关联关系,即若向预设输入输出端口写入该预设数值X即可软件触发预设系统控制中断机制。
触发预设系统控制中断机制的过程可以为:操作系统驱动将平台运行机制功能初始化完成,且平台运行机制功能位置位后,执行预设ASL代码,向预设输入输出端口,写入预设数值X,软件触发预设系统控制中断机制。在触发预设系统控制中断机制的同时将预设系统管理中断机制关闭,以在后续采用预设系统控制中断机制处理可纠正错误。
这样设置的好处在于:仅需向预设输入输出端口写入预设数值,即可触发预设系统控制中断机制,提高触发效率,并同时关闭预设系统管理中断机制,实现中断机制的及时切换,避免同时存在两种中断机制导致影响错误处理。
可选的,还包括:
在处于操作系统的加载阶段之前,创建配置地址驱动;
通过配置地址驱动将预设平台运行机制处理函数关联的物理地址转化为虚拟地址。
在处于操作系统的加载阶段之前,可以在BIOS代码中创建在启动阶段执行的配置地址驱动,该配置地址驱动用于将预设平台运行机制处理函数关联的物理地址转化为虚拟地址。
这样设置的好处在于:由于在操作系统的运行时访问的内存地址通常都是虚拟地址,因此通过提前创建配置地址驱动,将预设平台运行机制处理函数关联的物理地址转化为虚拟地址,使得后续访问内存地址时可直接进行访问,提高后续访问平台运行机制处理函数位置等地址的访问效率。
步骤220、若处于操作系统的加载阶段及后续阶段,且目标PCIe设备中产生的可纠正错误的数量满足第一预设阈值,则触发系统控制中断,以执行预设关联方法。
步骤230、将预设关联方法对应的目标标识符返回至操作系统的高级配置和电源管理接口ACPI子系统,并通过ACPI子系统根据目标标识符从预设ACPI表中确定平台运行机制处理函数位置。
步骤240、通过平台运行机制处理函数处理可纠正错误。
本实施例所提供的技术方案,若平台运行机制选项为开启状态,且进入操作系统的加载阶段,则控制处理可纠正错误的方式由预设系统管理中断机制调整为预设系统控制中断机制,以实现在处于操作系统的加载阶段之前通过预设系统管理中断机制处理可纠正错误,解决预设系统控制中断机制仅在操作系统下支持,无法覆盖操作系统的加载阶段之前的阶段的问题。并且可以通过开启预设平台运行机制选项,在进入操作系统的加载阶段时更改处理可纠正错误的方式,提高了错误处理的灵活性。
为了让本领域技术人员更加清楚的了解本方案,本发明实施例还提供了一种具体的实现方式。
准备阶段:
步骤1.在硬件上将预设引脚的引脚连接至预设通用输入输出端口上,预设引脚可以为处理器的Error_Pin0;预设通用输入输出端口可以为支持触发的系统控制中断的任一通用输入输出端口,可以通过BIOS代码预先配置预设通用输入输出端口引脚默认触发系统控制中断。
步骤2.在BIOS代码中创建操作系统运行阶段的第一执行驱动,用于注册平台运行机制模块,注册平台运行机制模块用于预先为平台运行机制处理函数的运行进行准备工作,例如收集整理平台运行机制处理函数处理可纠正错误时需要用到的数据等;创建第二执行驱动用于注册平台运行机制处理函数,注册平台运行机制处理函数用于编写针对目标PCIe设备的可纠正错误的错误处理程序以及生成平台运行机制处理函数对应的全局唯一标识符。
步骤3.创建配置地址驱动;通过配置地址驱动将预设平台运行机制处理函数关联的物理地址转化为虚拟地址。由于在操作系统的运行时访问的内存地址通常都是虚拟地址,因此通过提前创建配置地址驱动,将预设平台运行机制处理函数关联的物理地址转化为虚拟地址。获取目标静态数据,并将目标静态数据存储至预设ACPI表,其中预设ACPI表包含注册平台运行机制模块时收集到的信息及平台运行机制处理函数位置等信息,其中平台运行机制处理函数位置可以为内存物理地址。
步骤4.建立预设通用输入输出端口与预设关联方法的预设关联关系,预设关联关系可以为预设通用输入输出端口与预设关联方法的一对一映射关系,可以为在ASL代码中预先为通用输入输出端口添加对应的预设关联方法,并通过设置通用输入输出端口配置寄存器,将预设关联方法与通用输入输出端口进行关联,并将步骤2中注册的平台运行机制处理函数得到的全局唯一标识符绑定至预设关联方法。
步骤5.由于预设平台运行机制仅在操作系统下支持,无法覆盖操作系统的加载阶段之前的阶段,所以在操作系统的加载阶段之前的阶段仍要依赖系统管理中断处理函数对可纠正错误进行处理。创建预设平台运行机制选项并注册软件触发预设系统控制中断机制的函数。
其中,预设平台运行机制选项可定义为若开启,表明处于操作系统的加载阶段之前,采用预设系统管理中断机制处理可纠正错误,在处于操作系统的加载阶段及后续阶段时,采用预设系统控制中断机制处理可纠正错误。若关闭,表明在目标PCIe设备的整个启动至运行过程中均采用预设系统管理中断机制处理可纠正错误。
注册软件触发预设系统控制中断机制的函数的过程可以包括:在ASL代码和/或C代码中定义软件系统管理中断数值X,并将软件系统管理中断数值X与预设输入输出端口建立关联关系,即若向预设输入输出端口写入该预设数值X即可软件触发预设系统控制中断机制。
错误处理阶段:
步骤1.在处于操作系统的加载阶段之前,判断预设平台运行机制选项是否为开启状态。若是,则判断可纠正错误的数量是否满足第二预设阈值;若满足,则通过预设系统管理中断机制处理可纠正错误。
步骤2.若进入操作系统的加载阶段,则操作系统驱动将平台运行机制功能初始化完成,且平台运行机制功能位置位后,执行预设ASL代码,向预设输入输出端口,写入预设数值X,软件触发预设系统控制中断机制。在触发预设系统控制中断机制的同时将预设系统管理中断机制关闭,以在后续采用预设系统控制中断机制处理可纠正错误。此时可以执行BIOS平台运行机制的使能模块,使能预设引脚。
步骤3.若处于操作系统的加载阶段及后续阶段,且目标PCIe设备中产生的可纠正错误的数量满足第一预设阈值,则触发系统控制中断,以执行预设关联方法。
当PCIe CE产生并达到预设的阈值时,通过拉高或拉低预设引脚更改预设通用输入输出端口的电平,从而更改预设通用输入输出端口的工作状态,其中,更改工作状态为由非工作状态更改为正在工作的状态;由于预设通用输入输出端口被预先配置为触发系统控制中断,因此更改预设通用输入输出端口的工作状态后,触发系统控制中断;由于预设通用输入输出端口与预设关联方法存在预设关联关系,因此触发系统控制中断后会执行与预设通用输入输出端口存在预设关联关系的预设关联方法,从而将预设关联方法对应的目标标识符返回至操作系统的ACPI子系统。
步骤4.通过ACPI子系统根据目标标识符从预设ACPI表中确定平台运行机制处理函数位置;并将需要用到的目标静态数据从预设ACPI表中传递至平台运行机制处理函数,使得平台运行机制处理函数结合目标静态数据处理可纠正错误。
实施例三
图3为本发明实施例三提供的一种错误处理装置的结构示意图。该装置可以由硬件和/或软件的方式来实现,可执行本发明任意实施例所提供的一种错误处理方法,具备执行方法相应的功能模块和有益效果。如图3所示,该装置包括:
中断触发模块310,用于若处于操作系统的加载阶段及后续阶段,且目标PCIe设备中产生的可纠正错误的数量满足第一预设阈值,则触发系统控制中断,以执行预设关联方法;
位置确定模块320,用于将所述预设关联方法对应的目标标识符返回至所述操作系统的ACPI子系统,并通过所述ACPI子系统根据所述目标标识符从预设ACPI表中确定平台运行机制处理函数位置;
错误处理模块330,用于通过所述平台运行机制处理函数处理所述可纠正错误。
在上述各技术方案的基础上,可选的,所述中断触发模块,包括:
中断触发单元,用于根据预设引脚更改预设通用输入输出端口的工作状态,触发所述系统控制中断,以执行所述预设关联方法。
在上述各技术方案的基础上,可选的,所述装置还包括:
机制调整模块,用于若平台运行机制选项为开启状态,且进入所述操作系统的加载阶段,则控制处理所述可纠正错误的方式由预设系统管理中断机制调整为预设系统控制中断机制;其中,所述预设系统管理中断机制用于在所述操作系统的加载阶段之前处理所述可纠正错误。
在上述各技术方案的基础上,可选的,所述机制调整模块包括:
机制关闭单元,用于向预设输入输出端口写入预设数值,以触发所述预设系统控制中断机制,并关闭所述预设系统管理中断机制。
在上述各技术方案的基础上,可选的,所述装置还包括:
数据存储模块,用于在处于所述操作系统的加载阶段之前,获取目标静态数据,并将所述目标静态数据存储至所述预设ACPI表;其中,所述目标静态数据与所述平台运行机制处理函数关联;
相应的,所述错误处理模块,包括:
错误处理单元,用于从所述预设ACPI表中获取所述目标静态数据,并通过所述平台运行机制处理函数根据所述目标静态数据处理所述可纠正错误。
在上述各技术方案的基础上,可选的,还包括:
驱动创建模块,用于在处于所述操作系统的加载阶段之前,创建配置地址驱动;
地址转化模块,用于通过所述配置地址驱动将所述预设平台运行机制处理函数关联的物理地址转化为虚拟地址。
实施例四
图4示出了可以用来实施本发明实施例的电子设备10的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图4所示,电子设备10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(ROM)12、随机访问存储器(RAM)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(ROM)12中的计算机程序或者从存储单元18加载到随机访问存储器(RAM)13中的计算机程序,来执行各种适当的动作和处理。在RAM13中,还可存储电子设备10操作所需的各种程序和数据。处理器11、ROM12以及RAM13通过总线14彼此相连。输入/输出(I/O)接口15也连接至总线14。
电子设备10中的多个部件连接至I/O接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,例如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许电子设备10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,例如错误处理方法。
在一些实施例中,错误处理方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由ROM12和/或通信单元19而被载入和/或安装到电子设备10上。当计算机程序加载到RAM13并由处理器11执行时,可以执行上文描述的错误处理方法的一个或多个步骤。备选地,在其他实施例中,处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行错误处理方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所guid的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (10)

1.一种错误处理方法,其特征在于,包括:
若处于操作系统的加载阶段及后续阶段,且目标PCIe设备中产生的可纠正错误的数量满足第一预设阈值,则触发系统控制中断,以执行预设关联方法;
将所述预设关联方法对应的目标标识符返回至所述操作系统的高级配置和电源管理接口ACPI子系统,并通过所述ACPI子系统根据所述目标标识符从预设ACPI表中确定平台运行机制处理函数位置;
通过所述平台运行机制处理函数处理所述可纠正错误。
2.根据权利要求1所述的方法,其特征在于,所述触发系统控制中断,以执行预设关联方法,包括:
根据预设引脚更改预设通用输入输出端口的工作状态,触发所述系统控制中断,以执行所述预设关联方法。
3.根据权利要求1所述的方法,其特征在于,还包括:
若平台运行机制选项为开启状态,且进入所述操作系统的加载阶段,则控制处理所述可纠正错误的方式由预设系统管理中断机制调整为预设系统控制中断机制;其中,所述预设系统管理中断机制用于在所述操作系统的加载阶段之前处理所述可纠正错误。
4.根据权利要求3所述的方法,其特征在于,所述控制处理所述可纠正错误的方式由预设系统管理中断机制调整为预设系统控制中断机制,包括:
向预设输入输出端口写入预设数值,以触发所述预设系统控制中断机制,并关闭所述预设系统管理中断机制。
5.根据权利要求1所述的方法,其特征在于,还包括:
在处于所述操作系统的加载阶段之前,获取目标静态数据,并将所述目标静态数据存储至所述预设ACPI表;其中,所述目标静态数据与所述平台运行机制处理函数关联;
相应的,所述通过所述平台运行机制处理函数处理所述可纠正错误,包括:
从所述预设ACPI表中获取所述目标静态数据,并通过所述平台运行机制处理函数根据所述目标静态数据处理所述可纠正错误。
6.根据权利要求1所述的方法,其特征在于,还包括:
在处于所述操作系统的加载阶段之前,创建配置地址驱动;
通过所述配置地址驱动将所述预设平台运行机制处理函数关联的物理地址转化为虚拟地址。
7.一种错误处理装置,其特征在于,包括:
中断触发模块,用于若处于操作系统的加载阶段及后续阶段,且目标PCIe设备中产生的可纠正错误的数量满足第一预设阈值,则触发系统控制中断,以执行预设关联方法;
位置确定模块,用于将所述预设关联方法对应的目标标识符返回至所述操作系统的ACPI子系统,并通过所述ACPI子系统根据所述目标标识符从预设ACPI表中确定平台运行机制处理函数位置;
错误处理模块,用于通过所述平台运行机制处理函数处理所述可纠正错误。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括
机制调整模块,用于若平台运行机制选项为开启状态,且进入所述操作系统的加载阶段,则控制处理所述可纠正错误的方式由预设系统管理中断机制调整为预设系统控制中断机制;其中,所述预设系统管理中断机制用于在所述操作系统的加载阶段之前处理所述可纠正错误。
9.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-6中任一项所述的错误处理方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-6中任一项所述的错误处理方法。
CN202211500201.9A 2022-11-28 2022-11-28 一种错误处理方法、装置、电子设备及存储介质 Pending CN115729742A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211500201.9A CN115729742A (zh) 2022-11-28 2022-11-28 一种错误处理方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211500201.9A CN115729742A (zh) 2022-11-28 2022-11-28 一种错误处理方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN115729742A true CN115729742A (zh) 2023-03-03

Family

ID=85298575

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211500201.9A Pending CN115729742A (zh) 2022-11-28 2022-11-28 一种错误处理方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN115729742A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116483612A (zh) * 2023-06-20 2023-07-25 苏州浪潮智能科技有限公司 内存故障处理方法、装置、计算机设备和存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116483612A (zh) * 2023-06-20 2023-07-25 苏州浪潮智能科技有限公司 内存故障处理方法、装置、计算机设备和存储介质
CN116483612B (zh) * 2023-06-20 2023-11-03 苏州浪潮智能科技有限公司 内存故障处理方法、装置、计算机设备和存储介质

Similar Documents

Publication Publication Date Title
CN102057344A (zh) 睡眠处理器
CN114936173B (zh) 一种eMMC器件的读写方法、装置、设备和存储介质
CN115729742A (zh) 一种错误处理方法、装置、电子设备及存储介质
CN115168130A (zh) 一种芯片测试方法、装置、电子设备及存储介质
CN115718620A (zh) 一种代码程序迁移方法、装置、设备和存储介质
CN113593555A (zh) 通过语音方式控制程序的方法、设备及程序产品
CN116306408A (zh) 片上系统soc的验证环境确定方法、装置、设备和存储介质
CN116578502A (zh) 访问请求处理装置、处理方法、设备及存储介质
CN115756322A (zh) 数据存储方法、装置、电子设备及存储介质
CN116243978A (zh) 分布式训练中的数据规约方法、装置、介质和训练系统
CN115617800A (zh) 数据读取方法、装置、电子设备及存储介质
CN112783574B (zh) 应用程序开发方法、装置、设备和存储介质
CN115309730A (zh) 数据审核方法、装置、电子设备及存储介质
CN114880007A (zh) 一种升级方法、装置、设备及存储介质
CN113377434A (zh) 命令响应时长的确定方法、装置和存储介质
CN113204478B (zh) 测试单元的运行方法、装置、设备和存储介质
CN107958041B (zh) 数据存储方法、装置、服务器及可读存储介质
CN117709255B (zh) 间接访问寄存器的测试方法、装置、设备及介质
CN114706578A (zh) 一种数据处理方法、装置、设备以及介质
CN107346162B (zh) Uefi下的电源管理方法及装置
CN115934178A (zh) 一种代码运行方法、装置、电子设备及存储介质
CN114579494A (zh) 一种接口调用方法、装置、设备及介质
CN117193726A (zh) 一种软件的并行设计方法、装置、电子设备以及介质
CN118034985A (zh) 数据处理方法、装置、电子设备以及存储介质
CN116610707A (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