冗余控制器仲裁方法和系统的制作方法

xiaoxiao2020-7-22  5

专利名称:冗余控制器仲裁方法和系统的制作方法
技术领域
本发明一般涉及冗余控制系统领域,并且尤其涉及用于冗余控制器的仲裁机制,该机制使用用于冗余控制器的硬件输出联锁以及冗余控制器之间的自动转换能力。
背景技术
在许多类型的系统中设置冗余以便增加可靠性。例如,对于由控制器运行的一系统复合体(complex),如果可使控制器是冗余的,则能够大大提高系统可用性。在服务器系统中的控制器可实现以下功能,例如给系统通电/断电和配置系统,以及向处理器、存储器和输入/输出(I/O)元件传递建立(setup)和状态信息。这种控制器的故障将使得服务器系统不能工作。
为了实现冗余控制器,需要一种选择机制以确定哪个控制器将是负责处于控制之下的装置或系统的活动控制器,而哪个控制器将是作为备用处于等待状态的空闲控制器。在各冗余控制器的输出在外部电连接在一起并作为输入被提供给处于控制之下的装置/系统的环境中,选择机制或仲裁功能是复杂的。
申请人认识到在这样的环境中,设计实现应该能够确保各冗余控制器的输出不能在同一时刻被使能,以便消除可能的冲突数据或对处于控制之下的装置潜在的损害。本发明旨在提供一种机制以处理所述的由各冗余控制器控制的输出电连接在一起并作为输入提供给处于控制之下的装置的环境中的这些仲裁需求。

发明内容
一方面,这里提供了一种用于对冗余控制器进行仲裁的方法,其包括提供用于自动确定哪个冗余控制器是活动控制器的逻辑,其中被各冗余控制器控制的输出电连接在一起并作为输入被提供给至少一个装置;以及提供一种用于该些冗余控制器的硬件输出联锁,以确保仅使得该活动控制器控制的输出作为输入提供给该至少一个装置。
另一方面,提供一种在各冗余控制器之间进行仲裁的方法。该方法包括自动确定哪个冗余控制器是活动控制器,其中被各冗余控制器控制的输出电连接在一起并作为输入被提供给至少一个装置;监视该活动控制器的故障情况;并且一检测到故障,就将活动控制自动转换到该些冗余控制器中的另一个控制器,其中将活动控制自动转换到该些冗余控制器中的另一个控制器对于该至少一个装置是透明的。
这里,还说明并要求保护了对应于上述方法的系统和程序产品。
另外,通过本发明的技术还实现了另外的特征和优点。在这里详细说明了本发明的其它实施例和方面,并认为它们是被要求保护的本发明的一部分。


