处理中断请求事件的装置与方法与流程

文档序号:11133722阅读:268来源:国知局
处理中断请求事件的装置与方法与制造工艺

技术领域

本发明涉及一种中断导引机制(interrupt routing scheme),特别涉及一种中断控制器、包含有中断控制器与处理器的装置以及用来处理系统中的中断请求事件的相对应方法。



背景技术:

针对具有多个处理器(也称作微处理器(microprocessor))的系统,为了执行一服务例程(service routine),通常需要对所述多个处理器其中之一发出一中断请求事件(interrupt request event)。当处理器正在执行主程序时接收到一中断请求事件,则处理器会暂时中断执行中的主程序,并且接着执行对应中断输入的中断请求事件所指定的中断服务例程(Interrupt Service Routine,ISR)。在系统中,多个中断输入可能会由多种来源所产生,由于一个处理器无法同时执行对应所述多个中断输入的多个中断服务例程,因此需要提供一中断控制器以接收各种中断输入,并且将所述多个中断输入导引至所述多个处理器的其中之一或多个处理器,然而,当前所发展的中断导引机制无法在所述多个处理器在特定时段中变忙碌或无法使用的严峻情形下达到稳定且更好的效能。



技术实现要素:

因此本发明的目的之一在于公开一种中断控制器、包含所述中断控制器与至少一处理器的装置以及相对应的方法,来解决上述问题并且改善整体系统的效能与稳定度。

依据本发明的实施例,公开一种耦接到多个处理器并用以将至少一中断请求事件导引至所述多个处理器的其中至少一个的中断控制器。中断控制器包含接收电路与控制电路。接收电路是用于接收至少一中断输入,而耦接到接收电路的控制电路是用以基于所接收的中断输入来产生至少一中断请求事件并且将所产生的中断请求事件引导至所述多个处理器的其中至少一个。此外,所述多个处理器包含至少一第一处理器与一第二处理器,而至少所述第一与第二处理器是用以处理中断请求事件。控制电路可被用来撤回或取消已经被送至第一处理器的中断请求事件的设立。

依据本发明的实施例,公开一种耦接于多个处理器并用以将至少一中断请求事件引导至所述多个处理器的其中至少一个的中断控制器。中断控制器包含接收电路与控制电路。接收电路是用于接收至少一中断输入,而耦接到接收电路的控制电路是用以基于所接收的中断输入来产生至少一中断请求事件并且将所产生的中断请求事件引导至所述多个处理器的其中至少一个。此外,所述多个处理器包含至少一第一处理器与一第二处理器,而至少所述第一处理器与第二处理器是用来处理中断请求事件。控制电路是用来依据分别对应于所述多个处理器的加权值来传送中断请求事件至所述多个处理器。

依据本发明的实施例,公开一种耦接于多个处理器并用以将至少一中断请求事件引导至所述多个处理器的其中至少一个的中断控制器。中断控制器包含接收电路与控制电路。接收电路是用于接收至少一中断输入,而耦接到接收电路的控制电路是用以基于所接收的中断输入来产生至少一中断请求事件并且将所产生的中断请求事件引导至所述多个处理器的其中至少一个。此外,所述多个处理器包含至少一第一处理器与一第二处理器,而至少所述第一处理器与第二处理器是用来处理中断请求事件。在传送中断请求事件之前,控制电路是用以通过设立中断预先请求信号连同相同的中断矢量编号来传送预先请求事件至所述多个处理器以查询是否所述多个处理器个别可以接受中断请求事件。

依据本发明的实施例,公开一种耦接于多个处理器并用以将至少一中断请求事件引导至所述多个处理器的其中至少一个的中断控制器。中断控制器包含接收电路与控制电路。接收电路是用于接收至少一中断输入,而耦接到接收电路的控制电路是用以基于所接收的中断输入来产生至少一中断请求事件并且将所产生的中断请求事件引导至所述多个处理器的其中至少一个。此外,所述多个处理器包含至少一第一处理器与一第二处理器,而至少所述第一处理器与第二处理器是用来处理中断请求事件。所述控制电路是结合一串速率控制逻辑来实现,用以产生速率指标值给所述接收电路以动态调整相关中断输入的紧急等级。

依据本发明的实施例,公开一种耦接于多个处理器并用以将至少一中断请求事件引导至所述多个处理器的其中至少一个的中断控制器。中断控制器包含接收电路与控制电路。接收电路是用于接收至少一中断输入,而耦接到接收电路的控制电路是用以基于所接收的中断输入来产生至少一中断请求事件并且将所产生的中断请求事件引导至所述多个处理器的其中至少一个。此外,所述多个处理器包含至少一第一处理器与一第二处理器,而至少所述第一处理器与第二处理器是用以处理中断请求事件。控制电路是用以在一时间点的仲裁时段中,使用分时方法来产生并引导一中断请求事件至包含于所述多个处理器中的一处理器,并且在另一时间点的另一仲裁时段中,产生以及引导另一中断请求事件至包含于所述多个处理器中的另一处理器中。

