提取处理器执行上下文的方法及处理器技术

技术编号:27477238 阅读:14 留言:0更新日期:2021-03-02 17:46
本发明专利技术提供一种提取处理器执行上下文的方法,当应用于多核处理器时,所述方法包括:BSP处理器接收中断源发出的中断信号,并响应中断信号进入对应的中断服务程序,提取自身的执行上下文,所述中断源为BSP处理器的LAPIC定时器;各AP处理器接收BSP处理器发出的核间中断信号,分别响应核间中断信号进入各自对应的中断服务程序,提取各自的执行上下文。本发明专利技术使用BSP处理器的LAPIC定时器作为中断源,BSP处理器和各AP处理器在中断服务程序中提取执行上下文,用户态和内核态的执行上下文都可以获取。获取。获取。

【技术实现步骤摘要】
提取处理器执行上下文的方法及处理器


[0001]本专利技术涉及处理器验证
,尤其涉及一种提取处理器执行上下文的方法及处理器。

技术介绍

[0002]处理器执行上下文是记录运行在CPU上的程序执行场景,主要包括MSR(Model Specific Registers,架构特定寄存器)、通用寄存器、控制寄存器以及程序使用到的内存页信息。CPU仿真器利用获取的执行上下文来实现程序执场景的重放,通过对程序执行的重放,可以分析CPU的指令行为,在处理器性能和功能的验证方面有重要应用。现有技术中,提取执行上下文的方法是记录程序的每个线程执行上下文,主要用于解决用户态下软件程序故障,分析定位软件程序在执行时遇到的问题。而在处理器CPU验证的场景下,尤其是在利用CPU仿真器进行指令级别验证的应用中,现有方法不能够提供内核态的执行上下文。

技术实现思路

