CN1604060A - 用于处理中断的方法和装置 - Google Patents
用于处理中断的方法和装置 Download PDFInfo
- Publication number
- CN1604060A CN1604060A CNA2004100621130A CN200410062113A CN1604060A CN 1604060 A CN1604060 A CN 1604060A CN A2004100621130 A CNA2004100621130 A CN A2004100621130A CN 200410062113 A CN200410062113 A CN 200410062113A CN 1604060 A CN1604060 A CN 1604060A
- Authority
- CN
- China
- Prior art keywords
- controller
- isr
- interrupt
- group
- interruption
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
- G06F13/26—Handling requests for interconnection or transfer for access to input/output bus using interrupt with priority control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
Abstract
每个中断提供控制器包含一组中断管理区域。响应接收到中断信号,在中断服务器组中识别第一中断服务器处理中断。构成服务器池的该组中断服务器使用在这组提供控制器内中断服务器的中断管理区域中找到的一组标识符以循环表链接。如果第一中断服务器不能处理该中断,则根据标识这组中断服务器中的第二中断服务器的标识符将表示中断的消息发送到第二中断服务器,其中第二中断服务器例如位于这组提供控制器的第二提供控制器中。该标识符在第一中断服务器的中断管理区域内找到。该中断在该循环表内传递,直到中断服务器之一能够处理该中断,或者直到该循环表中的所有服务器都传递了该中断消息-此时中断消息被拒绝回到中断源控制器以在以后重新提供。
Description
技术领域
本发明一般涉及一种改进式数据处理***,特别涉及一种用于处理中断的方法和装置。更具体地说,本发明涉及一种用于使用多处理器管理中断的方法、装置和计算机指令。
背景技术
中断处理机制已被开发出来用于更有效地处理处理器与连接到处理器的***设备之间的输入/输出事务。每当***设备需要处理器支持作为输入/输出(I/O)操作的一部分时,该设备将中断信号发送到处理器以通知在***设备中存在中断状态。当接收到中断信号时,根据所接收的中断信号的类型,处理器可以选择忽略中断并且完成当前进程,或者处理中断。一旦中断信号被中断处理机制处理,处理器就返回到在发生中断之前所存在的先前状态。中断源可以是例如连接到处理器的键盘、适配器或任何其他设备。
中断请求处理典型地包括处理器询问(interrogating)中断源,根据中断类型执行特定功能,并且最终清除或关闭中断请求。存在若干不同类型的中断请求。例如,当中断请求被处理器延迟时,将该中断请求称作被屏蔽请求。另一种类型的中断请求是如果来自一个设备的请求比来自另一个设备的请求更紧急,该中断请求还可以由特定***确定优先级。因此,来自一个设备的请求被认为是比来自该另一个设备的请求具有更高的优先级。中断请求的优先级在数据处理***中是预定的。当处理器接受了一个中断请求时,除非随后中断请求具有比当前中断请求更高的优先级,否则随后中断请求不能中断当前中断请求。如果随后中断请求没有更高优先级,则随后中断请求等待直到处理完当前请求为止。
随着数据处理***变得更加复杂从而包含更多的***设备,由这些设备产生的中断请求的不断增大数目降慢了处理器的速度。因此,开发了中断控制器以将特定中断功能从处理器委托给中断控制器。这些中断控制器允许在开始发出中断请求的时候继续工作而无需服务该请求。使用中断控制器来监视中断源,同时仅使用单条中断线来中断处理器。
这种中断控制器最初被开发用于单处理器数据处理***内。这种中断子***典型地具有较少的中断源或优先级等级。随着多处理器数据处理***的引入,这种***内的多个处理器能够处理中断请求。然而,每个中断源的中断信号必须连线至能够服务中断的每个处理器或中断控制器,以允许这些处理器处理这些中断请求。该架构由于必须硬连线至***中的每个处理器的中断信号数而导致总线复杂性的增大。
作为响应,为数据处理***中的每个处理器提供了专用中断控制器。然而,这种方法是昂贵的,并且当中断源和优先级等级的数目增大时,不能有效地管理中断。
另一种中断子***提供对来自很多源的中断排队并且向多处理器***中的处理器总线提供中断。为中断选择处理器通过将内部中断机制分离成两层即中断路由选择层和中断提供层来完成。中断路由选择层将中断状态经过路由选择传送到中断提供层内中断管理区域的适当实例。中断提供层将中断源传送到要服务或处理中断的***软件。通过在中断源内提供两层,可以编写独立于由中断路由选择层使用的处理器选择机制的特定细节的应用或***软件。中断路由选择层向软件隐藏特定硬件实现的细节。中断提供层接口于***和/或应用软件,并且提供硬件无关功能。来自各种中断源的中断线输入到中断源控制器中。该中断源控制器使用诸如总线的构造(fabric)来连接,该构造还连接到中断提供控制器。
中断提供控制器用来将中断提供给数据处理***中的处理器。数据处理***中的每个处理器与存储器映射中断管理区域相关联。一些实现通过在一个芯片中放置一些平台处理器的中断管理区域而在其他芯片上放置其余处理器的中断管理区域来分布中断提供层。
将中断管理区域放置于不同芯片上的原因是将所有***处理器的中断提供控制器集成在单个芯片上是不实际的。然而,当在不同芯片上实现中断管理区域时,如果在原始提供层芯片中不能找到接受处理器,则中断消息可能必须在实现芯片之间转发。
而且,如果在该中断子***中实现基于优先级的分配,则最不中意处理器的优先级可能广播至其他提供层芯片。这些用于允许将中断请求适当分配到多个中断提供控制器的方法目前是复杂的并且/或者在该多个控制器之间需要大量专用信号线。
该中断子***经常被要求将数据处理***的全部处理器中的处理器子集聚集成组服务器池(group server pool)。一组处理器在该组服务器池内,其中任何可用处理器都能够处理给定中断请求。中断子***被要求将中断传送到组内可用处理器之一。
这种中断子***中的缺点涉及使用存储为处理中断而选择的处理器标识的中央逻辑集合。这种中断子***的问题是随着所支持的处理器总数增长,中央逻辑集合的尺寸和复杂性不得不增大。结果,中央逻辑集合变得大而昂贵,因为它必须按照该***可支持的最大数目的处理器来确定尺寸,即使大多数***没有那么大,也是如此。此外,该中央逻辑集合还成为整个中断子***的单故障点。结果,需要重复或冗余来防止这样的故障。
在另一种中断子***架构中,中断引导到***中的所有处理器,直到选择了一个处理器为止。该***遇到一个问题是由于中断消息必须引导到没有可能成为接收中断请求的候选者的中断控制器。结果,在这些中断控制器上产生额外负载。此外,对于每一个中断状态,中断消息平均循环所有中断控制器约1.5次,并且在很多情况下经常更多。结果,额外消息通信量施加于数据处理***内的总线上。另外,某些处理器可能往往比其他处理器接收更多的中断请求。这些处理器典型地是处理后台工作的处理器。结果,后台工作由于发送中断到这些处理器而置于不利地位。
因此,最好有一种用于在数据处理***中处理中断的改进式方法、装置和计算机指令。
发明内容
本发明提供了一种用于使用一组提供控制器来管理中断的方法、装置和计算机指令。每个中断提供控制器包含一组中断管理区域(一一对应于每一个与该中断提供控制器相关联的处理器-中断管理区域和处理器的组合称作“中断服务器”)。响应接收到中断信号,在该组中断服务器中识别第一中断服务器以处理中断。构成服务器池的该组中断服务器使用在这组提供控制器内中断服务器的中断管理区域中找到的一组标识符以循环表链接。如果第一中断服务器不能处理该中断,则根据标识这组中断服务器中的第二中断服务器的标识符将表示中断的消息发送到第二中断服务器,其中第二中断服务器例如位于这组提供控制器的第二提供控制器中。该标识符在第一中断服务器的中断管理区域内找到。该中断在该循环表内传递,直到中断服务器之一能够处理该中断,或者直到该循环表中的所有服务器都传递了该中断消息-此时中断消息被拒绝回到中断源控制器以在以后重新提供。
附图说明
被认为是本发明特征的新颖特性在所附权利要求中阐述。然而,通过下面结合附图阅读的对说明性实施例的详细描述,本发明本身以及优选使用方式及其另外的目的和优点将变得更好理解,其中:
图1是可以实现本发明的数据处理***的图;
图2是示出根据本发明优选实施例的用于处理中断请求的备组件的图;
图3是根据本发明优选实施例的用于管理中断信号的过程的流程图;以及
图4是根据本发明优选实施例的用于在中断提供控制器中评价(evaluate)和处理中断的过程的流程图。
具体实施方式
现在参照附图,特别是参照图1,该图示出了可以实现本发明的数据处理***。数据处理***100包括互连构造102,该构造允许在数据处理***100的不同组件之间传输数据。互连构造102在所示例子中采取总线的形式。当然,根据具体实现,互连构造102可以采取其他形式如交换机。
在这些例子中,中断源控制器104、106和108连接到互连构造102。这些组件从诸如适配器110、112和114的组件接收中断信号。这些组件通过将其连接到源控制器104、106和108的连线产生中断消息或中断信号。当然,不同于适配器的其他类型的设备或组件也可以连接到这些控制器以产生中断信号。
数据处理***100还包括中断提供控制器116和中断提供控制器118,它们连接到互连构造102。处理器120、122和124通过中断线126、128和130连接到中断提供控制器116。处理器132、134和136通过中断线138、140和142连接到中断提供控制器118。
数据处理***100中的这些处理器的每一个均与包含在其各自中断提供控制器内的存储器映射中断管理区域相关联,该中断管理区域包含外部中断寄存器(XIRR)。在这些例子中,XIRR是四字节寄存器。该寄存器在这些例子中包括两个字段:当前处理器优先级寄存器(CPPR)和外部中断源寄存器(XISR)。
CCPR包含处理器的操作优先级。该寄存器可以采用软件写入来防止被优先级较低的请求中断。只有处理器的CPPR字段低于中断请求的优先级,才应将中断传送到处理器。该软件将中断级别值存储到CPPR,以向中断硬件通知处理器的当前操作优先级,其中,CPPR在这些例子中为一字节寄存器。CPPR反映处理器的操作优先级,若有的话,处理器的操作优先级为与XISR的值相关联的中断优先级。
为了确定中断源,软件通过向XIRR发出装载(load)指令来读取XISR。XISR的值指定中断源。对于来自中断源控制器如中断源控制器104、106或108的中断,XISR的高位标识提供中断消息的中断源控制器。XISR字段的低四位定义中断消息的特定源。
相对于现有技术的***,本发明使用图1的数据处理子***100中的中断子***架构来更高效地将中断分配给不同处理器。当诸如中断源控制器104的中断源控制器从诸如适配器110的组件接收到中断信号时,在与特定中断服务器号相关联的线上接收中断。
在这些例子中,中断消息的中断服务器号字段针对一组池内处理器内的中断服务器,而不是组服务器池的名称。此外,与中断提供控制器相关联的中断服务器以循环表链接在一起。例如,居于中断提供控制器116和中断提供控制器118之内的中断管理区域包括链接寄存器,其中,中断提供控制器116中的链接寄存器指向中断提供控制器118。在这些例子中,该寄存器包含指向另一个中断提供控制器中的中断管理区域的指针或地址。
在这些说明性例子中,实现第一适配(fit)算法来确定特定处理器是否能够处理中断请求。将中断消息或请求的优先级与中断服务器的优先级进行比较。如果中断服务器的优先级低于中断消息的优先级,则提供控制器将接受对那个中断服务器的中断。当然,可以使用任何期望过程来判定是否将处理中断。
在这些例子中,如果中断消息的优先级低于或等于中断服务器的优先级,则那个中断服务器不能处理该中断请求。结果,中断提供控制器将那个中断请求传送到在链接寄存器中标识的中断服务器,该中断服务器可以与相同或不同中断提供控制器相关联。包含在链接寄存器中的中断服务器地址内的高位指定相关中断提供控制器,而低位指定那个中断提供控制器内的特定中断服务器。
以这种方式,减少互连构造102上的通信量,因为与在原始中断消息中的中断服务器号表示中断服务器池的名称而不是池成员之一的地址的情况下所需的消息相比,较少的消息必须在中断源控制器与中断提供控制器之间来回发送。
现在参照图2,该图示出了根据本发明优选实施例的用于处理中断请求的各组件。在所示例子中,中断子***200在中断源控制器202上从诸如适配器的设备接收中断信号。中断源控制器202是中断源控制器的例子,例如图1中的中断源控制器104。中断子***200还包括中断提供控制器204、206、208和210。这些中断提供控制器是中断提供控制器的例子,例如图1中的中断提供控制器116。然而,为简单起见,在图2中,示出了这些中断提供控制器204、206、208和210仅包含一个处理器的单个中断管理区域,而不是图1中的中断提供控制器116和118所需的三个中断管理区域。
中断源控制器202包含中断服务器号字段212、214、216和218。这些中断服务器号字段与优先级220、222、224和226相关联。这些字段中的中断服务器号用来标识要服务特定中断请求的中断提供控制器内的中断服务器。
例如,中断服务器号的低位可以是由高位寻址的中断提供控制器之一内的中断服务器之一的地址,而最高一位(多位)表示中断要由特定中断服务器池来服务。或者,高位还可以表示中断请求必须由与特定中断提供控制器相关联的特定中断服务器服务。
中断提供控制器204包含中断服务器的中断管理区域-图中仅示出了与本发明相关的该区域的子集,包括中断源号228、优先级230(如上所述统称为XIRR)和链接寄存器232;类似地,中断提供控制器206包括中断源号234、优先级236和链接寄存器238;中断提供控制器208包括中断源号240、优先级242和链接寄存器244;并且中断提供控制器210包括中断源号246、优先级248和链接寄存器250。
中断源号寄存器228、234、240和246由硬件设置以指示是哪一个中断源产生了中断,因此允许服务处理器读取是潜在上百万个中断源中的哪一个产生了中断,从而确定要调用哪一个中断服务例程。在***初始化时候,装载和配置设备控制程序,并且它们向操作***“登记”其相关中断服务例程,以当特定中断源通知中断时获得控制。
中断子***200的中断提供控制器204、206、208和210中的优先级字段230、236、242和248用来表示各个中断服务器的当前操作优先级。分配给给定中断源的优先级220、222、224和226取决于使用该中断源的I/O适配器。在很多情况下,中断源直接连线至给定I/O适配器卡插槽。因此,由于不同的卡可能不时地***到该插槽中,因此必须改变优先级来满足当前所***适配器的需要。目前,在诸如基于PCI的平台中,初始化代码从I/O适配器中的结构化(architected)寄存器中读取每个I/O适配器卡插槽的I/O适配器标识符。下一步,该代码载入与该I/O适配器标识符相关联的设备控制程序,其中设备控制程序也称作设备驱动程序,并且将与其I/O适配器相关联的中断源号传给该设备驱动程序。然后,设备驱动程序根据该适配器特性的要求设置与其I/O适配器相关联的中断源的优先级。
CPPR中的优先级通过两个状态设置。首先,当中断提供控制器将中断分配给中断服务器时,将CPPR设为那个中断的优先级。这导致所分配中断服务器的操作优先级升至所分配中断源的优先级。其他CPPR设置方式采用服务器的软件。响应设备驱动程序将中断延迟一段时间的需要,服务器软件可以通过在CPPR中设置更高的级别来提高服务器的优先级。当中断服务代码完成服务中断事件时,该软件执行向CPPR装载较低级别的“中断结束”操作,从而使服务器可以返回到先占(pre-empted)中断或后台任务的级别。每一个提供控制器中的链接寄存器均指向中断子***200中同一或另一提供控制器的另一个中断服务器。
根据本发明的一个优选实施例,一组或多组中断服务器可以以循环或环形方式链接以处理中断请求。如果中断服务器不能处理请求,则使用在链接寄存器中标识的地址将那个中断请求发送到组中的另一个中断服务器。
在这些例子中,中断信号通过信号线250和252发送到中断源控制器202。在信号线252上产生的中断导致将中断消息发送到中断提供控制器204中的中断管理区域。中断消息发送到该中断提供控制器是因为中断服务器号指向该特定中断服务器。链接寄存器232中的地址往回指向中断提供控制器204中的中断管理区域。在该说明性例子中,在该特定循环表中仅存在与中断提供控制器204相关联的中断服务器。在信号线250上产生的中断信号导致将中断消息发送到中断提供控制器206的中断管理区域。在本例中,位于三个中断提供控制器中的三个中断服务器在循环表中。这些中断提供控制器是中断提供控制器206、208和210。在本例中,中断提供控制器206中的链接寄存器238指向中断提供控制器210。中断提供控制器210中的链接寄存器250指向中断提供控制器208。反过来,中断提供控制器208中的链接寄存器244往回指向中断提供控制器206以形成根据本发明优选实施例的循环表或环。
当然,根据具体实现可以形成更多组或循环表。对于每个这样的组都将需要中断管理区域中的单独链接寄存器,并且将需要分配中断源号中的另外最高位来选择要使用哪一个链接寄存器。还可以存在不同数目的中断提供控制器。
在该说明性例子中,检查发送到中断提供控制器206的中断消息或请求以识别该消息内中断服务器号的高位是否指定该中断要由该特定中断提供控制器处理。如果该高位提供该指示,则使用传统机制来执行中断消息或请求处理操作,其中该传统机制例如在美国专利No.5,701,495中有描述,在此将其引作参考。
如果中断服务器号中的高位指定该中断要由中断提供控制器206是其成员的服务器组处理,并且如果在优先级236中标识的当前中断优先级低于中断消息中的优先级,则同样接受中断并且如上所述处理该中断。
在这些例子中,中断消息传递仅由局部中断提供控制器的状态而不是由中断源控制器来确定。这些中断提供控制器中的每一个实现第一适配算法,其中,将中断消息或请求中的优先级与中断服务器的优先级进行比较。如果中断服务器的优先级等于或高于消息请求中的中断,则中断提供控制器206将不能处理或接受该中断。另外,如果中断消息内中断服务器号字段的低位不匹配链接寄存器238的内容,则将该消息转发到在链接寄存器238中指定的组内另一个中断服务器。
在这种情况下,中断消息因而传到中断提供控制器210。如果中断消息的中断服务器号字段的低位匹配链接寄存器的内容,则该匹配指示该消息环绕了整个环,并且没有分配到一个服务器以进行处理。此时,中断“被拒绝”,并且发送回到其中断源控制器,该中断源控制器然后负责在中断更有可能被接受以进行处理的以后时间重新提供该中断,因为很有可能各个中断服务器的状态将发生变化从而足以让该中断“找到去所”以进行处理。
中断提供控制器210执行与中断提供控制器206相同的过程。如果中断提供控制器210不能处理中断消息,则将该消息传递到执行相同过程的中断提供控制器208。如果该中断提供控制器也不能处理中断消息,则拒绝该中断,其中向中断源控制器202通知该拒绝。被拒绝的中断消息在以后重新提供。
结果,在确定没有当前处理器能够接受中断之前,本发明的机制使中断消息遍历一个组内的各个中断提供控制器一次。执行该过程而不是多次重新提供该消息而使其通过所有***中断提供控制器。
以这种方式,中断消息不向所有中断提供控制器提供。例如,在信号线252上所产生的中断不导致将中断消息发送到中断提供控制器206。因此,中断提供控制器206不负担大部分中断负载,并且图1的互连构造102不遇到额外的消息通信量。
另外,采用一个操作来在中断源控制器202内将中断服务器号212中的中断服务器号字段改变成包含在接受中断消息的中断提供控制器的链接寄存器中的值。以这种方式,来自中断源控制器的下一个中断消息将查找链或列表中的下一个中断提供控制器,因此在组内的各个处理器之间平均分配负载。
中断服务器号改变操作可以采用不同方式来实现。一个实现例子涉及当与中断提供控制器相关联的处理器确认了中断时,或者当相关处理器通过其向提供控制器通知的中断结束(EOI)操作指示该处理器完成了特定中断时,让中断提供控制器硬件自动执行该操作。在另一种机制中,到相关处理器的代码路径可以向中断源控制器中的中断服务器号字段执行存储操作。所选特定机制取决于所采用特定平台的特性。现在参照图3,示出了根据本发明优选实施例的用于管理中断信号的过程的流程图。图3所示的过程可以在中断源控制器如图2中的中断源控制器202内实现。这些步骤可以使用指令如固件中的指令,或者通过专用集成电路(ASIC)来实现。
该过程开始于接收线上的中断信号(步骤300)。识别中断服务器号(步骤302)。当设备驱动程序登记了该中断并且该软件建立了与该中断源相关联的中断服务器号时,则由设备驱动程序在一组服务器中确定特定服务器。此时,中断服务器号的高位编码成指定单个服务器或一组。因此,中断源控制器不进行确定,而是它已经编码在中断源号值中,并且通过前面描述过的中断提供控制器处理来处理。
下一步,将中断消息发送到在中断服务器号内识别的中断提供控制器中的中断服务器(步骤304)。然后,判定是否接受中断消息(步骤306)。如果不接受中断消息,则该过程等待一段时间(步骤308),然后通过循环回到步骤302在以后的时间继续重新提供该中断。该过程称作“中断拒绝和重新提供”,并且使用其他机制来实现,其中这些其他机制例如公开于美国专利No.5,701,495或美国专利No.6,430,643中,在此将它们引作参考。
下一步参照图4,该图示出了根据本发明优选实施例的用于在中断提供控制器中评价和处理中断的过程的流程图。图4所示的过程可以在中断提供控制器如图2中的中断提供控制器206中实现。该图所示的步骤在所示例子中可以使用指令或者通过ASIC来实现。
该过程开始于接收中断消息或请求(步骤400)。判定是否应处理中断(步骤402)。在这些例子中,使用第一适配算法来进行判定。在这种过程中,中断提供控制器将中断消息的优先级与中断服务器的优先级进行比较。如果中断服务器的优先级等于或高于中断消息的优先级,则该中断消息不被该中断服务器处理。
如果该中断不要被该特定中断服务器处理,则判定中断服务器号的高位是否表示组服务器要处理该中断(步骤404)。如果步骤404中的判定为“是”,则判定是否将中断消息发送到所有链接服务器(步骤405)。步骤405涉及进行测试以判定是否对该组的所有链接服务器都测试了该中断消息。在本例中,通过比较中断消息的中断服务器字段(该过程开始时的服务器)与当前服务器的链接寄存器来执行测试。如果这两个值相等,则该消息将重新启动该过程。为了防止此连续循环,通过进入如下所述的步骤416来拒绝中断。如果尚未对该组的所有链接服务器测试该中断消息,则从链接寄存器中识别另一个中断提供控制器(步骤406)。然后,将该中断消息发送到所识别中断提供控制器内的所识别中断服务器(步骤408)。然后,该过程返回到所识别中断服务器的步骤400。
回到步骤402,如果中断消息要被该特定中断提供控制器处理,则将该中断消息发送到与该中断提供控制器相关联的处理器以处理该中断(步骤410)。下一步,判定是否由组服务器服务该中断(步骤412)。如果由组服务器服务该中断,则改变中断服务器号(步骤414),并且该过程返回到如上所述的步骤400。否则,该过程从步骤412直接返回到步骤400。
在步骤414,将中断服务器号改变为组中的另一个中断提供控制器。在这些例子中,所使用的下一个中断提供控制器是在处理中断消息的提供控制器的链接寄存器中识别的中断提供控制器。当然,根据具体实现也可以使用其他机制来改变中断服务器号。
回到步骤404,如果中断服务器号的高位不表示组服务器要处理该中断,则将拒绝消息发送到中断控制器(步骤416),然后,该过程返回到如上所述的步骤400。
因此,本发明提供了一种用于处理中断的改进式方法、装置和计算机指令以及一种中断子***。本发明的机制将中断消息的服务器号字段重新解释为服务器处理器组之一的地址。服务器池的处理器中的中断提供控制器以循环表链接在一起。此外,在所示例子中,在这些中断提供控制器中实现第一适配算法以判定是否要处理中断消息。此外,如果该中断被接受以进行处理,则修改服务器号字段以对于随后中断消息将其传送到不同中断提供控制器。
与目前使用的中断子***架构相比,本发明的该机制提供了一种可以按照实际上任何数目的处理器来扩展而不增加拥塞的中断子***。此外,不使用中央逻辑集合来分布或处理这些中断消息。结果,避免了随着***处理器数目增长而不断重新设计中断子***,并且避免了按照最大尺寸***来确定尺寸的小型***中的中断子***的开支。此外,也不需要中央逻辑集合的重复。此外,直接中断消息是不必要的。结果,中断提供控制器不负担不是中断处理潜在候选者的中断消息。在这些例子中,中断消息仅在作为中断消息处理潜在候选者的中断提供控制器之间循环。此外,该机制在组服务器池中的所有潜在处理器之间平均分配中断消息。
值得注意的是,虽然本发明是在全功能数据处理***的上下文中描述的,但是本领域的普通技术人员应该理解,本发明的过程能够以指令的计算机可读介质的形式和各种其他形式来分发,并且本发明同样适用而与实际用来执行分发的特定类型的信号承载介质无关。计算机可读介质的例子包括可记录类型介质如软盘、硬盘驱动器、RAM、CD-ROM、DVD-ROM以及传输型介质如数字和模拟通信链路、采用例如射频和光波传输的传输形式的有线或无线通信链路。计算机可读介质可以采用被解码以实际用于特定数据处理***中的编码格式的形式。
本发明的描述是为了举例说明和描述的目的而给出的,并不旨在是彻底无遗漏的或者限定于采用所公开形式的本发明。各种修改和变更对于本领域的普通技术人员而言将是清楚的。该实施例是为了更好说明本发明的原理而选择和描述的,并且使得本领域的普通技术人员能够理解本发明从而实现适于所设想特定应用的带有各种修改的各种实施例。
Claims (25)
1.一种用于使用一组与提供控制器相关联的中断服务器来管理中断的数据处理***中的方法,所述方法包括:
响应接收到中断信号,在该组中断服务器中识别第一中断服务器以处理该中断,其中该组中断服务器使用一组标识符以循环表链接;以及
如果第一中断服务器不能处理该中断,则根据标识该组提供控制器中的第二中断服务器及其提供控制器的标识符,将该中断发送到有可能与该组提供控制器中的第二提供控制器相关联的第二中断服务器,其中该标识符在第一提供控制器内找到,其中该中断传到有可能与该循环表内的不同提供控制器相关联的不同中断服务器。
2.如权利要求1所述的方法,其中,所找到的该组标识符在与由提供控制器管理的该组中断服务器相关联的一组中断管理区域内找到。
3.如权利要求1所述的方法,其中,如果中断的优先级小于与第一提供控制器相关联的第一中断服务器的当前优先级,则与第一提供控制器相关联的第一中断服务器不能处理该中断。
4.如权利要求1所述的方法,其中,所述中断信号由中断源控制器接收。
5.如权利要求1所述的方法,其中,所述数据处理***包括有可能与第二组提供控制器相关联的第二组中断服务器,其中有可能与第二组提供控制器相关联的第二组中断服务器使用第二组标识符以循环表链接。
6.如权利要求1所述的方法,其中,所述中断信号从该数据处理***中的适配器接收。
7.如权利要求4所述的方法,其中,所述信号与一个优先级以及标识与第一中断提供控制器相关联的第一中断服务器的中断源号相关联。
8.如权利要求7所述的方法,还包括:
在识别第一提供控制器之后,改变中断源号以标识该循环表内有可能与不同中断提供控制器相关联的不同中断服务器。
9.如权利要求2所述的方法,其中,所述标识符位于第一提供控制器中的第一中断服务器的中断管理区域内的寄存器中。
10.一种数据处理***,包括:
互连构造;
一组处理器;
中断源控制器,连接到该互连构造;以及
一组中断提供控制器,连接到该互连构造,其中该组中断提供控制器逻辑链接在环中,其中,每一个包含在该组提供控制器的一个提供控制器内的中断管理区域包括指向有可能位于该组提供控制器的另一个提供控制器中的另一个中断管理区域的指针,并且其中如果与接收中断的提供控制器相关联的中断服务器不能处理该中断,则位于该提供控制器中的该中断服务器使用一个指针将该中断发送到有可能位于另一个提供控制器中的另一个中断服务器的中断管理区域。
11.如权利要求10所述的数据处理***,其中,如果中断的优先级小于提供控制器的优先级,则提供控制器不能处理该中断。
12.如权利要求10所述的数据处理***,其中,所述互连构造是总线。
13.一种用于使用一组提供控制器来管理中断的数据处理***,所述数据处理***包括:
总线***;
通信单元,连接到该总线***;
存储器,连接到该总线***,其中该存储器包括一组指令;以及
处理单元,连接到该总线***,其中该处理单元执行该组指令以执行以下操作:响应接收到中断信号,识别与该组提供控制器中的一个提供控制器相关联的第一中断服务器以处理该中断,其中该组中断服务器及其提供控制器使用在该组提供控制器的中断服务器的中断管理区域中找到的一组标识符以循环表链接;以及如果第一中断服务器不能处理该中断,则根据标识有可能位于该组提供控制器的第二提供控制器中的中断服务器的标识符,将该中断发送到有可能与该组提供控制器中的第二提供控制器相关联的第二中断服务器,其中该标识符被找到。
14.一种用于使用一组与提供控制器相关联的中断服务器来管理中断的数据处理***,所述数据处理***包括:
识别装置,用于响应接收到中断信号,在该组中断服务器中识别第一中断服务器以处理该中断,其中该组中断服务器使用一组标识符以循环表链接;以及
发送装置,用于如果第一中断服务器不能处理该中断,则根据标识该组提供控制器中的第二中断服务器及其提供控制器的标识符,将该中断发送到有可能与该组提供控制器中的第二提供控制器相关联的第二中断服务器,其中该标识符在第一提供控制器内找到,其中该中断传到有可能与该循环表内的不同提供控制器相关联的不同中断服务器。
15.如权利要求14所述的数据处理***,其中,所找到的该组标识符在与由提供控制器管理的该组中断服务器相关联的一组中断管理区域内找到。
16.如权利要求14所述的数据处理***,其中,如果中断的优先级小于与第一提供控制器相关联的第一中断服务器的当前优先级,则与第一提供控制器相关联的第一中断服务器不能处理该中断。
17.如权利要求14所述的数据处理***,其中,所述中断信号由中断源控制器接收。
18.如权利要求14所述的数据处理***,其中,所述数据处理***包括有可能与第二组提供控制器相关联的第二组中断服务器,其中有可能与第二组提供控制器相关联的第二组中断服务器使用第二组标识符以循环表链接。
19.如权利要求14所述的数据处理***,其中,所述中断信号从该数据处理***中的适配器接收。
20.如权利要求17所述的数据处理***,其中,所述信号与一个优先级以及标识与第一中断提供控制器相关联的第一中断服务器的中断源号相关联。
21.如权利要求20所述的数据处理***,还包括:
改变装置,用于在识别第一提供控制器之后,改变中断源号以标识该循环表内有可能与不同中断提供控制器相关联的不同中断服务器。
22.一种用于使用一组与提供控制器相关联的中断服务器来管理中断的计算机可读介质中的计算机程序产品,所述计算机程序产品包括:
第一指令,用于响应接收到中断信号,在该组中断服务器中识别第一中断服务器以处理该中断,其中该组中断服务器使用一组标识符以循环表链接;以及
第二指令,用于如果第一中断服务器不能处理该中断,则根据标识该组提供控制器中的第二中断服务器及其提供控制器的标识符,将该中断发送到有可能与该组提供控制器中的第二提供控制器相关联的第二中断服务器,其中该标识符在第一提供控制器内找到,其中该中断传到有可能与该循环表内的不同提供控制器相关联的不同中断服务器。
23.如权利要求22所述的计算机程序产品,其中,所找到的该组标识符在与由提供控制器管理的该组中断服务器相关联的一组中断管理区域内找到。
24.如权利要求22所述的计算机程序产品,其中,如果中断的优先级小于与第一提供控制器相关联的第一中断服务器的当前优先级,则与第一提供控制器相关联的第一中断服务器不能处理该中断。
25.如权利要求22所述的计算机程序产品,其中,所述中断信号由中断源控制器接收。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/675,676 | 2003-09-30 | ||
US10/675,676 US7003611B2 (en) | 2003-09-30 | 2003-09-30 | Method and apparatus for handling interrupts using a set of interrupts servers associated with presentation controllers |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1604060A true CN1604060A (zh) | 2005-04-06 |
CN100363914C CN100363914C (zh) | 2008-01-23 |
Family
ID=34422098
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100621130A Expired - Fee Related CN100363914C (zh) | 2003-09-30 | 2004-07-02 | 用于处理中断的方法和装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7003611B2 (zh) |
CN (1) | CN100363914C (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104978289A (zh) * | 2014-04-08 | 2015-10-14 | 英飞凌科技股份有限公司 | 具有共享仲裁单元的服务请求中断路由器 |
CN107247608A (zh) * | 2017-05-31 | 2017-10-13 | 河南思维轨道交通技术研究院有限公司 | 一种具有应用软件硬件地址无关性的操作***实现方法 |
CN107533458A (zh) * | 2016-02-04 | 2018-01-02 | 慧与发展有限责任合伙企业 | 基于存储器寄存器中断的信令和消息传递 |
CN116157777A (zh) * | 2020-09-11 | 2023-05-23 | 苹果公司 | 能扩展的中断 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050283554A1 (en) * | 2004-06-22 | 2005-12-22 | General Electric Company | Computer system and method for queuing interrupt messages in a device coupled to a parallel communication bus |
US20060047878A1 (en) * | 2004-08-25 | 2006-03-02 | Zilavy Daniel V | GPE register block |
US7143223B2 (en) * | 2004-10-14 | 2006-11-28 | International Business Machines Corporation | Method, system and program product for emulating an interrupt architecture within a data processing system |
US7818302B2 (en) * | 2007-03-09 | 2010-10-19 | Emc Corporation | System and method for performing file system checks on an active file system |
US7660570B2 (en) * | 2007-03-12 | 2010-02-09 | John Mezzalingua Associates, Inc. | Active step attenuator |
US7996595B2 (en) * | 2009-04-14 | 2011-08-09 | Lstar Technologies Llc | Interrupt arbitration for multiprocessors |
US8260996B2 (en) * | 2009-04-24 | 2012-09-04 | Empire Technology Development Llc | Interrupt optimization for multiprocessors |
US8321614B2 (en) * | 2009-04-24 | 2012-11-27 | Empire Technology Development Llc | Dynamic scheduling interrupt controller for multiprocessors |
US8234431B2 (en) * | 2009-10-13 | 2012-07-31 | Empire Technology Development Llc | Interrupt masking for multi-core processors |
US9152588B2 (en) | 2012-10-16 | 2015-10-06 | Apple Inc. | Race-free level-sensitive interrupt delivery using fabric delivered interrupts |
US9043522B2 (en) | 2012-10-17 | 2015-05-26 | Arm Limited | Handling interrupts in a multi-processor system |
US9009377B2 (en) | 2012-11-01 | 2015-04-14 | Apple Inc. | Edge-triggered interrupt conversion in a system employing level-sensitive interrupts |
US9792232B2 (en) | 2015-11-16 | 2017-10-17 | International Business Machines Corporation | Techniques for queueing interrupts in a data processing system |
US10248593B2 (en) | 2017-06-04 | 2019-04-02 | International Business Machines Corporation | Techniques for handling interrupts in a processing unit using interrupt request queues |
US10210112B2 (en) | 2017-06-06 | 2019-02-19 | International Business Machines Corporation | Techniques for issuing interrupts in a data processing system with multiple scopes |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5613128A (en) * | 1990-12-21 | 1997-03-18 | Intel Corporation | Programmable multi-processor interrupt controller system with a processor integrated local interrupt controller |
CA2123447C (en) | 1993-09-20 | 1999-02-16 | Richard L. Arndt | Scalable system interrupt structure for a multiprocessing system |
US5689713A (en) * | 1995-03-31 | 1997-11-18 | Sun Microsystems, Inc. | Method and apparatus for interrupt communication in a packet-switched computer system |
US5802377A (en) * | 1996-10-22 | 1998-09-01 | International Business Machines Corp. | Method and apparatus for implementing multiple interrupt controllers in a multi-processor computer system |
US6021456A (en) * | 1996-11-12 | 2000-02-01 | Herdeg; Glenn Arthur | Method for communicating interrupt data structure in a multi-processor computer system |
US6157623A (en) * | 1997-02-14 | 2000-12-05 | Advanced Micro Devices, Inc. | Apparatus and method for selectively outputting data using a MAC layer interface or a PCI bus interface |
US5968158A (en) * | 1997-10-06 | 1999-10-19 | International Business Machines Corporation | Apparatus including a host processor and communications adapters interconnected with a bus, with improved transfer of interrupts between the adapters and host processor |
US6430643B1 (en) | 1999-09-02 | 2002-08-06 | International Business Machines Corporation | Method and system for assigning interrupts among multiple interrupt presentation controllers |
-
2003
- 2003-09-30 US US10/675,676 patent/US7003611B2/en not_active Expired - Fee Related
-
2004
- 2004-07-02 CN CNB2004100621130A patent/CN100363914C/zh not_active Expired - Fee Related
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104978289A (zh) * | 2014-04-08 | 2015-10-14 | 英飞凌科技股份有限公司 | 具有共享仲裁单元的服务请求中断路由器 |
CN104978289B (zh) * | 2014-04-08 | 2018-11-16 | 英飞凌科技股份有限公司 | 具有共享仲裁单元的服务请求中断路由器 |
CN107533458A (zh) * | 2016-02-04 | 2018-01-02 | 慧与发展有限责任合伙企业 | 基于存储器寄存器中断的信令和消息传递 |
CN107247608A (zh) * | 2017-05-31 | 2017-10-13 | 河南思维轨道交通技术研究院有限公司 | 一种具有应用软件硬件地址无关性的操作***实现方法 |
CN116157777A (zh) * | 2020-09-11 | 2023-05-23 | 苹果公司 | 能扩展的中断 |
US12007920B2 (en) | 2020-09-11 | 2024-06-11 | Apple Inc. | Scalable interrupts |
CN116157777B (zh) * | 2020-09-11 | 2024-06-11 | 苹果公司 | 能扩展的中断 |
Also Published As
Publication number | Publication date |
---|---|
CN100363914C (zh) | 2008-01-23 |
US20050080969A1 (en) | 2005-04-14 |
US7003611B2 (en) | 2006-02-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1604060A (zh) | 用于处理中断的方法和装置 | |
CN1114860C (zh) | 处理多个电平触发和边沿触发中断的方法和装置 | |
CN105453044B (zh) | 用于分布式处理任务部分指配的技术 | |
CN101078985A (zh) | 用于识别在计算机***上运行的操作***的方法和设备 | |
CN1284183A (zh) | 执行中断目的地重新指向的机制 | |
US8239868B2 (en) | Computer system, servers constituting the same, and job execution control method and program | |
CN1290365A (zh) | 事务支持的中断目的地重定向和电平触发的中断语义 | |
CN100504817C (zh) | ***控制器、同地址请求队列预防方法及其信息处理设备 | |
CN1174327C (zh) | 确定***配置的方法和*** | |
CN101159765B (zh) | 网络接口方法、装置和*** | |
CN1639702A (zh) | 热插拔接口控制方法和装置 | |
CN1197960A (zh) | 以适应于请求客户的格式提供多媒体信息的服务请求*** | |
CN1728118A (zh) | 资源分配管理 | |
CN1786919A (zh) | 用于在逻辑分区数据处理***中管理资源的方法和设备 | |
CN1755633A (zh) | 用于电子表格链式计算的多线程处理的方法和*** | |
US9529651B2 (en) | Apparatus and method for executing agent | |
CN101046774A (zh) | 使用替代页池管理dma写入页错误的计算机实现方法和装置 | |
CN1838078A (zh) | 在数字信号处理器内调换码的方法及*** | |
CN110912967A (zh) | 一种服务节点调度方法、装置、设备及存储介质 | |
CN1955933A (zh) | 数据处理设备和方法 | |
CN111831408A (zh) | 异步任务处理方法、装置、电子设备及介质 | |
CN1522061A (zh) | 存储装置和处理方法 | |
CN110543362B (zh) | 一种图形处理器管理方法、装置及服务器 | |
CN1567279A (zh) | 数据传送方法和数据传送*** | |
CN1188781C (zh) | 存储器的寻址 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20080123 Termination date: 20150702 |
|
EXPY | Termination of patent right or utility model |