CN116820837A - 一种关于系统组件的异常处理方法及装置 - Google Patents

一种关于系统组件的异常处理方法及装置 Download PDF

Info

Publication number
CN116820837A
CN116820837A CN202310781658.XA CN202310781658A CN116820837A CN 116820837 A CN116820837 A CN 116820837A CN 202310781658 A CN202310781658 A CN 202310781658A CN 116820837 A CN116820837 A CN 116820837A
Authority
CN
China
Prior art keywords
component
abnormal
processing
working state
core
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
CN202310781658.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.)
Shanghai Hexin Digital Technology Co ltd
Hexin Technology Co ltd
Original Assignee
Shanghai Hexin Digital Technology Co ltd
Hexin Technology 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 Shanghai Hexin Digital Technology Co ltd, Hexin Technology Co ltd filed Critical Shanghai Hexin Digital Technology Co ltd
Priority to CN202310781658.XA priority Critical patent/CN116820837A/zh
Publication of CN116820837A publication Critical patent/CN116820837A/zh
Pending legal-status Critical Current

Links

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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)
  • Retry When Errors Occur (AREA)

Abstract

本发明公开了一种关于系统组件的异常处理方法及装置,所述方法适用于与不同系统组件进行外部总线连接或内部总线连接的计算核心,所述方法包括:当实时检测系统组件的工作状态为异常时,获取组件处理请求,组件处理请求为工作状态为异常的组件单独发送的处理请求;响应处理请求向工作状态为异常的组件发送处理命令,以使工作状态为异常的组件单独进行异常处理操作,异常处理操作包括:重启或恢复。本发明可以检测计算核心连接的每个组件的工作状态,当检测为异常时向异常的组件发送重启或恢复指令,以使异常组件单独进行重启,实现异常的隔离处理,避免操作中断的情况,也可以避免计算核心的数据丢失以及避免重启后任务中断,确保任务能持续执行。

Description

