多节点系统中硬件事件的聚集的制作方法

文档序号:6428550阅读:145来源:国知局
专利名称:多节点系统中硬件事件的聚集的制作方法
技术领域
一般说来,本发明涉及多节点计算机系统,这些计算机系统有不止一个节点,每个节点有一个处理器、内存等。更确切地说,本发明涉及管理这些系统的节点产生的硬件事件。
背景技术
在一个计算机系统中,多种硬件产生需要处理的事件。例如,高级配置和电源接口(ACPI)规范提供了一种电源管理和配置机制。在具有ACPI兼容硬件的ACPI兼容计算机系统中,这些系统本身能够响应内部和外部的事件而启动和关闭,从一个电源有利位置也能够管理特定的硬件部件。例如,在一种低功耗模式下的一片网卡,从相连的网络收到一个数据包时,就可以产生一个事件,并且从低功耗模式下唤醒。例如,这个事件由网卡所属的计算机系统接收,所以该计算机系统本身也从它过去已经进入的一种低功耗模式下退出。另一种类型的事件是热插拔事件,发生于一个计算机系统运行时一片硬件卡插入系统或从系统中拔出。
ACPI事件以及其他类型的硬件事件的缺点在于,它们假设产生这些事件的硬件是计算机系统的一部分,而由该系统来处理这些事件。换言之,指定这些硬件事件所常常依据的架构,并不知晓是多节点系统,因此假设该架构是单节点系统。在多节点计算机系统中有许多节点,每个节点都有其自己的处理器、内存等,而处理工作分布在这些器件上。不仅如此,典型情况下,ACPI事件硬件的实施芯片组本身也不知晓多节点。知晓ACPI的操作系统通常假设系统中ACPI事件硬件的单个实例,通常也不知晓重复的ACPI事件硬件。
所以,当前的硬件事件处理架构常常假设,在一个多节点计算机系统的一个给定远程节点之内产生的事件,将由该节点处理。例如,没有一种机制使一个主要的或者说启动的系统节点来接收该事件的通知,也没有一种机制使这个节点来处理该事件和指导远程节点如何处理该事件。标准的ACPI事件硬件也不提供通知操作系统在哪个节点上发生了一个事件的机制。这会造成问题,因为按照操作系统中管理硬件的策略,就会假设在整个系统中仅有ACPI事件硬件的单一实例。不过,对于围绕标准ACPI事件硬件设计的多节点系统,这种假设不成立。由于上述理由,以及其他理由,需要本发明。

发明内容
本发明涉及多节点系统中硬件事件的聚集。以本发明的一种方法,通过由一个远程节点的固件向一个主节点的第一寄存器写入,把远程节点上发生的事件传送到该主节点。将该事件从主节点的第一寄存器传播到该主节点的第二寄存器。然后作为自动响应,在主节点上产生一个中断。然后,主节点的一个中断处理器响应该中断的产生,调用主节点上的代码以处理远程节点上发生的事件。
本发明的多节点系统包括一个主节点和一个或多个远程节点。主节点具有第一和第二寄存器,相互通信连接。正常情况下,为主节点事件而保留第二寄存器。主节点也包括不知晓多节点的代码来处理这些事件,为响应中断而调用代码,这些中断本身是响应把若干事件从第一寄存器传送到第二寄存器而产生的。这些事件在远程节点上发生,并被传送到该主节点的第一寄存器,以便由主节点对这些事件进行最终处理。这些事件自动地从主节点的第一寄存器传播到第二寄存器。
本发明的制成品包括一种计算机可读的介质以及该介质中的装置。该装置用于把写入一个主节点第一寄存器的一个事件,自动地传播到该主节点的第二寄存器,以便使一个远程节点上发生的事件从第一寄存器传送到第二寄存器。在主节点中产生一个中断,以自动响应向第二寄存器的写入。该装置还用于调用主节点中的代码来处理该事件,以响应中断的产生。连同附图,从本发明当前优选实施例的以下详细说明,本发明的其他特征和优点将会显而易见。
附图简要说明

