一种中断处理验证方法、计算机设备及存储介质与流程

专利2025-06-13  38


本发明涉及中断验证,尤指一种中断处理验证方法、计算机设备及存储介质。


背景技术:

1、高性能dsp核心面向计算密集型信号处理领域,通常采用超长指令字(very longinstruction word,简称vliw)架构,一个指令字中包含多条可以并行的指令,软硬件结合提升程序指令级行性。在验证带有指令延时槽的dsp核心时,由于中断是异步事件,可能在任意时刻来临,因而可能会在指令延时槽内插入中断,若延时槽内指令引用了被中断指令的目标寄存器,则可能造成执行结果错误。


技术实现思路

1、本发明的目的是提供一种中断处理验证方法、计算机设备及存储介质,能够在程序执行过程中的任意节拍插入中断,并判断中断是否出错,且可以在出错时进行节拍级比较并精确还原出错位置,从而支持中断发生的异步性以及保障中断处理验证的完备性。

2、本发明提供的技术方案如下:

3、本发明提供一种中断处理验证方法,包括步骤:

4、通过核心参考模型分别运行中断处理程序和主程序,获得与所述中断处理程序对应的第一参考轨迹和与所述主程序对应的第二参考轨迹;

5、获取在所述主程序中插入所述中断处理程序后的执行程序的执行状态轨迹;

6、截取所述执行状态轨迹中与所述中断处理程序对应的第一执行轨迹,并将所述第一执行轨迹前后的执行状态轨迹剪切拼接为与所述主程序对应的第二执行轨迹;

7、将所述第一执行轨迹和所述第一参考轨迹进行对比,将所述第二执行轨迹和所述第二参考轨迹进行对比,判断中断插入后程序执行是否出错。

8、为实现dsp核心实时验证,本技术构建核心参考模型并分别获取中断处理程序与主程序的参考执行轨迹,随后根据中断插入后的执行程序的执行状态轨迹,分别截取出中断处理程序与主程序的实际运行轨迹,与参考执行轨迹进行对比,从而判断中断插入后程序执行是否出错,且可以进行节拍级比较并在出错时精确还原出错位置,从而支持中断的异步性,实现节拍级的核心精准验证。

9、在一些实施方式中,在所述主程序中插入所述中断处理程序时,将所述中断处理程序插入时对应的所述主程序的节拍标记为中断插入点;

10、根据所述中断处理程序的运行节拍数,将所述中断处理程序开始执行时对应的所述主程序的节拍标记为中断进入点;将所述中断处理程序运行完成时对应的所述主程序的节拍标记为中断退出点;

11、根据所述中断进入点和所述中断退出点截取所述执行状态轨迹中与所述中断处理程序对应的所述第一执行轨迹。

12、在一些实施方式中,还包括:

13、判断所述中断插入点是否处于所述主程序中至少一条指令的延时槽内;

14、若判断为否,则直接响应所述中断处理程序,所述中断插入点即为所述中断进入点;

15、若判断为是,则将所述中断插入点所处的各指令的延时槽中对应最后节拍位置的指令作为第一指令,将所述第一指令对应的延时槽结束位置作为所述中断进入点,并计算所述第一指令对应的所述中断插入点与所述中断进入点之间的第一节拍数;在所述主程序对应的所述中断插入点之后,除所述第一指令外的其它指令中插入第一无操作指令,所述第一无操作指令的结束点对应所述中断进入点,以使所述主程序中所述中断插入点之前已运行的指令均执行完毕后再执行所述中断处理程序。

16、本方案在中断处理程序插入时标记其插入节拍与退出节拍,用于后续实时性的节拍级验证;同时在中断处理程序运行前若判断插入点处于主程序中至少一条指令的延时槽内,则在其它指令中分别插入对应的无操作指令,使得中断插入点之前主程序已运行的各个并行指令均能够执行完毕,防止中断处理程序对核心主程序的干扰,保障中断处理验证的完备性和实时性。

17、在一些实施方式中,还包括:

18、在所述核心参考模型中预设有指令列表,所述指令列表用于记录运行过程中每条指令进入时的节拍数、延时槽数、当前执行节拍数以及目标寄存器号;所述延时槽数和目标寄存器号为指令固有属性,所述当前执行节拍数初始化为0,并运行过程中每执行一拍,所述当前执行节拍数加1;