依据本发明的实施例,公开了一种处理具有多个处理器的系统中的中断请求事件的方法。所述方法包含:接收至少一中断输入;基于所接收的中断输入来产生至少一中断请求事件;将所产生的中断请求事件引导至所述多个处理器的其中至少一个;以及撤回或取消已被传送至第一处理器的中断请求的设立;其中所述多个处理器包含至少所述第一处理器与第二处理器,而至少所述第一处理器与第二处理器是被用于处理中断请求事件。

依据本发明的实施例,公开了一种处理具有多个处理器的系统中的中断请求事件的方法。所述方法包含:接收至少一中断输入;基于所接收的中断输入来产生至少一中断请求事件;将所产生的中断请求事件引导至所述多个处理器的其中至少一个;以及依据分别对应所述多个处理器的加权值来传送中断请求事件至所述多个处理器;其中所述多个处理器包含至少所述第一处理器与第二处理器,而至少所述第一处理器与第二处理器是被用于处理中断请求事件。

依据本发明的实施例,公开了一种处理具有多个处理器的系统中的中断请求事件的方法。所述方法包含:接收至少一中断输入;基于所接收的中断输入来产生至少一中断请求事件;将所产生的中断请求事件引导至所述多个处理器的其中至少一个;以及在传送中断请求事件之前,通过设立用以查询是否所述多个处理器个别都能接受中断请求事件的中断预先请求信号连同相同的中断矢量编号来传送预先请求事件至所述多个处理器;其中所述多个处理器包含至少所述第一处理器与第二处理器,而至少所述第一处理器与第二处理器是被用于处理中断请求事件。

依据本发明的实施例,公开了一种处理具有多个处理器的系统中的中断请求事件的方法。所述方法包含:接收至少一中断输入;基于所接收的中断输入来产生至少一中断请求事件;将所产生的中断请求事件引导至所述多个处理器的其中至少一个;以及动态调整中断请求事件的紧急等级;其中所述多个处理器包含至少所述第一处理器与第二处理器,而至少所述第一处理器与第二处理器是被用于处理中断请求事件。速率指标值是被产生来动态调整相关中断输入的紧急等级。

依据本发明的实施例,公开了一种处理具有多个处理器的系统中的中断请求事件的方法。所述方法包含:接收至少一中断输入;基于所接收的中断输入来产生至少一中断请求事件;将所产生的中断请求事件引导至所述多个处理器的其中至少一个;在一时间点上的仲裁时段内,使用分时方法来产生并导引一中断请求事件至包含于所述多个处理器内的一处理器;以及在另一时间点上的另一仲裁时段内,使用分时方法来产生并导引另一中断请求事件至包含于所述多个处理器内的另一处理器;其中所述多个处理器包含至少所述第一处理器与第二处理器,而至少所述第一处理器与第二处理器是被用于处理中断请求事件。

另外,依据本发明的实施例,公开了一种包含上述的所述多个中断控制器的其中之一,并且被用于处理具有多个处理器的系统中的至少一中断输入的装置。所述装置也可包含多个处理器。

本发明所提出的方法与装置能在处理器于特定时段中变忙碌或无法使用的严峻情形下达到稳定且更好的效能,并且有效地改善整体系统的效能与稳定度。

附图说明

图1绘示依据本发明的实施例的用以处理具有多个处理器的系统中的至少一组中断输入INT(包含多个中断输入int_0、int_1、int_2、…以及int_N的至少其一)的装置的方块图。

图2绘示包含于图1所示的中断控制器与处理器之间的信号接口中不同信号的功能的表格。

图3A绘示依据本发明的第一实施例的处理器接受图1所示的中断控制器所传送的中断请求事件的操作的时序图。

图3B绘示依据本发明的第一实施例的在信号INT_BUSY被重置后,处理器接受图1所示的中断控制器所传送的中断请求事件的操作的时序图。

图3C与图3D分别绘示依据本发明的第一实施例的图1中所示的中断控制器撤回或取消传送至处理器的中断请求事件的操作。

图3E绘示依据本发明的第一实施例的处理器拒绝图1中所示的中断控制器所传送的中断请求事件的撤回或取消的操作。

图4绘示图1所示的中断控制器传送中断预先请求事件连同相同中断矢量编号VN至所述多个处理器,以询问是否所述多个处理器个别可接受所述中断请求事件的操作的时序图。

图5绘示依据本发明的另一实施例的外部耦接到控制电路并包含于中断控制器中的一连串速率控制逻辑的方块图。

其中,附图标记说明如下:

105、505 中断控制器

110A、110B 处理器

115 接收电路

120 控制电路

525 速率控制逻辑

具体实施方式

在说明书及之前的权利要求书当中使用了某些词汇来指称特定的元件。本领域的技术人员应可理解,制造商可能会用不同的名词来称呼同一个元件。本说明书及之前的权利要求书并不以名称的差异来作为区分元件的方式,而是以元件在功能上的差异来作为区分的基准。在通篇说明书及之前的权利要求书当中所提及的「包含」为一开放式的用语,故应解释成「包含但不限定于」。此外,「耦接」一词在此包含任何直接或间接的电连接手段。因此,若文中描述一第一装置耦接于一第二装置,则代表所述第一装置可依直接电连接方式(direct electrical connection)接于所述第二装置,或通过其它装置或连接手段依间接电连接方式(indirect electrical connection)接至所述第二装置。

