一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种嵌入式多核处理器的防护与诊断方法及装置与流程

2022-04-30 08:47:17 来源:中国专利 TAG:


1.本发明涉及数据处理领域,更具体地,涉及一种嵌入式多核处理器的防护与诊断方法及装置。


背景技术:

2.目前,在嵌入式控制设备中,随着嵌入式芯片技术的更新升级,多核处理器的使用越来越普遍,设备功能越来越复杂,性能要求也越来越高。因而,在嵌入式设备中开始大量使用多线程应用架构。
3.伴随而来的,多核处理器中也出现了各种问题,例如,由于各种原因导致的设备软件故障风险,由于硬件故障导致的内存异常反转,由于软件缺陷导致的数据内容误写入等。在可靠性和安全性要求高的行业,由设备故障引发的事故将导致巨大安全风险和经济损失。针对上述问题,现有技术中,经常采用数据安全检查引擎,安全检查资源库等方式对待检测的数据进行读取和检查。然而,这种方式,一方面对于数据读取的需求量较大,影响了处理器的有效运行速率,导致数据检查过程占用了大量的系统资源。另一方面,本发明中无法实现对于应用程序运行过程进行实时监控,因此无法快速的确保应用程序某一任务溢出时处理器整体的健康程度。
4.数据探针作为一种专门用于获取应用程序中数据信息的监测技术,被广泛的使用在各种应用程序中。然而,现有技术中的数据探针多是基于网络链路上的数据传输硬件设备实现对于网络流量的监控,或者是用于单个应用程序中以实现对于应用程序接口运行情况的监控。
5.现有技术中,尚不包括一种对于处理器中基于数据探针对多核结构之间程序运行和数据读取进行监控的技术方案。因此,在多核处理器程序运行和数据读取过程中,很难能够在执行多核不同应用程序的过程中,对于多核数据之间的使用保证安全,也无法保证程序运行的有效可靠和不发生溢出。
6.针对上述问题,本发明提供了一种嵌入式多核处理器的防护与诊断方法。


技术实现要素:

7.为解决现有技术中存在的不足,本发明的目的在于,提供一种嵌入式多核处理器的防护与诊断方法,将处理器中各核的内存空间分类为代码段空间和数据段空间,并基于不同的空间属性植入不同类型的探针,以实现对于数据、程序代码、程序运行情况的综合监控。
8.本发明采用如下的技术方案。
9.本发明第一方面,涉及一种嵌入式多核处理器的防护与诊断方法,其中,方法包括以下步骤:步骤1,为嵌入式多核处理器的各个核分配应用程序内存空间并设置空间属性;步骤2,向空间属性为代码段的内存空间中植入校验码探针和运行探针,向应用程序中植入运行探针,以基于探针对应用程序进行校验;步骤3,基于校验结果,执行守护任务以对应用
程序进行处理。
10.优选的,向多核处理器的第零核中部署守护任务与系统引导,向多核处理器中除第零核之外的其他核中部署应用程序;启动多核处理器时,先启动第零核后,基于守护任务与系统引导启动其他核中的应用程序。
11.优选的,内存空间包括代码段空间和数据段空间;空间属性包括代码段和数据段,其中,代码段属性为只读模式,数据段属性为可读写模式。
12.优选的,守护任务向代码段空间中植入校验码探针,向应用程序调度接口中植入运行探针;其中,校验码探针用于基于预设周期间隔检测应用程序的代码段空间中存储的代码内容是否准确;运行探针用于检测应用程序的运行数据是否准确。
13.优选的,校验码探针对代码段空间中代码内容的检测方法为:步骤2.1.1,获取代码段空间中存储的代码内容,并计算出代码内容的校验码;步骤2.1.2,调用守护任务中预先存储的校验码字段,并将代码内容的校验码与校验码字段进行比较;步骤2.1.3,当比较结果一致时判定当前的代码内容准确,当比较结果不一致时判定当前的代码内容遭到了篡改,并触发告警事件。
14.优选的,运行探针对运行数据的校验方法为:步骤2.2.1,运行探针实时监测应用程序中接口的调度频率、运行时间、网络资源占用,并复位软件定时器;步骤2.2.2,当软件定时器的执行时间超过任务阈值时,中断应用程序的当前任务;步骤2.2.3,当网络资源占用超过占用阈值时,中断应用程序的当前任务。
15.优选的,数据段空间中包括普通数据空间和关键数据空间;并且,关键数据空间是基于应用程序的标定过程实现的。
16.优选的,守护任务向关键数据空间中植入校验码探针。
17.优选的,校验码探针对关键数据空间中数据内容的检测方法为:步骤2.3.1,当应用程序读取关键数据空间中的数据内容时,校验码探针启动对数据内容的校验;步骤2.3.2,采用与步骤2.1.2中相同方式实现校验;步骤2.3.3,当校验成功时则判定数据内容准确,并将数据内容提供给应用程序,当校验失败时则判定数据内容有误,触发告警事件。
18.优选的,当守护任务触发告警事件后,中断代码内容对应的应用程序,或者,中断应用程序对数据内容的读取;其中,告警事件记录并存储事件时间、错误代码、错误数据、任务调度频率、任务运行时间和任务网络资源占用信息。
19.优选的,采用硬件定时器复位电路对守护任务进行监控;守护任务以设定时间间隔向定时器中发送清零指令,以指示定时器复位后重新计时;当定时器的计时超过设定值时,定时器复位电路对多核处理器进行重启操作。
20.本发明第二方面,涉及一种嵌入式多核处理器的防护与诊断装置,其中,装置用于实现如本发明第一方面任意一项中的一种嵌入式多核处理器的防护与诊断方法。
21.本发明的有益效果在于,与现有技术相比,本发明中的一种嵌入式多核处理器的防护与诊断方法,用于将处理器中各核的内存空间分类为代码段空间和数据段空间,并基于不同的空间属性植入不同类型的探针,以实现对于数据、程序代码、程序运行情况的综合监控。本发明方法简单,占用资源少,能够实时且准确的获取多核处理器中各核的应用程序运行情况、应用程序代码与数据内容是否准确。
22.本发明的有益效果还包括:
23.1、由于本发明中将数据内容分为了关键数据和普通数据,因此在应用程序调用数据的过程中,在调用速度和准确性二者之间实现了平衡。并且,关键数据的标定方式是通过应用程序本身实现的,不仅提高了应用程序的自主性,而且为关键数据的选取提升了置信度。
24.2、本发明中,在守护任务执行之后,其他应用程序才能执行,充分保证了多核处理器中守护任务相关功能的优先级,保证了多核处理器的安全。另外,通过定时器复位电路,在守护任务出现故障时,也能够保证守护任务的及时重启,更进一步的实现了多核处理器在异常情况下的安全性。
25.3、本发明中采用了校验码探针和运行探针两种探针形式对代码或数据等内容进行合理的检测。综合保障了多核处理器的安全。
附图说明
26.图1为本发明一种嵌入式多核处理器的防护与诊断方法的步骤流程示意图;
27.图2为本发明一种嵌入式多核处理器的防护与诊断方法中多核处理器中守护程序于各核之间的运行方式示意图;
28.图3为本发明一种嵌入式多核处理器的防护与诊断方法中代码段空间中校验码探针的运行方式示意图;
29.图4为本发明一种嵌入式多核处理器的防护与诊断方法中关键数据空间中校验码探针的运行方式示意图;
30.图5为本发明一种嵌入式多核处理器的防护与诊断方法中守护任务故障重启的步骤流程示意图。
具体实施方式
31.下面结合附图对本技术作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本技术的保护范围。
32.图1为本发明一种嵌入式多核处理器的防护与诊断方法的步骤流程示意图。如图1所示,本发明第一方面,涉及一种嵌入式多核处理器的防护与诊断方法,其中,方法包括步骤1至步骤3。
33.步骤1,为嵌入式多核处理器的各个核分配应用程序内存空间并设置空间属性。
34.首先需要说明的是,本发明的方法,在嵌入式设备运行时提供一套内存防护机制。从硬件层面来看,本发明提供了一套故障检测方法以实时检测运行故障,包括代码段异常、关键数据段异常、应用程序异常等多种功能。
35.为了实现上述功能,本发明中,向多核处理器的第零核中部署守护任务与系统引导,向多核处理器中除第零核之外的其他核中部署应用程序;启动多核处理器时,先启动第零核后,基于守护任务与系统引导启动其他核中的应用程序。
36.可以理解的是,本发明中的多核处理器中的第零核可以用来部署对于整个多核处理器中其他处理器的监控与管理功能。例如可以部署本发明中的守护功能,已经对于其他处理器的启动引导功能等。
37.图2为本发明一种嵌入式多核处理器的防护与诊断方法中多核处理器中守护程序
于各核之间的运行方式示意图。如图2所示,具体来说,在首次使用多核处理器之前,可以首先将多核处理器中的其他核的内存空间进行划分,以为预计安装的应用程序分配合适的内存空间。具体来说,本发明中,可以首先使用内存管理单元对虚拟存储器、物理存储器进行管理,并且创建虚拟地址与物理地址之间的映射关系。在完成了虚拟存储空间的整体构建后,再对于内存空间进行分配。
38.在分配的过程中,本发明将内存空间划分为代码段空间和数据段空间两种不同的空间类型。其中,代码段空间可以专门用来存储代码,数据段空间可以专门用来存储数据。
39.优选的,内存空间包括代码段空间和数据段空间;空间属性包括代码段和数据段,其中,代码段属性为只读模式,数据段属性为可读写模式。
40.具体来说,为了使得内存空间中相应的存储内容安全且准确,为代码段空间中的内容设置为了只读属性。由于代码段空间中存储的内容均为应用程序的原始代码,需要进行内容更新和修改的可能性相对较小。因此,本发明将这部分代码在应用程序发起升级更新的逻辑置于守护任务之外,使得在守护任务的控制下,代码段空间中的所有代码内容都是不得修改的。
41.另外一方面,对于数据段代码则可以设置为可以读写的可配置方式,使得应用程序本身可以对其运行过程中产生的数据内容进行实时的修改。
42.步骤2,向空间属性为代码段的内存空间中植入校验码探针和运行探针,向应用程序中植入运行探针,以基于探针对应用程序进行校验。
43.在完成了内存空间的合理划分与分配后,就可以根据植入的探针对于应用程序进行校验了。
44.优选的,守护任务向代码段空间中植入校验码探针,向应用程序调度接口中植入运行探针;其中,校验码探针用于基于预设周期间隔检测应用程序的代码段空间中存储的代码内容是否准确;运行探针用于检测应用程序的运行数据是否准确。
45.可以理解的是,本发明中的守护任务可以向相应的内存空间中植入相应的探针。本发明中所采用的探针包括校验码探针和运行探针两种不同的类型。
46.一般来说,校验码探针的运行方式是通过探针获得数据,并基于校验算法生成所获数据的校验码,对于预先存在守护任务中的原始校验码进行获取,并将两个校验码进行比较。当校验码无差异时,则说明所获得的数据没有被篡改。如果两个校验码之间出现了差异,则说明获得的数据出现了异常。
47.另一方面,本发明还可以设置运行探针。这种探针可以被植入在应用程序的输入输出接口上,通过这种方式,探针可以实时的获得应用程序的相关信息,并通过这些信息的内容来判断程序运行过程中的问题。
48.具体来说,校验码探针由于其校验特性,只能够应用在对代码段空间中代码内容的检测上。而运行探针,则一般用来对于应用程序的运行数据进行探测。可见校验码探针能够监控程序代码内容的完整性和准确性,而运行探针则用来判断程序任务调度和程序运行的正常与否。
49.由于守护任务具备了最高的优先级,且先于其他应用程序启动。因此,当守护任务的探针发现了异常情况后,就可以发出指令将其他运行中的应用程序中断下来,或者将其他运行中的应用程序的某个任务中断下来,并在程序或任务中断后,提供相应的异常处理
机制。
50.图3为本发明一种嵌入式多核处理器的防护与诊断方法中代码段空间中校验码探针的运行方式示意图。如图3所示,优选的,校验码探针对代码段空间中代码内容的检测方法为:步骤2.1.1,获取代码段空间中存储的代码内容,并计算出代码内容的校验码;步骤2.1.2,调用守护任务中预先存储的校验码字段,并将代码内容的校验码与校验码字段进行比较;步骤2.1.3,当比较结果一致时判定当前的代码内容准确,当比较结果不一致时判定当前的代码内容遭到了篡改,并触发告警事件。
51.具体来说,当探针得到代码段空间中存储的代码内容之后,会采用校验方法计算校验码,对于校验码的比较快速且准确,因此可以在校验探针首次布置在确定的禁止修改的代码段空间后,就对于其中的代码内容进行首次读写,并将首次得到的校验码作为校验码字段存储在守护程序中。当守护程序需要检验代码内容时,则可以比较当前得到的校验码与校验码字段中的内容是否一致。如果一致,说明该内存空间中的内容是与最初的内容一致的,代码没有遭到篡改。但如果校验码不一致,则由于当前空间的只读属性能够说明代码内容被恶意篡改了。
52.在这种情况下,探针会触发告警事件,并对相应的代码内容进行修复。这部分内容具体在步骤3中进行详细说明。
53.优选的,运行探针对运行数据的校验方法为:步骤2.2.1,运行探针实时监测所述应用程序中接口的调度频率、运行时间、网络资源占用,并复位软件定时器;步骤2.2.2,当软件定时器的执行时间超过任务阈值时,中断应用程序的当前任务;步骤2.2.3,当网络资源占用超过占用阈值时,终端应用程序的当前任务。
54.本发明中的运行探针可以实时监测应用程序结构的调度情况,例如记录每一次接口进行数据收发的运行时间,以及网络资源的占用情况。首先,对于网络资源的占用情况,也可以称为线程占用情况来说,可以记录每个堆栈的数据情况,例如是否发生溢出。对于接口数据收发数据过程中,如果引发了堆栈溢出的情况,则可能会引发程序的异常。对于这种情况,可以根据网络资源占用与占用阈值之间的比较结果实现对于异常的判定。当堆栈发生溢出时,堆栈中的数据内容一定收到了破坏,因此可以根据这种情况触发应用程序中断,并发出告警以解决当前问题。
55.其次,对于运行时间,则可以记录每一个应用程序任务的占用起始时间和占用结束时间。如果一个任务的运行时间超过了设定的任务运行时间限制,也就是本发明中的任务阈值时,也采用相同的方法结束该任务,或严重情况下,结束应用程序。
56.优选的,数据段空间中包括普通数据空间和关键数据空间;并且,关键数据空间是基于应用程序的标定过程实现的。
57.可以理解的是,本发明中的数据段空间中包括普通数据空间和关键数据空间。对于普通数据空间来说,本发明中可以不实现探针植入。而对于关键数据空间来说,本发明中,可以植入校验码探针实现对于关键数据准确程度的校验。
58.一般来说,关键数据可以为一些应用程序经常读取的数据内容。这些数据并不属于应用程序本身的代码,但是由于其数据内容的关键性,也应当是在首次存储下来以后不可改写的内容。关键数据与普通数据的划分方式可以是通过应用程序的自身定义来完成的。例如,根据应用程序的标定过程,可以将关键数据定义出来。
59.优选的,守护任务向关键数据空间中植入校验码探针。守护任务根据应用程序的标定,将校验码探针植入至关键数据空间中,而同时忽略对于普通数据空间的操作。
60.图4为本发明一种嵌入式多核处理器的防护与诊断方法中关键数据空间中校验码探针的运行方式示意图。如图4所示,优选的,校验码探针对关键数据空间中数据内容的检测方法为:步骤2.3.1,当应用程序读取关键数据空间中的数据内容时,校验码探针启动对数据内容的校验;步骤2.3.2,采用与所述步骤2.1.2中相同方式实现校验;步骤2.3.3,当校验成功时则判定数据内容准确,并将数据内容提供给应用程序,当校验失败时则判定数据内容有误,触发告警事件。
61.可以理解的是,本发明中校验码探针对关键数据空间中数据内容的校验方法与校验码探针对代码内容的校验类似,当校验失败时,都会发出告警事件。
62.优选的,当守护任务触发告警事件后,中断代码内容对应的应用程序,或者,中断应用程序对数据内容的读取;其中,告警事件记录并存储事件时间、错误代码、错误数据、任务调度频率、任务运行时间和任务网络资源占用信息。
63.当守护任务触发告警事件后,本发明可以基于告警事件的类型来选择中断应用程序或者中断应用程序的某个任务进程。
64.告警事件根据探针类型的不同,可以用来存储不同的事件相关的内容。例如,对于代码段空间中植入的校验码来说,可以记录事件的时间和错误代码。对于数据段空间中植入的校验码来说,可以记录事件的时间和错误数据。另外,本发明中,对于运行指针发出的告警事件来说,可以根据任务调度频率、任务运行时间、任务网络资源占用信息,可以得到发生告警的原因,并基于该原因提供相应的故障处理方式。
65.图5为本发明一种嵌入式多核处理器的防护与诊断方法中守护任务故障重启的步骤流程示意图。如图5所示,优选的,采用硬件定时器复位电路对守护任务进行监控;守护任务以设定时间间隔向定时器中发送清零指令,以指示定时器复位后重新计时;当定时器的计时超过设定值时,定时器复位电路对多核处理器进行重启操作。
66.本发明中,定时器复位电路可以对守护任务的状态进行监控。根据该定时器的原理,当守护任务较长时间没有发送清零指令后,则定时器的计数将超过设定值,此时定时器复位电路会将多核处理器进行重新启动后,在首先启动守护任务以后,再执行其他应用程序的启动。
67.通过这种方式,充分保证了守护任务只有处于开启时刻,才能够使得其他的应用程序运行,因此,守护任务永远能够监测到定时器的状态,并基于状态实现对多核处理器的保护。
68.步骤3,基于校验结果,执行守护任务以对应用程序进行处理。
69.本发明中,基于不同的校验结果可以执行不同的操作,例如,当告警事件中指示某一个空间的代码或数据有误,守护任务则可以指示处理器可以通过本地中备分的内容中读取相应的信息段,并将正确的代码或数据重新覆盖当前空间。处理器也可以通过网络通信的方式,从其他设备中获取准确的信息内容。
70.当告警事件中指示程序运行过程中出现了问题,则守护任务可以对于应用程序的当前任务进行中断,并将当前任务下的数据进行删除,并重新执行当前的任务,或是检查问题发生的原因,如果存在恶意的攻击则及时的中断网络端口。
71.本发明第二方面,涉及一种嵌入式多核处理器的防护与诊断装置,其中该装置用于实现如本发明第一方面中所述的一种嵌入式多核处理器的防护与诊断方法。
72.本发明的有益效果在于,与现有技术相比,本发明中的一种嵌入式多核处理器的防护与诊断方法,用于将处理器中各核的内存空间分类为代码段空间和数据段空间,并基于不同的空间属性植入不同类型的探针,以实现对于数据、程序代码、程序运行情况的综合监控。本发明方法简单,占用资源少,能够实时且准确的获取多核处理器中各核的应用程序运行情况、应用程序代码与数据内容是否准确。
73.本发明申请人结合说明书附图对本发明的实施示例做了详细的说明与描述,但是本领域技术人员应该理解,以上实施示例仅为本发明的优选实施方案,详尽的说明只是为了帮助读者更好地理解本发明精神,而并非对本发明保护范围的限制,相反,任何基于本发明的发明精神所作的任何改进或修饰都应当落在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献