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

一种中断响应方法及其系统与流程

2022-11-16 08:16:23 来源:中国专利 TAG:
1.本发明涉及中断控制
技术领域
:,具体涉及一种中断响应方法及其系统。
背景技术
::2.通用处理器在处理(handle)中断(interrupt)时会暂停cpu当前的正常执行去执行中断例程(interruptroute),在执行完中断例程后才会返回到正常执行逻辑中去继续执行。通用的操作系统会在中断处理流程中关闭中断使能开关从而保护系统临界区(不可中断的执行逻辑)并防止中断嵌套从而引发的程序逻辑异常。3.现有的部分中断处理方法仅考虑到了中断到来时刻的顺序,没有考虑中断的优先级程度;另一部分中断处理方法虽然考虑了中断的优先级程度,但创建若干排列单元会造成大量的存储空间的浪费,且排序时间较长,增加中断响应时间,造成cpu执行效率更低。技术实现要素:4.本发明的目的在于提供一种中断响应方法及其系统,以能够在占用极少的存储空间的情况下使处理高优先级中断更加快速。5.本发明解决上述技术问题的技术方案如下:本发明提供一种中断响应方法,所述中断响应方法包括:s1:获取若干中断请求;s2:对若干所述中断请求按照优先级进行贴标签处理,得到中断列表;s3:将所述中断列表中的所有数据按照快速排序规则进行排列,得到中断序列表;s4:根据所述中断序列表,通过第一指针获取位于存储器中的中断例程;s5:根据所述中断序列表和所述中断例程,执行中断响应程序。6.可选择地,所述步骤s2中,所述对若干所述中断请求进行贴标签处理包括:将若干所述中断请求生成中断信号1、中断信号2、……、中断信号n。7.可选择地,所述步骤s3中,所述快速排序规则包括:通过bitmap将排序后的中断放入中断列表中;将中断列表中的存在的中断的数值位标记为1;若不存的中断的数值位则标记为0;使用二进制的数值位来表示中断优先级序号;优先级最高的中断的序列放在中断列表的低位,中断列表低位的数据会被优先读取;将读取结果作为所述中断序列表输出。8.可选择地,所述快速排序规则还包括:每读取一次中断列表中的中断数据,中断序列表重新排序。9.本发明还提供一种基于上述的中断响应方法的中断响应系统,所述中断响应系统包括:中断定向回路,所述中断定向回路用于获取若干中断请求,对若干所述中断请求进行贴标签处理,得到中断列表,并将所述中断列表传输至快速排序模块;快速排序模块,所述快速排序模块用于将所述中断列表中的所有数据按照快速排序规则进行排列,得到中断序列表;执行回路,所述执行回路用于通过第二指针获取所述中断序列表并根据所述中断序列表通过第一指针获取位于存储器中的中断例程;处理器,所述处理器用于根据所述中断序列表和所述中断例程,执行中断响应程序。10.本发明具有以下有益效果:1、在快速响应中断的基础上引入中断优先级的概念,且在中断排序的过程中不需要在中断中进行,在占用极少的存储空间的情况下使处理高优先级中断更加快速;2、本发明可在冯诺依曼计算机体系结构下同样适用,且占用极少的存储空间。附图说明11.图1为本发明中断响应方法的流程图;图2为本发明中断响应的处理框图;图3为bitmap排序方式示意图。具体实施方式12.以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。13.本发明提供一种中断响应方法,参考图1和图2所示,所述中断响应方法包括:s1:获取若干中断请求;s2:对若干所述中断请求按照优先级进行贴标签处理,得到中断列表;中断定向回路(interruptredirectcircuit)被耦合以接收许多不同的中断请求,在这里显示为中断信号1、中断信号2等,直到中断信号n。并将对应的中断例程存储在存储器(memorycircuit)中。在实际执行过程中,从处理器外部接收这些中断请求,例如外设发出的中断请求。14.s3:将所述中断列表中的所有数据按照快速排序规则进行排列,得到中断序列表;所述快速排序规则包括:通过bitmap将排序后的中断放入中断列表中;将中断列表中的存在的中断的数值位标记为1;若不存的中断的数值位则标记为0;使用二进制的数值位来表示中断优先级序号;优先级最高的中断的序列放在中断列表的低位,中断列表低位的数据会被优先读取;将读取结果作为所述中断序列表输出。15.可选择地,所述快速排序规则还包括:每读取一次中断列表中的中断数据,中断序列表重新排序。16.在实施过程中,将中断定向回路(interruptredirectcircuit)接收到所有的中断信号,使用快速排序(o(1)sort),快速排序(o(1)sort)是基于bitmap将最多256个的硬件中断号序列根据其优先级进行排序。通过bitmap将排序后的中断放入中断列表中,将中断列表中的存在的中断的数值位标记为1,若不存的中断的数值位则标记为0,使用二进制的数值位来表示中断优先级序号(例如有优先级分别为{1,2,4,6}的中断在中断列表中,数字越小代表中断优先级越高,使用bitmap的排序方式为图3),然后依次从优先级高的位置输出bitmap的标记位为1的中断实现排序(首位0舍弃)。从图3中可以看出优先级最高的中断的序列放在中断列表(table)的低位(列表中左高右低),在中断列表(table)低位的数据将会被优先读取。执行回路(executionpipeline)根据其优先级读取中断数据。每读取一次中断数据,列表(table)将会重新排序。17.s4:根据所述中断序列表,通过第一指针获取位于存储器中的中断例程;s5:根据所述中断序列表和所述中断例程,执行中断响应程序。18.中断响应程序在处理器中执行。19.本发明还提供一种基于上述的中断响应方法的中断响应系统,所述中断响应系统包括:中断定向回路,所述中断定向回路用于获取若干中断请求,对若干所述中断请求进行贴标签处理,得到中断列表,并将所述中断列表传输至快速排序模块;快速排序模块,所述快速排序模块用于将所述中断列表中的所有数据按照快速排序规则进行排列,得到中断序列表;执行回路,所述执行回路用于通过第二指针获取所述中断序列表并根据所述中断序列表通过第一指针获取位于存储器中的中断例程;处理器,所述处理器用于根据所述中断序列表和所述中断例程,执行中断响应程序。20.使用bitmap来对中断的优先级进行排序,由于bitmap的特性是使用bit来存储数据而不是byte,以达到用极少的存储空间来存储中断序列(例如:在32位操作系统中1byte=8bit,如果每个数字用int存储也就是按byte存储,那就是20亿个int,因而占用的空间约为(2000000000*4/1024/1024/1024)≈7.45g;如果按bit存储,20亿个数就是20亿位,占用空间约为(2000000000/8/1024/1024/1024)≈0.233g),所以需要的存储空间更加的少),因此本发明采用“中断优先级队列(interruptprioritytable)”,中断优先级队列(interruptprioritytable)是“中断循环队列”中使用快速排序以达到减少内存占用和优先级排序。21.以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页12当前第1页12
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献