一种关于系统组件的异常处理方法及装置
技术领域
本发明涉及组件异常处理的技术领域,尤其涉及一种关于系统组件的异常处理方法及装置。
背景技术
对于一些有计算和控制分工的SOC系统(比如笔记本服务器等)来说,操作系统通常安装在计算核心(例如CPU)上,通过控制计算核心,让计算核心调用不同的操作核心或者外接组件提取数据,再在计算核心内进行相应的计算,以完成计算处理。
但在处理过程中,不同的操作核心或者外接组件可能存在异常,在异常时往往向操作系统发送信息,使得操作系统控制计算核心和各个操作核心以及外界组件重启或恢复,从而解决异常的问题,让各个恢复正常。但目前常用的异常处理方法无论是单一组件异常还是多组件异常,均会触发整个系统对各个组件进行重启。在单一组件异常的情况下,其余各个组件均是正常工作,若触发重启会中断计算核心其它正常处理的工作,进而导致数据丢失,也让任务没有完成,下一次启动后也无法继续,需要重新开始影响计算核心和操作系统的正常工作。
发明内容
本发明提出一种关于系统组件的异常处理方法及装置,所述方法可以检测计算核心连接的每个组件和外接操作核心的工作状态,当检测为异常时向异常的组件发送重启或恢复指令,以使异常组件单独进行重启,实现异常的隔离处理,避免操作中断的情况。
本发明实施例的第一方面提供了一种关于系统组件的异常处理方法,所述方法适用于与不同系统组件进行外部总线连接或内部总线连接的计算核心,所述方法包括:
当实时检测系统组件的工作状态为异常时,获取组件处理请求,所述组件处理请求为工作状态为异常的组件单独发送的处理请求;
响应所述处理请求向所述工作状态为异常的组件发送处理命令,以使所述工作状态为异常的组件单独进行异常处理操作,所述异常处理操作包括:重启或恢复。
在第一方面的一种可能的实现方式中,所述系统组件包括控制核心,所述外部总线连接的连接方式包括:
所述控制核心通过外部设备的总线与所述控制核心连接。
在第一方面的一种可能的实现方式中,所述系统组件包括控制核心、外设组件和访问硬件,所述内部总线连接的连接方式包括:
所述控制核心与所述访问硬件连接,所述计算核心通过系统总线分别与所述外设组件和所述访问硬件连接。
在第一方面的一种可能的实现方式中,在所述响应所述处理请求向所述工作状态为异常的组件发送处理命令的步骤后,所述方法还包括:
接收所述访问硬件通过内部总线回复的无效值,并停止向所述工作状态为异常的组件发送处理命令,所述无效值是所述访问硬件确定所述工作状态为异常的组件没有响应处理命令后生成的反馈值,或者,所述访问硬件确定所述工作状态为异常的组件被标记为失败状态或无效状态后生成的反馈值。
在第一方面的一种可能的实现方式中,在所述工作状态为异常的组件完成异常处理操作后,所述方法还包括:
向所述访问硬件发送通信请求,以使所述访问硬件停止通信阻挡,供所述计算核心与所述控制核心和所述外设组件恢复通信。
在第一方面的一种可能的实现方式中,所述响应所述处理请求向所述工作状态为异常的组件发送处理命令,包括:
基于所述处理请求确定所述工作状态为异常的组件的异常处理方式;
若所述异常处理方式为重启,则向所述工作状态为异常的组件发送重启处理操作的处理命令;
若所述异常处理方式为恢复,则向所述工作状态为异常的组件发送恢复处理操作的处理命令。
在第一方面的一种可能的实现方式中,在所述向所述工作状态为异常的组件发送恢复处理操作的处理命令的步骤后,所述方法还包括:
待所述工作状态为异常的组件完成恢复操作后,发送重启处理操作的处理命令,以使所述工作状态为异常的组件进行重启操作。
在第一方面的一种可能的实现方式中,所述基于所述处理请求确定所述工作状态为异常的组件的异常处理方式,包括:
获取所述工作状态为异常的组件所连接的寄存器的预设数值,所述预设数值是用户预先在寄存器设定的数值;
若所述预设数值为重启处理操作对应的数值,则确定所述异常处理方式为重启;
若所述预设数值为恢复处理操作对应的数值,则确定所述异常处理方式为恢复。
在第一方面的一种可能的实现方式中,所述实时检测系统组件的工作状态的方式,包括:
调用系统内置软件进行组件检测以确定组件的工作状态,或者,检测系统组件的心跳包以确定组件的工作状态。
本发明实施例的第二方面提供了一种关于系统组件的异常处理装置,所述装置适用于与不同系统组件进行外部总线连接或内部总线连接的计算核心,所述装置包括:
获取模块501,用于当实时检测系统组件的工作状态为异常时,获取组件处理请求,所述组件处理请求为工作状态为异常的组件单独发送的处理请求;
处理模块502,用于响应所述处理请求向所述工作状态为异常的组件发送处理命令,以使所述工作状态为异常的组件单独进行异常处理操作,所述异常处理操作包括:重启或恢复。
在第二方面的一种可能的实现方式中,所述系统组件包括控制核心,所述外部总线连接的连接方式包括:
所述控制核心通过外部设备的总线与所述控制核心连接。
在第二方面的一种可能的实现方式中,所述系统组件包括控制核心、外设组件和访问硬件,所述内部总线连接的连接方式包括:
所述控制核心与所述访问硬件连接,所述计算核心通过系统总线分别与所述外设组件和所述访问硬件连接。
在第二方面的一种可能的实现方式中,所述装置还包括:
接收无效值模块,用于接收所述访问硬件通过内部总线回复的无效值,并停止向所述工作状态为异常的组件发送处理命令,所述无效值是所述访问硬件确定所述工作状态为异常的组件没有响应处理命令后生成的反馈值,或者,所述访问硬件确定所述工作状态为异常的组件被标记为失败状态或无效状态后生成的反馈值。
在第二方面的一种可能的实现方式中,所述装置还包括:
发送通信请求模块,用于向所述访问硬件发送通信请求,以使所述访问硬件停止通信阻挡,供所述计算核心与所述控制核心和所述外设组件恢复通信。
在第二方面的一种可能的实现方式中,所述处理模块,还用于:
基于所述处理请求确定所述工作状态为异常的组件的异常处理方式;
若所述异常处理方式为重启,则向所述工作状态为异常的组件发送重启处理操作的处理命令;
若所述异常处理方式为恢复,则向所述工作状态为异常的组件发送恢复处理操作的处理命令。
在第二方面的一种可能的实现方式中,所述处理模块,还用于:
待所述工作状态为异常的组件完成恢复操作后,发送重启处理操作的处理命令,以使所述工作状态为异常的组件进行重启操作。
在第二方面的一种可能的实现方式中,所述处理模块,还用于获取所述工作状态为异常的组件所连接的寄存器的预设数值,所述预设数值是用户预先在寄存器设定的数值;
若所述预设数值为重启处理操作对应的数值,则确定所述异常处理方式为重启;
若所述预设数值为恢复处理操作对应的数值,则确定所述异常处理方式为恢复。
在第二方面的一种可能的实现方式中,所述获取模块,还用于:
调用系统内置软件进行组件检测以确定组件的工作状态,或者,检测系统组件的心跳包以确定组件的工作状态。
相比于现有技术,本发明实施例提供的一种关于系统组件的异常处理方法及装置,其有益效果在于:本发明可以检测计算核心连接的每个组件和外接操作核心的工作状态,当检测为异常时向异常的组件发送重启或恢复指令,以使异常组件单独进行重启,实现异常的隔离处理,避免操作中断的情况,也可以避免计算核心的数据丢失,也可以避免重启后任务中断,确保任务能持续执行。
附图说明
图1是本发明一实施例提供的一种关于系统组件的异常处理方法的流程示意图;
图2是本发明一实施例提供的计算核心的连接结构示意图;
图3是本发明一实施例提供的计算核心的外部连接方式的结构示意图;
图4是本发明一实施例提供的计算核心的内部连接方式的结构示意图;
图5是本发明一实施例提供的一种关于系统组件的异常处理方法的操作流程图;
图6是本发明一实施例提供的系统组件的状态检测及异常处理的示意图;
图7是本发明一实施例提供的一种关于系统组件的异常处理方法的检测操作流程图;
图8是本发明一实施例提供的计算核心和控制核心的内部连接示意图;
图9是本发明一实施例提供的计算核心和控制核心的异常通信示意图;
图10是本发明一实施例提供的访问硬件的阻挡功能示意图;
图11是本发明一实施例提供的一种关于系统组件的异常处理装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了解决上述问题,下面将通过以下具体的实施例对本申请实施例提供的一种关于系统组件的异常处理方法进行详细介绍和说明。
参照图1,示出了本发明一实施例提供的一种关于系统组件的异常处理方法的流程示意图。
在一实施例中,所述方法适用于计算核心(如CPU)。该计算核心可以是片上系统(SOC系统)的计算核心。
参照图2,示出了本发明一实施例提供的计算核心的连接结构示意图。
在一实施例中,系统中的各个设备是通过总线或者固定的方式连接起来的,设备之间,不同处理器之间采用的是总线互连起来,外设也是类似。
参照图2,可以在计算核心中安装所需要的操作系统,计算核心可以与不同的操作核心、外设组件或者外接组件等连接,如图2所示,操作核心可以是基板管理控制器(Baseboard Management Controller,简称BMC)或者控制核心。
当主机的计算核心正常工作的时候,操作系统的任务被设定为正常工作状态,除非主机计算核心或操作系统发起恢复请求,否则计算核心被默认为是不会被恢复的。
为了方便理解,本发明的具体应用场景如下:
1.计算核心单独启动,计算核心的固件启动流程不依赖于外部的其他组件。
2.计算核心固件启动依赖于控制核心,由控制核心启动并引导计算核心。
3.计算核心固件启动依赖于BMC,由BMC启动并引导计算核心。
4.计算核心的启动不仅仅以来带一外部处理器,需要多个处理器或外设组件协同工作。
参照图3-4,分别示出了本发明一实施例提供的计算核心的外部连接方式的结构示意图和本发明一实施例提供的计算核心的内部连接方式的结构示意图。
在一实现方式中,所述系统组件包括控制核心,以计算核心和控制核心的连接方式为例
所述控制核心通过外部设备的总线与所述控制核心连接。两种核心可以通过一些特定的外部总线连接,如I2C,SPI等进行连接。
此时两者虽然是有连接的,但是实际上任何一个核心的异常或重启,不会影响另一方的其他不相关功能的异常。
参照图4,所述系统组件包括控制核心、外设组件和访问硬件,其内部总线连接的连接方式可以是:
所述控制核心与所述访问硬件连接,所述计算核心通过系统总线分别与所述外设组件和所述访问硬件连接。
控制核心和计算核心可以直接通过内部的逻辑总线连接,彼此能访问对方的资源。
其中,作为示例的,所述关于系统组件的异常处理方法,可以包括:
S11、当实时检测系统组件的工作状态为异常时,获取组件处理请求,所述组件处理请求为工作状态为异常的组件单独发送的处理请求。
在使用时可以实时检测系统内各个组件的工作状态,若由任意一个组件的工作状态为异常,可立即获取组件处理请求,基于该请求对异常的组件进行相应的处理。
而且,本发明是单独检测或计算核心连接的每个组件和外接设备操作核心的工作状态,对每个异常的组件单独进行处理操作,从而能实现异常的隔离处理,避免操作中断的情况。
其中,作为示例的,所述实时检测系统组件的工作状态的方式,包括:
调用系统内置软件进行组件检测以确定组件的工作状态,或者,检测系统组件的心跳包以确定组件的工作状态。
在一实现方式中,可以通过检测组件的心跳包,以确定组件的工作状态。具体可以是常规的心跳包检测,以确定组件的工作状态。也可以在计算核心处安装检测软件,通过软件确定组件的工作状态。
组件和各种处理核心的监控,如BMC和控制核心可以实现一个功能来告知自己,目前是否处于工作状态。
在一实施例中,确定是否需要进入异常状态可以通过WDT(看门狗,WatchdogTimer)和实时后台任务。此处以WDT为例,当组件不能响应的时候,基于WDT的模块会产生中断/异常,触发或通知系统,组件的工作状态可能为异常状态。
需要说明的是,如果组件通过外部编程初始化,如SPI是由CPU来编程的,那么和SPI对应的中断线需要和CPU的中断信号引脚实现物理路由或者物理连接。由CPU完成后续工作。
检测工作状态可以通过软件任务后台心跳等实现,精确度上会比通过WDT实现差一些,但是可控制性上会更加灵活。
在一实施例中,计算核心可以参与系统的初始化设置,在启动时计算核心可以调用不同的启动分支分别鉴别每个组件是否有异常,也可以用来确定当前组件是由于什么原因启动的,以确定其异常原因。
S12、响应所述处理请求向所述工作状态为异常的组件发送处理命令,以使所述工作状态为异常的组件单独进行异常处理操作,所述异常处理操作包括:重启或恢复。
在一实施例中,由于本发明是对每个组件进行检测,在确定异常后进行单独恢复,除计算核心之外的其他组件考虑到实际系统的影响,需要把系统划分为,每个组件的恢复是否影响到主机的CPU即,计算核心。
具体地,当确定除计算核心(即CPU)之外的其他组件出现异常,组件可以自动发出用于恢复或重启的处理请求,以触发计算核心对异常的组件进行重启或者恢复的工作,以避免部分正常工作的组件出现操作中断的情况。
其中,作为示例的,所述响应所述处理请求向所述工作状态为异常的组件发送处理命令,包括:
S121、基于所述处理请求确定所述工作状态为异常的组件的异常处理方式。
在确定所检测的组件的工作状态为异常时,可以单独向该组件发送处理命令,让该组件自行进行重启或恢复,让该组件单独操作,无需各个组件以及计算核心同时进行操作,避免当前操作中断的情况。
在其中一种的实施例中,不同的异常可能执行不同的操作方式,可能执行重启,可能执行恢复。
在一实现方式中,可以先确定该组件的处理方式,再根据处理方式发送对应的指令,让组件或不同的操作核心执行操作。
为了准确确定处理方式,其中,作为示例的,步骤S121可以包括以下子步骤:
S1211、获取所述工作状态为异常的组件所连接的寄存器的预设数值,所述预设数值是用户预先在寄存器设定的数值。
S1212、若所述预设数值为重启处理操作对应的数值,则确定所述异常处理方式为重启。
S1213、若所述预设数值为恢复处理操作对应的数值,则确定所述异常处理方式为恢复。
例如,用户可以预先在寄存器中设置数值01为重启,设置数值10为恢复。
可以检测异常的组件所连接的寄存器的数值,若该数值是01,则其处理方式为重启;若该数值是10,则其处理方式为恢复。
具体的操作方式可以根据实际需要进行调整,预设数值的大小也可以根据实际需要进行调整。
S122、若所述异常处理方式为重启,则向所述工作状态为异常的组件发送重启处理操作的处理命令。
S123、若所述异常处理方式为恢复,则向所述工作状态为异常的组件发送恢复处理操作的处理命令。
在一实施例中,若异常处理方式为重启,则可以直接向工作状态为异常的组件或操作核心发送重启处理的处理命令,让异常的组件或操作核心响应重启处理的处理命令执行重启。若异常处理方式为恢复,则可以直接向工作状态为异常的组件或操作核心发送恢复处理的处理命令,让异常的组件或操作核心响应恢复处理的处理命令执行恢复操作。
为了避免组件在恢复后启动出错,其中,作为示例的,所述方法还可以包括:
S124、待所述工作状态为异常的组件完成恢复操作后,发送重启处理操作的处理命令,以使所述工作状态为异常的组件进行重启操作。
在异常的组件或操作核心响应恢复处理的处理命令完成恢复操作后,可以同时触发重启(reset)。可以向完成了恢复操作的组件或操作核心发送重启处理的处理命令,在重启(reset)之后,组件或操作核心可以根据确定出现问题的部分和模块进行分支处理,是组件进入到工作状态。
在恢复后重新重启,可以避免组件出错,确保组件在重启后能重新使用。
需要说明的是,各个操作核心和不同组件的异常处理方式均相同,可以按照上述方式执行。
可选地,为了简化硬件设计和流程,恢复(recover)和重启(reset)可以考虑合并;BMC/控制核心的状态可以通过CPU端控制,向硬件发送恢复(recover)和重启(reset)等信号。
在一实施例中,若计算核心与控制核心、外设组件和访问硬件是通过内部总线直连的情况下,当主机和计算核心正常工作的时候,外设组件需要单独复位时,外设组件不能相应主机和计算核心的任何请求,此时外设组件通向计算核心或控制核心的内部总线是不能访问的。因此,向异常的组件方式处理命令后,可能没有反应或者回复,计算核心可能会不断重复向其方式处理命令,导致计算核心出现问题。
为了避免上述情况,其中,作为示例的,在步骤S12后所述方法还可以包括:
S13、接收所述访问硬件通过内部总线回复的无效值,并停止向所述工作状态为异常的组件发送处理命令,所述无效值是所述访问硬件确定所述工作状态为异常的组件没有响应处理命令后生成的反馈值,或者,所述访问硬件确定所述工作状态为异常的组件被标记为失败状态或无效状态后生成的反馈值。
由于异常的组件可能不能相应主机和计算核心的任何请求,此时内部总线是不能访问,访问硬件可以设有单独的访问控制逻辑来阻挡从主机和计算核心不断向异常的外设组件发送请求或命令。访问硬件可以在确定所述工作状态为异常的组件没有响应处理命令,或者,在确定所述工作状态为异常的组件没有向计算核心返回数据,又或者在确定所述工作状态为异常的组件被标记为失败状态或无效状态时,均可以生成一个反馈值(例如,ffff或者无效值),然后将反馈值发送给主机和计算核心,以通知主机和计算核心。
访问硬件的访问控制逻辑的另一个作用是要将仍然等待在控制核心内没有返回的请求返回,或者返回一个无效值,避免计算核心会因为发出去的请求没有相应出现其他问题。
在一实施例中,由于访问硬件会向主机和计算核心返回反馈值,使得主机和计算核心无法访问异常的组件,为了能让主机和计算核心重新与恢复正常的组件建立通信,其中,作为示例的,所述方法还可以包括:
S14、向所述访问硬件发送通信请求,以使所述访问硬件停止通信阻挡,供所述计算核心与所述控制核心和所述外设组件恢复通信。
当异常的组件复位完成之后,计算核心可以向访问硬件发送通信请求,使得访问硬件停止其阻挡通信的功能,停止发送反馈值,然后使主机和计算核心可以与恢复正常的组件恢复通信。
参照图5,示出了本发明一实施例提供的一种关于系统组件的异常处理方法的操作流程图。
此处仅以控制核心为例,当系统正常启动时,可以确定要启动哪一种状态,此处可以定义三种,如下:Normal,recover,reset。
正常启动时,组件会在初始化结束后进入working mode,当发生异常时,可以确定是需要recover的异常还是reset的异常,再根据不同的异常处理方式发送对应的命令或指令,使得异常的组件可以单独执行操作。
现在的系统复杂而庞大,主机CPU承担了更多的计算任务,维护了大量数据,如果系统因为其他组件异常而中断CPU的工作,有可能产生数据丢失,任务没有完成,下一次启动无法继续需要重新开始等挑战。而采用本发明的技术方案后,可以实现异常的隔离处理,增加主机系统的可用性。
另外,在一可选的实施例中,为了简化硬件设计和流程,恢复(recover)和重启(reset)可以合并处理。而BMC/控制核心的状态可以通过CPU端控制,由硬件发送recover、reset等信号。
参照图6,示出了本发明一实施例提供的系统组件的状态检测及异常处理的示意图。
图6中,T1是检测组件为异常状态的时候,T2是组件进行异常处理的时候,T3是恢复正常的时候。
假设,T1时系统除计算核心即CPU之外的其他组件出现异常,组件发出恢复/重启请求。然后,组件进入T2状态进行重启或者恢复的工作,T3时,组件恢复正常,系统不感知,其他组件的异常。在T1/T2期间,CPU和组件之间的通信无法正常相应。
另外,对于组件的工作状态检测,组件和各种处理核心的监控,如BMC和控制核心需要实现一个功能来告知自己,目前是否处于工作状态。
下面以SOC系统中非计算核心的部分重置,部分恢复为例,介绍上述关于系统组件的异常处理方法的具体应用:
如图5和图6所示,SOC系统中的各个设备是通过总线或者固定的方式连接起来的,设备之间,不同处理器之间采用的是总线互连起来,外设也是类似。当主机的计算核心正常工作的时候,操作系统的任务被设定为正常工作状态,除非主机计算核心或操作系统发起恢复请求,否则计算核心被默认为是不会被恢复的。
此处以几个方式来说明这个功能的应用场景,
1.计算核心单独启动,计算核心的固件启动流程不依赖于外部的其他组件
2.计算核心固件启动依赖于控制核心,由控制核心启动并引导计算核心。
3.计算核心固件启动依赖于BMC,由BMC启动并引导计算核心
4.计算核心的启动不仅仅以来带一外部处理器,需要多个处理器或外设组件协同工作。
组件行为:因为本发明是单独恢复,除计算核心之外的其他组件考虑到实际系统的影响,本发明可以把系统划分为,每个组件的恢复是否影响到主机的CPU即,计算核心。如下图5-6所示,T1时系统除计算核心即CPU之外的其他组件出现异常,组件发出恢复/重启请求,然后组件进入T2状态进行重启或者恢复的工作,T3时,组件恢复正常,系统不感知,其他组件的异常。在T1/T2期间,CPU和组件之间的通信无法正常相应。
组件感知:组件和各种处理核心的监控,如BMC和控制核心需要实现一个功能来告知自己,目前是否处于工作状态。
如何确定自己是否需要进入异常状态
WDT和实时后台任务都可以,此处以WDT为例,当组件不能响应的时候,基于WDT的模块会产生中断/异常,trigger系统进行状态切换。
如果此组件通过外部编程初始化,如SPI是由CPU来编程的,那么和SPI对应的中断线需要和CPU的中断信号引脚实现物理路由或者物理连接。由CPU完成后续工作。
组件状态机:此处仅以控制核心为例,当系统正常启动时,系统要确定自己要启动哪一种状态,此处本发明可以定义三种:
Normal,recover,reset
正常启动时,组件会在初始化结束后进入working mode,工作模式下,系统发生的异常,需要确定是需要recover的异常还是reset的异常,不同的是recover处理结束的时候,同样需要触发reset。Reset之后,组件需要根据确定出现问题的部分和模块进行分支处理,是组件进入到工作状态。
组件感知自己的工作状态可以通过软件任务后台心跳等实现,精确度上会比通过WDT实现差一些,但是可控制性上会更加灵活。为了简化硬件设计和流程,recover和reset可以考虑合并。BMC/控制核心的状态可以通过CPU端控制,硬件发送recover、reset等信号。
该SOC系统可以实现异常隔离,增加主机系统的可用性。
为了进一步说明,参照图7,示出了本发明一实施例提供的一种关于系统组件的异常处理方法的检测操作流程图
本发明主要参与系统初始化设置,和启动时不同的启动分支的鉴别,来确定当前子系统是由于什么原因启动的。
在一实施例中,不同组件具体的物理连接关系,此处以计算核心和控制核心的连接方式为例,通常这两个组件之间有如下两种方式连接,
第一种情况,两种核心通过一些特定的外部总线连接,如I2C,SPI等,此时两者虽然是有连接的,但是实际上任何一个核心的异常或重启,都只会导致另外一方依赖于此总线的逻辑功能缺失,但不会影响另一方的其他其他不相关功能的异常。具体如图3所示。
参照图8,示出了本。发明一实施例提供的计算核心和控制核心的内部连接示意图
另外一种情况,两种核心直接通过内部的逻辑总线连接,彼此能访问对方的资源。如下图8,正常情况下,计算核心可以直接访问其他外设。
参照图9,示出了本发明一实施例提供的计算核心和控制核心的异常通信示意图。
如图9所示,当主机和计算核心正常工作的时候,子系统单独复位时,子系统不能相应主机和计算核心的任何请求,此时通向控制核心的内部总线是不能访问的。
参照图10,示出了本发明一实施例提供的访问硬件的阻挡功能示意图。
访问硬件需要有单独的访问控制逻辑来阻挡从主机和计算核心发给子系统的请求,并且要将已经发送过去但还没有及时响应的请求,返回给主机和计算核心,标记为失败或者无效等特殊状态。访问硬件的控制逻辑的另一个作用是要将仍然等待在控制核心内没有返回的请求返回,或者返回一个无效值,否则计算核心会因为发出去的请求没有相应出现其他问题。
当子系统复位完成之后,软件需要单独设置接触这个硬件逻辑的阻挡功能,使主机和计算核心于子系统之间的通信正常,具体如图4所示。
在本实施例中,本发明实施例提供了一种关于系统组件的异常处理方法,其有益效果在于:本发明可以检测计算核心连接的每个组件和外接操作核心的工作状态,当检测为异常时向异常的组件发送重启或恢复指令,以使异常组件单独进行重启,实现异常的隔离处理,避免操作中断的情况,也可以避免计算核心的数据丢失,也可以避免重启后任务中断,确保任务能持续执行。
本发明实施例还提供了一种关于系统组件的异常处理装置,参见图11,示出了本发明一实施例提供的一种关于系统组件的异常处理装置的结构示意图。
所述装置适用于与不同系统组件进行外部总线连接或内部总线连接的计算核心。其中,作为示例的,所述关于系统组件的异常处理装置可以包括:
获取模块501,用于当实时检测系统组件的工作状态为异常时,获取组件处理请求,所述组件处理请求为工作状态为异常的组件单独发送的处理请求;
处理模块502,用于响应所述处理请求向所述工作状态为异常的组件发送处理命令,以使所述工作状态为异常的组件单独进行异常处理操作,所述异常处理操作包括:重启或恢复。
可选地,所述系统组件包括控制核心,所述外部总线连接的连接方式包括:
所述控制核心通过外部设备的总线与所述控制核心连接。
可选地,所述系统组件包括控制核心、外设组件和访问硬件,所述内部总线连接的连接方式包括:
所述控制核心与所述访问硬件连接,所述计算核心通过系统总线分别与所述外设组件和所述访问硬件连接。
可选地,所述装置还包括:
接收无效值模块,用于接收所述访问硬件通过内部总线回复的无效值,并停止向所述工作状态为异常的组件发送处理命令,所述无效值是所述访问硬件确定所述工作状态为异常的组件没有响应处理命令后生成的反馈值,或者,所述访问硬件确定所述工作状态为异常的组件被标记为失败状态或无效状态后生成的反馈值。
可选地,所述装置还包括:
发送通信请求模块,用于向所述访问硬件发送通信请求,以使所述访问硬件停止通信阻挡,供所述计算核心与所述控制核心和所述外设组件恢复通信。
可选地,所述处理模块,还用于:
基于所述处理请求确定所述工作状态为异常的组件的异常处理方式;
若所述异常处理方式为重启,则向所述工作状态为异常的组件发送重启处理操作的处理命令;
若所述异常处理方式为恢复,则向所述工作状态为异常的组件发送恢复处理操作的处理命令。
可选地,所述处理模块,还用于:
待所述工作状态为异常的组件完成恢复操作后,发送重启处理操作的处理命令,以使所述工作状态为异常的组件进行重启操作。
可选地,所述处理模块,还用于获取所述工作状态为异常的组件所连接的寄存器的预设数值,所述预设数值是用户预先在寄存器设定的数值;
若所述预设数值为重启处理操作对应的数值,则确定所述异常处理方式为重启;
若所述预设数值为恢复处理操作对应的数值,则确定所述异常处理方式为恢复。
可选地,所述获取模块,还用于:
调用系统内置软件进行组件检测以确定组件的工作状态,或者,检测系统组件的心跳包以确定组件的工作状态。
所属技术领域的技术人员可以清楚地了解到,为方便的描述和简洁,上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
进一步的,本申请实施例还提供了一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述实施例所述的关于系统组件的异常处理方法。
进一步的,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行程序,所述计算机可执行程序用于使计算机执行如上述实施例所述的关于系统组件的异常处理方法。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

