CN114490276A - 外设异常监测方法、装置、系统及存储介质 - Google Patents
外设异常监测方法、装置、系统及存储介质 Download PDFInfo
- Publication number
- CN114490276A CN114490276A CN202210381286.7A CN202210381286A CN114490276A CN 114490276 A CN114490276 A CN 114490276A CN 202210381286 A CN202210381286 A CN 202210381286A CN 114490276 A CN114490276 A CN 114490276A
- Authority
- CN
- China
- Prior art keywords
- target
- exception
- monitoring
- cpu
- peripheral
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3024—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3055—Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Multimedia (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种外设异常监测方法、装置、系统及存储介质,涉及数据处理技术领域。包括:通过CPU中的RAS模块监测获取目标外设的异常信号,目标外设通过CPU中对应的处理单元连接到CPU,其中,RAS模块支持异常机制、在CPU启动后可执行异常监测;通过CPU中的RAS模块将异常信号传输至CPU中的异常控制器,由异常控制器上报异常;根据异常信号、异常响应事件处理函数以及异常处理函数,对目标外设产生的目标异常进行监测处理。仅需要基于CPU内部的RAS模块、异常控制器等器件,结合异常响应事件处理函数以及异常处理函数便可实现外设异常监测处理,降低了外设异常检测的成本,提升了适用范围。
Description
技术领域
本发明涉及数据处理技术领域,具体而言,涉及一种外设异常监测方法、装置、系统及存储介质。
背景技术
随着科学技术的进步,操作系统在各个领域的应用越来越广泛。操作系统有时会因为各种外设的问题而出现工作异常,甚至宕机。实时监控外设的异常情况提前预警外设故障风险也成为了研究的重点。
相关技术中,设置外部硬件电路、外部监测模块、以及CPU(central processingunit,中央处理器),在外设出现异常时,通过外部硬件电路上的引脚发出信号给外部监测模块,外部监测模块将错误上报到CPU。
但是,相关技术中,依赖于外部硬件电路、外部监测模块等硬件器件,且依赖于硬件的驱动来运行,但是不同硬件的驱动可能不同,对系统中驱动的集成要求很高,从而导致适用范围较窄、且成本较高。
发明内容
本发明的目的在于,针对上述现有技术中的不足,提供一种外设异常监测方法、装置、系统及存储介质,以便解决相关技术中依赖于外部硬件电路、外部监测模块等硬件器件,且依赖于硬件的驱动来运行,但是不同硬件的驱动可能不同,对系统中驱动的集成要求很高,从而导致适用范围较窄、且成本较高的问题。
为实现上述目的,本发明实施例采用的技术方案如下:
第一方面,本发明实施例提供了一种外设异常监测方法,应用于CPU中央处理器,所述方法包括:
通过所述CPU中的RAS模块监测获取目标外设的异常信号,所述异常信号用于表征所述目标外设产生异常,所述目标外设通过所述CPU中对应的处理单元连接到所述CPU,其中,所述RAS模块支持异常机制、在所述CPU启动后可执行异常监测;
通过所述CPU中的RAS模块将所述异常信号传输至所述CPU中的异常控制器,由所述异常控制器上报异常;
根据所述异常信号、异常响应事件处理函数以及异常处理函数,对所述目标外设产生的目标异常进行监测处理。
可选的,所述通过所述CPU中的RAS模块监测获取目标外设的异常信号,包括:
通过所述CPU中的RAS模块监测到所述处理单元获取的所述目标外设的触发信号;
采用所述RAS模块根据所述目标外设的触发信号进行收集和分类处理,得到所述目标外设的异常信号。
可选的,所述根据所述异常信号、异常响应事件处理函数以及异常处理函数,对所述目标外设产生的目标异常进行监测处理,包括:
根据所述异常信号,从预先注册的事件列表中确定目标事件标识;
将所述目标事件标识对应注册的目标事件的事件处理函数,作为所述异常响应事件处理函数;
采用所述异常处理函数,对所述目标异常进行监测处理。
可选的,所述采用所述异常处理函数,对所述目标异常进行监测处理,包括:
采用所述异常处理函数,调用预设安全监视呼叫算法,获取所述目标异常对应的错误模块以及错误码,记录所述目标异常的错误信息。
可选的,所述采用所述异常处理函数,对所述目标异常进行监测处理,还包括:
采用所述异常处理函数,调用预设安全监视呼叫算法,清除所述目标异常的错误状态,并通知所述目标事件标识对应的目标事件已完成对于所述目标异常的处理。
可选的,在所述根据所述异常信号、异常响应事件处理函数以及异常处理函数,对所述目标外设产生的目标异常进行监测处理之前,所述方法还包括:
调用预设固件接口,采用预设安全监视呼叫算法,注册所述目标事件;
为所述目标事件绑定对应的事件处理函数。
可选的,所述方法还包括:
采用虚拟化应用管理程序中的预设注册接口,注册虚拟目标事件;
将所述虚拟目标事件,映射到绑定有虚拟定时器的物理目标事件;
根据所述虚拟定时器、所述物理目标事件以及所述虚拟化应用管理程序,进行自定义功能。
第二方面,本发明实施例提供了一种外设异常监测装置,应用于CPU中央处理器,所述装置包括:
获取模块,用于通过所述CPU中的RAS模块监测获取目标外设的异常信号,所述异常信号用于表征所述目标外设产生异常,所述目标外设通过所述CPU中对应的处理单元连接到所述CPU,其中,所述RAS模块支持异常机制、在所述CPU启动后可执行异常监测;
传输模块,用于通过所述CPU中的RAS模块将所述异常信号传输至所述CPU中的异常控制器,由所述异常控制器上报异常;
处理模块,用于根据所述异常信号、异常响应事件处理函数以及异常处理函数,对所述目标外设产生的目标异常进行监测处理。
可选的,所述获取模块,还用于通过所述CPU中的RAS模块监测到所述处理单元获取的所述目标外设的触发信号;采用所述RAS模块根据所述目标外设的触发信号进行收集和分类处理,得到所述目标外设的异常信号。
可选的,所述处理模块,还用于根据所述异常信号,从预先注册的事件列表中确定目标事件标识;将所述目标事件标识对应注册的目标事件的事件处理函数,作为所述异常响应事件处理函数;采用所述异常处理函数,对所述目标异常进行监测处理。
可选的,所述处理模块,还用于采用所述异常处理函数,调用预设安全监视呼叫算法,获取所述目标异常对应的错误模块以及错误码,记录所述目标异常的错误信息。
可选的,所述处理模块,还用于采用所述异常处理函数,调用预设安全监视呼叫算法,清除所述目标异常的错误状态,并通知所述目标事件标识对应的目标事件已完成对于所述目标异常的处理。
可选的,所述装置还包括:
调用模块,用于调用预设固件接口,采用预设安全监视呼叫算法,注册所述目标事件;
绑定模块,用于为所述目标事件绑定对应的事件处理函数。
可选的,所述装置还包括:
注册模块,用于采用虚拟化应用管理程序中的预设注册接口,注册虚拟目标事件;
映射模块,用于将所述虚拟目标事件,映射到绑定有虚拟定时器的物理目标事件;
自定义模块,用于根据所述虚拟定时器、所述物理目标事件以及所述虚拟化应用管理程序,进行自定义功能。
第三方面,本发明实施例还提供了一种外设异常监测系统,包括:存储器和处理器,所述存储器存储有所述处理器可执行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面任一项所述的外设异常监测方法。
第四方面,本发明实施例还提供了一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被读取并执行时,实现上述第一方面任一项所述的外设异常监测方法。
本发明的有益效果是:本申请实施例提供一种外设异常监测方法,包括:通过CPU中的RAS模块监测获取目标外设的异常信号,异常信号用于表征目标外设产生异常,目标外设通过CPU中对应的处理单元连接到CPU,其中,RAS模块支持异常机制、在CPU启动后可执行异常监测;通过CPU中的RAS模块将异常信号传输至CPU中的异常控制器,由异常控制器上报异常;根据异常信号、异常响应事件处理函数以及异常处理函数,对目标外设产生的目标异常进行监测处理。基于RAS模块、异常控制器上报异常,基于异常信号、异常响应事件处理函数以及异常处理函数便可以实现对目标外设产生的目标异常进行监测处理,无需设置外部硬件电路,仅需要基于CPU内部的RAS模块、异常控制器等硬件器件,结合异常响应事件处理函数以及异常处理函数便可以实现外设异常监测处理,降低了外设异常检测的成本,还可以适用于各种形式的外设异常监测,提升了适用范围。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种外设异常监测系统的结构示意图;
图2为本申请实施例提供的一种外设异常监测方法的流程示意图;
图3为本申请实施例提供的一种外设异常监测方法的流程示意图;
图4为本申请实施例提供的一种外设异常监测方法的流程示意图;
图5为本申请实施例提供的一种外设异常监测方法的原理示意图;
图6为本申请实施例提供的一种外设异常监测方法的流程示意图;
图7为本申请实施例提供的一种外设异常监测方法所基于的软件栈架构图;
图8为本申请实施例提供的一种ARM特权模式架构图;
图9为本申请实施例提供的一种外设异常监测方法的流程示意图;
图10为本申请实施例提供的一种外设异常监测装置的结构示意图;
图11为本发明一实施例提供的一种外设异常监测系统的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
此外,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在不冲突的情况下,本申请的实施例中的特征可以相互结合。
随着科学技术的进步,操作系统在各个领域的应用越来越广泛。操作系统有时会因为各种外设的问题而出现工作异常,甚至宕机。实时监控外设的异常情况提前预警外设故障风险也成为了研究的重点。
相关技术中,设置外部硬件电路、外部监测模块、以及CPU;在外设出现异常时,通过外部硬件电路上的引脚发出信号给外部监测模块,外部监测模块将错误上报到CPU。但是,相关技术中,依赖于外部硬件电路、外部监测模块等硬件器件,且依赖于硬件的驱动来运行,但是不同硬件的驱动可能不同,对系统中驱动的集成要求很高,从而导致适用范围较窄、且成本较高。
针对相关技术中所存在的上述技术问题,本申请实施例提供一种外设异常监测方法,通过CPU中的RAS模块监测获取目标外设的异常信号,由RAS模块将异常信号传输至CPU中的异常控制器,由异常控制器上报异常,基于异常信号、异常响应事件处理函数以及异常处理函数便可以实现对目标外设产生的目标异常进行监测处理,无需设置外部硬件电路,仅需要基于CPU内部的RAS模块、异常控制器等硬件器件,结合异常响应事件处理函数以及异常处理函数便可以实现外设异常监测处理,降低了外设异常检测的成本,还可以适用于各种形式的外设异常监测,提升了适用范围。
本申请实施例提供的一种外设异常监测方法,其执行主体可以为CPU101,图1为本申请实施例提供的一种外设异常监测系统的结构示意图,如图1所示,其中,该CPU101中包括:RAS(Reliability Availability Serviceability,可靠可用性服务)模块1011、至少一个处理单元1012以及异常控制器1013。
其中,RAS模块1011与各个处理单元1012连接,各个处理单元1012可以连接有对应的外设102,不同的处理单元1012所连接的外设102可以不同,RAS模块1011还与异常控制器1013连接。需要说明的是,不同外设可以在需要的时候进行连接,如果不需要也可以进行断开,本申请实施例针对的异常监测是连接有外设102的情况下监测是否有异常的情况。
可选地,在本申请实施例中,处理单元1012可以包括:PEU(PCIe Unit,PCIE单元,peripheral component interconnect express,一种高速串行计算机扩展总线标准),则PEU所连接的外设102可以为PCIE外设。
另外,处理单元1012还可以包括QSPI(Quad SPI,队列串行外设接口)、LPC(Lowpin count Bus,低引脚数总线)、DDR(双倍速率同步动态随机存储),相应的,处理单元1012所连接的外设102可以包括:FIASH(数据存储设备)、EC(embedded controller,嵌入式控制器)、DIMM(Dual Inline Memory Module,双列直插内存模块)等。
需要说明的是,本申请实施例中对处理单元1012所连接的外设102,例如,PCIE外设、FIASH、EC、DIMM等均可以实现异常监测。
以下以外设异常监测系统中的CPU101为执行主体,对本申请实施例提供的一种外设异常监测方法进行解释说明。
图2为本申请实施例提供的一种外设异常监测方法的流程示意图,如图2所示,该方法可以包括:
S201、通过CPU中的RAS模块监测获取目标外设的异常信号。
其中,异常信号用于表征目标外设产生异常,目标外设通过CPU中对应的处理单元连接到CPU,其中,RAS模块支持异常机制、在CPU启动后可执行异常监测。
需要说明的是,本申请实施例中的异常可以指包括中断在内的各种异常情况,可以有多种不同异常情况,在此不作限制。例如异常还可以包括:未定义的指令、指令预取错误、数据同步中断等,本申请实施例中以中断为例进行说明,但不以此为限,其他异常可以参考中断的异常处理方式执行。可选地,以中断为例时,RAS模块支持中断机制,对于其他异常,RAS模块可以支持其他异常机制,在此不作限制。
在CPU启动后,RAS模块可以一直执行异常监测或者也可以周期性地进行异常监测。其中,RAS模块可以支持异常机制,不占用过多的CPU资源,也不需要提供专门的驱动,可以记录异常的相关信息,并且可以给CPU提供一个稳定的故障自查自纠机制,解决部分错误,恢复相关状态,本申请实施例中,采用RAS模块实现监测一些外设异常,完成一些自定义功能。
在一些实施方式中,在目标外设产生异常时,CPU通过CPU中的RAS模块、目标外设所连接的处理单元,可以获取到目标外设的异常信号。
其中,RAS模块中收集的异常可以包括目标外设产生的异常,当然,还可以包括RAS模块通过处理单元所连接的其他外设所产生的异常,本申请实施例对此不进行具体限制。
S202、通过CPU中的RAS模块将异常信号传输至CPU中的异常控制器,由异常控制器上报异常。
在一种实施方式中,可以通过CPU中的RAS模块将目标外设的异常信号传输至CPU中的异常控制器,由异常控制器上报异常至CPU,固件层进行异常响应事件处理后转到OS应用层进行相应的异常处理。其中,可以采用将电平置高或者置低的形式实现对异常信号进行上报。
在本申请实施例中,异常信号可以指示各部件控制器在与外设交互时所发生的错误。
需要说明的是,对于中断上报的情况,这里异常控制器可以是中断控制器。
S203、根据异常信号、异常响应事件处理函数以及异常处理函数,对目标外设产生的目标异常进行监测处理。
其中,异常响应事件处理函数可以设置在固件层,自定义的异常处理函数可以设置在OS(operating system,操作系统)用户层,异常控制器上报的异常可以上报至硬件层。
在一些实施方式中,异常控制器上报异常至硬件层,继而之前在固件层注册的事件响应调用异常响应事件处理函数,在该异常响应事件处理函数处理完成后,跳转处理至OS用户层的自定义的异常处理函数,实现对于目标异常的监测处理。
需要说明的是,异常响应事件处理函数用于完成固件阶段的异常处理,异常处理函数用于完成用户层阶段的异常处理。
综上所述,本申请实施例提供一种外设异常监测方法,包括:通过CPU中的RAS模块监测获取目标外设的异常信号,异常信号用于表征目标外设产生异常,目标外设通过CPU中对应的处理单元连接到CPU,其中,RAS模块支持异常机制、在CPU启动后可执行异常监测;通过CPU中的RAS模块将异常信号传输至CPU中的异常控制器,由异常控制器上报异常;根据异常信号、异常响应事件处理函数以及异常处理函数,对目标外设产生的目标异常进行监测处理。基于RAS模块、异常控制器上报异常,再基于异常信号、异常响应事件处理函数以及异常处理函数便可以实现对目标外设产生的目标异常进行监测处理,无需设置外部硬件电路,仅需要基于CPU内部的RAS模块、异常控制器等硬件器件,结合异常响应事件处理函数以及异常处理函数便可以实现外设异常监测处理,降低了外设异常检测的成本,还可以适用于各种形式的外设异常监测,提升了适用范围。
可选的,图3为本申请实施例提供的一种外设异常监测方法的流程示意图,如图3所示,上述S201中通过CPU中的RAS模块监测获取目标外设的异常信号的过程,可以包括:
S301、通过CPU中的RAS模块监测到处理单元获取的目标外设的触发信号。
S302、采用RAS模块根据目标外设的触发信号进行收集和分类处理,得到目标外设的异常信号。
其中,处理单元可以获取目标外设的触发信号,并向CPU中的RAS模块传输目标外设的触发信号;RAS模块获取目标外设的触发信号。
在一些实施方式中,采用RAS模块根据目标外设的触发信号进行收集,继而根据目标外设的触发信号进行分类,确定目标外设的触发信号对应的异常为可纠错异常还是为不可纠错异常,实现对于目标外设的触发信号的分类,得到需要上报至异常控制器的目标外设的异常信号。
当然,RAS模块还可以收集其他处理单元获取的其他外设的触发信号,针对其他外设的触发信号也可以同样进行收集和分类处理,得到其他外设的异常信号,并进行上报,本申请实施例对此不进行具体限制。
可选的,图4为本申请实施例提供的一种外设异常监测方法的流程示意图,如图4所示,上述S203中根据异常信号、异常响应事件处理函数以及异常处理函数,对目标外设产生的目标异常进行监测处理的过程,可以包括:
S401、根据异常信号,从预先注册的事件列表中确定目标事件标识。
其中,预先注册的事件列表中可以包含多个事件标识。
在一些实施方式中,RAS模块通过异常控制器发生SPI(Shared PeripheralInterrupts,共享外设中断)的异常信号,CPU获取目标外设的异常信号后,根据异常信号从预先注册的事件列表的多个事件标识中,确定目标事件标识。
S402、将目标事件标识对应注册的目标事件的事件处理函数,作为异常响应事件处理函数。
需要说明的是,注册的目标事件可以为SDEI(Software Delegated ExceptionInterface,软件委托异常接口)事件,相应的,事件处理函数可以为预先配置好的SDEI事件处理函数。
其中,SDEI是ARM(一种处理器架构)做的一种system events(系统事件)的通知方式。Firmware(固件)收到system events后,使用SDEI通知Non-secure world(非安全世界),并执行注册好的handler(一种对象,主要用于异步消息的处理)。
在本申请实施例中,CPU可以根据目标事件标识查找对应注册的目标事件,继而确定目标事件的事件处理函数,将目标事件的事件处理函数作为异常响应事件处理函数。
S403、采用异常处理函数,对目标异常进行监测处理。
其中,异常处理函数可以为自定义的函数,可以设置在Normal World(正常世界)的OS中。在S402之后,可以跳转至Normal World os的异常处理函数进行自定义处理,即实现对目标异常进行监测处理。
图5为本申请实施例提供的一种外设异常监测方法的原理示意图;如图5所示,具体层次可以划分为:硬件层、固件层、OS内核层、OS用户层,其中,硬件层中RAS模块通过异常控制器可以上报异常;固件层是指基础固件,基础固件中可以封装有注册SDEI事件、事件绑定中断、事件使能等接口;OS内核层为OS的核心部分、OS用户层可以为OS中向用户提供服务的层,OS可以依赖于CPU运行。可选的,硬件层和固件层之间也可进行直接进行数据传输。
其中,固件层中可以注册事件,为事件绑定对应的异常信号并使能,还可为事件绑定对应的事件处理函数。
在一些实施方式中,SDEI事件处理函数可以设置在固件层,异常处理函数可以设置在OS用户层。其中,硬件层中RAS模块通过异常控制器上报异常信号至CPU,固件层获取异常信号并事件响应至固件层的SDEI事件处理函数,由SDEI事件处理函数再跳转至OS用户层中的异常处理函数,实现对于目标外设的异常监测处理。无需经过OS内核层的处理,也即本实施例中的监测方法无需驱动来完成。
可选的,上述S403中采用异常处理函数,对目标异常进行监测处理的过程,可以包括:
采用异常处理函数,调用预设安全监视呼叫算法,获取目标异常对应的错误模块以及错误码,记录目标异常的错误信息。
其中,预设的安全监视呼叫算法可以简称为SMC(Security monitor call,安全监视呼叫)。
在一些实施方式中,采用异常处理函数,调用SMC ID(Security monitor call,Identity document,安全监视呼叫身份证标识号),获取异常信号中的错误模块以及错误码等错误信息进行记录,继而根据目标异常的重要性来决定是否上报系统管理员进行外部处理。其中,调用的SMC ID可以为:第一SMC ID。
可选的,上述S403中采用异常处理函数,对目标异常进行监测处理的过程,还可以包括:
采用异常处理函数,调用预设安全监视呼叫算法,清除目标异常的错误状态,并通知目标事件标识对应的目标事件已完成对于目标异常的处理。
在本申请实施例中,如图5所示,采用异常处理函数,调用SMC ID,传参错误模块以及错误码以清除目标异常的错误状态,其中,SMC ID可以为:第一SMC ID。另外,采用异常处理函数,调用SMC ID,通知目标事件已完成对于目标异常的处理,其中,SMC ID可以为:第二SMC ID。
可选的,图6为本申请实施例提供的一种外设异常监测方法的流程示意图,如图6所示,在上述S203根据异常信号、异常响应事件处理函数以及异常处理函数,对目标外设产生的目标异常进行监测处理之前,该方法还可以包括:
S601、调用预设固件接口,采用预设安全监视呼叫算法,注册目标事件。
S602、为目标事件绑定对应的事件处理函数。
其中,目标事件可以为SDEI事件。
在一些实施方式中,可以在OS的APP应用中,调用固件层封装的SMC接口,注册绑定RAS模块的SPI中断调用物理SDEI事件,并为SDEI事件绑定对应的事件处理函数。
在本申请实施例中,可以在固件层完成RAS模块初始化、错误信息获取、错误状态的清除,SDEI事件注册、事件处理函数绑定、SDEI事件完成标志等接口的编写及SMC调用的封装等内容。
在OS中,编写APP(Application,应用程序)应用模块,依次调用SMC ID,实现相应的功能。
可选的,调用第一SMC ID来初始化RAS模块;调用第三SMC ID:来进行SDEI绑定中断事件号的申请;调用第四SMC ID来进行SDEI事件号和对应处理函数的绑定;调用第五SMCID来进行SDEI事件的使能;调用第六SMC ID来进行SDEI事件掩码的关闭。
图7为本申请实施例提供的一种外设异常监测方法所基于的软件栈架构图,本申请实施例提供的一种外设异常监测方法可以基于图7中的软件栈实现,如图7所示,该软件栈可以包括:正常模式、安全模式、基础固件,其中,正常模式中包括:APP、OS/VM(VirtualMachin,虚拟机)、系统固件(system firware),其中,系统固件中包括:UEFI(UnifiedExtensible Firmware Interface,统一可扩展固件接口)和U-Boot(Universal BootLoader,通用引导加载程序);UEFI和U-Boot中均包括:ACPI(Advanced Configuration andPower Management Interface,高级配置和电源管理接口)、FDT(Flattened Device Tree,扁平设备树)、引导管理器 (Boot Manager)以及驱动(driver)。
如图7所示,安全模式中可以包括:安全APP、以及安全OS(secure OS)。
如图7所示,基础固件中可以包括:SMCCC(SMC Calling Convention,SMC调用规范)、PSCI(Power State Coordination Interface,电源状态协调接口)、SCMI(SystemControl and Management Interface,系统控制和管理接口)、SSI(System ServiceInterface,系统服务接口)、安全启动(secure boot)、PSPA支持(Security PlatformArchitecture Support,安全平台架构支持)、低功耗(lower power)、安全监视器(SecureMonitor)、RAS。
需要说明的是,本申请实施例提供的外设异常监测方法,主要涉及软件栈中的中的安全监视器以及RAS。其中,安全监视器可以提供注册事件、事件使能、事件响应等功能;RAS提供RAS模块或者其他相关模块的接口,在实际应用中,外部OS可以通过安全监视器调用这些接口,获取错误类型等错误信息。
在一些实施方式中,本申请实施例中所采用的CPU可以为ARM中的处理器,图8为本申请实施例提供的一种ARM特权模式架构图,如图8所示,ARM架构包括:EL0、EL1、EL2、EL3,其中,EL0中设置有APP、EL1中设置有OS、EL2中设置有VMM(virtual machine monitor,又称Hypervisor,虚拟机监视器)、EL3中设置有基础固件(也即固件层,运行在安全态)。
在本申请实施例中,各类型软件执行在不同的特权级别,从而实现了不同域的隔离。EL0中设置应用程序,包括:安全应用和非安全应用;EL1 设置操作系统,包括:安全系统和非安全系统;EL2 设置虚拟机管理器;EL3基础固件,包括安全监视器。
需要说明的是,ARMv8有两个状态Secure安全态和Non-secure非安全态,这样的设计能使一个非安全OS和一个安全OS运行在同一个硬件上,并且提供确定的软件/硬件攻击保护。
在实际应用中,可以通过SMC调用SDEI事件绑定RAS中断在EL3实现物理SDEI配合CPLD、EC等外部电源管理芯片对异常外设进行掉电保护,防止损毁。
另外,该实施例中描述的通过SMC调用SDEI事件绑定RAS中断在EL3实现物理SDEI配合CPLD、EC等外部电源管理芯片对异常外设进行掉电保护,防止损毁。同样也可以通过调用运行在EL2下的虚拟机管理器Hypervisor中的SDEI注册接口来注册虚拟SDEI事件,即运行在EL1的虚拟机操作系统可以通过虚拟机管理器Hypervisor注册虚拟SDEI事件,并映射到一个绑定虚拟定时器中断的物理SDEI事件,当虚拟定时器计时到达时就会触发中断就会进到物理SDEI事件处理程序再移交到运行在EL2的虚拟机管理器Hypervisor来跳转到运行在EL1并注册了虚拟SDEI事件的虚拟机操作系统中到完成一些虚拟化应用下的自定义功能,整个过程即软件看门狗功能。
可选的,图9为本申请实施例提供的一种外设异常监测方法的流程示意图,如图9所示,该方法还包括:
S801、采用虚拟化应用管理程序中的预设注册接口,注册虚拟目标事件。
其中,虚拟化应用管理程序可以为虚拟机监视器。采用虚拟机监视器中的SDEI注册接口来注册虚拟SDEI事件,即运行在EL1的虚拟机操作系统可以通过虚拟机监视器注册虚拟SDEI事件。
S802、将所述虚拟目标事件,映射到绑定有虚拟定时器的物理目标事件。
其中,物理目标事件可以为物理SDEI事件,将虚拟目标事件,映射到绑定有虚拟定时器的物理SDEI事件。
S803、根据所述虚拟定时器、所述物理目标事件以及所述虚拟化应用管理程序,进行自定义功能。
在一些实施方式中,当虚拟定时器计时到达时就会触发中断,就会进到物理SDEI事件处理程序,再移交到运行在EL2的虚拟化应用管理程序,来跳转到运行在EL1并注册了虚拟SDEI事件的虚拟机操作系统中,完成一些虚拟化应用下的自定义功能,整个过程即软件看门狗功能。
综上所述,本申请实施例提供一种外设异常监测方法,包括:通过CPU中的RAS模块监测获取目标外设的异常信号,异常信号用于表征目标外设产生异常,目标外设通过CPU中对应的处理单元连接到CPU,其中,RAS模块支持异常机制、在CPU启动后可执行异常监测;通过CPU中的RAS模块将异常信号传输至CPU中的异常控制器,由异常控制器上报异常;根据异常信号、异常响应事件处理函数以及异常处理函数,对目标外设产生的目标异常进行监测处理。基于RAS模块、异常控制器上报异常,基于异常信号、异常响应事件处理函数以及异常处理函数便可以实现对目标外设产生的目标异常进行监测处理,无需设置外部硬件电路,仅需要基于CPU内部的RAS模块、异常控制器等硬件器件,结合异常响应事件处理函数以及异常处理函数便可以实现外设异常监测处理,降低了外设异常检测的成本,还可以适用于各种形式的外设异常监测,提升了适用范围。
另外,利用SDEI接口注册事件绑定芯片自带的可靠可用性服务模块RAS中断来代替异常中断的响应和处理,不依赖于OS,用户在自己的APP中即可完成一些硬件相关自定义的异常事件处理。
而且,通过软件委托异常接口SDEI结合CPU自带的可靠可用性服务模块RAS,实现系统下对外设异常的监测,实现了和内核驱动的解耦,在任何支持SDEI接口的操作系统和带有可靠可用性服务模块RAS的平台都可以使用。
此外,SDEI事件绑定中断来提高中断优先级的方式来代替传统的异常中断的处理,防止中断过多时出现丢失的情况,且不需要外部硬件支持且不依赖于内核态和内核RAS驱动,在用户层即可处理。当外设出现可纠错或不可纠错的异常时,RAS的异常直接上报到CPU触发绑定好的SDEI事件来处理异常,维护外设,从而达到保障系统的稳定运行的目的,且软件的可操作性强,兼容性更高。
下述对用以执行本申请所提供的外设异常监测方法的外设异常监测装置、系统及存储介质等进行说明,其具体的实现过程以及技术效果参见上述外设异常监测方法的相关内容,下述不再赘述。
可选的,图10为本申请实施例提供的一种外设异常监测装置的结构示意图,如图10所示,该装置应用于CPU中央处理器,所述装置包括:
获取模块901,用于通过所述CPU中的RAS模块监测获取目标外设的异常信号,所述异常信号用于表征所述目标外设产生异常,所述目标外设通过所述CPU中对应的处理单元连接到所述CPU,其中,所述RAS模块支持异常机制、在所述CPU启动后可执行异常监测;
传输模块902,用于通过所述CPU中的RAS模块将所述异常信号传输至所述CPU中的异常控制器,由所述异常控制器上报异常;
处理模块903,用于根据所述异常信号、异常响应事件处理函数以及异常处理函数,对所述目标外设产生的目标异常进行监测处理。
可选的,所述获取模块901,还用于通过所述CPU中的RAS模块监测到所述处理单元获取的所述目标外设的触发信号;采用所述RAS模块根据所述目标外设的触发信号进行收集和分类处理,得到所述目标外设的异常信号。
可选的,所述处理模块903,还用于根据所述异常信号,从预先注册的事件列表中确定目标事件标识;将所述目标事件标识对应注册的目标事件的事件处理函数,作为所述异常响应事件处理函数;采用所述异常处理函数,对所述目标异常进行监测处理。
可选的,所述处理模块903,还用于采用所述异常处理函数,调用预设安全监视呼叫算法,获取所述目标异常对应的错误模块以及错误码,记录所述目标异常的错误信息。
可选的,所述处理模块903,还用于采用所述异常处理函数,调用预设安全监视呼叫算法,清除所述目标异常的错误状态,并通知所述目标事件标识对应的目标事件已完成对于所述目标异常的处理。
可选的,所述装置还包括:
调用模块,用于调用预设固件接口,采用预设安全监视呼叫算法,注册所述目标事件;
绑定模块,用于为所述目标事件绑定对应的事件处理函数。
可选的,所述装置还包括:
注册模块,用于采用虚拟化应用管理程序中的预设注册接口,注册虚拟目标事件;
映射模块,用于将所述虚拟目标事件,映射到绑定有虚拟定时器的物理目标事件;
自定义模块,用于根据所述虚拟定时器、所述物理目标事件以及所述虚拟化应用管理程序,进行自定义功能。
上述装置用于执行前述实施例提供的方法,其实现原理和技术效果类似,在此不再赘述。
以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(digital singnal processor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(CentralProcessing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。
图11为本发明一实施例提供的一种外设异常监测系统的结构示意图,如图11所示,该系统包括:处理器1001、存储器1002。
其中,存储器1002用于存储程序,处理器1001调用存储器1002存储的程序,以执行上述方法实施例。具体实现方式和技术效果类似,这里不再赘述。
可选地,本发明还提供一种程序产品,例如计算机可读存储介质,包括程序,该程序在被处理器执行时用于执行上述方法实施例。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种外设异常监测方法,其特征在于,应用于CPU中央处理器,所述方法包括:
通过所述CPU中的RAS模块监测获取目标外设的异常信号,所述异常信号用于表征所述目标外设产生异常,所述目标外设通过所述CPU中对应的处理单元连接到所述CPU,其中,所述RAS模块支持异常机制、在所述CPU启动后可执行异常监测;
通过所述CPU中的RAS模块将所述异常信号传输至所述CPU中的异常控制器,由所述异常控制器上报异常;
根据所述异常信号、异常响应事件处理函数以及异常处理函数,对所述目标外设产生的目标异常进行监测处理。
2.根据权利要求1所述的方法,其特征在于,所述通过所述CPU中的RAS模块监测获取目标外设的异常信号,包括:
通过所述CPU中的RAS模块监测到所述处理单元获取的所述目标外设的触发信号;
采用所述RAS模块根据所述目标外设的触发信号进行收集和分类处理,得到所述目标外设的异常信号。
3.根据权利要求1所述的方法,其特征在于,所述根据所述异常信号、异常响应事件处理函数以及异常处理函数,对所述目标外设产生的目标异常进行监测处理,包括:
根据所述异常信号,从预先注册的事件列表中确定目标事件标识;
将所述目标事件标识对应注册的目标事件的事件处理函数,作为所述异常响应事件处理函数;
采用所述异常处理函数,对所述目标异常进行监测处理。
4.根据权利要求3所述的方法,其特征在于,所述采用所述异常处理函数,对所述目标异常进行监测处理,包括:
采用所述异常处理函数,调用预设安全监视呼叫算法,获取所述目标异常对应的错误模块以及错误码,记录所述目标异常的错误信息。
5.根据权利要求4所述的方法,其特征在于,所述采用所述异常处理函数,对所述目标异常进行监测处理,还包括:
采用所述异常处理函数,调用预设安全监视呼叫算法,清除所述目标异常的错误状态,并通知所述目标事件标识对应的目标事件已完成对于所述目标异常的处理。
6.根据权利要求3所述的方法,其特征在于,在所述根据所述异常信号、异常响应事件处理函数以及异常处理函数,对所述目标外设产生的目标异常进行监测处理之前,所述方法还包括:
调用预设固件接口,采用预设安全监视呼叫算法,注册所述目标事件;
为所述目标事件绑定对应的事件处理函数。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
采用虚拟化应用管理程序中的预设注册接口,注册虚拟目标事件;
将所述虚拟目标事件,映射到绑定有虚拟定时器的物理目标事件;
根据所述虚拟定时器、所述物理目标事件以及所述虚拟化应用管理程序,进行自定义功能。
8.一种外设异常监测装置,其特征在于,应用于CPU中央处理器,所述装置包括:
获取模块,用于通过所述CPU中的RAS模块监测获取目标外设的异常信号,所述异常信号用于表征所述目标外设产生异常,所述目标外设通过所述CPU中对应的处理单元连接到所述CPU,其中,所述RAS模块支持异常机制、在所述CPU启动后可执行异常监测;
传输模块,用于通过所述CPU中的RAS模块将所述异常信号传输至所述CPU中的异常控制器,由所述异常控制器上报异常;
处理模块,用于根据所述异常信号、异常响应事件处理函数以及异常处理函数,对所述目标外设产生的目标异常进行监测处理。
9.一种外设异常监测系统,其特征在于,包括:存储器和处理器,所述存储器存储有所述处理器可执行的计算机程序,所述处理器执行所述计算机程序时实现上述权利要求1-7任一项所述的外设异常监测方法。
10.一种存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被读取并执行时,实现上述权利要求1-7任一项所述的外设异常监测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210381286.7A CN114490276B (zh) | 2022-04-13 | 2022-04-13 | 外设异常监测方法、装置、系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210381286.7A CN114490276B (zh) | 2022-04-13 | 2022-04-13 | 外设异常监测方法、装置、系统及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114490276A true CN114490276A (zh) | 2022-05-13 |
CN114490276B CN114490276B (zh) | 2022-07-19 |
Family
ID=81487860
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210381286.7A Active CN114490276B (zh) | 2022-04-13 | 2022-04-13 | 外设异常监测方法、装置、系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114490276B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117076182A (zh) * | 2023-09-28 | 2023-11-17 | 飞腾信息技术有限公司 | 一种错误上报方法、片上系统、计算机设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001060160A (ja) * | 1999-08-23 | 2001-03-06 | Mitsubishi Heavy Ind Ltd | 制御装置のcpu二重化システム |
CN109739675A (zh) * | 2018-12-24 | 2019-05-10 | 深圳航天东方红海特卫星有限公司 | 一种利用硬件看门狗捕捉程序异常的方法 |
CN111008379A (zh) * | 2019-11-22 | 2020-04-14 | 腾讯科技(深圳)有限公司 | 电子设备的固件安全检测方法及相关设备 |
CN112463286A (zh) * | 2019-09-09 | 2021-03-09 | 北京奇虎科技有限公司 | 用于虚拟机操作系统的异常事件监控方法及系统 |
US11036543B1 (en) * | 2019-06-14 | 2021-06-15 | Amazon Technologies, Inc. | Integrated reliability, availability, and serviceability state machine for central processing units |
-
2022
- 2022-04-13 CN CN202210381286.7A patent/CN114490276B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001060160A (ja) * | 1999-08-23 | 2001-03-06 | Mitsubishi Heavy Ind Ltd | 制御装置のcpu二重化システム |
CN109739675A (zh) * | 2018-12-24 | 2019-05-10 | 深圳航天东方红海特卫星有限公司 | 一种利用硬件看门狗捕捉程序异常的方法 |
US11036543B1 (en) * | 2019-06-14 | 2021-06-15 | Amazon Technologies, Inc. | Integrated reliability, availability, and serviceability state machine for central processing units |
CN112463286A (zh) * | 2019-09-09 | 2021-03-09 | 北京奇虎科技有限公司 | 用于虚拟机操作系统的异常事件监控方法及系统 |
CN111008379A (zh) * | 2019-11-22 | 2020-04-14 | 腾讯科技(深圳)有限公司 | 电子设备的固件安全检测方法及相关设备 |
Non-Patent Citations (1)
Title |
---|
代码改变世界CTW: "《11-Reliability, Availability, and Serviceability (RAS) Extensions》", 《HTTPS://BLOG.CSDN.NET/WEIXIN_42135087/ARTICLE/DETAILS/121434914》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117076182A (zh) * | 2023-09-28 | 2023-11-17 | 飞腾信息技术有限公司 | 一种错误上报方法、片上系统、计算机设备及存储介质 |
CN117076182B (zh) * | 2023-09-28 | 2024-01-19 | 飞腾信息技术有限公司 | 一种错误上报方法、片上系统、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114490276B (zh) | 2022-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100938718B1 (ko) | 플랫폼 관리 능력을 os에 반출하기 위한 efi 기반메커니즘 | |
EP4075270B1 (en) | Performance variability reduction using an opportunistic hypervisor | |
US8260841B1 (en) | Executing an out-of-band agent in an in-band process of a host system | |
US8381028B2 (en) | Accelerating recovery in MPI environments | |
US10146606B2 (en) | Method for system debug and firmware update of a headless server | |
US10678623B2 (en) | Error reporting and handling using a common error handler | |
US7783872B2 (en) | System and method to enable an event timer in a multiple event timer operating environment | |
JP2003323306A (ja) | 論理パーティション・データ処理システムでのエラーまたはイベントを処理する方法、コンピュータ・プログラム、データ処理システム | |
EP2518627B1 (en) | Partial fault processing method in computer system | |
CN104885057A (zh) | 虚拟化计算系统中隔离的客创建 | |
US10831467B2 (en) | Techniques of updating host device firmware via service processor | |
US20120304184A1 (en) | Multi-core processor system, computer product, and control method | |
US20190171507A1 (en) | Techniques of monitoring and updating system component health status | |
US20140143372A1 (en) | System and method of constructing a memory-based interconnect between multiple partitions | |
CN114490276B (zh) | 外设异常监测方法、装置、系统及存储介质 | |
US20160364304A1 (en) | Providing availability of an agent virtual computing instance during a storage failure | |
US7953914B2 (en) | Clearing interrupts raised while performing operating system critical tasks | |
US10838815B2 (en) | Fault tolerant and diagnostic boot | |
CN102609324A (zh) | 一种虚拟机死锁后的恢复方法、装置及系统 | |
US20160292108A1 (en) | Information processing device, control program for information processing device, and control method for information processing device | |
CN112035239B (zh) | 任务调度方法、装置、终端设备及存储介质 | |
US7260752B2 (en) | Method and apparatus for responding to critical abstracted platform events in a data processing system | |
US7430691B2 (en) | Method, system, and product for providing extended error handling capability in host bridges | |
US8195981B2 (en) | Memory metadata used to handle memory errors without process termination | |
US20140229764A1 (en) | Management of a computer |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |