掌桥专利:专业的专利平台
掌桥专利
首页

中断均衡方法、装置、电子设备和计算机可读存储介质

文献发布时间:2023-06-19 13:29:16


中断均衡方法、装置、电子设备和计算机可读存储介质

【技术领域】

本申请实施例涉及中断处理技术领域,尤其涉及一种中断均衡方法、中断均衡装置、电子设备和计算机可读存储介质。

【背景技术】

在ARM平台中,中断控制器(GIC)将中断划分成几种不同的类型:软件生成中断SGI(Software Generated Interrupt)、私有外设共享中断PPI(Private PeripheralInterrupt)、共享外设中断SPI(Shared Peripheral Interrupt)、基于消息的中断LPI(locality-specific peripheral interrupts)。其中共享外设中断SPI类型的中断不局限于某个特定的处理器核心CPUCore,它可以与一组Core中的任一个Core绑定。虽然SPI中断可以由多个Core共享,但实际上Linux Kernel在选择将SPI中断与某个Core进行绑定时,并不会考虑Core上的中断负载情况,都是默认将SPI中断绑定在第一个可用的Core上。当某个Core上有限的资源无法满足需要集中处理的中断请求时,硬件响应的实时性势必会受到影响,最终导致用户的体验变差。

现在已有一些中断均衡解决方案,例如开源的irqbalance,其存在以下不足:算法策略方面,开源的irqbalance对中断负载的统计存在滞后性。因此,提供一种实时的中断均衡方法是目前亟需解决的技术问题。

【发明内容】

本申请实施例提供了一种中断均衡方法、装置、电子设备和计算机可读存储介质,通过将中断在未来一个周期内的预测负载作为中断均衡的依据,消除了中断统计信息滞后给中断均衡带来的影响,实现了中断均衡的实时性。

第一方面,本申请实施例提供一种中断均衡方法,应用于采用多核心处理器的电子设备,所述多核心处理器包括至少2个在线核心,所述方法包括:

确定存在中断负载不均衡的第一在线核心和第二在线核心,所述第一在线核心为待移出中断的在线核心,所述第二在线核心为待移入中断的在线核心;

根据所述第一在线核心和所述第二在线核心的中断负载确定待迁移的中断负载;

计算在未来一个周期内所述第一在线核心上各个中断的预测负载;

根据所述预测负载确定所述第一在线核心上的待移出中断,所述待移出中断的预测负载与所述待迁移的中断负载相近或相等;

将所述待移出中断迁移到所述第二在线核心上。

上述中断均衡方法中,通过计算在未来一个周期内第一在线核心上各个中断的预测负载,并将其作为确定要迁移的中断的依据,消除了中断均衡中信息滞后带来的影响,提高了中断均衡的实时性。

在一种可能的实现方式中,确定存在中断负载不均衡的第一在线核心和第二在线核心包括:

统计在过去一个周期内每个在线核心的中断负载;

选出中断负载存在差值的第一在线核心和第二在线核心。

在一种可能的实现方式中,所述确定存在中断负载不均衡的第一在线核心和第二在线核心还包括:

计算所述第二在线核心的中断负载与所述第一在线核心的中断负载的比值,若所述比值小于预设均衡阈值,则获得存在负载不均衡的第一在线核心和第二在线核心。

在一种可能的实现方式中,所述根据第一在线核心和第二在线核心的中断负载确定待迁移的中断负载包括:

通过公式

在一种可能的实现方式中,所述计算在未来一个周期内所述第一在线核心上各个中断的预测负载包括:

基于周期性记录的第一在线核心上各个中断的触发次数,通过EMA算法计算各个中断在未来一个周期内的预测触发次数;

对所述第一在线核心上的每个中断都通过公式

在一种可能的实现方式中,所述方法应用于中断均衡的性能模式。

在一种可能的实现方式中,所述方法还包括:计算中断负载数据,比较所述中断负载数据与预设第一阈值,当中断负载数据大于预设第一阈值,进入所述中断均衡的性能模式,所述中断负载数据表征所述多核心处理器处理的中断负载与总负载的比值。

在一种可能的实现方式中,当处于中断均衡的省电模式时,所述方法包括:

确定第三在线核心,所述第三在线核心为待移入中断的在线核心;

将所述第三在线核心以外的在线核心上的全部中断迁移到所述第三在线核心上。

在一种可能的实现方式中,所述确定第三在线核心包括:

统计在过去一个周期内每个在线核心的中断负载;

选出中断负载最大的第三在线核心。

在一种可能的实现方式中,当中断负载数据小于预设第二阈值,进入所述中断均衡的省电模式。

第二方面,本申请实施例还提供一种中断均衡装置,应用于采用多核心处理器的电子设备,所述多核心处理器包括至少2个在线核心,所述装置包括:

第一确定模块,用于确定存在中断负载不均衡的第一在线核心和第二在线核心,所述第一在线核心为待移出中断的在线核心,所述第二在线核心为待移入中断的在线核心;

负载确定模块,用于根据所述第一在线核心和所述第二在线核心的中断负载确定待迁移的中断负载;

负载预测模块,用于计算在未来一个周期内所述第一在线核心上各个中断的预测负载;

中断确定模块,用于根据所述预测负载确定所述第一在线核心上的待移出中断,所述待移出中断的预测负载与所述待迁移的中断负载相近或相等;

第一迁移模块,用于将所述待移出中断迁移到所述第二在线核心上。

在一种可能的实现方式中,所述第一确定模块包括:

第一统计子模块,用于统计在过去一个周期内每个在线核心的中断负载;

第一选择子模块,用于选出中断负载存在差值的第一在线核心和第二在线核心。

在一种可能的实现方式中,所述第一确定模块还包括:

第一判断子模块,用于计算所述第二在线核心的中断负载与所述第一在线核心的中断负载的比值,若所述比值小于预设均衡阈值,则获得存在负载不均衡的第一在线核心和第二在线核心。

在一种可能的实现方式中,所述负载确定模块还用于,通过公式

在一种可能的实现方式中,所述负载预测模块包括:

触发预测子模块,用于基于周期性记录的第一在线核心上各个中断的触发次数,通过EMA算法计算各个中断在未来一个周期内的预测触发次数;

负载预测子模块,用于对所述第一在线核心上的每个中断都通过公式

在一种可能的实现方式中,所述装置应用于中断均衡的性能模式。

在一种可能的实现方式中,所述装置还包括:性能模式模块,所述性能模式模块用于计算中断负载数据,比较所述中断负载数据与预设第一阈值,当中断负载数据大于预设第一阈值,进入所述中断均衡的性能模式,所述中断负载数据表征所述多核心处理器处理的中断负载与总负载的比值。

在一种可能的实现方式中,当处于中断均衡的省电模式时,所述装置包括:

第二确定模块,用于确定第三在线核心,所述第三在线核心为待移入中断的在线核心;

第二迁移模块,用于将所述第三在线核心以外的在线核心上的全部中断迁移到所述第三在线核心上。

在一种可能的实现方式中,所述第二确定模块包括:

第二统计子模块,用于统计在过去一个周期内每个在线核心的中断负载;

第二选择子模块,用于选出中断负载最大的第三在线核心。

在一种可能的实现方式中,当中断负载数据小于预设第二阈值,进入所述中断均衡的省电模式。

第三方面,本申请实施例提供一种电子设备,包括:至少一个多核心处理器、以及与所述多核心处理器通信连接的至少一个存储器,其中:

所述存储器存储有可被所述多核心处理器执行的程序指令,所述多核心处理器调用所述程序指令能够执行第一方面提供的中断均衡方法。

本申请实施例还提供一种电子设备,包括:至少一个多核心处理器,所述多核心处理器集成有存储器,其中:

所述存储器存储有可被所述多核心处理器执行的程序指令,所述多核心处理器调用所述程序指令能够执行第一方面提供的中断均衡方法。

第四方面,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行第一方面提供的中断均衡方法。

应当理解的是,本发明实施例的第二~四方面与本发明实施例的第一方面的技术方案一致,各方面及对应的可行实施方式所取得的有益效果相似,不再赘述。

【附图说明】

为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1为本申请实施例提供的一种中断均衡方法的流程示意图;

图2为本申请实施例提供的另一种中断均衡方法的流程示意图;

图3为本申请实施例提供的再一种中断均衡方法的流程示意图;

图4为本申请实施例提供的又一种中断均衡方法的流程示意图;

图5为本申请实施例提供的另一种中断均衡方法的流程示意图;

图6为本申请实施例提供的再一种中断均衡方法的流程示意图;

图7为本申请实施例提供的一种中断均衡装置的结构示意图;

图8为本申请实施例提供的一种电子设备的结构示意图。

【具体实施方式】

为了更好的理解本说明书的技术方案,下面结合附图对本申请实施例进行详细描述。

应当明确,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本说明书保护的范围。

在本申请实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本申请实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。

现有相关技术中已有一些中断均衡解决方案,例如开源的irqbalance,但其存在以下不足:算法策略方面,开源的irqbalance的中断负载的统计存在滞后性。

基于上述问题,本申请实施例提供一种中断均衡方法、中断均衡装置、电子设备和计算机可读存储介质,以解决上述存在的问题。

图1为本申请实施例提供的一种中断均衡方法的流程示意图,应用于采用多核心处理器的电子设备,所述多核心处理器包括至少2个在线核心。如图1所示,所述中断均衡方法可以包括:

步骤101:确定存在中断负载不均衡的第一在线核心和第二在线核心,所述第一在线核心为待移出中断的在线核心,所述第二在线核心为待移入中断的在线核心;

步骤102:根据所述第一在线核心和所述第二在线核心的中断负载确定待迁移的中断负载;

步骤103:计算在未来一个周期内所述第一在线核心上各个中断的预测负载;

步骤104:根据所述预测负载确定所述第一在线核心上的待移出中断,所述待移出中断的预测负载与所述待迁移的中断负载相近或相等;

步骤105:将所述待移出中断迁移到所述第二在线核心上。

需要说明的是,本实施例中进行均衡的中断可以是SPI共享外设中断,SPI可以在任一处理器核心上响应。本实施例中提到的电子设备,可以包括但不限于以下设备:PC、手机、智能手表、基站、VR设备等。本实施例中采用的多核心处理器可以为ARM或ARM64架构,基于Linux内核,包括多个处理器核心,而处理器核心根据其工作状态分为在线核心和隔离核心,在线核心是指该核心能够被用户空间的进程使用,能够处理SPI,隔离核心是指该核心不再被用户空间的进程使用,不能够处理SPI。因此,本实施例中进行中断均衡的处理器核心都为在线核心,隔离核心不能参与中断均衡。

示例性的,在进行中断均衡时,中断均衡程序会周期性的读取Linux Kernel提供的接口文件,获得各个处理器核心CPU core的在线或者隔离状态,以确定哪些核心为在线核心,以免将中断迁移至不合适的Core上。例如,读取接口文件/sys/devices/system/cpu/present,可以获取系统中所有可用的CPUcore,读取接口文件/sys/devices/system/cpu/core_ctl_isolate,可以获取CPUcore Isolated隔离状态,读取接口文件/sys/devices/system/cpu/online,可以获取CPU core Online在线状态。当系统中仅有一个CPU core可用时,没有中断均衡的必要,因此本实施例所提供的中断均衡方案,适用于多核处理器包括至少2个在线核心的情况。

在上述中断均衡方法中,通过确定存在中断负载不均衡的第一在线核心和第二在线核心,其中第一在线核心为待移出中断的在线核心,第二在线核心为待移入中断的在线核心;确定待迁移的中断负载;计算在未来一个周期内第一在线核心上各个中断的预测负载;根据预测负载确定第一在线核心上的待移出中断;将待移出中断迁移到第二在线核心上的方法,将中断在未来一个周期内的预测负载作为中断均衡的依据,消除了中断统计信息滞后给中断均衡带来的影响,实现了中断均衡的实时性。

在一些实施例中,步骤101确定存在中断负载不均衡的第一在线核心和第二在线核心的方法可以是直接接收其他判断程序的确定结果,也可以是通过计算确定第一在线核心和第二在线核心存在中断负载不均衡。

图2为本申请实施例提供的另一种中断均衡方法的流程示意图,如图2所示,在图1所示的实施例中,步骤101可以包括:

步骤201:统计在过去一个周期内每个在线核心的中断负载;

步骤202:选出中断负载存在差值的第一在线核心和第二在线核心。

需要说明的是,本实施例中的在线核心的中断负载可以用执行中断所花费的CPUcycles代表,可以通过读取Linux内核提供的接口文件中/proc/stat文件直接获取。通过周期性的读取Linux内核提供的接口文件中/proc/stat文件并保存,可以获得当前读取时间点执行每个中断所花费的CPU cycles,还可以获得上一次读取时间点执行每个中断所花费的CPU cycles,对于每一个中断来讲,将自己对应的当前读取时间点的CPU cycles减去上一次读取时间点的CPU cycles即获得在过去一个周期内的中断负载,这里的一个周期为当前读取时间点与上一次读取时间点的时间差值,对每个中断都采用上述方法进行计算,就能够得到过去一个周期内每个在线核心的中断负载。上述方法只是统计在过去一个周期内每个在线核心的中断负载的一种可以实现的方法,但并不是只有这一种方法,例如可以通过统计其他性能数据作为中断负载,因此,本实施例对上述统计在过去一个周期内每个在线核心的中断负载的方法不作限定。

另外,选出中断负载存在差值的第一在线核心和第二在线核心的方法,可以为设置差值阈值,根据差值阈值选择两个中断负载差值大于差值阈值的在线核心,也可以将获得的中断负载进行排序,选出中断负载最大的在线核心和中断负载最小的在线核心作为中断负载存在差值的第一在线核心和第二在线核心,本实施例并不限于使用这些方法。因此,本实施例对上述选出中断负载存在差值的第一在线核心和第二在线核心的方法不作限定。

图3为本申请实施例提供的再一种中断均衡方法的流程示意图,如图3所示的中断均衡方法中,步骤101还可以包括步骤203。

步骤203:计算所述第二在线核心的中断负载与所述第一在线核心的中断负载的比值,若所述比值小于预设均衡阈值,则获得存在负载不均衡的第一在线核心和第二在线核心。

这里通过计算两个在线核心的中断负载的比值确定两个在线核心中断负载不均衡的程度,通过与预设均衡阈值进行比较进行判断是否需要进行中断均衡是一种更为科学的确定方法,能够避免对一些不严重的不均衡情况进行中断均衡,造成设备功耗的浪费,且中断均衡的效果不明显。举例说明上述计算方法:统计获得在过去一个周期内各个在线核心的中断负载为,core0:40000/S,core1:26000/S,core3:24000/S,core3:10000/S,预设均衡阈值为0.8。根据统计结果,core0的中断负载最大,core3的中断负载最小,计算core3与core0的中断负载比值为10000/40000=0.25,由于0.25小于0.8,所以确定需要对core0和core3进行中断均衡。

在一些实施例中,步骤102根据第一在线核心和第二在线核心的中断负载确定待迁移的中断负载的方法有多种,例如可以设置将两个在线核心的中断负载差的一半作为待迁移的中断负载,也可以设置将中断负载差的百分之40,或者百分之60作为待迁移的中断负载,可以根据应用场景的需求做设置,本实施例对确定待迁移的中断负载的方法不作限定。

示例性的,可以通过公式

在一些实施例中,步骤103计算待移出中断的在线核心上各个中断的负载不是采用的预测方法,而是根据当前数据进行计算获得的当前负载,这样计算出来的负载在中断迁移后会存在误差,因为中断的负载是在实时变化的,可能变大也可能变小,如果根据当前负载迁移中断,等到我们将中断迁移到待移入中断的在线核心上后,由于中断的负载已经增加或者减少,会造成中断迁移后两个在线核心上的中断仍然不均衡的问题。因此,本实施例采用的是计算在未来一个周期内第一在线核心上各个中断的预测负载的方法。预测负载的方法有很多,例如,可以根据中断的触发次数,采用平均数算法计算预测负载,也可以根据中断触发次数,采用指数移动平均值EMA算法计算预测负载,本实施例对上述计算第一在线核心上各个中断的预测负载的方法不作限定。

示例性的,图4为本申请又一个实施例提供的中断均衡方法的流程示意图,如图4所示,在图1所示的实施例中,步骤103可以包括:

步骤301:基于周期性记录的第一在线核心上各个中断的触发次数,通过EMA算法计算各个中断在未来一个周期内的预测触发次数;

步骤302:对第一在线核心上的每个中断都通过公式

需要说明的是,由于Linux Kernel无法准确的获得每个中断的实际负载值,因此本实施例将一个周期内的中断触发次数作为判断中断的负载大小的依据。在进行中断均衡时,中断均衡程序会周期性的读取Linux Kernel提供的接口文件,统计各个CPU core上各个中断的中断类型和当前总触发次数,根据当前统计数据和上一次统计数据,可以获得各个CPU core每秒钟的平均增量,然后通过EMA算法预测各中断的负载值。

示例性的,假设每间隔5秒读取一次Linux Kernel提供的接口文件,当前获得中断a在core1上前4次的触发次数统计结果为:时间点t1的数据:10s,1000次;时间点t2的数据:15.1s,1510次;时间点t3的数据:20s,2245次;时间点t4的数据:25s,2745次;其中15.1s是由于突发情况导致读取数据延迟,但是由于我们需要的是时间差值与触发次数差值,因此读取数据延迟不会影响计算结果。

计算周期t1-t2中中断a的平均每秒触发次数:x

根据指数移动平均值EMA算法递推公式:

根据预测的触发次数可以计算在未来一个周期内的预测负债,计算公式为

通过上述方法计算获得core1上中断a的预测负债,照此方法计算core1上每个中断的预测负载。通过采用EMA算法计算在未来一个周期内第一在线核心上各个中断的预测负载,能够为中断均衡提供准确的基础数据,保证了中断均衡的准确性。

在一些实施例中,步骤104根据预测负载确定第一在线核心上的待移出中断中,根据步骤103计算出的第一在线核心上各个中断的预测负载,选出待移出中断,以使待移出中断的预测负载与步骤102计算出的待迁移的中断负载相等,若没有完全相等的待移出中断,那么就选择值最接近的待移出中断。这里的待移出中断可以为一个或者一个以上,如果选择的一个以上的中断,那么就需要使选出的一个以上的中断的预测负载之和与待迁移的中断负载相等或相近。

在一些实施例中,步骤105将第一在线核心上的待移出中断迁移到第二在线核心上,可以通过/proc/irq/*/smp_affinity节点设置这些中断的亲和性,再将待迁移的中断绑定到第二在线核心上。

在一些实施例中,中断均衡包括性能模式,上述中断均衡方法应用于中断均衡的性能模式。中断均衡的性能模式主要是在中断总负载高时,将中断均发给多个CPU core,以提升中断处理能力和系统实时性。

在一些实施例中,预设有第一阈值,当中断负载数据大于预设第一阈值时,进入中断均衡的性能模式,中断负载数据的内容可以有多种,例如可以是中断数量、中断负载比值等数据,本实施例对中断负载数据的内容不作限定。

示例性的,图5为本申请实施例提供的另一种中断均衡方法的流程示意图,如图5所示,步骤101前包括步骤401。步骤401:计算中断负载数据,比较中断负载数据与预设第一阈值,其中中断负载数据表征所述多核心处理器处理的中断负载与总负载的比值。当中断负载数据大于预设第一阈值,进入中断均衡的性能模式。采用中断负载与总负载的比值可以体现当前中断负载占处理器总负载的大小,如果超过预设第一阈值,则说明当前中断负载的总量达到了一定程度,需要进行均衡,则进入中断均衡的性能模式。

在一些实施例中,中断均衡包括省电模式。在性能模式下,中断均衡会提高CPU出Standby/Power Down状态的可能性,对系统功耗存在一定的影响,因此中断均衡的省电模式主要是在中断负载低时,将中断集中于某1个或几个核心进行处理从而降低功耗。

示例性的,图6为本申请实施例提供的再一种中断均衡方法的流程示意图,如图6所示,步骤101前包括步骤501,步骤501:计算中断负载数据,比较中断负载数据与预设第一阈值、预设第二阈值,其中中断负载数据表征所述多核心处理器处理的中断负载与总负载的比值。当中断负载数据大于预设第一阈值,进入中断均衡的性能模式,当中断负载数据小于预设第二阈值,进入中断均衡的省电模式。当处于中断均衡的省电模式时,中断均衡方法包括:

步骤601:确定第三在线核心,所述第三在线核心为待移入中断的在线核心;

步骤602:将所述第三在线核心以外的在线核心上的全部中断迁移到所述第三在线核心上。

需要说明的是,第三在线核心可以为任一个在线核心,在确定了第三在线核心后,就可以将其他核心上的全部中断都迁移到第三在线核心上,实现降低设备功耗的目的。

示例性的,确定第三在线核心可以包括:统计在过去一个周期内每个在线核心的中断负载;选出中断负载最大的第三在线核心。可以理解的是,第三在线核心可以为中断负载最大的在线核心,这样在迁移其他核心的中断到第三在线核心时,花费的时间更短,功耗损失更小,更适合于嵌入式平台。

可以理解的是,中断均衡方法中还可以根据应用场景设置一些其他参数,例如在哪几个Core上进行均衡,均衡的时间间隔等,此外,中断均衡方法中还可以增加一些其他步骤,例如开启中断均衡;检查当前可用的CPU core数量,若只有一个可用core则退出中断均衡;控制中断均衡是否后台运行;控制是否输出日志等,以使中断均衡方法更匹配应用场景和用户的需求。

以下举例说明本实施例提供的中断均衡方法:预设第一阈值为0.15,预设第二阈值为0.11,均衡阈值为0.8。

方案一:(1)统计到在过去一个周期内CPU上中断处理所花费的CPU Cycles为100000,CPU处理所有任务花费的CPU Cycles为500000,计算得到中断负载与总负载的比值为100000/500000=0.2,大于预设第一阈值,进入性能模式。

(2)统计在过去一个周期内各Core的中断负载(单位:CPU cycles/S),结果如下:Core0:40000,Core1:26000,Core2:24000,Core3:10000;根据统计结果,Core0的中断负载最大,irqload

(3)计算待迁移的中断负载:L

(4)遍历Core0上所有的中断,计算各SPI中断的预测负载(单位:CPU cycles/S),结果如下:中断号40、预测负载1000,中断号43、预测负载18000,中断号52、预测负载14000,中断号63、预测负载1000,中断号74、预测负载300,中断号105、预测负载2000。

(5)遍历Core0上所有的SPI中断,发现52号中断的预测负载最接近待迁移的中断负载:L

(6)通过设置/proc/irq/52/smp_affinity文件节点,将52号中断绑定到Core3,完成Core0和Core3的中断迁移。

(7)对于剩下的Core1和Core2,irqload

方案二:(1)统计在过去一个周期内CPU上中断处理所花费的CPU Cycles为100000,CPU处理所有任务花费的CPU Cycles为1000000,计算得到中断负载与总负载的比值为100000/1000000=0.1,小于预设第二阈值,进入省电模式。

(2)统计在过去一个周期内各Core的中断负载(单位:CPU cycles/S),结果如下:Core0:40000,Core1:30000,Core2:20000,Core3:10000。根据统计结果,Core0的中断负载最大,中断均衡决策结果:将所有SPI中断迁移至Core0。

(3)通过设置/proc/irq/*/smp_affinity文件节点,将所有SPI中断绑定到Core0,完成中断迁移。

以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。

采用本实施例提供的中断均衡方法的有益效果包括:1、功耗敏感设备,例如智能手表,采用了该中断均衡方法之后,能够降低待机功耗。2、性能敏感设备,例如基站等,采用了该中断均衡方案之后,能够提升设备的中断处理能力,进而提高IO吞吐量。3、功耗和性能均有要求的设备,例如智能手机,采用该中断均衡方案会在低负载情况下降低功耗,在高负载时提升性能。

图7为本申请实施例提供的一种中断均衡装置的结构示意图,上述中断均衡装置设置在电子设备中,如图7所示,上述中断均衡装置可以包括:第一确定模块71、负载确定模块72、负载预测模块73、中断确定模块74和第一迁移模块75,其中,

第一确定模块71,用于确定存在中断负载不均衡的第一在线核心和第二在线核心,所述第一在线核心为待移出中断的在线核心,所述第二在线核心为待移入中断的在线核心;

负载确定模块72,用于根据所述第一在线核心和所述第二在线核心的中断负载确定待迁移的中断负载;

负载预测模块73,用于计算在未来一个周期内所述第一在线核心上各个中断的预测负载;

中断确定模块74,用于根据所述预测负载确定所述第一在线核心上的待移出中断,所述待移出中断的预测负载与所述待迁移的中断负载相近或相等;

第一迁移模块75,用于将所述待移出中断迁移到所述第二在线核心上。

其中,所述第一确定模块71包括:

第一统计子模块,用于统计在过去一个周期内每个在线核心的中断负载;

第一选择子模块,用于选出中断负载存在差值的第一在线核心和第二在线核心。

其中,所述第一确定模块71还包括:

第一判断子模块,用于计算所述第二在线核心的中断负载与所述第一在线核心的中断负载的比值,若所述比值小于预设均衡阈值,则获得存在负载不均衡的第一在线核心和第二在线核心。

其中,所述负载确定模块72还用于,通过公式

其中,所述负载预测模块73包括:

触发预测子模块,用于基于周期性记录的第一在线核心上各个中断的触发次数,通过EMA算法计算各个中断在未来一个周期内的预测触发次数;

负载预测子模块,用于对所述第一在线核心上的每个中断都通过公式

所述装置应用于中断均衡的性能模式。

其中,所述装置还包括性能模式模块,所述性能模式模块用于计算中断负载数据,比较所述中断负载数据与预设第一阈值,当中断负载数据大于预设第一阈值,进入所述中断均衡的性能模式,所述中断负载数据表征所述多核心处理器处理的中断负载与总负载的比值。

其中,当处于中断均衡的省电模式时,所述装置包括:

第二确定模块,用于确定第三在线核心,所述第三在线核心为待移入中断的在线核心;

第二迁移模块,用于将所述第三在线核心以外的在线核心上的全部中断迁移到所述第三在线核心上。

其中,所述第二确定模块包括:

第二统计子模块,用于统计在过去一个周期内每个在线核心的中断负载;

第二选择子模块,用于选出中断负载最大的第三在线核心。

其中,当中断负载数据小于预设第二阈值,进入所述中断均衡的省电模式。

图7所示实施例提供的中断均衡装置可用于执行本说明书图1所示方法实施例的技术方案,其实现原理和技术效果可以进一步参考方法实施例中的相关描述。

图8为本申请实施例提供的一种电子设备的结构示意图,如图8所示,上述电子设备可以包括:至少一个多核心处理器、以及与所述多核心处理器通信连接的至少一个存储器,其中:所述存储器存储有可被所述多核心处理器执行的程序指令,所述多核心处理器调用所述程序指令能够执行本说明书图1~图6所示实施例提供的中断均衡方法。

在一些实施例方式中,电子设备可以包括:至少一个多核心处理器,所述多核心处理器集成有存储器,其中:所述存储器存储有可被所述多核心处理器执行的程序指令,所述多核心处理器调用所述程序指令能够执行图1~图6所示实施例提供的中断均衡方法。

其中,上述电子设备可以为智能手机、平板电脑或笔记本电脑等智能电子设备,本实施例对上述电子设备的形式不作限定。

示例性的,图8以智能手机为例示出了电子设备的结构示意图,如图8所示,电子设备100可以包括多核心处理器110,外部存储器接口120,内部存储器121,天线1,天线2,移动通信模块130,无线通信模块140,摄像头150,显示屏160,按键170等。

可以理解的是,本申请实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。

