一种处理器中断实时处理电路的实现方法
阅读说明:本技术 一种处理器中断实时处理电路的实现方法 (Method for realizing real-time processing circuit of processor interrupt ) 是由 杨旭光 林森 伍世聪 于 2019-10-15 设计创作,主要内容包括:本发明是一种处理器中断实时处理电路的实现方法,可用于处理器中断机制的快速响应实现以及支持中断响应机制模式的可配置性。该发明包括一种特定的程序地址产生器,一套处理器流水线暂停控制机制。该发明不仅电路实现简单、面积小,而且能够进一步提升处理器的性能。(The invention relates to a method for realizing a real-time processing circuit of processor interrupt, which can be used for realizing the quick response of a processor interrupt mechanism and supporting the configurability of an interrupt response mechanism mode. The invention includes a specific program address generator, a set of processor pipeline pause control mechanism. The invention not only has simple circuit realization and small area, but also can further improve the performance of the processor.)
技术领域
本发明属于计算机硬件、处理器设计、处理器的中断处理领域,数字集成电路设计领域,具体涉及一种处理器中断实时处理电路及设计实现方法。
背景技术
专利US5768599A描述了一种针对嵌入式操作系统的中断管理机制,涉及到一种中断信息存储单元和开关中断的管理机制,解决系统调用与中断响应之间的延迟问题。专利US4930068A发明了一种中断处理器,涉及到一种中断执行单元的不同模式的处理机制。专利CN102426538B发明了一种中断响应的装置和方法,具体涉及到一种可编程中断处理模块,与CPU一同构成了多个中断处理器的机制,属于多核处理中断的优化问题。专利KR20170161217描述了一种优化的中断处理机制,允许部分指令在备份寄存器之前就得到执行,从而提升效率。
以上发明都没有涉及到中断处理模式本身的灵活性。
ARM公司对于中断分为向量和非响亮中断,对应有向量和非向量的中断处理模式。非向量中断处理模式既先经过中断解析程序,判断中断源并查出中断服务程序入口地址,最后进行跳转;向量中断处理模式既根据预先设定好的中断向量表,直接跳转中断服务程序,而中断向量表使用硬件寄存器来存储,这部分寄存器无法省略,并限制了所能支持的中断向量表规模。
ARM公司对于中断“咬尾”现象有概念描述。中断“咬尾”现象的英文名称也未见。它指的是前一次中断的退出和下一次中断的触发紧密衔接的特殊情况。在这种情况下,处理器不需要再对上下文进行保护和恢复,将节省相应的数据处理时间和功耗,提升处理器子系统的性能。但目前没有相关的专利或任何其他文档描述,没有具体设计说明。
发明内容
本发明提供一种处理器中断实时处理电路的实现方法,包括处理器中的关键元部件的设计改变,以及新的电路功能的设计原理和实现方法。
在过往的中断机制中,与操作系统的优化相结合的硬件设计优化,虽然非常适合专用的嵌入式应用场景,但通用性受限。而通用的中断处理机制在效率、能耗方面比不上专用的优化设计。本发明要解决的问题包括:多种中断处理机制的灵活性问题,硬件设计在效率、能耗和面积的折中实现问题。
为实现上述目的,本发明实施例结合软件可重配的硬件设计理念,提供了一种处理器中断实时处理电路装置,发明内容包括:
一种可配置的中断响应的高效率执行机制,结合特定寄存器窗设计,可以支持部分中断响应程序的代码先执行,而无需等待上下文保护的完成;
一种带有寄存器窗的一般寄存器组,结合特定的流水线控制器,可以支持快速中断响应;
一种中断入口地址以及程序取指令的地址生成器电路,可以支持可配置的各种中断处理模式下的指令地址生成。
本发明的优点在于:
1、实现了软件可重配的中断响应模式
2、提高了中断响应速度和效率
3、简化了硬件与软件的耦合性,降低软件开发复杂度
4、更适合在低成本嵌入式ASIC芯片上实现
附图说明
图1为一种通用处理器结构图;
图2为本发明所述的中断入口地址的特定算法结构及设计方法图;
图3为本发明所述的一种中断处理优化方法流程图;
图4为本发明一种循环处理中断响应机制的实施例的软件过程图;
图5为本发明所述流水暂停控制电路的一个实施例
附图标记说明
具体实施方式
下面通过附图和实施例,对本发明进一步详细描述。
图1为本发明一种通用处理器结构图,该通用处理器装置包括:
程序地址产生器,在处理器取指令的阶段中,用于生成取指令的地址;
流水线控制器,在处理器运行中进行特定的判断和控制,避免各种对硬件资源的冲突情况;
外部中断控制器以及内核中断控制机制;
处理器中特定的特殊寄存器,对中断处理模式进行初始化控制;
处理器中的一般寄存器组,以及其中特定的寄存器窗。
如图1,处理器中的流水线分为不同的流水级,在如图1的实施例中,流水级包括:取指令、译码、执行、写回与提交等等。在流水线的工段之间,有流水线寄存器,在时钟的统一控制下形成流水线模式的运作。流水线寄存器包括数据输入、数据输出、时钟输入、复位控制输入以及其他输入输出信号。在本发明的一个实施例中,增加一个特定的寄存器使能输入信号,功能包括:当使能有效时,寄存器在时钟的管理下正常寄存数据输入,延迟一拍时钟后进行数据输出,为正常的流水级功能;当使能设置为无效时,寄存器将保持住上一时钟寄存的输出信号,当前时钟周期内流水级功能暂停,直到寄存器使能信号重新变回有效为止。在其他实施例中,该寄存器使能信号也会实现为功能近似的电路结构,并作为寄存器元件库中寄存器单元的一个输入信号。
所有流水线寄存器的使能信号,其控制都来自流水线控制器装置。如图1的实施例中,在取指令级后的流水线寄存器又归为执行操作前寄存器,在写回级之前的流水线寄存器又归为执行操作后寄存器。在不同流水级的级寄存器都有对应的特定的寄存器使能控制信号,称为流水线暂停信号。在如图1实施例中,有对应指令地址寄存器的取指前暂停信号,有对应执行操作前寄存器的执行前暂停信号,还有对应执行操作后寄存器的写回前暂停信号。
处理器的外部中断控制器可以同时支持多个外部中断,但每个时间段能被当前处理器进行处理的中断只有1个。中断控制器通过与流水控制器之间的中断处理握手信息信号进行交互。在本发明中,流水控制器得到当前要处理的中断时,进行以下判断和控制:
当采取用一般寄存器窗来快速切换的方法作为对上下文的保护方式时,可以使能流水线进行执行跳转,并继续取回中断服务程序的第一条指令,而不必等待上下文保护的完成时间。此时,指令的预译码以及译码单元都会随时监视,如果中断服务程序的指令不需要写一般寄存器,则可以不断流水执行;否则,监视机制将实时的通知流水控制器。流水控制器在接到指令译码监视机制的信号,则发现当前执行的指令需要写一般寄存器,此时如果寄存器窗的切换尚未完成,那么流水线控制器将通过写回前暂停信号,将正在执行流水级的寄存器暂停一段时间,直到寄存器窗切换完成再继续恢复执行。如图3所示为上述一种中断处理优化方法流程图。
如图5所示,上述写回前暂停信号实际上会通过简单的硬件“或”逻辑而影响到所有在执行流水级之前阶段的各个流水级的暂停控制信号,从而实际起到暂停所有必要的流水线阶段的功能,保证流水线整体正确运行。
当采取用上述带有其他寄存器窗的一般寄存器组时,软件的中断服务程序流程中将省略对上下文保护、恢复的软件代码,节省硬件存储资源,也提高了运行效率。
当采取不带有其他寄存器窗的一般寄存器组时,软件的中断服务程序流程中需要有软件编码的对上下文进行保护、恢复操作。根据上下文需要保护的数据规模等等因素,需要花费一定的系统时间来完成这些操作。主程序因中断而跳转到对应的处理程序,就会发生这样的操作和等待完成的时间。当上一次中断退出与下一次中断的执行衔接紧密的时候,就发生了中断的“咬尾”现象。该现象的判断准则为两个必要条件需同时满足,既在上一次中断退出后,是否发生过一般寄存器的改变,以及是否发生过对暂时用于保护现场用的内存空间的改写。
在中断“咬尾”现象中,上一次中断的“恢复上下文”步骤和下一次中断的“保护上下文”步骤都是可以忽略的,但在此前一般性的设计中,如图4左侧的循环处理中断响应机制中,无法做这样的优化。图4右侧是本发明所采用的一种循环处理中断响应机制的实施例的软件过程图。如图4右侧图所示,在此前一般响应过程中增加了两个判断环节,是通过利用流水线控制器与外部中断控制器之间的握手信息信号进行的。第一个环节判断是否与上一个中断响应过程发生了“咬尾”现象;第二个环节判断是否将发生与下一次中断响应的“咬尾”。当“咬尾”现象发生的时候,硬件会自动执行跳转,跳过可以忽略软件代码指令,而直接执行后面的指令。跳转地址由本发明提供的地址生成器来提供。
图2是本发明所述的一种地址生成电路,结合特定的处理器特殊寄存器设计,支持多种中断处理模式,以及支持本发明所述的跳转地址生成办法。
所述跳转地址生成办法:初始化阶段在特殊寄存器中设置上下文保护、恢复代码指针偏移寄存器;当第一环节判断跳转发生时,选择中断起始地址寄存器与偏移相加,产生的跳转地址将省略掉对上下文进行保护的指令代码空间;当第二环节判断跳转发生时,选择当前寄存的指令地址与偏移相加,产生的跳转地址将省略掉对上下文进行恢复的指令代码空间。
本发明所述的一种快速中断向量地址计算办法为,如图2所示中:初始化阶段再特殊寄存器中配置中断地址起始寄存器、中断地址间隔寄存器和模式控制寄存器;当外部中断控制器就当前应响应中断,与流水线控制器通过握手信息进行交互时,也将当前所发生中断的索引信息告知地址产生器,在一个实施例当中,索引信息采取的是正整数顺序编码;硬件电路将中断索引与中断地址间隔寄存器的值相乘,得到新的偏移地址,再加到中断起始地址寄存器值上,从而得到对应中断的向量地址。该发明方法不再受到特殊寄存器资源的约束,理论上可以支持任意大的中断向量表。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
- 上一篇:一种医用注射器针头装配设备
- 下一篇:一种指令流水线的预译码系统及方法