CN112416536B - 提取处理器执行上下文的方法及处理器 - Google Patents

提取处理器执行上下文的方法及处理器 Download PDF

Info

Publication number
CN112416536B
CN112416536B CN202011436392.8A CN202011436392A CN112416536B CN 112416536 B CN112416536 B CN 112416536B CN 202011436392 A CN202011436392 A CN 202011436392A CN 112416536 B CN112416536 B CN 112416536B
Authority
CN
China
Prior art keywords
processor
interrupt
execution context
simulator
receiving
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
Application number
CN202011436392.8A
Other languages
English (en)
Other versions
CN112416536A (zh
Inventor
吴敌
陈玉龙
杨振
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chengdu Haiguang Integrated Circuit Design Co Ltd
Original Assignee
Chengdu Haiguang Integrated Circuit Design Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Chengdu Haiguang Integrated Circuit Design Co Ltd filed Critical Chengdu Haiguang Integrated Circuit Design Co Ltd
Priority to CN202011436392.8A priority Critical patent/CN112416536B/zh
Publication of CN112416536A publication Critical patent/CN112416536A/zh
Application granted granted Critical
Publication of CN112416536B publication Critical patent/CN112416536B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • G06F9/462Saving or restoring of program or task context with multiple register sets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • G06F9/463Program control block organisation
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供一种提取处理器执行上下文的方法,当应用于多核处理器时,所述方法包括:BSP处理器接收中断源发出的中断信号,并响应中断信号进入对应的中断服务程序,提取自身的执行上下文,所述中断源为BSP处理器的LAPIC定时器;各AP处理器接收BSP处理器发出的核间中断信号,分别响应核间中断信号进入各自对应的中断服务程序,提取各自的执行上下文。本发明使用BSP处理器的LAPIC定时器作为中断源,BSP处理器和各AP处理器在中断服务程序中提取执行上下文,用户态和内核态的执行上下文都可以获取。

Description

提取处理器执行上下文的方法及处理器
技术领域
本发明涉及处理器验证技术领域,尤其涉及一种提取处理器执行上下文的方法及处理器。
背景技术
处理器执行上下文是记录运行在CPU上的程序执行场景,主要包括MSR(ModelSpecific Registers,架构特定寄存器)、通用寄存器、控制寄存器以及程序使用到的内存页信息。CPU仿真器利用获取的执行上下文来实现程序执场景的重放,通过对程序执行的重放,可以分析CPU的指令行为,在处理器性能和功能的验证方面有重要应用。现有技术中,提取执行上下文的方法是记录程序的每个线程执行上下文,主要用于解决用户态下软件程序故障,分析定位软件程序在执行时遇到的问题。而在处理器CPU验证的场景下,尤其是在利用CPU仿真器进行指令级别验证的应用中,现有方法不能够提供内核态的执行上下文。
发明内容
为解决上述问题,本发明提供了一种提取处理器执行上下文的方法及处理器,能够获取用户态和内核态的执行上下文。
第一方面,本发明提供一种提取处理器执行上下文的方法,应用于多核处理器,所述多核处理器包括一个BSP处理器和多个AP处理器,所述方法包括:
BSP处理器接收中断源发出的中断信号,并响应所述中断信号进入对应的中断服务程序,提取自身的执行上下文,所述中断源为BSP处理器的LAPIC定时器;
各AP处理器接收所述BSP处理器发出的核间中断信号,分别响应所述核间中断信号进入各自对应的中断服务程序,提取各自的执行上下文。
可选地,所述方法还包括:
各AP处理器提取完各自的执行上下文之后,通知所述BSP处理器;
所述BSP处理器收到各AP处理器的通知后,判断当前的程序指令寄存器的值是否在被重放程序的指令寄存器范围内,若是,则继续判断当前发生的中断数量是否达到设置的中断间隔,若是,则接收仿真器的命令,与所述仿真器交互信息,以使所述仿真器重放所述被重放程序。
可选地,所述接收仿真器的命令,与所述仿真器交互信息包括:
接收仿真器发出的发送被重放程序执行上下文的命令,向仿真器发送执行上下文;
接收仿真器发出的发送系统内存页的命令,向仿真器发送系统内存页;
接收仿真器发出的继续执行被重放程序的命令,继续执行被重放程序,等待下一次中断发生;或者,接收仿真器发出的终止执行被重放程序的命令,终止执行被重放程序。
可选地,在BSP处理器接收中断源发出的中断信号之前,所述方法还包括:
BSP处理器在系统页表结构中挑选一个内存页,修改所述内存页中虚拟地址到物理地址的地址转换关系。
第二方面,本发明提供一种提取处理器执行上下文的方法,应用于单核处理器,所述单核处理器包括处理器CPU,所述方法包括:
处理器CPU接收中断源发出的中断信号,并响应所述中断信号进入中断服务程序,提取处理器执行上下文,所述中断源为LAPIC定时器。
第三方面,本发明提供一种多核处理器,所述多核处理器包括一个BSP处理器和多个AP处理器,其中,
所述BSP处理器,用于接收中断源发出的中断信号,并响应所述中断信号进入对应的中断服务程序,提取自身的执行上下文,所述中断源为BSP处理器的LAPIC定时器;
各所述AP处理器,用于接收所述BSP处理器发出的核间中断信号,分别响应所述核间中断信号进入各自对应的中断服务程序,提取各自的执行上下文。
可选地,各所述AP处理器,用于提取完各自的执行上下文之后,通知所述BSP处理器;
所述BSP处理器,用于收到各AP处理器的通知后,判断当前的程序指令寄存器的值是否在被重放程序的指令寄存器范围内,若是,则继续判断当前发生的中断数量是否达到设置的中断间隔,若是,则接收仿真器的命令,与所述仿真器交互信息,以使所述仿真器重放所述被重放程序。
可选地,所述BSP处理器接收仿真器的命令,与所述仿真器交互信息包括:
接收仿真器发出的发送被重放程序执行上下文的命令,向仿真器发送执行上下文;
接收仿真器发出的发送系统内存页的命令,向仿真器发送系统内存页;
接收仿真器发出的继续执行被重放程序的命令,继续执行被重放程序,等待下一次中断发生;或者,接收仿真器发出的终止执行被重放程序的命令,终止执行被重放程序。
可选地,所述BSP处理器,还用于在系统页表结构中挑选一个内存页,修改所述内存页中虚拟地址到物理地址的地址转换关系。
第四方面,本发明提供一种单核处理器,所述单核处理器包括处理器CPU,其中,
所述处理器CPU,用于接收中断源发出的中断信号,并响应所述中断信号进入中断服务程序,提取处理器执行上下文,所述中断源为LAPIC定时器。
本发明提供的提取处理器执行上下文的方法及处理器,使用LAPIC定时器作为中断源,周期性地产生中断信号,通过修改IDT中中断服务程序的信息,在中断服务程序中以内核权限提取执行上下文,不受系统权限的限制,用户态和内核态的执行上下文都可以获取。另外,通过修改系统页表结构的地址转换关系,仿真器可以直接获取程序执行环境的系统内存,无需为保存程序访问的内存页而增加存储空间。
附图说明
图1为本发明一实施例提供的一种提取处理器执行上下文的方法的流程示意图;
图2为本发明一实施例提供的一种提取处理器执行上下文的方法的流程示意图;
图3为本发明一实施例提供的一种多核处理器的结构示意图;
图4为本发明一实施例提供的一种单核处理器的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1示出了本发明实施例提供的一种提取处理器执行上下文的方法的流程示意图。该方法适用于多核处理器,多核处理器的内核按功能分为两种,包括BSP(Bootstrapprocessor,启动处理器)和AP(Application processor,应用处理器)。BSP就是在系统启动的时候执行启动代码的CPU,AP则处于等待状态。一般是0号CPU作为BSP。本发明实施例中,多核处理器包括一个BSP处理器和多个AP处理器。每个处理器实质上是一个内核(Core),都有一个对应的LAPIC(Local Advanced Programmable Interrupt Controller,本地高级可编程中断控制器)。
如图1所示,本发明实施例提供了一种提取处理器执行上下文的方法,该方法包括:
步骤101,BSP处理器接收中断源发出的中断信号,并响应中断信号进入对应的中断服务程序,提取自身的执行上下文,该中断源为BSP处理器的LAPIC定时器;
步骤102,各AP处理器接收BSP处理器发出的核间中断信号,分别响应核间中断信号进入各自对应的中断服务程序,提取各自的执行上下文。
具体地,BSP(Bootstrap Processor)处理器,在多核处理器体系结构中负责boot和唤起其他处理器。LAPIC(Local Advanced Programmable Interrupt Controller,本地高级可编程中断控制器)定时器,是多核处理器体系结构中的可编程中断控制定时器,通过设置可以发出周期性的中断信号,对运行中的被重放程序进行中断采样处理。
首先设置BSP的LAPIC定时器中断机制,BSP的LAPIC定时器作为中断源。通过修改BSP的LAPIC Timer让其产生周期中断,其他AP的LAPIC Timer不做设置。另外修改系统中断描述符表(Interrupt Descriptor Table,IDT),使得中断发生时进入中断服务程序,提取处理器执行上下文。BSP处理器和各AP处理器各自对应的中断处理程序都预先通过修改IDT,使得中断服务程序能够跳转到执行上下文的提取代码段。具体地,设置中断向量号,获取系统中断描述符表IDT,IDT用于记录中断服务程序的信息。获取执行上下文提取代码段的地址,根据中断向量号和IDT,修改IDT中对应的entry信息,用执行上下文提取代码段的地址替换IDT中的Target Code Segment Offset,将修改后的IDT重新载入。最后启动中断机制。通过修改IDT中中断服务程序的信息,在中断服务程序中提取处理器执行上下文。
具体地,在本发明实施例中,中断发生后,BSP处理器会进入中断服务程序,提取自己的执行上下文,然后检查各AP的系统中断描述符表IDT是否都已修改,如果都修改完成,则向AP发送核间中断IPI(Interprocessor Interrupt)信号。各AP处理器在收到IPI之后,分别进入各自对应的中断服务程序,会提取各自的执行上下文,提取完成之后,通知BSP。BSP处理器和各AP处理器提取的执行上下文会存入内存。
这里说明的是,提取的处理器执行上下文是处理器所有的执行上下文,可能是被重放程序的,也可能是操作系统的,取决于中断发生时处理器具体执行的程序。与仿真器交互时,仿真器只需要被重放程序的执行上下文,因此,BSP收到各AP反馈的通知之后,判断当前的程序指令寄存器(RIP,Instruction Point Register)的值是否在被重放程序的RIP范围之内,若是,继续判断已发生的中断数量是否达到设置的中断间隔,若是,则接收仿真器的命令,与所述仿真器交互信息。这里必须同时满足两个条件,BSP才开始接收仿真器命令,否则不接收仿真器命令,只是获取处理器执行上下文。获取完处理器执行上下文之后就退出中断服务程序,等待下次中断。
在本发明实施例中,可以预先设置BSP与仿真器交互信息的中断间隔,这里的中断间隔是指BSP与仿真器交互信息时需要发生的中断次数,中断间隔可以根据不同类型的被重放程序进行调整。也就是说,并不是每次发生中断都与仿真器交互信息。可以设置一个数值,当发生中断的次数达到设置值时,这个数值可以是1,2,3,…10…50…100都可以,具体看被重放的程序类型,如果是指令密集型的就采样稀疏些,间隔数量大些,反之,采样密集些,间隔数量小些。简单地说,就是间隔地向仿真器发送执行上下文,既能精准回放,又能避免数据冗余。
本申请中的仿真器,如无特殊说明,均是指CPU仿真器,CPU仿真器可以通过软件的方法来模拟CPU的行为,用于CPU的验证。BSP接收仿真器的命令,并判断命令类型。根据仿真器的命令类型,可以发送处理器执行上下文、程序执行环境的内存页、继续执行程序、终止上下文的提取。具体包括:接收仿真器发出的发送执行上下文的命令,向仿真器发送执行上下文;接收仿真器发出的发送系统内存页的命令,向仿真器发送系统内存页;接收仿真器发出的继续执行被重放程序的命令,继续执行被重放程序,等待下一次中断发生;或者,接收仿真器发出的终止执行被重放程序的命令,终止执行被重放程序。仿真器根据执行上下文和系统内存页对被重放程序进行重放。
本发明实施例提供的一种提取处理器执行上下文的方法,使用BSP的LAPIC定时器作为中断源,周期性地发出中断信号,每次中断发生时,都会提取BSP处理器和各AP处理器的执行上下文,并通过设置中断间隔可以根据不同类型的被重放程序调整采样间隔、采样点数量,提高数据提取的灵活性。仿真器根据获取的执行上下文和内存页对被重放程序进行重放。重放完成后会让程序继续执行,直到下次中断发生,再次重复上下文提取和重放过程,如此循环直到全部的采样点完成,上下文获取和重放中止。在中断服务程序中以内核权限提取执行上下文,不受系统权限的限制。用户态和内核态的执行上下文都可以提取,能够得到完整的程序执行过程。
进一步地,在BSP处理器接收中断源发出的中断信号之前,如图2所示,所述方法还包括:
步骤100,BSP处理器在系统页表结构中挑选一个内存页,修改内存页中虚拟地址到物理地址的地址转换关系。
具体地,通过以下方式修改系统页表结构:
通过CR3寄存器的值获取系统页表结构的地址,其中CR3寄存器是处理器体系结构中的控制寄存器,用于存放页表结构的地址。通过page table walk(即通过系统页表结构,逐级遍历页表信息)选取一个可用的内存页,利用所述内存页重建地址转换关系。保存pageentry中原来的物理地址和页表信息,用于后续页表的恢复。获取PTE(Page Table Entry,最后一级页表结构,用于存放物理地址页框、保存页面属性)的地址信息记录保存在一个全局变量中。
通过修改内存页中虚拟地址到物理地址的地址转换关系,当仿真器需要访问某一物理地址时,会发消息给BSP,BSP会把保存的PTE页表映射到这个物理地址上,再将虚拟地址里的数据发送给仿真器,仿真器就可以直接获取相关的内存页,不需要为程序使用到的内存页提供额外的存储空间,降低存储开销。如果仿真器终止执行上下文的获取,恢复系统页表结构,即恢复之前修改过的页表信息,不会对系统造成破坏。通过这样的页表修改不仅减小了存储开销,而且仿真器可以访问所有的程序使用到的内存页,保证程序的重放准确度。
需要说明的是,上述提取处理器执行上下文的方法也可以应用于单核处理器。当应用于单核处理器时,该单核处理器包括处理器CPU,该方法包括:
处理器CPU接收中断源发出的中断信号,并响应中断信号进入中断服务程序,提取处理器执行上下文,中断源为LAPIC定时器。
至于与仿真器的交互过程,可以参考上面的实施例,此处不再赘述。
进一步地,图3示出了本发明实施例提供的一种多核处理器的结构示意图。如图3所示,本发明实施例提供了一种多核处理器,包括一个BSP处理器302和多个AP处理器303,都有对应的LAPIC,其中,
BSP处理器302,用于接收中断源发出的中断信号,并响应中断信号进入对应的中断服务程序,提取自身的执行上下文,该中断源为BSP处理器的LAPIC定时器;
各AP处理器303,用于接收BSP处理器发出的核间中断信号,分别响应核间中断信号进入各自对应的中断服务程序,提取各自的执行上下文。
进一步地,各AP处理器303,用于提取完各自的执行上下文之后,通知所述BSP处理器302;
BSP处理器302,用于收到各AP处理器303的通知后,判断当前的程序指令寄存器的值是否在被重放程序的指令寄存器范围内,若是,则继续判断当前发生的中断数量是否达到设置的中断间隔,若是,则接收仿真器的命令,与仿真器交互信息,以使所述仿真器重放所述被重放程序。
BSP处理器302接收仿真器的命令,并判断命令类型。根据仿真器的命令类型,可以发送处理器执行上下文、程序执行环境的内存页、继续执行程序、终止上下文的提取。具体包括:接收仿真器发出的发送执行上下文的命令,向仿真器发送执行上下文;接收仿真器发出的发送系统内存页的命令,向仿真器发送系统内存页;接收仿真器发出的继续执行被重放程序的命令,继续执行被重放程序,等待下一次中断发生;或者,接收仿真器发出的终止执行被重放程序的命令,终止执行被重放程序。仿真器根据执行上下文和系统内存页对被重放程序进行重放。
本发明实施例提供的一种多核处理器,使用BSP的LAPIC定时器作为中断源,周期性地发出中断信号,每次中断发生时,都会提取BSP处理器和各AP处理器的执行上下文,并通过设置中断间隔可以根据不同类型的被重放程序调整采样间隔、采样点数量,提高数据提取的灵活性。仿真器根据获取的执行上下文和内存页对被重放程序进行重放。重放完成后会让程序继续执行,直到下次中断发生,再次重复上下文提取和重放过程,如此循环直到全部的采样点完成,上下文获取和重放中止。在中断服务程序中以内核权限提取执行上下文,不受系统权限的限制。用户态和内核态的执行上下文都可以提取,能够得到完整的程序执行过程。
进一步地,BSP处理器302,还用于在系统页表结构中挑选一个内存页,修改内存页中虚拟地址到物理地址的地址转换关系。
本发明实施例提供的多核处理器是用于执行上述方法实施例的,其具体流程和详细内容请参照上述实施例,此处不再赘述。
另一方面,本发明实施例还提供一种单核处理器,如图4所示,包括处理器CPU,其中,
处理器CPU,用于接收中断源发出的中断信号,并响应中断信号进入中断服务程序,提取处理器执行上下文,所述中断源为LAPIC定时器。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干命令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

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

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011436392.8A CN112416536B (zh) 2020-12-10 2020-12-10 提取处理器执行上下文的方法及处理器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011436392.8A CN112416536B (zh) 2020-12-10 2020-12-10 提取处理器执行上下文的方法及处理器

Publications (2)

Publication Number Publication Date
CN112416536A CN112416536A (zh) 2021-02-26
CN112416536B true CN112416536B (zh) 2023-08-18

Family

ID=74776023

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011436392.8A Active CN112416536B (zh) 2020-12-10 2020-12-10 提取处理器执行上下文的方法及处理器

Country Status (1)

Country Link
CN (1) CN112416536B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113076182B (zh) * 2021-03-24 2024-03-29 成都海光集成电路设计有限公司 计算任务的恢复方法、装置、用户设备及存储介质

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1790282A (zh) * 2004-12-17 2006-06-21 日本电气株式会社 上下文存储方法、信息处理器及中断发生器
DE102004062287A1 (de) * 2004-12-23 2006-07-13 Fujitsu Siemens Computers Gmbh Verfahren zur Aktualisierung von Einträgen von Adressumsetzpuffern in einem Mehrprozessor-Computersystem
CN101158924A (zh) * 2007-11-27 2008-04-09 北京大学 一种虚拟机管理器的动态内存映射方法
CN101354664A (zh) * 2008-08-19 2009-01-28 中兴通讯股份有限公司 多核处理器中断负载均衡方法和装置
CN101425026A (zh) * 2003-07-31 2009-05-06 英特尔公司 处理器间中断
CN102077181A (zh) * 2008-04-28 2011-05-25 惠普开发有限公司 用于在多核处理器中和在某些共享存储器多处理器系统中产生并输送处理器间中断的方法和系统
CN102662835A (zh) * 2012-03-23 2012-09-12 凌阳科技股份有限公司 一种针对嵌入式系统的程序调试方法及嵌入式系统
EP2575040A1 (de) * 2011-09-28 2013-04-03 Siemens Aktiengesellschaft Verfahren für die Verarbeitung von Unterbrechungsanforderungen eines Datenverarbeitungsgerätes und Virtualisierungssteuerung für ein Datenverarbeitungsgerät
CN105653347A (zh) * 2014-11-28 2016-06-08 杭州华为数字技术有限公司 一种服务器、资源管理方法及虚拟机管理器
CN106663072A (zh) * 2014-09-26 2017-05-10 英特尔公司 用于配置中断的集合的装置和方法
CN108984464A (zh) * 2013-08-28 2018-12-11 威盛电子股份有限公司 微处理器及在微处理器的处理核间同步的方法
CN109670345A (zh) * 2018-12-21 2019-04-23 成都海光集成电路设计有限公司 内存页面换入换出的保护方法、加速器模块和soc芯片
CN110609730A (zh) * 2018-06-14 2019-12-24 阿里巴巴集团控股有限公司 一种实现虚拟处理器间中断透传的方法及设备
CN111124792A (zh) * 2019-12-20 2020-05-08 北京东土科技股份有限公司 一种多核调试方法、装置及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080126652A1 (en) * 2006-09-27 2008-05-29 Intel Corporation Managing Interrupts in a Partitioned Platform

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101425026A (zh) * 2003-07-31 2009-05-06 英特尔公司 处理器间中断
CN1790282A (zh) * 2004-12-17 2006-06-21 日本电气株式会社 上下文存储方法、信息处理器及中断发生器
DE102004062287A1 (de) * 2004-12-23 2006-07-13 Fujitsu Siemens Computers Gmbh Verfahren zur Aktualisierung von Einträgen von Adressumsetzpuffern in einem Mehrprozessor-Computersystem
CN101158924A (zh) * 2007-11-27 2008-04-09 北京大学 一种虚拟机管理器的动态内存映射方法
CN102077181A (zh) * 2008-04-28 2011-05-25 惠普开发有限公司 用于在多核处理器中和在某些共享存储器多处理器系统中产生并输送处理器间中断的方法和系统
CN101354664A (zh) * 2008-08-19 2009-01-28 中兴通讯股份有限公司 多核处理器中断负载均衡方法和装置
EP2575040A1 (de) * 2011-09-28 2013-04-03 Siemens Aktiengesellschaft Verfahren für die Verarbeitung von Unterbrechungsanforderungen eines Datenverarbeitungsgerätes und Virtualisierungssteuerung für ein Datenverarbeitungsgerät
CN102662835A (zh) * 2012-03-23 2012-09-12 凌阳科技股份有限公司 一种针对嵌入式系统的程序调试方法及嵌入式系统
CN108984464A (zh) * 2013-08-28 2018-12-11 威盛电子股份有限公司 微处理器及在微处理器的处理核间同步的方法
CN106663072A (zh) * 2014-09-26 2017-05-10 英特尔公司 用于配置中断的集合的装置和方法
CN105653347A (zh) * 2014-11-28 2016-06-08 杭州华为数字技术有限公司 一种服务器、资源管理方法及虚拟机管理器
CN110609730A (zh) * 2018-06-14 2019-12-24 阿里巴巴集团控股有限公司 一种实现虚拟处理器间中断透传的方法及设备
CN109670345A (zh) * 2018-12-21 2019-04-23 成都海光集成电路设计有限公司 内存页面换入换出的保护方法、加速器模块和soc芯片
CN111124792A (zh) * 2019-12-20 2020-05-08 北京东土科技股份有限公司 一种多核调试方法、装置及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
一种多核处理器中断控制器的设计;张海金 等;《微电子学与计算机》;第69-73页 *

Also Published As

Publication number Publication date
CN112416536A (zh) 2021-02-26

Similar Documents

Publication Publication Date Title
TWI410864B (zh) 在一處理環境中控制指令執行
CN110609730B (zh) 一种实现虚拟处理器间中断透传的方法及设备
US8843910B1 (en) Identifying a set of functionally distinct reorderings in a multithreaded program
JP4294084B2 (ja) ソフトウェアアプリケーションを実行する方法及び記録媒体
US7770050B2 (en) Method and apparatus for resolving clock management issues in emulation involving both interpreted and translated code
CN109726135B (zh) 一种多核调试方法、装置及计算机可读存储介质
US10095611B1 (en) Methodology for unit test and regression framework
CN110998541A (zh) 调试器中的代码的试验性执行
US20150212835A1 (en) Automatic identification of interesting interleavings in a multithreaded program
CN112416536B (zh) 提取处理器执行上下文的方法及处理器
US9747114B2 (en) Information processing apparatus, boot up method, and computer-readable storage medium storing boot up program
KR920003044B1 (ko) 가상 머신 시스템용의 게스트 머신 실행 제어 시스템
RU2432601C2 (ru) Метод внедрения детерминизма среди множества интервалов тактирования
CN108241522B (zh) 虚拟化环境中的睡眠状态切换方法、装置及电子设备
US8171345B2 (en) Disablement of an exception generating operation of a client system
KR101109984B1 (ko) 에뮬레이팅된 처리 환경에서 실행을 용이하게 하는 방법, 시스템 및 컴퓨터 판독가능 매체
US9959225B2 (en) Computer apparatus and control method of computer apparatus
JP2010140233A (ja) エミュレーションシステム及びエミュレーション方法
CN111324948A (zh) 模拟方法及模拟系统
CN111158863B (zh) 中断控制器的处理方法、装置及电子设备
JPS6336023B2 (zh)
US20240160450A1 (en) Program, instruction execution control apparatus, and instruction execution control method
US20220291947A1 (en) Apparatus, systems, and methods for facilitating efficient hardware-firmware interactions
JP2003005987A (ja) エミュレーション装置
CN114816987A (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