一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

中断事件处理方法、装置、计算机设备和存储介质与流程

2022-03-31 10:24:58 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,尤其涉及一种中断事件处理方法、装置、计算机设备和存储介质。


背景技术:

2.dsp多核处理器芯片中的大部分中断事件的中断机制是采用片上中断控制器(cic),即一个中断每个核都响应。若每个核处理中断的时间点不一样,如,一个中断过来后,多个核都去处理中断,但有可能存在每个核时间上存在差异,当第一个核响应完了,且完成清中断操作了,最后一个核最慢的,中断来了之后,就发现中断已经没有了。最后一个核知道有中断,但是跳过去准备处理中断的时候,发现中断已经消失了,导致中断会存在丢失的情况。由于每个中断服务函数中对中断寄存器的清中断操作一样,部分核就会出现丢中断现象。


技术实现要素:

3.为了解决上述技术问题,本技术提供了一种中断事件处理方法、装置、计算机设备和存储介质。
4.本技术提供了一种中断事件处理方法,应用于多核处理器,包括:
5.响应中断事件,使所述多核处理器的每个核分别从中断寄存器读取所述中断事件的信息,并根据所述中断事件的信息确定中断类型;
6.根据所述中断类型,在所述多核处理器中确定出目标核,其中每个所述中断类型对应一个所述目标核;
7.令所述目标核通过中断服务函数处理所述中断事件,并在处理完所述中断事件后清除该中断。
8.本技术提供了一种中断事件处理装置,包括:
9.中断信息获取模块,用于响应中断事件,使多核处理器的每个核分别从中断寄存器读取所述中断事件的信息,并根据所述中断事件的信息确定中断类型;
10.目标核确定模块,用于根据所述中断类型,在所述多核处理器中确定出目标核,其中每个所述中断类型对应一个所述目标核;
11.中断处理模块,用于令所述目标核通过中断服务函数处理所述中断事件,并在处理完所述中断事件后清除该中断。
12.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
13.响应中断事件,使所述多核处理器的每个核分别从中断寄存器读取所述中断事件的信息,并根据所述中断事件的信息确定中断类型;
14.根据所述中断类型,在所述多核处理器中确定出目标核,其中每个所述中断类型对应一个所述目标核;
15.令所述目标核通过中断服务函数处理所述中断事件,并在处理完所述中断事件后清除该中断。
16.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
17.响应中断事件,使所述多核处理器的每个核分别从中断寄存器读取所述中断事件的信息,并根据所述中断事件的信息确定中断类型;
18.根据所述中断类型,在所述多核处理器中确定出目标核,其中每个所述中断类型对应一个所述目标核;
19.令所述目标核通过中断服务函数处理所述中断事件,并在处理完所述中断事件后清除该中断。
20.上述中断事件处理方法、装置、计算机设备和存储介质,所述方法包括:响应中断事件,使多核处理器的每个核分别从中断寄存器读取中断事件的信息,并根据中断事件的信息确定中断类型;根据中断类型,在多核处理器中确定出目标核,其中每个中断类型对应一个目标核;令目标核通过中断服务函数处理中断事件,并在处理完中断事件后清除该中断。通过每个中断事件由专门的核进行处理的方式,可以避免多核处理器清中断由于系统调度时间不一致导中断丢失的问题。
附图说明
21.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
22.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
23.图1为一个实施例中中断事件处理方法的流程示意图;
24.图2为一个实施例中中断事件处理装置的结构框图;
25.图3为一个实施例中计算机设备的内部结构图。
具体实施方式
26.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术的一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。
27.如图1所示,在一个实施例中,提供了一种中断事件处理方法。本实施例主要以该方法应用于上述多核处理器。参照图1,该中断事件处理方法具体包括如下步骤:
28.步骤s201,响应中断事件,使多核处理器的每个核分别从中断寄存器读取中断事件的信息,并根据中断事件的信息确定中断类型。
29.具体地,中断事件是指处理器在执行一个程序时,对系统发生的某个事件(程序自身或外界的原因)做出的一种反应,处理器暂停正在执行的任务,保留现场后自动转去处理相应的事件,处理完该事件后,到适当的时候返回断点,继续完成被打断的任务。在本实施
例中,中断事件是指多核处理器接收到的中断事件,其中,多核处理器是指在一枚处理器中集成两个或两个以上完整的计算引擎(内核)。常见的多核处理器包括2核、4核、6核和8核等。中断寄存器是用于存储中断事件信息的寄存器,中断寄存器包括中断状态寄存器和中断清除寄存器等。其中,中断状态寄存器用于存储中断类型和多核处理器的中断事件信息等,中断事件信息包括中断事件标识和中断事件对应的业务等。中断清除寄存器是用于清除中断事件的寄存器,当中断执行完毕之后,写入中断执行完成的信息,通过该信息通知中断清除寄存器执行清中断操作。中断寄存器存储中断事件的信息,中断事件的信息包括多核处理器的中断事件信息和中断类型等。多核处理器的各个核向中断状态寄存器读取中断事件的信息,并根据中断事件的信息确定出中断类型。
30.步骤s202,根据中断类型,在多核处理器中确定出目标核,其中每个中断类型对应一个目标核。
31.具体地,多核处理器中预先存储有该多核处理器的各个核与中断类型之间的对应关系。其中一个核可以对应多个中断类型,每个中断类型只能对应一个核。通过中断事件的中断类型可以唯一确定处理该中断事件的目标核。其中,每个中断类型对应的目标核的确定可以根据业务需求自定义设置。
32.在一个实施例中,步s202之前,还包括:根据中断类型对应的业务数据、发生频率中的至少一个确定出该中断类型对应的目标核。其中业务数据是指该中断类型对应的业务的业务数据,其中业务数据包含业务标识、业务复杂度和业务运算复杂度等等。中断类型的发生频率可以根据历史时间内真实发生的数据进行统计,也可以是预测得到。根据不同的维度确定的目标核可以适应不同的业务需求。
33.在一个实施例中,获取各个中断类型对应的业务数据,业务数据包括业务复杂度和运算复杂度中的至少一个。
34.具体地,业务复杂度根据业务占用的内存大小确定,运算复杂度是根据业务的运算次数确定。根据同一个中断类型的业务复杂度或运算复杂度中的任意一个复杂度确定出该中断类型对应的目标核,也可以是根据两个复杂度一起确定出目标核。单独根据业务复杂度或运算复杂度确定出的目标核,可以适应业务复杂度或运算复杂度的单一需求的业务。根据两者同时确定出的目标核可以更好的处理符合两个维度的业务需求。
35.在一个实施例中,获取各个中断类型的发生频率;根据每个中断类型的发生频率,为每个中断类型分配对应的目标核。根据发生频率分配对应的目标核时,可以将发生频率高的中断类型可以均分至各个核中,或将发送频率高的中断类型集中在部分核中处理。采用平均分配原则可以避免同一个核频繁处理中断事件,采用集中处理的方式,可以避免其他的核被中断事件干扰。
36.在一个实施例中,根据每个中断类型的发生频率和对应的业务数据,为每个中断类型分配对应的目标核。
37.具体地,分配目标核时,同事参考中断类型的发生频率和业务数据。业务数据的业务复杂度和运算复杂度能够预测中断事件的处理事件,发生频率可以预测中断事件的发生概率,根据事件的出现的可能性和处理速度分配目标核。如为了平衡中断事件的处理时间和处理概率,可以分别对计算处理时间和发生频率进行加权,得到对应的加权值,根据每个中断事件的加权值分配目标核,按照平均分配原则进行分配,以使得每个核处理的中断事
件的加权值相近。
38.步骤s203,目标核通过中断服务函数执行中断事件,并在执行完中断事件后清中断。
39.具体地,中断服务函数是用于处理中断事件的函数。中断服务函数一般包含要求满足以下几个条件:不能返回值;不能向isr(interrupt service routines,中断服务程序)传递参数;isr应该尽可能的短小精悍;printf函数会带来重入和性能问题,不能在isr中采用。在确定出中断事件的目标核之后,该目标核调用中断服务函数处理中断事件。
40.上述中断事件处理方法,包括:在接收到中断事件时,多核处理器的各个核向中断寄存器读取中断事件的信息,并根据中断事件的信息确定出中断类型;根据中断类型,从多核处理器中确定出目标核,每个中断类型对应一个目标核;目标核通过中断服务函数执行中断事件,并在执行完中断事件后清中断。通过每个中断事件由专门的核进行处理的方式,可以避免多核处理器清中断由于系统调度时间不一致导中断丢失的问题。
41.在一个实施例中,多核处理器接收到任一中断事件触发的通用型之输入输出中断后,触发cpu中断,并调用中断函数,中断函数用于指示多核处理器的各个核向中断寄存器读取中断事件的信息。
42.具体地,通用型之输入输出(general-purpose input/output,gpio)中断是指外部中断。多核处理器所在的芯片的不同管脚上报的中断对应不同的业务,不同的业务的中断交给不同的核进行处理。当多核处理器的任意一个管脚边沿触发(上升沿或下降沿)中断事件(gpio中断)时,将该中断映射为cpu中断,其中,一个cpu中断可以被多个gpio中断事件映射。cpu中断为可屏蔽中断,通过将gpio中断映射为cpu中断,从而实现单核处理中断事件。触发cpu中断后,即条用中断函数,通过中断函数向中断寄存器读取中断事件的信息。其中,中断函数为处理中断事件的函数。
43.在一个实施例中,上述中断事件处理方法,还包括:各个核执行对应的当前任务;在接收到中断事件时,各个核暂停正在执行的当前任务,并进入从中断寄存器读取中断事件的信息的步骤。
44.具体地,当前任务是指每个核正在执行的任务。产生中断事件后,多核处理器中的每个核都响应中断事件,由于中断事件为可屏蔽事件,每个核在响应中断事件后,暂停正在执行的任务,处理中断事件,即执行向中断寄存器读取中断事件的信息。在读取到中断事件的信息后,各个核根据中断事件的信息中的中断类型,判断该中断事件是否为自己该处理的中断事件,若是,则该核为目标核,目标核则调用中断服务函数执行中断事件,反之,若不是,则该核为非目标核,屏蔽该中断事件,并恢复执行该核对应的任务。而目标核在执行完中断事件后,并清中断之后,才恢复执行对应的任务。只有目标核才处理中断事件,其他核则在响应中断事件之后,屏蔽中断事件,避免了多个核因为处理中断事件的时间不同而引起的中断丢失问题。
45.在一个实施例中,在执行完中断事件后清该中断之后,还包括:恢复执行目标核的当前任务。
46.在一个实施例中,若核不是中断类型的目标核,在从中断寄存器读取中断事件的信息之后,还包括:恢复执行核的当前任务。
47.在一个实施例中,中断事件的信息中包括中断事件标识,上述中断事件处理方法,
还包括:接收并存储中断类型与中断事件标识之间的对应关系;接收并存储中断事件标识和核的对应关系。
48.在本实施例中,步骤s202,包括:根据中断类型与中断事件标识之间的对应关系,确定出中断事件的中断类型对应的目标中断事件标识,根据中断事件标识和核的对应关系,确定出目标中断事件标识对应的目标核。
49.具体地,中断类型与中断事件标识之间的对应关系为预先配置的关系,该对应关系可以自定义。即不同的用户在配置时,可以将同一中断类型配置给不同的中断事件,每个中断事件对应的中断类型用户可以根据业务需求或业务标准进行定义,也可以根据个人喜好定义。同样,不同的中断事件触发的中断采用不同核处理,如不同用户在定义时,可以定义同一中断事件触发的中断类型采用不同的核处理。
50.在一个具体的实施例中,以8核处理器为例,dsp片上中断控制器功能,一个中断过来,八个核响应。按照平常行业标准八个核运行相同,中断过来都执行清中断,由于真实状况,八个核处理任务时,需要的时间不同,故在响应中断后,每个核很难同时清完,导致部分核中断丢失。而本案在响应中断后,每个核都判断该中断是否为本身需要处理的中断,若不是该核要处理的中断,则直接屏蔽该中断,返回执行正在执行的任务。如果按多核都对中断寄存器操作,若第一个进入中断服务函数的核早已清掉中断,那么处理该中断的核只要任务调度耗时长再进入中断服务函数,那么此时中断已经被清除,导致丢中断。通过由专门处理中断的核操作寄存器,这样能有效避免多核任务调度时隙不一定而丢失中断。
51.应该理解的是,虽然上述流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
52.在一个实施例中,如图2所示,提供了一种中断事件处理装置200,包括:
53.中断信息获取模块201,用于响应中断事件,使多核处理器的每个核分别从中断寄存器读取中断事件的信息,并根据中断事件的信息确定中断类型;
54.目标核确定模块202,用于根据中断类型,在多核处理器中确定出目标核,其中每个中断类型对应一个目标核;
55.中断处理模块203,用于令目标核通过中断服务函数处理中断事件,并在处理完中断事件后清除该中断。
56.在一个实施例中,上述中断事件处理装置200,还包括:
57.中断触发模块,用于多核处理器接收到任一中断事件触发的通用型之输入输出中断后,触发cpu中断,并调用中断函数,中断函数用于指示多核处理器的各个核向中断寄存器读取中断事件的信息。
58.在一个实施例中,上述中断事件处理装置200,还包括:
59.任务执行模块,用于多核处理器的各个核分别执行对应的当前任务;
60.任务暂停模块,用于当接收到中断事件,各个核暂停正在执行的当前任务,并响应
中断事件,从中断寄存器读取中断事件的信息。
61.在一个实施例中,上述任务执行模块还用于在处理完中断事件后清除该中断之后,恢复执行目标核的当前任务。
62.在一个实施例中,上述任务执行模块还用于若核不是中断类型的目标核,从中断寄存器读取中断事件的信息之后,恢复执行核的当前任务。
63.在一个实施例中,中断事件的信息中包括中断事件标识,上述中断事件处理装置200,还包括:
64.对应关系接收存储模块,用于接收并存储中断类型与中断事件标识之间的对应关系,接收并存储中断事件标识和核的对应关系;
65.目标核确定模块202具体用于根据中断类型与中断事件标识之间的对应关系,确定出中断事件的中断类型对应的目标中断事件标识,根据中断事件标识和核的对应关系,确定出目标中断事件标识对应的目标核。
66.在一个实施例中,上述中断事件处理装置200,还包括:
67.目标核分配模块,用于获取各个中断类型对应的业务数据,业务数据包括业务复杂度和运算复杂度中的至少一个;根据每个中断类型的业务数据,为每个中断类型分配对应的目标核。
68.在一个实施例中,上述中断事件处理装置200,还包括:
69.目标核分配模块,获取各个中断类型的发生频率;根据每个中断类型的发生频率,为每个中断类型分配对应的目标核。
70.在一个实施例中,目标核分配模块还用于获取各个中断类型对应的业务数据,业务数据包括业务复杂度和运算复杂度中的至少一个;根据每个中断类型的发生频率和对应的业务数据,为每个中断类型分配对应的目标核。
71.图3示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以的终端(或服务器),终端上搭载有多核处理器。如图3所示,该计算机设备通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现中断事件处理方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行中断事件处理方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
72.本领域技术人员可以理解,图3中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
73.在一个实施例中,本技术提供的中断事件处理装置可以实现为一种计算机程序的形式,计算机程序可在如图3所示的计算机设备上运行。计算机设备的存储器中可存储组成该中断事件处理装置的各个程序模块,比如,图2所示的中断信息获取模块201、目标核确定模块202和中断处理模块203。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本技术各个实施例的中断事件处理方法中的步骤。
74.例如,图3所示的计算机设备可以通过如图2所示的中断事件处理装置中的中断信息获取模块201执行响应中断事件,使多核处理器的每个核分别从中断寄存器读取中断事件的信息,并根据中断事件的信息确定中断类型。计算机设备可以通过目标核确定模块202执行用于根据中断类型,在多核处理器中确定出目标核,其中每个中断类型对应一个目标核。中断处理模块203执行令目标核通过中断服务函数处理所述中断事件,并在处理完中断事件后清除该中断。
75.在一个实施例中,提供了一种计算机设备,包括存储器、多核处理器及存储在存储器上并可在处理器上运行的计算机程序,多核处理器执行计算机程序时实现上述中断事件处理方法任一实施例中的步骤。
76.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被多核处理器执行时实现上述中断事件处理方法任一实施例中的步骤。
77.在一个实施例中,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的多核处理器从计算机可读存储介质读取该计算机指令,多核处理器执行该计算机指令,使得该计算机设备执行上述中断事件处理方法中任一实施例的步骤。
78.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
79.需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
80.以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献