多核心处理器110包括两个或多个处理器核心,还可以包括一个或多个处理单元,例如:多核心处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processing unit,GPU),图像信号处理器(image signalprocessor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。

控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。

多核心处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,多核心处理器110中的存储器为高速缓冲存储器。该存储器可以保存多核心处理器110刚用过或循环使用的指令或数据。如果多核心处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了多核心处理器110的等待时间,因而提高了系统的效率。

电子设备100包括多个外部设备,例如摄像头150、显示屏160和按键170等,多个外部设备分别与多核心处理器110通信连接,每个外部设备都有自己的中断请求IRQ,基于IRQ,多核心处理器110可以将相应的请求分发到相应的硬件驱动上,处理中断的驱动是需要运行在多核心处理器110上的,因此,当中断产生时,多核心处理器110会暂时停止当前程序的程序转而执行中断请求。当多个中断请求同时绑定在某个处理器core上,这个处理器core上有限的资源就无法满足需要集中处理的中断请求,多核心处理器110通过运行存储在内部存储器121中的程序,从而执行各种功能应用以及数据处理,例如执行本申请图1~图6所示实施例提供的中断均衡方法,对需要集中处理的中断请求进行中断均衡。

在一些实施例中,多核心处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integratedcircuit sound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。

电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块130,无线通信模块140,调制解调处理器以及基带处理器等实现。

天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。

移动通信模块130可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块130可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块130可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块130还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块130的至少部分功能模块可以被设置于多核心处理器110中。在一些实施例中,移动通信模块130的至少部分功能模块可以与多核心处理器110的至少部分模块被设置在同一个器件中。

调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏160显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于多核心处理器110,与移动通信模块130或其他功能模块设置在同一个器件中。

无线通信模块140可以提供应用在电子设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块140可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块140经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到多核心处理器110。无线通信模块140还可以从多核心处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。

在一些实施例中,电子设备100的天线1和移动通信模块130耦合,天线2和无线通信模块140耦合,使得电子设备100可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(codedivision multiple access,CDMA),宽带码分多址(wideband code division multipleaccess,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(global navigation satellite system,GLONASS),北斗卫星导航系统(beidounavigation satellite system,BDS),准天顶卫星系统(quasi-zenith satellitesystem,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。

电子设备100通过GPU,显示屏160,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏160和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。多核心处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。

显示屏160用于显示图像,视频等。显示屏160包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode的,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,电子设备100可以包括1个或N个显示屏160,N为大于1的正整数。

电子设备100可以通过ISP,摄像头150,视频编解码器,GPU,显示屏160以及应用处理器等实现拍摄功能。

ISP用于处理摄像头150反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头150中。

摄像头150用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,电子设备100可以包括1个或N个摄像头150,N为大于1的正整数。

数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当电子设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。

视频编解码器用于对数字视频压缩或解压缩。电子设备100可以支持一种或多种视频编解码器。这样,电子设备100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。

NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现电子设备100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。

外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与多核心处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。

内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器。

按键170包括开机键,音量键等。按键170可以是机械按键。也可以是触摸式按键。电子设备100可以接收按键输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。

本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行本说明书图1~图6所示实施例提供的中断均衡方法。

上述计算机可读存储介质可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(readonly memory,ROM)、可擦式可编程只读存储器(erasable programmable read onlymemory,EPROM)或闪存、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、射频(radio frequency,RF)等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言或其组合来编写用于执行本说明书操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(localarea network,LAN)或广域网(wide area network,WAN)连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

在本发明实施例的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本说明书的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。

流程示意图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本说明书的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本说明书的实施例所属技术领域的技术人员所理解。

取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。

需要说明的是,本申请实施例中所涉及的终端可以包括但不限于个人计算机(personal computer,PC)、个人数字助理(personal digital assistant,PDA)、无线手持设备、平板电脑(tablet computer)、手机、MP3播放器、MP4播放器等。

在本说明书所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

另外,在本说明书各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)或处理器(processor)执行本说明书各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM)、随机存取存储器(RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。

相关技术
  • 中断均衡方法、装置、电子设备和计算机可读存储介质
  • 数据均衡方法、装置、计算机可读存储介质及电子设备
技术分类

06120113693914