图1是一幅流程图,展示了依据本发明的一个优选实施例的一种方法,并建议印在所发布专利的第一页上。
图2是一幅框图,显示了一种硬件事件架构实例,本发明的一个实施例可以与其一起实施。
图3是一幅框图,显示了一种多节点系统实例,本发明的一个实施例可以与其一起实施。
图4详细地显示了依据本发明的一个优选实施例,在一个多节点系统(比如图3的系统)之内,比如连同图2的事件架构进行事件传送和处理的整体流程。
图5是一幅框图,显示了依据本发明的一个优选实施例的多节点系统,尤其是其主节点的寄存器。
具体实施例方式
概述图1显示了依据本发明的一个优选实施例的一种方法100。方法100的功能可以实施为一种计算机可读介质的制成品中的装置。例如,计算机可读的介质可以是一种可记录的数据存储介质,或者是一种调制后的载波信号。在一个多节点系统的一个远程节点和一个主要的或者说启动节点上,执行方法100的若干部分,分别如虚线106分开的102列和104列所示。
一个硬件事件首先发生在远程节点(108)。该硬件事件可以是一个高级配置和电源接口(ACPI)事件,比如一个热插拔事件,或者另一种类型的硬件或其他事件。该事件在远程节点产生一个中断(110),比如平台管理中断(PMI)。专门由远程节点的一个部件产生该中断,比如一个中断路由器。为了响应该中断的产生,一个固件中断处理器探测该事件,并且在远程节点上受到调用(112)。固件中断处理器把该事件写入主节点的第一寄存器,从而把该事件从该远程节点传送到该主节点(114)。例如,远程节点上的一个固件PMI处理器可以把该事件导向主节点的通用输入/输出(GPIO)寄存器。
在主节点,为了自动响应把该事件写入第一寄存器,通过把主节点第一寄存器的输出直接连接到第二寄存器的输入,使该事件传播(116)。优选情况下,通常为了在主节点上发生的事件而保留第二寄存器,不用于在远程节点上发生的事件。以这种方式,方法100更好地利用了主节点的寄存器,比如第二寄存器,它通常仅仅用于主节点上发生的事件。在ACPI事件的情况下,第二寄存器可以是为这些事件而保留的一个通用事件(GPE)寄存器。把事件写入第二寄存器,在主节点上产生了一个中断(118),比如系统配置中断(SCI)。
中断在主节点上产生,又使代码受到调用(120)。该代码用于处理最终产生中断的事件。例如,在ACPI事件的情况下,该代码可以是操作系统(OS)的ACPI驱动程序。该代码可以不知晓多节点,因为该代码本身并不知晓该事件不是在主节点本身产生的。以这种方式,方法100就能够使用标准的驱动程序,比如标准的ACPI驱动程序,因此不需要为了主节点以外的节点上发生的事件而写入这些驱动程序。
该代码本身调用一个特定的过程来处理该事件(122)。该过程反过来知晓多节点,并且是专门设计来应付主节点以外的节点上发生的事件。例如,该过程可以是一种ACPI机器语言(AML)方法,AML是一种简洁的、标记化的抽象机器语言。该过程恰当地指导远程节点处理该事件(124),所以经由这种指导,该事件就在远程节点上得到处理(126)。例如,该过程可以远程操纵硬件,比如发生事件的一个控制器或其他硬件。
背景技术
图2显示了一种事件架构实例200,按照它可以实施本发明的实施例。架构200专门用于ACPI事件,并且是以与单节点系统相比的方式来介绍,然后它能够经由本发明的实施例扩展到多节点系统。平台硬件202包括产生ACPI事件的控制卡和其他类型的硬件。硬件202可以接收其若干设定值,例如来自基本输入/输出系统(BIOS)204,它是一种固件。OS有关的若干部件206包括若干ACPI寄存器208、一个ACPC BIOS 210和若干ACPI表格212。ACPI寄存器208可以包括详细说明的前一节中介绍的第二寄存器。ACPC BIOS 210是一种固件,可以记录硬件202的若干ACPI设定值。ACPI表格212描述了至硬件202的接口,为ACPI驱动程序和AML解释程序216所用。
优选情况下,ACPI驱动程序和AML解释程序216包括或具有对详细说明的前一节中介绍之过程的访问,ACPI驱动程序调用它来处理一个远程节点事件。典型情况下,ACPI驱动程序对于一个给定的OS是标准的,并且包括AML解释程序以便解释和分析以AML写成的过程。换言之,虽然这些过程可以是非标准的、专门针对一种给定的情形,比如远程节点事件,但是典型情况下ACPI驱动程序本身是标准的。ACPI驱动程序和AML解释程序216与硬件平台202所用的OS设备驱动程序214互动。设备驱动程序就是连接硬件和OS的软件例程。
不仅如此,设备驱动程序214和ACPI驱动程序和AML解释程序216,都与OS核心218互动。核心就是OS的基础部分,它通常一直驻留在内存中并提供基本服务。就是OS的这个部分最靠近硬件,典型情况下是通过设备驱动程序214来激活硬件。在核心218的顶上,是若干应用程序222,运行在该计算机系统中。核心218也与OS电源管理(OSPM)系统代码220互动,它是OS的一部分,设计为提供和监督电源管理服务。
图3显示了一种多节点系统实例300,与它一起可以实施本发明的若干实施例。多节点系统300包括许多节点302a、302b、…、302n,通过一种互连306相互连接。其中一个节点是主要的或者说启动节点,其他节点是对于这个主节点的远程节点。每个节点可以进一步可选地包括以下的任何或所有部件一个或多个中央处理器(CPU)和/或易失性或非易失性存储器,以及一台或多台存储设备,比如硬盘驱动器、软盘驱动器等。例如,节点302a具有CPU308、内存312、服务处理器310和存储设备314。同样,节点302b具有CPU316、服务处理器318、内存320和存储设备322。最后,节点302n具有CPU324、服务处理器326、内存328和存储设备330。
远程节点硬件事件聚集至主要的或者说启动节点图4是一幅事件流图400,展示了一个实施例如何把若干硬件事件从若干远程节点聚集到一个主要的或者说启动节点。事件流图400中的功能划分为两部分,分别由一个第一远程节点402也称为远程节点N和一个主要的或者说启动节点404执行。虚线406划分了第一远程节点402执行的功能和主节点404执行的功能。除了远程节点402以外,也可以包括其他的远程节点。
事件流图400是为了说明第一远程节点402上的一个事件,如何聚集或者说聚结到主节点404。在节点402的一个热插拔控制器412上发生了一个事件,如线条414所示。该事件是一个热插拔ACPI事件。控制器412探测硬件卡插入节点402和从节点402拔出。该事件由节点402的一个中断路由器416探测到,作为响应它产生一个PMI中断,如线条418所示。节点402的PMI中断处理器420响应这个中断的产生,一开始就禁用PMI中断,如线条422所示。然后,中断处理器420把该事件写入主节点404的一个GPIO寄存器426,如线条424所示,从而向主节点404发出该事件的信号。
把该事件写入主节点404的GPIO寄存器426,就自动地把该事件传送到主节点404的一个GPE寄存器430,如线条428所示。这是因为GPIO寄存器426与GPE寄存器430至少是通信连接,优选情况下是直接连接。把该事件写入GPE寄存器430,就产生了一个SCI中断,如线条432所示。OS中断处理器434处理SCI中断,作为响应而调用节点404的ACPI驱动程序438,如线条436所示。作为响应,驱动程序438调用AML方法444,如线条442所示。AML方法444专门处理远程硬件事件,而优选情况下驱动程序438是一个标准的ACPI驱动程序,没有为了处理远程硬件事件而修改。同样,GPE寄存器430是一个ACPI寄存器,正常情况下用于处理本机硬件事件。
AML方法444首先操纵控制器412,如线条446所示,以便处理在控制器412起始的远程事件。一旦发生了这种情况,它就清除热插拔事件,如线条448所示,并且再次启用PMI中断,如线条450所示。它最后通知驱动程序438,它已经完成了该事件的处理,如线条452所示,并且来自GPE寄存器430的事件也被清除,如线条440所示。以这种方式,第一远程节点402的热插拔控制器412上产生的热插拔事件,就聚集到启动节点404以便进行处理,从而更好地利用了不知晓多节点的寄存器430和驱动程序438,正常情况下它们是用于主节点上的事件。做到这一点,是通过把寄存器426保留为用于主节点404以外节点上的事件,以及使用一种知晓多节点的方法444。换言之,驱动程序438是不知晓多节点的代码,而方法444是知晓多节点的过程。除了远程节点402以外,其他的远程节点以同一方式处理事件。
图5显示了依据本发明的一个优选实施例的多节点系统500,它能够实施图4的事件流图400。系统500包括一个主节点502,它与许多远程节点510a、510b、…、510n通信连接,比如通过图5中未显示的一种互连。例如,主节点502可以是图4中的启动节点404,而图4中的远程节点402可以是远程节点510a、510b、…、510n中的一个。
主节点502包括一个操作系统事件驱动程序504和一种方法512,优选情况下,前者不知晓多节点,而后者知晓多节点。驱动程序504可以是图4中的ACPI驱动程序438,而方法512可以是图4中的方法444。驱动程序504不知晓多节点,因为它是为主节点502上产生的事件而标准化的,这些事件与远程节点510a、510b、…、510n上产生的事件不同。主节点502包括若干寄存器506和若干寄存器508,它们可以分别包括图4中的GPE寄存器430和GPIO寄存器426。优选情况下,通常为主节点502本身产生的硬件事件而保留寄存器506,而为远程节点510a、510b、…、510n上产生的事件而保留寄存器508。
所以,在系统500之内,远程节点510a、510b、…、510n上产生的事件传送到寄存器508,这些寄存器就是为这个目的所保留的。然后作为响应,这些事件从寄存器508自动传送到寄存器506,从而更好地利用寄存器506,这些寄存器通常是为主节点502上的硬件事件所保留的。优选情况下,寄存器508直接连接到寄存器506,寄存器508至少是与寄存器506通信连接。驱动程序504由于不知晓多节点,所以会相信这些事件是在主节点502上产生的,然后调用方法512。因为方法512知晓多节点,它就能够恰当地处理和处理这些事件。以这种方式,不知晓多节点的驱动程序504就在多节点系统500之内得到了更好的利用。
较现有技术相比的优点本发明的实施例与现有技术相比可以实现若干优点。本发明能够在原来不知晓多节点或者不可用多节点的一种架构之内,使远程节点硬件事件聚结或者说聚集到一个主要的或者说启动节点。实现这种聚集时不必要求重写该架构的主节点驱动程序,而且实现是使用了这些驱动程序为主节点事件而正常引用的寄存器。因此,不必脱离ACPI规范,不必修改ACPI兼容的驱动程序,就能够实现硬件事件比如ACPI事件的聚集。
另外的实施例应当承认,尽管为了展示的目的,本文已经介绍了本发明的若干特定实施例,但是在不脱离本发明实质和范围的情况下,可以作出多种修改。例如,已经在本质上介绍过的本发明,是有关ACPI硬件事件,比如热插拔事件。不过,本发明本身并非局限于此。例如,本发明可以修改为对于其他类型的事件,以及其他类型的硬件事件。
作为另一个实例,已经在本质上介绍过的本发明,是有关不知晓多节点的,或者正常情况下是为主节点上产生之事件所用而保留的若干驱动程序及某些特定的寄存器。不过,本发明本身并非局限于此。例如,本发明也可以修改为对于知晓多节点的、专门编写的驱动程序,然后它们再检查某些特定的寄存器,为多节点系统的所有远程节点所用已经将这些寄存器进行了划分。换言之,由驱动程序直接读取的寄存器,它们本身能够因为多节点系统所用而划分,而不是在正常情况下为主节点所用而保留,如同本发明已经在本质上介绍过的情况。所以本发明的保护范围仅仅受限于以下的权利要求书及其相当内容。
权利要求
1.一种方法,包括通过由一个远程节点的固件向一个主节点的第一寄存器(508)写入,把远程节点上发生的事件,从该远程节点传送(114)到该主节点;将该事件从主节点的第一寄存器传播(116)到主节点的第二寄存器(506);作为对写入主节点第二寄存器的自动响应,在主节点上产生(118)一个中断;以及主节点的一个中断处理器响应该中断的产生,调用(120)由主节点上的代码以处理远程节点上发生的事件。
2.根据权利要求1的方法,其特征在于,主节点的第二寄存器正常情况下是为了主节点的事件而保留,而且主节点上的代码不知晓多节点。
3.根据权利要求1-2中任何一条的方法,其特征在于,主节点的第二寄存器是为了包括主节点和远程节点的所有节点的事件而保留,而且主节点上的代码知晓多节点。
4.根据权利要求1-3中任何一条的方法,进一步包括为了响应主节点代码的调用,由该代码在主节点上调用一个知晓多节点的过程(512),以便处理远程节点上发生的事件。
5.根据权利要求1-4中任何一条的方法,进一步一开始就包括为了自动响应远程节点上发生的事件,在远程节点上产生(110)一个远程中断,远程中断的产生使远程节点的一个中断处理器通过向主节点的第一寄存器写入,把该事件传送到该主节点。
6.根据权利要求5的方法,进一步一开始就包括在远程节点的硬件上产生一个事件,该事件的产生使远程节点的一个中断路由器自动响应远程节点上发生的事件,在远程节点上产生远程中断。
7.根据权利要求1-6中任何一条的方法,其特征在于,在远程节点上发生的事件以及主节点的至少某些事件包括异步硬件事件。
8.一种多节点计算机系统,用于执行权利要求1-7中任何一条的方法。
9.一种物品,包括一种计算机可读的介质;以及介质中的装置,用于执行权利要求1-7中任何一条的方法。
全文摘要
本文公开了一种多节点系统中硬件事件的聚集。通过由一个远程节点的固件向一个主节点的第一寄存器写入,把远程节点上发生的事件传送(114)到该主节点。将该事件从主节点的第一寄存器传播(116)到该主节点的第二寄存器。作为自动响应,在主节点上产生(118)一个中断。然后,主节点的一个中断处理器响应该中断的产生,调用(120)主节点上的代码以处理远程节点上发生的事件。
文档编号G06F1/26GK1561493SQ02819378
公开日2005年1月5日 申请日期2002年9月26日 优先权日2001年10月1日
发明者理查德·A·拉里, 丹尼尔·H·巴克斯 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1