一种异步中断处理方法及中断控制器技术

技术编号:15638963 阅读:292 留言:0更新日期:2017-06-15 20:31
本发明专利技术公开了一种异步中断处理方法及中断控制器,所述中断处理方法包括以下步骤:(11)、内核判断当前状态是否允许中断,若允许,则发出中断向量请求信号;(12)、中断控制器接收到中断向量请求信号,根据当前中断控制器中的状态,作出回应;(13)、若所述内核检测到所述中断控制器发出的中断向量请求反馈信号,则采样中断向量iv,并将中断向量请求信号置为无效;(14)、当中断返回指令执行完毕后,内核向中断控制器发出中断返回握手信号,中断控制器接收到该信号之后,返回握手信号。本发明专利技术的异步中断处理方法采用由内核请求中断控制器的通信方式,并且直接请求中断向量和向内核给出中断向量,极大地加快了异步中断控制器中断的响应速度。

【技术实现步骤摘要】
一种异步中断处理方法及中断控制器
本专利技术属于通信
,具体地说,是涉及一种异步中断处理方法及中断控制器。
技术介绍
在微处理器中,中断是一种重要的通信、控制方法之一。对处理器核而言,其本身不产生中断,所有中断都来自于处理器核外,外设通过中断的形式请求处理器核执行对应的程序,处理器核将暂时停止当前处理的程序,转而去响应中断请求,在完成中断服务程序之后,返回继续执行被中断的程序。因为中断来自核外甚至是处理器外部,所以一般情况下将中断控制器放置于核外。而且因为中断控制器并不需要较高的运行速度,在SoC上,中断控制器往往挂在低速外设总线上,内核与中断控制器之间相隔多个时钟域。在这种情况下,即使内核时钟与中断控制器所用时钟是同源时钟,但也不便于按照同步时钟设计,所以中断控制器与内核之间的部分通信按照异步时钟处理。在某些中断驱动的应用中,要求内核具有较快的中断响应速度。在现有的中断响应机制下,通常按照以下流程进行:中断控制器采样中断源给出的中断申请信号;向处理器核请求中断;处理器核响应中断申请,并获取中断向量,然后开始执行中断服务程序。其中获取中断向量的方式在不同的设计中具有不同的表现方式,在某些设计中,内核会通过SoC总线结构获取中断控制器中的寄存器信息获取中断向量;某些设计中,内核继续通过与中断控制器之间的直接通信,获取中断向量。在现有的技术中,异步设计时中断响应速度较慢。其主要原因在于响应一次中断需要内核与中断控制器之间进行多次异步通信,而异步信号至少需要使用双周期采样同步电路,同步电路可保证异步信号的稳定性,但也大大降低了通信效率。
技术实现思路
本专利技术为了解决现有异步中断响应时间长,通信效率低的技术问题,提出了一种异步中断处理方法,可以解决上述问题。为了解决上述技术问题,本专利技术采用以下技术方案予以实现:一种异步中断处理方法,包括以下步骤:(11)、内核判断当前状态是否允许中断,若允许,则发出中断向量请求信号iv_req;(12)、中断控制器接收到所述中断向量请求信号iv_req,根据当前中断控制器中的状态,作出回应;(13)、若所述内核检测到所述中断控制器发出的中断向量请求反馈信号,则采样中断向量iv,并将中断向量请求信号iv_req置为无效,并根据内核的当前状态确定执行或者不执行该中断;(14)、若步骤(13)中所述内核执行中断,当中断返回指令执行完毕后,内核向中断控制器发出中断返回握手信号rti_req,中断控制器接收到该信号之后,返回握手信号rti_ack。进一步的,步骤(12)中所述中断控制器根据当前中断控制器的状态,作出的回应包括:(121)、若所述中断控制器中存在有效中断请求,则所述中断控制器记录下中断号int_no,并向内核发出中断向量请求反馈信号iv_ack及其中断向量iv;(122)、若所述中断控制器中不存在有效中断请求,保持中断向量请求反馈信号iv_ack为无效。进一步的,步骤(13)中根据内核的当前状态确定执行或者不执行该中断的判断方法为:(131)、内核检测当前状态,如果仍然允许响应中断,则从所述中断向量所指地址中对中断服务程序获取指令并执行;(132)、如果内核不允许响应中断,则不对所述中断向量处理。进一步的,步骤(13)中,中断控制器在所述内核将中断向量请求信号iv_req置为无效后,将中断向量请求反馈信号iv_ack置为无效,内核检测到无效的中断向量请求反馈信号iv_ack之后,返回步骤(11),在再次允许中断或者是允许中断嵌套的情况下,请求下一个中断。进一步的,内核对中断的首条指令执行完毕的同时,向中断控制器发出中断执行握手信号isr_serving_req,中断控制器接收到该中断执行握手信号isr_serving_req之后,返回握手信号isr_serving_ack,同时根据步骤(22)中所记录的中断号int_no进行标记;步骤(14)中返回握手信号rti_ack之后,同时将所述标记清除。进一步的,中断控制器返回握手信号isr_serving_ack之后,根据步骤(121)中所记录的中断号int_no将其所记录的中断申请清除。基于前面任一项所述的异步中断处理方法,本专利技术同时提出了一种中断控制器,包括寄存器组、控制状态机、中断采样接口、内核接口、外设总线接口;所述寄存器组包括中断采样寄存器、中断服务寄存器和中断向量寄存器文件;所述中断采样寄存器用于记录中断源的有效中断请求;所述中断服务寄存器用于记录内核正在处理的中断;所述中断向量寄存器文件用于记录中断向量;所述内核接口包含一对中断向量请求信号接口、中断向量接口、一对中断执行握手信号接口,一对中断返回握手信号接口;所述外设总线接口一端与外设总线连接,一端与所述寄存器组连接,用于读写所述寄存器组;所述中断采样接口一端与中断源连接,一另外端与所述中断采样寄存器连接,用于采样所述中断源的有效中断请求,并保存于所述中断采样寄存器中;所述控制状态机通过内核接口与内核进行握手,以及控制内核在中断响应过程中对中断服务寄存器进行改写。进一步的,所述中断控制器还包括中断屏蔽寄存器,用于屏蔽中断,内核或其他连接在所述外设总线上的主设备通过设置该中断屏蔽寄存器用于屏蔽对应中断的申请。进一步的,所述中断控制器还包括最高优先级有效中断判断单元,用于使用所述中断采样寄存器、中断屏蔽寄存器、中断服务寄存器中的数据给出当前最高优先级的有效中断,未被中断屏蔽寄存器屏蔽的中断中,若中断采样寄存器中存在比当前中断服务寄存器中标记正在处理的中断优先级更高的中断,则给出其中优先级最高的中断,若不存在正在处理的中断,则直接给出中断采样寄存器中有效的最高优先级中断,否则给出无有效中断信号。与现有技术相比,本专利技术的优点和积极效果是:本专利技术的异步中断处理方法,不再采用中断控制器请求内核的通信方式,而是采用由内核请求中断控制器的通信方式,并且直接请求中断向量的方式,这种中断响应方法省去了现有技术中冗长的互相握手操作,当中断出现时,直接向内核给出中断向量,内核在获得向量之后,无需其他操作,即可对中断服务程序进行取指执行。采用本专利技术的中断处理方法,极大地加快了异步中断控制器中断的响应速度,同时,本专利技术还给出了一种使用本专利技术中断处理方法的中断控制器,该中断控制器完全契合本专利技术给出的中断处理方法,且具有简洁、灵活等特点。结合附图阅读本专利技术实施方式的详细描述后,本专利技术的其他特点和优点将变得更加清楚。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术所提出的异步中断处理方法的一种实施例流程图;图2是本专利技术所提出的中断控制器的一种实施例原理方框图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。两个异步的模块之间进行通信,使用握手本文档来自技高网...
一种异步中断处理方法及中断控制器

