CN110209615A - 执行不可屏蔽中断的方法和装置 - Google Patents

执行不可屏蔽中断的方法和装置 Download PDF

Info

Publication number
CN110209615A
CN110209615A CN201910408194.1A CN201910408194A CN110209615A CN 110209615 A CN110209615 A CN 110209615A CN 201910408194 A CN201910408194 A CN 201910408194A CN 110209615 A CN110209615 A CN 110209615A
Authority
CN
China
Prior art keywords
security
mode
safe mode
user
state
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.)
Granted
Application number
CN201910408194.1A
Other languages
English (en)
Other versions
CN110209615B (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201910408194.1A priority Critical patent/CN110209615B/zh
Publication of CN110209615A publication Critical patent/CN110209615A/zh
Application granted granted Critical
Publication of CN110209615B publication Critical patent/CN110209615B/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/48Program initiating; Program switching, e.g. by interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/24Resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Microcomputers (AREA)
  • Bus Control (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种执行不可屏蔽中断的方法和装置,该方法包括:在非安全模式下获取安全中断请求,并中断操作系统OS的操作,该安全中断请求不可被屏蔽;通过所述安全中断请求进入安全模式,在所述安全模式下保存所述OS的操作中断时OS状态的中断上下文;返回所述非安全模式执行用户定义处理;在所述用户定义处理完成后,再次进入所述安全模式,在该安全模式下根据所述中断上下文恢复所述OS状态;再次返回所述非安全模式,继续执行所述OS的操作。本发明实施例的执行不可屏蔽中断的方法和装置,可以不依赖于硬件简单地实现NMI。

Description

执行不可屏蔽中断的方法和装置
技术领域
本发明实施例涉及服务器领域,并且更具体地,涉及一种执行不可屏蔽中断的方法和装置。
背景技术
服务器一般对系统稳定性有着极高的要求。在系统正常运行时候能够定时保存系统的状态,同时也需要在系统异常的时候能够保存一些关键数据,为定位系统出错原因提供数据支撑。因为系统正常运行时,可以有多种方法和手段来保存系统数据,但是系统异常时——最严重的就是死机时,所有常规方法和手段已经不可行,所有中断也无法响应。此时需要不可屏蔽中断(Non Maskable Interrupt,NMI)机制来保存数据。
NMI即中央处理器(Central Processing Unit,CPU)不能屏蔽的中断,无论状态寄存器中的中断标识(Interrupt Flag,IF)位的状态如何,CPU收到有效的NMI必须进行响应。NMI通常用于故障处理,例如协处理器运算出错、存储器校验出错、输入/输出(Input/Output,I/O)端口校验出错等,用于保存操作系统(Operating System,OS)的错误状态和异常信息等。因此NMI是当前服务器领域非常重要的问题定位手段,对产品本身来说,也是非常重要的特性。
当前的X86和单字长定点指令平均执行速度(Million Instructions PerSecond,MIPS)等架构都有对应的NMI实现机制。主要是定时触发或由硬件故障触发一个中断,该中断无法被屏蔽,即使系统已经发生死锁,也能响应中断。X86和MIPS等架构通过硬件手段使得系统在非安全模式中执行NMI涉及的数据保存,以及书写系统日志和喂狗等用户定义处理。但是在进阶精简指令集机器(Advanced RISC Machine,ARM)架构中,没有对应的硬件使得可以在非安全模式中来实现NMI。并且现有的arm-v8规范和软件解决方案也没有提供对NMI机制的支持。因此需要在没有硬件支持的情况下提供一种方法来实现NMI机制。
发明内容
本发明实施例提供一种执行不可屏蔽中断的方法和装置,能够在ARM架构中不依赖于硬件简单地实现NMI机制。
第一方面,本发明提供了一种执行不可屏蔽中断的方法,包括:在非安全模式下获取安全中断请求,并中断操作系统OS的操作,所述安全中断请求不可被屏蔽;通过所述安全中断请求进入安全模式,在所述安全模式下保存所述OS的操作中断时OS状态的中断上下文;返回所述非安全模式执行用户定义处理;在所述用户定义处理完成后,再次进入所述安全模式,在所述安全模式下根据所述中断上下文恢复所述OS状态;再次返回所述非安全模式,继续执行所述OS的操作。
其中,在执行该方法之前,可以对相应的寄存器和异常向量表进行预配置,使得在获取安全中断请求后能够执行不可屏蔽中断流程。
例如,在ARM架构中,预配置SCR_EL3寄存器的FIQ位为1,使得当获取安全中断请求FIQ时,系统能够知道应执行不可屏蔽中断,从而转向异常向量表查找应路由至的模式。对异常向量表的预配置则可以将地址初始化为VBAR_EL3,使得系统在执行不可屏蔽中断时进入非安全模式。
基于上述技术方案,本发明实施例的执行不可屏蔽中断的方法通过安全中断请求进入安全模式保存中断时OS状态的中断上下文,返回非安全模式执行用户定义处理后再次进入安全模式恢复OS状态,恢复OS状态后再次返回非安全模式继续执行OS的操作,从而可以不依赖于硬件简单地实现NMI流程。
结合第一方面,在第一方面的一种实现方式中,返回所述非安全模式执行用户定义处理,包括:在所述安全模式下完成所述中断上下文的保存后,根据所述安全模式的异常返回地址返回所述非安全模式,执行用户定义函数以完成所述用户定义处理。
结合第一方面或其上述相应的实现方式的任一种,在第一方面的另一种实现方式中,在所述根据所述安全模式的异常返回地址返回所述非安全模式,执行用户定义函数以完成所述用户定义处理之前,所述方法还包括:在所述非安全模式的内核kernel启动时调用接口函数,所述接口函数通过安全监控呼叫SMC指令在所述安全模式将所述用户定义函数的地址记录在所述异常返回地址中。
结合第一方面或其上述相应的实现方式的任一种,在第一方面的另一种实现方式中,所述方法还包括:在所述安全模式的异常向量表中预配置保存函数的地址,所述保存函数用于保存所述OS的操作中断时OS状态的所述中断上下文;所述通过所述安全中断请求进入安全模式,在所述安全模式下保存所述OS的操作中断时OS状态的中断上下文,包括:当产生所述安全中断请求时,所述安全中断请求不可被屏蔽,根据所述保存函数的地址进入安全模式执行所述保存函数。
结合第一方面或其上述相应的实现方式的任一种,在第一方面的另一种实现方式中,所述通过所述安全中断请求进入安全模式,在所述安全模式下保存所述OS的操作中断时OS状态的中断上下文,可以包括:通过所述安全模式中运行的安全监测Secure Monitor软件捕获所述安全中断请求以进入安全模式,通过所述Secure Monitor软件在所述安全模式下保存所述OS的操作中断时OS状态的中断上下文。
第二方面,本发明提供了一种执行不可屏蔽中断的装置,包括中断模块、保存模块、第一执行模块、恢复模块和第二执行模块,以用于执行第一方面及其相应的实现方式的执行不可屏蔽中断的方法。其中,中断模块,用于在非安全模式下获取安全中断请求,并中断操作系统OS的操作;保存模块,用于通过所述安全中断请求进入安全模式,在所述安全模式下保存所述OS的操作中断时OS状态的中断上下文;第一执行模块,用于返回所述非安全模式执行用户定义处理;恢复模块,用于在所述用户定义处理完成后,再次进入所述安全模式根据所述中断上下文恢复所述OS状态;第二执行模块,用于返回所述非安全模式,继续执行所述OS的操作。
其中,第二方面中所指的执行不可屏蔽中断的装置可以是中央处理器CPU。
结合第二方面,在第二方面的一种实现方式中,所述第一执行模块具体用于:在所述安全模式下完成所述中断上下文的保存后,根据所述安全模式的异常返回地址返回所述非安全模式,执行用户定义函数以完成所述用户定义处理。
结合第二方面或其上述相应的实现方式的任一种,在第二方面的另一种实现方式中,所述装置还包括:接口调用模块,用于在所述第一执行模块根据所述安全模式的异常返回地址返回所述非安全模式,执行用户定义函数以完成所述用户定义处理之前,在所述非安全模式的内核kernel启动时调用接口函数,所述接口函数通过安全监控呼叫SMC指令在所述安全模式将所述用户定义函数的地址记录在所述安全模式的所述异常返回地址中。
结合第二方面或其上述相应的实现方式的任一种,在第二方面的另一种实现方式中,所述保存模块具体用于:通过所述安全模式中运行的安全监测Secure Monitor软件捕获所述安全中断请求以进入安全模式,通过所述Secure Monitor软件在所述安全模式下保存所述OS的操作中断时OS状态的中断上下文。
结合第二方面或其上述相应的实现方式的任一种,在第二方面的另一种实现方式中,所述装置还包括:预配置模块,用于在所述安全模式的异常向量表中预配置保存函数的地址,所述保存函数用于保存所述OS的操作中断时OS状态的所述中断上下文;所述保存模块具体用于:当产生所述安全中断请求时,所述安全中断请求不可被屏蔽,根据根据所述预配置模块预配置的所述保存函数的地址直接进入安全模式执行所述保存函数。
第三方面,本发明提供了一种执行不可屏蔽中断的装置,包括处理器、存储器和收发器,所述存储器用于存储指令,所述处理器用于执行所述存储器存储的指令,以控制收发器进行信号的接收和发送,当处理器执行所述存储器存储的指令时,以用于执行第一方面及其相应的实现方式的方法。
其中,在第三方面的执行不可屏蔽中断的装置中,收发器可以为一个接口,用于接收硬件向CPU发送的安全中断请求。
在第一方面至第三方面及相应的实现方式中,所述安全中断请求为快速中断请求FIQ。
在第一方面至第三方面及相应的实现方式中,用户定义处理可以是用户定义的,能够在不可屏蔽流程中的非安全模式下执行的指令。所述用户定义处理可以包括:保存系统日志、上报OS的状态和喂狗中的至少一种。
在第一方面至第三方面及相应的实现方式中,所述非安全模式包括进阶精简指令集机器ARM架构的异常等级EL0和EL1中的至少一种,所述安全模式包括所述ARM架构的EL3。
在第一方面至第三方面及相应的实现方式中,所述安全中断请求是所述OS定时触发看门狗生成的,或者是由于硬件故障触发看门狗生成的。
本发明实施例的执行不可屏蔽中断的方法和装置,对安全中断请求进行相应的预配置,在获取安全中断请求时能够不受到硬件(例如MASK)的屏蔽,直接进入安全模式执行中断流程的中断上下文保存,继而通过安全模式的安全监测软件在安全模式与非安全模式下切换,实现后续的用户定义处理、OS状态恢复以及继续执行OS的操作等处理,因而可以不依赖于硬件简单地实现不可屏蔽中断流程。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明一个实施例的执行不可屏蔽中断的方法的示意性流程图。
图2是根据本发明另一个实施例的执行不可屏蔽中断的方法的示意性流程图。
图3是根据本发明另一个实施例的执行不可屏蔽中断的方法的示意性流程图。
图4是根据本发明一个实施例的FIQ的预配置的示意性流程图。
图5是根据本发明一个实施例的用户定义函数的预配置的示意性流程图。
图6是根据本发明一个实施例的执行不可屏蔽中断的装置的示意性框图。
图7是根据本发明另一个实施例的执行不可屏蔽中断的装置的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面对本发明实施例涉及的几个基本概念进行简要地介绍。
NMI:不可屏蔽中断(Non Maskable Interrupt),即中央处理器(CentralProcessing Unit,CPU)不能屏蔽的中断,无论状态寄存器中的中断标识(Interrupt Flag,IF)位的状态如何,CPU收到有效的NMI必须进行响应。NMI通常用于故障处理,例如协处理器运算出错、存储器校验出错、输入/输出(Input/Output,I/O)端口校验出错等,用于保存操作系统(Operating System,OS)的错误状态和异常信息等。
EL0:异常等级(Exception Level)0,是指ARM架构中应用软件运行的环境,属于非安全模式,也称作非安全世界。
EL1:异常等级(Exception Level)1,是指ARM架构中内核(kernel)运行的环境,属于非安全模式。其中,kernel为操作系统内核,是指大多数操作系统(Operating System,OS)的核心部分。它由OS中用于管理存储器、文件、外设和系统资源的部分组成。kernel通常用于运行进程,并提供进程间的通信。
EL3:Exception Level 3,一般用于ARM架构中运行安全监控(Secure Monitor)软件,例如可从网络获取的开源软件Trust Firmware等,EL3属于安全模式,也称作安全世界。
安全中断请求:是指可以被安全模式的代码处理的中断。
FIQ:快速中断请求(Fast Interrupt Request,FIQ),系统在中断时做一些优化来达到快速和实时的目的。FIQ必须尽快处理,处理结束后离开这个模式。中断请求(Interrupt Request,IRQ)可以被FIQ中断,但IRQ不能中断FIQ。
本发明实施例的方法可以应用于ARM架构中,例如,应用于ARM64架构。也可以应用于非ARM架构的系统中,只要可以运行安全监测软件或者可以产生类似于安全中断的系统,都可以利用本发明的思想来实现NMI机制。
本发明实施例的执行不可屏蔽中断的方法,对安全中断请求进行相应的预配置,在获取安全中断请求时能够不受到硬件(例如MASK)的屏蔽,直接进入安全模式执行中断流程的中断上下文保存,继而通过安全模式的安全监测软件在安全模式与非安全模式下切换,实现后续的用户定义处理、OS状态恢复以及继续执行OS的操作等处理,因而可以不依赖于硬件简单地实现不可屏蔽中断流程。
具体而言,图1是根据本发明一个实施例的执行不可屏蔽中断的方法100的示意性流程图,方法100可以包括:
S110,在非安全模式下获取安全中断请求,并中断操作系统OS的操作,该安全中断请求不可被屏蔽;
S120,通过该安全中断请求进入安全模式,在该安全模式下保存该OS的操作中断时OS状态的中断上下文;
S130,返回该非安全模式执行用户定义处理;
S140,在该用户定义处理完成后,再次进入该安全模式,在该安全模式下根据该中断上下文恢复该OS状态;
S150,再次返回该非安全模式,继续执行该OS的操作。
其中,在执行该方法之前,可以对相应的寄存器和异常向量表进行预配置,使得在获取安全中断请求后能够执行不可屏蔽中断流程。
例如,在ARM架构中,预配置SCR_EL3寄存器的FIQ位为1,使得当获取安全中断请求FIQ时,系统能够知道应执行不可屏蔽中断,从而转向异常向量表查找应路由至的模式。对异常向量表的预配置则可以将地址初始化为VBAR_EL3,使得系统在执行不可屏蔽中断时进入非安全模式。
应理解,用户定义处理可以是用户定义的,能够在不可屏蔽流程中的非安全模式下执行的指令。
本发明实施例的执行不可屏蔽中断的方法,通过安全中断请求进入安全模式保存中断时OS状态的中断上下文,返回非安全模式执行用户定义处理后再次进入安全模式恢复OS状态,恢复OS状态后再次返回非安全模式继续执行OS的操作,从而可以不依赖于硬件简单地实现NMI。
其中,本发明实施例中的安全中断请求可以为快速中断请求FIQ,也可以为可以被安全模式的代码处理的其它类型的安全中断请求,本发明实施例对此不作限定。本说明书以FIQ为例进行说明,其它安全中断请求的情况与之类似,不再一一赘述。
其中,本说明书以ARM架构为例进行说明。ARM架构中非安全模式可以包括EL0和EL1中的至少一种,安全模式可以包括EL3。
具体而言,图2和图3示出了本发明实施例的执行不可屏蔽中断的示意性流程图。执行不可屏蔽中断的过程可以包括以下步骤:
S210,看门狗(Watch Dog)生成安全中断请求,该安全中断请求可以是FIQ。其中,安全中断请求可以是OS定时触发看门狗生成的,或者是由于硬件故障触发看门狗生成的,本发明实施例对此不作限定。
OS为了保证运行的稳定性,需要定时保存OS的状态,从而定时触发看门狗生成FIQ。
硬件可以是产生中断的各类硬件设备,又称作中断源(Interrupt Source),可以包括网卡(即网络接口板,又称为通信适配器,或网络适配器(Network Adapter),或网络接口卡(Network Interface Card,NIC)),硬盘(SATA)以及看门狗等。当硬件发生故障时可以触发看门狗生成FIQ。
S220,当看门狗产生FIQ以后,通用中断控制器(Generic Interrupt Controller,GIC)会捕捉到这种中断请求,将该FIQ发送到中央处理器(Central Processing Unit,CPU)的接口。此时不论CPU处于什么状态,都会停止工作响应,即中断OS的操作,并处理该FIQ。
其中,GIC是用来对中断进行控制和上报的硬件模块,是ARM架构中的通用模块。
S230,FIQ导致CPU进入到EL3模式,FIQ不可被屏蔽,被运行在EL3模式的安全监控软件(例如trust firmware)所捕获。在安全监控软件捕获到FIQ后,CPU根据EL3模式的异常向量表,确定保存函数在EL3模式中的地址。
其中,FIQ不可被屏蔽,使得CPU进入到EL3模式可以通过预配置实现,具体在下文中的预配置的流程300中介绍。
S240,执行上述保存函数,在EL3模式下保存OS的操作中断时OS状态的中断上下文(Context,或称为场景)。
其中,中断上下文为系统中断时产生的相关数据。通常,中断上下文可以包括:X0-X30的状态、ELR_EL3、SPSR_EL3的状态等。其中,X0-X30是通用寄存器、ELR_EL3为从EL3异常返回至其它层级的地址、SPSR_EL3为EL3异常返回的状态。
S250,在完成中断上下文的保存后,根据异常返回地址返回非安全模式(EL1模式的kernel中)的用户定义函数。在返回非安全模式前,可以将保存的中断上下文连同SP_EL0、SP_EL1、SP_EL2等再保存一个备份。其中,SP_EL0是指EL0层级的堆栈点(Stack Point,SP)中的数据、SP_EL1是指EL1层级用的SP中的数据、SP_EL2是指EL2层级用的SP中的数据。
其中,异常返回地址需要在系统初始化时通过注册进行预配置,具体在下文中的预配置的流程400中介绍。
S260,在EL1模式中kernel执行用户定义函数以完成用户定义处理。
其中,用户定义处理可以是用户定义的,能够在不可屏蔽流程中的非安全模式下执行的指令。用户定义处理,可以由用户根据系统的需要定制,例如可以包括:保存系统日志、上报OS的状态和喂狗中的至少一种,以完成本次中断的一些惯常的后续处理,例如,保存系统日志,上报本次中断OS的状态,清空Watch Dog的计时器告等等。
用户定义处理还可以包括用户定义的一些其它处理,本发明实施例对此不作限定。用户定义函数中可以包括再次进入EL3模式时,所进入的函数的地址。
ARM架构的EL3模式下,不能实现本发明实施例的用户定义处理,因而需返回非安全模式(EL1模式)中来执行。
S250和S260,可以对应于S130返回该非安全模式执行用户定义处理,包括:在该安全模式下完成该中断上下文的保存后,根据该安全模式的异常返回地址返回该非安全模式,执行用户定义函数以完成该用户定义处理。
S270,在用户定义处理完成后,通过ARM架构中通用的安全监控呼叫(SecureMonitor Call,SMC)指令再次从EL1进入EL3,即安全模式,进入S260该的函数。该函数可以为恢复函数,用于根据中断上下文恢复OS状态,但本发明实施例不限于此。
S280,在中断上下文恢复后,返回非安全模式,继续执行中断产生时OS的操作。
应理解,本发明实施例的方法运行在EL3模式时,可以通过Secure Monitor软件完成相应的处理。Secure Monitor软件是可以运行在EL3模式下的一类软件。当CPU在安全模式和非安全模式之间进行切换时均可经过Secure Monitor软件。Secure Monitor软件主要负责CPU在两种模式之间转换时上下文(Context)安全稳定的切换。因而,本发明实施例的实现NMI机制可视为是基于软件实现的。
本发明实施例中,以Secure Monitor软件为Trust Firmware软件为例进行描述,当然也可以使用其他的Secure Monitor软件,本发明实施例对此不作限定。
本发明实施例中,为使得系统可执行不可屏蔽中断,在EL3模式系统需要运行trust firmware软件。在系统启动过程中,在对trust firmware初始化过程中需对FIQ进行预配置,使其能够作为安全中断请求来使用。
因此,在本发明实施例中,S120通过该安全中断请求进入安全模式,在该安全模式下保存该OS的操作中断时OS状态的中断上下文,可以包括:通过该安全模式中运行的安全监测Secure Monitor软件捕获该安全中断请求以进入安全模式,并且通过该SecureMonitor软件在该安全模式下保存该OS的操作中断时OS状态的中断上下文。
具体地,例如,FIQ的预配置过程可以如图4所示的流程300,包括:
S310,在系统启动阶段,初始化异常向量表,将异常向量表(runtime_exceptions)的地址初始化为VBAR_EL3。由此,当捕获FIQ时,CPU可以根据异常向量表进入EL3模式。
S320,配置SCR_EL3寄存器的FIQ位为1。由此,当FIQ产生时,系统可知应执行不可屏蔽中断,从而转向至异常向量表查找应路由至的模式。
S330,对系统的硬件进行配置,定义由FIQ产生的中断的特性。其中,包括配置GICCFIQEn为1,即Group0的中断为FIQ形式;设置GICC的FIQBypDisGrp0位为0。使能GICD的Group0和Group1,设置中断前将所有安全中断请求的中断使能清除,同时优先级设置为不区分。设置GICC PMR,即不屏蔽任何中断。设置对应安全中断号的中断优先级为0,即最高优先级。设置中断分组寄存器,即设置对应的安全中断号为Group0。
对应上述方法100,方法100还可以包括:
在该安全模式的异常向量表中预配置保存函数的地址,该保存函数用于保存该OS的操作中断时OS状态的中断上下文;
S120通过该安全中断请求进入安全模式,在该安全模式下保存该OS的操作中断时OS状态的中断上下文,可以包括:
当产生该安全中断请求时,该安全中断请求不可被屏蔽,根据该地址进入安全模式执行该保存函数。
应理解,上述预配置的过程也可以不在trust firmware初始化时执行,而是在系统启动的其他过程中执行。或者可以将上述流程分开在系统不同的启动阶段来执行,并且预配置的顺序可以不局限于流程300所给出的顺序。
本发明实施例中,在完成中断上下文的保存后,根据异常返回地址返回非安全模式(EL1模式的kernel中)的用户定义函数。异常返回地址可以如图5所示的流程400进行预配置,用于将运行在非安全模式下的OS的NMI的中断接口函数注册到安全模式下。
S410,启动kernel,装载除kernel以外的其他模块的代码。
S420,调用中断接口函数(例如可以为register_nmi_handler)。该函数通过SMC指令将EL1模式执行的用户定义函数(例如可以为nmi_handler)的地址传送到EL3模式的trust firmware软件中并被记录下来。
具体地,中断接口函数可以通过SMC指令向trust firmware软件发送两个参数。参数0为用户定义函数的地址,其中用户定义函数可以为用户根据需要定制的函数;参数1为SMC函数标识(ID),例如可以参考SMC调用规范设为0x83000000。其中,0x83000000可以是原始设备制造商(Original Equipment Manufacture,OEM)定义的标识ID,其符合SMC调用规范,实现的功能为保存用户定义函数的地址。继而,系统进入EL3模式的trust firmware软件,确认SMC函数ID并保存用户定义函数nmi_handler。
相应地,在该根据该安全模式的异常返回地址返回该非安全模式,执行用户定义函数以完成用户定义处理之前,该方法还包括:
在该非安全模式的kernel的启动时调用接口函数,该接口函数通过安全监控呼叫SMC指令在该安全模式,将该用户定义函数的地址记录在该异常返回地址中。
应理解,本发明实施例中也可以通过其他方式,例如中断等方式来将该用户定义函数的地址传递给trust firmware软件,本发明实施例对此不作限定。
此外,在本发明实施例的ARM架构中,当系统产生其他类型的中断时,即非不可屏蔽中断时,仍然可以依照现有的方式,生成IRQ。由相应的硬件,如IRQ MASK对其进行屏蔽,从而使得应用软件所运行的EL0和kernel运行的EL1等非安全模式不感知该中断。本发明实施例对非不可屏蔽中断的实施方式不作限定。
还应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
上文中结合图1至图5详细描述了根据本发明实施例的执行不可屏蔽中断的方法,下面将结合图6和图7描述根据本发明实施例的执行不可屏蔽中断的装置。
如图6所示,该执行不可屏蔽中断的装置500包括:
中断模块510,用于在非安全模式下获取安全中断请求,并中断操作系统OS的操作,该安全中断请求不可被屏蔽;
保存模块520,用于通过该安全中断请求进入安全模式,在该安全模式下保存该OS的操作中断时OS状态的中断上下文;
第一执行模块530,用于返回该非安全模式执行用户定义处理;
恢复模块540,用于在该用户定义处理完成后,再次进入该安全模式,在该安全模式下根据该中断上下文恢复该OS状态;
第二执行模块550,用于再次返回该非安全模式,继续执行该OS的操作。
因此,本发明实施例的执行不可屏蔽中断的装置,通过安全中断请求进入安全模式保存中断时OS状态的中断上下文,返回非安全模式执行用户定义处理后再次进入安全模式恢复OS状态,恢复OS状态后再次返回非安全模式继续执行OS的操作,从而可以不依赖于硬件简单地实现NMI。
在本发明实施例中,该安全中断请求可以为快速中断请求FIQ。
在本发明实施例中,该用户定义处理可以包括:保存系统日志、上报OS的状态和喂狗中的至少一种。
在本发明实施例中,该非安全模式可以包括进阶精简指令集机器ARM架构的异常等级EL0和EL1中的至少一种,该安全模式可以包括该ARM架构的EL3。
在本发明实施例中,该安全中断请求可以是该OS定时触发看门狗生成的,或者可以是由于硬件故障触发看门狗生成的。
可选地,作为一个实施例,该第一执行模块530具体可以用于:
在该安全模式下完成该中断上下文的保存后,根据该安全模式的异常返回地址返回该非安全模式,执行用户定义函数以完成该用户定义处理。
可选地,作为一个实施例,该装置500还可以包括:
接口调用模块,用于在该第一执行模块530根据该安全模式的异常返回地址返回该非安全模式,执行用户定义函数以完成该用户定义处理之前,在该非安全模式的内核kernel启动时调用接口函数,该接口函数通过安全监控呼叫SMC指令在该安全模式将该用户定义函数的地址记录在该异常返回地址中。
可选地,作为一个实施例,该装置500还包括:
预配置模块,用于在该安全模式的异常向量表中预配置保存函数的地址,该保存函数用于保存该OS的操作中断时OS状态的该中断上下文;
该保存模块520具体用于:
当产生该安全中断请求时,该安全中断请求不可被屏蔽,根据根据该预配置模块预配置的该保存函数的地址进入安全模式执行该保存函数。
可选地,作为一个实施例,该保存模块520具体可以用于:
通过所述安全模式中运行的安全监测Secure Monitor软件捕获所述安全中断请求以进入安全模式,并且通过所述Secure Monitor软件在所述安全模式下保存所述OS的操作中断时OS状态的中断上下文。
应理解,本发明实施例的装置500可以为CPU。
还应理解,装置500中的各模块的划分仅仅是示意性的,仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。各模块可以单独存在,也可以进行结合。优选地,装置500中的各模块可以集成到CPU的一个总模块中,用于执行不可屏蔽中断流程。
还应理解,本发明实施例的装置500可对应于执行本发明实施例中的执行不可屏蔽中断的主体,并且装置500中的各个模块的上述和其它操作和/或功能分别为了实现图1至图5中的相应流程,为了简洁,在此不再赘述。
因此,本发明实施例的执行不可屏蔽中断的装置,通过安全中断请求进入安全模式保存中断时OS状态的中断上下文,返回非安全模式执行用户定义处理后再次进入安全模式恢复OS状态,恢复OS状态后再次返回非安全模式继续执行OS的操作,从而可以不依赖于硬件简单地实现NMI。
在本发明实施例中,在非安全模式下获取安全中断请求可以由收发器实现,中断模块510、保存模块520、第一执行模块530、恢复模块540和第二执行模块550所实现的功能可以由处理器实现。如图7所示,执行不可屏蔽中断的装置600可以包括处理器610、收发器620和存储器630。其中,存储器630可以用于存储处理器610执行的代码等,收发器620可以为一个接口,用于接收看门狗等硬件向CPU发送的安全中断请求。
装置600中的各个组件通过总线系统640耦合在一起,其中总线系统640除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。
图7所示的装置600能够实现前述图1至图5的实施例中所实现的各个过程。装置600包括处理器610、收发器620和存储器630,该存储器630用于存储指令,该处理器610用于执行该存储器630存储的指令,以控制收发器620进行信号的接收和发送,当处理器610执行该存储器630存储的指令时,该装置600用于完成本发明实施例的执行不可屏蔽中断的方法。
其中,收发器620可以用于在非安全模式下获取安全中断请求,该安全中断请求不可被屏蔽;
处理器610可以用于:
中断操作系统OS的操作;
通过该安全中断请求进入安全模式,在该安全模式下保存该OS的操作中断时OS状态的中断上下文;
返回该非安全模式执行用户定义处理;
在该用户定义处理完成后,再次进入该安全模式,在该安全模式下根据该中断上下文恢复该OS状态;
再次返回该非安全模式,继续执行该OS的操作。
因此,本发明实施例的执行不可屏蔽中断的方法,通过安全中断请求进入安全模式保存中断时OS状态的中断上下文,返回非安全模式执行用户定义处理后再次进入安全模式恢复OS状态,恢复OS状态后再次返回非安全模式继续执行OS的操作,从而可以不依赖于硬件简单地实现NMI。
在本发明实施例中,该安全中断请求可以为快速中断请求FIQ。
在本发明实施例中,该用户定义处理可以包括:保存系统日志、上报OS的状态和喂狗中的至少一种。
在本发明实施例中,该非安全模式可以包括进阶精简指令集机器ARM架构的异常等级EL0和EL1中的至少一种,该安全模式可以包括该ARM架构的EL3。
在本发明实施例中,该安全中断请求可以是该OS定时触发看门狗生成的,或者可以是由于硬件故障触发看门狗生成的。
可选地,作为一个实施例,处理器610返回该非安全模式执行用户定义处理,可以包括:
在该安全模式下完成该中断上下文的保存后,根据该安全模式的异常返回地址返回该非安全模式,执行用户定义函数以完成该用户定义处理。
可选地,作为一个实施例,处理器610在该根据该安全模式的异常返回地址返回该非安全模式,执行用户定义函数以完成该用户定义处理之前,还可以用于:
在该非安全模式的内核kernel启动时调用接口函数,该接口函数通过安全监控呼叫SMC指令在该安全模式将该用户定义函数的地址记录在该异常返回地址中。
可选地,作为一个实施例,处理器610还可以用于在该安全模式的异常向量表中预配置保存函数的地址,该保存函数用于保存该OS的操作中断时OS状态的该中断上下文;
处理器610通过该安全中断请求进入安全模式,在该安全模式下保存该OS的操作中断时OS状态的中断上下文,可以包括:
当产生该安全中断请求时,该安全中断请求不可被屏蔽,根据该保存函数的地址进入安全模式执行该保存函数。
可选地,作为一个实施例,处理器610通过该安全中断请求进入安全模式,在该安全模式下保存该OS的操作中断时OS状态的中断上下文,可以包括:
通过该安全模式中运行的安全监测Secure Monitor软件捕获该安全中断请求以进入安全模式,通过该Secure Monitor软件在该安全模式下保存该OS的操作中断时OS状态的中断上下文。
应理解,本发明实施例的装置600可以为CPU。
应注意,本发明上述方法实施例可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
可以理解,本发明实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data RateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(DirectRambus RAM,DR RAM)。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (35)

1.一种执行不可屏蔽中断的方法,其特征在于,包括:
在非安全模式下获取安全中断请求,并中断操作系统OS的操作,所述安全中断请求不可被屏蔽;
通过所述安全中断请求进入安全模式,在所述安全模式下保存所述OS的操作中断时OS状态的中断上下文;
返回所述非安全模式执行用户定义处理;
在所述用户定义处理完成后,再次进入所述安全模式,在所述安全模式下根据所述中断上下文恢复所述OS状态;
再次返回所述非安全模式,继续执行所述OS的操作。
2.根据权利要求1所述的方法,其特征在于,所述返回所述非安全模式执行用户定义处理,包括:
根据异常返回地址返回所述非安全模式,在所述非安全模式执行用户定义函数以完成所述用户定义处理。
3.根据权利要求2所述的方法,其特征在于,在所述根据所述安全模式的异常返回地址返回所述非安全模式,执行用户定义函数以完成所述用户定义处理之前,所述方法还包括:
在所述非安全模式的内核kernel启动时调用接口函数,所述接口函数通过安全监控呼叫SMC指令在所述安全模式将所述用户定义函数的地址记录在所述异常返回地址中。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述安全中断请求为快速中断请求FIQ。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述用户定义处理包括:保存系统日志、上报OS的状态和喂狗中的至少一种。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述方法还包括:
在所述安全模式的异常向量表中预配置保存函数的地址,所述保存函数用于保存所述OS的操作中断时OS状态的所述中断上下文;
所述通过所述安全中断请求进入安全模式,在所述安全模式下保存所述OS的操作中断时OS状态的中断上下文,包括:
当产生所述安全中断请求时,所述安全中断请求不可被屏蔽,根据所述保存函数的地址进入安全模式执行所述保存函数。
7.根据权利要求1至6中任一项所述的方法,其特征在于,在所述安全模式下保存所述OS的操作中断时OS状态的中断上下文,包括:
通过所述Secure Monitor软件在所述安全模式下保存所述OS的操作中断时OS状态的中断上下文。
8.根据权利要求1至7中任一项所述的方法,其特征在于,所述非安全模式包括进阶精简指令集机器ARM架构的异常等级EL0和EL1中的至少一种,所述安全模式包括所述ARM架构的EL3。
9.根据权利要求1至8中任一项所述的方法,其特征在于,所述安全中断请求是所述OS定时触发看门狗生成的,或者是由于硬件故障触发看门狗生成的。
10.一种执行不可屏蔽中断的装置,其特征在于,包括:
中断模块,用于在非安全模式下获取安全中断请求,并中断操作系统OS的操作,所述安全中断请求不可被屏蔽;
保存模块,用于通过所述安全中断请求进入安全模式,在所述安全模式下保存所述OS的操作中断时OS状态的中断上下文;
第一执行模块,用于返回所述非安全模式执行用户定义处理;
恢复模块,用于在所述用户定义处理完成后,再次进入所述安全模式,在所述安全模式下根据所述中断上下文恢复所述OS状态;
第二执行模块,用于再次返回所述非安全模式,继续执行所述OS的操作。
11.根据权利要求10所述的装置,其特征在于,所述第一执行模块具体用于:
在所述安全模式下完成所述中断上下文的保存后,根据异常返回地址返回所述非安全模式,在所述非安全模式执行用户定义函数以完成所述用户定义处理。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括:
接口调用模块,用于在所述第一执行模块根据所述安全模式的异常返回地址返回所述非安全模式,执行用户定义函数以完成所述用户定义处理之前,在所述非安全模式的内核kernel启动时调用接口函数,所述接口函数通过安全监控呼叫SMC指令在所述安全模式将所述用户定义函数的地址记录在所述异常返回地址中。
13.根据权利要求10至12中任一项所述的装置,其特征在于,所述安全中断请求为快速中断请求FIQ。
14.根据权利要求10至13中任一项所述的装置,其特征在于,所述用户定义处理包括:保存系统日志、上报OS的状态和喂狗中的至少一种。
15.根据权利要求10至14中任一项所述的装置,其特征在于,所述装置还包括:
预配置模块,用于在所述安全模式的异常向量表中预配置保存函数的地址,所述保存函数用于保存所述OS的操作中断时OS状态的所述中断上下文;
所述保存模块具体用于:
当产生所述安全中断请求时,所述安全中断请求不可被屏蔽,根据所述预配置模块预配置的所述保存函数的地址进入安全模式执行所述保存函数。
16.根据权利要求10至15中任一项所述的装置,其特征在于,所述保存模块具体用于:
通过所述Secure Monitor软件在所述安全模式下保存所述OS的操作中断时OS状态的中断上下文。
17.根据权利要求10至16中任一项所述的装置,其特征在于,所述非安全模式包括进阶精简指令集机器ARM架构的异常等级EL0和EL1中的至少一种,所述安全模式包括所述ARM架构的EL3。
18.根据权利要求10至17中任一项所述的装置,其特征在于,所述安全中断请求是所述OS定时触发看门狗生成的,或者是由于硬件故障触发看门狗生成的。
19.根据权利要求10至18中任一项所述的装置,其特征在于,所述装置为中央处理器CPU。
20.一种执行不可屏蔽中断的装置,其特征在于,包括处理器、收发器和存储器,
所述存储器用于存储指令,所述处理器用于执行所述存储器存储的指令,以控制收发器进行信号的接收和发送,当处理器执行所述存储器存储的指令时,所述装置用于完成如权利要求1至9中任一项所述的方法。
21.一种执行不可屏蔽中断的方法,其特征在于,包括:
在非安全模式下获取安全中断请求,并中断操作系统OS,所述安全中断请求不可被屏蔽;
通过所述安全中断请求促使处理器进入安全模式,其中,所述安全模式用于保存所述OS的操作中断时OS状态的中断上下文并返回所述非安全模式;
在所述非安全模式下执行用户定义处理并再次促使所述处理器进入所述安全模式,其中,所述安全模式还用于根据所述中断上下文恢复所述OS状态并再次返回所述非安全模式;
在所述非安全模式下继续执行所述OS的操作。
22.根据权利要求21所述的方法,其特征在于,所述方法还包括:
调用接口函数,所述接口函数通过安全监控呼叫SMC指令在所述安全模式将所述用户定义函数的地址记录在异常返回地址中,其中,所述异常返回地址用于所述处理器在所述安全模式下完成所述中断上下文的保存后返回所述非安全模式。
23.根据权利要求21或22所述的方法,其特征在于,所述安全中断请求为快速中断请求FIQ。
24.根据权利要求21至23中任一项所述的方法,其特征在于,所述用户定义处理包括:保存系统日志、上报OS的状态和喂狗中的至少一种。
25.根据权利要求21至24中任一项所述的方法,其特征在于,所述方法还包括:
在所述安全模式的异常向量表中预配置保存函数的地址,所述保存函数的地址用于所述安全模式保存所述OS的操作中断时OS状态的所述中断上下文。
26.根据权利要求21至25中任一项所述的方法,其特征在于,所述非安全模式包括进阶精简指令集机器ARM架构的异常等级EL0和EL1中的至少一种,所述安全模式包括所述ARM架构的EL3。
27.根据权利要求21至26中任一项所述的方法,其特征在于,所述安全中断请求是所述OS定时触发看门狗生成的,或者是由于硬件故障触发看门狗生成的。
28.一种执行不可屏蔽中断的装置,其特征在于,所述装置包括一个或多个模块用于实现权利要求21-27任意一项所述的方法。
29.一种执行不可屏蔽中断的方法,其特征在于,包括:
当处理器在非安全模式下获取安全中断请求,中断操作系统OS的操作并进入安全模式后,在所述安全模式下保存所述OS的操作中断时OS状态的中断上下文并返回所述非安全模式;
当所述处理器再次进入所述安全模式时,在所述安全模式下根据所述保存的中断上下文恢复所述OS状态并返回所述非安全模式。
30.根据权利要求29所述的方法,其特征在于,所述在所述安全模式下保存所述OS的操作中断时OS状态的中断上下文并返回所述非安全模式,包括:
在所述安全模式下完成所述中断上下文的保存后,根据异常返回地址返回所述非安全模式。
31.一种执行不可屏蔽中断的装置,其特征在于,所述装置包括一个或多个模块用于实现权利要求29-30任意一项所述的方法。
32.一种用于实现不可屏蔽中断执行的存储介质,其特征在于,包括软件指令,所述软件指令在被一个或多个处理器执行时用于实现权利要求1-9任意一项所述的方法。
33.一种用于实现不可屏蔽中断执行的存储介质,其特征在于,包括软件指令,所述软件指令在被一个或多个处理器执行时用于实现权利要求21-27任意一项所述的方法。
34.一种用于实现不可屏蔽中断执行的存储介质,其特征在于,包括软件指令,所述软件指令在被一个或多个处理器执行时用于实现权利要求29-30任意一项所述的方法。
35.一种计算机系统,所述计算机系统包括存储器和处理器,所述存储器用于存储指令,所述处理器用于执行所述存储器存储的指令并实现如权利要求1-9任意一项所述的方法。
CN201910408194.1A 2015-10-16 2015-10-16 执行不可屏蔽中断的方法和装置 Active CN110209615B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910408194.1A CN110209615B (zh) 2015-10-16 2015-10-16 执行不可屏蔽中断的方法和装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201510677146.4A CN105279021B (zh) 2015-10-16 2015-10-16 执行不可屏蔽中断的方法和装置
CN201910408194.1A CN110209615B (zh) 2015-10-16 2015-10-16 执行不可屏蔽中断的方法和装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201510677146.4A Division CN105279021B (zh) 2015-10-16 2015-10-16 执行不可屏蔽中断的方法和装置

Publications (2)

Publication Number Publication Date
CN110209615A true CN110209615A (zh) 2019-09-06
CN110209615B CN110209615B (zh) 2023-09-12

Family

ID=55148073

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201510677146.4A Active CN105279021B (zh) 2015-10-16 2015-10-16 执行不可屏蔽中断的方法和装置
CN201910408194.1A Active CN110209615B (zh) 2015-10-16 2015-10-16 执行不可屏蔽中断的方法和装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201510677146.4A Active CN105279021B (zh) 2015-10-16 2015-10-16 执行不可屏蔽中断的方法和装置

Country Status (5)

Country Link
US (3) US10437632B2 (zh)
EP (2) EP4123450A1 (zh)
CN (2) CN105279021B (zh)
ES (1) ES2928753T3 (zh)
WO (1) WO2017063529A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114416408A (zh) * 2021-12-13 2022-04-29 飞腾信息技术有限公司 一种中断处理方法及装置

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105279021B (zh) * 2015-10-16 2019-05-07 华为技术有限公司 执行不可屏蔽中断的方法和装置
KR101936565B1 (ko) * 2016-11-14 2019-01-09 엘에스산전 주식회사 인버터에서 인터럽트 제어방법
CN108090376B (zh) * 2016-11-23 2021-01-12 厦门雅迅网络股份有限公司 基于TrustZone的CAN总线数据防护方法及系统
CN107103257B (zh) * 2017-05-16 2020-06-16 陕西国博政通信息科技有限公司 计算机入侵防范方法
CN107507552B (zh) * 2017-09-05 2019-08-09 京东方科技集团股份有限公司 一种信号处理方法和时序控制电路
CN109947550B (zh) * 2019-03-18 2023-07-28 晶晨半导体(上海)股份有限公司 一种适用于risc-v架构的非屏蔽中断处理系统及方法
US10860438B1 (en) * 2019-06-27 2020-12-08 EMC IP Holding Company LLC Stream level uninterrupted backup operation using an interrupt service routine approach
US11354182B1 (en) * 2019-12-10 2022-06-07 Cisco Technology, Inc. Internal watchdog two stage extension
CN110990229B (zh) * 2019-12-17 2023-07-18 北京天融信网络安全技术有限公司 一种系统信息采集方法及装置
CN117331676B (zh) * 2023-11-30 2024-03-19 上海兆芯集成电路股份有限公司 系统管理模式进入方法、处理器和计算机系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1070496A (zh) * 1991-08-30 1993-03-31 英特尔公司 自动暂停状态重启动的透明系统中断
CN102591719A (zh) * 2011-01-17 2012-07-18 上海华虹集成电路有限责任公司 一种基于8051cpu系统的中断扩展方法
US20120185628A1 (en) * 2011-01-18 2012-07-19 Texas Instruments Incorporated Locking/Unlocking CPUs to Operate in Safety Mode or Performance Mode Without Rebooting
CN102708015A (zh) * 2012-05-15 2012-10-03 江苏中科梦兰电子科技有限公司 基于cpu不可屏蔽中断系统问题诊断的调试方法
CN105279021A (zh) * 2015-10-16 2016-01-27 华为技术有限公司 执行不可屏蔽中断的方法和装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1331539B1 (en) * 2002-01-16 2016-09-28 Texas Instruments France Secure mode for processors supporting MMU and interrupts
US7603551B2 (en) * 2003-04-18 2009-10-13 Advanced Micro Devices, Inc. Initialization of a computer system including a secure execution mode-capable processor
US7165135B1 (en) * 2002-04-18 2007-01-16 Advanced Micro Devices, Inc. Method and apparatus for controlling interrupts in a secure execution mode-capable processor
US7130951B1 (en) * 2002-04-18 2006-10-31 Advanced Micro Devices, Inc. Method for selectively disabling interrupts on a secure execution mode-capable processor
US7117284B2 (en) * 2002-11-18 2006-10-03 Arm Limited Vectored interrupt control within a system having a secure domain and a non-secure domain
US7363544B2 (en) * 2003-10-30 2008-04-22 International Business Machines Corporation Program debug method and apparatus
US20050193259A1 (en) 2004-02-17 2005-09-01 Martinez Juan I. System and method for reboot reporting
US7950020B2 (en) * 2006-03-16 2011-05-24 Ntt Docomo, Inc. Secure operating system switching
US7730248B2 (en) * 2007-12-13 2010-06-01 Texas Instruments Incorporated Interrupt morphing and configuration, circuits, systems and processes
US8051467B2 (en) * 2008-08-26 2011-11-01 Atmel Corporation Secure information processing
CN102483713A (zh) * 2009-08-04 2012-05-30 富士通株式会社 复位方法以及监视装置
US9112793B2 (en) 2012-05-31 2015-08-18 International Business Machines Corporation End-to-end multipathing through network having switching devices compatible with different protocols
JP6117068B2 (ja) * 2013-09-20 2017-04-19 株式会社東芝 情報処理装置、およびプログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1070496A (zh) * 1991-08-30 1993-03-31 英特尔公司 自动暂停状态重启动的透明系统中断
CN102591719A (zh) * 2011-01-17 2012-07-18 上海华虹集成电路有限责任公司 一种基于8051cpu系统的中断扩展方法
US20120185628A1 (en) * 2011-01-18 2012-07-19 Texas Instruments Incorporated Locking/Unlocking CPUs to Operate in Safety Mode or Performance Mode Without Rebooting
CN102708015A (zh) * 2012-05-15 2012-10-03 江苏中科梦兰电子科技有限公司 基于cpu不可屏蔽中断系统问题诊断的调试方法
CN105279021A (zh) * 2015-10-16 2016-01-27 华为技术有限公司 执行不可屏蔽中断的方法和装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114416408A (zh) * 2021-12-13 2022-04-29 飞腾信息技术有限公司 一种中断处理方法及装置

Also Published As

Publication number Publication date
ES2928753T3 (es) 2022-11-22
EP4123450A1 (en) 2023-01-25
EP3306470B1 (en) 2022-07-27
US10970108B2 (en) 2021-04-06
CN110209615B (zh) 2023-09-12
US20180225143A1 (en) 2018-08-09
EP3306470A1 (en) 2018-04-11
CN105279021A (zh) 2016-01-27
US11360803B2 (en) 2022-06-14
US20210208925A1 (en) 2021-07-08
US20200034187A1 (en) 2020-01-30
CN105279021B (zh) 2019-05-07
US10437632B2 (en) 2019-10-08
WO2017063529A1 (zh) 2017-04-20
EP3306470A4 (en) 2018-08-08

Similar Documents

Publication Publication Date Title
CN105279021B (zh) 执行不可屏蔽中断的方法和装置
CN102147746B (zh) 动态线程池管理系统及管理方法
CN105718309B (zh) 虚拟环境的中断处理方法与系统
CN107608852B (zh) 一种进程监控方法及装置
CN101131639A (zh) 向os提供平台管理功能的基于efi的机制
CN102831022B (zh) 修改系统配置的方法和装置
CN104321748A (zh) 用于捕捉轻量虚拟机管理器中的错误条件的方法、系统和装置
CN106502814B (zh) 一种记录pcie设备错误信息的方法及装置
CN107491373A (zh) 一种任务栈溢出监测方法及系统
CN104054087A (zh) 控制装置监控系统以及控制装置的监控方法
RU2014151557A (ru) Сетевое управление наборами защищенных данных
CN114257551A (zh) 一种分布式限流的方法及系统、存储介质
CN105939286A (zh) 令牌桶管理方法及装置
CN109933451A (zh) 一种基于risc-v架构的异常和中断处理系统及方法
CN104461741B (zh) 基于图形设备接口的计算设备优化方法及装置
US9479478B2 (en) Method for operating a communication module, and communication module
RU2573783C1 (ru) Система и способ изменения функционала приложения
CN110912725A (zh) 一种OpenFlow虚拟交换机的配置方法及配置装置
CN106547694A (zh) 一种基于ARM CortexM4内核处理器的在线调试系统
CN106933604A (zh) 一种系统升级方法及装置
CN111131198B (zh) 网络安全策略配置的更新方法及装置
CN109062718A (zh) 一种服务器及数据处理方法
CN108075944B (zh) 一种网络监控方法及装置
JP2010015364A (ja) マルチプロセッサシステム及び情報処理装置
KR20160100626A (ko) 실제 자원들을 이용하여 악성 코드를 실행하는 컴퓨팅 장치, 악성 코드의 정보를 관리하는 서버 시스템, 및 그것들을 포함하는 전자 시스템

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