Claims (10)

1.一种关于系统组件的异常处理方法,其特征在于,所述方法适用于与不同系统组件进行外部总线连接或内部总线连接的计算核心,所述方法包括:
当实时检测系统组件的工作状态为异常时,获取组件处理请求,所述组件处理请求为工作状态为异常的组件单独发送的处理请求;
响应所述处理请求向所述工作状态为异常的组件发送处理命令,以使所述工作状态为异常的组件单独进行异常处理操作,所述异常处理操作包括:重启或恢复。
2.根据权利要求1所述的关于系统组件的异常处理方法,其特征在于,所述系统组件包括控制核心,所述外部总线连接的连接方式包括:
所述控制核心通过外部设备的总线与所述控制核心连接。
3.根据权利要求1所述的关于系统组件的异常处理方法,其特征在于,所述系统组件包括控制核心、外设组件和访问硬件,所述内部总线连接的连接方式包括:
所述控制核心与所述访问硬件连接,所述计算核心通过系统总线分别与所述外设组件和所述访问硬件连接。
4.根据权利要求3所述的关于系统组件的异常处理方法,其特征在于,在所述响应所述处理请求向所述工作状态为异常的组件发送处理命令的步骤后,所述方法还包括:
接收所述访问硬件通过内部总线回复的无效值,并停止向所述工作状态为异常的组件发送处理命令,所述无效值是所述访问硬件确定所述工作状态为异常的组件没有响应处理命令后生成的反馈值,或者,所述访问硬件确定所述工作状态为异常的组件被标记为失败状态或无效状态后生成的反馈值。
5.根据权利要求3所述的关于系统组件的异常处理方法,其特征在于,在所述工作状态为异常的组件完成异常处理操作后,所述方法还包括:
向所述访问硬件发送通信请求,以使所述访问硬件停止通信阻挡,供所述计算核心与所述控制核心和所述外设组件恢复通信。
6.根据权利要求2或3所述的关于系统组件的异常处理方法,其特征在于,所述响应所述处理请求向所述工作状态为异常的组件发送处理命令,包括:
基于所述处理请求确定所述工作状态为异常的组件的异常处理方式;
若所述异常处理方式为重启,则向所述工作状态为异常的组件发送重启处理操作的处理命令;
若所述异常处理方式为恢复,则向所述工作状态为异常的组件发送恢复处理操作的处理命令。
7.根据权利要求6所述的关于系统组件的异常处理方法,其特征在于,在所述向所述工作状态为异常的组件发送恢复处理操作的处理命令的步骤后,所述方法还包括:
待所述工作状态为异常的组件完成恢复操作后,发送重启处理操作的处理命令,以使所述工作状态为异常的组件进行重启操作。
8.根据权利要求2或3所述的关于系统组件的异常处理方法,其特征在于,所述基于所述处理请求确定所述工作状态为异常的组件的异常处理方式,包括:
获取所述工作状态为异常的组件所连接的寄存器的预设数值,所述预设数值是用户预先在寄存器设定的数值;
若所述预设数值为重启处理操作对应的数值,则确定所述异常处理方式为重启;
若所述预设数值为恢复处理操作对应的数值,则确定所述异常处理方式为恢复。
9.根据权利要求1-8任意一项所述的关于系统组件的异常处理方法,其特征在于,所述实时检测系统组件的工作状态的方式,包括:
调用系统内置软件进行组件检测以确定组件的工作状态,或者,检测系统组件的心跳包以确定组件的工作状态。
10.一种关于系统组件的异常处理装置,其特征在于,所述装置适用于与不同系统组件进行外部总线连接或内部总线连接的计算核心,所述装置包括:
获取模块,用于当实时检测系统组件的工作状态为异常时,获取组件处理请求,所述组件处理请求为工作状态为异常的组件单独发送的处理请求;
处理模块,用于响应所述处理请求向所述工作状态为异常的组件发送处理命令,以使所述工作状态为异常的组件单独进行异常处理操作,所述异常处理操作包括:重启或恢复。
CN202310781658.XA 2023-06-28 2023-06-28 一种关于系统组件的异常处理方法及装置 Pending CN116820837A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310781658.XA CN116820837A (zh) 2023-06-28 2023-06-28 一种关于系统组件的异常处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310781658.XA CN116820837A (zh) 2023-06-28 2023-06-28 一种关于系统组件的异常处理方法及装置

