处理中断优先级的电路系统

文档序号:1577236 发布日期:2020-01-31 浏览:32次 >En<

阅读说明:本技术 处理中断优先级的电路系统 (Circuit system for processing interrupt priority ) 是由 费晓行 费善健 于 2018-07-20 设计创作,主要内容包括:一种处理中断优先级的电路系统,电路系统如一片上系统(SoC),在其中运行的中断优先级处理方法中,片上系统中的处理器在执行工作时,当接收到访问一临界区的高优先级中断时,系统设计高优先级中断为恒开,但禁止访问临界区,如此,即设置一低优先级中断,以访问并处理高优先级中断所要访问的数据,当返回低优先级中断后,处理器将判断是否唤醒之前高优先级中断未处理完的工作,若尚有工作,即由处理器以一任务继续处理高优先级中断未处理完的工作。所披露的电路系统可以在保持有关中断的特性外,还保持系统处理重要任务的实时性。(A circuit system for handling interrupt priority, such as system on chip (SoC), in which the interrupt priority handling method is run, when a processor in the system on chip receives a high priority interrupt to access critical area, the system designs the high priority interrupt as constant, but prohibits access to the critical area, such that low priority interrupt is set to access and handle data to be accessed by the high priority interrupt, and when the low priority interrupt is returned, the processor will determine whether to wake up the previous high priority interrupt pending work, and if there is still work, the processor will continue to handle the high priority interrupt pending work with task.)

处理中断优先级的电路系统

技术领域

一种中断处理的电路系统,特别是一种为了要达成有些高优先级中断在处理过程中始终打开,并保持有关中断特性,所提出的具有中断优先级机制的片上系统。

背景技术

片上系统(System on Chip,SoC)为一种整合多种功能的系统的单一晶片,并广泛被晶片设计者采用,设计片上系统时,设置有多个子系统(subsystems),或是子系统的子系统,子系统通过系统总线(bus)彼此通信。

因为片上系统中的子系统彼此分享共同的数据,传统上,子系统彼此之间运用了触发(trigger)中断(interrupt)的方式进行通信,作为控制数据存取的机制。所述中断是由系统内中央处理器(CPU)的中断控制器(interrupt controller)所处理的,中断控制器用以连接各种子系统和中央处理器,当有一个子系统产生中断后,需经过中断控制器的转发,信号才能到达中央处理器。

运作时,由子系统产生中断信号给片上系统中央处理器,由中央处理器的中断控制器接收到中断信号后,判断是由哪个子系统触发的中断,接着处理中断处理程序(Interrupt Service Routine,ISR),让子系统可以在不冲突的情况下共享数据。

图1显示现有片上系统的电路方框图。

一个设于电子系统中的片上系统包括有中央处理器110,其中设有管理中断信号的中断控制器115,其他共用资源示意列出有存储器111与传感器112,彼此通过总线10传递信息。片上系统中设有多个子系统101~105,也可能有子系统的子系统,子系统101~105是在片上系统中的一些模块,在需要共用资源时产生中断信号,中断控制器115接收某个子系统中断信号时,传播到其他子系统,达到中断管理的目的。

而多数处理实时信息的过程中,现有技术大多采用关中断(disabled interrupt)的方法来实现临界区的设置,当一个程序正在处理器上执行其临界区代码时,要防止其他程序再进入临界区访问,最简单直接的方法是禁止中断发生,称之为关中断(disableinterrupt)。

但是这种方法在禁止低优先级中断的同时,也关闭了高优先级中断,在很大程度上影响了系统处理的实时性。

发明内容

本发明提出一种处理中断优先级的电路系统,如一种在片上系统(SoC)的电路系统中,发明目的是利用片上系统中断优先级的特性,将高优先级中断设为恒开,但此高优先级中断的处理函数禁止访问临界区,而低优先级中断处理函数则允许访问临界区,通过此设定,一方面可继续使用传统关中断的方法实现临界区的设置,另外一方面可以保持系统处理的实时性。

根据一实施例,所述电路系统运行一中断优先级处理方法,并可应用在一实时操作系统中,当处理器正在执行一工作时,接收一访问临界区的高优先级中断,此时,因为高优先级中断禁止访问临界区,而通过一旗标状态或位元状态设置一低优先级中断访问并处理高优先级中断所要访问的临界区的数据。接着,当返回低优先级中断后,处理器将判断是否唤醒高优先级中断未处理完的工作,若尚有工作未完成,由处理器继续处理高优先级中断未处理完的工作。

在一实施例中,所述处理器原本执行的工作为一无须中断处理的普通任务,亦可为低优先级中断的任务。

根据电路系统实施例,电路系统可为一片上系统,其中包括一处理器以及一或多个子系统,处理器用以执行上述中断优先级处理方法。

为了能更进一步了解本发明为达成既定目的所采取的技术、方法及效果,请参阅以下有关本发明的详细说明、图式,相信本发明的目的、特征与特点,当可由此得以深入且具体的了解,然而所附图式仅提供参考与说明用,并非用来对本发明加以限制。

附图说明

图1显示现有片上系统的电路方框图;

图2显示为中断优先级处理方法的实施例流程图;

图3所示范例是在系统处理一普通任务的时候发生了高优先级中断所执行的中断优先级处理流程;

图4所示范例显示片上系统在处理低优先级中断的时候发生了高优先级中断的中断优先级处理流程。

具体实施方式

本发明提出一种处理中断优先级(Interrupt Priority)的电路系统,所披露的技术的目的在于利用片上系统(SoC)具有中断优先级的特性,一方面继续使用关中断(disabled interrupt)的方法来实现临界区(Critical Section)的设置,另外一方面可以使得中央处理器(CPU)高优先级中断永远被打开,例如是涉及安全性的处理程序、紧急处置,或是重要线程,这类优先级中断处理的任务往往不得被其他中断干扰,因此维持恒开可以保持系统处理重要任务的实时性。

所述中断优先级(Interrupt Priority Level)是指一种中断状态(interruptstate),包括高优先级中断与低优先级中断,可以写在中断控制器(InterruptController)的暂存器(register)中,或是利用软件管理。

然而,在通过中断信息来决定子系统如何使用系统资源的机制下,仍有需求是要求中央处理器可以对高优先级中断在处理程序中始终打开,例如,当片上系统应用在一种实时操作系统(Real-Time Operating System,RTOS)时,为了要保持系统处理的实时性,如实时处理安全性相关的程序,或是需要立即回应的程序,如此,有些高优先级中断需要一直是打开的状态。

进一步,大多数的实时操作系统是用关中断的方法来实现临界区,所谓临界区,就是指那些有可能被中断和内核(内部线程)同时访问的代码区域。举例来说,当有用户通过片上系统访问临界区数据,形成一个线程正在中央处理器上执行某个临界区代码,由于数据无法同时被多个子系统的线程(thread)要求访问,如果可以,各个正在执行的线程所取得的数据会有不一致或是错误的问题,因此,一般是通过关中断的方式防止其他线程访问这个临界区。不过缺点是,关中断的方法将会关掉低优先级中断,同时也将高优先级中断遮蔽(masked)了。如此,一旦发生了高优先级中断反而得不到实时处理,所以在实时性上会有所损失。

因此,根据本发明所提出的处理中断优先级的电路系统的实施例,以遮蔽(mask)低优先级中断的方法来实现临界区的处理(关中断),使得实时操作系统不会影响原先的处理流程,还能有效地提高实时操作系统的实时性。

片上系统(SoC)包括一处理器以及一或多个子系统,处理器用以执行中断优先级处理方法。其中,中央处理器内部中断控制器或是系统外部中断控制器会负责处理各子系统(如片上系统上的模块)触发的中断信号,每个子系统皆可经由中断控制器向中央处理机发出请求使用,中央处理器依优先级给予适当安排提供服务。当其中之一子系统触发中断时,中断控制器会负责和其他子系统沟通,并将相对应的中断信号和中断需求信号发给中央处理器,当中断控制器接收到中断信号时,会转发给中央处理器,中断控制器也将执行相关中断处理程序。

举例来说,在一个片上系统中,中央处理器支持16个中断数目,其中0至7为低优先级中断,优先级一致,且只能被高优先级中断打断;16个中断内,8至15为高优先级中断,优先级一致。

在本实施例中,设定一系统处理中断程序的规则,包括将关中断(disableinterrupt)方法修改为遮蔽(mask)低优先级中断,所有开中断(enable interrupt)方法修改为去遮蔽(unmask)低优先级中断;而高优先级中断则设定恒开。其中,低优先级中断处理函数允许访问临界区,高优先级中断在恒开的状态下能处理任何实时任务,但禁止其处理函数访问临界区。并且,高优先级中断可以通过和低优先级中断通信的方法完成消息的传递,如设置中断旗标(flag),进而在低优先级中断返回时唤醒任务,让任务继续完成高优先级中断剩下的工作。

根据以上规则,本发明提出的中断优先级处理方法一实施例的流程如

