用于监控程序代码部分的执行的方法和对应的片上系统技术方案

技术编号:39249763 阅读:8 留言:0更新日期:2023-10-30 12:01
提供了一种用于监控存储在起始地址和结束地址之间的存储器地址范围内的选定程序代码部分的执行的方法。该方法包括当程序计数器指向选定程序代码部分的起始地址时,开始计时。将程序计数器的当前值与特定于选定程序代码部分的目标地址集进行比较,该目标地址集包括选定程序代码部分的结束地址。当程序计数器指向选定程序代码部分的结束地址,时停止计时。响应于计时持续时间在特定于选定程序代码部分的标称持续时间范围之外,生成错误信号。生成错误信号。生成错误信号。

【技术实现步骤摘要】
用于监控程序代码部分的执行的方法和对应的片上系统
[0001]相关申请的交叉引用
[0002]本申请要求于2022年4月26日提交的法国申请第2203873号的优先权,该申请通过引用并入本文。


[0003]本公开总体上涉及监控程序代码的执行的技术。

技术介绍

[0004]用于监控程序的执行的技术可用于安全目的,以便对泄露机密的尝试进行检测,检测典型地采用故障注入技术。当在系统中执行故障注入时,指令被修改或不被执行,但是处理单元继续执行代码的后续的指令。这导致不受控制的操作,并且在某些情况下,允许访问敏感或机密信息。特别地,这些情况可能是:刚启动之后、代码未完全初始化且操作系统保护(诸如存储器访问权限管理机制)未就位时;或者在关键操作期间,例如具有最大访问权限级别的操作,诸如访问权限调度或执行上下文切换(例如在安全和非安全上下文之间)的操作。
[0005]用于监控程序的执行的技术也可用于安全目的,换句话说,用于可靠性目的,以便检测程序的执行中的功能障碍。典型地,编码规则是在程序的设计中建立的,以便在战略阶段执行检查。

技术实现思路