19、设置飞行指令集,所述飞行指令集由所述指令列表中所有所述延时槽数和所述当前执行节拍数不相等的指令组成,每当有新发射的指令时将该新发射的指令加入所述飞行指令集,每当有指令执行完毕后将该执行完毕的指令从所述飞行指令集中退出;

20、中断插入时,将所述飞行指令集以快照形式保存,计算所述中断处理程序插入时对应的所述飞行指令集中所有指令的所述延时槽数与所述当前执行节拍数的差值,取其中最大值作为所述第一无操作指令的节拍数。

21、在一些实施方式中,所述的截取所述执行状态轨迹中与所述中断处理程序对应的第一执行轨迹,具体包括:

22、若中断插入时,所述飞行指令集快照为空,此时所述中断插入点和所述中断进入点相同,可以直接截取所述中断进入点到所述中断退出点的执行状态轨迹作为第一执行轨迹;

23、若所述飞行指令集快照不为空,对于所述飞行指令集快照中的每条当前指令,计算各所述当前指令对应的所述第一节拍数减去其对应的当前执行节拍数的差值,作为第一延时节拍数,再将各所述当前指令对应的目标寄存器的数据从所述中断进入点开始向前剪切所述第一延时节拍数个数据;对于不属于所述飞行指令集快照中的目标寄存器的寄存器,将其从中断进入点开始向前剪切所述第一节拍数个数据,获得所述中断进入点之前的所述主程序的执行状态轨迹;

24、剪切完成后,截取所述中断进入点至所述中断退出点的执行状态轨迹作为所述第一执行轨迹。

25、在一些实施方式中,所述的将所述第一执行轨迹前后的执行状态轨迹剪切拼接为与所述主程序对应的第二执行轨迹,具体包括:

26、在所述中断退出点处,判断所述中断插入点记录的所述飞行指令集快照是否为空集;

27、若所述飞行指令集快照为空,则直接截取所述中断退出点后的所述主程序的执行状态轨迹;

28、若所述飞行指令集快照不为空,对于所述飞行指令集快照中的每条当前指令,计算各所述当前指令对应的所述延时槽数和所述当前执行节拍数的差值,作为第二延时节拍数,再将各所述当前指令对应的目标寄存器从所述中断退出点开始向后剪切所述第二延时节拍数个数据,获得所述中断退出点之后的所述主程序的执行状态轨迹;

29、将所述中断进入点之前的所述主程序的执行状态轨迹和所述中断退出点之后的所述主程序的执行状态轨迹进行拼接,获得所述第二执行轨迹。

30、在一些实施方式中,还包括:

31、在存在连续中断且中断未嵌套时,根据所述第一无操作指令对应的节拍数,标记所述中断处理程序开始执行时对应的所述主程序的节拍为第一中断进入点;

32、当在执行第一中断处理程序时接收到第二中断处理程序且所述第二中断处理程序的优先级不高于所述第一中断处理程序时,以所述第一中断处理程序完成时对应的所述主程序的节拍作为第二中断进入点;或,

33、在判断执行所述中断处理程序后的第一预设时间内存在第二中断处理程序时,以所述第二中断处理程序插入时对应的所述主程序的节拍作为第二中断进入点。

34、在一些实施方式中,还包括:

35、在存在连续中断且中断嵌套时,根据所述第一无操作指令对应的节拍数,标记所述中断处理程序开始执行时对应的所述主程序的节拍为第一中断进入点;

36、当在执行所述第一中断处理程序时接收到第三中断处理程序,且所述第三中断处理程序的优先级高于所述第一中断处理程序时,中断所述第一中断处理程序的执行,并以所述第三中断处理程序插入时对应的所述主程序的节拍作为第三中断进入点,在所述第三中断处理程序执行完成时,继续执行所述第一中断处理程序。

37、第二方面,本技术提供一种计算机设备,包括存储器、处理器及存储在存储器上的计算机程序,所述处理器执行所述计算机程序以实现上述的中断处理验证方法的步骤。

38、第三方面,本技术提供一种计算机存储介质,其上存储有计算机程序或指令,所述计算机程序或指令被处理器执行时实现权利要求1-8任一项所述的中断处理验证方法的步骤。

39、通过本发明提供的基于指令延时槽的中断处理验证方法及计算机设备,至少具有以下技术效果:

40、(1)本方案通过构建核心参考模型并分别获取中断处理程序与主程序的参考执行轨迹,随后根据中断插入后的执行程序的执行状态轨迹,分别截取出中断处理程序与主程序的实际运行轨迹,与参考执行轨迹进行对比,从而能够判断中断插入后程序执行是否出错,且可以进行节拍级比较并在出错时精确还原出错位置,从而支持中断的异步性,实现节拍级的核心精准验证;

41、(2)本方案在中断处理程序插入时标记其插入节拍与退出节拍,用于后续实时性的节拍级验证;同时在中断处理程序运行前及中断处理程序运行后分别插入若干无操作指令,使得中断插入点之前主程序已运行的各个并行指令均执行完毕,防止中断处理程序对核心主程序的干扰,保障中断处理验证的完备性和实时性;

42、(3)对于连续中断且中断未嵌套插入,本技术先执行第一中断处理程序,再执行第二中断处理程序,最后执行主程序指令,从而避免密集中断插入导致寄存器出错,拓展了中断处理程序插入方法的应用;

43、(4)对于连续中断且中断嵌套插入,本技术中断第一中断处理程序,优先执行较高优先级的第二中断处理程序,第二中断处理程序执行完毕后再继续执行第一中断处理程序。相当于将插入第一中断处理程序后的主程序作为一个新的主程序,新的主程序被第二中断处理程序中断,从而避免嵌套中断插入导致寄存器出错,拓展了中断处理程序插入方法的应用;

44、(5)本技术根据存储目标寄存器号的飞行指令集,识别中断进入点至中断退出点中的无操作指令,并将无操作指令对应的数据删除,从而获取准确的中断处理程序的第一执行轨迹;同时,根据中断退出点和飞行指令集剪切掉主程序中的无操作指令对应的数据,使得在截取出中断处理程序的执行轨迹后,能够拼接得到主程序对应的第二执行轨迹,以用于后续的验证,保障中断验证的可靠性。


技术特征:

1.一种中断处理验证方法,其特征在于,包括步骤:

2.根据权利要求1所述的中断处理验证方法,其特征在于,在所述主程序中插入所述中断处理程序时,将所述中断处理程序插入时对应的所述主程序的节拍标记为中断插入点;

3.根据权利要求2所述的中断处理验证方法,其特征在于,还包括:

4.根据权利要求3所述的中断处理验证方法,其特征在于,还包括:

5.根据权利要求4所述的中断处理验证方法,其特征在于,所述的截取所述执行状态轨迹中与所述中断处理程序对应的第一执行轨迹,具体包括:

6.根据权利要求5所述的中断处理验证方法,其特征在于,将所述第一执行轨迹前后的执行状态轨迹剪切拼接为与所述主程序对应的第二执行轨迹,具体包括:

7.根据权利要求3所述的中断处理验证方法,其特征在于,还包括:

8.根据权利要求3所述的中断处理验证方法,其特征在于,还包括:

9.一种计算机设备,包括存储器、处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现权利要求1-8任一项所述的中断处理验证方法的步骤。

10.一种计算机存储介质,其上存储有计算机程序或指令,其特征在于,所述计算机程序或指令被处理器执行时实现权利要求1-8任一项所述的中断处理验证方法的步骤。


技术总结
本发明提供了一种中断处理验证方法、计算机设备及存储介质,该方法包括:通过核心参考模型分别运行中断处理程序和主程序,获得与中断处理程序对应的第一参考轨迹和与主程序对应的第二参考轨迹;获取中断插入后的执行状态轨迹;截取执行状态轨迹中与中断处理程序对应的第一执行轨迹,并将第一执行轨迹前后的执行状态轨迹剪切拼接为与主程序对应的第二执行轨迹;将第一执行轨迹和第一参考轨迹进行对比,将第二执行轨迹和第二参考轨迹进行对比。该方案能够在程序执行过程中的任意节拍插入中断,并判断中断插入后程序执行是否出错,且可以进行节拍级比较并在出错时精确还原出错位置,从而支持中断发生的异步性以及保障中断处理验证的完备性。

技术研发人员:王国澎,左铸
受保护的技术使用者:上海耀芯电子科技有限公司
技术研发日:
技术公布日:2024/12/17
转载请注明原文地址:https://xbbs.6miu.com/read-25304.html