请参照图1,图1绘示依据本发明的实施例的用以处理具有多个处理器的系统中的至少一组中断输入INT(至少包含中断输入int_0、int_1、int_2、…以及int_N的其一)的装置100的方块图。中断输入int_0、int_1、int_2、…以及int_N是不同电子电路组件或装置所产生的不同的中断来源。在此假设所述多个中断来源可由多个中断矢量(interrupt vector)来表示;当一中断输入(interrupt input)被选择而作为送至处理器的中断请求事件(interrupt request event)时,所述中断输入的相对应的矢量编号(vector number)会通过信号接口被送至处理器,然而,这不是用来对本发明设限。装置100包含中断控制器105与多个处理器(像是110A与110B),并用以执行可扩展多核中断导引机制(scalable multi-core interrupt routing scheme),这代表装置100可以为多个处理器引导中断输入,其中处理器的数目是可扩展的。处理器110A与处理器110B可以是微处理器(或可被当作数据处理引擎(data processing engines))并且可以被设定来处理或服务对应中断控制器105所传送的中断请求事件的中断输入。图1绘示了处理器110A与处理器110B,然而,所绘示的处理器的数目并非对本发明设限。在另一实作范例中,装置100可以只包含一个处理器或包含两个以上的处理器。

中断控制器105包含接收电路115与控制电路120。接收电路115是用于接收中断输入INT,而耦接于接收电路115的控制电路120则是用以基于所接收的中断输入INT来产生至少一中断请求事件,并且接着将所产生的中断请求事件导引至一个或多个处理器。所述多个处理器的其中之一处理器可判断要接受或拒绝中断控制器105所传送的中断请求事件,处理器也可选择忽略所传送的中断请求事件。一旦处理器接受所传送的中断请求事件,处理器会执行中断处理程序(interrupt handler)来服务对应中断请求事件的中断输入。处理器会适当且正确地服务对应于中断请求事件的中断输入INT。中断控制器105也可提供具有供系统软件(system software)来选择中断采样(sampling)、排程(scheduling)、仲裁(arbitration)以及导引(routing)等的适当机制的不同程序寄存器(programming register)的程序接口(programming interface)。此外,中断控制器105是用来与一个或多个处理器(像是处理器110A与处理器110B)互连,使得处理器能尽快地服务中断输入。

在所提供的实施例中,中断控制器105与所述多个处理器个别之间的信号接口包含一组信号:INT_INPUT、INT_REQ、INT_BACKOFF、INT_PREREQ、INT_URGENCY、INT_BUSY、INT_ACK以及PROC_URGENCY。当信号的设立(assertion)发生时,这代表中断控制器105与一处理器两者中的一个正在使用对应所述信号的一信号端口来将信息告知或传送至两者中的另一个。当信号的重置(de-assertion)发生时,这代表中断控制器105与一处理器两者中的一个将信息告知或传送至两者中的另一个的操作已结束。中断控制器105与每一处理器会通过所述组信号来相互通信。包含于信号接口内的不同信号具有不同的功能;这些会在稍后说明。此外,需要注意的是,在其它例子中,上述的所述组信号可以被不同的名字或记号来称呼,而这些例子仍属于本发明的范畴。

请参照图2,图2绘示包含于中断控制器105与处理器之间的信号接口中不同信号的功能的表格。信号INT_INPUT、INT_REQ、INT_BACKOFF、INT_PREREQ、INT_URGENCY会被中断控制器105用来产生并传送信息至一相对应的处理器,以便传送信息至所述处理器或通知所述处理器。此外,信号INT_BUSY、INT_ACK、以及PROC_URGENCY是被处理器而非中断控制器105所使用,来产生并传送信息至中断控制器105,以便传送信息至中断控制器105或是通知或回应中断控制器105。通过这种信息交换协商过程(information handshaking negotiation process),中断控制器105可以有效地与每一处理器进行通信以交换彼此的信息。实际上,若上述处理器与中断控制器两者均能依据一些同步时钟信号(synchronous clock signal)或一些异步时钟信号(asynchronous clock signal)来操作时,这样的信息交换协商过程(也可被称为互锁交换协商过程(inter-lockable handshaking process))可良好地运行于具有上述处理器与中断控制器的系统的不同实作范例中。此外,所述多个信号会被使用于本发明的实施例中,以指示出不管处理器与中断控制器之间的时钟关系(clock relationship)为何,此过程都能良好地运作。