[0003]为解决上述问题,本专利技术提供了一种提取处理器执行上下文的方法及处理器,能够获取用户态和内核态的执行上下文。
[0004]第一方面,本专利技术提供一种提取处理器执行上下文的方法,应用于多核处理器,所述多核处理器包括一个BSP处理器和多个AP处理器,所述方法包括:
[0005]BSP处理器接收中断源发出的中断信号,并响应所述中断信号进入对应的中断服务程序,提取自身的执行上下文,所述中断源为BSP处理器的LAPIC定时器;
[0006]各AP处理器接收所述BSP处理器发出的核间中断信号,分别响应所述核间中断信号进入各自对应的中断服务程序,提取各自的执行上下文。
[0007]可选地,所述方法还包括:
[0008]各AP处理器提取完各自的执行上下文之后,通知所述BSP处理器;
[0009]所述BSP处理器收到各AP处理器的通知后,判断当前的程序指令寄存器的值是否在被重放程序的指令寄存器范围内,若是,则继续判断当前发生的中断数量是否达到设置的中断间隔,若是,则接收仿真器的命令,与所述仿真器交互信息,以使所述仿真器重放所述被重放程序。
[0010]可选地,所述接收仿真器的命令,与所述仿真器交互信息包括:
[0011]接收仿真器发出的发送被重放程序执行上下文的命令,向仿真器发送执行上下文;
[0012]接收仿真器发出的发送系统内存页的命令,向仿真器发送系统内存页;
[0013]接收仿真器发出的继续执行被重放程序的命令,继续执行被重放程序,等待下一次中断发生;或者,接收仿真器发出的终止执行被重放程序的命令,终止执行被重放程序。
[0014]可选地,在BSP处理器接收中断源发出的中断信号之前,所述方法还包括:
[0015]BSP处理器在系统页表结构中挑选一个内存页,修改所述内存页中虚拟地址到物
理地址的地址转换关系。
[0016]第二方面,本专利技术提供一种提取处理器执行上下文的方法,应用于单核处理器,所述单核处理器包括处理器CPU,所述方法包括:
[0017]处理器CPU接收中断源发出的中断信号,并响应所述中断信号进入中断服务程序,提取处理器执行上下文,所述中断源为LAPIC定时器。
[0018]第三方面,本专利技术提供一种多核处理器,所述多核处理器包括一个BSP处理器和多个AP处理器,其中,
[0019]所述BSP处理器,用于接收中断源发出的中断信号,并响应所述中断信号进入对应的中断服务程序,提取自身的执行上下文,所述中断源为BSP处理器的LAPIC定时器;
[0020]各所述AP处理器,用于接收所述BSP处理器发出的核间中断信号,分别响应所述核间中断信号进入各自对应的中断服务程序,提取各自的执行上下文。
[0021]可选地,各所述AP处理器,用于提取完各自的执行上下文之后,通知所述BSP处理器;
[0022]所述BSP处理器,用于收到各AP处理器的通知后,判断当前的程序指令寄存器的值是否在被重放程序的指令寄存器范围内,若是,则继续判断当前发生的中断数量是否达到设置的中断间隔,若是,则接收仿真器的命令,与所述仿真器交互信息,以使所述仿真器重放所述被重放程序。
[0023]可选地,所述BSP处理器接收仿真器的命令,与所述仿真器交互信息包括:
[0024]接收仿真器发出的发送被重放程序执行上下文的命令,向仿真器发送执行上下文;
[0025]接收仿真器发出的发送系统内存页的命令,向仿真器发送系统内存页;
[0026]接收仿真器发出的继续执行被重放程序的命令,继续执行被重放程序,等待下一次中断发生;或者,接收仿真器发出的终止执行被重放程序的命令,终止执行被重放程序。
[0027]可选地,所述BSP处理器,还用于在系统页表结构中挑选一个内存页,修改所述内存页中虚拟地址到物理地址的地址转换关系。
[0028]第四方面,本专利技术提供一种单核处理器,所述单核处理器包括处理器CPU,其中,
[0029]所述处理器CPU,用于接收中断源发出的中断信号,并响应所述中断信号进入中断服务程序,提取处理器执行上下文,所述中断源为LAPIC定时器。
[0030]本专利技术提供的提取处理器执行上下文的方法及处理器,使用LAPIC定时器作为中断源,周期性地产生中断信号,通过修改IDT中中断服务程序的信息,在中断服务程序中以内核权限提取执行上下文,不受系统权限的限制,用户态和内核态的执行上下文都可以获取。另外,通过修改系统页表结构的地址转换关系,仿真器可以直接获取程序执行环境的系统内存,无需为保存程序访问的内存页而增加存储空间。
附图说明
[0031]图1为本专利技术一实施例提供的一种提取处理器执行上下文的方法的流程示意图;
[0032]图2为本专利技术一实施例提供的一种提取处理器执行上下文的方法的流程示意图;
[0033]图3为本专利技术一实施例提供的一种多核处理器的结构示意图;
[0034]图4为本专利技术一实施例提供的一种单核处理器的结构示意图。
具体实施方式
[0035]为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0036]图1示出了本专利技术实施例提供的一种提取处理器执行上下文的方法的流程示意图。该方法适用于多核处理器,多核处理器的内核按功能分为两种,包括BSP(Bootstrap processor,启动处理器)和AP(Application processor,应用处理器)。BSP就是在系统启动的时候执行启动代码的CPU,AP则处于等待状态。一般是0号CPU作为BSP。本专利技术实施例中,多核处理器包括一个BSP处理器和多个AP处理器。每个处理器实质上是一个内核(Core),都有一个对应的LAPIC(Local Advan本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种提取处理器执行上下文的方法,其特征在于,应用于多核处理器,所述多核处理器包括一个BSP处理器和多个AP处理器,所述方法包括:BSP处理器接收中断源发出的中断信号,并响应所述中断信号进入对应的中断服务程序,提取自身的执行上下文,所述中断源为BSP处理器的LAPIC定时器;各AP处理器接收所述BSP处理器发出的核间中断信号,分别响应所述核间中断信号进入各自对应的中断服务程序,提取各自的执行上下文。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:各AP处理器提取完各自的执行上下文之后,通知所述BSP处理器;所述BSP处理器收到各AP处理器的通知后,判断当前的程序指令寄存器的值是否在被重放程序的指令寄存器范围内,若是,则继续判断当前发生的中断数量是否达到设置的中断间隔,若是,则接收仿真器的命令,与所述仿真器交互信息,以使所述仿真器重放所述被重放程序。3.根据权利要求2所述的方法,其特征在于,所述接收仿真器的命令,与所述仿真器交互信息包括:接收仿真器发出的发送被重放程序执行上下文的命令,向仿真器发送执行上下文;接收仿真器发出的发送系统内存页的命令,向仿真器发送系统内存页;接收仿真器发出的继续执行被重放程序的命令,继续执行被重放程序,等待下一次中断发生;或者,接收仿真器发出的终止执行被重放程序的命令,终止执行被重放程序。4.根据权利要求1所述的方法,其特征在于,在BSP处理器接收中断源发出的中断信号之前,所述方法还包括:BSP处理器在系统页表结构中挑选一个内存页,修改所述内存页中虚拟地址到物理地址的地址转换关系。5.一种提取处理器执行上下文的方法,其特征在于,应用于单核处理器,所述单核处理器包括处理器CPU,所述方法包括:处理器CPU接收中断源发出的中断信号,并响应所述中断信号进入中断服务程序,提取处理器执行上下文,所述中断...

【专利技术属性】
技术研发人员:吴敌陈玉龙杨振
申请(专利权)人:成都海光集成电路设计有限公司
类型:发明
国别省市:

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

1