CN112631872A - 一种多核系统的异常处理方法及装置 - Google Patents

一种多核系统的异常处理方法及装置 Download PDF

Info

Publication number
CN112631872A
CN112631872A CN202011603786.8A CN202011603786A CN112631872A CN 112631872 A CN112631872 A CN 112631872A CN 202011603786 A CN202011603786 A CN 202011603786A CN 112631872 A CN112631872 A CN 112631872A
Authority
CN
China
Prior art keywords
cpu
subsystem
cpus
core system
resident
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
Application number
CN202011603786.8A
Other languages
English (en)
Other versions
CN112631872B (zh
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 Jinzhuo Technology Co Ltd
Original Assignee
Shanghai Jinzhuo 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 Jinzhuo Technology Co Ltd filed Critical Shanghai Jinzhuo Technology Co Ltd
Priority to CN202011603786.8A priority Critical patent/CN112631872B/zh
Publication of CN112631872A publication Critical patent/CN112631872A/zh
Application granted granted Critical
Publication of CN112631872B publication Critical patent/CN112631872B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • 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/0709Error 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 distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • 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/0766Error or fault reporting or storing
    • 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/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3089Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
    • G06F11/3093Configuration details thereof, e.g. installation, enabling, spatial arrangement of the probes
    • 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

Abstract

本申请提供了一种多核系统的异常处理方法及装置,该方法包括:将多核系统配置为监控子系统和若干个处理子系统,监控子系统包括一驻留CPU,每个处理子系统包括至少一个CPU,且其中之一为主CPU,其他的为从CPU;当一所述处理子系统的任意一个CPU捕获到异常时,由该任意一个CPU将捕获的异常报告给所述监控子系统的驻留CPU,并通过该处理子系统的主CPU输出异常现场数据。本申请通过设计一种多层次的异常处理方案,对多核系统进行功能配置,在发生异常时,最大程度的保存异常现场数据。

Description

一种多核系统的异常处理方法及装置
技术领域
本申请涉及嵌入式系统技术领域,特别涉及一种多核系统的异常处理方法及装置。
背景技术
现有的嵌入式系统往往是多核系统,该多核系统通常包括多个CPU,有些CPU还包括大小核,不同的CPU用不同的工艺,工作于不同的电源域、电压域和主频,使用不同的功耗模型,跑不同的场景。业界往往使用大小核系统来降低系统功耗,提高能耗比。
而随着嵌入式系统中核数的增多,系统外设越来越多,系统功能越来越复杂,软件代码量越来越大。加之嵌入式系统的运行环境往往较为复杂,特别是在无线通信应用场景中,信号环境多变且易受到干扰,系统容易产生异常。
针对此问题,通用的异常处理方式是将系统发生异常时的运行环境信息保存留待以后恢复现场并查找异常原因加以解决。保存的系统异常现场数据包括,软硬件版本信息、CPU寄存器、堆栈信息、异常和调用栈信息、当前任务/线程信息、重要的内存区数据等等。
然而,这种异常处理方式往往会存在如下问题:
在许多场景下,系统异常后的CPU已不能正常工作,并不能完整地保存上述恢复异常现场所需的重要数据;
在CPU进入死循环或者跑飞的情况下,CPU再也无法对系统异常做任何处理,进而没有获得任何异常现场数据;
在缺少异常现场数据的情况下,不能对系统异常做出正确的分析和修改,只能寄希望于下一次发生异常时获取更多的数据;
发生异常后,由于系统CPU挂起,无法进行必要的重启恢复动作,影响接下来的系统工作。
发明内容
有鉴于此,本申请的主要目的在于提供一种多核系统的异常处理方法及装置,通过设计一种多层次的异常处理方案,对多核系统进行功能配置,在发生异常时,最大程度的保存异常现场数据。
第一方面,本申请提供了一种多核系统的异常处理方法,包括:
将多核系统配置为监控子系统和若干个处理子系统,监控子系统包括一驻留CPU,每个处理子系统包括至少一个CPU,且其中之一为主CPU,其他的为从CPU;
当一所述处理子系统的任意一个CPU捕获到异常时,由该任意一个CPU将捕获的异常报告给所述监控子系统的驻留CPU,并通过该处理子系统的主CPU输出异常现场数据。
由上,本方法通过将多核系统进行功能配置,分别配置监控子系统和处理子系统,并在每个处理子系统中对应配置至少一个主CPU,具体的,每个处理子系统中包括一个CPU时,该一个CPU即为该处理子系统的主CPU,当包括多个CPU时,其中一个为主CPU,其他的为从CPU,且主CPU对从CPU进行管理。其中,监控子系统用于对各处理子系统的CPU的工作状态进行监控,实时获取各处理子系统的CPU上报的异常发生信息,当任意一个处理子系统中的CPU发生可捕获的异常时,由该CPU将捕获的异常报告给监控子系统的驻留CPU,并且通过该处理子系统中的主CPU输出异常现场数据。通过本方法,可在发生异常时,最大程度的保存异常现场数据。
可选的,所述处理子系统按照设定标准划分有核心子系统和业务子系统。
由上,根据多核系统中具体执行的功能任务,可将处理子系统进一步划分为执行核心任务的核心子系统和执行辅助任务的业务子系统,其中核心子系统的异常与否会影响整个多核系统的运行,当其发生异常时,需要对整个多核系统进行异常处理,而业务子系统的异常与否不会影响整个多核系统的运行,当其发生异常时,仅需要对该业务子系统进行异常处理即可,该多核系统的其他子系统可正常运行。
可选的,还包括:
所述捕获到异常的CPU所属的处理子系统为核心子系统时,通过该核心子系统的主CPU挂起所述多核系统的其他CPU;由监控子系统的驻留CPU执行所述多核系统的重启;
所述捕获到异常的CPU所属的处理子系统为业务子系统时,通过该业务子系统的主CPU挂起该业务子系统的其他CPU;由监控子系统的驻留CPU执行该业务子系统的重启。
由上,核心子系统用于执行多核系统中的核心任务,其异常与否会影响整个多核系统的运行,当其发生异常时,需要挂起整个多核系统的其他CPU,进一步的,还通过监控子系统的驻留CPU对整个多核系统进行重启。业务子系统用于执行多核系统中的辅助任务,其异常与否不会影响整个多核系统的运行,当其发生异常时,仅需要挂起该业务子系统的其他CPU即可,进一步的,还通过监控子系统的驻留CPU对该业务子系统进行重启。
可选的,还包括:
所述捕获到异常的CPU为从CPU时,通过该捕获到异常的从CPU发送异常现场数据给其所属处理子系统的主CPU,由该主CPU输出所述异常现场数据。
由上,每个处理子系统中包括一个CPU时,该一个CPU即为该处理子系统的主CPU,当包括多个CPU时,其中一个为主CPU,其他的为从CPU,且主CPU对从CPU进行管理,当从CPU捕获到异常时,由该从CPU将捕获的异常报告给监控子系统的驻留CPU,并且该从CPU还将异常现场数据进行整理发送给其所属处理子系统的主CPU,由该主CPU输出所述异常现场数据。
可选的,还包括:
所述监控子系统的驻留CPU捕获到异常时,通过该监控子系统的驻留CPU挂起所述多核系统的其他CPU,并输出异常现场数据;
通过该监控子系统的驻留CPU执行所述多核系统的重启。
由上,监控子系统用于执行多核系统的重要监控任务,因此当监控子系统的驻留CPU发生可捕获的异常时,也需要通过该驻留CPU输出异常现场数据,然后通过该驻留CPU挂起整个多核系统的其他CPU,并根据配置的异常处理模式,重启整个多核系统。
可选的,还包括:
通过所述监控子系统的驻留CPU检测各处理子系统的各CPU的相邻两个周期的心跳数据,判断各CPU是否发生异常;
当判断一CPU发生异常时:
若该CPU所属的处理子系统为核心子系统,通过所述驻留CPU挂起所述多核系统的其他CPU,并执行所述多核系统的重启;
若该CPU所属的处理子系统为业务子系统,通过所述驻留CPU挂起该业务子系统的其他CPU,并执行该业务子系统的重启。
可选的,所述判断各CPU是否发生异常包括:
检测各CPU的相邻两个周期的心跳数据一致时,判断为异常。
由上,核心子系统和业务子系统中的各个CPU会周期性的更新其心跳数据,每个周期的心跳数据不同,并将其心跳数据分别存储到多核系统的一个共享内存区,所述监控子系统会以周期性(一个周期或两个周期)读取该共享内存区的各个CPU的心跳数据,并保存在本地,该监控子系统通过将其读取的心跳数据与本地数据进行对比,即检测各个CPU的相邻两个周期的心跳数据,若相邻两个周期的心跳数据一致,则认为发送该心跳数据的CPU发生了死循环或跑飞异常,此时根据发生异常的CPU属于核心子系统或业务子系统,来判断是挂起整个多核系统的其他CPU,还是挂起发生异常的该业务子系统的其他CPU,然后根据配置的重启任务,重启整个多核系统,或重启该发生异常的业务子系统。
可选的,所述驻留CPU为所述多核系统中性能最低或功耗最小的CPU。
由上,一般选用多核系统中的性能最低或功耗最小的CPU作为监控子系统的驻留CPU,以监控多核系统中其他核的工作状态,并在发生异常时,协调执行对异常的处理。
可选的,所述输出异常现场数据包括:
将异常现场数据输出至打印系统或文件保存系统。
第二方面,本申请提供了一种多核系统的异常处理装置,包括:
配置单元,用于将多核系统配置为监控子系统和若干个处理子系统,监控子系统包括一驻留CPU,每个处理子系统包括至少一个CPU,且其中之一为主CPU,其他的为从CPU;
处理单元,用于在当一所述处理子系统的任意一个CPU捕获到异常时,由该任意一个CPU将捕获的异常报告给所述监控子系统的驻留CPU,并通过该处理子系统的主CPU输出异常现场数据。
第三方面,本申请提供了一种计算机设备,所述计算机设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现所述多核系统的异常处理方法。
第四方面,本申请提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被计算机执行时实现多核系统的异常处理方法。
本申请的这些和其它方面在以下(多个)实施例的描述中会更加简明易懂。
附图说明
图1为本申请实施例提供的一种多核系统的异常处理方法的流程图;
图2为本申请实施例提供的一种AP子系统的异常处理流程图;
图3为本申请实施例提供的一种CP子系统的主CPU异常处理流程图;
图4为本申请实施例提供的一种CP子系统的从CPU异常处理流程图;
图5为本申请实施例提供的一种CP子系统的心跳检测异常处理流程图;
图6为本申请实施例提供的一种多核系统的异常处理装置的框架图;
图7为本申请实施例提供的一种计算设备的结构性示意性图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
说明书和权利要求书中的词语“第一、第二、第三等”或模块A、模块B、模块C等类似用语,仅用于区别类似的对象,不代表针对对象的特定排序,可以理解地,在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
在以下的描述中,所涉及的表示步骤的标号,如S110、S120……等,并不表示一定会按此步骤执行,在允许的情况下可以互换前后步骤的顺序,或同时执行。
说明书和权利要求书中使用的术语“包括”不应解释为限制于其后列出的内容;它不排除其它的元件或步骤。因此,其应当诠释为指定所提到的所述特征、整体、步骤或部件的存在,但并不排除存在或添加一个或更多其它特征、整体、步骤或部件及其组群。因此,表述“包括装置A和B的设备”不应局限为仅由部件A和B组成的设备。
本说明书中提到的“一个实施例”或“实施例”意味着与该实施例结合描述的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在本说明书各处出现的用语“在一个实施例中”或“在实施例中”并不一定都指同一实施例,但可以指同一实施例。此外,在一个或多个实施例中,能够以任何适当的方式组合各特定特征、结构或特性,如从本公开对本领域的普通技术人员显而易见的那样。
本申请提出了一种多核系统的异常处理方法及装置,通过设计一种多层次的异常处理方案,对多核系统进行功能配置,在发生异常时,最大程度的保存异常现场数据,并根据发生异常的CPU的功能,进行对应的异常处理,从而快速恢复多核系统的工作状态。
下面结合附图对本申请实施例进行详细说明。
如图1所示,本申请实施例提供的一种多核系统的异常处理方法中,包括:
S101:将多核系统配置为监控子系统和若干个处理子系统,监控子系统包括一驻留CPU,每个处理子系统包括至少一个CPU,且其中之一为主CPU,其他的为从CPU;
S102:当一所述处理子系统的任意一个CPU捕获到异常时,由该任意一个CPU将捕获的异常报告给所述监控子系统的驻留CPU,并通过该处理子系统的主CPU输出异常现场数据。
本申请实施例中,多核系统包括多个CPU,根据功能或应用场景可将该多核系统划分为监控子系统和若干个处理子系统,其中监控子系统可以选用多核系统中性能最低或功耗最小的CPU,该CPU为单核,以监控该多核系统中各处理子系统的工作状态,并在发生异常时,由各处理子系统的主CPU输出异常现场数据,并通过该监控子系统的驻留CPU协调完成该多核系统的异常处理。具体的,根据执行任务的重要程度,所述处理子系统划分为核心子系统和业务子系统;其中,所述核心子系统用于执行所述多核系统的核心任务;所述业务子系统用于执行所述多核系统的辅助任务。核心子系统的异常与否会影响整个多核系统的运行,当其发生异常时,需要对整个多核系统进行异常处理,而业务子系统的异常与否不会影响整个多核系统的运行,当其发生异常时,仅需要对该业务子系统进行异常处理即可,该多核系统的其他子系统可正常运行。
其中,核心子系统可以选用该多核系统中的一个性能最高的CPU,该CPU可以为双核CPU或多核CPU,以执行该多核系统的核心任务,其工作状态直接影响该多核系统的整体工作状态。业务子系统可以包括一主CPU核若干个从CPU,该主CPU和从CPU通常选用单核CPU,且主CPU的性能大于从CPU,其中主CPU用于管理该若干个从CPU,每个业务子系统仅用于执行其对应的业务任务,且多个业务子系统之间相互独立,且不会互相影响。
基于此,根据捕获到异常的CPU所属的子系统,可进一步执行下述的处理:
所述捕获到异常的CPU所属的处理子系统为核心子系统时,通过该核心子系统的主CPU挂起所述多核系统的其他CPU,由监控子系统的驻留CPU执行所述多核系统的重启。
所述捕获到异常的CPU所属的处理子系统为业务子系统时,通过该业务子系统的主CPU挂起该业务子系统的其他CPU,由监控子系统的驻留CPU执行该业务子系统的重启。
其中,所述捕获到异常的CPU为从CPU时,通过该捕获到异常的从CPU发送异常现场数据给其所属处理子系统的主CPU,由该主CPU输出所述异常现场数据。
除此之外,监控子系统的异常与否也会影响整个多核系统的运行,因此,当所述监控子系统的驻留CPU捕获到异常时,通过该监控子系统的驻留CPU挂起所述多核系统的其他CPU,并输出异常现场数据;进一步的,根据配置的重启任务,通过该监控子系统的驻留CPU执行所述多核系统的重启。
本申请实施例中,当核心子系统或业务子系统中的任意一个CPU发生不可捕获的异常时,此时可以通过所述监控子系统的驻留CPU检测所述核心子系统和业务子系统的各个CPU的相邻两个周期的心跳数据,判断所述各个CPU是否发生异常。该心跳数据为所述核心子系统和业务子系统中的各个CPU分别周期性更新到该多核系统的一个共享内存区的心跳数据,每个周期的心跳数据不同,所述监控子系统的驻留CPU会以周期性(一个周期或两个周期)读取该共享内存区的各个CPU的心跳数据,并保存在本地,该监控子系统的驻留CPU通过将其读取的心跳数据与本地数据进行对比,即检测各个CPU的相邻两个周期的心跳数据,若相邻两个周期的心跳数据一致,则认为发送该心跳数据的CPU发生了死循环或跑飞异常;
本申请实施例中,该心跳数据还可以通过计时数据来等效替换,即通过在共享内存区设置一个看门狗计时器,该看门狗计时器中分别存储着每个CPU对应的计时数据,当多核系统启动时,该看门狗计时器的初始值设置为零,之后在CPU每更新一次心跳数据时,其对应的计时数据加一,所述监控子系统的驻留CPU会以周期性(一个周期或两个周期)读取该共享内存区的看门狗计时器的各个CPU的计时数据,并保存在本地,该监控子系统的驻留CPU通过将其读取的计时数据与本地数据进行对比,即将看门狗计时器的各个CPU的相邻两个周期的计时数据进行对比,若相邻两个周期的计时数据一致,则认为该计时数据所对应的CPU发生了死循环或跑飞异常,当发生异常的CPU位于业务子系统时,通过所述监控子系统的驻留CPU挂起该业务子系统的各CPU;或者当发生异常的CPU位于核心子系统时,通过所述监控子系统挂起所述多核系统的各CPU。
当监控子系统的驻留CPU通过上述两种监控方式监控到核心子系统或业务子系统中的一个CPU或多个CPU发生异常时,根据该异常的严重程度,进行对应的重启处理。
本申请实施例中,异常的严重程度主要根据发生异常的子系统属于核心子系统还是业务子系统进行判定,具体的,
当所述业务子系统发生异常时,根据配置的重启任务,通过监控子系统的驻留CPU重启该业务子系统的各CPU;
当所述核心子系统发生异常时,根据配置的重启任务,通过监控子系统的驻留CPU重启该多核系统的各CPU。
本申请实施例提供的多核系统的异常处理方法,通过将多核系统进行功能配置,分别配置监控子系统、核心子系统和业务子系统,并通过监控子系统对各个子系统进行监控,当发生异常时,由发生异常的CPU报告其异常发生信息,并通过发生异常的子系统中的主CPU输出异常现场数据,然后根据子系统的功能进行对应的异常处理,例如当发生异常的子系统为业务子系统时,同步挂起该业务子系统的各CPU;或者当发生异常的子系统为核心子系统时,同步挂起所述多核系统的各CPU。进一步的,在完成输出和挂起后,还可选择重启业务子系统或整个多核系统,从而尽可能的快速恢复该多核系统的工作状态。
下面根据本申请提供的一个嵌入式的多核系统,对本申请的技术方案做进一步描述。
本申请实施例中,该嵌入式的多核系统包括多个CPU,具体为1个Cortex-M4 CPU(以下简称CM4),1个Cortex-A7双核CPU(以下简称AP),2个Cortex-A7单核CPU(以下简称CP),2个X1643DSP(以下简称DSP0)和两个X4500 DSP(以下简称DSP1)。
根据功能和应用场景,将该多核系统中的多个CPU划分为四个子系统,分别为监控子系统(包括CM4)、AP子系统(包括AP)、第一CP子系统(包括CP0、CP0_DSP0和CP0_DSP1)和第二CP子系统(包括CP1、CP1_DSP0和CP1_DSP1)。其中监控子系统和AP子系统为该多核系统的核心子系统,第一CP子系统和第二CP子系统为该多核系统的业务子系统。下面参照如图2-图4,对各个子系统的异常处理流程进行详细介绍。
如图2所示,本申请实施例提供的一种AP子系统的异常处理流程中,由监控子系统对该多核系统中的各个子系统的工作状态进行实时监控,当AP子系统发生异常时,由该AP子系统中的CPU(AP)将捕获的异常发送给监控子系统(发送CPU_ASSERT(AP)消息),通知该监控子系统其发生异常,同时,由该AP子系统中的CPU(AP)通知该多核系统的其他子系统(第一CP子系统和第二CP子系统)的各个CPU进入待机模式(发送CPU_IDLE消息),同时,该AP子系统中的CPU(AP)还同步输出异常现场数据,发送至打印系统或文件保存系统;
由于该AP子系统为多核系统的核心子系统,当其发生异常时,会影响整个多核系统的工作状态,因此需要根据配置的异常处理模式,进行进一步的异常处理,例如当配置为异常重启模式时,则由该AP子系统的CPU(AP)向监控子系统发送重启请求(发送SUBSYS_REBOOT消息),该监控子系统根据接收的重启请求,重启整个多核系统;当配置为非异常重启模式时,则继续保持整个多核系统的待机状态。
如图3所示,本申请实施例提供的一种CP子系统的主CPU异常处理流程中,由监控子系统对该多核系统中的各个子系统的工作状态进行实时监控,当其中一个CP子系统的某个CPU发生异常时,例如第一CP子系统的主CPU(CP0)发生异常,由该第一CP子系统中出现异常的主CPU(CP0)将捕获的异常发送给监控子系统(发送CPU_ASSERT(CP0)消息),通知该监控子系统其发生异常,同时,由该第一CP子系统的主CPU(CP0)通知该第一CP子系统的其他从CPU(CP0_DSP0和CP0_DSP1)进入待机模式(发送CPU_IDLE消息),同时,该第一CP子系统的主CPU(CP0)还同步输出异常现场数据,发送至打印系统或文件保存系统;
由于该第一CP子系统为多核系统的业务子系统,当其发生异常时,只会影响其本身的工作状态,因此需要根据配置的异常处理模式,进行进一步的异常处理,例如当配置为异常重启模式时,则由该第一CP子系统的主CPU(CP0)向监控子系统发送重启请求(发送SUBSYS_REBOOT消息),该监控子系统根据接收的重启请求,重启该第一CP子系统;当配置为非异常重启模式时,则继续保持该第一CP子系统的待机状态,但不会影响其他子系统的工作状态。
如图4所示,本申请实施例提供的一种CP子系统的从CPU异常处理流程中,当该第一CP子系统中发生异常的CPU为从CPU(CP1_DSP0或CP1_DSP1)时,则由该发生异常的从CPU将捕获的异常发送给监控子系统(发送CPU_ASSERT(DSP0或DSP1)消息),然后由该第一CP子系统的主CPU(CP0)通知该第一CP子系统的其他从CPU进入待机模式(发送CPU_IDLE消息),同时,该发生异常的从CPU将异常现场数据发送给该第一CP子系统的主CPU(CP0),由该第一CP子系统的主CPU(CP0)发送至打印系统或文件保存系统;
进一步的,当配置的异常处理模式为异常重启模式时,则由该第一CP子系统的主CPU(CP0)向监控子系统发送重启请求(发送SUBSYS_REBOOT消息),该监控子系统根据接收的重启请求,重启该第一CP子系统;当配置的异常处理模式为非异常重启模式时,则继续保持该第一CP子系统的待机状态,但不会影响其他子系统的工作状态,其他未发生异常的子系统保持正常工作状态。
如图5所示,本申请实施例提供的一种CP子系统的心跳检测异常处理流程中,该多核系统的各个CPU会周期性的将其心跳数据更新到一个共享内存区,每个周期的心跳数据不同,所述监控子系统会以周期性(一个周期或两个周期)读取该共享内存区的各个CPU的心跳数据,并保存在本地,该监控子系统通过将其读取的心跳数据与本地数据进行对比,即将各个CPU的相邻两个周期的心跳数据进行对比,若相邻两个周期的心跳数据一致,则认为发送该心跳数据的CPU发生了死循环或跑飞异常。
以第一CP子系统为例,该第一CP子系统的CPU(CP0、CP0_DSP0和CP0_DSP1)分别以T0周期、T1周期、T2周期的频率更新其心跳数据,并分别存储到共享内存区,所述监控子系统以两个周期的频率读取该共享内存区存储的各个CPU的心跳数据,并与本地存储的前一次读取的心跳数据进行对比,若一致,则认为该一致的心跳数据对应的CPU未正常周期性更新其心跳数据到共享内存区,则判断其发生死循环或跑飞异常,此时由该监控子系统通知该第一CP子系统的各个CPU进入待机模式(发送SUBSYSTEM_IDLE消息),并根据配置的重启任务,重启该第一CP子系统的各个CPU。
本申请实施例中,若发生死循环或跑飞异常的CPU为核心子系统时,则需要通知该多核系统的各个CPU进入待机状态,然后根据配置的重启任务,重启该多核系统的各个CPU。
如图6所示为本申请实施例提供的一种多核系统的异常处理装置,该装置包括:
配置单元601,用于将多核系统配置为监控子系统和若干个处理子系统,监控子系统包括一驻留CPU,每个处理子系统包括至少一个CPU,且其中之一为主CPU,其他的为从CPU;
处理单元602,用于在当一所述处理子系统的任意一个CPU捕获到异常时,由该任意一个CPU将捕获的异常报告给所述监控子系统的驻留CPU,并通过该处理子系统的主CPU输出异常现场数据。
通过该异常处理装置,可实现上述图1-图5所示的实施例的异常处理方法,此处不再赘述。
图7是本申请实施例提供的一种计算设备1500的结构性示意性图。该计算设备1500包括:处理器1510、存储器1520、通信接口1530、总线1540。
应理解,图7所示的计算设备1500中的通信接口1530可以用于与其他设备之间进行通信。
其中,该处理器1510可以与存储器1520连接。该存储器1520可以用于存储该程序代码和数据。因此,该存储器1520可以是处理器1510内部的存储单元,也可以是与处理器1510独立的外部存储单元,还可以是包括处理器1510内部的存储单元和与处理器1510独立的外部存储单元的部件。
可选的,计算设备1500还可以包括总线1540。其中,存储器1520、通信接口1530可以通过总线1540与处理器1510连接。总线1540可以是外设部件互连标准(PeripheralComponent Interconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。所述总线1540可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。
应理解,在本申请实施例中,该处理器1510可以采用中央处理单元(centralprocessing unit,CPU)。该处理器还可以是其它通用处理器、数字信号处理器(digitalsignal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate Array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。或者该处理器1510采用一个或多个集成电路,用于执行相关程序,以实现本申请实施例所提供的技术方案。
该存储器1520可以包括只读存储器和随机存取存储器,并向处理器1510提供指令和数据。处理器1510的一部分还可以包括非易失性随机存取存储器。例如,处理器1510还可以存储设备类型的信息。
在计算设备1500运行时,所述处理器1510执行所述存储器1520中的计算机执行指令执行上述方法的操作步骤。
应理解,根据本申请实施例的计算设备1500可以对应于执行根据本申请各实施例的方法中的相应主体,并且计算设备1500中的各个模块的上述和其它操作和/或功能分别为了实现本实施例各方法的相应流程,为了简洁,在此不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时用于执行一种多样化问题生成方法,该方法包括上述各个实施例所描述的方案中的至少之一。
本申请实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是,但不限于,电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括、但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本申请的较佳实施例及所运用的技术原理。本领域技术人员会理解,本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请的构思的情况下,还可以包括更多其他等效实施例,均属于本申请的保护范畴。

Claims (10)

1.一种多核系统的异常处理方法,其特征在于,包括:
将多核系统配置为监控子系统和若干个处理子系统,监控子系统包括一驻留CPU,每个处理子系统包括至少一个CPU,且其中之一为主CPU,其他的为从CPU;
当一所述处理子系统的任意一个CPU捕获到异常时,由该任意一个CPU将捕获的异常报告给所述监控子系统的驻留CPU,并通过该处理子系统的主CPU输出异常现场数据。
2.根据权利要求1所述的方法,其特征在于,所述处理子系统按照设定标准划分有核心子系统和业务子系统。
3.根据权利要求2所述的方法,其特征在于,还包括:
所述捕获到异常的CPU所属的处理子系统为核心子系统时,通过该核心子系统的主CPU挂起所述多核系统的其他CPU;由监控子系统的驻留CPU执行所述多核系统的重启;
所述捕获到异常的CPU所属的处理子系统为业务子系统时,通过该业务子系统的主CPU挂起该业务子系统的其他CPU;由监控子系统的驻留CPU执行该业务子系统的重启。
4.根据权利要求1所述的方法,其特征在于,还包括:
所述捕获到异常的CPU为从CPU时,通过该捕获到异常的从CPU发送异常现场数据给其所属处理子系统的主CPU,由该主CPU输出所述异常现场数据。
5.根据权利要求1所述的方法,其特征在于,还包括:
所述监控子系统的驻留CPU捕获到异常时,通过该监控子系统的驻留CPU挂起所述多核系统的其他CPU,并输出异常现场数据;
通过该监控子系统的驻留CPU执行所述多核系统的重启。
6.根据权利要求2所述的方法,其特征在于,还包括:
通过所述监控子系统的驻留CPU检测各处理子系统的各CPU的相邻两个周期的心跳数据,判断各CPU是否发生异常;
当判断一CPU发生异常时:
若该CPU所属的处理子系统为核心子系统,通过所述驻留CPU挂起所述多核系统的其他CPU,并执行所述多核系统的重启;
若该CPU所属的处理子系统为业务子系统,通过所述驻留CPU挂起该业务子系统的其他CPU,并执行该业务子系统的重启。
7.根据权利要求1至6任意一项所述的方法,其特征在于,所述驻留CPU为所述多核系统中性能最低或功耗最小的CPU。
8.一种多核系统的异常处理装置,其特征在于,包括:
配置单元,用于将多核系统配置为监控子系统和若干个处理子系统,监控子系统包括一驻留CPU,每个处理子系统包括至少一个CPU,且其中之一为主CPU,其他的为从CPU;
处理单元,用于在当一所述处理子系统的任意一个CPU捕获到异常时,由该任意一个CPU将捕获的异常报告给所述监控子系统的驻留CPU,并通过该处理子系统的主CPU输出异常现场数据。
9.一种计算机设备,其特征在于,所述计算机设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现权利要求1至7任意一项所述的方法。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,该计算机程序被计算机执行时实现权利要求1至7任意一项所述的方法。
CN202011603786.8A 2020-12-30 2020-12-30 一种多核系统的异常处理方法及装置 Active CN112631872B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011603786.8A CN112631872B (zh) 2020-12-30 2020-12-30 一种多核系统的异常处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011603786.8A CN112631872B (zh) 2020-12-30 2020-12-30 一种多核系统的异常处理方法及装置

Publications (2)

Publication Number Publication Date
CN112631872A true CN112631872A (zh) 2021-04-09
CN112631872B CN112631872B (zh) 2024-02-23

Family

ID=75287564

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011603786.8A Active CN112631872B (zh) 2020-12-30 2020-12-30 一种多核系统的异常处理方法及装置

Country Status (1)

Country Link
CN (1) CN112631872B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114327828A (zh) * 2021-12-29 2022-04-12 科东(广州)软件科技有限公司 一种共享数据的并发访问方法、装置、设备及介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101256519A (zh) * 2008-03-27 2008-09-03 中兴通讯股份有限公司 异构多核系统及基于该系统的串口控制自动切换方法
CN101324855A (zh) * 2008-08-12 2008-12-17 杭州华三通信技术有限公司 辅助cpu工作状态的检测方法、系统、组件及多cpu设备
CN101635652A (zh) * 2009-09-07 2010-01-27 杭州华三通信技术有限公司 多核系统的故障恢复方法和设备
CN102073572A (zh) * 2009-11-24 2011-05-25 中兴通讯股份有限公司 用于多核处理器的监控方法及系统
US20120089861A1 (en) * 2010-10-12 2012-04-12 International Business Machines Corporation Inter-processor failure detection and recovery
CN103544092A (zh) * 2013-11-05 2014-01-29 中国航空工业集团公司西安飞机设计研究所 一种基于arinc653标准机载电子设备健康监控体系

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101256519A (zh) * 2008-03-27 2008-09-03 中兴通讯股份有限公司 异构多核系统及基于该系统的串口控制自动切换方法
CN101324855A (zh) * 2008-08-12 2008-12-17 杭州华三通信技术有限公司 辅助cpu工作状态的检测方法、系统、组件及多cpu设备
CN101635652A (zh) * 2009-09-07 2010-01-27 杭州华三通信技术有限公司 多核系统的故障恢复方法和设备
CN102073572A (zh) * 2009-11-24 2011-05-25 中兴通讯股份有限公司 用于多核处理器的监控方法及系统
US20120089861A1 (en) * 2010-10-12 2012-04-12 International Business Machines Corporation Inter-processor failure detection and recovery
CN103544092A (zh) * 2013-11-05 2014-01-29 中国航空工业集团公司西安飞机设计研究所 一种基于arinc653标准机载电子设备健康监控体系

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114327828A (zh) * 2021-12-29 2022-04-12 科东(广州)软件科技有限公司 一种共享数据的并发访问方法、装置、设备及介质

Also Published As

Publication number Publication date
CN112631872B (zh) 2024-02-23

Similar Documents

Publication Publication Date Title
CN107734035B (zh) 一种云计算环境下的虚拟集群自动伸缩方法
US9335998B2 (en) Multi-core processor system, monitoring control method, and computer product
US8601315B2 (en) Debugger recovery on exit from low power mode
WO2023115999A1 (zh) 设备状态监控方法、装置、设备及计算机可读存储介质
US9298553B2 (en) Methods, apparatus and system for selective duplication of subtasks
EP3591485B1 (en) Method and device for monitoring for equipment failure
WO2018095107A1 (zh) 一种bios程序的异常处理方法及装置
US20170269984A1 (en) Systems and methods for improved detection of processor hang and improved recovery from processor hang in a computing device
CN102761439A (zh) Pon接入系统中基于看门狗的异常检测记录装置及方法
CN112596568B (zh) 一种读取电压调节器报错信息的方法、系统、设备及介质
US20150006978A1 (en) Processor system
CN102891762B (zh) 连续处理网络数据的系统及方法
US10955900B2 (en) Speculation throttling for reliability management
CN104506362A (zh) 一种cc-numa多节点服务器上系统状态切换和监控的方法
CN114328098B (zh) 一种慢节点检测方法、装置、电子设备及存储介质
CN114116280A (zh) 交互式bmc自恢复方法、系统、终端及存储介质
CN112035285A (zh) 基于高通平台的硬件看门狗电路系统及其监控方法
CN111796954A (zh) 基于jvm的看门狗的控制方法、装置、设备及存储介质
CN112631872A (zh) 一种多核系统的异常处理方法及装置
US8060778B2 (en) Processor controller, processor control method, storage medium, and external controller
US10198275B2 (en) Protecting firmware flashing from power operations
CN115576734B (zh) 一种多核异构日志存储方法和系统
CN103975310A (zh) 用于在复位之前保存条件以用于复位后评估的方法和设备
KR102023164B1 (ko) 알티오에스 마이컴의 오에스 태스크의 모니터링 방법
CN108897248A (zh) 一种多cpu控制器和移动机器人

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