一种中断处理方法及流水线控制器与流程

文档序号:12718685阅读:来源:国知局

技术特征:

1.一种中断处理方法,其特征在于,包括以下步骤:

(1)、内核接收中断请求,并获取中断向量;

(2)、内核判断当前状态是否允许中断,若允许,取指单元使用中断向量对中断服务程序进行取指;

(3)、内核执行中断服务程序的首条指令,并使用首条指令标识进行标识,同时,内核当前流水线上的尾部指令正常执行,所述尾部指令为内核当前流水线上位于所述中断服务程序中的首条指令之前的指令;

内核执行指令过程中,当执行至该指令的最后一级时,将位于该指令之后的指令的地址进行保存,所述位于该指令之后的指令为程序若不受中断影响,该指令执行完成之后,下一条应该执行完成的指令;

若内核执行的指令为中断服务程序的首条指令,当执行至该指令的最后一级时,将执行中断服务程序首条指令之前的指令时所保存的地址作为中断返回地址记录在中断返回寄存器中;

(4)、中断服务程序中的所有指令执行完毕后,按照中断返回寄存器中保存的返回地址进行返回。

2.根据权利要求1所述的中断处理方法,其特征在于,步骤(3)之前还包括判断中断源的类型的步骤,包括硬件中断和软件中断,若步骤(1)中所接收的中断为硬件中断,则按照步骤(3)-步骤(4)执行。

3.根据权利要求2所述的中断处理方法,其特征在于,若步骤(1)中所接收的中断为软件中断,则进一步判断软件中断属于非精确软件中断还是精确软件中断,若为非精确软件中断,则按照步骤(3)-步骤(4)执行,若为精确软件中断,则步骤(2)之前还包括冲刷掉内核当前流水线上发生精确软件中断指令之后的所有指令的步骤,发生精确软件中断指令执行至最后一级时,决定如何保存地址:若该精确软件中断需要重新执行该指令,则保存该指令的地址;否则,按照步骤(3)-步骤(4)执行。

4.根据权利要求1-3中任一项所述的中断处理方法,其特征在于,步骤(3)中执行所述尾部指令时,若所述尾部指令存在跳转指令,判断所述跳转指令与所述中断请求的优先级,若所述跳转指令的优先级不高于所述中断请求的优先级,向流水线控制器发出低优先级的冲刷流水线控制请求,计算出跳转目标地址并记录,不执行跳转。

5.根据权利要求4所述的中断处理方法,其特征在于,步骤(3)中执行所述尾部指令时,若所述跳转指令的优先级高于所述中断请求的优先级,向流水线控制器发出高优先级的冲刷流水线控制请求,向取指单元给出取指请求,执行所述跳转指令,此时不执行所述中断服务程序,内核判断当前状态修改为不允许中断,返回步骤(1)。

6.根据权利要求5所述的中断处理方法,其特征在于,流水线控制器接收到所述冲刷流水线控制请求时,根据冲刷流水线控制请求的优先级以及中断服务程序的首条指令标识确定每一流水级的控制信号:

当前流水线上存在中断服务程序的首条指令,且需要响应尾部指令给出的低优先级的冲刷流水线控制时,不冲刷中断服务程序所在流水级,中断服务程序所在流水级由中断服务程序指令给出的流水线控制请求控制。

7.一种流水线控制器,基于权利要求6中所述的中断处理方法,其特征在于,包括指令标记单元、第一处理请求单元、第二请求处理单元、控制信号选择单元,

所述指令标记单元用于保存中断服务程序的首条指令标志,将当前流水线上每一流水级的首条指令标志组成指令标记信号传递至所述第二请求处理单元和控制信号选择单元;

所述第一请求处理单元用于接收所有流水级产生的流水线控制请求,处理尾部指令给出的低优先级冲刷流水线控制请求,产生第一控制信号;

所述第二请求处理单元处理由中断服务程序指令给出的流水线控制信号,产生第二控制信号;

所述控制信号选择单元根据所述流水线控制请求和指令标记信号确定每一流水级当前执行的指令为尾部指令还是中断服务程序指令,选择由第一控制信号控制还是由第二控制信号控制。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1