Publications (1)

Publication Number Publication Date
CN116820837A true CN116820837A (zh) 2023-09-29

Family

ID=88125414

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310781658.XA Pending CN116820837A (zh) 2023-06-28 2023-06-28 一种关于系统组件的异常处理方法及装置

Country Status (1)

Country Link
CN (1) CN116820837A (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009003592A (ja) * 2007-06-20 2009-01-08 Meidensha Corp コンピュータの異常検出・復旧方式
JP2009104246A (ja) * 2007-10-19 2009-05-14 Fuji Electric Systems Co Ltd プログラマブルコントローラおよびその異常時復旧方法
US20180150359A1 (en) * 2016-11-29 2018-05-31 Ricoh Company, Ltd. Electronic apparatus, restarting method, and non-transitory recording medium
CN114003416A (zh) * 2021-09-23 2022-02-01 苏州浪潮智能科技有限公司 内存错误动态处理方法、系统、终端及存储介质
CN114063483A (zh) * 2020-07-30 2022-02-18 株洲中车时代电气股份有限公司 一种牵引变流器异构控制系统软件复位重启方法及系统
CN114116280A (zh) * 2021-11-11 2022-03-01 苏州浪潮智能科技有限公司 交互式bmc自恢复方法、系统、终端及存储介质
CN115373997A (zh) * 2022-08-26 2022-11-22 山东云海国创云计算装备产业创新中心有限公司 一种多核SoC的板卡固件异常监测及核心数据导出方法
CN115827355A (zh) * 2023-01-10 2023-03-21 深流微智能科技(深圳)有限公司 图形处理器中异常核的检测方法、检测装置和电子设备

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009003592A (ja) * 2007-06-20 2009-01-08 Meidensha Corp コンピュータの異常検出・復旧方式
JP2009104246A (ja) * 2007-10-19 2009-05-14 Fuji Electric Systems Co Ltd プログラマブルコントローラおよびその異常時復旧方法
US20180150359A1 (en) * 2016-11-29 2018-05-31 Ricoh Company, Ltd. Electronic apparatus, restarting method, and non-transitory recording medium
CN114063483A (zh) * 2020-07-30 2022-02-18 株洲中车时代电气股份有限公司 一种牵引变流器异构控制系统软件复位重启方法及系统
CN114003416A (zh) * 2021-09-23 2022-02-01 苏州浪潮智能科技有限公司 内存错误动态处理方法、系统、终端及存储介质
CN114116280A (zh) * 2021-11-11 2022-03-01 苏州浪潮智能科技有限公司 交互式bmc自恢复方法、系统、终端及存储介质
CN115373997A (zh) * 2022-08-26 2022-11-22 山东云海国创云计算装备产业创新中心有限公司 一种多核SoC的板卡固件异常监测及核心数据导出方法
CN115827355A (zh) * 2023-01-10 2023-03-21 深流微智能科技(深圳)有限公司 图形处理器中异常核的检测方法、检测装置和电子设备

Similar Documents

Publication Publication Date Title
US6112320A (en) Computer watchdog timer
US20090070761A1 (en) System and method for data communication with data link backup
WO2018095107A1 (zh) 一种bios程序的异常处理方法及装置
US7089413B2 (en) Dynamic computer system reset architecture
KR20000045794A (ko) 스카시 버스 장애시의 재접속 방법
US7428660B2 (en) Starting control method, duplex platform system, and information processor
JP2002259130A (ja) 情報処理システムおよびその起動制御方法
EP1172732A1 (en) Computer system and method of handling trouble of computer system
CN109358982B (zh) 硬盘自愈装置、方法以及硬盘
CN101009684B (zh) 分布式系统中单板工作状态监控装置及方法
KR101369430B1 (ko) 행 현상 관리 장치 및 방법
WO1999026138A1 (fr) Procede de permutation dans un systeme multiplex
CN115904793B (zh) 一种基于多核异构系统的内存转存方法、系统及芯片
JP2006285384A (ja) プロセッサ障害処理方式、管理プロセッサ及びプロセッサ障害処理方法
KR102438148B1 (ko) 임베디드 컴퓨팅 모듈의 이상을 감지하는 이상 감지 장치, 시스템 및 방법
CN116820837A (zh) 一种关于系统组件的异常处理方法及装置
JPH07306794A (ja) 分散システム及び分散システムの高信頼化方法
KR102211853B1 (ko) 이종의 멀티 cpu가 탑재된 시스템-온-칩 및 cpu 리부팅을 제어하는 방법
JP2001101034A (ja) 異種os間制御による障害復旧方法
JP2002049509A (ja) データ処理システム
JP2998804B2 (ja) マルチマイクロプロセッサシステム
JP3022768B2 (ja) 仮想計算機システム
CN116991637B (zh) 嵌入式系统的运行控制方法及装置、电子设备及存储介质
JP3332098B2 (ja) 二重化プロセッサ装置
JP2785992B2 (ja) サーバプログラムの管理処理方式

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