信号INT_INPUT的功能代表中断请求事件是基于中断输入INT而产生,同时信号INT_INPUT是对应于一个或多个中断输入来源int_0、int_1、int_2、…,以及int_N。此外,信号INT_INPUT也可代表映射(map)至所述多个中断输入来源int_0、int_1、int_2、…,以及int_N的其中之一所产生的中断请求事件的矢量编号。当信号INT_REQ被设立(asserted)时,代表中断控制器105正使用信号INT_REQ的功能来告知处理器(像是处理器110A)中断请求事件的发生。中断控制器105会使用信号INT_BACKOFF的功能来告知处理器先前被送至处理器的中断请求事件的撤回或取消。当信号INT_PREREQ被设立时,代表中断控制器105正使用信号INT_PREREQ的功能并连同信号INT_INPUT来询问处理器是否可以服务对应中断请求事件的中断输入。中断控制器105会使用信号INT_URGENCY的功能来通知处理器中断请求事件的紧急等级(urgency level)。此外,当信号INT_BUSY被设立时,代表处理器正使用信号INT_BUSY的功能来通知中断控制器105处理器暂时忙碌中而无法服务对应新的中断请求事件的中断输入。另外,处理器也可使用信号INT_BUSY来拒绝中断控制器105所传送的中断请求事件;这会在稍后说明。处理器会使用信号INT_ACK的功能来通知中断控制器105,由中断控制器105所传送的目前中断请求事件已被处理器本身所接受,而处理器接着会执行一中断处理程序以服务对应中断请求事件的中断输入。这代表对应此一中断请求事件的一中断输入已被适当地导引至可用的处理器,并且所述中断输入可以被服务。处理器会使用信号PROC_URGENCY的功能来通知中断控制器105处理器本身目前正在处理或服务的中断输入的紧急等级。

需要注意的是,于本发明的实施例中,中断控制器105与每一处理器之间的通信接口(或信号接口)是用来传送具有在信号INT_INPUT上的相对应矢量编号的中断请求事件。然而,这不是用来对本发明设限。在另一实施例中,通信接口也可被用在传送以信号INT_INPUT的个别脚位来代表一个或多个中断输入的中断请求事件。在上述任一种通信接口的使用方式中,装置100与中断控制器105都可被用在解析并处理中断输入。

在本发明的下列实施例中,会详述中断控制器105与一个或多个处理器之间的通信。在本发明的第一实施例中,控制电路120可以判断是否撤回或取消已被传送至处理器(像是处理器110A)的中断请求事件,并且在控制电路120决定要撤回或取消中断请求事件时,设立信号INT_BACKOFF。处理器110A可以在观察到所传送的中断请求事件的取消后,认可(confirm)是否允许撤回或取消所传送的中断请求事件,并且以一个已认可结果(confirmed result)告知中断控制器105。

请一同参照图3A与图3B。图3A绘示依据本发明的第一实施例的处理器接受中断控制器105所传送的中断请求事件的操作的时序图。图3B绘示依据本发明的第一实施例的在信号INT_BUSY被重置后,处理器接受中断控制器105所传送的中断请求事件的操作的时序图。如图3A所示,在时钟周期(clock cycle)t1时,中断控制器105会设立信号INT_REQ来告知处理器(像是处理器110A)即将送达的中断请求事件。在时钟周期t1时,中断控制器105也会使用信号INT_INPUT来告知处理器110A所传送的中断请求事件的相对应矢量编号VN。处理器110A会接受中断请求事件,并在观察到信号INT_REQ的设立之后,执行相对应的中断处理程序来服务对应于中断请求事件的中断输入。因此,处理器110A会在时钟周期t2设立信号INT_ACK来告知中断控制器105处理器110A已接受中断请求事件。处理器110A是用以通过信号INT_ACK来传送一确认指示(acknowledge indication)给中断控制器105,以指出处理器110A已接受所传送的中断请求事件。在观察到信号INT_ACK的设立后,中断控制器105会在时钟周期t3重置(de-assert)信号INT_REQ。处理器110A接着会在观察到信号INT_REQ的重置后,在时钟周期t4重置信号INT_ACK。在图3A所示的例子中,处理器110A是可用的,因而在时钟周期t1接受了新的中断请求事件,而在信号INT_ACK于时钟周期t2被设立之前,信号INT_BUSY并没有被设立。此外,中断控制器105没有要撤回或取消被传送至处理器110A的中断请求事件,因此在观察到信号INT_ACK在时钟周期t2的设立之前,信号INT_BACKOFF并没有被设立。

在另一例子中,如图3B所示,在时钟周期t1时,中断控制器105会设立信号INT_REQ来告知处理器(像是处理器110A)正被送入的一中断请求事件。另外,在时钟周期t1时,中断控制器105也会使用信号INT_INPUT来告知处理器110A对应于所传送的中断请求事件的矢量编号VN。处理器110A接着非预期地(unexpectedly)进入忙碌状态而暂时无法服务中断输入,因此处理器110A会在时钟周期t2时设立信号INT_BUSY。处理器110A是用以通过信号INT_BUSY传送一忙指示(busy indication)给中断控制器105,来指出处理器110A在信号INT_BUSY的设立期间无法接受所传送的中断请求事件。在观察到信号INT_BUSY的设立后,中断控制器105决定要等待直到处理器110A终究可以接受所述中断请求事件,而非撤回或取消所述中断请求,因此中断控制器105在时钟周期t2与时钟周期t4之间的信号INT_BUSY设立期间并不会设立信号INT_BACKOFF。

在一个或多个时钟周期之后,处理器110A会变为可用的并且能立即服务中断输入,因此处理器110A会在时钟周期t4时重置信号INT_BUSY以准备接受中断请求事件,接着在时钟周期t5设立信号INT_ACK来告知中断控制器105处理器110A已接受此一中断请求事件。在观察到信号INT_ACK的设立之后,中断控制器105会在时钟周期t6重置信号INT_REQ。处理器110A接着会在观察到信号INT_REQ的重置后,在时钟周期t7重置信号INT_ACK。在图3B中所示的例子中,中断控制器105在处理器110A忙碌时决定等待处理器110A而不是撤回或取消被传送至处理器110A的中断请求事件,因此信号INT_BACKOFF不会在时钟周期t2与时钟周期t4之间的信号INT_BUSY设立期间被设立。

请一同参照图3C与图3D。图3C与图3D分别绘示依据本发明的第一实施例的中断控制器105撤回或取消传送至处理器的中断请求事件的操作。如图3C所示,在时钟周期t1时,中断控制器105会设立信号INT_REQ来告知处理器(像是处理器110A)正被送入的一中断请求事件。另外,在时钟周期t1时,中断控制器105也会使用信号INT_INPUT来告知处理器110A所传送的中断请求事件的相对应矢量编号VN。处理器110A接着非预期地进入忙碌状态而暂时无法服务中断输入,因此处理器110A会在时钟周期t2时设立信号INT_BUSY。处理器110A是用以通过信号INT_BUSY传送一忙指示给中断控制器105来指出处理器110A在信号INT_BUSY的设立期间无法接受所传送的中断请求事件。在观察到信号INT_BUSY的设立后,中断控制器105决定要取消被传送至处理器110A的中断请求事件,并且因此在时钟周期t3设立信号INT_BACKOFF以取消所述中断请求事件。由于信号INT_BACKOFF与信号INT_BUSY在时钟周期t3同时被设立,中断控制器105会判定处理器110A现在是不可用的,并且无法立即服务对应中断请求事件的中断输入。因此,中断控制器105接着会在时钟周期t4重置信号INT_REQ。处理器110A接着会通过在时钟周期t5重置信号INT_BUSY来认可中断请求事件的撤回或取消。接下来,中断控制器105便会在时钟周期t6重置信号INT_BACKOFF以完成撤回或取消操作。

在另一例子中,如图3D所示,在时钟周期t1时,中断控制器105会设立信号INT_REQ来告知处理器(像是处理器110A)正被送入的一中断请求事件。另外,在时钟周期t1时,中断控制器105也会使用信号INT_INPUT来告知处理器110A所传送的中断请求事件的相对应矢量编号VN。在此例子中,处理器110A可以在不告知中断控制器105的情形下就进入忙碌状态。虽然处理器110A没有通过设立信号INT_BUSY来指出这样的情形,处理器110A仍会处于忙碌状态并且暂时无法服务中断请求。中断控制器105接着决定通过在时钟周期t3设立信号INT_BACKOFF,来主动撤回或取消被传送至处理器110A且经一段时间未被服务的中断请求事件。

在观察到信号INT_BACKOFF的设立后,处理器110A仍可决定是否要接受、忽略或拒绝所述中断请求事件的撤回或取消。在此例子中,处理器110A决定要接受所述中断请求事件的撤回或取消,因而在时钟周期t4时设立信号INT_BUSY以告知中断控制器105处理器110A拒绝或不接受所述中断请求事件;也就是说,接受了所述中断请求事件的撤回或取消。在观察到信号INT_BUSY的设立之后,中断控制器105会得知处理器110A接受了中断请求事件的撤回或取消,并接着在时钟周期t5重置信号INT_REQ。由于在此例子中,处理器110A使用信号INT_BUSY来告知中断控制器105中断请求事件的接受或撤回,处理器110A是用以在观察到信号INT_REQ的重置后,于时钟周期t6重置信号INT_BUSY。中断控制器105接着会在时钟周期t7重置信号INT_BACKOFF。

请参照图3E,图3E绘示依据本发明的第一实施例的处理器拒绝中断控制器105所传送的中断请求事件的撤回或取消的操作。如图3E所示,在时钟周期t1时,中断控制器105会设立信号INT_REQ来告知处理器(像是处理器110A)正被送入的一中断请求事件。另外,在时钟周期t1时,中断控制器105会使用信号INT_INPUT来告知处理器110A所传送的中断请求事件的相对应矢量编号VN。在此例子中,在传送中断请求事件至处理器110A之后,由于中断控制器105认为处理器110B比处理器110A更适合去解析并处理所述中断请求事件,中断控制器105会决定改传送所述中断请求事件至另一处理器110B而不要给处理器110A。因此,中断控制器105会通过在时钟周期t2设立信号INT_BACKOFF来撤回或取消已被传送至处理器110A的中断请求事件。

处理器110A会在观察到信号INT_BACKOFF的设立后,判断是否要接受中断控制器105所要求的撤回或取消。在此例子中,处理器110A决定要拒绝中断控制器105所要求的撤回或取消。换句话说,处理器110A会接受中断控制器105先前所传送的中断请求事件。处理器110A因此在时钟周期t3会设立信号INT_ACK来告知中断控制器105接受了所述中断请求事件。在观察到信号INT_ACK的设立后,中断控制器105会得知中断控制器105所要求的撤回或取消失败了,并且会接着在时钟周期t4重置信号INT_BACKOFF。

在重置信号INT_BACKOFF之后,中断控制器105会通过在时钟周期t5重置信号INT_REQ来完成中断请求事件。在观察到信号INT_REQ的重置后,处理器110A会知道中断请求事件的交换协商处理已完成,并且接着在时钟周期t6重置信号INT_ACK。在图3E所示的例子中,处理器110A会在观察到信号INT_BACKOFF的设立后,决定接受中断控制器105先前所传送的中断请求事件。在另一例子中,处理器110A会在没有观察到信号INT_BACKOFF的设立的情形下,决定接受中断控制器105先前所传送的中断请求事件。这样的操作也符合本发明的精神。

中断控制器105会针对下列原因来设立信号INT_BACKOFF以撤回或取消信号INT_REQ的设立:在传送中断请求事件至处理器110A之后,中断控制器105侦测到具有比所传送的中断请求事件的优先顺序高的另一中断输入。在此情形中,中断控制器105会认为具有较高优先顺序的中断输入应该立即被处理器110A所服务,因此中断控制器105会撤回或取消先前被传送至处理器110A的中断请求事件;在另一例子中,中断控制器105可能会认为或判断假如先前被传送至处理器110A的中断请求事件被取消并且接着被导引至另一处理器(像是处理器110B),则整体效能可被提升。因此,中断控制器105会撤回或取消先前被传送至处理器110A的中断请求事件。上述例子都是属于本发明的范畴。

依据本发明的第二实施例,耦接到多个处理器(像是处理器110A与处理器110B)的中断控制器105是用以将至少一中断请求事件导引至处理器110A与处理器110B的其中至少一个。接收电路115是用以接收至少一中断输入INT,而耦接到接收电路115的控制电路120则是用以基于所接收的中断输入INT来产生中断请求事件并且将所产生的中断请求事件导引至处理器110A与处理器110B的其中至少一个。处理器110A与处理器110B是被用来处理中断请求事件。中断控制器105包含可编程中断导引(programmable interrupt routing)的功能,并且能将一中断请求事件导引至一组处理器或导引一中断请求事件至一特定处理器。在第二实施例的例子中,中断控制器105的接收电路115所接收的每一中断输入INT可由控制电路120所程序化(programmed),而导引到耦接到或附加于中断控制器105的一组处理器(其可包含处理器110A与处理器110B)。此外,接收电路115所接收的一中断输入INT也可被控制电路120所程序化,而仅导引至单一处理器。然而,上述并不是本发明的限制。

应该要注意的是,中断控制器105包含三种可程序中断导引机制,其包含一首选(preferred)导引机制、一平衡(balanced)导引机制以及一预先请求(pre-request)导引机制。对于首选导引机制来说,中断控制器105的控制电路120会决定每一个要被导引的中断输入被指定至用来提供服务的一预定的相对应处理器。因此,当接收电路115接收中断输入INT时,控制电路120总是会将由所述中断输入衍生出来的中断请求事件导引至某一特定处理器(像是处理器110A,前提是当处理器110A是可用的)。

对于平衡导引机制来说,控制电路120会针对处理器来维持(maintain)其对应的加权数值(weighting value)。对于那些经由程序化而要在平衡导引机制之下被导引的中断输入来说,每一加权数值被关联到一处理器以代表可被所述处理器所耗用来服务一中断的一参考时间,或者可被所述处理器于一时段中所服务的中断的个数。控制电路120会通过参照所述组处理器的分别的平均加载来产生所述多个加权数值。对于那些经由程序化而要在平衡导引机制的下被导引的中断输入来说,控制电路120会依据处理器花费于服务一中断的实际时间或所述处理器于一时段内所服务的中断的实际数量的比例,来计算参与所述平衡导引机制的每一处理器的平均加载值(average loading value)。假如处理器的平均加载数值很大,这可指出所述处理器会立即服务发送给所述处理器的中断输入的机会很小,即使所述处理器并非正在忙碌并且能接受某一些中断请求事件;相反地,假如处理器的平均加载数值很小,这样可以指出所述处理器可以有效率地服务发送给所述处理器的中断输入的机会很大。在一些其它实施例中,控制电路120可以更进一步在平衡导引机制中动态调整所述多个处理器的加权数值,这样可以根据所述多个处理器有多快接受中断请求事件而定。举例来说,假如处理器是忙碌的且长时间无法接受由控制电路120所导引至处理器的中断请求事件,则控制电路120会降低所述处理器所对应的加权数值;另一方面,假如处理器是可用的且很快接受由控制电路120所导引至处理器的中断请求事件,那么控制电路120会提升所述处理器所对应的加权数值。因此,具有较大加权数值的处理器代表所述处理器在一段时间内可服务更多量的中断输入,而具有较小加权数值的处理器则代表所述处理器在一段时间内可服务较少量的中断输入。不同加权数值也指出相对应的处理器可接受中断请求事件并且很快服务对应的中断输入的不同机率。

对于预先请求导引机制,控制电路120是用以通过设立中断预先请求(interrupt pre-request)信号INT_PREREQ并连同信号INT_INPUT上的相同的中断矢量编号VN,来传送预先请求事件至所述多个处理器(像是处理器110A与处理器110B),以询问是否所述多个处理器110A与处理器110B中的每一处理器可接受所述中断请求事件。请参照图4,图4绘示中断控制器105传送中断预先请求事件连同相同的中断矢量编号VN至处理器110A与处理器110B,以询问是否处理器110A与处理器110B中每一处理器是否可接受所述中断请求事件的操作的时序图。如图4所示,控制电路120会先传送中断预先请求事件至处理器110A与处理器110B以询问处理器110A与处理器110B中哪个能接受所述中断请求事件。因此,控制电路120是用以在时钟周期t1时,通过分别设立信号INT_PREREQ(也就是INT_PREREQ_A与INT_PREREQ_B)连同在相对应通信接口中的相对应信号INT_INPUT上的相应的矢量编号VN,来分别传送中断预先请求事件至处理器110A与处理器110B。

在一操作情境中,处理器110A与处理器110B两者均想要告知中断控制器105各自是在一可用的状态(也就是非忙碌),因此处理器110A与处理器110B会通过设立中断确认信号来指出所述多个处理器可以接受并服务所述中断请求事件,来回应一确认指示给中断控制器105。处理器110A与处理器110B会在时钟周期t2中分别设立信号INT_ACK_A与INT_ACK_B(也就是信号INT_ACK)。应该要注意的是,假如仅有单一处理器在那时间点是可用的,则仅有一个处理器回应一确认指示予中断控制器105也符合本发明的精神。上述的例子只是多种操作情境之一。在另一例子中,在处理器110A可用以接受所述预先请求事件的同一时间点,处理器110B可能是不可用来接受所述预先请求事件的。在此情形中,中断控制器105会通过完成必要的交换协商程序来认可处理器110A的中断请求事件,并且会通过重置信号INT_PREREQ_B且不设立信号INT_REQ_B,来舍弃送至处理器110B的预先请求事件。此一修改也属于本发明的范畴。

在观察到信号INT_ACK_A与信号INT_ACK_B的同时设立后,控制电路120会知道处理器110A与处理器110B都是可用的且能立即接受并服务中断请求事件。中断控制器105的控制电路120会选择处理器110A与处理器110B的其一,并且认可将中断请求事件给所选择的处理器。在此实施例中,控制电路120会选择处理器110A并决定只认可中断请求事件要给处理器110A。因此,在时钟周期t3时,控制电路120会设立包含于对应至处理器110A的通信接口内的信号INT_REQ_A,并且重置包含于对应至处理器110B的信号接口内的信号INT_PREREQ_B。

在观察到信号INT_PREREQ_B的重置之后,处理器110B会知道中断请求事件并没有被传送到处理器110B。因此,处理器110B在时钟周期t4会重置包含于对应至处理器110B的信号接口内的信号INT_ACK_B,而中断控制器105询问处理器110B的操作便完成了。此外,对于处理器110A而言,在观察到信号INT_REQ_A的设立之后,处理器110A会知道中断请求事件要被传送至处理器110A。在此例子中,在时钟周期t4时,处理器110A会接着重置信号INT_ACK_A,而中断控制器105会重置信号INT_PREREQ_A。然而,这只是用于范例说明。信号INT_ACK_A与信号INT_PREREQ_A并不一定要在同一时钟周期内被重置。只要在信号INT_ACK_A与信号INT_PREREQ_A两者都已被重置之前,信号INT_REQ_A都不被重置,则所述预先请求导引机制就仍可运作良好。另外,在重置信号INT_PREREQ_A以及观察到信号INT_ACK_A的重置之后,中断控制器105会在时钟周期t5重置信号INT_ACK_A,而中断控制器105询问处理器110A的操作便完成了。

应该要注意的是,在另一实施例中,中断控制器105的控制电路120可于时钟周期t1传送多个中断预先请求事件至两个以上的处理器,控制电路120会通过重置对应多个处理器(除了处理器110A之外)的中断预先请求信号,来撤回或取消被送至所述多个处理器(除了处理器110A之外)的预先请求事件。中断控制器105并不被限制只能撤回或取消被送至某一处理器的唯一的预先请求事件。这也符合本发明的精神。

依据本发明的第三实施例,控制电路120是用以动态地调整中断请求事件的紧急等级。控制电路120还包含一连串的速率控制逻辑(rate control logic),而接收电路115所接收的每一中断输入是通过软件程序化而被关联于一速率控制逻辑,以关联于同一速率控制逻辑的一个或多个中断输入来维持一预期的服务速率(expected service rate)。包含在控制电路120的每一速率控制逻辑是基于对应于相关的中断输入的被服务的中断请求事件的预先程序化(pre-programmed)的预期速率值以及频率,来产生一速率指标值(rate index)。接收电路115会使用所产生的速率指标值来调整每一相关的中断输入的紧急等级。一开始,每一速率指标值会等于同一数值(通常是0),所以每一中断输入的紧急等级仅会依据其本身预先程序化的优先值(priority value)来决定其初始设定。然而,这只用于范例说明,而非对本发明设限。对应第一中断输入的第一中断请求事件的第一紧急等级会依据第一中断输入的优先值与其相关的速率指标值来决定,而对应第二中断输入的第二中断请求事件的第二紧急等级会依据第二中断输入的优先值与其相关的速率指标值来决定。因此,假如相关的速率指标值彼此不同,就算第一中断输入与第二中断输入的优先顺序相同,第一紧急等级与第二紧急等级仍会被决定为不同的等级。另一方面,中断输入的不同优先顺序可能会对应不同的紧急等级或相同紧急等级。

假设具有相同优先值的两个中断输入(例如第一中断输入与第二中断输入)被关联于具有相同预期速率值的速率控制逻辑。如果控制电路120仅依据相关的优先值来仲裁中断输入,上述具有相同优先值与相同预期速率值的中断输入理想上会依相同或相似频率来被处理器服务。实际上,由于中断输入之间的冲突与仲裁误差(arbitration error),一开始具有相同优先值的多个中断输入并不会被处理器依相同或相似频率来服务。在此实施例中,控制电路120是用来依据其相关的紧急等级来仲裁中断输入,而假如控制电路120认为中断输入并未被服务于所预期的速率,则控制电路120会被用来调整中断输入的紧急等级。在实作上,控制电路120会计算速率控制逻辑的服务速率指标值,所述服务速率指标值是被关联于一或多个中断输入,并接着参照所计算的速率指标值来判断是否要动态调整相关的中断输入所对应的中断请求事件的紧急等级。当计算得到的速率指标值指出被关联于所述速率控制逻辑的中断输入的所被服务的频率低于预期时,控制电路120会决定提升相关的中断输入所对应的中断请求事件的紧急等级。当计算得到的速率指标值指出被关联于所述速率控制逻辑的中断输入的所被服务的频率高于预期时,控制电路120则会决定降低相关的中断输入所对应的中断请求事件的紧急等级。紧急等级可被关联于当下正要被处理器(像是处理器110A与处理器110B)所服务的中断请求事件。这样,处理器会依据其相关的紧急等级来决定何时要接受中断请求事件。

此外,控制电路120是用以使用信号INT_URGENCY来通知处理器(像是处理器110A)中断输入的紧急等级。处理器110A是用以使用信号PROC_URGENCY来通知中断控制器105当下正被处理器110A处理或服务的中断输入的紧急等级。因此,由于紧急等级表示一中断输入依据其相关的预期速率是如何被服务的,假如信号INT_URGENCY所表示的紧急等级高于信号PROC_URGENCY所表示的紧急等级,则处理器110A会被用以尽快接受所述紧急的中断请求事件,纵使是处理器110A当下正在服务另一中断输入,或纵使处理器110A暂时遮蔽(mask)其中断接口(interrupt interface)。

另一方面,为了缩短整体中断服务的延迟(latency),控制电路120会被偏好将仲裁给予具有高于被关联于当下正在被处理器所服务的中断请求事件的紧急等级(由信号ROC_URGENCY所表示)的相关紧急等级的中断输入,即使此中断输入和先前被处理器所服务的中断输入是相同的。

此外,在另一实施例中,上述的一连串的速率控制逻辑可实作为由外接至控制电路120并包含于中断控制器内的一组电路。请参照图5,图5绘示依据本发明的另一实施例的外接于控制电路120的一连串的速率控制逻辑525的方块图。中断控制器505的操作与功能是类似于图1所示的中断控制器105,更进一步的说明便在此省略以求简洁。一连串的速率控制逻辑525是用来分别监控所服务的中断请求事件,并且接着输出所计算的速率指标值至中断控制器505的接收电路115以产生相关于每一中断输入的紧急等级。

依据本发明的第四实施例,图1中所示的中断控制器105的控制电路120使用分时(time-division)方法,而在一时间点的仲裁中产生并导引一中断请求事件至处理器(像是处理器110A),并且在另一时间点的另一仲裁中产生并导引另一中断请求事件至另一处理器(像是处理器110B)。控制电路120在一仲裁时可以评量(evaluate)针对一特定处理器的中断输入以产生中断请求事件给所述特定处理器。在此实施例中,中断输入的仲裁会在一时钟周期期间完成,然而,这不是用来对本发明设限。在另一实施例中,中断输入的仲裁可在半个时钟周期或多个时钟周期内被执行并且完成,这些修改均属于本发明的范畴。

以上所述仅为本发明的较佳实施例,凡依本发明权利要求所做的均等变化与修饰,皆应属本发明的涵盖范围。

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