图2所示。在开始方法前,系统执行一前置操作,为将高优先级中断设为一直开的中断(恒开),目的是能够处理实时的任务,但高优先级中断的处理函数禁止访问临界区;另有低优先级中断处理函数设为允许访问临界区。

流程一开始,在步骤S201中,片上系统内的中央处理器在处理一工作,工作为一无须中断处理的普通任务,如通过中央处理器中某一线程执行的任务A(可参考图3),但也可能是处理低优先级中断的一般任务。此时,如步骤S203,有高优先级中断发生,片上系统中的中央处理器或其中的中断控制器接收到此高优先级中断请求,若高优先级中断的工作为访问一临界区,通常处理较一般更为紧急的事件,但由于高优先级中断被设定禁止访问临界区,中央处理器接获此中断请求后,如步骤S205,与低优先级中断通信(传递信息给低优先级中断),例如设置一个旗标状态(flag)或一位元状态(0或1),藉以设置(去遮蔽)低优先级中断以访问并处理前述高优先级中断所要访问的临界区的数据。

由于低优先级中断设定为允许访问临界区,临界区中的数据也可被一般任务访问,当处理器通过中断旗标通知,片上系统内线程即去遮蔽低优先级中断,如步骤S207,让低优先级中断的处理函数允许访问临界区。

接着,当返回低优先级中断后,即遮蔽低优先级中断,如步骤S209,处理器判断是否唤醒高优先级中断未处理完的工作,若判断无须继续未完成工作,则如步骤S211,终止程序,系统可以回到原本工作(如图3所示的任务A);反之,若有高优先级中断未处理完的工作,如步骤S213,则唤醒一任务(如图3所示的任务B),由处理器继续处理高优先级中断未处理完的工作。

以下以图示方式表示本发明所揭示的中断优先级处理流程的实施例。

[实施例一]

图3所示范例系在系统处理一普通任务的时候发生了高优先级中断所执行的中断优先级处理流程。

当系统处理器在执行一般任务时,如任务A(步骤S301),接着发生一高优先级中断,这类中断往往是处理较为实时或紧急的任务,系统实时处理高优先级中断(步骤S303)。

例如,高优先级中断的工作为访问一临界区,但是系统的规则设计是让高优先级中断为恒开,却禁止其处理函数访问临界区,因此,处理器接着通过旗标等方式设置低优先级中断(步骤S305),让系统能处理低优先级中断,例如,让低优先级中断访问并处理高优先级中断所要访问的临界区数据(步骤S307),当由低优先级中断完成访问临界区数据时,并接着检查是否唤醒之前高优先级中断并未完成的任务(任务B)(步骤S309),如果有未完成任务,在低优先级中断返回时唤醒任务B,系统即委派任务B继续完成工作(步骤S311)。

[实施例二]

图4所示范例显示片上系统中的处理器在处理低优先级中断的时候发生了高优先级中断的中断优先级处理流程。

当处理器正在处理低优先级中断的任务时(步骤S401),接收到高优先级中断的信号,即接手处理高优先级中断(步骤S403),之后,处理高优先级中断时,同时通过和低优先级中断通信的方法完成消息的传递(步骤S405),而继续处理低优先级中断的任务(步骤S407),接着检查之前高优先级中断的任务是否完成而判断是否唤醒任务B(步骤S409),如果尚有高优先级中断工作未完成,系统即委派任务B(步骤S411),让任务B继续完成高优先级中断剩下的工作。

根据以上实施例,本发明所揭示的中断优先级处理方法通过重新设置关中断的方法和修改高优先级中断的处理机制,让高优先级中断不能被关闭恒开,以处理实时任务,而通过遮蔽低优先级中断处理一般任务,能继续使用关中断的机制,一方面可以满足原来临界区的处理要求,另一方面也可以有效地提高系统处理的实时性。

综上所述,说明书所披露的中断优先级处理方法以及相关电路系统适用具有优先级中断机制的片上系统(SoC),而用于改进操作系统中中断处理程序,这种高性能中断处理方法可以让高优先级中断在任何情况下都可以立即得到回应,并永远可以被优先处理,也达到实时处理紧急或最重要任务的目的。

惟以上所述仅为本发明的优选可行实施例,非因此即局限本发明的专利范围,故举凡运用本发明说明书及图示内容所示的等效结构变化,均同理包含于本发明的范围内,合予陈明。

符号说明

中央处理器110中断控制器115

存储器111传感器112

总线10子系统101~105

步骤S201~S213中断优先级处理流程

步骤S301~S311中断优先级处理流程范例一

步骤S401~S411中断优先级处理流程范例二。

11页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:直接存储器存取

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!