检测由中断处理引起的异常操作的制作方法与工艺

文档序号:11996315阅读:208来源:国知局
检测由中断处理引起的异常操作的制作方法与工艺
本发明涉及一种多中断系统,并且更具体地涉及检测由多中断系统中的中断处理引起的异常操作。

背景技术:
为了确保嵌入式系统等中的实时性,存在如下系统,该系统被配置为使得在存在优先级比正在处理的中断的优先级(水平)更高的中断请求时,中止正在处理的中断,并且处理更高优先级的中断,而且在完成中断处理之后恢复中止的中断处理。系统是所谓的多中断系统或者用于根据优先级来嵌套中断的系统。也存在如下系统,该系统配备有看门狗定时器(下文称为“WDT”)来作为无论系统是否为多中断系统都用于监视系统在运行的硬件。在嵌入式系统等中,尽管WDT还未超时(到期),系统可能仍然未正常操作。存在各种异常操作原因,并且也存在与中断处理关联的许多异常操作。在多中断系统的情况下,经常使得自动恢复和原因分析变得困难。异常操作的不充分检测的示例是其中WDT由定时器中断(或者由所有中断)(因为在正常系统中有一个WDT)重置的情况。在这一情况下,WDT仅能确认CPU(和周围H/W)正在运行。换而言之,WDT确认外围电路发出中断请求并且CPU接受请求。就这一点而言,未确认是否正在执行系统预计的操作。公开号为62-175840的专利申请公开了一种用于在执行具有最高级别(最高执行优先级级别)的处理程序的间隔中根据级别执行多个处理程序的数据处理系统。在这一系统中,提供多个WDT——这些WDT具有根据处理程序的级别而不同、并且在完成对对应处理程序的执行之后重置的溢出值——以基于任何一个WDT的溢出来检测在数据处理系统中出现故障。公开号为10-275097的专利申请公开了一种用于根据级别按照优先级顺序执行多个处理程序的数据处理系统。在这一系统中,与各多个处理程序个别对应的多个WDT被布置用于基于这些多个WDT的溢出来检测出现数据处理系统的挂起。引用列表专利文献[专利文献1]公开号为62-175840(1987)的日本专利申请[专利文献2]公开号为10-275097(1998)的日本专利申请

