一种支持多层中断优先级控制的矢量中断控制器的制造方法

文档序号:10471062阅读:139来源:国知局
一种支持多层中断优先级控制的矢量中断控制器的制造方法
【专利摘要】一种支持多层中断优先级控制的矢量中断控制器,包括中断接收单元、第一层中断优先级单元、第二层中断优先级单元、第一层中断优先级仲裁器和第二层中断优先级仲裁器,还包括:第三层中断优先级单元,包含一个中断阈值优先级;第三层中断优先级仲裁器,用于比较第二中断源请求的优先级是否高于中断阈值优先级,当比较结果为是时,输出该第二中断源请求作为有效的中断抢占请求,否则中断抢占请求无效;中断处理单元,用于负责处理中断抢占请求,并利用被响应的中断抢占请求的优先级更新第二层优先级单元中当前正在处理的中断源请求的优先级。本发明以较小的硬件代价支持中断优先级的动态变化、稳定性和实时性良好。
【专利说明】
一种支持多层中断优先级控制的矢量中断控制器
技术领域
[0001]本发明属于处理器领域,涉及一种矢量中断控制器。
【背景技术】
[0002]现有的中断控制器,为了提高中断响应的实时性,允许更高优先级的中断抢占,因此,矢量中断控制器需要支持中断嵌套功能。环境因素变化存在于中断嵌套响应中,比如中断源之间存在共享资源或者低优先级中断迟迟未获得中断响应。为了解决这个问题,矢量中断控制器支持中断优先级动态改变,即将中断源的优先级升高或者降低。例如有三个中断源请求A,B,C,它们的优先级初始化设置为A〈B〈C,且中断源请求的顺序为A>B>C;这样矢量中断控制器形成了中断A嵌套中断B,中断B又进一步嵌套中断C的情况。此时假设应用场景一:中断A优先级升高,并且有新的中断源请求D且优先级比C高但比A低,如果中断源请求D只跟当前中断优先级比较则会产生中断抢占请求,矢量中断控制器可能存在比中断D优先级更高的中断A无法得到及时响应的问题。假设应用场景二:中断C的优先级降低,同时有新的中断源请求D且优先级比C高但比A\B都低,中断源请求D如果只跟当前中断优先级比较则产生中断抢占请求,同样存在比中断D优先级更高的中断A\B无法得到及时响应的问题。这两种场景的潜在冋题是低优先级可能比尚优先级中断先得到系统响应,导致更尚优先级的中断延迟,影响中断响应系统的稳定性和实时性。为了解决中断优先级动态改变导致的实时性问题,ARM提出了一种处理方案,即有新的中断源请求时,将新的中断源的优先级与所有嵌套的中断的优先级进行比较,如果比较结果为高则产生中断抢占请求,否则屏蔽中断抢占请求。这样能够保证高优先级的中断比低优先级中断先得到系统响应,提高了中断响应系统的稳定性和实时性。但是,由于新的中断源优先级需要和所有嵌套的中断的优先级比较,这样会引入比较大的硬件开销,增加硬件成本。

【发明内容】

