容错数据处理系统 本发明涉及到一种容错数据处理系统。
在设计用于例如监视炼油设备仪器操作所用系统的关键场合的数据处理系统的过程中,对于这种系统的基本要求就是能够容错。
为了保证单纯的硬件故障不致引起整个系统的故障,在硬件中包含有冗余是已这知的。为此,已经建议了一种备份数据处理系统,这样,如果一个系统出现了故障,另外一个系统仍然可以保持操作。利用这种备份系统的困难在于即使是在由所述两个处理子系统产生的数据之间存在有差异,这种差异也不可能总是被清除掉,从而导致这两个子系统中的某一个出现故障并将被置之不理。
为此,已经公知了一种数据处理系统,在该系统中,所述硬件具有三个备份,并且,这三个相互独立但完全相同的子系统的输出被多数表决。本发明涉及到用于这种容错数据处理系统的时钟信号源。
数据处理系统需要一个时钟信号源,用于使该系统中发生的单个处理步骤同步。例如,如果一个运算单元被用于对存储于两个存储单元中的值求和,然后将生成的结果存储在另一个存储单元中,所需要的单个步骤是首先将需要求和的值从存储器传输给运算单元地输入寄存器,从输入寄存器中提取所述值,并在运算单元中进行运算,将运算结果传输给输出寄存器,然后将这个结果从输出寄存器传输给存储器。这些步骤必须按顺序进行,需要时钟信号保证这些步骤的正确同步。
在具有三个并行操作的独立子系统的数据处理子系统中,基本要求是它们的时钟信号必须同步,否则在三个处理子系统的输出之间将会出现简单由于在它们之间的时滞而不是由于它们中间的任何一个出现故障而引起的差异。
如果一个处理子系统使用一个单一的时钟信号源,那么,所有的处理子系统当然可以保持同步,但是,整个系统将不会容忍在所述单一时钟信号源内发生的故障。
因此,已经有了如下建议,即提供三个分隔震荡器,这三个分离震荡器彼此相互耦合以便彼此相互锁定这三个震荡器的相位。但是,由于存在为了保持同步而试图彼此改变所引起的所有三个震荡器的不稳定性的风险,这种解决方法没有全部提供令人满意的效果。
因此,本发明的目的就是要提供一种用于能够稳定地向三个独立处理子系统提供时钟信号的时钟信号源,其中,所述信号源本身能够容错并能够单独地产生,同时能够将时钟脉冲与所述三个处理子系统适当同步。
根据本发明,提供了一种时钟信号源,用于将三个相互独立的时钟信号提供给三备份数据处理系统的三个处理子系统,所述信号源包括一个主基准震荡器,一个相位被锁定到所述主震荡器但即便是所述主震荡器出现故障也能够作为独立震荡器工作的从属基准震荡器,和三个相互独立的时钟电路,其中的每一个时钟电路都连接到主和从基准震荡器上,每个时钟电路都能够检测所述基准震荡器的的故障,且当所述主和从基准震荡器都起作用时,其相位被锁定到主基准震荡器的输出信号上,而当一个基准震荡器被检测出故障时,其相位被锁定到另一个基准震荡器的输出信号上。
在本发明中,当两个基准震荡器都起作用时,所有时钟电路的相位都被锁定到主震荡器上,因此而保持同步。当所有的时钟电路彼此之间相互独立时,在任何一个时钟电路中产生的故障都将只影响该时钟电路自己,而另外两个时钟电路将继续同步操作。
如果从基准震荡器出现故障,那么,所述时钟电路将发出一个警告,表示已经检测到一个故障,但是,由于这三个时钟电路都是与主基准震荡器同步操作的,所以,另外两个时钟电路将继续同步操作。
如果主基准震荡器发生故障,则从属基准震荡器的相位不再锁定到所述从属基准震荡器,并且,从属基准震荡器还将继续保持其独立的功能。每个时钟电路的相位都将被锁定到从属基准震荡器并且所述时钟电路将发出一个主基准震荡器出现故障的警告。
为了使时钟电路能够检测在多个基准震荡器内任何一个震荡器中出现的故障,最好每个时钟电路本身都包括一个本机震荡器。在本机震荡器的输出信号和两个基准震荡器的输出信号之间进行的比较将指出多个震荡器中的一个是否没有起震或是否以一个正确频率的谐波震荡,这是基准震荡器的两种通常故障模式。
在主基准震荡器和从属基准震荡器都出现故障的情况下,三个相互独立的时钟电路不再同步操作,并且,数据处理系统将以普通方式逐渐结束工作。
下面将参考附图对本发明做进一步的描述,其中,唯一的一张附图示出了根据本发明最佳实施例的一个时钟信号源。
附图所示的时钟信号源包括一个作为稳定晶体震荡器并通过相应分隔缓冲放大器(未示出)将同一个的基准信号提供给4个分隔输出端的主基准震荡器10。缓冲放大器保证在任何一个连接到所述主基准震荡器10输出端的电路之间没有相互作用。
主基准震荡器10的4个输出端中的第一个输出端被连接到从属基准震荡器12。从属基准震荡器12包括一个压控晶体震荡器12a,利用比较器12b将压控震荡器12a输出信号的相位与从主基准震荡器10接收的输入信号的相位进行比较。比较器12b的输出经过低通滤波器12c提供给压控震荡器12a,从而使闭环负反馈锁相环保证对震荡器12a加以控制以使在所有时间内与主基准震荡器10彼此同步。
如果相位比较器12b出现故障从而从主基准震荡器10处接收了一个信号,那么,压控震荡器12a将接收一个稳定的d.c电压,用于保持它的频率处于从基准震荡器12的正常频率。
和主基准震荡器10的输出信号一样,从属基准震荡器12的输出也被经过三个分隔缓冲放大器连接到三个时钟电路14a、14b和14c上。
然后,时钟电路14a-14c中的每一个都接收两个基准信号,其中的一个来自主基准震荡器10,而另一个来自从属基准震荡器12。在没有故障的情况下,来自主基准震荡器和从属基准震荡器的这两个时钟信号都存在并且彼此相互同步。如果从基准震荡器12出现故障,那么,时钟电路14a-14c中的每一个都只接收来自主基准震荡器10的时钟信号,相反,如果主基准震荡器10出现故障,那么,从属基准震荡器12将产生同一额定频率的一个时钟信号。
以与另两个时钟电路14b和14c相同方式构成的时钟电路14a具有一个控制电路16,用于接收主和从属基准时钟信号并连接到本机震荡器18。控制电路16只有在确定在主和从属基准震荡器10和12中是否出现故障时才使用本机震荡器18。关于这些基准震荡器10和12的三种可能状态首先是它震荡于正确的频率之下,其次是它根本没有震荡,第三种状态是它震荡于所述正确频率的谐波。通过将来自本机震荡器18的信号频率和自从属基准震荡器10和12接收的信号频率进行比较,这三种状态可以很容易地被彼此鉴别,这个功能是由控制电路16执行的。如果基准震荡器10和12都能够正确的工作,那么,控制电路16使用主基准震荡器10进行时钟同步。如果基准震荡器10和12中的一个出现了故障,那么,控制电路16将发出一个警告,并执行和使用来自正常基准震荡器10或12的信号进行时钟同步。当两个基准震荡器10和12的输出频率与本机震荡器18的输出频率匹配失调时,由于两个基准震荡器10和12都出现故障或本机震荡器本身出现故障,时钟电路14a将进入故障模式。
在一个或两个基准震荡器10和12中出现的故障分别由每个时钟电路单独指出。另一方面,在时钟电路14a-14c中一个时钟电路的任一部分中出现的故障将只影响那个时钟电路。因此,除了在相互同意的情况下,允许不考虑出现在基准震荡器10和12之中并来自时钟电路14a-14c的警告。
控制电路16的输出被施加到时钟驱动电路20上,该驱动电路20产生与从时钟电路14a相关的数据处理子系统需要的各种时钟信号C1kA1-C1kAn。
如果需要,驱动电路20可以包括一个分频器,用于在其一个输出端处产生较低时钟频率。如果需要高于主基准震荡器频率的频率,时钟驱动电路20可以包括一个震荡器、一个分频器和一个锁相环,通过在锁相环中将它的分频输出相位和来自控制电路信号的相位进行比较,所述震荡器被锁定到从控制电路16接收的信号的多级频率上。利用这种方式,每个时钟驱动电路都独立地产生各种时钟信号C1kA1-C1kAn,这些时钟信号是它的相关数据处理子系统所需要的。从上述最佳实施例的描述可以看到,本发明提供了三个相互独立的时钟信号源,由于这些时钟信号分别与外部基准同步,所以,它们并不总是彼此相互同步。另外,由于外部基准本身也具有备份并且在检测到故障的情况下能够自动转换到从属或备用的基准上,所以,所述数据处理系统能够容许在时钟源中(包括外部基准在内)的任何地方发生的故障。