一种中断处理方法及装置与流程

文档序号:29857147发布日期:2022-04-30 09:41阅读:100来源:国知局
一种中断处理方法及装置与流程

1.本技术涉及计算机技术领域,尤其涉及一种中断处理方法及装置。


背景技术:

2.随着科技的发展,windows、linux等操作系统(operating system,os)在各个领域的应用越来越广泛。操作系统是一台主机的系统软件,处理器核是一台主机的硬件资源,操作系统运行在处理器核上,来执行主机的任务。
3.目前,os在处理器核上运行时可能会出现主机崩溃宕机的问题。当主机崩溃宕机后,主机通过触发快速中断请求(fast interrupt request,fiq)的方式,来采集运行的异常信息。
4.现有技术中,主机可以利用自身硬件资源包括的看门狗电路,来监测是否崩溃宕机。但是,该方案硬件成本较高。或者,主机可以利用与其连接的外部看门狗监测设备,监测主机是否崩溃宕机。但是,该方案流程复杂,会导致监测效率较低。


技术实现要素:

5.本技术提供一种中断处理方法及装置,解决了监测主机是否崩溃宕机时,硬件成本较高、监测效率较低、兼容性较差的问题。
6.为达到上述目的,本技术采用如下技术方案:
7.第一方面,本技术提供一种中断处理方法,该方法应用于主机,主机可以包括:m个处理器核和n个虚拟定时器,m个处理器核对应n个虚拟定时器,m为正整数,n为大于或等于1,且小于或等于m的整数。该方法包括:中断处理装置注册每个处理器核对应的回调函数,并在n个虚拟定时器中存在目标虚拟定时器超时的情况下,生成目标中断请求,且根据目标中断请求对应的中断处理函数和m个处理器核对应的回调函数,获取m个处理器核的运行异常信息。其中,每个回调函数用于被回调后存储对应的处理器核的运行异常信息。
8.这样,通过利用主机中的m个处理器核对应的n个虚拟定时器替代看门狗电路或者外部看门狗监测设备,来监测主机的各个处理器核的运行状态,不仅降低了硬件成本,而且利用虚拟定时器来监测对应的处理器核的运行状态,实现了通过软件控制的方法实现监测功能,提高了监测效率和主机的兼容性。
9.在本技术的一种可能的实现方式中,中断处理方法还可以包括:中断处理装置对n个虚拟定时器中的每个虚拟定时器进行中断配置,配置后的虚拟定时器用于监测对应的处理器核的运行状态。
10.在本技术的一种可能的实现方式中,上述中断处理装置对n个虚拟定时器中的每个虚拟定时器进行中断配置,具体包括:中断处理装置使能每个虚拟定时器,使能每个虚拟定时器中断,注册每个虚拟定时器对应的中断号,建立注册的中断号与中断类型的对应关系,以及注册每个处理器核对应的异常信息地址,异常信息地址用于存储对应的处理器核的运行异常信息。该情况下,上述中断处理装置在n个虚拟定时器中存在目标虚拟定时器超
时的情况下,生成目标中断请求,具体包括:中断处理装置在目标虚拟定时器超时,且目标虚拟定时器使能、目标虚拟定时器中断使能的情况下,生成目标中断请求。
11.在本技术的一种可能的实现方式中,上述中断处理装置注册每个处理器核对应的回调函数,具体包括:中断处理装置调用注册函数,注册每个处理器核对应的回调函数的地址。
12.在本技术的一种可能的实现方式中,上述中断处理装置生成目标中断请求,具体包括:中断处理装置获取目标虚拟定时器对应的目标中断号,并根据预存的中断号与中断类型的对应关系,获取目标中断号对应的目标中断类型,且根据目标中断类型生成目标中断请求。
13.在本技术的一种可能的实现方式中,上述中断处理装置根据目标中断请求对应的中断处理函数和m个处理器核对应的回调函数,获取m个处理器核的运行异常信息,具体包括:中断处理装置获取目标中断请求对应的中断处理函数,并基于中断处理函数,调用触发中断函数,且基于触发中断函数,以及m个处理器核对应的回调函数,获取m个处理器核的运行异常信息。
14.在本技术的一种可能的实现方式中,上述中断处理装置根据目标中断请求对应的中断处理函数和m个处理器核对应的回调函数,获取m个处理器核的运行异常信息,具体包括:中断处理装置根据中断处理函数和m个处理器核中每个处理器核对应的回调函数,获取每个处理器核的运行异常信息。或者,中断处理装置根据中断处理函数,以及目标虚拟定时器对应的处理器核中每个处理器核对应的回调函数,获取目标虚拟定时器对应的处理器核中每个处理器核对应的运行异常信息。
15.在本技术的一种可能的实现方式中,主机还可以包括中断控制器。上述中断处理装置在n个虚拟定时器中存在目标虚拟定时器超时的情况下,生成目标中断请求,具体可以包括:在目标虚拟定时器超时的情况下,目标虚拟定时器对应的目标处理器核生成中断消息,向中断控制器发送中断消息,中断控制器根据中断消息生成目标中断请求,中断消息包括目标虚拟定时器对应的目标中断号。或者,当m大于1,m个处理器核中包括一个主核和至少一个从核时,在目标虚拟定时器超时的情况下,目标虚拟定时器对应的目标处理器核生成中断消息,并向主核发送中断消息,主核接收到所有中断消息后向中断控制器发送中断消息,中断控制器根据所有中断消息生成目标中断请求。
16.第二方面,提供一种中断处理装置,该中断处理装置位于主机,主机可以包括:m个处理器核和n个虚拟定时器,m个处理器核对应n个虚拟定时器,m为正整数,n为大于或等于1,且小于或等于m的整数。中断处理装置可以包括:注册单元,用于注册每个处理器核对应的回调函数,每个回调函数用于被回调后获取对应的处理器核的运行异常信息;生成单元,用于在n个虚拟定时器中存在目标虚拟定时器超时的情况下,生成目标中断请求;获取单元,用于根据生成单元生成的目标中断请求对应的中断处理函数和注册单元注册的m个处理器核对应的回调函数,获取m个处理器核的运行异常信息。
17.在本技术的一种可能的实现方式中,中断处理装置还包括:配置单元。配置单元,用于对n个虚拟定时器中的每个虚拟定时器进行中断配置,配置后的虚拟定时器用于监测对应的处理器核的运行状态。
18.在本技术的一种可能的实现方式中,配置单元,具体用于:使能每个虚拟定时器,
使能每个虚拟定时器中断,注册每个虚拟定时器对应的中断号,建立注册的中断号与中断类型的对应关系,以及注册每个处理器核对应的异常信息地址,异常信息地址用于存储对应的处理器核的运行异常信息。生成单元,具体用于:在目标虚拟定时器超时,且目标虚拟定时器使能、目标虚拟定时器中断使能的情况下,生成目标中断请求。
19.在本技术的一种可能的实现方式中,注册单元,具体用于:调用注册函数,注册每个处理器核对应的回调函数的地址。
20.在本技术的一种可能的实现方式中,生成单元,具体用于:获取目标虚拟定时器对应的目标中断号;根据预存的中断号与中断类型的对应关系,获取目标中断号对应的目标中断类型;根据目标中断类型生成目标中断请求。
21.在本技术的一种可能的实现方式中,获取单元,具体用于:获取目标中断请求对应的中断处理函数;基于中断处理函数,调用触发中断函数;基于触发中断函数,以及m个处理器核对应的回调函数,获取m个处理器核的运行异常信息。
22.在本技术的一种可能的实现方式中,获取单元,具体用于:根据中断处理函数和m个处理器核中每个处理器核对应的回调函数,获取每个处理器核的运行异常信息。或者,根据中断处理函数,以及目标虚拟定时器对应的处理器核中每个处理器核对应的回调函数,获取目标虚拟定时器对应的处理器核中每个处理器核对应的运行异常信息。
23.第三方面,提供一种中断处理装置,该中断处理装置包括存储器和处理器。存储器和处理器耦合。存储器用于存储计算机程序代码,计算机程序代码包括计算机指令。当处理器执行计算机指令时,中断处理装置执行如第一方面及其任一种可能的实现方式的中断处理方法。
24.第四方面,提供一种芯片系统,该芯片系统应用于中断处理装置。芯片系统包括一个或多个接口电路,以及一个或多个处理器。接口电路和处理器通过线路互联;接口电路用于从中断处理装置的存储器接收信号,并向处理器发送信号,信号包括存储器中存储的计算机指令。当处理器执行计算机指令时,中断处理装置执行如第一方面及其任一种可能的实现方式的中断处理方法。
25.第五方面,提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令,当计算机指令在中断处理装置上运行时,使得中断处理装置执行如第一方面及其任一种可能的实现方式的中断处理方法。
26.第六方面,本技术提供一种计算机程序产品,该计算机程序产品包括计算机指令,当计算机指令在中断处理装置上运行时,使得中断处理装置执行如第一方面及其任一种可能的实现方式的中断处理方法。
27.本技术中第二方面到第六方面及其各种实现方式的具体描述,可以参考第一方面及其各种实现方式中的详细描述;并且,第二方面到第六方面及其各种实现方式的有益效果,可以参考第一方面及其各种实现方式中的有益效果分析,此处不再赘述。
28.本技术的这些方面或其他方面在以下的描述中会更加简明易懂。
附图说明
29.图1为本技术实施例提供的中断处理装置的一种结构示意图;
30.图2为本技术实施例提供的虚拟定时器控制寄存器的结构示意图;
31.图3为本技术实施例提供的主机的软件架构示意图;
32.图4为本技术实施例提供的中断处理方法的一种流程示意图;
33.图5a为本技术实施例提供的中断处理方法的场景示意图之一;
34.图5b为本技术实施例提供的中断处理方法的场景示意图之二;
35.图6为本技术实施例提供的中断处理装置的结构示意图之一;
36.图7为本技术实施例提供的中断处理装置的结构示意图之二。
具体实施方式
37.在本技术中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本技术实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。在本技术实施例的描述中,除非另有说明,“至少一个”是指一个或多个,“多个”的含义是两个或两个以上。
38.定时器中断指的是由定时器溢出而触发的中断。所谓中断就是程序正常执行的时候,出现了突发事件,主机的处理器停止当前的程序的执行,转去处理突发事件,处理完毕后又返回原程序被中断的位置继续执行。
39.相关技术中,当主机崩溃宕机后,主机可以通过触发fiq的方式采集异常信息。具体的,主机可以采用以下两种方案采集异常信息。
40.第一种方案中,当主机正常运行时,主机中的处理器核定时向主机中的看门狗电路发送喂狗信号。看门狗电路定时接收到喂狗信号后,将看门狗电路中的定时器清零。当主机崩溃宕机时,处理器核无法向看门狗电路发送喂狗信号,导致看门狗电路中的定时器溢出,看门狗电路向处理器核发送复位信号。处理器核接收到复位信号后,生成fiq,并执行fiq对应的中断处理,例如采集主机中的处理器核的运行异常信息。第一种方案中,主机通过看门狗电路来监测主机的运行状态,即检测主机是运行正常还是否崩溃宕机。
41.但是,上述第一种方案中,主机检测是否崩溃宕机需要依赖于看门狗电路,硬件成本较高,且主机的兼容性较差。
42.第二种方案中,若主机中未包括看门狗电路,则主机可以连接一外部看门狗监测设备,利用该外部看看门狗监测设备实现看门狗电路的功能,从而实现主机是否崩溃宕机的监测。
43.上述第二种方案与第一种方案相比,虽然提高了主机的兼容性。但是,第二种方案的流程复杂,会消耗大量的人力资源,导致监测效率较低。
44.综上所述,相关技术中存在监测主机是否崩溃宕机时,硬件成本较高、监测效率较低、兼容性较差的问题。
45.为了解决上述技术问题,本技术实施例提供一种中断处理方法及装置,通过利用主机中的m个处理器核对应的n个虚拟定时器替代看门狗电路或者外部看门狗监测设备,来监测主机的各个处理器核的运行状态,不仅降低了硬件成本,而且利用虚拟定时器来监测对应的处理器核的运行状态,实现了通过软件控制的方法实现监测功能,提高了监测效率和主机的兼容性。
46.本技术实施例提供的中断处理方法的执行主体是中断处理装置。该中断处理装置
可以是主机,也可以是主机中的芯片。
47.在一些实施例中,主机可以为终端设备、服务器、云计算平台等包括有中断处理装置的设备。其中,终端设备可以是手机(mobile phone)、平板电脑、笔记本电脑、掌上电脑、计算机等。
48.主机可以包括图1所示中断处理装置所包括的元件。下面以图1所示的中断处理装置为例,介绍主机的硬件结构。
49.如图1所示,中断处理装置可以包括处理器11,存储器12、通信接口13、总线14、中断控制器(generic interrupt controller,gic)15。处理器11,存储器12,以及通信接口13之间可以通过总线14连接,处理器11与中断控制器15之间可以通过总线14连接。
50.处理器11是中断处理装置的控制中心,可以是一个通用处理器(central processing units,cpu),微处理器,特定应用集成电路(application-specific integrated circuit,asic),或,一个或多个用于控制本技术方案程序执行的集成电路。
51.作为一种实施例,处理器11的类型多种多样,可以通过处理器11的cpu架构来区别处理器11的类型,一种类型的处理器11对应一种cpu架构。处理器11的cpu架构不同,处理器11支持的指令集也不同。cpu架构可以包括:x86架构、精简指令集计算机(reduced instruction set computer,risc)处理器(advanced risc machines,arm)架构等,本技术实施例在此不做特殊限定。其中,cpu架构为x86架构时,处理器11支持x86指令集,cpu架构为arm架构时,处理器11支持arm指令集。当处理器11支持x86指令集时,该中断处理装置可以安装windows系统。当处理器11支持arm指令集时,该中断处理装置可以安装linux、windows等系统。
52.作为一种实施例,处理器11可以是一个单核处理器(single-cpu),也可以是一个多核处理器(multi-cpu)。这里的处理器11可以指一个或多个设备、电路、和/或用于处理数据(例如计算机指令)的处理核。当处理器11为单核处理器时,处理器11包括一个处理器核。当处理器11为多核处理器时,处理器11包括多个处理器核,多个处理器核中可以包括一个主核,其余为从核。每个处理器核包括一个处理单元(processing element,pe),以及一组定时器。其中,处理单元是处理器11的处理中心。该组定时器中可以包括物理定时器(physical timer)、虚拟定时器(virtual timer)等。利用处理器核中的虚拟定时器能够监测对应的处理器核的运行状态。图1中以处理器11包括一个处理器核为例示出。
53.示例性的,假设中断处理装置可以包括m个处理器核,m为正整数,每个处理器核中可以包括一个虚拟定时器,可以利用m个虚拟定时器中的n个定时器来监测m个处理器核的运行状态,即m个处理器核对应n个虚拟定时器,n为大于或等于1,且小于或等于m的整数。当n等于m时,是利用每个处理器核中的虚拟定时器来监测该处理器核的运行状态。当n为1时,是利用m个虚拟定时器中的任一个虚拟定时器来统一监测m个处理器核的运行状态。当n大于1且小于m时,是利用n个虚拟定时器中的每个虚拟定时器来监测两个或两个以上的处理器核的运行状态。
54.作为一种实施例,处理器核中还可以包括虚拟定时器的相关寄存器。例如,处理器核中可以包括:虚拟定时器值寄存器(virtual timer value register)、虚拟定时器控制寄存器(virtual timer control register)。如表1所示,为虚拟定时器的相关寄存器的信息。
55.表1
56.名称宽度类型描述cntv_tval_el032比特rw虚拟定时器值寄存器cntv_ctl_el032比特rw虚拟定时器控制寄存器
57.虚拟定时器值寄存器用于保存虚拟定时器的定时器值,是一个32比特的寄存器。且该虚拟定时器值寄存器是一个带符号的向下计数器,或者,该虚拟定时器值寄存器也可以是一个向上计数器。当虚拟定时器值寄存器为向下计数器时,虚拟定时器值寄存器中的定时器值会随着相应计数器的每次递增而递减,当该定时器值小于零时,可以触发该虚拟定时器中断。当虚拟定时器值寄存器为向上计数器时,虚拟定时器值寄存器中的定时器值会随着相应计数器的每次递增而递增,当该定时器值大于预设值时,可以触发虚拟定时器中断。
58.值得注意的是,在本技术实施例中,虚拟定时器值寄存器中的所有值都是有符号的,以标准二进制补码的形式存储。虚拟定时器触发之后,虚拟定时器值寄存器中的定时值会继续向下递减或递增,此时可以通过读取定时值来获取虚拟定时器触发后的时长。
59.虚拟定时器控制寄存器用于控制虚拟定时器,是一个32比特的寄存器,包括第0比特到第31比特。图2为虚拟定时器控制寄存器的结构示意图。
60.如图2所示,虚拟定时器控制寄存器中的第0比特为enable,是虚拟定时器使能位,第0比特为0时,指示禁用该虚拟定时器,第0比特为1时,指示该虚拟定时器使能。
61.虚拟定时器控制寄存器中的第1比特为imask,是虚拟定时器中断屏蔽位,第1比特为0时,指示虚拟定时器中断未被屏蔽,第1比特为1时,指示虚拟定时器中断被屏蔽。
62.虚拟定时器控制寄存器中的第2比特为istatus,是虚拟定时器中断使能位,第2比特为0时,指示禁用虚拟定时器中断,第2比特为1时,指示该虚拟定时器中断使能。
63.存储器12可以是只读存储器(read-only memory,rom)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,ram)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
64.一种可能的实现方式中,存储器12可以独立于处理器11存在,存储器12可以通过总线14与处理器11相连接,用于存储指令或者程序代码。处理器11调用并执行存储器12中存储的指令或程序代码时,能够实现本技术下述实施例提供的中断处理方法。
65.另一种可能的实现方式中,存储器12也可以和处理器11集成在一起。
66.通信接口13,用于中断处理装置与其他设备通过通信网络连接,通信网络可以是以太网,无线接入网(radio access network,ran),无线局域网(wireless local area networks,wlan)等。通信接口13可以包括用于接收数据的接收单元,以及用于发送数据的发送单元。
67.总线14,可以是工业标准体系结构(industry standard architecture,isa)总线、外部设备互连(peripheral component interconnect,pci)总线或扩展工业标准体系结构(extended industry standard architecture,eisa)总线等。该总线可以分为地址总
线、数据总线、控制总线等。
68.中断控制器15,主要用于生成中断请求,并根据该中断请求执行对应的中断处理操作。中断请求可以是fiq。
69.需要指出的是,图1中示出的结构并不构成对该中断处理装置的限定,除图1所示部件之外,该中断处理装置可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
70.上述主机安装的软件系统可以采用x86架构、arm架构等。本技术实施例以arm架构的linux系统为例,示例性说明主机的软件结构。
71.在一些实施例中,如图3所示,可以将linux系统分为四层,从上至下分别为应用程序层,操作系统层,虚拟机层(hyp),以及安全监控层。
72.应用程序层,又称用户层,可以包括一系列应用程序包,以及可靠性服务(trusted services)。
73.如图3所示,应用程序包可以包括相机,图库,日历,通话,地图,音乐,短信息等应用程序。
74.操作系统层,可以包括多个通用操作系统(rich os),以及可靠性操作系统。其中,通用操作系统中可以包含linux操作系统,该通用操作系统用于向上层应用提供主机的所有功能。
75.虚拟机层可以包括虚拟机监视器(hypervisor)。虚拟机监视器用于建立执行虚拟机所需要的软件、固件、硬件等。
76.安全监控层可以包括安全管理器(secure monitor)。
77.需要说明的是,在本技术实施例中,arm架构可以包括四种特权模式,四种特权模式分别用el0,el1,el2,el3来指示。el3模式的运行权限最高,el0模型的运行权限最低,运行权限的高低,会影响资源的访问。
78.其中,el0模式可以运行应用程序,el1模式可以运行操作系统,el2模式运行虚拟机,el3模式运行安全管理。也就是说,el0模式对应应用程序层,el1模式对应操作系统层,el2模式对应虚拟机层,el3模式对应安全监控层。
79.上述图1中涉及的虚拟定时器值寄存器、虚拟定时器控制寄存器可以从el0模式访问,也可以不从el0模式访问。由cntkctl_el1寄存器的el0vten位决定是否可以从el0模式访问。当cntkctl_el1寄存器的el0vten位设置为1时,可以从el0模式访问虚拟定时器值寄存器、虚拟定时器控制寄存器。
80.基于上述主机的硬件架构和软件架构的介绍,本技术实施例提供一种中断处理方法,下面结合附图对本技术实施例提供的中断处理方法进行描述。
81.如图4所示,中断处理方法可以包括以下步骤401-步骤403。
82.401、主机注册每个处理器核对应的回调函数。
83.主机启动后,可以注册该主机中包括的m个处理器核中每个处理器核对应的回调函数,该回调函数用于被回调后获取对应的处理器核的运行异常信息,即用于被回调后获取处理器核的临终遗言,也就是说,运行异常信息指的是处理器核运行出现异常时的信息。
84.在一些实施例中,主机可以调用注册函数,注册每个处理器核对应的回调函数的地址。其中,该注册函数可以是安全管理调用(security monitor call,smc)函数。
85.可选的,在本技术实施例中,为了能够利用虚拟定时器来监测处理器核的运行状态,从而及时获知处理器核是否崩溃宕机,可以预先对主机中的n个虚拟定时器中的每个虚拟定时器进行中断配置,使得配置后的虚拟定时器用于监测对应的处理器核的运行状态。
86.在具体的实现中,对n个虚拟定时器中的每个虚拟定时器进行中断配置,具体可以包括:使能每个虚拟定时器,使能每个虚拟定时器中断,注册每个虚拟定时器对应的中断号,建立注册的中断号与中断类型的对应关系,以及注册每个处理器核对应的异常信息地址。其中,异常信息地址用于存储对应的处理器核的运行异常信息。
87.使能每个虚拟定时器指的是将每个虚拟定时器对应的虚拟定时器控制寄存器中的第0比特位设置为1。
88.使能每个虚拟定时器中断指的是将每个虚拟定时器对应的虚拟定时器控制寄存器中的第2比特位设置为1。
89.通常使用不同的中断号区分不同类型的定时器,n个虚拟定时器的中断号均相同。例如,n个虚拟定时器对应的中断号可以均为27。
90.建立注册的中断号与中断类型的对应关系指的是预先将主机中的m个处理器核对应的n个虚拟定时器中的每个虚拟定时器与目标中断类型进行绑定。由于处理器核崩溃宕机的事件紧急程度较高,因此目标中断类型可以是优先级高的fiq的中断类型。
91.402、主机在n个虚拟定时器中存在目标虚拟定时器超时的情况下,生成目标中断请求。
92.可选的,在本技术实施例中,主机可以在目标虚拟定时器超时,且该目标虚拟定时器使能、目标虚拟定时器中断使能的情况下,生成目标中断请求。
93.可选的,在本技术实施例中,主机生成目标中断请求时,可以先获取目标虚拟定时器对应的目标中断号,然后根据预存的中断号与中断类型的对应关系,获取目标中断号对应的目标中断类型。之后,主机可以根据目标中断类型生成目标中断请求。
94.可选的,在本技术实施例中,主机可以采用多种方式生成目标中断请求,本技术实施例在此不做限制。作为一种可能的实现方式,在目标虚拟定时器超时的情况下,目标虚拟定时器对应的目标处理器核可以生成中断消息,并向中断控制器发送中断消息。中断控制器根据接收到的中断消息生成目标中断请求。其中,中断消息包括目标虚拟定时器对应的目标中断号。作为另一种可能的实现方式,当m大于1,m个处理器核中包括一个主核和至少一个从核时,在目标虚拟定时器超时的情况下,目标虚拟定时器对应的目标处理器核可以生成中断消息,并向主核发送中断消息。主核接收到所有中断消息后可以向中断控制器发送所有中断消息,中断控制器根据所有中断消息生成目标中断请求。
95.可以理解的是,在本技术实施例中,上述目标中断类型可以为fiq的类型,目标中断请求可以为fiq。
96.此外,上述目标虚拟定时器超时可以是目标虚拟定时器的定时值小于零,还可以是目标虚拟定时器的定时值大于预设值,本技术实施例在此不做限定。
97.示例性的,主机启动后,n个虚拟定时器中的每个虚拟定时器可以随着系统计数器计时,并为虚拟定时器值寄存器赋值,即将定时值存储在虚拟定时器值寄存器中。针对每个处理器核来说,在运行过程中如果处理器核运行正常,则处理器核中的处理单元可以定时向该处理器核对应的虚拟定时器发送喂狗信号。处理器核对应的虚拟定时器在接收到处理
单元的喂狗信号后,可以将虚拟定时器进行恢复,即将虚拟定时器值寄存器的定时值恢复至初始值,并重新开始随着系统计数器计时。如果处理器核运行异常,则处理器核的处理单元无法定时向该处理器核对应的虚拟定时器发送喂狗信号,则会使得该处理器核对应的虚拟定时器超时。
98.当主机中的m个处理器核中存在目标处理器核,目标处理器核对应的目标虚拟定时器超时的时候,每个目标处理器核对应的目标虚拟定时器可以向该目标处理器核的处理单元发送超时信息。
99.目标处理器核的处理单元在接收到超时信息之后,可以在确定目标虚拟定时器使能、目标虚拟定时器中断使能的情况下,生成中断消息,该中断消息中包括目标虚拟定时器对应的目标中断号。之后,目标处理器核的处理单元可以向中断控制器发送中断消息。
100.在一种可能的实现方式中,目标处理器核的处理单元可以直接向中断控制器发送中断消息。
101.在另一种可能的实现方式中,目标处理器核的处理单元可以向m个处理器核中的主核发送中断消息(如果目标处理器核为主核则无需发送)。然后主核在接收到所有目标处理器核的中断消息后,可以统一向中断控制器发送所有中断消息。该方式与上述方式相比,仅由主核与中断控制器通信,能够减少消息交互,实现中断消息的统一管理。
102.中断控制器在接收到目标处理器核中的处理单元发送的中断消息之后,可以获取中断消息中包括的目标中断号,并根据预存的中断号与中断类型的对应关系,获取目标中断号对应的目标中断类型。之后,中断控制器可以根据该目标中断类型生成目标中断请求。
103.需要说明的是,在本技术实施例中,步骤401与步骤402的执行没有先后关系。可以先执行步骤401,然后执行步骤402,也可以先执行步骤402,然后执行步骤401,还可以同时执行步骤401和步骤402,本技术实施例在此不做特殊限定。
104.403、主机根据目标中断请求对应的中断处理函数和m个处理器核对应的回调函数,获取m个处理器核的运行异常信息。
105.主机在注册好每个处理器核对应的回调函数,且中断控制器生成目标中断请求之后,中断控制器可以执行该目标中断请求对应的中断处理操作。
106.作为一种可能的实现,中断控制器可以获取目标中断请求对应的中断处理函数,并基于该中断处理函数,调用触发中断函数。之后,中断控制器可以基于该触发中断函数,以及m个处理器核对应的回调函数,获取并存储m个处理器核的运行异常信息。当然,中断控制器还可以执行其他的中断处理操作,例如,调用自刷新等。其中,中断处理函数用于执行目标中断请求对应的中断处理。
107.可以理解的是,上述触发中断函数可以是软件触发中断函数。上述目标中断请求为fiq时,中断处理函数可以为fiq处理函数。在该情况下,中断控制器可以先调用fiq处理函数来处理fiq,在处理过程中可以调用软件触发中断函数生成m个处理器核对应的通知消息,该通知消息用于通知各个处理器核执行中断处理,该通知消息中包括处理器核对应的回调函数的地址。各个处理器核在接收到中断控制器发送的通知消息后,可以停止运行,并根据回调函数的地址,记录该处理器核的运行异常信息,即记录处理器核运行异常时的上下文。
108.可选的,在本技术实施例中,上述根据目标中断请求对应的中断处理函数和m个处
理器核对应的回调函数,获取m个处理器核的运行异常信息的过程可以为:中断控制器根据中断处理函数和m个处理器核中每个处理器核对应的回调函数,获取每个处理器核的运行异常信息。或者,中断控制器可以根据中断处理函数,以及目标虚拟定时器对应的处理器核中每个处理器核对应的回调函数,获取目标虚拟定时器对应的处理器核中每个处理器核对应的运行异常信息。也就是说,在目标虚拟定时器超时的情况下,中断控制器可以获取m个处理器核中每个处理器核的运行异常信息,也可以获取每个目标处理器核的运行异常信息。这两种方式相比,第一种方式获取的信息更加全面,但是设备的数据处理压力较大。第二种方式获取的信息较少,但是设备的数据处理压力较小。实际应用中,可以依据实际场景来决定采用哪种方式来获取运行异常信息。
109.本技术实施例提供的中断处理方法,主机注册每个处理器核对应的回调函数,在n个虚拟定时器中存在目标虚拟定时器超时的情况下,生成目标中断请求,并根据目标中断请求对应的中断处理函数和m个处理器核对应的回调函数,存储m个处理器核的运行异常信息。这样,通过利用主机中的m个处理器核对应的n个虚拟定时器替代看门狗电路或者外部看门狗监测设备,来监测主机的各个处理器核的运行状态,不仅降低了硬件成本,而且利用虚拟定时器来监测对应的处理器核的运行状态,实现了通过软件控制的方法实现监测功能,提高了监测效率和主机的兼容性。
110.示例性的,在本技术实施例中,中断处理装置可以包括m个处理器核。当中断处理装置包括一个处理器核时,中断处理装置中的处理器是单核处理器。当中断处理装置包括两个或者两个以上处理器核时,中断处理装置中的处理器是多核处理器。中断处理装置中的每个处理器核包括一个虚拟定时器。n等于m,每个虚拟定时器用于监测该虚拟定时器对应的处理器核的运行状态。
111.如图5a所示,假设中断处理装置包括多个处理器核,那么中断处理装置中的多个虚拟定时器随着系统计数器计时,并将记录的定时值存储在虚拟定时器值寄存器中。如果目标虚拟定时器对应的定时值小于零,则目标虚拟定时器可以向目标处理器核的处理单元发送超时信息。
112.目标处理器核的处理单元在接收到超时信息,且确定目标虚拟定时器使能、目标虚拟定时器中断使能的情况下,向中断控制器发送中断消息,该中断消息中包括目标处理器核中的虚拟定时器的目标中断号。
113.中断控制器在接收到中断消息后,可以基于该中断消息中包括的目标中断号,以及预存的中断号与中断类型的对应关系,获取目标中断号对应的目标中断类型,并基于该目标中断类型生成目标中断请求。图5a中假设目标中断请求为fiq。之后,中断控制器可以调用fiq处理函数处理fiq,在处理过程中可以调用软件触发中断函数生成每个处理器核对应的通知消息,该通知消息用于通知各个处理器核执行中断处理,该通知消息中包括处理器核对应的回调函数的地址。各个处理器核在接收到中断控制器发送的通知消息后,可以停止运行,并根据回调函数的地址,记录该处理器核的运行异常信息,即记录处理器核运行异常时的上下文。
114.如图5b所示,结合图5a中的例子,假设目标处理器核为从核。那么,目标处理器核的处理单元在接收到超时信息,且确定目标虚拟定时器使能、目标虚拟定时器中断使能的情况下,向主核发送中断消息。
115.主核向中断控制器发送中断消息,中断控制器接收到主核发送的中断消息之后,生成fiq。之后,中断控制器可以调用fiq处理函数处理fiq,在处理过程中可以调用软件触发中断函数生成目标处理器核对应的通知消息,该通知消息用于通知目标处理器核执行中断处理,该通知消息中包括处理器核对应的回调函数的地址。目标处理器核在接收到中断控制器发送的通知消息后,可以停止运行,并根据回调函数的地址,记录该处理器核的运行异常信息,即记录处理器核运行异常时的上下文。
116.上述主要从方法的角度对本技术实施例提供的方案进行了介绍。为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本技术能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
117.如图6所示,为本技术实施例提供的一种中断处理装置60的结构示意图,该中断处理装置60用于执行图4或图5所示的中断处理方法。中断处理装置60可以包括注册单元61、生成单元62和获取单元63。
118.注册单元61,用于注册每个处理器核对应的回调函数,每个回调函数用于被回调后获取对应的处理器核的运行异常信息。
119.生成单元62,用于在n个虚拟定时器中存在目标虚拟定时器超时的情况下,生成目标中断请求。
120.获取单元63,用于根据生成单元62生成的目标中断请求对应的中断处理函数和注册单元61注册的m个处理器核对应的回调函数,获取m个处理器核的运行异常信息。
121.可选的,如图7所示,中断处理装置还包括:配置单元64。
122.配置单元64,用于对n个虚拟定时器中的每个虚拟定时器进行中断配置,配置后的虚拟定时器用于监测对应的处理器核的运行状态。
123.可选的,配置单元64,具体用于:使能每个虚拟定时器,使能每个虚拟定时器中断,注册每个虚拟定时器对应的中断号,建立注册的中断号与中断类型的对应关系,以及注册每个处理器核对应的异常信息地址,异常信息地址用于存储对应的处理器核的运行异常信息。生成单元62,具体用于:在目标虚拟定时器超时,且目标虚拟定时器使能、目标虚拟定时器中断使能的情况下,生成目标中断请求。
124.可选的,注册单元61,具体用于:调用注册函数,注册每个处理器核对应的回调函数的地址。
125.可选的,生成单元62,具体用于:获取目标虚拟定时器对应的目标中断号;根据预存的中断号与中断类型的对应关系,获取目标中断号对应的目标中断类型;根据目标中断类型生成目标中断请求。
126.可选的,获取单元63,具体用于:获取目标中断请求对应的中断处理函数;基于中断处理函数,调用触发中断函数;基于触发中断函数,以及每个处理器核对应的回调函数,获取每个处理器核的运行异常信息。
127.可选的,获取单元63,具体用于:根据中断处理函数和m个处理器核中每个处理器核对应的回调函数,获取每个处理器核的运行异常信息。或者,根据中断处理函数,以及目
标虚拟定时器对应的处理器核中每个处理器核对应的回调函数,获取目标虚拟定时器对应的处理器核中每个处理器核对应的运行异常信息。
128.当然,本技术实施例提供的中断处理装置60包括但不限于上述单元。
129.本技术另一实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,当计算机指令在中断处理装置上运行时,使得中断处理装置执行上述方法实施例所示的方法流程中中断处理装置执行的各个步骤。
130.本技术另一实施例还提供一种芯片系统,该芯片系统应用于中断处理装置。芯片系统包括一个或多个接口电路,以及一个或多个处理器。接口电路和处理器通过线路互联。接口电路用于从中断处理装置的存储器接收信号,并向处理器发送信号,信号包括存储器中存储的计算机指令。当处理器执行计算机指令时,中断处理装置执行上述方法实施例所示的方法流程中中断处理装置执行的各个步骤。
131.在本技术另一实施例中,还提供一种计算机程序产品,该计算机程序产品包括计算机指令,当计算机指令在中断处理装置上运行时,使得中断处理装置执行上述方法实施例所示的方法流程中中断处理装置执行的各个步骤。
132.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机执行指令时,全部或部分地产生按照本技术实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,dvd)、或者半导体介质(例如固态硬盘(solid state disk,ssd))等。
133.以上所述,仅为本技术的具体实施方式。熟悉本技术领域的技术人员根据本技术提供的具体实施方式,可想到变化或替换,都应涵盖在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1