自嵌套中断的制作方法

文档序号:6380702阅读:274来源:国知局
专利名称:自嵌套中断的制作方法
背景技术
可编程微处理器,如数字信号处理器,可以处理象中断和异常这样的事件。中断可以是改变处理器中的正常指令流的事件。异常可以是由软件启动的、在遇到如非法指令或总线错误的错误时所产生的事件。
中断可以嵌套。例如,当还在处理第一中断时可以接收第二中断(例如,一个嵌套中断)。这样,在任何给定时刻,许多中断服务例程可以是活动的。可以使用优先级方案以有效地方式处理多个活动的服务例程。


图1是支持自嵌套中断的系统的方框图。
图2是事件处理程序的方框图。
图3例示了中断优先级配置。
图4例示了在所述系统中的系统配置寄存器(SYSCFG)。
图5-7是描述自嵌套过程的流程图。
具体实施例方式
图1示出系统100,它包括一个处理器中心和多个外部设备106-110。中心105可包括执行单元115和控制单元120。
执行单元115可包括具有用于处理指令的多级执行流水线,。每一级可与其它级同时进行处理,并在每个时钟周期将结果传送给流水线中的下一级。这些指令的结果可在流水线的末端快速连续地形成。
控制单元120可以控制指令和数据流通过执行单元115。例如,在一条指令的处理期间,控制单元120可以指示执行单元的不同组件取出和解码该指令,执行相应的操作,并将结果写回存储器或局部寄存器。
控制单元120可包括事件处理程序125。事件处理程序可以处理象中断和异常这样的事件。中断可以是改变在处理器中的正常指令流的事件。异常可以是软件启动的、当遇到如非法指令或总线错误的错误时所发生的事件。
图2是事件处理程序125的方框图。事件处理程序可处理许多不同类型的、包括系统中断和通用中断的中断。可将通用中断分配给由外部设备106-110所产生的中断。外部设备可包括例如存储器设备、I/O设备、显示屏幕、扬声器、打印机等等。
当外部设备产生中断时,中断锁存寄存器(ILAT)205可将该中断加入由中心所锁存的中断的记录(log)上,但还没有有效地为该中断服务。可以访问事件向量表(EVT)210,为该中断的中断服务程序(ISR)查找适当的向量。ISR可包括用于处理特殊中断的例程,并由一条从中断返回(RTI)的指令结束。
当对应于该中断的事件向量已经进入执行流水线时,在中断等待寄存器(IPEND)中可以置位适当的位,该寄存器能清除对应的ILAT位。IPEND既可跟踪所有等待的中断,又可跟踪那些目前在服务的中断。当已经执行了对应于该中断的ISR时,RTI指令可清除适当的IPEND位。
通用中断可以具有不同的优先级。例如,事件处理程序可以支持十个通用中断,例如,I0-I9,其中I0具有最高优先级而I9具有最低优先级,如图3所示。
事件处理程序可以支持中断的嵌套,在嵌套中一个较高优先级的中断可以优先于低优先级的中断。例如,如果正在为中断I5执行一个ISR而中断I3被记录(log),则可暂停对应I5的ISR而可启动对应I3的ISR。当对应I3的ISR开始执行,可保存指向对应I5的ISR中中断点的返回地址,并当嵌套ISR(对应I3)已经完成时接着恢复至该地址。
事件处理程序125可以支持中断的自嵌套,在自嵌套中的一个中断可以优先于另一个相同优先级的中断。当能够产生中断的外部设备的数量超过系统所支持的通用中断的数量时,这可能有用。可以将多个外部设备映射到相同的中断,例如,外部设备106(A)、外部设备107(B)和外部设备108(C)可以被映射到I3,如图3所示。在I3内外部设备可具有不同的子优先级,例如,外部设备106-108可以分别被赋予优先级0(最高)至2(最低)。自嵌套机制可以确保相等优先级的中断不会被拒绝服务。
要使能自嵌套,软件可在系统配置寄存器(SYSCFG)400中置位自嵌套使能位(SNEN),如图4所示。在系统中,中断地址可以是在偶字节边界上(例如2字节或更长)。因此,一般地一条指令地址的第低位(LSB)为0。在自嵌套模式中,在返回寄存器(RETI)中(例如,RETI
)系统可置位地址的LSB以指示正在进来的中断具有与目前正被服务的中断相同的优先级。在进入中断服务例程时,位RETI
可以自动地置位。位RETI
可以被用作为状态位,以向处理器标志当前的ISR是自嵌套的。
图5-7示出自嵌套过程500的流程图。系统可置位在SYSCFG400中的位SNEN405,使能自嵌套(方框505)。外部设备B可产生具有优先级的中断B(方框图0)。事件处理程序125可接收中断B并开始执行对应中断B的ISR(方框515)。
在对应中断B的ISR进入执行流水线后,事件处理程序125可从外部设备A接收中断(方框520)。事件处理程序125可判断中断A是否具有比中断B更高的优先级(方框525)。如果中断A具有比中断B更高优先级,则事件处理程序125可优先于对应中断B的ISR(方框530)并推迟对应中断B的ISR(方框535)。事件处理程序125可执行对应中断A的ISR(方框540),并且在完成该ISR后(方框545),恢复对应中断B的ISR的执行(方框550)。
如果中断A的优先级不比中断B的优先级高,则事件处理程序125可判断中断B和中断A是否具有相同的优先级(方框560)。如果中断A的优先级比中断B的优先级低,则事件处理程序125可继续执行对应中断B的ISR,并将中断A记录在IPEND寄存器中(方框565)。
如果中断B和中断A具有相同的优先级,则事件处理程序125可判断中断A是否具有比中断B高的子优先级(方框600)。如果不是,则事件处理程序125可继续执行对应中断B的ISR,并将中断A记录在IPEND寄存器中(方框605)。
如果中断A具有比中断B高的子优先级,则事件处理程序125可自嵌套中断A。事件处理程序125可以置位RETI
以指示输入的中断具有与当前正在服务的中断相同的优先级(方框610)。系统可包括动态的IPEND_R掩码,当没有使能自嵌套时该掩码可排除正被服务的中断的中断级别,但当使能自嵌套时则包括相同的中断优先级。
可保存当前在RETI中的返回地址,例如,通过将该地址推入到管理程序堆栈中(方框615)。当正在保存该地址时可以暂停中断,在保存该地址后再重新允许中断(方框625)。事件处理程序125然后可定位对应中断A的ISR的向量并执行该ISR(方框630)。
当对应中断A的ISR完成,可从堆栈中弹出返回地址至RETI(方框635),从RETI被恢复的时刻起直到RTI指令结束执行为止可暂停中断(方框640)。中断的暂停可阻止随后的中断破坏RETI。
当RTI结束执行,可重新允许中断,例如,通过清除全局禁止位,而且程序可跳至返回地址。然后恢复对应中断B的ISR的执行(方框650)。
在可替换的实施例中,具有相同优先级的中断可不具有子优先级,而始终可以自嵌套,例如,输入的中断始终可以取代正在执行的相同优先级的中断。
RTI指令可对RETI
和SNEN的状态敏感。当RETI
和SNEN都被置位时,RTI指令只可清除全局禁止位(方框645)。可是,当禁止自嵌套模式时,RTI可同时清除全局禁止位和对应于当前中断级别的IPEND位。
已经描述了多个实施例。然而,要理解在不脱离本发明的精神和范围下,可以制订不同的修改方案。例如,可跳过或不按顺序执行在流程图中的方框,并仍产生所需要的结果。因此,其它实施例在下面的权利要求书范围之内。
权利要求
1.一种设备,其特征在于,包括运行以处理自嵌套中断的事件处理程序。
2.如权利要求1所述的设备,其特征在于,所述事件处理程序进一步运行,以在响应收到第二中断时,推迟用于处理第一中断的第一中断服务例程的执行,所述第一中断具有一优先级,所述第二中断具有所述相同的优先级。
3.如权利要求2所述的设备,其特征在于,所述事件处理程序进一步运行,以启动用于处理所述第二中断的第二中断服务例程,并当所述第二中断服务例程完成时,恢复所述第一中断服务例程的执行。
4.如权利要求2所述的设备,其特征在于,所述第一中断包含第一通用中断,并且所述第二中断包含第二通用中断。
5.如权利要求4所述的设备,其特征在于,所述第一通用中断和所述第二通用中断共用普通优先级,其中,所述第一通用中断具有第一子优先级,以及其中,所述第二通用中断具有第二子优先级。
6.如权利要求5所述的设备,其特征在于,所述事件处理程序在响应确定所述第二子优先级比所述第一子优先级高时,推迟所述第一中断服务例程的执行。
7.如权利要求2所述的设备,进一步包括运行以产生第一中断的外部设备。
8.一种方法,其特征在于,包括下述步骤执行第一中断服务程序以处理具有优先级的第一中断;接收具有所述相同优先级的第二中断;暂停所述第一中断服务例程的执行;以及执行第二中断服务例程以处理所述第二中断。
9.如权利要求8所述的方法,其特征在于,进一步包括下述步骤在所述第二中断服务例程完成后,恢复所述第一中断服务例程的执行。
10.如权利要求8所述的方法,其特征在于,所述接收所述第二中断的步骤包括接收通用中断。
11.如权利要求8所述的方法,其特征在于,进一步包括下述步骤在外部设备产生所述第二中断。
12.如权利要求8所述的方法,其特征在于,进一步包括下述步骤在所述第二中断的执行期间,接收具有比所述第二中断的优先级高的优先级的第三中断;暂停所述第二中断服务例程的执行;以及执行第三中断服务例程以处理所述第三中断。
13.如权利要求12所述的方法,其特征在于,进一步包括下述步骤在所述第三服务例程完成后,恢复所述第二中断服务例程的执行。
14.如权利要求8所述的方法,其特征在于,进一步包括下述步骤在所述第一中断服务例程的执行期间,接收具有比所述第一中断的优先级低的优先级的第三中断;记录所述第三中断;以及在所述第一中断服务例程完成后,执行第三中断服务例程。
15.一种方法,其特征在于,包括下述步骤执行第一中断服务例程以处理具有普通优先级和第一子优先级的第一中断;接收具有所述相同的普通优先级和第二子优先级的第二中断;比较所述第一子优先级和所述第二子优先级;以及响应优先级比所述第一子优先级高的第二优先级,暂停所述第一中断服务例程的执行;以及执行第二中断服务例程以处理所述第二中断。
16.如权利要求15所述的方法,其特征在于,进一步包括下述步骤在所述第二中断服务例程完成后,恢复所述第一中断服务例程的执行。
17.如权利要求15所述的方法,其特征在于,进一步包括下述步骤响应优先级比所述第二子优先级高的所述第一子优先级,在所述第一中断服务例程完成后,执行所述第二中断服务例程。
18.包括包含机器可执行指令的机器可读介质的物品,所述指令运行以使机器执行下述步骤执行第一中断服务例程以处理具有优先级的第一中断;接收具有所述相同优先级的第二中断;暂停所述第一中断服务例程的执行;以及执行第二中断服务例程以处理所述第二中断。
19.如权利要求18所述的物品,进一步包括指令,运行所述指令以使所述机器执行下述步骤在所述第二中断服务例程完成后,恢复所述第一中断服务例程的执行。
20.如权利要求18所述的物品,其特征在于,所述运行以使所述机器接收所述第二中断的指令,包括运行以使所述机器接收通用中断的指令。
21.如权利要求18所述的物品,进一步包括指令,所述指令运行以使所述机器执行下述步骤在外部设备产生所述第二中断。
22.如权利要求18所述的物品,进一步包括指令,所述指令运行以使所述机器执行下述步骤在所述第二中断服务例程执行期间,接收优先级比所述第二中断的优先级高的第三中断;暂停所述第二中断服务例程的执行;以及执行第三中断服务例程以处理所述第三中断。
23.如权利要求22所述的物品,进一步包括指令,所述指令运行以使所述机器执行下述步骤在所述第三中断服务例程完成后,恢复所述第二中断的执行。
24.如权利要求18所述的物品,进一步包括指令,所述指令运行以使所述机器执行下述步骤在所述第一中断服务例程的执行期间,接收具有比所述第一中断的优先级低的优先级的第三中断;记录所述第三中断;以及在所述第一中断服务例程完成后,执行第三中断服务例程。
25.包括包含机器可执行指令的机器可读介质的物品,所述指令运行以使机器执行下述步骤执行第一中断服务例程以处理具有普通优先级和第一子优先级的的第一中断;接收具有所述相同的普通优先级和第二子优先级的第二中断;比较所述第一子优先级和所述第二子优先级;以及响应优先级比所述第一子优先级高的所述第二子优先级,暂停所述第一中断服务例程的执行;以及执行第二中断服务例程以处理所述第二中断。
26.如权利要求25所述的物品,进一步包括指令,运行所述指令以使所述机器执行下述步骤在所述第二中断服务例程完成后,恢复所述第一中断服务例程的执行。
27.如权利要求25所述的物品,进一步包括指令,运行所述指令以使所述机器执行下述步骤响应优先级比所述第二子优先级高的所述第一子优先级,在所述第一中断服务例程完成后,执行所述第二中断服务例程。
全文摘要
处理器,可支持自嵌套模式,在所述模式中一个中断可以优先于另一个相同优先级的中断。对应中断的中断服务例程(ISR)的执行可以被推迟,直至完成对应随后所收到的相同优先级的中断的ISR。
文档编号G06F9/46GK1495604SQ0315932
公开日2004年5月12日 申请日期2003年9月4日 优先权日2002年9月6日
发明者R·P·辛格, T·托马斯因, C·P·罗斯, J·弗里德曼, M·艾伦, R P 辛格, 硭挂, 罗斯, 锏侣 申请人:英特尔公司, 模拟设备股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1