The invention discloses a method for processing an interrupt and line controller, the interrupt processing method comprises the following steps: (1) to receive an interrupt request, the kernel, and obtain the interrupt vector; (2), the kernel determines whether the current state allows the interrupt, if allowed, the fetch unit used to interrupt vector interrupt service program for finger; (3), the kernel executes the interrupt service program of the first instruction, and using the first logo, logo at the same time, the tail of the current instruction pipeline on the kernel normal execution, the tail instruction before the current flowing water line at the core of the interrupt service program of the first directive; (4), return the return address stored in the register in accordance with the interrupt return. The interrupt processing method of the invention can not flush the pipeline in response to interruption, and the instructions that have been taken out, transmitted, decoded and executed can continue to be executed, thus avoiding repeated operation of the instructions.
【技术实现步骤摘要】
一种中断处理方法及流水线控制器
本专利技术属于微处理器设计
,具体地说,是涉及一种中断处理方法及流水线控制器。
技术介绍
在微处理器中,中断(Interrupt)是一种重要的通信、控制方法之一。产生中断后,处理器核将暂时停止当前处理的程序,转而去响应中断请求,在完成中断服务程序之后,返回继续执行被中断的程序。中断按产生原因可分为软件中断和硬件中断。软件中断也称为例外或异常(Exception),由指令的执行状态决定,通常在指令的不同流水级可能出现不同的例外,例如在指令译码阶段发现指令非法、在Load/Store指令执行阶段发现TLB缺失、在除法指令执行时发现除数是0、在计算指令执行完毕后发现溢出,或者处理器提供软件中断/陷阱指令,提供一种类似系统调用的功能。不同例外可能在不同的流水级产生或被发现,但是其共同点是由指令产生。硬件中断是指由处理器核之外的设备在特定情况下,请求内核处理相关事务,比如在DMA完成数据搬运之后可通过中断通知内核DMA事务的结束、内核配置外设错误导致出现错误请求内核处理并重新配置,或者一些通用的中断,可配置处理器在中断产生时,运行特定的程序。中断具有不同的处理方式,通常有精确软件中断与非精确软件中断的区别。精确软件中断需要满足以下两个条件:第一,中断返回地址对应的指令之前的指令完全执行完毕,且对处理器状态进行了修改;第二,中断返回地址对应的指令及其之后的指令对处理器没有进行修改。而不满足上述两个条件的处理方式称之为非精确软件中断。一般情况下,大部分中断要求精确软件中断,只有极少数非精确软件中断中断,或者在某些处理器中没有非精确软 ...
【技术保护点】
一种中断处理方法,其特征在于,包括以下步骤:(1)、内核接收中断请求,并获取中断向量;(2)、内核判断当前状态是否允许中断,若允许,取指单元使用中断向量对中断服务程序进行取指;(3)、内核执行中断服务程序的首条指令,并使用首条指令标识进行标识,同时,内核当前流水线上的尾部指令正常执行,所述尾部指令为内核当前流水线上位于所述中断服务程序中的首条指令之前的指令;内核执行指令过程中,当执行至该指令的最后一级时,将位于该指令之后的指令的地址进行保存,所述位于该指令之后的指令为程序若不受中断影响,该指令执行完成之后,下一条应该执行完成的指令;若内核执行的指令为中断服务程序的首条指令,当执行至该指令的最后一级时,将执行中断服务程序首条指令之前的指令时所保存的地址作为中断返回地址记录在中断返回寄存器中;(4)、中断服务程序中的所有指令执行完毕后,按照中断返回寄存器中保存的返回地址进行返回。
【技术特征摘要】
1.一种中断处理方法,其特征在于,包括以下步骤:(1)、内核接收中断请求,并获取中断向量;(2)、内核判断当前状态是否允许中断,若允许,取指单元使用中断向量对中断服务程序进行取指;(3)、内核执行中断服务程序的首条指令,并使用首条指令标识进行标识,同时,内核当前流水线上的尾部指令正常执行,所述尾部指令为内核当前流水线上位于所述中断服务程序中的首条指令之前的指令;内核执行指令过程中,当执行至该指令的最后一级时,将位于该指令之后的指令的地址进行保存,所述位于该指令之后的指令为程序若不受中断影响,该指令执行完成之后,下一条应该执行完成的指令;若内核执行的指令为中断服务程序的首条指令,当执行至该指令的最后一级时,将执行中断服务程序首条指令之前的指令时所保存的地址作为中断返回地址记录在中断返回寄存器中;(4)、中断服务程序中的所有指令执行完毕后,按照中断返回寄存器中保存的返回地址进行返回。2.根据权利要求1所述的中断处理方法,其特征在于,步骤(3)之前还包括判断中断源的类型的步骤,包括硬件中断和软件中断,若步骤(1)中所接收的中断为硬件中断,则按照步骤(3)-步骤(4)执行。3.根据权利要求2所述的中断处理方法,其特征在于,若步骤(1)中所接收的中断为软件中断,则进一步判断软件中断属于非精确软件中断还是精确软件中断,若为非精确软件中断,则按照步骤(3)-步骤(4)执行,若为精确软件中断,则步骤(2)之前还包括冲刷掉内核当前流水线上发生精确软件中断指令之后的所有指令的步骤,发生精确软件中断指令执行至最后一级时,决定如何保存地址:若该精确软件中断需要重新执行该指令,则保存该指令的地址;否则,按照步骤(3)-步骤(4)执行。4.根据权利要求1-3中任一项所述的中断处理方法,其特征在于,步骤(3)中执行所述尾部指令时,若...
【专利技术属性】
技术研发人员:周沈刚,李任伟,
申请(专利权)人:青岛朗思信息科技有限公司,
类型:发明
国别省市:山东,37
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。