一种降低响应延时提高系统效率的中断控制器及控制方法

文档序号:9727266阅读:757来源:国知局
一种降低响应延时提高系统效率的中断控制器及控制方法
【技术领域】
[0001]本发明属于计算机科学领域,具体是一种降低响应延时提高系统效率的中断控制器及控制方法。
【背景技术】
[0002]在现代CPU系统中中断响应方式大同小异,在实时性系统中要求有严苛的中断响应速度,来保证系统的正常运行,目前业界最快的中断响应处理器被ARM Cortex-M系列CPU取得,在理想情况下(没有处理器外部延时)可以做到12个时钟周期,进入中断服务函数(排除末尾连锁tail-chaining模式"6个周期",因为末尾连锁并非关键中断,其可以等到当前中断处理完成,只是缩短了其等待时间)。
[0003]中断响应过程可以划分为现场保护以及CPU程序指针的跳转两个部分,其中第二部分是程序转移必不可少的条件,因此,要提高中断响应速度(进程切换等)就只能通过降低现场保护时间的方向努力。
[0004]现有技术中有两种降低中断响应延时的方法:
a)中天微系统的CK系列CPU中断控制器采用一条较为复杂的指令完成所有的现场保护工作,其目的在于降低多条压栈指令的取指操作所带来的时间开销,与通用的中断控制器相比确实降低了中断响应延时。此外,为实现快速中断响应,CK的处理器提供了CPU内部通用寄存器(GPR)影子寄存器的可配置选项,当CPU配有影子寄存器时,可以实现一个周期完成现场切换,从而极大的提高了中断响应速度。但是,此高速中断不允许嵌套使用,因为影子寄存器只有一组,当更高优先级的中断到来时,此时已没有影子寄存器可用,必须通过普通的压栈操作来实现现场保护。因此,其处理器可以在某个关键中断的处理上具有比ARM更高的响应速度。
[0005]b)在当前的ARM Cortex-M系列系统中,CPU收到中断后由硬件完成通用寄存器的保护工作,硬件压栈。既然是压栈必然是顺序的,在CortexM系列中共需要压入8个寄存器,而这部分时间消耗是ARM 12个CPU周期响应延时的重要组成部分。与中天微系统的中断处理相比虽然其在整体上占优(对于中天微系统的处理器中,使用影子寄存器的中断响应,其响应延时会优于ARM),但仍然存在优化的空间,本发明人认为在实时性严苛的系统中,适当的增加开销来满足系统实时性的需求是很有必要的。。

【发明内容】