在说明书结尾部分的权利要求中具体指出并清楚地要求保护了本发明的主题。从下面参照附图的详细说明中可清楚地了解本发明的上述和其它目标、特征和优点,在附图中图1是根据本发明的一个方面的各冗余控制器的一个实施例的结构图,该些冗余控制器使它们的受控制的输出电连接到一起并作为输入提供给处于控制之下的装置,并且具有一仲裁机制;图2A-2C是根据本发明的一个方面的仲裁逻辑的一个实施例的流程图,该仲裁逻辑用于在各冗余控制器之间进行仲裁以自动确定一活动控制器,并在该活动控制器出故障时将控制从一控制器自动转换到另一个控制器;
图3A和3B是根据本发明的一个方面的图1的冗余控制器的更详细的视图,示出在各冗余控制器之间提供输出联锁的仲裁硬件的一个实施例;以及图4示出根据本发明的一个方面的用于图3A和3B的输出联锁的状态机的实施例。
具体实施例方式
一般说来,在一个方面这里给出一种用于控制装置、系统、系统复合体、硬件部件、总线等(这里一般地被称为“装置”或“处于控制之下的装置”)的冗余控制器的仲裁机制。由冗余控制器控制的输出电连接在一起并作为输入被提供给一个或多个处于控制之下的装置。根据该仲裁机制,软件逻辑自动确定该些冗余控制器中的哪个控制器是活动控制器,而一硬件输出联锁确保仅使得该活动控制器的输出作为输入输入到该一个或多个处于控制之下的装置。该仲裁机制还包括用于检测活动控制器的故障以及用于使活动控制自动转换到该些冗余控制器中的另一控制器的逻辑,其中使活动控制自动转换到该另一控制器对于该一个或多个处于控制之下的装置是透明的。
如下面所述,根据本发明的一个方面的仲裁机制的一个实施例使用针对冗余控制器中的每个控制器的硬连线标识位,用于确定活动控制器和空闲控制器的软件仲裁部件或算法,以及该活动控制器发生故障时所用的转换功能,用于每个控制器的监视计时器(例如,在硬件仲裁部件内实现),和状态机(也实现为该硬件仲裁部件的一部分),该状态机使能或禁止控制器输出,作为确保每次仅使能由一个控制器控制的输出的故障保险。尽管示出了使用硬连线标识位,但是可以使用任何用于识别控制器并具有用于确定哪个控制器是默认的活动控制器的确定方法的技术。因为由各冗余控制器控制的输出连接在一起并作为单个一组输入被提供给处于控制下的装置,所以将活动控制从一个控制器转换到另一个控制器对于该装置可以是透明的,其中假设该些控制器包含至少两个完全相冗余的控制器。
图1示出根据本发明的一仲裁机制的示例。在此示例中,两个冗余控制器100(即控制器0,控制器1)控制各自的输出110,该输出可包括来自该控制器的直接输出或来自由各自控制器控制的其它电路的输出。如图所示,输出110电连接在一起,并作为一组输入被提供给处于控制之下的装置/系统120。在此实施例中,一仲裁机制130(根据本发明)包括一软件仲裁部件140和一硬件仲裁部件150。如下面将参照图3A和3B说明的,信号152在各控制器100以及各仲裁机构130之间交换。每个硬件仲裁部件150的输出是使能/禁止信号151,该信号是故障保险硬件联锁使能信号,用于控制将哪个输出110作为输入提供给处于控制之下的装置/系统120。
图2A-2C示出图1的软件仲裁部件140实施的逻辑的示例。在图2A中,该逻辑一开始将一标记为“count”的计数器设定为时间1 202。如下面将说明的,此逻辑使用四个时间间隔,即时间1、时间2、时间3和时间4。作为特定示例,时间1可包含10秒,时间2为1.5秒,时间3为3.5秒且,时间4为1秒。“count”是处理通过图2的逻辑所用的时间。
然后,处理等待多于第二时间即时间2的时间204。这里时间2也被称为通信计时器(即“comm timer”),并且处理最初等待足够的时间以确保在继续下去之前通信计时器的周期已过。
检查相关联的控制器的标识符位206,以确定该控制器的标识。在此示例中,假设如图1中所示使用两个冗余控制器。可使用硬连线标识位识别控制器;例如,可使用板的引脚来确定一控制器位于什么位置,即该控制器是控制器0或控制器1。处理判定该相关联的控制器是否在控制器0的位置208。如果是这样的话,则处理宣布本身是活动候选处理器210,并判定该相关联的控制器是否出故障212。如果是“否”,则试图与另一个控制器通信214。处理确认控制器是否可进行通信(见图2B)216。如果是这样的,则判定另一个控制器是否是活动的218、220。如果是“否”,则处理宣布其控制器是活动控制器222,并且判定变量“count”是否小于时间1 224。如果是“是”,则处理设定“count”等于“count+1”226,并等待时间4,然后循环回到212(见图2A)以判定该相关联的控制器是否出故障。
如图2A所示,如果该相关联的控制器已发生故障(即,坏掉),则该逻辑通知另一个控制器它应该是活动控制器240,并确认控制器通信242。如果是这样的话,则处理宣布它本身为空闲控制器(图2C)250。如果控制器没有进行通信,则处理等待时间1+时间2 244(图2A)以确保该第二控制器认识到该第一控制器已出故障(即,已超时)。然后处理宣布它本身是空闲控制器250。
如图2B所示,如果在询问216处判定这两个控制器不能通信,则处理检查该另一个控制器的监视计时器252。如下面将说明的,只有所选择的活动控制器的仲裁软件部件将为其硬件组设定一监视计时器,这使得其相关联的输出被使能。空闲控制器的仲裁软件部件不为其硬件仲裁部件设定一监视计时器,从而保持其受控的输出被禁止。因此,处理判定该另一个控制器的监视计时器是否被设定254,并且如果是“是”,则宣布它本身是空闲控制器250(图2C),因为仅有一个控制器可具有活动控制。如果没有设定该另一个控制器,则处理宣布它本身是活动控制器222,并如上所述继续进行。
在宣布它自身是活动控制器之后,如果计数值大于或等于时间1,则该处理程序将count设置为等于1 230(图2B)并设置其监视计时器232。可选地,然后可读取其监视计时器234以检验该监视计时器是否已被正确设定236,并且如果是这样的话,处理等待时间4 228,然后循环回去以判定相关联的控制器是否已出故障212(图2A)。如果该监视计时器是不正确的,则处理宣布控制器故障238。
如果该相关联的控制器位于不同于控制器0的位置的位置,则从询问208(图2A)处理判定该控制器是否位于控制器1的位置260。如果是“否”,则处理与另一个控制器262(图2C)通信以试图从一明显无效的标识符恢复。如果该另一个控制器位于控制器0的位置264,则仲裁软件宣布与其相关联的控制器是空闲控制器250。否则,处理宣布它本身是活动候选控制器210(图2A),并试图如上所述获得活动控制。
假设该控制器位于控制器1的位置,然后处理宣布它本身是空闲控制器250(图2C),并清除其监视计数器270,再次确保该控制器的受控输出被禁止。然后处理设定通信计时器等于时间2 272并等待时间3 274,时间3小于该通信计时器的时间。如上所述,可将该通信计时器设定为1.5秒,其是控制器进行通信的周期时间。然后,处理判定另一个活动控制器是否已请求与其相关联的控制器是活动的276,并且如果是“否”,则检查通信计时器278。如果该通信计时器还没有到期280,则处理返回以等待时间3 274。否则,处理检查该另一个控制器的监视计时器282,并判定是否已设定该另一个控制器的监视计时器284。如果是“是”,则处理返回以等待时间3 274。否则,处理宣布该相关联的控制器是活动控制器222(图3B)。如果一第一控制器已使得一第二控制器是活动控制器,则从询问276,该第二控制器宣布它本身是活动控制器222。
图3A和3B示出图1的电路的更详细的示例,该电路示出仲裁硬件部件150的一个实施例。如图所示,每个仲裁硬件部件150与相关联的控制器100(控制器0,控制器1)的仲裁软件部件140通信。只有一个仲裁硬件电路向被相关联的控制器100控制的输出110提供使能信号。然后将这些输出作为输入提供给处于控制之下的装置/系统120。
在仲裁硬件150内示出了通信控制的数字输入/输出(DIOS)300。DIOS300的输出是信号Y4、Y3,它们分别被发送给监视计时器电路310的清除和设定输入。DIOS 300的设定和清除输出由仲裁软件140依照上述逻辑控制。监视计时器电路310的输出是信号“WD”,其在通电时必须为低。将信号“WD”作为一个输入提供给状态机320,也作为一输入Y1提供给DIOS 300。输入Y1告知该仲裁软件它自身的监视计时器输出的状态。相关联的控制器的标识“ID”以及另一端的状态“SOS”(即冗余控制器的仲裁硬件部件的监视计时器的状态)也输入状态机320。也将“SOS”信号作为输入Y2,以及状态机320的“EN”信号作为输入Y0提供给DIOS300。在上文联系图2A-2C讨论的仲裁软件逻辑中再次使用这些信号。还将监视计时器输出“WD”提供给反相器330,该反相器受来自状态机320的这一端的状态“STS”信号的控制。如图所示,将反相器330的输出作为“SOS”信号提供给另一个硬件仲裁部件150。如果相关联的控制器出故障,则通过所示的电阻器和VCC将该“SOS”信号提供给另一个仲裁硬件。
图4示出用于仲裁硬件部件150的状态机320的一个示例。通常,将来自每个控制器硬件的监视计时器信号的状态作为输入提供给该状态机,以确定是否应该使能由该相关联的控制器控制的输出。设定活动控制器的监视计时器而没有设定空闲控制器的监视计时器,这使能了受该活动控制器控制的输出。该状态机被设计成使得该硬件联锁机制决不会允许受两个控制器控制的输出同时被使能,哪怕是一瞬间也不会。空闲控制器的仲裁软件部件经常监控活动控制器的监视计时器的状态。活动控制器一出故障,仲裁软件部件就允许该空闲控制器接管并成为活动控制器。该新的活动控制器设定它的监视计时器,然后只要该旧的活动控制器的输出因为其监视计时器不再被设定而被禁止,就允许使能该新的活动控制器的输出。
如图4所示,在状态机中有四种可能的状态,即空闲默认400,活动候选410,活动420和未使用430。状态机的输入有ID(例如0等于控制器0的插槽,1等于控制器1的插槽),SOS(另一端的状态),其中1=空闲,0=活动或活动候选,以及WD(监视计时器),其中0=空闲,1=试图成为活动或保持活动。状态机的输出是一使能信号(EN),其使能受该相关联的控制器控制的输出,和这一端的状态(STS)信号,当状态为活动候选或活动控制器时该信号被设定。图4中的输入“X”表示用于在状态机的各状态之间移动的无所谓的输入。
在启动后,状态机处于空闲默认状态400并保持在该状态,直到SOS和WD都等于1,此时状态机进入活动候选状态410。为了从活动候选状态410转换到活动控制器状态420,要求该控制器为控制器0并且其监视计时器被设定,或者其ID为控制器1且SOS和WD都等于1。一旦进入活动状态420,状态机就停留在该状态,直到其监视计时器410超时,此时状态机返回空闲默认状态400。如果其ID为控制器1,并且另一端的状态是活动的,或者其监视计时器是空闲的,则状态机也可从活动候选状态410回复到空闲默认状态400。在上电时也可能偶然进入未使用状态430,并且存在一自动特征,该特征使得状态机一开始迅速转到空闲默认状态400,而不管输入如何。
总之,本技术领域内的技术人员可从上面的说明中注意到,提供了一种用于冗余控制器的仲裁机制,其根据两个冗余控制器的状态提供一输出使能信号,和一种用于自动确定哪个控制器将是活动控制器而哪个控制器是空闲控制器的仲裁方法。还提供一种用于自动监视控制器的故障并使控制转换到另一个冗余控制器的装置。该仲裁机制可使用一硬件输出联锁,使得每次仅仅一个控制器使能的输出是活动的,从而避免了冲突数据或者对输出和/或处于控制之下的装置的潜在的损害。在一实施例中,该仲裁机制采用针对每个冗余控制器的硬连线的控制位以识别控制器,一用于确定活动控制器和空闲控制器软件仲裁部件,以及转换能力,用于每个控制器的硬件仲裁部件的监视计时器,和一用于控制对受该些冗余控制器控制的输出的使能的状态机。
本发明可被包含在一种具有例如计算机可用介质的产品(例如一个或多个计算机程序产品)中。该介质在其中包含例如用于提供和便利本发明的能力的计算机可读的程序代码装置。该种产品可作为计算机系统的一部分,或被单独销售。
另外,还提供至少一种可被一机器读取并包含至少一个可被该机器执行以实现本发明的能力的指令程序的程序存储装置。
这里所述的流程图仅为示例。可对这里所述的图或步骤(或操作)进行许多不偏离本发明的精神的变动。例如,步骤可按不同的顺序执行,或者可添加、删除或修改步骤。所有这些变动均认为是被要求保护的本发明的一部分。
尽管已详细说明了优选实施例,但是对于相关技术领域内的技术人员很明显,可在不偏离本发明的精神的情况下进行各种修改、添加、替换等,并且认为这些是在由随后的权利要求限定的本发明的范围内。
权利要求
1.一种用于提供冗余控制器的仲裁的方法,包括提供用于自动确定该些冗余控制器中哪个控制器是活动控制器的逻辑,其中由各冗余控制器控制的输出电连接在一起并作为输入被提供给至少一个装置;以及提供用于该些冗余控制器的硬件输出联锁,以确保仅使能该活动控制器控制的输出作为提供给该至少一个装置的输入。
2.根据权利要求1的方法,其特征在于,该方法还包括为该些冗余控制器中每个控制器提供唯一标识,其中所述自动确定包括使用该唯一标识以自动确定该些冗余控制器中哪个控制器是活动控制器。
3.根据权利要求2的方法,其特征在于,所述为该些冗余控制器提供唯一标识的步骤包括为该些冗余控制器中每个控制器提供硬连线的标识位。
4.根据权利要求1的方法,其特征在于,该方法还包括提供用于监视该活动控制器可能的故障,并且一检测到故障就将活动控制自动转换到该些冗余控制器中另一个控制器的逻辑。
5.根据权利要求4的方法,其特征在于,所述监视包括使用用于该些冗余控制器的活动控制器的监视计时器,并在该活动控制器的监视计时器到期时检测该活动控制器的故障。
6.根据权利要求1的方法,其特征在于,提供该硬件输出联锁的步骤包括提供状态机以使能/禁止由该些冗余控制器中每个控制器控制的输出,并确保仅使能该活动控制器的输出作为提供给该至少一个装置的输入。
7.根据权利要求6的方法,其特征在于,该方法还包括使用用于该些冗余控制器中每个控制器的监视计时器,并将来自该些冗余控制器中各个控制器的监视计时器信号的状态作为输入提供给该状态机,其中该状态机使用该些冗余控制器的监视计时器信号的状态以确定使能该些冗余控制器中哪个控制器的输出作为提供给该至少一个装置的输入。
8.根据权利要求7的方法,其特征在于,提供该硬件输出联锁的步骤包括为该些冗余控制器中每个控制器提供状态机,并且其中每个状态机还将相关联的控制器的唯一标识作为输入。
9.一种在冗余控制器之间进行仲裁的方法,包括自动确定该些冗余控制器中哪个控制器是活动控制器,其中由各冗余控制器控制的输出电连接在一起并作为输入被提供给至少一个装置;监视该活动控制器的故障;以及一检测到故障,就将活动控制自动转换到该些冗余控制器中另一个控制器,其中将活动控制自动转换到该些冗余控制器中另一个控制器对于该至少一个装置是透明的。
10.根据权利要求9的方法,其特征在于,该方法还包括为该些冗余控制器中每个控制器提供唯一标识,其中所述自动确定步骤包括使用该些唯一标识以自动确定该些冗余控制器中哪个控制器是活动控制器。
11.根据权利要求9的方法,其特征在于,所述监视步骤包括使用用于该些冗余控制器的活动控制器的监视计时器,并在该活动控制器的监视计时器到期时检测该活动控制器的故障。
12.根据权利要求9的方法,其特征在于,该方法还包括提供该些冗余控制器的输出联锁以确保仅使能该活动控制器的输出作为提供给该至少一个装置的输入。
13.根据权利要求12的方法,其特征在于,所述提供步骤包括为该些冗余控制器中每个控制器提供监视计时器,并提供与该些冗余控制器中每个控制器相关联的监视计时器信号的状态以用于促进该些冗余控制器的输出联锁。
14.一种提供冗余控制器的仲裁的系统,包括用于自动确定该些冗余控制器中哪个控制器是活动控制器的逻辑,其中各冗余控制器控制的输出电连接在一起并作为输入被提供给至少一个装置;以及用于该些冗余控制器的硬件输出联锁,以确保仅使能该活动控制器控制的输出作为输入提供给该至少一个装置。
15.根据权利要求14的系统,其特征在于,该系统还包括用于为该些冗余控制器中每个控制器提供唯一标识的装置,其中所述用于自动确定的逻辑包括用于使用该些唯一标识以自动确定该些冗余控制器中哪个控制器是活动控制器的装置。
16.根据权利要求15的系统,其特征在于,所述用于为该些冗余控制器提供唯一标识的装置包括为该些冗余控制器中每个控制器提供硬连线的标识位的装置。
17.根据权利要求14的系统,其特征在于,该系统还包括用于监视该活动控制器可能的故障,以及一检测到故障,就将活动控制自动转换到该些冗余控制器中另一个控制器的逻辑。
18.根据权利要求17的系统,其特征在于,所述用于监视的逻辑包括用于使用用于该些冗余控制器中活动控制器的监视计时器,以及在该活动控制器的监视计时器到期时检测该活动控制器的故障的装置。
19.根据权利要求14的系统,其特征在于,该硬件输出联锁包括状态机以使能/禁止由该些冗余控制器中每个控制器控制的输出,并确保仅使能该活动控制器的输出作为提供给该至少一个装置的输入。
20.根据权利要求19的系统,其特征在于,该系统还包括使用该些冗余控制器中每个控制器的监视计时器,以及将来自该些冗余控制器中各控制器的监视计时器信号的状态作为输入提供给该状态机的装置,其中该状态机使用该些冗余控制器的监视计时器信号的状态以确定使能该些冗余控制器中哪个控制器的输出作为提供给该至少一个装置的输入。
21.根据权利要求14的系统,其特征在于,该硬件输出联锁包括用于该些冗余控制器中每个控制器的状态机,并且每个该状态机还将该相关联的控制器的唯一标识作为输入。
22.一种用于在冗余控制器之间进行仲裁的系统,包括用于自动确定该些冗余控制器中哪个控制器是活动控制器的装置,其中由各冗余控制器控制的输出电连接在一起并作为输入被提供给至少一个装置;用于监视该活动控制器的故障的装置;以及用于一检测到故障就将活动控制自动转换到该些冗余控制器中另一个控制器的装置,其中将活动控制自动转换到该些冗余控制器中另一个控制器对于该至少一个装置是透明的。
23.根据权利要求22的系统,其特征在于,该系统还包括用于为该些冗余控制器中每个控制器提供唯一标识的装置,其中所述用于自动确定的装置包括用于使用该些唯一标识以自动确定该些冗余控制器中哪个控制器是活动控制器的装置。
24.根据权利要求22的系统,其特征在于,所述用于监视的装置包括使用该些冗余控制器中活动控制器的监视计时器,以及在该监视计时器到期时检测该活动控制器的故障的装置。
25.根据权利要求22的系统,其特征在于,该系统还包括用于提供该些冗余控制器的输出联锁以确保仅使能该活动控制器的输出作为提供给该至少一个装置的输入的装置。
26.根据权利要求25的系统,其特征在于,所述用于提供的装置包括用于为该些冗余控制器中每个控制器提供监视计时器,以及提供与该些冗余控制器中每个控制器相关联的监视计时器信号的状态以用于促进该些冗余控制器的输出联锁的装置。
27.至少一个可被机器读取的程序存储装置,该装置有形地体现至少一个可被该机器执行以完成一种在冗余控制器之间进行仲裁的方法的指令程序,该方法包括自动确定该些冗余控制器中哪个控制器是活动控制器,其中由各冗余控制器控制的输出电连接在一起并作为输入被提供给至少一个装置;监视该活动控制器的故障;以及一检测到故障就将活动控制自动转换到该些冗余控制器中另一个控制器,其中将活动控制自动转换到该些冗余控制器中另一个控制器对于该至少一个装置是透明的。
全文摘要
提供一种仲裁机制,用于在其输出电连接在一起并作为输入被提供给至少一个处于控制之下的装置的冗余控制器之间进行仲裁。该仲裁机制包括用于自动确定该些冗余控制器中哪个控制器是活动控制器的逻辑,以及用于该些冗余控制器以确保仅使能该活动控制器控制的输出作为该至少一个装置的输入的硬件输出联锁。该仲裁机制还包括用于监视该活动控制器可能的故障,以及一检测到故障就对该至少一个装置透明地将活动控制自动转换到该些冗余控制器中另一个控制器的逻辑。
文档编号G06F11/00GK1680924SQ20051006331
公开日2005年10月12日 申请日期2005年4月6日 优先权日2004年4月7日
发明者G·D·安德森, G·J·法尔, R·J·哈林顿 申请人:国际商业机器公司

最新回复(0)