一种中断响应方法及系统的制作方法_2

文档序号:9432363阅读:来源:国知局
断服务程序)执行。如果未命中,则去中断向量哈希表(也可称为哈希中断向量表)中继续查找,直到查找到中断向量,然后执行中断号所对应的中断服务程序入口地址(中断服务例程)。
[0033]在一个实施例中,中断响应方法的执行过程:①操作系统初始化时构造中断向量cache表和中断向量哈希表。其中中断向量cache表中填入用户设定的几个常执行的中断向量,如时钟中断,网卡中断等。②启动中断向量cache表的维护任务,监控中断向量执行次数位。③Cpu接收到中断请求,跳转到中断控制器服务例程中执行。④中断控制器服务例程,获取中断号,即那个设备发的中断请求。⑤中断控制器服务例程,根据中断号,查找中断向量cache表,命中,中断向量执行次数位加1,执行第7步。⑥中断控制器服务例程,在中断向量cache表中未命中,贝Ij通过hash (key)=中断号% N (N为用户自定义数值),来查找中断向量哈希表,命中,中断向量执行次数位加I,执行第7步。⑦清除中断状态寄存器中的中断状态,为下次中断到来清理环境。⑧根据中断向量中断服务程序入口地址,跳转掉相应中断服务程序中执行。
[0034]本发明提供一种中断响应系统。在一个实施例中,如图3所示,所述中断响应系统I包括:中断向量构造维护模块11、中断控制服务模块12以及中断服务跳转模块13。其中:
[0035]中断向量构造维护模块11用于构造中断向量cache表和中断向量哈希表,中断向量cache表和中断向量哈希表都由中断向量组成,所述中断向量包括中断号、中断服务程序入口地址。具体地,中断向量cache表和中断向量哈希表的记录都由中断向量组成,每个中断向量包括中断号、中断服务程序入口地址字段。在一个实施例中,由于中断向量中可用的资源比较少,本发明采用中断号作为资源来计算hash的key值。中断号由于是由小到大连续排列的,所以仅用中断号%N(N为用户根据需要自定义数值)来存储中断向量即可满足均匀分布。即中断向量哈希表使用hash (key)=中断号% N构造,N为设定的自然数。构造中断向量cash表,表大小为M项(M为用户根据需要自定义数值)。在一个实施例中,所述中断向量还包括执行次数;所述中断向量构造维护模块11还用于:当该中断向量命中时,所述中断向量的执行次数加I ;所述中断向量维护模块还用于中断向量cache表定期更新:当所述中断向量cache表中执行次数最少的中断向量的执行次数小于中断向量哈希表中执行次数最多的中断向量的执行次数时,将所述中断向量cache表中执行次数最少的中断向量替换成中断向量哈希表中执行次数最多的中断向量;将所有的中断向量的执行次数清零。在一个实施例中,中断向量构造维护模块11每隔L时间(L的时长根据系统以及用户需要确定)启动一次,找出中断向量cash表中哪个中断向量在一个启动周期(即L时间)中执行次数最少,再找出中断向量哈希表中哪个中断向量在这个启动周期中执行次数最多(获取L时间内中断向量cache表执行次数最小的中断向量次数,记为A ;中断向量哈希表中执行次数最多的中断向量次数,记为B),然后比较这两个值,如果中断向量哈希表中的数值大于cache表中的数值(B>A),则删除掉cache表中的这个中断向量,并替换成哈希表中的这个中断向量;如果中断向量哈希表中的数值不大于cache表中的数值(B〈 =A),则不修改中断向量cache表。最后,清空所有两表中的中断向量的执行次数位,进入下一个L时间的计数周期。
[0036]中断控制服务模块12用于接收中断信号,并从中断状态寄存器中获取所述中断信号对应的中断号;在中断向量cache表中查找所述中断号。
[0037]中断服务跳转模块13用于当在中断向量cache表中找到所述中断号时,跳转到所述中断号所对应的中断服务程序入口地址执行。在一个实施例中,中断控制服务模块12还用于当在中断向量cache表中未找到所述中断号时,在中断向量哈希表中查找到所述中断号;中断服务跳转模块13还用于在中断向量哈希表中找到所述中断号时,跳转到所述中断号所对应的中断服务程序入口地址执行。中断控制服务模块13还用于:当查找到所述中断号时,清除中断状态寄存器中的中断状态。具体地,当在中断向量cache表或中断向量哈希表中找到所述中断号时,清除中断状态寄存器中的中断状态。
[0038]在一个实施例中,中断控制器在得到CPU中断输入源发送的中断信号后,就会跳转到中断控制服务模块12中执行。中断控制服务模块12会去读取中断状态寄存器,获取到哪个设备发出中断请求,即中断号。接下来,中断控制服务模块12会先查找使用频度高的中断向量构造维护模块11构造和维护的中断向量cache表,命中,则直接跳转到中断号所对应的中断服务程序入口地址(设备中断服务程序)执行。如果未命中,则去中断向量构造维护模块11构造和维护的中断向量哈希表((也可称为哈希中断向量表))中继续查找,直到查找到中断向量,然后中断服务跳转模块13执行中断号所对应的中断服务程序入口地址(中断服务例程)。
[0039]综上所述,本发明的中断响应方法及系统通过优化中断服务程序,缩短查找中断服务程序的时间,从而提高整个中断服务系统的运行效率。本发明就是针对多路中断复用的系统,采用新的设计方案,通过对中断控制器服务程序中,中断向量的查找方式的优化,提高中断查找命中的速度,缩短查找中断服务程序的时间,使整个中断服务系统的运行效率都得以很大的提高,进而提升系统的稳定性与流畅性,提高用户体验。尤其对于有很多中断源的嵌入式系统,效果尤为突出。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
[0040]上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
【主权项】
1.一种中断响应方法,其特征在于,所述中断响应方法包括: 构造中断向量cache表和中断向量哈希表,中断向量cache表和中断向量哈希表都由中断向量组成,所述中断向量包括中断号、中断服务程序入口地址; 中断控制器接收到中断信号,并从中断状态寄存器中获取所述中断信号对应的中断号; 在中断向量cache表中查找所述中断号;当在中断向量cache表中找到所述中断号时,跳转到所述中断号所对应的中断服务程序入口地址执行。2.根据权利要求1所述的中断响应方法,其特征在于:所述中断响应方法还包括:当在中断向量cache表中未找到所述中断号后,在中断向量哈希表中查找到所述中断号时,跳转到所述中断号所对应的中断服务程序入口地址执行。3.根据权利要求1或2所述的中断响应方法,其特征在于:所述中断响应方法还包括:清除中断状态寄存器中的中断状态。4.根据权利要求1所述的中断响应方法,其特征在于:所述中断向量还包括执行次数;所述中断响应方法还包括:当该中断向量命中时,所述中断向量的执行次数加I ;所述中断响应方法还包括:中断向量cache表定期更新:当所述中断向量cache表中执行次数最少的中断向量的执行次数小于中断向量哈希表中执行次数最多的中断向量的执行次数时,将所述中断向量cache表中执行次数最少的中断向量替换成中断向量哈希表中执行次数最多的中断向量;将所有的中断向量的执行次数清零。5.根据权利要求1所述的中断响应方法,其特征在于:所述中断向量哈希表使用hash (key)=中断号% N构造,N为设定的自然数。6.一种中断响应系统,其特征在于:所述中断响应系统包括: 中断向量构造维护模块,用于构造中断向量cache表和中断向量哈希表,中断向量cache表和中断向量哈希表都由中断向量组成,所述中断向量包括中断号、中断服务程序入口地址; 中断控制服务模块,用于接收中断信号,并从中断状态寄存器中获取所述中断信号对应的中断号;在中断向量cache表中查找所述中断号; 中断服务跳转模块,用于当在中断向量cache表中找到所述中断号时,跳转到所述中断号所对应的中断服务程序入口地址执行。7.根据权利要求6所述的中断响应系统,其特征在于:中断控制服务模块还用于当在中断向量cache表中未找到所述中断号时,在中断向量哈希表中查找到所述中断号;中断服务跳转模块,还用于在中断向量哈希表中找到所述中断号时,跳转到所述中断号所对应的中断服务程序入口地址执行。8.根据权利要求6或7所述的中断响应系统,其特征在于:中断控制服务模块还用于:当查找到所述中断号时,清除中断状态寄存器中的中断状态。9.根据权利要求6所述的中断响应系统,其特征在于:所述中断向量还包括执行次数;所述中断向量构造维护模块还用于:当该中断向量命中时,所述中断向量的执行次数加I ;所述中断向量维护模块还用于中断向量cache表定期更新:当所述中断向量cache表中执行次数最少的中断向量的执行次数小于中断向量哈希表中执行次数最多的中断向量的执行次数时,将所述中断向量cache表中执行次数最少的中断向量替换成中断向量哈希表中执行次数最多的中断向量;将所有的中断向量的执行次数清零。10.根据权利要求6所述的中断响应系统,其特征在于:所述中断向量哈希表使用hash (key)=中断号% N构造,N为设定的自然数。
【专利摘要】本发明提供一种中断响应方法及系统。中断响应方法包括:构造中断向量cache表和中断向量哈希表,中断向量cache表和中断向量哈希表都由中断向量组成,所述中断向量包括中断号、中断服务程序入口地址;中断控制器接收到中断信号,并从中断状态寄存器中获取中断信号对应的中断号;在中断向量cache表中查找所述中断号;当在中断向量cache表中找到所述中断号时,跳转到所述中断号所对应的中断服务程序入口地址执行。当在中断向量cache表中未找到所述中断号时,在中断向量哈希表中查找到所述中断号,跳转到所述中断号所对应的中断服务程序入口地址执行。本发明的技术方案能够优化中断向量的查找方式,提高中断服务系统效率。
【IPC分类】G06F9/46, G06F9/50
【公开号】CN105183541
【申请号】CN201510487360
【发明人】陈岩
【申请人】上海斐讯数据通信技术有限公司
【公开日】2015年12月23日
【申请日】2015年8月10日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1