CN117234787B - 系统级芯片运行状态监控方法及系统 - Google Patents
系统级芯片运行状态监控方法及系统 Download PDFInfo
- Publication number
- CN117234787B CN117234787B CN202311511225.9A CN202311511225A CN117234787B CN 117234787 B CN117234787 B CN 117234787B CN 202311511225 A CN202311511225 A CN 202311511225A CN 117234787 B CN117234787 B CN 117234787B
- Authority
- CN
- China
- Prior art keywords
- firmware
- monitoring
- chip
- watchdog
- memory subsystem
- 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.)
- Active
Links
- 238000012544 monitoring process Methods 0.000 title claims abstract description 184
- 238000000034 method Methods 0.000 title claims abstract description 74
- 230000005856 abnormality Effects 0.000 claims abstract description 51
- 230000002159 abnormal effect Effects 0.000 claims abstract description 29
- 230000004044 response Effects 0.000 claims description 60
- 230000006870 function Effects 0.000 claims description 55
- 238000012546 transfer Methods 0.000 claims description 50
- 238000004891 communication Methods 0.000 claims description 43
- 238000007781 pre-processing Methods 0.000 claims description 36
- 230000008569 process Effects 0.000 claims description 27
- 238000001514 detection method Methods 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 13
- 238000011084 recovery Methods 0.000 claims description 7
- 238000004321 preservation Methods 0.000 claims description 2
- 238000007726 management method Methods 0.000 description 47
- 238000010586 diagram Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- CXOXHMZGEKVPMT-UHFFFAOYSA-N clobazam Chemical compound O=C1CC(=O)N(C)C2=CC=C(Cl)C=C2N1C1=CC=CC=C1 CXOXHMZGEKVPMT-UHFFFAOYSA-N 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 229940044442 onfi Drugs 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本申请公开了一种系统级芯片运行状态监控方法及系统,涉及系统级芯片的技术领域,包括在每个所述固件上初始化看门狗组件;在每个所述固件上创建监控线程,所述监控线程根据所述看门狗组件监控所述固件是否出现异常;响应于某个所述固件出现异常,使所述内存子系统通过预设协议与其他固件交互,并将所有所述固件的核心信息转存至非易失性介质中。本申请在不使用Linux情况下对系统级芯片进行监控,并且在系统出现异常时,将核心数据进行转储,提高整个系统保存数据的可靠性。
Description
技术领域
本申请涉及系统级芯片的技术领域,具体涉及一种系统级芯片运行状态监控方法及系统。
背景技术
目前,系统级芯片运行过程中,在Linux系统中当某些程序发生错误而导致进程异常退出时,Linux内核会根据进程当时的内存信息,自动生成一个核心转储文件(Core-dump文件),同时使用GDB(GNU symbolic debugger,程序调节工具)重现导致进程异常退出的场景,并通过GDB寻找导致进程异常退出的原因。
以上过程虽然能够对系统级芯片进行监控,但是通过Linux系统实现的监控方法会占用较多的系统资源,影响系统的运行速度;而且,若在固件出现异常时,没有将核心转储文件送出芯片外,可能会导致系统数据的丢失,影响系统数据的安全性。
发明内容
为了解决上述背景技术中提到的至少一个问题,本申请提供了一种系统级芯片运行状态监控方法及系统,在不使用Linux情况下对系统级芯片进行监控,并且在系统出现异常时,将核心数据进行转储,提高整个系统保存数据的可靠性。
本申请实施例提供的具体技术方案如下:
第一方面,提供一种系统级芯片运行状态监控方法,应用于系统级芯片,所述系统级芯片包括若干固件及内存子系统,所述方法包括:
在每个所述固件上初始化看门狗组件;
在每个所述固件上创建监控线程,所述监控线程根据所述看门狗组件监控所述固件是否出现异常;
响应于某个所述固件出现异常,使所述内存子系统通过预设协议与其他固件交互,并将所有所述固件的核心信息转存至非易失性介质中。
在一个具体的实施例中,设置所述系统级芯片包括至少一个看门狗硬件,设置所述系统级芯片的固件中包括至少一个管理控制固件;
通过所述管理控制固件初始化所述看门狗硬件,通过其他固件初始化所述管理控制固件创建的看门狗软件。
在一个具体的实施例中,所述根据所述看门狗组件在每个所述固件上创建监控线程,所述监控线程根据所述看门狗组件监控所述固件是否出现异常,具体包括:
获取所述固件上的所有任务,为每个所述任务设置分线监控线程;
将所有所述分线监控线程注册到所述监控线程中;
响应于所述分线监控线被调度时,调用自增函数,并设置所述自增函数数值加1;
响应于所述监控线程遍历所有所述分线监控线程的自增函数数值,得到遍历结果。
在一个具体的实施例中,所述响应于所述监控线程遍历所有所述分线监控线程的自增函数数值,并得到遍历结果,具体包括:
设置所述监控线程每间隔第一预设时间开始遍历所述分线监控线程的自增函数数值;
响应于所述自增函数数值在预设范围内,清零所述分线监控线程的子自增函数数值;
或者,响应于所述自增函数数值不在预设范围内,触发所述看门狗组件超时。
在一个具体的实施例中,在遍历所有所述分线监控线程完成后,执行所述看门狗组件复位操作。
在一个具体的实施例中,响应于某个所述固件出现异常的检测方法,具体包括:响应于所述固件中的所述看门狗组件超时,判定所述固件出现异常。
在一个具体的实施例中,响应于某个所述固件出现异常之后,还包括:
向主机端发送停止通信指令;
以使得所述主机端接收所述停止通信指令,并停止所述主机端与所述系统级芯片的通信;判断是否开始信息转存;
响应于开始进行信息转存,恢复所述主机端与所述系统级芯片的通信。
在一个具体的实施例中,响应于某个所述固件出现异常,所述内存子系统通过预设协议与其他固件交互,并将所有所述固件的核心信息转存至非易失性介质中,具体包括:响应于某个所述固件出现异常,向所有固件发送看门狗预警信息;
待其他固件接收所述看门狗预警信息后,使所有固件开始转存预处理;
响应于所述主机端与所述系统级芯片的恢复通信,使所有固件传输转存预处理完成信息至所述内存子系统;
响应于所述内存子系统接收到至少一个所述固件的转存预处理完成信息,以供所述内存子系统通过预设协议获取所述固件的核心信息并保存至预设非易失性介质中。
在一个具体的实施例中,所述响应于某个所述固件出现异常之后,还包括:
控制所有固件停止运行所述固件上的所有任务进程。
在一个具体的实施例中,所述方法还包括:
控制所述管理控制固件通过所述预设协议向所述内存子系统发送心跳检测信息;
并使所述内存子系统接收并应答所述心跳检测信息;
响应于所述内存子系统异常,控制所述管理控制固件复位所述内存子系统,并上报异常信息;或者,响应于所述内存子系统正常,开始获取所述固件的核心信息并保存至预设非易失性介质中。
在一个具体的实施例中,所述方法还包括:
完成所述固件的核心信息的保存后,并通过所述内存子系统在所述非易失性介质中设置转存标志。
第二方面,提供一种系统级芯片运行状态监控系统,应用于系统级芯片,所述系统级芯片包括若干固件及内存子系统,所述系统包括:
设置单元,用于在每个所述固件上初始化看门狗组件;
监控单元,用于在每个所述固件上创建监控线程,所述监控线程根据所述看门狗组件监控所述固件是否出现异常;
响应单元,用于响应于某个所述固件出现异常,使所述内存子系统通过预设协议与其他固件交互,并将所有所述固件的核心信息转存至非易失性介质中。
第三方面,提供一种系统级芯片,所述系统级芯片包括如上所述的系统级芯片运行状态监控系统。
第四方面,提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
步骤A:在每个所述固件上初始化看门狗组件;
步骤B:在每个所述固件上创建监控线程,所述监控线程根据所述看门狗组件监控所述固件是否出现异常;
步骤C:响应于某个所述固件出现异常,使所述内存子系统通过预设协议与其他固件交互,并将所有所述固件的核心信息转存至非易失性介质中。
第五方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
步骤A:在每个所述固件上初始化看门狗组件;
步骤B:在每个所述固件上创建监控线程,所述监控线程根据所述看门狗组件监控所述固件是否出现异常;
步骤C:响应于某个所述固件出现异常,使所述内存子系统通过预设协议与其他固件交互,并将所有所述固件的核心信息转存至非易失性介质中。
本申请实施例具有如下有益效果:
1.本申请实施例提供的在系统级芯片中的各个固件上均初始化看门狗组件,通过看门狗组件对在每个固件上创建监控线程,通过监控线程对该固件上的各个运行任务进行监控,当某固件出现异常时,中断异常固件与其他固件的交互,并将所有固件的核心信息转存至对应的非易失性介质中,然后将该转存的信息送出芯片外供离线分析,从而确保固件出现异常时,整个系统的数据的可靠性。
2.在系统级芯片的管理控制固件中设置一看门狗硬件,同时设置其他固件通过远程调用初始化看门狗软件,一方面节省了系统的资源,另一方面,其他固件将自身的看门狗软件监控的信息传送至管理控制固件上,再由管理控制固件统一来进行信息的调度处理,从而提高了信息处理的效率。
3.在每个固件上设置监控线程,并基于固件中运行的任务,分别设置多个分线监控线程,分线监控线程与固件运行任务一一对应,以实现对固件中所有任务的监控,确保监控覆盖的完整性。
4.在某个固件出现异常之后,向主机端发送停止通信指令,以使得主机端接收停止通信指令,并停止与系统级芯片之间的通信,同时各个组件也停止各自所有任务线程,以避免出现异常的固件影响到系统级芯片中其他任务的处理,避免出现更大的故障。
5.在某个固件出现异常之后,当固件转存预处理完成信息保存至子系统后,当其中一个固件的转存预处理过程完成时,内存子系统即开始通过预设协议获取固件的核心信息并保存至预设非易失性介质中,因为当看门狗组件超时发生时,说明其中某些固件的CPU已经无法正常执行代码,这时无需等到全部固件的CPU都完成自身的转存预处理过程,内存子系统只需要触发准备就绪的固件进行信息转存即可。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出根据本申请系统级芯片运行状态监控方法的示意图;
图2示出根据本申请看门狗组件中的安装示意图;
图3示出根据本申请中的分线监控线程的示意图;
图4示出根据本申请中的核心信息转存的示意图;
图5示出根据本申请中的内存子系统的心跳检测的示意图;
图6示出根据本申请中的系统级芯片运行状态监控系统的示意图;
图7示出根据本申请中的计算机设备的示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
实施例一
本申请提供的系统级芯片运行状态监控方法,可以应用于如图1所示的系统级芯片,系统级芯片包括若干组件,其中至少包括板卡固件、芯片固件以及管理控制固件,所述方法具体包括:
步骤S1:在每个所述固件上初始化看门狗组件。
具体的系统级芯片包括一个看门狗硬件,如图2所示,看门狗硬件安装于管理控制固件上,并由管理控制固件初始化以及由管理控制固件的监控线程负责复位。管理控制固件创建了至少两个看门狗软件,每个看门狗软件与固件一一对应,系统启动时,管理控制固件负责初始化看门狗硬件,芯片固件和板卡固件通过远程调用初始化管理控制固件创建的看门狗软件。
步骤S2:在每个所述固件上创建监控线程,所述监控线程根据所述看门狗组件监控所述固件是否出现异常。
分别在板卡固件、芯片固件以及管理控制固件上分别设置监控线程,监控线程的等级设置为最高优先级,并用于监控固件上的任务的运行状态。
具体包括以下步骤:
步骤S2.1:获取所述固件上的所有任务,为每个所述任务设置分线监控线程;
步骤S2.2:将所有所述分线监控线程注册到所述监控线程中;
步骤S2.3:响应于所述分线监控线被调度时,调用自增函数,并设置所述自增函数数值加1;步骤S2.4:响应于所述监控线程遍历所有所述分线监控线程的自增函数数值,并得到遍历结果。
为了实现对固件内的所有任务进程都进行监控,以防止出现某些任务出现故障,未被发现的情况。
在一个具体的实施例中,所述响应于所述监控线程遍历所有所述分线监控线程的自增函数数值,并得到遍历结果,具体包括:
设置所述监控线程每间隔第一预设时间开始遍历所述分线监控线程的自增函数数值;响应于所述自增函数数值在预设范围内,清零所述分线监控线程的子自增函数数值;或者,响应于所述自增函数数值不在预设范围内,触发所述看门狗组件超时。
在监控线程被唤醒开始遍历所有分线监控线程之前,为每个分线监控线程分别设置对应的预设范围,即设置每个任务对应的最小值为“1”和最大值“5”并在遍历所有分线监控线程完成后,执行看门狗组件复位操作,并重新进入触发监控流程。
如图3所示,设置每个运行任务对应一个分线监控线程,所有分线监控线程为thread1-threadn,将所有线程注册到monitor thread汇总,注册完成后,注册完成后每个线程被调度时则调用inc函数,将count数值进行加1操作同时进行保存,等到监控线程在设定的时间内从睡眠模式唤醒后开始遍历每个线程的count值,如果count值在正常值范围内说明该线程工作状态正常,同时将该线程的count值清零;如果count值不在正常范围内,则触发看门狗超时,启动触发Coredump流程。Coredump流程即开始信息转存过程。
需要说明的是,在触发看门狗组件超时后,还会发出看门狗预警信息,预先设置看门狗预警信息的产生时间是看门狗超时时间的一半,以使得在CPU正常工作时,监控线程在看门狗预警信息之前复位看门狗组件。
步骤S3:响应于某个所述固件出现异常,使所述内存子系统通过预设协议与其他固件交互,并将所有所述固件的核心信息转存至非易失性介质中。
需要说明的是,如图4所示,某个固件出现异常的检测方法,包括通过监控线程检测到的看门狗组件超时,判定所述固件出现异常。示例性的,当固件进入Exception或者发生Hang Task时,由固件强制WDT超时,产生看门狗预警信息;以及用户设置特殊的触发指令,例如NVMe命令:Customized commands。
步骤S3具体包括以下步骤:
步骤S3.1:响应于某个所述固件出现异常,向所有固件发送看门狗预警信息;
步骤S3.2:响应于其他固件接收所述看门狗预警信息,开始转存预处理;
步骤S3.3:响应于所述主机端与所述系统级芯片的恢复通信,使所有固件传输转存预处理完成信息至内存子系统;
步骤S3.4:响应于所述内存子系统接收到至少一个所述固件的转存预处理完成信息,以供所述内存子系统通过预设协议获取所述固件的核心信息并保存至预设非易失性介质中。
在一个具体的实施例中,在响应于某个所述固件出现异常之后,还包括:
向主机端发送停止通信指令,以使得所述主机端接收所述停止通信指令,并停止与所述系统级芯片的通信;并判断是否开始信息转存;响应于开始进行信息转存,恢复所述主机端与所述系统级芯片的通信。
在一个具体的实施例中,其中管理控制固件上的监控线程设置为最高监控线程,其他固件上的监控线程设置为平行监控线程;其中最高监控线程用于监控管理控制固件本身的运行任务进程,同时负责监控其他平行监控线程,当除管理控制固件以外的其他固件出现异常时,发生异常的固件首先将异常信息上报至最高监控线程,然后由最高监控线程向所有固件发送看门狗预警信息;经过以上设置,将管理控制固件中设置一最高监控线程,并由最高监控线程对所有平行监控线程进行检测,能够在出现异常后,向所有固件发送预警信息以此提高监控线程信息传递的效率,提升系统级芯片的响应速率。
需要说明的是,核心信息主要包括固件在运行由于某种原因异常终止、崩溃时,由CPU将固件运行时的内存,寄存器状态,堆栈指针,外设寄存器、加速引擎配置等当时的工作状态信息存储生成的一个或多个文件数据。
通过监控线程检测到看门狗组件超时后,首先会产生看门狗预警信息,此时系统级芯片中的各个固件在接收到看门狗预警信息后开始进入转存预处理过程。然后向Host端发送停止通信指令,要求Host端停止与系统级芯片的通信,同时系统级芯片控制各个固件阻塞各自的所有任务线程的运行,以避免出现异常的固件影响到系统级芯片中其他任务的处理,避免出现更大的故障。
在确认开始信息转存后,恢复所述主机端与所述系统级芯片的通信,此时系统级芯片中的芯片固件、主板固件以及管理控制固件,通过预设协议将各自的预处理完成信息传递给内存子系统,同时各个固件开始将Coredump数据转存入约定好的非易失性介质区域。Mem子系统通过预设协议依次获取各个固件需要保存数据的位置及大小,然后保存到非易失性介质中去。并在完成所述固件的核心信息的保存后,所述内存子系统在所述非易失性介质中设置转存标志,转存标志用于标记发生了核心信息转存,同时在非易失性介质中的非坏块中记录本次核心信息转存的完成情况。
在一个具体的实施例中,内存子系统会获取各个固件需要保存的数据,此时大部分固件都已完成转存预处理过程,需要在固件完成转存预处理过程时,对该固件进行固件标记,此固件标记用于标记固件名称以及固件的核心信息,并且用于标记固件完成转存预处理过程的时间;根据此固件标记,对完成转存预处理过程的固件进行排序,并设置预保存通道,预保存通道用于保存按照完成预处理的先后顺序排列的固件标记;当上一个固件核心信息转存完成后,可以通知预保存通道内的下一个固件开始进行数据转存,以此提高数据转存的效率和准确性。
需要说明的是,在看门狗组件超时后,通常说明说明某些固件的CPU已经无法正常执行代码,如果是这样的情况,则无需等待全部固件的CPU都完成转存预处理过程,仅当出现至少一个固件完成转存预处理过程,即开始信息转存过程。
在一个具体的实施例中,如图5所示,为了保证内存子系统能够顺利完成核心信息转存,设置管理控制固件通过所述预设协议每间隔第二预设时间向内存子系统发送心跳检测信息;
所述内存子系统接收并应答所述心跳检测信息;
响应于所述内存子系统异常,控制所述管理控制固件复位所述内存子系统,并上报异常信息;或者,响应于所述内存子系统正常,开始获取所述固件的核心信息并保存至预设非易失性介质中。
具体的,由管理控制固件主动触发,通过预设协议实现。此时内存子系统处于WFI状态,当心跳检测定时器超时后,管理控制固件主动通过预设协议向内存子系统发起心跳检测,内存子系统进行应答。当发现内存子系统出问题时,管理控制固件需要尝试复位内存子系统,如果复位不成功,管理控制固件通知BMC上报系统异常状态情况下无法保护数据。通过以上过程,实现对内存子系统运行状态的监控,以确保固件出现异常时,能够成功地将核心数据存储非易失性介质中,然后送出芯片外供离线分析。
通过本实施例中的方案在不使用Linux情况下使用监控方法去监控系统级芯片中软件及硬件的运行状态,同时当软件或硬件发生异常时触发WDT超时,系统收到中断后各个固件通过协议中断进行消息交互内存子系统通过ONFI接口将各个固件中的内存重要信息及硬件寄存器等信息保存至非易失性介质中,然后送出芯片外供离线分析。同时确保当系统发生异常时内存子系统能够将核心数据进行转储。
应该理解的是,虽然图1的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
实施例二
在一个实施例中,如图6所示,提供了一种系统级芯片运行状态监控系统,应用于系统级芯片,所述系统级芯片包括若干固件及内存子系统,所述系统包括:
设置单元,用于在每个所述固件上初始化看门狗组件;
监控单元,用于在每个所述固件上创建监控线程,所述监控线程根据所述看门狗组件监控所述固件是否出现异常;
响应单元,用于响应于某个所述固件出现异常,使所述内存子系统通过预设协议与其他固件交互,并将所有所述固件的核心信息转存至非易失性介质中。
在一个具体的实施例中,设置所述系统级芯片包括至少一个看门狗硬件,设置所述系统级芯片的固件中包括至少一个管理控制固件;
控制所述管理控制固件初始化所述看门狗硬件,并使得其他固件初始化所述管理控制固件创建的看门狗软件。
在一个具体的实施例中,监控单元具体包括注册单元、自增单元以及遍历单元,注册单元用于获取所述固件上的所有任务,为每个所述任务设置分线监控线程,将所有所述分线监控线程注册到所述监控线程中;自增单元用于响应于所述分线监控线被调度时,调用自增函数,并设置所述自增函数数值加1;遍历单元用于响应于所述监控线程遍历所有所述分线监控线程的自增函数数值,并得到遍历结果。
在一个具体的实施例中,遍历单元具体用于设置所述监控线程每间隔第一预设时间开始遍历所述分线监控线程的自增函数数值;响应于所述自增函数数值在预设范围内,清零所述分线监控线程的自增函数数值;或者,响应于所述自增函数数值不在预设范围内,触发所述看门狗组件超时。
在一个具体的实施例中,还包括第一复位单元,用于在遍历所有所述分线监控线程完成后,执行所述看门狗组件复位操作。
在一个具体的实施例中,响应单元具体用于在响应于所述固件中的所述看门狗组件超时,设置所述固件出现异常。
在一个具体的实施例中,还包括停止通信单元,用于在响应于某个所述固件出现异常之后,向主机端发送停止通信指令;以使得所述主机端接收所述停止通信指令,并停止所述主机端与所述系统级芯片的通信;
判断是否开始信息转存;响应于开始进行信息转存,恢复所述主机端与所述系统级芯片的通信。
在一个具体的实施例中,响应单元具体包括预处理单元和存储单元,所述预处理单元用于响应于某个所述固件出现异常,向所有固件发送看门狗预警信息;响应于其他固件接收所述看门狗预警信息,开始转存预处理;
存储单元用于响应于所述主机端与所述系统级芯片的恢复通信,使所有固件传输转存预处理完成信息至内存子系统;
响应于所述内存子系统接收到至少一个所述固件的转存预处理完成信息;
所述内存子系统通过预设协议获取所述固件的核心信息并保存至预设非易失性介质中。
在一个具体的实施例中,还包括指示单元,用于所述响应于某个所述固件出现异常之后,控制所有固件停止运行所述固件上的所有任务进程。
在一个具体的实施例中,还包括检测单元,用于控制所述管理控制固件通过所述预设协议向所述内存子系统发送心跳检测信息;
并使所述内存子系统接收并应答所述心跳检测信息;
响应于所述内存子系统异常,控制所述管理控制固件复位所述内存子系统,并上报异常信息;或者,响应于所述内存子系统正常,开始获取所述固件的核心信息并保存至预设非易失性介质中。
在一个具体的实施例中,还包括标记单元,用于在完成所述固件的核心信息的保存后,并使所述内存子系统在所述非易失性介质中设置转存标志。
关于系统级芯片运行状态监控系统的具体限定可以参见上文中对于系统级芯片运行状态监控方法的限定,在此不再赘述。上述系统级芯片运行状态监控系统中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
实施例三
对应以上实施例,提供了一种系统级芯片,所述系统级芯片包括如上所述的系统级芯片运行状态监控系统。
在一个具体的实施例中,所述系统级芯片运行状态监控系统应用于系统级芯片,所述系统级芯片包括若干固件,并具体包括:
设置单元,用于在每个所述固件上初始化看门狗组件;
监控单元,用于在每个所述固件上创建监控线程,所述监控线程根据所述看门狗组件监控所述固件是否出现异常;
响应单元,用于响应于某个所述固件出现异常,使所述内存子系统通过预设协议与其他固件交互,并将所有所述固件的核心信息转存至非易失性介质中。
在一个具体的实施例中,所述系统级芯片包括至少一个看门狗硬件;
所述系统级芯片的固件中包括至少一个管理控制固件,通过所述管理控制固件用于初始化所述看门狗硬件;
通过其他固件初始化所述管理控制固件创建的看门狗软件。
在一个具体的实施例中,监控单元具体包括注册单元、自增单元以及遍历单元,注册单元用于获取所述固件上的所有任务,为每个所述任务设置分线监控线程,将所有所述分线监控线程注册到所述监控线程中;自增单元用于响应于所述分线监控线被调度时,调用自增函数,并设置所述自增函数数值加1;遍历单元用于响应于所述监控线程遍历所有所述分线监控线程的自增函数数值,并得到遍历结果。
在一个具体的实施例中,遍历单元具体用于设置所述监控线程每间隔第一预设时间开始遍历所述分线监控线程的自增函数数值;响应于所述自增函数数值在预设范围内,清零所述分线监控线程的自增函数数值;或者,响应于所述自增函数数值不在预设范围内,触发所述看门狗组件超时。
在一个具体的实施例中,还包括第一复位单元,用于在遍历所有所述分线监控线程完成后;执行所述看门狗组件复位操作。
在一个具体的实施例中,响应单元具体用于响应于所述固件中的所述看门狗组件超时,判定所述固件出现异常。
在一个具体的实施例中,还包括停止通信单元,用于在响应于某个所述固件出现异常之后,向主机端发送停止通信指令;以使得所述主机端接收所述停止通信指令,并停止与所述系统级芯片的通信;
判断是否开始信息转存;响应于开始进行信息转存,恢复所述主机端与所述系统级芯片的通信。
在一个具体的实施例中,响应单元具体包括预处理单元和存储单元,所述预处理单元用于响应于某个所述固件出现异常,向所有固件发送看门狗预警信息;其他固件接收所述看门狗预警信息,开始转存预处理;
存储单元用于响应于所述主机端与所述系统级芯片的恢复通信,所有固件传输转存预处理完成信息至内存子系统;
响应于所述内存子系统接收到至少一个所述固件的转存预处理完成信息;
所述内存子系统通过预设协议获取所述固件的核心信息并保存至预设非易失性介质中。
在一个具体的实施例中,还包括指示单元,用于所述响应于某个所述固件出现异常之后,所有固件停止运行所述固件上的所有任务进程。
在一个具体的实施例中,还包括检测单元,用于所述管理控制固件通过所述预设协议向所述内存子系统发送心跳检测信息;
所述内存子系统接收并应答所述心跳检测信息;
响应于所述内存子系统异常,所述管理控制固件复位所述内存子系统,并上报异常信息;或者,响应于所述内存子系统正常,开始获取所述固件的核心信息并保存至预设非易失性介质中。
在一个具体的实施例中,还包括标记单元,用于在完成所述固件的核心信息的保存后,所述内存子系统在所述非易失性介质中设置转存标志。
实施例四
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储核心信息数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种系统级芯片运行状态监控方法。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
步骤101:在系统级芯片的每个所述固件上初始化看门狗组件;
步骤102:在每个所述固件上创建监控线程,所述监控线程根据所述看门狗组件监控所述固件是否出现异常;
步骤103:响应于某个所述固件出现异常,使所述内存子系统通过预设协议与其他固件交互,并将所有所述固件的核心信息转存至非易失性介质中。
在一个实施例中,设置所述系统级芯片包括至少一个看门狗硬件,所述系统级芯片的固件中包括至少一个管理控制固件;
通过所述管理控制固件初始化所述看门狗硬件,通过其他固件初始化所述管理控制固件创建的看门狗软件。
在一个实施例中,步骤102具体包括获取所述固件上的所有任务,为每个所述任务设置分线监控线程;
将所有所述分线监控线程注册到所述监控线程中;
响应于所述分线监控线被调度时,调用自增函数,并设置所述自增函数数值加1;
响应于所述监控线程遍历所有所述分线监控线程的自增函数数值,并得到遍历结果。
在一个实施例中,所述响应于所述监控线程遍历所有所述分线监控线程的自增函数数值,并得到遍历结果,具体包括:
设置所述监控线程每间隔第一预设时间开始遍历所述分线监控线程的自增函数数值;
响应于所述自增函数数值在预设范围内,清零所述分线监控线程的自增函数数值;
或者,响应于所述自增函数数值不在预设范围内,触发所述看门狗组件超时。
在一个实施例中,在遍历所有所述分线监控线程完成后,执行所述看门狗组件复位操作。
在一个实施例中,步骤103中的响应于某个所述固件出现异常的检测方法,具体包括:响应于所述固件中的所述看门狗组件超时,判定所述固件出现异常。
在一个实施例中,步骤103中的响应于某个所述固件出现异常之后,还包括:
向主机端发送停止通信指令,以使得所述主机端根据所述停止通信指令停止与所述系统级芯片的通信;
判断是否开始信息转存;响应于开始进行信息转存,恢复所述主机端与所述系统级芯片的通信。
在一个实施例中,步骤103具体包括响应于某个所述固件出现异常,向所有固件发送看门狗预警信息;
响应于其他固件接收所述看门狗预警信息,开始转存预处理;
响应于所述主机端与所述系统级芯片的恢复通信,并使所有固件传输转存预处理完成信息至内存子系统;
响应于所述内存子系统接收到至少一个所述固件的转存预处理完成信息,以供所述内存子系统通过预设协议获取所述固件的核心信息并保存至预设非易失性介质中。
在一个实施例中,所述步骤103中的响应于某个所述固件出现异常之后,还包括:控制所有固件停止运行所述固件上的所有任务进程。
在一个实施例中,还包括:控制所述管理控制固件通过所述预设协议向所述内存子系统发送心跳检测信息;并使所述内存子系统接收并应答所述心跳检测信息;
响应于所述内存子系统异常,控制所述管理控制固件复位所述内存子系统,并上报异常信息;或者,响应于所述内存子系统正常,开始获取所述固件的核心信息并保存至预设非易失性介质中。
在一个实施例中,完成所述固件的核心信息的保存后,并使所述内存子系统在所述非易失性介质中设置转存标志。
实施例五
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
步骤201:在系统级芯片的每个所述固件上初始化看门狗组件;
步骤202:在每个所述固件上创建监控线程,所述监控线程根据所述看门狗组件监控所述固件是否出现异常;
步骤203:响应于某个所述固件出现异常,使所述内存子系统通过预设协议与其他固件交互,并将所有所述固件的核心信息转存至非易失性介质中。
在一个实施例中,所述系统级芯片包括至少一个看门狗硬件;
所述系统级芯片的固件中包括至少一个管理控制固件,通过所述管理控制固件用于初始化所述看门狗硬件;
通过其他固件初始化所述管理控制固件创建的看门狗软件。
在一个实施例中,步骤202具体包括获取所述固件上的所有任务,为每个所述任务设置分线监控线程;
将所有所述分线监控线程注册到所述监控线程中;
响应于所述分线监控线被调度时,调用自增函数,并设置所述自增函数数值加1;
响应于所述监控线程遍历所有所述分线监控线程的自增函数数值,并得到遍历结果。
在一个实施例中,所述响应于所述监控线程遍历所有所述分线监控线程的自增函数数值,并得到遍历结果,具体包括:
设置所述监控线程每间隔第一预设时间开始遍历所述分线监控线程的自增函数数值;
响应于所述自增函数数值在预设范围内,清零所述分线监控线程的自增函数数值;
或者,响应于所述自增函数数值不在预设范围内,触发所述看门狗组件超时。
在一个实施例中,在遍历所有所述分线监控线程完成后,执行所述看门狗组件复位操作。
在一个实施例中,步骤203中的响应于某个所述固件出现异常的检测方法,具体包括:响应于所述固件中的所述看门狗组件超时,判定所述固件出现异常。
在一个实施例中,步骤203中的响应于某个所述固件出现异常之后,还包括:
向主机端发送停止通信指令,以使得所述主机端根据所述停止通信指令停止与所述系统级芯片的通信;
判断是否开始信息转存;响应于开始进行信息转存,恢复所述主机端与所述系统级芯片的通信。
在一个实施例中,步骤203具体包括响应于某个所述固件出现异常,向所有固件发送看门狗预警信息;
响应于其他固件接收所述看门狗预警信息,开始转存预处理;
响应于所述主机端与所述系统级芯片的恢复通信,并使所有固件传输转存预处理完成信息至内存子系统;
响应于所述内存子系统接收到至少一个所述固件的转存预处理完成信息,以供所述内存子系统通过预设协议获取所述固件的核心信息并保存至预设非易失性介质中。
在一个实施例中,所述步骤203中的响应于某个所述固件出现异常之后,还包括:控制所有固件停止运行所述固件上的所有任务进程。
在一个实施例中,还包括:控制所述管理控制固件通过所述预设协议向所述内存子系统发送心跳检测信息;并使所述内存子系统接收并应答所述心跳检测信息;
响应于所述内存子系统异常,控制所述管理控制固件复位所述内存子系统,并上报异常信息;或者,响应于所述内存子系统正常,开始获取所述固件的核心信息并保存至预设非易失性介质中。
在一个实施例中,完成所述固件的核心信息的保存后,并使所述内存子系统在所述非易失性介质中设置转存标志。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (14)
1.一种系统级芯片运行状态监控方法,其特征在于,应用于系统级芯片,所述系统级芯片包括若干固件及内存子系统,所述方法包括:
在每个所述固件上初始化看门狗组件;
在每个所述固件上创建监控线程,所述监控线程根据所述看门狗组件监控所述固件是否出现异常;
响应于某个所述固件出现异常,使所述内存子系统通过预设协议与其他固件交互,并将所有所述固件的核心信息转存至非易失性介质中;
所述在每个所述固件上创建监控线程,所述监控线程根据所述看门狗组件监控所述固件是否出现异常,具体包括:
获取所述固件上的所有任务,为每个所述任务设置分线监控线程;
将所有所述分线监控线程注册到所述监控线程中;
响应于所述分线监控线程被调度时,调用自增函数,并设置所述自增函数的数值加1;
响应于所述监控线程遍历所有所述分线监控线程的自增函数数值,并得到遍历结果。
2.根据权利要求1所述的系统级芯片运行状态监控方法,其特征在于,所述系统级芯片包括至少一个看门狗硬件,所述系统级芯片的固件中包括至少一个管理控制固件;
通过所述管理控制固件初始化所述看门狗硬件,通过其他固件初始化所述管理控制固件创建的看门狗软件。
3.根据权利要求2所述的系统级芯片运行状态监控方法,其特征在于,所述响应于所述监控线程遍历所有所述分线监控线程的自增函数数值,并得到遍历结果,具体包括:
设置所述监控线程每间隔第一预设时间开始遍历所述分线监控线程的自增函数数值;
响应于所述自增函数数值在预设范围内,清零所述分线监控线程的自增函数数值;
或者,响应于所述自增函数数值不在预设范围内,触发所述看门狗组件超时。
4.根据权利要求3所述的系统级芯片运行状态监控方法,其特征在于,
在遍历所有所述分线监控线程完成后,执行所述看门狗组件复位操作。
5.根据权利要求4所述的系统级芯片运行状态监控方法,其特征在于,响应于某个所述固件出现异常,具体包括:
响应于所述固件中的所述看门狗组件超时,判定所述固件出现异常。
6.根据权利要求5所述的系统级芯片运行状态监控方法,其特征在于,响应于某个所述固件出现异常之后,还包括:
向主机端发送停止通信指令,以供所述主机端根据所述停止通信指令停止与所述系统级芯片的通信;
判断是否开始信息转存;
响应于开始进行信息转存,恢复所述主机端与所述系统级芯片的通信。
7.根据权利要求6所述的系统级芯片运行状态监控方法,其特征在于,响应于某个所述固件出现异常,所述内存子系统通过预设协议与其他固件交互,并将所有所述固件的核心信息转存至非易失性介质中,具体包括:
响应于某个所述固件出现异常,向所有固件发送看门狗预警信息;
响应于其他固件接收所述看门狗预警信息,开始转存预处理;
响应于所述主机端与所述系统级芯片的恢复通信,使所有固件传输转存预处理完成信息至所述内存子系统;
响应于所述内存子系统接收到至少一个所述固件的转存预处理完成信息,以供所述内存子系统通过预设协议获取所述固件的核心信息并保存至预设非易失性介质中。
8.根据权利要求1~7中任一项所述的系统级芯片运行状态监控方法,其特征在于,所述响应于某个所述固件出现异常之后,还包括:
控制所有固件停止运行所述固件上的所有任务进程。
9.根据权利要求7所述的系统级芯片运行状态监控方法,其特征在于,所述方法还包括:
控制所述管理控制固件通过所述预设协议向所述内存子系统发送心跳检测信息;
并使所述内存子系统接收并应答所述心跳检测信息;
响应于所述内存子系统异常,控制所述管理控制固件复位所述内存子系统,并上报异常信息;
或者,响应于所述内存子系统正常,开始获取所述固件的核心信息并保存至预设非易失性介质中。
10.根据权利要求9所述的系统级芯片运行状态监控方法,其特征在于,所述方法还包括:
完成所述固件的核心信息的保存后,通过所述内存子系统在所述非易失性介质中设置转存标志。
11.一种用于实现权利要求1~10中任一项所述方法的系统级芯片运行状态监控系统,其特征在于,所述系统级芯片包括若干固件及内存子系统,所述系统包括:
设置单元,用于在每个所述固件上初始化看门狗组件;
监控单元,用于在每个所述固件上创建监控线程,以使所述监控线程根据所述看门狗组件监控所述固件是否出现异常;
响应单元,用于响应于某个所述固件出现异常,使所述内存子系统通过预设协议与其他固件交互,并将所有所述固件的核心信息转存至非易失性介质中。
12.一种系统级芯片,其特征在于,所述系统级芯片包括权利要求11中所述的系统级芯片运行状态监控系统。
13.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1~10中任一项所述方法的步骤。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1~10中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311511225.9A CN117234787B (zh) | 2023-11-14 | 2023-11-14 | 系统级芯片运行状态监控方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311511225.9A CN117234787B (zh) | 2023-11-14 | 2023-11-14 | 系统级芯片运行状态监控方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117234787A CN117234787A (zh) | 2023-12-15 |
CN117234787B true CN117234787B (zh) | 2024-02-23 |
Family
ID=89098815
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311511225.9A Active CN117234787B (zh) | 2023-11-14 | 2023-11-14 | 系统级芯片运行状态监控方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117234787B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104360935A (zh) * | 2014-10-17 | 2015-02-18 | 浪潮电子信息产业股份有限公司 | 一种服务器系统崩溃转储收集的方法 |
CN115373997A (zh) * | 2022-08-26 | 2022-11-22 | 山东云海国创云计算装备产业创新中心有限公司 | 一种多核SoC的板卡固件异常监测及核心数据导出方法 |
CN115904793A (zh) * | 2023-03-02 | 2023-04-04 | 上海励驰半导体有限公司 | 一种基于多核异构系统的内存转存方法、系统及芯片 |
-
2023
- 2023-11-14 CN CN202311511225.9A patent/CN117234787B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104360935A (zh) * | 2014-10-17 | 2015-02-18 | 浪潮电子信息产业股份有限公司 | 一种服务器系统崩溃转储收集的方法 |
CN115373997A (zh) * | 2022-08-26 | 2022-11-22 | 山东云海国创云计算装备产业创新中心有限公司 | 一种多核SoC的板卡固件异常监测及核心数据导出方法 |
CN115904793A (zh) * | 2023-03-02 | 2023-04-04 | 上海励驰半导体有限公司 | 一种基于多核异构系统的内存转存方法、系统及芯片 |
Also Published As
Publication number | Publication date |
---|---|
CN117234787A (zh) | 2023-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106789306B (zh) | 通信设备软件故障检测收集恢复方法和系统 | |
CN110336715B (zh) | 状态检测方法、主节点和集群管理系统 | |
US20170147422A1 (en) | External software fault detection system for distributed multi-cpu architecture | |
US7219264B2 (en) | Methods and systems for preserving dynamic random access memory contents responsive to hung processor condition | |
CN112223284A (zh) | 机器人乘梯故障处理方法、装置、电子设备和存储介质 | |
CN114443394A (zh) | I2c总线解挂死的方法、装置、计算机设备和存储介质 | |
US20090254773A1 (en) | Method, operating system and computing hardware for running a computer program | |
CN113535448B (zh) | 一种多重看门狗控制方法及其控制系统 | |
CN105426263A (zh) | 一种实现金库系统安全运行的方法及系统 | |
CN115904793B (zh) | 一种基于多核异构系统的内存转存方法、系统及芯片 | |
CN117234787B (zh) | 系统级芯片运行状态监控方法及系统 | |
CN117453442A (zh) | 服务器报错信息的记录方法、装置、设备和存储介质 | |
CN107273291B (zh) | 一种处理器调试方法及系统 | |
US8099637B2 (en) | Software fault detection using progress tracker | |
CN107179911B (zh) | 一种重启管理引擎的方法和设备 | |
KR101300806B1 (ko) | 다중 프로세스 시스템에서 오동작 처리 장치 및 방법 | |
US11726853B2 (en) | Electronic control device | |
CN113515429A (zh) | 固态硬盘的多核异常监控方法、装置、计算机设备及存储介质 | |
JP2001350735A (ja) | 複数データ処理装置間相互監視方法 | |
CN112905372A (zh) | 线程的异常诊断方法及装置 | |
CN112905375A (zh) | 双芯智能电表管理单元的自恢复方法、装置和计算机设备 | |
CN108415788B (zh) | 用于对无响应处理电路作出响应的数据处理设备和方法 | |
CN116991637B (zh) | 嵌入式系统的运行控制方法及装置、电子设备及存储介质 | |
CN116991559B (zh) | 不可中断的睡眠状态进程的退出方法和装置 | |
CN117130832B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |