System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本公开涉及计算机,具体涉及核间运行中断程序的方法、装置、芯片、设备及介质。
技术介绍
1、中断嵌套是指中央处理器(central processing unit,cpu)正在执行一个中断程序时,有另一个优先级更高的中断程序提出中断请求,这时cpu会暂时中止当前正在运行的级别较低的中断程序,去处理级别更高的中断程序,待处理完毕,再返回被中断的中断程序继续运行的过程。
2、目前,在cpu发生中断嵌套时,低优先级的中断程序需要等待高优先级的中断程序被cpu运行完毕后才能继续运行,若高优先级的中断程序长时间占用cpu,可能导致低优先级的中断程序一直处于等待状态而无法被运行完毕。在多核cpu,即一个cpu有多个cpu核的场景中,由于每个cpu核都会运行程序,而每个cpu核都有可能发生中断嵌套,在多个cpu核发生中断嵌套时,会大幅度降低cpu的程序处理效率,降低芯片性能。
3、因此,如何提高cpu的程序处理效率,成为一项亟待解决的技术问题。
技术实现思路
1、为了解决相关技术中的问题,本公开实施例提供一种核间运行中断程序的方法、装置、芯片、设备及介质。
2、第一方面,本公开实施例中提供了一种核间运行中断程序的方法。
3、具体地,所述核间运行中断程序的方法应用于包括多个处理核的处理器,所述方法包括:
4、响应于第一处理核的当前运行状态为中断嵌套状态,确定所述第一处理核上中断程序的运行状态;
5、响应于所述第一处理核上高优先级
6、控制所述第二处理核和所述第一处理核以预设时长轮询运行所述第二中断程序,直至所述第二中断程序运行结束。
7、在本公开的一种实现方式中,所述方法还包括:
8、响应于所述第一处理核上正在运行的所述第一中断程序的已运行时长大于或等于所述预设时长阈值,且在所述多个处理核中未确定出当前运行状态为空闲状态的第二处理核,控制所述第一处理核继续运行所述第一中断程序。
9、在本公开的一种实现方式中,所述方法还包括:
10、响应于所述第一处理核继续开始运行所述第一中断程序的时刻至结束运行所述第一中断程序的时刻之间,在所述多个处理核中确定出当前运行状态为空闲状态的第二处理核,控制所述第二处理核和所述第一处理核以预设时长轮询运行所述第二中断程序,直至所述第二中断程序运行结束。
11、在本公开的一种实现方式中,所述控制所述第二处理核和所述第一处理核以预设时长轮询运行所述第二中断程序,包括:
12、响应于所述第二中断程序轮询至所述第二处理核,获取本地记录的程序标识、堆栈标识和存储地址之间对应关系的对应关系表;
13、基于所述对应关系表获取所述第二中断程序在所述第一处理核对应的第一堆栈中的第一存储地址;
14、基于所述第一存储地址控制所述第二处理核从所述第一处理核对应的第一堆栈中读取并恢复所述第二中断程序的现场缓存数据;
15、基于所述第二中断程序的现场缓存数据,以预设时长运行所述第二中断程序;
16、或者,
17、响应于所述第二中断程序轮询至所述第一处理核,获取所述对应关系表;
18、基于所述对应关系表获取所述第二中断程序在所述第二处理核对应的第二堆栈中的第二存储地址;
19、基于所述第二存储地址控制所述第一处理核从所述第二处理核对应的第二堆栈中读取并恢复所述第二中断程序的现场缓存数据;
20、基于所述第二中断程序的现场缓存数据,以预设时长运行所述第二中断程序;
21、其中,所述程序标识为被处理核暂停运行的中断程序的标识,所述堆栈标识为存储了所述中断程序的现场缓存数据的对应堆栈的标识,所述存储地址为所述中断程序的现场缓存数据在对应堆栈中存储的对应地址。
22、在本公开的一种实现方式中,所述方法还包括:
23、响应于所述第二中断程序即将轮询至所述第二处理核,控制所述第一处理核暂停运行所述第二中断程序,并获取所述第二中断程序当前的现场缓存数据;
24、控制所述第一处理核将当前的所述现场缓存数据存入与所述第一处理核对应的第一堆栈中;
25、确定所述第二中断程序的程序标识、所述第一堆栈的堆栈标识和当前的所述现场缓存数据存储在所述第一堆栈中的第一存储地址;
26、将所述第二中断程序的程序标识、所述第一堆栈的堆栈标识和所述第一存储地址记录在所述对应关系表中;
27、或者,
28、响应于所述第二中断程序即将轮询至所述第一处理核,控制所述第二处理核暂停运行所述第二中断程序,并获取所述第二中断程序当前的现场缓存数据;
29、控制所述第二处理核将当前的所述现场缓存数据存入与所述第二处理核对应的第二堆栈中;
30、确定所述第二中断程序的程序标识、所述第二堆栈的堆栈标识和当前的所述现场缓存数据存储在所述第二堆栈中的第二存储地址;
31、将所述第二中断程序的程序标识、所述第二堆栈的堆栈标识和所述第二存储地址之间的对应关系记录在所述对应关系表中。
32、在本公开的一种实现方式中,所述方法还包括:
33、响应于所述第一处理核继续开始运行所述第一中断程序的时刻至结束运行所述第一中断程序的时刻之间,在所述多个处理核中未确定出当前的程序运行状态为空闲状态的第二处理核,控制所述第一处理核运行所述第二中断程序。
34、在本公开的一种实现方式中,所述方法还包括:
35、响应于所述第一处理核上正在运行的所述第一中断程序的已运行时长大于或等于所述预设时长阈值,且在所述多个处理核中未确定出当前运行状态为空闲状态的第二处理核,控制所述第一处理核以预设时长轮询运行所述第一中断程序和所述第二中断程序。
36、在本公开的一种实现方式中,所述方法还包括:
37、在所述第二处理核和所述第一处理核以预设时长轮询运行所述第二中断程序期间,响应于所述第二处理核的当前运行状态进入繁忙状态或中断嵌套状态,控制所述第一处理核以所述预设时长轮询运行所述第二中断程序和所述第一中断程序。
38、在本公开的一种实现方式中,所述方法还包括:
39、响应于所述第一处理核上的所述第一中断程序在所述预设时长阈值内运行结束,控制所述第一处理核运行所述第二中断程序。
40、在本公开的一种实现方式中,所述控制所述第二处理核和所述第一处理核以预设时长轮询运行所述第二中断程序之前,还包括:
41、确定所述第二处理核正在运行的应用程序;
42、响应于所述第二处理核正在运行应用程序,将所述应用程序暂停运行。
43、在本公开的一种实现方式中,所本文档来自技高网...
【技术保护点】
1.一种核间运行中断程序的方法,其特征在于,所述方法应用于包括多个处理核的处理器,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,还包括:
3.根据权利要求2所述的方法,其特征在于,还包括:
4.根据权利要求1或3所述的方法,其特征在于,所述控制所述第二处理核和所述第一处理核以预设时长轮询运行所述第二中断程序,包括:
5.根据权利要求4所述的方法,其特征在于,还包括:
6.根据权利要求3所述的方法,其特征在于,还包括:
7.根据权利要求1所述的方法,其特征在于,还包括:
8.根据权利要求1或3所述的方法,其特征在于,还包括:
9.根据权利要求1所述的方法,其特征在于,还包括:
10.根据权利要求1或3所述的方法,其特征在于,所述控制所述第二处理核和所述第一处理核以预设时长轮询运行所述第二中断程序之前,还包括:
11.根据权利要求10所述的方法,其特征在于,还包括:
12.根据权利要求1或3所述的方法,其特征在于,还包括:
13.
14.根据权利要求13所述的装置,其特征在于,还包括:
15.根据权利要求14所述的装置,其特征在于,所述核间轮询模块,还被配置为响应于所述第一处理核继续开始运行所述第一中断程序的时刻至结束运行所述第一中断程序的时刻之间,在所述多个处理核中确定出当前运行状态为空闲状态的第二处理核,控制所述第二处理核和所述第一处理核以预设时长轮询运行所述第二中断程序,直至所述第二中断程序运行结束。
16.根据权利要求13或15所述的装置,其特征在于,所述核间轮询模块,还被配置为响应于所述第二中断程序轮询至所述第二处理核,获取本地记录的程序标识、堆栈标识和存储地址之间对应关系的对应关系表;基于所述对应关系表获取所述第二中断程序在所述第一处理核对应的第一堆栈中的第一存储地址;基于所述第一存储地址控制所述第二处理核从所述第一处理核对应的第一堆栈中读取并恢复所述第二中断程序的现场缓存数据;基于所述第二中断程序的现场缓存数据,以预设时长运行所述第二中断程序;或者,
17.根据权利要求16所述的装置,其特征在于,还包括:
18.根据权利要求14所述的装置,其特征在于,所述运行模块,还被配置为响应于所述第一处理核继续开始运行所述第一中断程序的时刻至结束运行所述第一中断程序的时刻之间,在所述多个处理核中未确定出当前的程序运行状态为空闲状态的第二处理核,控制所述第一处理核运行所述第二中断程序。
19.根据权利要求13所述的装置,其特征在于,还包括:
20.根据权利要求19所述的装置,其特征在于,所述单核轮询模块,还被配置为在所述第二处理核和所述第一处理核以预设时长轮询运行所述第二中断程序期间,响应于所述第二处理核的当前运行状态进入繁忙状态或中断嵌套状态,控制所述第一处理核以所述预设时长轮询运行所述第二中断程序和所述第一中断程序。
21.根据权利要求14所述的装置,其特征在于,所述运行模块,还被配置为响应于所述第一处理核上的所述第一中断程序在所述预设时长阈值内运行结束,控制所述第一处理核运行所述第二中断程序。
22.根据权利要求13或15所述的装置,其特征在于,还包括:
23.根据权利要求22所述的装置,其特征在于,所述运行模块,还被配置为响应于所述第二中断程序当前轮询运行至所述第一处理核上,或者,所述第二中断程序运行结束,控制所述第二处理核继续运行所述应用程序。
24.根据权利要求13或15所述的装置,其特征在于,所述核间轮询模块,还被配置为响应于所述第二中断程序当前轮询运行至所述第二处理核上,或者,所述第二中断程序运行结束,控制所述第一处理核继续运行所述第一中断程序。
25.一种芯片,其特征在于,所述芯片包括处理器,所述处理器用于调用存储器中的计算机程序时实现如权利要求1至12中任一项所述的方法。
26.一种电子设备,其特征在于,包括:存储器和至少一个处理器;其中,所述存储器用于存储一条或多条计算机指令,所述一条或多条计算机指令被所述处理器执行,以实现如权利要求1至12中任一项所述的方法。
27.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,该计算机指令被处理器执行时实现如权利要求1至12中任一项所述的方法。
...【技术特征摘要】
1.一种核间运行中断程序的方法,其特征在于,所述方法应用于包括多个处理核的处理器,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,还包括:
3.根据权利要求2所述的方法,其特征在于,还包括:
4.根据权利要求1或3所述的方法,其特征在于,所述控制所述第二处理核和所述第一处理核以预设时长轮询运行所述第二中断程序,包括:
5.根据权利要求4所述的方法,其特征在于,还包括:
6.根据权利要求3所述的方法,其特征在于,还包括:
7.根据权利要求1所述的方法,其特征在于,还包括:
8.根据权利要求1或3所述的方法,其特征在于,还包括:
9.根据权利要求1所述的方法,其特征在于,还包括:
10.根据权利要求1或3所述的方法,其特征在于,所述控制所述第二处理核和所述第一处理核以预设时长轮询运行所述第二中断程序之前,还包括:
11.根据权利要求10所述的方法,其特征在于,还包括:
12.根据权利要求1或3所述的方法,其特征在于,还包括:
13.一种核间运行中断程序的装置,其特征在于,所述装置应用于包括多个处理核的处理器,所述装置包括:
14.根据权利要求13所述的装置,其特征在于,还包括:
15.根据权利要求14所述的装置,其特征在于,所述核间轮询模块,还被配置为响应于所述第一处理核继续开始运行所述第一中断程序的时刻至结束运行所述第一中断程序的时刻之间,在所述多个处理核中确定出当前运行状态为空闲状态的第二处理核,控制所述第二处理核和所述第一处理核以预设时长轮询运行所述第二中断程序,直至所述第二中断程序运行结束。
16.根据权利要求13或15所述的装置,其特征在于,所述核间轮询模块,还被配置为响应于所述第二中断程序轮询至所述第二处理核,获取本地记录的程序标识、堆栈标识和存储地址之间对应关系的对应关系表;基于所述对应关系表获取所述第二中断程序在所述第一处理核对应的第一堆栈中的第一存储地址;基于所述第一存储地址控制所述第二处理核从所述第一处理核对应的第一堆栈中读取并恢复所述第二中断程序的现场缓存数据;基于所述第二中断程序的现场缓存数据,以预设时长运...
【专利技术属性】
技术研发人员:赵东艳,刘畅,李德建,牛彬,谭浪,黎金旺,
申请(专利权)人:北京智芯微电子科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。