【技术保护点】
一种异步中断处理方法,其特征在于,包括以下步骤:(11)、内核判断当前状态是否允许中断,若允许,则发出中断向量请求信号iv_req;(12)、中断控制器接收到所述中断向量请求信号iv_req,根据当前中断控制器中的状态,作出回应;(13)、若所述内核检测到所述中断控制器发出的中断向量请求反馈信号,则采样中断向量iv,并将中断向量请求信号iv_req置为无效,并根据内核的当前状态确定执行或者不执行该中断;(14)、若步骤(13)中所述内核执行中断,当中断返回指令执行完毕后,内核向中断控制器发出中断返回握手信号rti_req,中断控制器接收到该信号之后,返回握手信号rti_ack。

【技术特征摘要】
1.一种异步中断处理方法,其特征在于,包括以下步骤:(11)、内核判断当前状态是否允许中断,若允许,则发出中断向量请求信号iv_req;(12)、中断控制器接收到所述中断向量请求信号iv_req,根据当前中断控制器中的状态,作出回应;(13)、若所述内核检测到所述中断控制器发出的中断向量请求反馈信号,则采样中断向量iv,并将中断向量请求信号iv_req置为无效,并根据内核的当前状态确定执行或者不执行该中断;(14)、若步骤(13)中所述内核执行中断,当中断返回指令执行完毕后,内核向中断控制器发出中断返回握手信号rti_req,中断控制器接收到该信号之后,返回握手信号rti_ack。2.根据权利要求1所述的异步中断处理方法,其特征在于,步骤(12)中所述中断控制器根据当前中断控制器的状态,作出的回应包括:(121)、若所述中断控制器中存在有效中断请求,则所述中断控制器记录下中断号int_no,并向内核发出中断向量请求反馈信号iv_ack及其中断向量iv;(122)、若所述中断控制器中不存在有效中断请求,保持中断向量请求反馈信号iv_ack为无效。3.根据权利要求1所述的异步中断处理方法,其特征在于,步骤(13)中根据内核的当前状态确定执行或者不执行该中断的判断方法为:(131)、内核检测当前状态,如果仍然允许响应中断,则从所述中断向量所指地址中对中断服务程序获取指令并执行;(132)、如果内核不允许响应中断,则不对所述中断向量处理。4.根据权利要求3所述的异步中断处理方法,其特征在于,步骤(13)中,中断控制器在所述内核将中断向量请求信号iv_req置为无效后,将中断向量请求反馈信号iv_ack置为无效,内核检测到无效的中断向量请求反馈信号iv_ack之后,返回步骤(11),在再次允许中断或者是允许中断嵌套的情况下,请求下一个中断。5.根据权利要求3所述的异步中断处理方法,其特征在于,步骤(131)中,内核对中断的首条指令执行完毕的同时,向中断控制器发出中断执行握手信号isr_serving_req,中断控制器接收到该中断执行握手信号isr...

【专利技术属性】
技术研发人员:周沈刚李任伟
申请(专利权)人:青岛朗思信息科技有限公司
类型:发明
国别省市:山东,37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1