[0006]本公开总体上涉及用于监控程序代码的执行的技术,例如片上系统的处理单元对存储器地址范围内含有的代码的执行。
[0007]本公开的专利技术人已认识到,常规监控技术,诸如流量控制的编码、调用函数的复制、去相关函数检查动作、或引入随机循环以使故障注入的再现复杂化,均具有在程序代码的开发中侵入性非常强的缺点,在启动开始时不适用,并且在程序的关键区段的执行中引入等待时间。另一方面,这些技术中的一些可能要应对:故障注入到程序的意外部分中、以及多个故障注入技术(这可只存在于理论上,但可能付诸实践)。
[0008]本公开的实施例通过提供用于监控程序代码(或至少代码的选定部分)的执行的技术来解决或克服常规技术的缺点中的至少一些缺点(从安全性和安全的角度来看),所述技术对受监控程序代码的开发没有限制或限制很小,其不引入或引入很少的等待时间,在启动开始时可适用,并且不允许或很少允许对其动作采取对策。
[0009]在一个或多个实施例中,提供了由监控电路系统实施的用于监控由处理电路系统对选定程序代码部分的执行的方法,选定程序代码部分存储在起始地址和结束地址之间的存储器地址范围内,该处理电路系统使用指向由处理电路系统执行的指令的地址的程序计数器。该方法包括:当程序计数器指向选定程序代码部分的起始地址时,开始计时;将程序计数器的当前值与特定于选定程序代码部分的目标地址集进行比较,所述目标地址集包括
选定程序代码部分的结束地址;当程序计数器指向选定程序代码部分的结束地址时,停止计时;以及响应于计时持续时间在特定于选定程序代码部分的标称持续时间范围之外,生成错误信号。
[0010]例如,实际上,计时可对应于对起始地址和结束地址的执行之间的时钟信号的周期的数目进行计数。例如,在简单的情况下,时钟信号可为对由处理电路系统的执行进行时钟控制的时钟信号。通过对周期的数目进行计时,有可能控制执行的指令数目。实际上,每个指令花费一定数目的周期,这可针对处理电路系统的每个架构来定义,并且例如也可针对片上系统内的处理电路系统的外围架构来定义。因此,特定于选定代码部分的标称持续时间范围对应于与该代码部分相关联的指令的成功执行,即没有功能障碍或不受控制的操作。
[0011]此外,在至少一些实施例中,监控电路系统仅使用程序计数器的读数和特定于选定程序代码部分的标称持续时间范围的知识,并且因此独立于代码的执行而行动。结果,根据至少一些实施例的方法可特别适用于在程序代码和对应的软件保护被完全初始化之前的启动开始时的应用。另外,根据一些实施例的方法的实施方式不会对受监控程序代码的写入产生任何限制,并且不会在程序代码的执行中引入任何等待时间。
[0012]在一些实施例中,监控电路系统可具有实施监控的硬件配置,从而以实际上不可能被破坏或修改的方式实施监控。
[0013]根据一个或多个实施例,选定程序代码部分包括至少一个调用函数,该调用函数被配置为调用存储在第二起始地址和第二结束地址之间的第二存储器地址范围内的第二程序代码部分,并且特定于选定程序代码部分的目标地址集包括第二起始地址,并且该方法还包括当程序计数器指向第二起始地址时,执行调用整合规程,并且调用整合过程包括:暂停计时;存储暂停的计时的值;以及当程序计数器指向第二结束地址时,从存储的值恢复暂停的计时。
[0014]因此,根据至少一些实施例的监控方法与调用函数兼容,调用函数可能是非系统的,因此在程序开发期间不完全可预测。因此,调用整合规程允许精确地监控由选定程序代码部分执行的指令的数目,而不会被来自调用的意外指令所扭曲。
[0015]在一些实施例中,调用整合规程还包括在将第二程序代码部分作为选定程序代码部分的情况下:开始另外的计时;将程序计数器的当前值与特定于选定第二程序代码部分的另一目标地址集进行比较;停止另外的计时;以及基于特定于选定第二程序代码部分的另一标称持续时间范围而生成错误。在一些实施例中,该方法还可包括执行另外的调用整合规程。
[0016]因此,根据一个或多个实施例,监控方法独立地考虑第一选定代码部分的实施持续时间和由第一代码部分的执行调用的第二选定代码部分的实施持续时间,从而允许对由选定代码部分中的每一个执行的指令数目进行更精确的控制。
[0017]根据一个或多个实施例,标称持续时间范围基于由处理电路系统进行的标称执行的时钟周期的数目、以及由从存储器获取指令所引起的延迟。
[0018]实际上,如上所述,根据并入了处理电路系统的片上系统的架构,选定代码部分的每个指令可能需要一定数目的周期来执行,但再次根据片上系统的架构和实际性能,还考虑从含有指令的存储器中获取指令所需或期望的持续时间。
[0019]根据一个或多个实施例,基于处理电路系统的活动而自动调整标称持续时间范围,该活动可由以下参数中的至少一个来传送或可包括以下参数中的至少一个:对处理电路系统的执行进行时钟控制的时钟信号的频率;高速缓存指令准入事件;高速缓存数据准入事件;高速缓存数据逐出事件;或者处理电路系统的等待状态。
[0020]因此,根据一些实施例的监控方法基于由处理电路系统传送的信息信号,根据给定执行的上下文,根据实际性能而自动调整标称持续时间范围。
[0021]根据一个或多个实施例,计时由与对处理电路系统的执行进行时钟控制的时钟信号不同的时钟信号进行时钟控制。
[0022]在一些实施例中,监控电路系统可由独立时钟信号来时钟控制,例如,以便即使对处理电路系统进行时钟控制的时钟信号的频率被修改,也始终以其配置的操作频率进行时钟控制。
[0023]根据一个或多个实施例,选定程序代码部分属于由处理电路系统进行的程序代码的执行的在访问权限管理保护机制生效之前的启动阶段,或者属于由处理电路系统进行的执行的具有最大许可访问权限的关键阶段。在一些实施例中,选定程序代码部分可作为以下项本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于监控选定程序代码部分的执行的方法,所述选定程序代码部分存储在起始地址和结束地址之间的存储器地址范围内,所述执行由处理电路系统使用指向由所述处理电路系统执行的指令的地址的程序计数器来实施,所述方法包括:当所述程序计数器指向所述选定程序代码部分的所述起始地址时,开始计时;将所述程序计数器的当前值与特定于所述选定程序代码部分的目标地址集进行比较,所述目标地址集包括所述选定程序代码部分的所述结束地址;当所述程序计数器指向所述选定程序代码部分的所述结束地址时,停止所述计时;以及响应于所述计时的持续时间在特定于所述选定程序代码部分的标称持续时间范围之外,生成错误信号。2.根据权利要求1所述的方法,其中所述选定程序代码部分包括至少一个调用函数,所述调用函数被配置为调用第二程序代码部分,所述第二程序代码部分存储在第二起始地址和第二结束地址之间的第二存储器地址范围内,并且特定于所述选定程序代码部分的所述目标地址集包括所述第二起始地址,所述方法还包括:当所述程序计数器指向所述第二起始地址时,执行调用整合规程,所述执行所述调用整合规程包括:暂停所述计时;存储暂停的所述计时的值;以及当所述程序计数器指向所述第二结束地址时,从存储的所述值恢复暂停的所述计时。3.根据权利要求2所述的方法,其中所述调用整合规程还包括,在将所述第二程序代码部分作为所述选定程序代码部分的情况下:开始另外的计时;将所述程序计数器的所述当前值与特定于所述第二选定程序代码部分的另一目标地址集进行比较;停止所述另外的计时;以及基于特定于所述第二选定程序代码部分的另一标称持续时间范围,生成所述错误信号。4.根据权利要求3所述的方法,还包括执行另外的调用整合规程。5.根据权利要求1所述的方法,其中所述标称持续时间范围基于以下项:由所述处理电路系统进行的标称执行的时钟周期的数目、以及由从存储器获取指令所引起的延迟。6.根据权利要求1所述的方法,其中所述标称持续时间范围基于以下项中的至少一项而自动调整:对所述处理电路系统的所述执行进行时钟控制的时钟信号的频率、高速缓存指令准入事件、高速缓存数据准入事件、高速缓存数据逐出事件、或所述处理电路系统的等待状态。7.根据权利要求1所述的方法,其中所述计时由与对所述处理电路系统的执行进行时钟控制的时钟信号不同的时钟信号来时钟控制。8.根据权利要求1所述的方法,其中所述选定程序代码部分作为以下项中的至少一项的一部分来执行:所述处理电路系统的在访问权限管理保护机制生效之前的启动阶段、或者所述处理电路系统的具有最大许可访问权限的关键阶段。
9.一种装置,包括:处理电路系统,被配置为执行选定程序代码部分,并且生成指向执行的指令的地址的程序计数器,所述选定程序代码部分存储在起始地址和结束地址之间的存储器地址范围内;以及监控电路系统,被配置为监控所述选定程序代码部分的所述执行,所述监控电路系统包括:比较器电路,被配置为将所述程序计数器的当前值与特定于所述选定程序代码部分的目标地址集进行比较,所述目标地址集包括所述选定程序代码部分的所述结束地址;计数器电路,被配置为当所述程序计数器指向所述选定程序代码部分的所述起始地址时,开始计时,并且当所述程序计数器指向所述选定程序代码部分的所述结束地址时,停止所述计时;以及决策电路,被配置为响应于所述计时的持续时间在特定于所述选定程序代码部分的标称持续时间范围之外,生成错误信号。10.根据权利要求9所述的装置,其中所述选定程序代码部分包括至少一个调用函数,所述调用函数被配置为调用第二程序代码部分,所述第二程序代码部分存储在第二起始地址和第二结束地址之间的第二存储器地址范围内,并且特定于所述选定程序代码部分的所述目标地址集包括所述第二...

【专利技术属性】
技术研发人员:M
申请(专利权)人:意法半导体大西部公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1