[0003]为了克服已有中断控制方式为了实现稳定性和实时性引入比较大的硬件开销、硬件成本较高的不足,本发明提供了一种以较小的硬件代价支持中断优先级的动态变化、稳定性和实时性良好的支持多层中断优先级控制的矢量中断控制器。
[0004]本发明解决其技术问题所采用的技术方案是:
[0005]—种支持多层中断优先级控制的矢量中断控制器,包括:
[0006]中断接收单元,用于负责采样多个中断源请求;
[0007]第一层中断优先级单元,包含每个中断源请求的优先级;
[0008]第二层中断优先级单元,包含一个当前正在处理的中断源请求的优先级;
[0009]第一层中断优先级仲裁器,用于完成各个有效中断源请求的优先级比较,输出优先级最高的中断源请求作为第一中断源请求;
[0010]第二层中断优先级仲裁器,用于比较第一中断源请求的优先级是否高于当前正在处理的中断源请求的优先级,当比较结果为是时,输出该第一中断源请求作为有效的第二中断源请求,否则第二中断源请求无效;
[0011]所述中断接收单元和第一层中断优先级单元之间连接第一层中断优先级仲裁器;所述第一层中断优先级仲裁器和第二层中断优先级单元之间连接第二层中断优先级仲裁器;
[0012]所述矢量中断控制器还包括:
[0013]第三层中断优先级单元,包含一个中断阈值优先级;
[0014]第三层中断优先级仲裁器,用于比较第二中断源请求的优先级是否高于中断阈值优先级,当比较结果为是时,输出该第二中断源请求作为有效的中断抢占请求,否则中断抢占请求无效;
[0015]中断处理单元,用于负责处理中断抢占请求,并利用被响应的中断抢占请求的优先级更新第二层优先级单元中当前正在处理的中断源请求的优先级;
[0016]所述第二层中断优先级仲裁器和第三层中断优先级单元连接第三层中断优先级仲裁器,所述第三层中断优先级仲裁器和第二层中断优先级单元连接中断处理单元。
[0017]进一步,所述第三层中断优先级单元还包含一个中断阈值有效位;其中,中断阈值优先级的级数和各个中断源请求的优先级级数保持一致。
[0018]再进一步,所述第三层中断优先级单元中,所述中断阈值有效位和中断阈值优先级接入第三层中断优先级仲裁器;当中断阈值有效位置高时,第二中断源请求的优先级需要高于该中断阈值优先级才产生有效的中断抢占请求;当中断阈值有效位为低时,第二中断源请求不需要和中断阈值优先级进行比较,直接作为中断抢占请求输出。
[0019]或者是:所述第三层中断优先级单元还包含一个中断阈值有效位和中断向量号,其中,中断阈值优先级的级数和中断源请求的优先级级数保持一致。
[0020]更进一步,所述第三层中断优先级单元中,所述中断阈值有效位和中断阈值优先级接入第三层中断优先级仲裁器;当中断阈值有效位置高时,第二中断源请求的优先级需要高于该中断阈值优先级才产生有效的中断抢占请求;当中断阈值有效位为低时,第二中断源请求不需要和中断阈值优先级进行比较,直接作为中断抢占请求输出。
[0021]当第三层中断优先级单元检测到中断处理单元完成该中断向量号对应的中断源请求处理完毕时,自动清除中断阈值有效位。
[0022]所述第一层中断优先级单元、第二层中断优先级单元和第三层中断优先级单元中的优先级拥有相同的优先级级数。
[0023]本发明的技术构思为:通过设置中断优先级阈值来解决中断优先级动态改变存在的潜在冋题。
[0024]本发明的有益效果主要表现在:通过较小的硬件代价支持中断优先级的动态改变,保证了中断响应系统的稳定性和实时性。
【附图说明】
[0025]图1是是中断优先级阈值寄存器的一个示例图。
[0026]图2是中断优先级阈值寄存器的另一种示例图。
[0027]图3是多层优先级控制的矢量中断控制器示意图。
[0028]图4是矢量中断控制器处理多层中断流程图。
【具体实施方式】
[0029]下面结合附图对本发明作进一步描述。
[0030]参照图1?图4,一种支持多层中断优先级控制的矢量中断控制器,包括:
[0031]中断接收单元,用于负责采样多个中断源请求;
[0032]第一层中断优先级单元,包含每个中断源请求的优先级;
[0033]第二层中断优先级单元,包含一个当前正在处理的中断源请求的优先级;
[0034]第三层中断优先级单元,包含一个中断阈值优先级;
[0035]第一层中断优先级仲裁器,连接中断接收单元和第一层中断优先级单元,用于完成各个有效中断源请求的优先级比较,输出优先级最高的中断源请求作为第一中断源请求;
[0036]第二层中断优先级仲裁器,连接第一层中断优先级仲裁器和第二层中断优先级单元,用于比较第一中断源请求的优先级是否高于当前正在处理的中断源请求的优先级,当比较结果为是时,输出该第一中断源请求作为有效的第二中断源请求,否则第二中断源请求无效;
[0037]第三层中断优先级仲裁器,连接第二层中断优先级仲裁器和第三层中断优先级单元,用于比较第二中断源请求的优先级是否高于中断阈值优先级,当比较结果为是时,输出该第二中断源请求作为有效的中断抢占请求,否则中断抢占请求无效;
[0038]中断处理单元,连接第三层中断优先级仲裁器和第二层中断优先级单元,用于负责处理中断抢占请求,并利用被响应的中断抢占请求的优先级更新第二层优先级单元中当前正在处理的中断源请求的优先级。其中,第三层中断优先级单元由中断优先级阈值寄存器组成。
[0039]图1是中断优先级阈值寄存器的一个示例图,其中,EN—指定中断优先级阈值有效位,低电平表示中断抢占不需要优先级高于阈值,高电平表示中断抢占需要优先级高于阈值;PR10THRESH0LD—指定中断抢占的优先级阈值,最多可由8b i t组成,对应最多可拥有28种优先级,优先级号越小,优先级越高,如果优先级号相同,则中断源号越小,优先级越高。
[0040]图2是中断优先级阈值寄存器的另一种示例图,其中,EN—指定中断优先级阈值有效位,低电平表示中断抢占不需要优先级高于阈值,高电平表示中断抢占需要优先级高于阈值;PR10THRESH0LD—指定中断抢占的优先级阈值,最多可由8bit组成,对应最多可拥有28种优先级,优先级号越小,优先级越高,如果优先级号相同,则中断源号越小,优先级越高;VECTTHRESHOLD—指示优先级阈值对应的中断向量号。当矢量中断控制器检测到VECTTHRESHOLD对应的中断服务程序执行完毕时,会硬件清除中断优先级阈值有效位。
[0041]图3说明矢量中断控制器10,在一个实施例中,矢量中断控制器10包含中断接收单元20,负责采样多个外部中断源请求68;第一层中断优先级单元22,包含每个中断源请求的优先级;第二层中断优先级单元28,包含一个当前正在处理的中断源请求的优先级;第三层中断优先级单元32,包含一个中断阈值优先级;第一层中断优先级仲裁器24,连接中断接收单元20和第一层中断优先级单元22,完成各个中断源请求的优先级比较,仲裁出优先级最高的中断源请求作为第一中断源请求60;第二层中断优先级仲裁器26,连接第一层中断优先级仲裁器24和第二层中断优先级单元28,完成第一层中断优先级仲裁器输出的第一中断源请求60的优先级和当前正在处理的中断源请求优先级的比较,当比较结果为高时输出有效的第二中断源请求62,否则第二中断源请求62无效;第三层中断优先级仲裁器30,连接第二层中断优先级仲裁器24和第三层中断优先级单元32,完成第二层中断优先级仲裁器产生的第二中断源请求62的优先级和中断阈值优先级的比较,当比较结果为高则中断抢占请求64信号有效,否则屏蔽该中断抢占请求64;中断处理单元34,连接第二层中断优先级单元28和第三层中断优先级仲裁器30,负责处理中断抢占请求64,并利用被响应的中断抢占请求64的优先级作为第二层优先级单元中当前正在处理的中断源请求的优先级。第三层中断优先级单元32—种由中断阈值有效位,中断阈值优先级组成,另一种由中断阈值有效位,中断阈值优先级和中断向量号构成。当设置中断向量号时,中断处理单元34完成该中断向量号对应的中断处理后,向第三层中断优先级单元32传输处理完成的中断向量号,一旦匹配中第三层中断优先级单元32的中断阈值向量号,会清除中断阈值有效位。中断处理单元34利用被响应的中断抢占请求的优先级70作为第二层优先级单元32中当前正在处理的中断源请求的优先级。
[0042]图4是矢量中断控制器处理多层中断的流程示意图。在一个实施例中,采样中断源请求40,并进行中断优先级比较42。当存在多级中断嵌套时,由于条件变化需要改变被嵌套中断的优先级,例如低优先级中断响应时间达到最大限制,中断源之间存在共享资源等。这时候就存在中断优先级动态改变而影响中断嵌套系统的稳定性和实时性问题,解决的方案就是引入中断优先级阈值。首先,需要判断中断阈值位是否有效44,如果无效则根据中断优先级比较42直接进行中断抢占46,如果中断阈值位有效,则进一步判断是否高于中断阈值优先级48并进行中断抢占46。中断抢占46结束后进行中断处理50,并根据中断优先级阈值寄存器是否设置中断阈值向量号52,如果设置有效,则在矢量中断控制器检测到中断向量号对应的中断服务程序执行完毕后,硬件清除中断阈值有效位54。
【主权项】
1.一种支持多层中断优先级控制的矢量中断控制器,包括: 中断接收单元,用于负责采样多个中断源请求; 第一层中断优先级单元,包含每个中断源请求的优先级; 第二层中断优先级单元,包含一个当前正在处理的中断源请求的优先级; 第一层中断优先级仲裁器,用于完成各个有效中断源请求的优先级比较,输出优先级最高的中断源请求作为第一中断源请求; 第二层中断优先级仲裁器,用于比较第一中断源请求的优先级是否高于当前正在处理的中断源请求的优先级,当比较结果为是时,输出该第一中断源请求作为有效的第二中断源请求,否则第二中断源请求无效; 所述中断接收单元和第一层中断优先级单元之间连接第一层中断优先级仲裁器;所述第一层中断优先级仲裁器和第二层中断优先级单元之间连接第二层中断优先级仲裁器;其特征在于:所述矢量中断控制器还包括: 第三层中断优先级单元,包含一个中断阈值优先级; 第三层中断优先级仲裁器,用于比较第二中断源请求的优先级是否高于中断阈值优先级,当比较结果为是时,输出该第二中断源请求作为有效的中断抢占请求,否则中断抢占请求无效; 中断处理单元,用于负责处理中断抢占请求,并利用被响应的中断抢占请求的优先级更新第二层优先级单元中当前正在处理的中断源请求的优先级; 所述第二层中断优先级仲裁器和第三层中断优先级单元连接第三层中断优先级仲裁器,所述第三层中断优先级仲裁器和第二层中断优先级单元连接中断处理单元。2.如权利要求1所述的一种支持多层优先级控制的矢量中断控制器,其特征在于:所述第三层中断优先级单元还包含一个中断阈值有效位;其中,中断阈值优先级的级数和各个中断源请求的优先级级数保持一致。3.如权利要求2所述的一种支持多层中断优先级控制的矢量中断控制器,其特征在于:所述第三层中断优先级单元中,所述中断阈值有效位和中断阈值优先级接入第三层中断优先级仲裁器;当中断阈值有效位置高时,第二中断源请求的优先级需要高于该中断阈值优先级才产生有效的中断抢占请求;当中断阈值有效位为低时,第二中断源请求不需要和中断阈值优先级进行比较,直接作为中断抢占请求输出。4.如权利要求1所述的一种支持多层中断优先级控制的矢量中断控制器,其特征在于:所述第三层中断优先级单元还包含一个中断阈值有效位和中断向量号,其中,中断阈值优先级的级数和中断源请求的优先级级数保持一致。5.如权利要求4所述的一种支持多层中断优先级控制的矢量中断控制器,其特征在于:所述第三层中断优先级单元中,所述中断阈值有效位和中断阈值优先级接入第三层中断优先级仲裁器;当中断阈值有效位置高时,第二中断源请求的优先级需要高于该中断阈值优先级才产生有效的中断抢占请求;当中断阈值有效位为低时,第二中断源请求不需要和中断阈值优先级进行比较,直接作为中断抢占请求输出。6.如权利要求5所述的一种支持多层中断优先级控制的矢量中断控制器,其特征在于:当第三层中断优先级单元检测到中断处理单元完成该中断向量号对应的中断源请求处理完毕时,自动清除中断阈值有效位。7.如权利要求1?6之一所述的一种支持多层优先级控制的矢量中断控制器,其特征在于:所述第一层中断优先级单元、第二层中断优先级单元和第三层中断优先级单元中的优先级拥有相同的优先级级数。
【文档编号】G06F13/26GK105824768SQ201610145170
【公开日】2016年8月3日
【申请日】2016年3月15日
【发明人】郭宇波, 瞿仙淼, 毛晗
【申请人】杭州中天微系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1