技术实现要素:
本发明要解决的问题在专利文献1中的数据处理系统假设定时器启动执行最高级处理程序,并且不支持在比最高级别更低的级别之间的中断处理或者在向一个级别指派多个程序时的中断处理。另外,没有关于启动WDT的定时的公开内容。在专利文献2中的数据处理系统中,由于未并行启动多个WDT,所以不能并行处理(管理)优先级不同的多个中断。因此,本发明的目的是启用多中断处理,该多中断处理能够在优先级不同的多个中断并行出现时或者在多个中断在一个级别(优先级)中并行出现时能够检测中断处理之一引起的异常操作。用于解决问题的手段本发明提供一种检测由多中断系统中的中断处理引起的异常操作的方法。该方法包括以下步骤:预备WDT,WDT具有用于每个中断优先级的预定超时值;在确立具有对应优先级的中断请求的时间启动每个WDT;以及在WDT中的至少一个WDT已经超时时,接受具有比与WDT对应的优先级高至少一个或者更多级别的优先级的中断请求,其中在接受中断请求的步骤中向中断优先级之一指派多个中断原因时,向由具有比中断优先级更低的级别的WDT的超时引起的中断请求给予优先级,以检测异常操作已经在具有更低级别优先级的中断处理中出现。在本发明的一个方面中,提供一种用于控制多中断系统中的中断处理的控制器。该控制器包括:多个WDT,每个WDT具有为每个中断优先级提供的预定超时值;中断优先级选择器,用于从设备接收中断请求信号并且根据每个中断请求信号的优先级向对应WDT输出激活信号;以及中断处理电路,其在WDT中的至少一个WDT已经超时时向处理器输出具有比与WDT对应的优先级高至少一个或者更多级别的优先级的中断请求信号。控制器还被配置使得在向中断优先级之一指派多个中断原因时,中断处理电路向由优先级级别比中断优先级更低的WDT的超时引起的中断请求信号给予优先级,以检测异常操作已经在具有更低级别优先级的中断处理中出现。根据本发明及其一个方面,在中断优先级相互相同或者不同的多个中断已经出现时,可以检测异常已经在中断处理中出现于哪个优先级中。另外,根据本发明,由于向优先级级别比在相同优先级中的其它中断原因更低的WDT的超时引起的中断请求给予优先级、即由于在开始中断处理时(在证实未启动更低优先级的中断处理时)检测中断处理异常,所以可以比在常规WDT超时时的检测更多地提高异常检测的准确性(精确性)。附图说明图1是用于描述本发明的检测由中断处理引起的异常操作的方法的流程的图。图2是示出本发明的用于控制中断处理的控制器的配置的图。具体实施方式现在将参照附图描述本发明的一个实施例。图1是用于描述检测由多中断系统中的中断处理引起的异常操作的方法的流程的图。可以用稍后将描述的方式通过以本发明的用于控制中断处理的控制器为例、基本上在硬件中实施这一方法。然而无需赘言,这一方法并未消除在程序(软件)中实施,并且可以相互结合在二者中实施该方法。在步骤S11中,预备多个WDT。每个WDT被配置用于具有用于每个中断优先级(级别)的预定超时值。根据中断优先级和原因来设置预定超时值。这里,中断原因意味着待由CPU处理的内容、比如待处理的程序或者通过I/O的各种输入和输出中的每个输入和输出。一般而言,随着中断优先级增加而将超时值设置为更短。在步骤S12中,在接收中断请求的时间启动具有对其进行中断请求的优先级的WDT。这时,在多个中断原因被指派到中断优先级之一时,在中断原因之中进行第一中断请求时启动对应WDT。在接受具有优先级的中断的时间、即在在处理器在接收对应中断请求之后启动中断处理时(在开始执行中断处置器的时间)重置启动的WDT。在步骤S13中,确定至少一个WDT是否已经超时(到期)。具体而言,确定WDT的计数值是否变得大于或者等于预定超时值(WDT是否溢出)。在这一确定为否时,由于中断请求正在被处理而无妨碍,所以该过程在移向步骤S12之前返回以等待下一中断请求。在步骤S13中的确定为是时,在下一步骤S14中接受具有比已经超时的WDT的优先级高(高级)至少一个或者更多级别的优先级的中断请求。同时启动高级WDT。这时,待选择的优先级不限于比已经超时的WDT的优先级高一个级别的优先级,并且它可以是高两个或者更多级别的优先级。另外,待选择的优先级数目不限于一个,并且可以选择两个或者更多优先级。换而言之,在其中接受中断请求的步骤S14中,可以接受具有比与WDT对应的优先级高至少一个或者更多级别的两个或者更多优先级的中断请求。在步骤S14中,在向中断优先级之一指派多个中断原因时,向具有比中断优先级更低的优先级级别的WDT的超时引起的中断请求给予优先级。例如,即使在具有优先级级别N的中断原因数目为两个或者更多,如果存在具有比优先级级别N低一个级别的优先级级别(N-1)的WDT的超时,则向具有优先级级别(N-1)(视为如同它是新的N级别)、并且进行中断处理的中断请求给予优先级。运用这一机制的原因是在稍后将描述的步骤S16中检测异常操作已经在具有更低优先级级别(在以上示例中为(N-1)级别)的中断处理中出现。在步骤S15中,确定具有在步骤S14中选择为高至少一个级别的优先级的WDT是否已经超时(到期)。如同在步骤S13的情况下那样,通过确定WDT的计数值是否变得大于或者等于预定超时值(WDT是否溢出)来进行具体确定。在步骤S15中的确定为否时、即在中断处理在接受具有在步骤S14中选择为高至少一个级别的优先级的中断请求正在良好进行时,在步骤S16中检测更低优先级的中断的异常。具体而言,如在以上提到的步骤S14中描述的那样,在采用更低级别的WDT的超时引起的中断请求时,检测异常是否已经在超时优先级的中断处理中出现。因此,在本发明中,向由具有更低级别优先级的WDT的超时引起的中断请求给予优先级、即在开始中断处理的时间(在证实将不开始更低优先级的中断处理时)检测中断处理的异常。因此,如将从稍后将描述的每个示例变得清楚的那样,可以比在常规WDT超时时的检测更多地提高异常检测的准确性(精确性)。在步骤S15中的确定为是时,在步骤S17中确定与优先级最高的中断对应的WDT是否已经超时(到期)。如同在步骤S13的情况下那样,通过确定WDT的计数值是否变得大于或者等于预定超时值(WDT是否溢出)来进行具体确定。在这一确定为否时,该过程返回到步骤S14以在步骤S15中接受具有比超时的WDT的优先级高(高级)至少一个或者更多级别的优先级的中断请求。同时启动高级WDT。在步骤S17中的确定为是时,在步骤S18中重置系统。作为重置系统的结果,检测中断处理的异常。接着参照图2,将描述本发明的用于控制中断处理的控制器。图2是示出控制器100的配置作为一个实施例的图。配置控制器100作为多中断系统或者外部控制器的一部分。在图2中,示出具有三个中断优先级(级别L1、L2和L3)的配置作为示例,但是这仅为示例。在任意优先级的数目为四个或者更多时,可以增加将在以下描述的相应部件的数目以扩展配置。在图2中,控制器100包括优先级选择器11、12和13、优先级线L1、L2和L3、WDT21、22和23以及中断处理电路31。优先级选择器11、12和13的输出分别连接到优先级线L1、L2和L3。优先级选择器11、12和13从相应设备(未示出)接收中断请求信号R1、R2和R3,并且根据每个中断请求信号的优先级向对应优先级线L1、L2和L3输出相应请求信号。更具体而言,优先级选择器11、12和13根据在中断请求信号R1、R2和R3中的每个中断请求信号中包含的中断原因而向预设优先级分发每个请求信号。这一请求信号也用作用于WDT21、22和23中的每个WDT的激活信号。注意优先级选择器数目不限于三个,并且它可以是大于或者等于两个的任何数目。WDT21是与优先级L1对应的WDT,并且其输入连接到优先级线L1而输出连接到优先级L2。WDT21具有预定超时值T1。如已经在图1的步骤S11中描述的那样,根据中断优先级和原因设置预定超时值。相似地,WDT22和23分别是与优先级L2和L3对应的WDT,并且其输入分别连接到优先级线L2和L3。WDT22的输出连接到优先级线L3。以随后将描述的方式输出WDT23的输出作为用于重置系统的信号。WDT22和23分别具有预定超时值T2和T3。在图2的示例中,由于优先级随着L1<L2<L3增加,所以超时值随着T1>T2>T3相反地变小。每个WDT在向CPU发送对应中断请求并且开始中断处理时由来自CPU或者分离重置电路(未示出)的重置信号RS1重置。在WDT之中,在具有最高中断优先级的WDT本身已经超时时,朝着在CPU中并入的重置电路或者外部重置电路(未示出)输出用于重置系统的信号。在图2的示例中,在最高级别WDT23已经超时时,输出系统重置信号RS2。作为重置系统的结果,检测中断处理的异常。中断处理电路31接收从优先级线L1、L2和L3按照优先级分发的中断请求信号RL1、RL2和RL3,并且朝着CPU选择性地发送中断请求信号。这里,选择性地发送意味着在输出中断请求信号时阻止输出具有比对应优先级更少或者相等的优先级级别的任何其它中断请求信号。例如在输出具有优先级级别(N-1)的中断请求信号时,除了大于或者等于更高优先级级别N的中断请求信号之外,阻止输出具有比优先级级别(N-1)更少或者相等的优先级的其它中断请求信号。在至少一个WDT已经超时时,中断处理电路31向处理器输出具有比与WDT对应的优先级高至少一个或者更多级别的优先级的中断请求信号。例如在WDT21在图2中已经超时时,朝着CPU选择性地发送来自比优先级高一个级别的优先级线L2的请求信号RL2。这时,除了具有优先级L2的请求信号RL2之外,可以选择和发送具有比该优先级高两个级别的优先级L3的请求信号RL3。另外,也可以依次选择和发送两个请求信号RL2和RL3。在向中断优先级之一指派多个中断原因时,中断处理电路31被配置用于向具有比中断优先级更低的级别的WDT的超时引起的中断请求信号给予优先级。例如即使在图2中有具有优先级级别L2的多个中断原因(例如R1和R3)时,如果有具有比级别L2低一个级别的优先级级别L1的WDT21的超时,则仍然向具有优先级级别L1的中断请求RL1(视为如同它是L2级别请求RL2)给予优先级并且进行中断处理。运用这一机制的原因是检测异常操作已经在具有更低优先级级别(在以上示例中为级别L1)的中断处理中出现。接着,以下将描述本发明的方法和控制器进行的中断处理异常检测的示例作为示例。<在具有优先级级别N的中断处理不正确、因此未清除中断原因(异常操作)、所以具有优先级级别N的中断请求继续时>(1)不能无限地接受具有优先级级别(N-1)的中断请求。因此,具有优先级级别(N-1)的WDT超时以产生具有更高优先级级别N的中断请求。接受具有优先级级别N的这一中断请求。这时,由于如以上已经提到的那样相对于中断的多个原因(包括用于异常操作的中断请求)向与超时的具有更低优先级级别的WDT对应的中断处理给予最高优先级,所以检测到中断处理的异常。即使优先级级别的确定不正确,仍然将以如在随后将提到的示例2的(1)中的相同方式处理中断处理以检测异常。(2)在具有(N-2)或者更少优先级级别的中断请求是开始时,由于具有相应优先级级别的WDT超时,使得具有更高优先级级别的WDT将依次启动并且超时,所以以如在以上提到的(1)中的相同方式检测到异常(这同样应当在以下示例中适用)[示例2]<在具有优先级级别N的中断处理陷入无穷循环中(异常操作)时>(1)不能无限地接受具有优先级级别(N-1)的中断请求。因此,具有优先级级别(N-1)的WDT超时以产生具有更高优先级级别N的中断请求。也不能无限地接受具有优先级级别N的中断请求。因此,具有优先级级别N的WDT超时以产生具有更高优先级级别(N+1)的中断请求。由于接受具有优先级级别(N+1)的这一中断请求,所以检测到中断处理的异常。(2)即使在具有优先级级别N的(新)中断请求是开始时,由于具有优先级级别N的WDT超时,所以以如在以上提到的(1)中的相同方式检测到异常。[示例3]<在尽管正常处理每个个体中断处理,但是由于与CPU的处理能力比较有大量中断请求而未执行具有低优先级级别N的中断处理时(异常操作)>由于未接收具有优先级级别N的中断请求,所以WDT超时,并且产生具有优先级级别(N+1)的中断请求。此后,这一示例如在以上示例中的相同方式操作以检测到异常。[示例4]<在中断处理期间将所有中断禁用长时间段时(异常操作)>具有任何优先级级别的WDT超时以依次产生具有更高优先级级别的中断请求。最终,最高WDT超时以重置系统以便检测异常。即使在重置系统之前允许中断时,与在当时最高的WDT对应的中断仍然检测到异常。已经参照附图描述本发明的实施例。然而本发明不限于实施例。可以基于本领域技术人员的知识用被添加各种改进、纠正和修改的形式实现本发明而未脱离本发明的目的标号说明11,12,13优先级选择器21,22,23WDT31中断处理电路100控制器
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1