[0006]本发明主要目的在于提升处理器的中断响应(进程切换类似)速度。为解决中断响应过程中现场保护所带来的时间开销问题,本发明目的在于设计一个基于硬件自动并行保存(不需要处理器指令支持)现场,支持在多级嵌套的情况下仍然能够高速响应高优先级中断的中断控制器。牺牲一部分硬件开销,将中断响应速度做到极致。其技术方案如下:
一种降低响应延时提高系统效率的中断控制方法,包括如下步骤:
步骤一、当中断控制器接收到外设的中断信号后,根据其寄存器堆中的配置以及记录的当前中断状态,来决定是否将当前的中断信号传送给处理器。若处理器当前正处于异常处理级,且当前中断没有抢占权,该中断将进入等待状态,等待当前中断返回;若当前处理器处在正常执行级,或者当前中断优先级高于正在处理的中断,中断控制器将把当前中断请求以及中断向量号发给处理器;
步骤二、处理器收到中断信号后,自动将堆栈指针(SP)减去9(取决于处理器在异常时需要保存的寄存器数目),并给出进入中断指示信号“core」nt_aCk”,指示处理器即将响应中断,即下一步开始计算异常入口地址;
步骤三、中断控制器检测到“Core_int_aCk”信号后,主动保存当前处理器状态到CPU寄存器缓冲区中。
[0007]与此同时,CPU根据中断控制器提供的向量号,计算异常入口地址。
[0008]进一步的,CPU得到入口异常地址后,开始通过指令总线取指令,开始异常处理。
[0009]进一步的,步骤三中,在中断控制器暂存CPU现场后,根据暂存的堆栈指针(SP)主动将暂存的现场写入主存中,并拉高标志位。
[0010]进一步的,当CPU异常处理完成后查询中断控制器的现场写回标志位,如果该标志位有效,则开始从SP恢复现场。
[0011]—种降低响应延时提高系统效率的中断控制器,包括:
优先级解码器:用于接收外设提供的中断信号(支持边沿和电平中断),以及中断优先级管理用于管理各个中断源之间的优先级;
等待优先级控制器:用于中断等待状态管理,判断当前等待状态中断的先后;
寄存器堆:寄存相关逻辑,控制、指示中断控制器中各个模块的状态;
中断屏蔽逻辑部:根据寄存器堆,以及等待优先级控制器的状态控制中断的屏蔽与开启;
中断信号生成器:用于产生给处理器的中断请求信号;
中断向量生成器:中断向量生成逻辑,提供当前中断请求发生的中断向量号。
[0012]进一步的,还包括:
系统总线从机接口:AMBA总线从机接口,提供给系统主机访问,便于控制中断行为;系统总线主机接口: AMBA总线主机接口,用于将CPU寄存器缓冲区中暂存的处理器现场写入系统主存中,以便中断返回时CHJ可以从主存中恢复现场。
[0013]进一步的,还包括:
CPU寄存器缓冲区:用于保存CPU现场的寄存器堆,其中需要保存的寄存器依CPU不同。
[0014]进一步的,该中断控制器的外部端口信号包括5个部分:(1)中断控制器与各中断源之间的中断信号;(2)中断控制器与处理器之间的中断信号,包括中断指示信号INT,中断向量号VEC;(3)AMBA从机端口信号,用于系统主机对中断控制器的特性配置;(4)中断控制器与处理器之间的寄存器映射以及中断响应握手,现场写回指示信号;(5)AMBA主机端口信号,用于中断控制器将现场写入主存。
[0015]本发明的中断控制器及控制方法可以做到CPU在10个周期以内,甚至更低的中断响应延时。同样,此中断控制器为进程的快速切换提供了新的途径。在多核系统中,通过中断控制器的通用寄存器、写缓冲寄存器可以实现更高效的核间通信。
【附图说明】
[0016]图1是本发明的降低响应延时提高系统效率的中断控制器内部结构示意图;
图2是降低响应延时提高系统效率的中断控制应用流程图。
【具体实施方式】
[0017]下面结合附图对本发明作进一步说明。
[0018]本发明通过在通用中断控制器中添加通用寄存器的影子寄存器堆(CPU寄存器缓冲区),用于自动保存处理器状态,以减少中断响应过程中现场保护的时间开销。为了使中断嵌套发生时,仍然有高速响应的特点,考虑到硬件开销以及嵌套层数的不确定性。本文采用中断控制器主动将缓冲区中的数据写到主存中,并返回写状态。在多级嵌套的情况下,不至于中断控制器中的缓冲区溢出而出现混乱。
[0019]如图1所示,本发明的降低响应延时提高系统效率的中断控制器由9个模块组成,分别为:优先级解码器;等待优先级控制器;寄存器堆;中断屏蔽逻辑部;中断信号生成器;中断向量生成器;系统总线从机接口 ;系统总线主机接口); CPU寄存器缓冲区。
[0020]优先级解码器:用于接收外设提供的中断信号,以及中断优先级管理。
[0021]等待优先级控制器:用于中断等待状态管理。
[0022]寄存器堆:寄存相关逻辑,控制、指示各个模块的状态。
[0023]中断屏蔽逻辑部:根据寄存器堆,以及等待优先级控制器的状态控制中断的屏蔽与开启。
[0024]中断信号生成器:用于产生给
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1