用于计算机系统的非侵入性电源控制的制作方法

文档序号:6415658阅读:179来源:国知局
专利名称:用于计算机系统的非侵入性电源控制的制作方法
技术领域
本发明涉及高性能、容错计算机系统领域。更具体地讲,本发明提供了一种对用在计算机中的处理器电源的动态、非侵入性(non-intrusive)控制,在硬件时钟级采用冗余表决(redundant voting)。本发明可用于检测和校正计算机中的差错,尤其是远程安装的计算机,比如轨道中的太空飞船上的计算机中的错误。
背景技术
地球上和太空中的自然辐射环境经常可造成用在计算机中的半导体器件的短期和长期劣化。这种危害对于要求无故障的计算机来说是个问题。除了这些放射影响外,计算机芯片还由于未检测的缺陷和随着时间的发展产生的弱点而经受随机错误。在半导体封装物中微量放射性材料也可能引起故障。当远程环境中的计算机必须长时间运行时,或在这些器件必须长时间无故障运行的地方,尤其需要保护系统免受故障或错误。远程或易损坏环境包括远程石油平台、潜艇、飞机和偏僻场所诸如南极。在地球轨道和地球轨道之外运行的系统尤其易受这种辐射危害。
宇宙射线的存在,特别是范艾伦(Van Allen)辐射带附近空间中高能量粒子的存在能够产生称为单事件效应(single event effect,SEE)或单事件干扰(single event upset,SEU)的干扰。地球磁场偏转这些粒子,并且改变它们的能级和属性。地球磁场也捕获从太阳和其它星球向地球行进的带电粒子。
一些没有由地球磁场捕获的粒子由该场引向极地附近我们的大气层。这些粒子能够穿透卫星上的电子器件。
当高能粒子和γ射线穿透半导体器件时,它们在计算机电路内沉积电荷,并且产生瞬态过程和/或噪声。这个现象能够干扰(upset)存储器电路,并能引起芯片中电路的“死锁(latchup)”。干扰通常可定义为部件的误状态输出。该输出通常可包括一个或多个信号位。死锁是半导体的一种电状态,其中由于高能粒子导致在半导体电路内产生电荷沉积,器件的输出被驱动并保持在饱和态。基于互补金属氧化物半导体结构(CMOS)的器件属于最容易受影响的器件。一个CMOS器件包括同一基底上的两个NPN器件,它们共享相同的P沟道。当漂移电荷在第一个NPN器件中形成电流时,便发生死锁。该电流反馈给另一个NPN器件。如果反馈回路的结果造成该电路增益大于单位增益,该器件连续变动到一个状态,该状态称为死锁。这种状况可造成电源和地之间的短路、局部发热、半导体物质的移动,并能最终毁坏该器件。对器件死锁引起的差错的校正通常包括减小或去掉处理单元或其它部件的电源,以防止可能由死锁状态导致的灾难性破坏。死锁状态的原因可能仅仅是临时干扰。当电源重新加上时,部件可能正常工作。
部件的干扰率取决于芯片的结构特征,包括芯片大小和内部电路设计。对于特定部件的干扰率可以从对于商用的、一兆位随机存取存储器芯片(RAM)的每天为10,改变到对于辐射硬化的、一兆位RAM的每2800年为1。辐射硬化部件是被特别设计并构建以抵制辐射损伤的器件。这些器件往往比常规芯片昂贵和慢。它们通常滞后于现有技术水平数年。
目前用在地面上的常规应用的计算机芯片通常不受宇宙辐射的成胁。这种免除性是由地球大气层提供的保护。然而,某些地面使用的计算机芯片也受到辐射干扰。从诊断或治疗医学器件发射的辐射能够影响半导体部件。随着器件变得更复杂,来自大气宇宙射线透射的次级和三级粒子将使器件受到干扰。
在Catherine Barillot等的、题为《商用空间飞行器异常现象和单事件效应发生的综述(Review of Commercial Spacecraft Anomalies andSingle-Event-Effect Occurrences)》的论文中,描述了自从1975年在太空中已经观察到的干扰事件。追踪并分析了运些事件和它们的起因。给出了数据,该数据示出了在TDRS卫星上遇到的干扰数遵循宇宙射线随太阳周期的调整。
Colorado大学的L.D.Akers发表了题为《微处理器技术和单事件干扰易感性(Microprocessor Technology and Single Event UpsetSusceptibility)》的论文。作者指出,当前采用大功率微电路控制空间飞行器各方面的卫星更加易受重离子引起的SEC的损害。他预测低功率和高速度的微器件的出现,加上来自大的太阳耀斑的粒子的可望增加,将导致SEU的更高发生率。他认为小卫星的设计者将需要实现SEU减低技术,以保证未来卫星飞行任务的成功。
在NASA主办的出版物中,在1996年2月15日由Allan Johnston所写的题为《单事件效应危险程度分析(Single Event Criticality Analysis)》的文章中,描述了SEU和相关效应,比如由于高能粒子的通过而造成的电子器件的“死锁”。他指出了在系统或子系统级通过检测过电流来克服死锁的困难,过电流是死锁的告警信号。这种困难的出现是因为必须在毫秒级内从受侵害的部件断电。在复杂电路中存在许多不同的死锁路径和电流信号。
Johnston报导说,发现于地球上和太空中的辐射环境中的高能量质子和重离子随着它们通过物质会损失能量。这个现象最初是由电离过程引起的。粒子在它们通过电子部件的P-N结时沉积密集的电荷。有些主种电荷将在结触点处被收集。电荷也可以从结外部收集。净效应(net effect)是一个在由粒子所撞击的内部电路节点处的非常短持续时间的电流脉冲。由该电路节点收集的总电荷的大部分发生在约200皮秒(picosecond)内。如果从粒子撞击收集的电荷超过器件转换(例如从非导通状态到导通状态)状态所需的最少电荷,则粒子的通过将干扰或者影响电路。最小或“临界电荷”取决于受撞击的具体器件的设计。由高能离子撞击在集成电路中引起的几种效果为(1)瞬间结果,如单事件干扰和多位干扰,它们可改变内部存储元件的状态,但可被简单地复位到正常操作;(2)替在毁灭性事件,如单事件死锁,除非很快被校正,否则会造成部件毁坏;和(3)单事件硬错误(hard error),可在复杂电路内部造成单个内部晶体管的毁灭性故障。
许多隔离结集成电路包括寄生、双极晶体管,可形成类似于硅控整流器的四层区域。这些双极结构不涉及CMOS器件的正常操作。它们可以由瞬间电流触发。所有的CMOS设计都采用特定的保护带并在输入/输出(I/O)端采用嵌位电路,以防止在标准应用环境中发生死锁。然而,在辐射环境中,瞬间信号不再被限制在I/O端。来自重离子或质子的电流脉中有可能引发CMOS器件内部区域及I/O电路中的死锁。一旦发生死锁,所述四层区域将会切换到导通状态。它将维持在该状态,直到死锁区的电压减小到很低的值。在死锁期间,电流可能非常高。这是对太空系统是一个严重问题。Johnston指出了在系统或子系统级通过检测过电流来克服死锁的困难,过电流是死锁的告警信号,因为必须在毫秒级内将电源从受影响的部件中除去,以避免可能的灾难性危害。在复杂电路中存在许多不同的死锁路径和电流信号。
先前设法减轻影响计算机芯片的辐射危害已经获得了各种结果。关于容错计算机的工作主要在高级例如在寄存器级处理差错检测。在IEEE 1984年第152至157页的、C.M.Krishna等的题为《在冗余实时系统中的同步和故障屏蔽(Synchronization and Fault-Masking inRedundant Real-Time Systems)》的论文中,描述了在出现“有害”错误时许多个锁相时钟的硬件同步和软件同步。作者描述了简单的硬件表决方案,其中时钟的输出值与参考时钟的输入信号比较。非故障时钟被锁定相位。当处理器出现故障时,如果备件可用,他们被备件替换。此方法应用到很多具有多个时钟的冗余计算机,这里多个时钟用相近的同步工作。Krishna等还描述了使用软件算法使具有其自己时钟的很多个处理器的系统能以相近的同步工作。
象Krishna等使用的软件解决方案在软件块级采用表决程序。这些解决方案通常涉及在高级比较计算机输出,看每个单独的计算机是否与其它计算机一致。这种系统为达到高的冗余度,在重量、体积、成本和功耗方面付出了很大代价。
Krishna等没有谈到系统的瞬时干扰的问题。作者也没有谈到被限制在处理器的任何一个部件内的故障问题。在诸如Krishna等所描述的系统中对故障的认可意指整个器件已经出现故障。然而,辐射干扰不一定导致器件故障。干扰状态可以是暂时的。
在由Johns Hopkins大学应用物理实验室发表的、题为《卫星系统中单事件干扰和死锁敏感的器件(Single Event Upset and LatchupSensitive Devices in Satellite Systems )》的论文中,Richard M.Maurer和James D.Kinnison认识到单事件干扰和死锁的危害。他们提供判决树作为帮助,以从设计中消除单事件效应敏感部件,或“原样(as-is)”使用SEE敏感部件,以在所述部件将起作用的电路设计中提供某些保护措施。Maurer和Kinnison假定死锁状态具有与正常工作状态本质不同的某些特性,从而可设计死锁保护电路。尽管避免了辐射硬化器件的使用,但他们的硬件保护方法增加了重量、体积和功率的代价,并且对器件本身也有性能影响,尤其是对操作速度有影响。
在1975年12月的IEEE可靠性文集、R-24卷第5号中出版的FrancisMather和Paulo T.de Sousa的题为《通用模式冗余系统的可靠性模拟和分析(Reliability Modeling and Analysis Of General Modular RedundantSystems)》的文章中,解释说硬件冗余已经用来设计容错数字系统。他们描述了冗余模块的多数表决和作为硬件冗余结构的四线逻辑(每个硬件门由四个门替换)。
1986年8月25日,在Santa Cruz的California大学计算机科学学院第16期年报中,E.J.McClusky发表了题为《硬件容错(Hardware FaultTolerance)》的论文。McClusky描述了硬件容错的基本概念和技术。一种这样的技术是“差错屏蔽”,即防止差错出现在系统输出处的能力。按照McClusky,用“大量冗余”实现差错屏蔽。系统输出由各信号的表决来确定,当无差错时,这些信号是相同的。大量冗余的通常形式是三模块冗余、四部件、四线和表决逻辑。McClusky报告说,表决逻辑包括将一模块的所有重复件连接到一表决器。每个模块的输出在传送到系统其它部件之前通过表决器。表决在系统中的高级进行。四线逻辑被描述为用四个门替换每个逻辑门。通过各个门的互连模式自动校正故障。这种系统对于被保护避免辐射损伤的系统将明显地导致付出重量、功率和成本的代价。
尽管McClusky提议三模块冗余能够应用到重复件的小单元以及整个计算机,但除了使用纠错码和某些软件程序,他没有描述如何能够实现这种方案。纠错码方法以纠错电路为基础,以改变故障信息位,因此仅当纠错电路是无故障时才有效。由McClusky列举的该软件方法需要独立编写一程序的几个版本。每个程序对相同数据进行,并且通过表决获得输出。这种技术对于暂时故障可能有效,但是需要大量时间和系统开销。
在1984年的IEEE第36到41页的题为《在可再配置控制计算机的设计中的关键问题(Critical issues in the Design of a ReconfigurableControl Computer)》的文章中,H.Schmidt等讨论了大量关键问题,这些问题是在可再配置计算机诸如用于实时控制系统的计算机的详细设计之前必须解决的。
在1985年1月出版的IEEE计算机学报、第34卷第1号第33页到45页中的、Dhiraj K.Pardha的题为《容错多处理器链接和总线网络结构(Fault Tolerant Multiprocessor Link and Bus Network Architectures)》的论文中,他提出了一大类的常用网络,该网络为在集成系统中互连的大量计算单元提供最优或接近最优的容错。
早期的高性能处理器包括大量逻辑芯片、浮点芯片和用作局部高速缓存的很多存储器芯片。前的理器在单个芯片中包含所有这些功能。这种在单个芯片内的功能集中,允许在芯片硬件级将容错方法应用到处理器系统中的仅几个芯片。随着越来越多器件包含在一个基底上,处理器芯片变得越来越密。结果,这些器件,特别是互补金属氧化物、镓砷、和双极半导体器件和其它器件,受到辐射更大的影响。
在1992年数字出版社出版的、Daniel P.Siewiorek和Robert S.Swarz的书名为“可靠计算机系统(Reliable Computer Systems)”的第二版中,他们讨论了差错检测、保护冗余、容错软件和在可靠性技术中涉及的评判标准。该文的第三章提出了在系统级、寄存器级或传输级、总线级、模块级、和门级的计算机输出的比较。作者描述了在故障影响到达模块输出之前,隔离或校正故障影响的三冗余模块加表决。他们还讨论了在混合冗余系统中使用备份备用件。即,并行操作的N个模块的核心,具有表决器确定系统以及具有一组备份备用模块,这些备用模块能够被换进来替换核心中出错的模块。该文的图3-31描述了在三模块和/或三表决器的输出处的多数表决。Siewiorek等断言该技术导致信号延迟并且降低性能。图3-57示出了Hopkins、Smith和Lala(1978)用一组处理器/高速缓存、存储器和输入/输出模块,全部由冗余的公共串行总线相互连接,所实现的容错计算机。该计算机的计算用三单元组执行,该三单元组为以表决方式执行相同操作、并且在时钟级同步的三处理器/高速缓存和三存储器。因为大部分处理利用高速缓存,表决不在每个时钟周期执行,而是在每当数据经过总线传输时执行。作者没有描述包括由各个单独总线连接到表决器的多个处理器的系统,该系统具有连接到单存储器的表决器输出。Siewiorek和Swarz没有描述其处理器输出和输入在每个时钟周期被表决的系统。作者没有讨论作为这种系统部件的控制给故障处理器的电源的装置。
基于用于军事和商用太空运载工具的商用可用部件的容错计算机的发展,该计算机可防止死锁带来的永久性危害,从而将提供很大的操作优点和成本优点。这样的发明将提供较高的性能水平,并且比基于辐射硬化芯片的现有技术制造成本低。本发明将用于遭受随机错误或遭受以不可接受的高速率产生单事件干扰的辐射环境的远程安装的计算机系统和其它处理器。这种辐射干扰保护将发现和校正差错。这种故障保护系统将在不影响软件应用程序的运行的条件下,提供关掉电或切断受影响的处理器的电源的一种手段。如果容错方法能够在很低的硬件级例如在处理器芯片内,而不是在计算机寄存器或计算机模块的输出被应用,这将是十分有益的。这种系统将满足在专用计算机和卫星工业中的长期使用的需要。
本发明的概述本发明包括为用在冗余容错计算机中的计算机处理器的断路或断电提供的一种改进的电源控制系统。本发明解决了“死锁”问题及其它需要给计算机系统的器件断电,而不想断电使整个系统停工的问题。该电源控制系统是非侵入性的,即,在不影响运行软件应用程序的情况下,可通过硬件或软件给器件加电或断电。本发明的一个优选实施例在硬件时钟级使用冗余表决,以检测和校正由辐射引起的单事件干扰(SEU)和随机错误。在硬件时钟级的表决指在每个时钟周期比较多个中央处理单元的数据和地址信号。由器件“死锁”引起的差错校正通常包括降低或除去处理单元或其它部件的电源,以防止由死锁状态带来的灾难性危害。死锁状态的原因可能仅仅是临时干扰,当电源被重新加上时,部件可照常工作。“断路”信号是通过检测出错部件输出或不可接收的电流升高而产生的。
单事件干扰(SEU)是由高能宇宙射线和半导体电路内的粒子沉积电荷引起的。地面设备由大气层屏蔽免受宇宙射线影响,但已注意到有由半导体封装物内的微量放射性物质(α粒子)引起的SEU。干扰是一个部件的一个或多个信号位的误状态输出。干扰不一定就表示部件永久故障。
在过去,表决技术已经在较高的系统级应用于长寿命太空应用中。在半导体技术方面的进步使得在硬件时钟级将冗余表决用于非辐射硬化商用部件成为可能。现在可用的较高的集成水平允许只使用几个器件实现用于整个系统的冗余功能。冗余功能和电源控制可在一个模块中使用几个处理器芯片和仅几个其它元件来实现。
实现本发明的计算机结构的一个优选实施例包括带四个商用的单芯片中央处理单元(CPU)的中央处理器模块、一表决器、一存储器控制器、一系统存储器、和一Power StrobeTM电源控制器系统。一个可替换的实施例使用三个商用CPU。其它实施例使用多于四个CPU。该CPU以严格的“锁步”操作,即,每个CPU的每个每个操作步骤并行完成,并且基本上与其它CPU同时完成。一个锁相环电路控制所述操作。所有的CPU输出都在称为“四表决”系统的耐辐射表决器中被“表决”。在表决处理中,由表决器在每个时钟周期,一个与另一个地比较每个CPU输出信号。这些处理器共享单个系统存储器和存储器总线。由于这些存处理是在锁步状态,所有这些处理器应该同时请求相同的存储器访问。表决的地址用于访问存储器,表决的数据通过耐辐射存储器控制器写到存储器和系统(I/O)总线。表决器、存储器控制器和电源控制器可容易地用专用集成电路(application specific integrated circuits,ASIC)实现。系统可以通过使用辐射硬化部件或利用冗余设计而被做成耐辐射的。
从存储器和系统I/O总线读出的数据同时提供给所有的处理器芯片。从存储器的“读出”是采用传统技术检验的。例如,在存储器芯片硬件中实现的公知的“汉明码(Hamming codes)”能够检验和校正单个位差错。
在每个时钟周期比较来自每个CPU的输出,看是否与来自所有其它CPU的输出一致。提供给表决器的多数CPU输出信号的一致产生具有多数的值的表决输出信号。不与多数一致的CPU输出信号由表决器检测,产生一差错信号。差错信号发送到存储器控制器,存储器控制器以下面几种方式反应1、由一致的各CPU使用多数表决信号,以继续CPU处理操作,不产生中断;如果CPU不一致持续下去,可指示死锁状态,并且将不一致的CPU被断电,然后重新加电;2、不一致的CPU被禁止进一步参与表决;3、对其它的CPU产生系统管理中断(SMI);和4、之后,软件启动恢复禁止的CPU的再同步处理。
在计算机故障的情况下,换用备用的无差错的计算机。然而,本发明中实施的方法和装置是期望用来校正描述的故障,而不需要求助于换上备用计算机。被禁止的系统被断电。
通常的CMOS部件不能在与它们相连接的部件保持供电时被断电。本发明的专用集成电路(ASIC)通过确保给CPU的接口电压被驱动到非加压(non-stressed)状态来支持给CPU断电。在ASIC中为每个CPU提供接口控制部分。该接口控制部分的操作使得,当从器件去除电源电压(VCC)时,输入信号被驱动到地电位。或者,如果通过切断介该器件的返回/接地连接而中断电源,输入信号被驱动到电源电压(VCC)。在另一种替换形式中,信号可被切换到高阻抗。以此方式,在信号输入和地之间或者信号输入与电源电压(VCC)总线之间流过的电流为最小。当电源中断时控制器件上的电压(stress)可防止其可靠性下降。
在执行节电任务期间,CPU和其它器件可被控制到断电状态。在字宙飞行应用中,可在单事件干扰不容易发生的轨道或轨迹中在不同时间进行断电,或者当总线电源为低时进行断电。
通过参照附图研究下列对本发明优选实施例的描述,可以获得对本发明其它目标和目的理解和对本发明更完全和综合的理解。
附图的简要描述

图1是表示连接到系统(I/O)总线的冗余计算机的计算机系统的示意图。
图2a示出加上了信号电压和电源电压(VCC)的通常CMOS器件的示意图。该图说明了当电源被从器件去除时调节信号输入的需要。
图2b是描述进行电源切换,以给计算机系统部件加电和断电的一个优选实施例的示意图,其中在部件的电源侧断电。
图2c是描述进行电源切换,以给计算机系统部件加电和关电的一个替代实施例的示意图,其中切断了部件与返回/接地的连接。
图3是本发明的一个优选实施例的示意图,示出一个计算机具有四个以并行“锁步”操作的商用、非辐射硬化的中央处理单元(CPU),并对它们的到系统存储器的输出进行“表决”。电源控制“开关”中断到CPU的电源,并且器件接口控制对CPU总线上的信号进行调节,以防止当电源中断时CPU的过压(over-stressing)。
图4的曲线图说明了对于输出不被表决的部件、对于输出被三分之二表决比较的部件、和对于输出被四分之二表决比较的部件的每年系统干扰的数目与每天单个部件干扰的数目之间的关系。该曲线表示,部件输出的表决的系统干扰与非表决相比,减少了很多个数量级。
图5是表决来自CPU的几个信号之一的典型电路的示意图,它实现了示于图3中的“四表决”方法。
图6描述了对故障检测及其校正作反应的系统的本发明的状态7是CPU控制状态图,示出了通过去除和恢复电源实现单个CPU的错差校正的各种电源控制状态。
图8以流程图形式描述了再同步CPU和从差错中恢复的硬件和软件动作。
图9是用于控制CPU的电源电压和调节CPU的输入信号的表决器电路的方框图。
图10是描述给不一致CPU去除和恢复电源的动作过程的流程图优选和可替代实施例的详细描述基本结构图1a是计算机系统10的顶层方框图,该计算机系统10设计成耐受和管理对第一计算机11a内的中央处理单元(CPU)的干扰。第一计算机11a给系统(I/O)总线12提供数据和控制信号,用于操作其它设备或记录。本发明“屏蔽”由辐射引起的单事件干扰(SEU)所造成的计算机差错。本发明还耐受由半导体封装物内的微量辐射物质(α粒子)引起的暂时或永久错误,或耐受由诸如暴露于采用X射线的诊断或治疗医用设备的其它事件引起的错误。一个SEU是一个或多个信号位的部件的误状态输出。干扰不一定表示部件是有故障的。间歇性或硬故障表示必须禁用或换掉故障部件。第二计算机11b是作为被禁止的第一计算机11a的备用替换物提供的。在本发明的说明书和权利要求书中,术语“故障”指不正常的任何芯片状态,包括差错、失灵或死锁。破坏性故障如果不被很快校正,则会造成一个或多个电路部件的毁坏。
非侵入性电源控制本发明是为用在冗余、容错计算机系统中的计算机处理器的掉电或断电提供的,不停止整个系统。该电源控制系统是非侵入性的,即,在不影响运行软件应用程序的情况下,器件可由硬件或软件加电或断电。一个优选实施例在硬件时钟级采用冗余表决,以检测和校正由辐射引起的单事件干扰(SEU)所造成的差错。在硬件时钟级的表决指在每个时钟周期比较多个中央处理单元的数据和地址信号的一致性。SEU可造成电器件的“死锁”。对器件死锁引起的差错的校正通常包括需减小或去除处理单元或其它部件的电源,以防止由于过电流导致的灾难性破坏。死锁状态的原因可能仅仅是临时干扰,当电源被重新加上时,可期望部件正常工作。
通常的CMOS部件不能在与它们相接的部件保持供电的同时被断电。图2a表示加上了信号电压16和电源电压VCC20的典型CMOS器件14的示意图。信号输出17是结果信号。观察此图可以看出当从CMOS器件14去除电源时必须调节信号输入16的原因。信号输入16的过电压会破坏薄的栅极氧化物19,即使在信号输入16处加上保护性“击穿”二极管18也是这样。信号输入16和VCC20之间的第一二极管18将最大信号输入16电压嵌位为二极管18的电压降再加VCC20。二极管18的电压降通常为约0.7伏。如果VCC设定为地电位,信号输入将限制到约0.7伏。信号输入16和返回/接地23之间的二极管18不允许信号比约-0.7更负。为防止器件14的过压造成的过电流,若VCC被除去,则信号输入16必须被驱动到地电位。另外,如果返回/接地23被除去,信号输入16必须被驱动到VCC。以此方式,信号输入和地之间流过的电流或者信号输入与电源电压(VCC)总线20之间流过的电流为最小。当通过调节信号输入16电压而中断电源时,控制对部件21的电压可防止部件的可靠性下降。
图2b和2c示出了中断部件电源的两种方法。图2b示出将电源开关22插入在部件21前面的电源总线20中,当启动该开关时,将VCC从器件中除去。由控制信号26断开和闭合电源开关22。图2c示出将电源开关22置于部件21和返回/接地23之间。控制信号26去除和恢复返回/接地23。
本发明的一个实施例图3进一步详细说明了本发明一个优选实施例的实现。在一个优选实施例中,CPU 11a具有多个(四个)同时操作的商用CPU32。然而,使用CPU32的数目可以从至少3个向上变化,这取决于用户可接受的容错。图3所示的CPU32是精简指令集计算机(reduced instructionset computer chips,RISC)芯片。RISC芯片是优选的,因为它们包含高速存储器并比其它可用CPU芯片要求较少的开销。计算机11a包括描述为在专用集成电路(ASIC)中实现的表决器34。在一个可替换实施例中,表决器34可由现场可编程门阵列组成。表决器34连接到每一个CPU 32。表决器34连接到包括表决状态和控制电路38的存储器控制器36。所示的存储器控制器36是在与表决器34不同的ASIC中实现的。虽然管脚数限制可造成两个或多个用于表决器34和存储器控制器36的IC,但表决器34和存储器控制器36都可以设计为单个芯片。
图3还描述了系统存储器46,系统存储器46通过存储器接口40接收表决后的CPU信号35。表决后的CPU信号35还通过总线接口42发送给系统计算机(I/O)总线12。存储器46通过存储器接口40向存储器控制器36提供存储器输出信号37a。存储器输出信号37a通过存储器控制器36和表决器34经CPU总线35a均等地作为输入信号33i分配给每个CPU32。从存储器46的“读出”是采用传统技术检验的。例如,在存储器芯片硬件中实现的公知的“汉明码”能够检验和校正单个位差错并检测双位差错。
与多数CPU输出信号33o不一致的任何CPU输出信号33o都是由表决器34检测的。然后,由表决器34产生差错信号39b,并将该信号发送到表决状态和控制电路38。多数表决信号35由一致的CPU32使用,以不中断地继续处理操作。表决状态和控制电路38通过产生系统管理中断来对差错信号39b进行响应。之后,为响应系统管理中断,当差错是由单事件干扰引起时,则软件启动多个CPU 32的再同步。当由于CPU32不能与多数一致而导致差错信号39b时,当少于3个的CPU32可操作并且多个CPU32中不到2个一致时,则表决状态和控制电路38通过用无错计算机11b进行替换来响应差错信号39b。故障的计算机11a被断电。图3中为简化起见未示出的、传统的称为“再配置单元”的控制电路可完成该切换过程。
在每个CPU时钟周期,来自每个CPU32的输出33o与来自所有其它CPU32的输出33在表决器34中比较其一致性。提供给表决器34的多数CPU输出信号33o的一致,产生具有多数值的表决输出信号35。发送给存储器控制器36中的表决状态和控制电路38的差错信号39b可造成几种响应操作1.如果瞬时干扰的结果使CPU输出信号33o不一致,则通过将最后表决的CPU内部状态均等分配给所有CPU32来再同步所有的CPU32。
2.如果CPU输出信号33o不一致持续下去,则指示可能的死锁状态,然后将电源从受影响的CPU32去除。
3.当仅有两个CPU32操作时,如果CPU输出信号33o的不一致指示CPU32的瞬时干扰或永久故障,则换用备用、无错的计算机11b,系统被复位(通常将所有寄存器设置为0)并重新引导。
本发明中实现的方法和装置可期望校正所描述的错误,而不需要求助于备用计算机的替换。
为确保所有的信号33i都在同一时钟周期提供给所有的CPU32,来自系统其它部件的所有信号35都在表决器34中被同步到系统时钟,并被单独驱动到各个CPU32。例如,这种信号是复位和中断信号用于每个CPU的CPU接口控制28是在表决器34 ASIC中实现的。每个CPU接口控制28连接到载送CPU输出信号33o的总线。接口控制28将控制信号26提供给电源开关22,当检测到由于死锁而导致的持久性输出信号33o错误时,通过电源开关22将电源总线提供的电源电压24从CPU32中去除。当电源电压24被去除时,接口控制28将CPU的信号输入33驱动到非加压状态,如前面所述的。在需要的时候,为节电目的或怀疑有故障时,也可命令接口控制28去除电源电压24图4示出了对于输出不被表决的部件48a、输出被三分之二表决比较的部件48b、输出被四分之二表决比较的部件48c的,每年出现系统干扰的数目45与每天单个部件干扰的数目47之间的关系曲线。对于每天干扰的给定数目例如10,曲线示出了四分之二表决部件48c相比于部件输出未表决部件48a,每年系统干扰45被减少了约三个数量级(103)。在四分之二表决器系统中,每天每个部件10次干扰导致在约500年中仅1次系统干扰。甚至对于相同部件干扰率,三分之二表决器系统将呈现每年仅几次的系统干扰。在本发明中,除非四个CPU22中的一个永久故障,否则四个表决部件可用。四分之二表决组用四个部件开始,但是一旦任何部件发生故障,就减低到三分之二组。为干扰计算已经使用再同步的0.5秒平均时间,这符合卫星控制软件系统在一秒主周期时间内恢复的要求。
故障检测在表决器34中进行故障检测。图5描述了实现表决的表决器34中的典型电路。示出了用于从CPU输出信号33o取得的数据信号54的表决器。类似的表决器34用来获得表决后地址信号和握手(handshake)(控制)信号,这些信号也是从CPU输出信号33o取得的。
门阵列50包括第一与门阵列53;第二与门阵列57;第一或门63和异或门阵列65。这些门53、57、63、65比较CPU输出信号33o,给存储器总线和I/O总线提供表决输出,并且检测从CPU 32的差错输出。表决器34还可以包括用旁路门阵列55,该旁路门阵列55由与门51和或门62组成。旁路门阵列55对测试系统很有用,并且当只剩下一个起作用的CPU32在工作时,仍希望操作系统10的情况下,旁路门阵列55还可用作表决器34的替代物。
第一与门阵列53的每个第一与门58具有作为第一输入52a-d的CPU输出信号33o,它是数据信号52。每个第一与门58还具有作为第二输入的表决状态,以及是使能信号54的控制信号39a。每个第一与门58具有输出60。
第二与门阵列57的每个门59具有来自第一与门阵列53的一个门58的输出60作为第一输入,并且具有来自第一与门阵列53的另一个门58的输出60作为第二输入。每个第二与门59具有输出61。
第一或门63具有第二与门阵列57的每个门59的输出61,以及旁路门阵列55的输出61a,作为输入。第一或门63具有输出66。
异或门阵列65的每个门64连接到第一或门63的输出66。在阵列65中的每一个异或门64分别连接到每个数据信号52,并且具有输出68。
输入到第一与门阵列53的第一端的数据信号52,通过将各使能信号54施加到阵列53的相应门的第二输入端,从阵列53作为输出60出现。在第二与门阵列57中一个与另一个地比较输出60。第二与门阵列57的每个输出61具有一致的数据信号52的值。第一或门63的输出66具有作为第二与门阵列57的输出61出现的数据信号52的值。
第一或门63的输出66施加到异或门阵列65的每个门64的第一输入。数据信号52分别施加到异或门阵列65的每个门64的第二输入。当施加的数据信号52和施加的第一或门63的输出66不一致时,从异或门阵列65的每个门64输出表示干扰或故障的差错信号68。
如图5所示,作为数据信号52出现的每个CPU输出信号33o能够通过将旁路信号56施加到旁路门阵列55中的门51的一端,旁路绕过表决处理。所述数据信号可禁止通过去除从输入54a-d到其各门的使能信号54被排除在表决之外,即禁止。如果仅使能一个CPU32,其余的禁止,则表决器数据输出66将按照被旁路的CPU输出33b。如果多于一个CPU32被使能,则数据输出66将是所有旁路的CPU输出33b的逻辑或。如果CPU32又旁路又被禁止,则其输出33b将引向或门63。同时类似地对地址信号进行同样的旁路。
容错校正与“未表决”部分或部件比较,即使一个CPU32被干扰并且不正确地工作,三个CPU32的表决组也能够给出正确的输出。而在三个CPU32中有一个不工作的情况下,其它两个CPU32中之一的干扰将导致系统干扰,因为如果仅有两个有效表决器,多数表决必须是一致的。一旦CPU32被干扰,由于内部机器状态的复杂性,它可能不同于其它CPU32地继续运作。将故障CPU32恢复到表决组需要再同步。系统干扰程度取决于各CPU32的干扰率和启动再同步之前的时间的平均长度两者。图6的图示出了系统逻辑。用封闭圈示出了CPU状态。由线、表示转变的方向的箭头示出从一个状态到另一个状态的转变。计算机11a开始在“四个CPU一致”的状态102。如果一个CPU输出33b与其它三个CPU32不一致,则如上所述由表决器34产生表示不一致的差错信号。计算机11a转变104到“三个CPU一致”108。
当计算机11a转变104到状态108时,向CPU32产生请求执行再同步的中断。从“三个CPU一致状态”108,计算机11a转变110通过“再同步状态”114。然后计算机11a根据在“再同步状态”114期间多少个CPU32具有永久故障或未加电而不能导致一致,转变116到状态102,或转变124到状态108,或转变128到状态126。
当计算机11a是在“三个CPU一致状态”108时,如果在三个表决CPU32中检测到不一致,则不一致CPU32被禁止,并且计算机转变122到“两个CPU一致状态”126。当在转变122到状态126时,向CPU32产生请求执行再同步的系统管理中断。从“两个CPU一致”状态126,转变130通过再同步114将根据在“再同步状态”114期间多少个CPU32具有永久故障或未加电而不能导致一致,使计算机11a返回到状态102、108或126。
当计算机是在“两个CPU一致状态”126时,如在两个表决CPU32之间检测到不一致,计算机11a将转变状态134到“故障计算机状态”136。一旦到达“故障计算机状态”136,计算机30向再配置单元指示故障状态,并且转变138到“切换到无差错冗余计算机状态”140。执行切换,无错、冗余计算机11a被复位(通常将所有寄存器置为0),并且重新引导系统10。然后,换上的计算机11a转变148到“四个CPU一致”状态102。
CPU状态控制各计算机32能够处在下列任何一种状态1、使能和表决;2、命令禁止;3、不一致,禁止;4、旁路;5、再同步;或6、断电。
专用集成电路(ASIC)表决器34通过保证到CPU32的接口管脚被驱动到非加压状态,来支持断电CPU32。表决状态和控制电路38通过当脱离断电状态时总是将CPU32设置在不一致、禁止状态,来避免从断电状态直接变动到使能和表决状态。
在计算机11a的操作期间产生的CPU控制和状态信号39a、39b是1.来自表决器34的差错信号68,每个CPU32一个;2.从表决状态和控制电路38到表决器34的使能信号54、旁路信号56、CPU输入“三态”信号(所有输入被驱动到地),每个CPU一个3.从表决状态和控制电路38到每个CPU32的系统管理中断和复位信号;和4.来自接口控制28的电源控制信号(通或断)26。
中断和复位信号都通过表决器34用于时钟同步。用于每个CPU32状态的控制信号的静态示于表1表1CPU状态控制信号
图7是CPU状态控制图150,它示出了各CPU32当通电、由命令或干扰禁止时的各种状态,以及从一种状态到另一种状态的转变。在此图中,用封闭圈示出了CPU状态,从一种状态到另一种状态的转变用线示出。由箭头示出转变的方向。用通电命令152开始该循环。然后在计算机11a中的每个CPU32转变154到“表决和启动状态”156。在计算机11a中的每个CPU32可以执行通过转变158由软件命令禁止。禁止命令可以执行用来保证错误CPU不参加表决操作。通过转变162可以从“命令禁止状态”160退回。从“命令禁止状态”160,CPU可以被再同步,并且返回到“命令禁止状态”160,如通过转变166、164到“再同步状态”168以及从“再同步状态”168到转变166、164所指示的。
CPU可以通过转变170从“表决和启动状态”156、或经过转变172从“命令禁止状态”160移动到“断电状态”174。CPU32可以从“不一致,禁止状态”186通过转变184被断电。断电状态可用于长时间任务节电或降低总线功率。该状态在太阳耀斑活动相对较低,并且遇到的干扰次数变小时用于节省卫星电力是很有用的。如果电力是伏先考虑的,减小耗电可以优先于完全容错。当确认或怀疑到永久故障时,也可禁止计算机11a。从“操作,表决启动状态”156通过转变190实现由干扰产生的差错信号68引起的“不一致,禁止状态”186。如果干扰CPU32可恢复操作,进行转变188到“再同步暂态”194。
通过转变196,CPU32再同步并且返回到“操作,表决启动状态”156。当在不一致和相继的再同步之后,CPU32不能再同步时,怀疑是死锁。然后,电源被去除,并且再施加到CPU32以清除死锁。从“断电”状态174,由通电转变182通过“不一致,禁止状态”186重新启动CPU32。
再同步操作由在CPU32中运行的软件命令再同步操作194。当接收到该命令时,所有CPU32暂时置于“复位”。处在“不一致,禁止状态”186(就表决来说)的任何CPU32返回到“操作,表决启动状态”156。如果CPU32是在“命令禁止”160(或在旁路状态),它保持在“再同步暂态”168之后的状态。在下面讨论的图8中更详细地描述了此过程。
CPU复位当电源首先施加到计算机11a时,所有CPU32加电,到操作和表决使能状态156。当CPU转变190到“不一致,禁止状态”186时,在表决状态和控制电路38中产生系统管理中断(SMI),并且发送到CPU32。SMI开始再同步过程。中断服务软件程序启动转变188到再同步操作194。
通过再同步CPU纠错图8是描述再同步CPU 32的硬件和软件动作的流程图200。部分处理发生在硬件201中,主要发生在CPU 32、表决器34和表决状态和控制电路38中。由运行在CPU 32中的软件205控制其它操作。当由表决器34检测到一CPU32与多数其它CPU32不一致时,开始纠错处理。如果没有两个操作CPU32一致(步骤204),认为该系统已经产生故障(步骤206)。在这种情况下,将尝试换用备用计算机11a重新启动系统。将重新启动所有软件,但是将出现计算机功能的主要破坏。
如果检测到差错,仍然有两个或更多CPU32一致(步骤204),不一致的CPU32被禁止参加表决(步骤208)。由需硬件产生系统管理中断(SMI)(步骤210)。SMI产生指示尽管不是立即但在短时间内再同步的标志。应用软件程序继续,而不中断。禁止不一致CPU32避免表决处理的破坏,这允许检测剩余CPU32中任何附加干扰或错误。短时间之后,如同由CPU32的中断使能和优先级设定确定的,系统响应于系统管理中断210(步骤212)。作为该响应212的一部分,包括当前执行程序中断的点的软件状态存储到存储器46。该信息后面用来在该程序中止的准确点恢复中断的程序。
中断服务软件程序203在步骤214通过表决器34将所有CPU寄存器写到存储器46。由于至少两个CPU32一致,寄存器含有正确的值,并且所存储的值将是无差错的。在再同步处理期间,运些值将重新装入所有CPU32,换掉不一致CPU32中的任何差错值。中断服务软件程序203将强迫由CPU32修改的、但还没有通过表决器34写入存储器46中的数据高速缓存(cache)中的任何位置,通过表决器34被写入存储器中(步骤216)。如果各CPU32在它们的高速缓存中具有不同值,表决处理保证存储器46只有正确的值。
然后,中断服务软件程序203启动再同步(步骤218),并且开始硬件过程。首先,如图8所示,复位类型设置到再同步(步骤220),并且复位类型信息保持在专用寄存器中。其它复位类型包括多数故障、加电和外部信号。其次,产生复位脉冲(步骤222),并且发送给所有CPU32。在每个CPU32内,复位脉冲还使得所有CPU32中的寄存器被设定到相同值,通常为0。复位脉冲还使所有CPU高速缓存的内容被舍弃。在CPU高速缓存能够使用之前,必须从存储器46读取新数据。然后,为在步骤208禁止的所有CPU32使能表决(步骤224)。最后,完成所有复位功能之后,所有CPU32具有相同的机器状态,并且再次同样地操作。CPU32从称为复位向量的特殊地址开始程序执行(步骤226)。
驻留在复位向量地址处的复位服务软件229查看复位类型寄存器,并且确定发生的复位类型(步骤228)。因为在此例中,设定复位类型为(步骤220)表示CPU32的再同步232,软件229将先前写入存储器46的CPU寄存器数据重新装入CPU寄存器。所有CPU32接收相同值,因为表决处理只允许一组值保存到存储器46。在系统中断时反映机器状态的信息被恢复到寄存器中(步骤234)。复位服务软件229执行“从中断返回”处理,它从原始应用程序中止的点处返回到该原始应用程序(步骤236)。
随着程序的进行,其内容由复位脉冲舍弃的CPU高速缓存用新数据填充。由于它们的动态特性,高速缓存内容可以与如果没有不一致时的不同,但是在所有CPU32中的高速缓存将相同。
除了再同步处理需要的时间延迟,原始应用程序的操作或结果不受不一致和相继的再同步处理的影响。
通过CPU的周期性供电纠错图9示出了电源控制系统的方框图。所描述的电路用于控制电源电压(VCC)和给CPU32的输入信号33i。图9更详细地图示了表决器34,和表决状态和控制电路38。图中描述了进一步包括的部件包含多个门阵列50的逻辑电路252、表决器控制电路256、和表决器状态电路254。为简明起见,图9中仅示出了一个CPU32和一个电源开关22,然而,读者应当理解,如图3所示,在一个优选实施例中,至少连接了四个CPU32和电源开关22。接口控制28在一个优选实施例中驻留在表决器34芯片上,接口控制28包括复位控制258和相关的定时器260;地址解码器和总线周期控制器259;命令解码器和控制器262;系统管理中断门266及其使能触发器264。CPU输入33i和CPU输出33o由双向数据、地址和握手(已知为控制)总线33a、b、c携带。表决输出由总线35a、b、c载送。如前面所述的,在这些总线33a、b、c上载送的CPU输出33o和CPU输入33i在每个CPU时钟周期都表决。
命令解码器和控制器262是接口控制28的主要元件。该命令解码器和控制器262安置在从表决逻辑252经由存储器接口40到系统存储器46的路径上。要写入到系统存储器46的表决数据66也传递给命令解码器和控制器262。命令解码器和控制器262分配取自表决数据信号66、表决地址信号270和表决握手信号272的命令。在操作期间,当至少两个CPU32一致时,表决数据66通过表决器状态电路254,被写入存储器46。表决差错信号68传递给表决器控制电路256。表决器控制电路256将旁路/使能/三态信号280提供给不一致的CPU32,该信号280关掉表决逻辑252中的表决器使能信号54。然后,不一致的CPU32被排除参加表决。当表决器控制电路256接收到表决器差错信号68时,开始上面所述的再同步处理,表决器控制电路256通过系统管理中断(SMI)门266产生SMI 267。SMI门266由来自SMI使能触发器264的脉冲使能,SMI使能触发器264由软件触发,并使能来自命令解码器和控制器262的命令。复位控制258发出复位脉冲(H Reset)257。定时器260确保在复位脉冲257之后,复位控制器258等待适当时间,以便复位CPU32,以在把控制交给表决器逻辑252之前执行硬复位操作。
如果再同步成功并且干扰的CPU32恢复到与其它CPU32同步,则系统10返回,以继续运行当前应用程序。然而,如果系统10没有成功地再同步,则软件启动Pwver StrobeTM功能。在一个可替换实施例中,定时顺序是由软件控制的。
图10是描述关闭和恢复不一致的CPU32的电源的软件和硬件过程的流程图。该过程在开始检测CPU32的不一致(步骤202)。当然,如果没有检测到差错,则当前不间断地继续运行软件应用程序(步骤302)。如果在步骤202检测到不一致,则启动如图8的步骤208到234所示的再同步过程(步骤304)。如果确认成功的再同步(步骤304),则系统10返回当前应用程序。如果不是这种情况,如由继续的不一致的CPU32所指示的,启动Power StrobeTM过程。首先,不一致的CPU32被禁止表决(步骤308)。接下来,表决器控制器256发出三态信号280,该信号280起作用将CPU输入/输出33o、33i设定为地电位,以防止对CPU部件的损坏。紧接着该步骤,来自命令解码器和控制器262的信号26操作电源开关22,并且电源电压24被从不一致的CPU32中去除(步骤312)。在步骤313保证至少5毫秒的时间延迟,之后,电源电压24恢复给到CPU32(步骤314)。然后,由表决器控制256使能表决器34(步骤315),表决器控制256进行操作,以将使能信号54提供给表决器门阵列50的适当门53。定时器260允许CPU32在复位脉冲之后恢复锁相(步骤315)。最后,当锁相被确认时(步骤315),在步骤218开始再同步循环(参照图8),并且当再同步成功时,当前应用程序恢复操作如前面所述的,如果此阶段再同步失败,并且仅有两个CPU32仍有效,则第一个计算机11a被认为发生故障,并且冗余计算机11b被通电并换上。
结论尽管已经参照具体的优选实施例详细描述了本发明,但本发明涉及的技术领域内的普通技术人员将知道,可以对本发明进行各种修改和改进,而不脱离所附权利要求的精神和范围。上述已经公开的各种电路和部件是想使读者了解优选实施例,而不是限制本发明或权利要求的范围。所附的标号列表是提供给读者识别说明书和附图中本发明的单元的方便工具。该列表不描述或变窄权利要求的范围。
附图标记列表图110 用于计算机系统的非侵入性电源控制11a第一容错计算机11b第二备用容错计算机12 系统(I/O)总线图2a、2b、2c14 CMOS(互补金属氧化物晶体管)器件16 输入到CMOS器件的信号17 从CMOS器件输出的信号18 保护二极管19 栅极,氧化物层20 电源总线(+VCC)21 通电部件22 电源开关23 返回/接地24 来自电源总线的电源电压26 电源控制信号图311a容错计算机12 系统(I/O)总线20 电源(VCC)总线22 电源开关24 来自电源总线的电源电压26 电源控制信号28 接口控制32 中央处理单元(CPU)33iCPU输入信号33oCPU输出信号34 表决器专用集成电路(ASIC)35 到存储器和系统总线接口的输入/输出信号35aCPU总线36 存储器控制器-ASIC37a系统存储器的输出信号37b系统存储器的输入信号38 表决状态和控制电路39a表决状态和控制电路输出信号39b表决状态和控制电路输入信号40 存储器接口电路41 到系统总线的输入/输出信号42 系统(I/O)总线接口电路46 系统控制器图445 每年系统干扰轴47 每天部件干扰轴48a未表决部件的干扰率48b三分之二表决的部件的干扰率48c分之二表决的部件的干扰率图550 门阵列51 旁路与门52 CPU数据信号52a-d 数据线53 第一与门阵列54 来自表决状态和控制电路的使能信号54a-d 使能信号线55 旁路门阵列56 旁路信号56a-d 旁路信号线57 第二与门阵列58 第一与门59第二与门60第一与门输出61第二与门输出61a 旁路门阵列输出62第二或门63第一或门64异或门65异或门阵列66表决后数据信号68表决后差错信号图6100 故障检测和响应状态图102 “四CPU一致”状态104 一个CPU信号不一致108 “三个CPU”一致状态110 启动再同步114 CPU已再同步116 所有CPU信号一致(没有故障CPU)122 一个CPU不一致124 一个CPU故障126 “两个CPU一致”状态128 两个CPU故障130 启动再同步134 CPU信号不一致136 “故障计算机”状态138 “故障计算机”状态已声明140 “切换到冗余计算机”状态142 “冗余计算机使能信号”146 复位CPU并且重新引导系统148 四个CPU信号一致图7150处理器电源控制状态图152“系统通电”状态154系统使能信号156“CPU操作,表决使能”状态158CPU禁止命令160“CPU命令‘禁止’”状态162使能操作信号164CPU再同步信号166再同步CPU命令168“CPU已再同步”暂态170断电命令(外部)172断电命令(外部)174“CPU断电”状态182通电CPU信号184断电CPU命令(内部)186CPU不一致,禁止差错CPU188再同步CPU命令192再同步CPU命令194“CPU再同步”暂态196CPU再同步信号图8200用于硬件和软件的再同步过程的流程图201用于再同步的硬件202检测CPU不一致203中断服务软件程序204“两个CPU仍然一致?”205用于再同步的软件206系统故障208禁止不一致的CPU的表决210产生系统管理中断(SMI)212响应SMI214通过表决器将所有寄存器写到存储器216通过表决器将修改的数据高速缓存线写到存储器218启动再同步过程220设定再同步类型为“再同步”222产生复位脉冲,将寄存器设定到已知值,舍弃高速缓存内容224对所有CPU使能表决226在复位向量处开始执行228“复位类型?”229复位服务软件程序230启动其它过程(例如,Power StrobeTM)232再同步CPU234恢复寄存器236返回到当前应用程序图922 电源开关24 来自电源总线的电源电压26 电源控制信号28 接口控制32 CPU33 CPU输入/输出33a数据总线33b地址总线33c握手(控制)总线34 表决器35a表决后数据总线35b表决后地址总线35c表决后握手(控制)总线38 表决状态和控制电路40 存储器接口电路66 表决后数据68 表决差错250电源控制系统的方框图252表决逻辑254表决器状态电路255表决器状态信号256表决器控制器257硬复位信号258复位控制器259地址解码器和总线周期控制器260定时器262命令解码器和控制器264系统管理中断(SMI)使能触发器266SMI门267到CPU的SMI信号270表决后地址信号272表决后握手信号280旁路/三态信号图10202检测CPU的不一致218启动再同步软件236返回应用软件程序300电源控制流程图302继续应用软件304启动再同步/确认成功306启动Power StrobeTM过程308禁止不一致的CPU的表决310表决器控制接口将CPU I/O设置为地电位312关掉CPU电源313延迟至少5毫秒314接通CPU电源315使能表决器控制、等待CPU锁相、确认CPU一致
权利要求
1.一种非侵入性电源控制设备,包括多个同步操作运行软件应用程序的中央处理单元(CPU)(32),在所述CPU(32)的每个时钟周期,所述多个CPU(32)中的每一个的每个操作步骤并行完成,并且与所述多个CPU(32)的每一个其它CPU的操作步骤基本上同时进行;所述多个CPU(32)中的每一个具有一CPU输入(33i)和一CPU输入(33o);一表决器(34),具有表决后输出(35);所述表决器(34)连接到每一个所述多个CPU(32),并接收所述CPU输出(33o);所述表决器(34)采用所述CPU输出(33o)的冗余表决来检测所述多个CPU(32)中任何一个的故障,该故障的CPU(32)与所述多个CPU(32)的多数的输出(33o)不一致;由所述表决器(34)在每一个时钟周期一个与另一个地比较每一个所述CPU输出(33o);一电源总线(20),用于将电源电压(24)提供给每一个所述多个CPU(32);所述电源总线(20)连接到每一个所述多个CPU(32);并且,当由所述表决器(34)在一个受影响的CPU(32)中检测出潜在的破坏性故障时,所述电源电压(24)被从所述受影响的CPU(32)中去除,并且所述CPU输入(33i)被限制给到所述受影响的CPU(32),而不用终止所述运行软件应用程序。
2.如权利要求1所述的设备,其中,所述对CPU输入(33i)的限制是通过将该输入置于地电位而进行的,用于防止当所述电源电压(24)被从所述CPU(32)除去时对所述CPU(32)的破坏。
3.如权利要求1所述的设备,其中,所述对CPU输入(33i)的限制是通过从所述受影响的CPU(32)去除返回/接地(23)并将所述CPU输入(33i)置于所述电源电压而进行的。
4.如权利要求1所述的设备,其中,所述多个CPU(32)的数目至少为3。
5.如权利要求1所述的设备,其中,所述多个CPU(32)是精减指令集CPU(RISC)。
6.如权利要求1所述的设备,还包括一电源开关(22),电插接于所述电源总线(20)和每一个所述多个CPU(32)之间;所述电源开关(22)连接到所述接口控制(28)并从其中接收信号(26);所述电源开关(22)在从所述接口控制(28)接收到所述信号(26)时,能够将所述电源电压(24)连接到每一个所述多个CPU(32)和将所述电源电压(24)从每一个所述多个CPU(32)除去;和所述接口控制(28)通过将所述信号(26)提供给所述电源开关(22)来对一个所述CPU(32)中的所述故障进行响应;由此,所述电源电压(24)被去除,同时,所述CPU输入(33i)被调节,以防止对所述CPU(32)的破坏;所述运行软件应用程序被允许继续操作。
7.如权利要求6所述的设备,还包括一系统总线(12);第一计算机(11a);所述第一计算机(11a)包括所述多个CPU(32)、所述表决器(34)、所述接口控制(28)、所述电源开关(22)、和所述连接;所述第一计算机(11a)连接到所述系统总线(12);所述第一计算机(11a)还包括一系统存储器(46);一存储器控制器(36);所述存储器控制器(36)连接到所述表决器(34)、所述存储器(46)和所述系统计算机总线(12);第二计算机(11b);所述第二计算机(11b)基本上与所述第一计算机(11a)相同;所述第二计算机(11b)连接到所述系统总线(12),并且作为用于所述第一计算机(11a)的无差错替换物保持;所述系统存储器(46)向所述存储器控制器(36)提供存储器输出信号(37a),所述存储器输出信号(37a)作为所述CPU输入(33i)通过所述存储器控制器(36)和所述表决器(34)均等地分配给每一个所述多个CPU(32);多数所述CPU输出(33o)在所述表决器(34)中的一致,使得所述表决输出信号(35)具有所述多数所述CPU输出(33o)的值;和由所述表决器(34)检测出的任何所述CPU输出(33o)与多数所述CPU输出(33o)的不一致,导致产生一差错信号;所述差错信号启动在所述第一计算机(11a)中进行所述多个CPU(32)的再同步(130)。
8.如权利要求7所述的设备,其中,当少于两个的所述多个CPU(32)为无错时,所述CPU输出(33o)的不一致提供给所述表决器(34),使得所述第一计算机(11a)被所述第二计算机(11b)替换。
9.如权利要求7所述的设备,其中,所述再同步(130)、所述电源电压(24)的被去除、和对所述CPU输入的限制是由所述多个CPU(32)通过软件(205)运行来控制的。
10.如权利要求7所述的设备,其中,少于两个的所述CPU(32)的一致导致所述第一计算机(11a)被所述第二计算机(11b)替换。
11.如权利要求7所述的设备,其中,两个所述多个CPU(32)的故障导致所述第二计算机(11b)替代所述第一计算机(11a)。
12.如权利要求10所述的设备,其中,每一个所述多个CPU(32)处于下列稳态之一启动和表决;命令禁止;非一致和禁止;旁路;和断电。
13.一种非侵入性电源控制设备,包括第一计算机(11a),具有多个同步操作运行软件应用程序的中央处理单元(CPU)(32),在每一个CPU时钟周期,所述多个CPU(32)中的每一个的每个操作步骤并行完成,并且与所述多个CPU(32)的每一个其它CPU的操作步骤基本上同时进行,所述多个CPU(32)中的每一个具有一CPU输入(33i)和一CPU输入(33o);一双向系统总线(12);所述计算机(11a)还包括一表决器(34);所述表决器(34)具有接口控制电路(28)并具有一表决输出(35);所述表决器(34)可耐受辐射;一存储器(46);一存储器控制器(36),具有一表决状态和控制电路(38)、一存储器接口(40)和一系统总线接口(42);所述表决器(34)通过所述系统总线接口(42)连接到所述双向系统总线(12);所述存储器控制器(36)连接到所述表决器(34)、通过所述系统总线接口(42)连接到所述系统总线(12)、并通过所述存储器接口(40)连接到所述存储器(46);所述存储器(46)将存储器输出信号(37a)提供给所述存储器控制器(36);所述存储器输出信号(37a)作为CPU输入(33i)通过所述存储器控制器(36)和所述表决器(34)均等地分配给所述多个CPU(32);每一个所述多个CPU(32)将所述CPU输出(33o)作为输入提供给所述表决器(34),以进行比较;所述CPU输出(33o)通过所述表决器(34)进行比较;由所述表决器(34)将所述表决后输出(35)作为输入(37b)提供给所述系统存储器(46)、所述表决状态和控制电路(38)、和所述系统双向总线(12);一第二、无错计算机(11b),基本上与所述第一计算机等同;提供给所述表决器(34)的多数所述CPU输出(33o)的一致性,使得所述表决输出(35)具有所述多数所述CPU输出信号(33o)的值;不与所有CPU输出(33o)的多数一致的所述CPU输出(33o)由所述表决器(34)检测;由此,所述表决器产生差错信号(68);所述差错信号(68)作为输入(39b)发送给所述表决状态和控制电路(38);所述表决状态和控制电路(38)通过启动所述多个CPU(32)的再同步而对所述差错信号(68)进行响应;当持久性的所述不一致指示所述受影响的CPU(32)中的潜在破坏性故障状态时,所述表决状态和控制电路(38)通过促使所述接口控制电路(28)从受影响的所述CPU(32)去除所述电源电压(24)并将所述CPU输入(33i)限制到接近地电位来对所述差错信号(68)进行响应,而不需要终止所述运行软件应用程序;和当少于两个的所述多个CPU(32)为无错时,所述表决状态和控制电路(38)通过用所述无错第二计算机(11b)替换功能不良的所述第一计算机(11a)来对所述差错信号(68)进行响应。
14.如权利要求13所述的设备,其中,所述多个CPU(32)的数目至少为3
15.如权利要求13所述的设备,其中,所述多个CPU(32)是商用无辐射硬化芯片。
16.如权利要求13所述的设备,其中,所述多个CPU(32)是精减指令集CPU(RISC)。
17.如权利要求1所述的设备,其中,每一个所述多个CPU(32)处于下列稳态之一启动和表决;命令禁止;不一致和禁止;旁路;和断电。
18.一种非侵入性电源控制方法,包括下列步骤操作多个同步运行软件应用程序的中央处理单元(CPU)(32),在所述CPU(32)的每一个时钟周期,所述多个CPU(32)中的每一个的每个操作步骤并行完成,并且与所述多个CPU(32)的每一个其它CPU的操作步骤基本上同时进行;所述多个中央处理单元(CPU)(32)中的每一个具有一CPU输入(33i)和一CPU输出(33o);将一电源总线(20)连接到每一个所述多个CPU(32),并将电源电压(24)从所述电源总线(20)提供给每一个所述多个CPU(32);将一接口控制电路(28)连接到所述多个CPU(32)和所述电源总线(20);所述接口控制电路(28)接收所述CPU输出(33o)并提供所述CPU输入(33i);将一表决逻辑(252)连接到每一个所述多个接口控制电路(28),接收所述CPU输出(33o)并给所述CPU输入(33i)提供所述表决逻辑(252);在每一个所述时钟周期,在所述表决逻辑(252)中对每一个所述多个CPU输出(33o)一个与另一个地进行比较,并从所述表决逻辑(252)获得一表决输出(35);在所述表决逻辑(252)中采用冗余表决来检测其输出(33o)与多数所述多个CPU(32)不一致的每一个所述多个CPU(32)中的故障;和当由所述表决逻辑(252)检测到所述多个CPU(32)的一个中的潜在破坏性所述故障时,从所述多个CPU(32)的不一致的一个中去除所述电源电压(24),并用所述接口控制电路(28)将所述不一致的CPU(32)调节到地电位;和当所述电源电压(24)被从所述CPU(32)去除时,用所述接口控制(28)对所述CPU输入(33)进行限制,以防止对所述CPU(32)的破坏,而不需要终止所述运行软件应用程序。
19.如权利要求18所述的方法,还包括下列步骤将一电源开关(22)电插接于所述电源总线(20)和每一个所述多个CPU(32)之间;所述电源开关(22)连接到所述接口控制(28)并从其中接收信号(26);当所述电源开关(22)从所述接口控制(28)接收到所述信号(26)时,将所述电源电压(24)连接到每一个所述多个CPU(32)和将所述电源电压(24)从每一个所述多个CPU(32)去除;和通过从所述接口控制(28)将所述信号(26)提供给所述电源开关(22),去除所述电源电压(24),和同时调节所述CPU输入(33i),以防止对每一个所述CPU(32)的破坏,来对每一个所述多个CPU(32)中的所述故障进行响应;所述多个CPU(32)中的无错CPU被允许继续操作,不影响运行软件应用程序。
20.如权利要求19所述的方法,其中,操作多个CPU(32)的步骤包括操作至少3个CPU(32)。
21.如权利要求19所述的方法,其中,操作多个CPU(32)的步骤包括操作是商用、无辐射硬化芯片的所述CPU(32)。
22.如权利要求19所述的方法,其中,操作多个CPU(32)的步骤包括操作是精减指令集CPU(RISC)(32)的所述CPU(32)。
23.如权利要求19所述的方法,还包括下列步骤提供一系统总线(12);提供第一计算机(11a);所述第一计算机(11a)包括所述多个CPU(32)、所述表决逻辑(252)、所述接口控制(28)、所述电源开关(22)、和所述连接;将所述第一计算机(11a)连接到所述系统总线(12);对所述第一计算机(11a)还提供一系统存储器(46);一存储器控制器(36);将所述存储器控制器(36)连接到所述表决逻辑(252)、所述存储器(46)和所述系统计算机总线(12);提供基本上与所述第一计算机(11a)相同的第二计算机(11b);将所述第二计算机(11b)连接到所述系统总线(12),并且将所述第二计算机(11b)作为用于所述第一计算机(11a)的无差错替换物来保持;由所述系统存储器(46)向所述存储器控制器(36)提供存储器输出信号(37a);将所述存储器输出信号(37a)作为所述CPU输入(33i)通过所述存储器控制器(36)和所述表决逻辑(252)均等地分配给每一个所述多个CPU(32);通过多数所述CPU输出(33o)在所述表决逻辑(252)中的一致,来获得具有所述多数所述CPU输出(33o)的值的所述表决输出信号(35);检测所述表决逻辑(252)中任何所述CPU输出(33o)与多数所述CPU输出(33o)的不一致,并由此产生差错信号(68);和由所述差错信号(68)启动再同步所述第一计算机(11a)中的所述多个CPU(32);和当持久性所述不一致指示死锁状态时,从不一致的所述CPU(32)中去除所述电源电压(24),同时调节所述不一致的CPU(32)的所述CPU输入(33i),以防止破坏。
24.如权利要求23所述的方法还包括步骤当少于两个的所述CPU(32)为无错时,在接收到提供给所述表决逻辑(252)的所述CPU输出(33o)的不一致时,用所述第二计算机(11b)替代所述第一计算机(11a)。
25.如权利要求24所述的方法,其中再同步所述CPU(32)的步骤、去除所述电源电压(24)的步骤、和用所述第二计算机(11b)替代所述第一计算机(11a)的步骤,是通过所述多个CPU(32)的软件运行来控制的。
26.如权利要求24所述的方法,还包括步骤当至少两个所述多个CPU(32)有故障时,用所述第二计算机(11b)替代所述第一计算机(11a)。
27.如权利要求26所述的方法,其中,每一个所述多个CPU(32)处于下列稳态之一使能和表决;命令禁止;非一致和禁止;旁路;和断电。
28.一种用于计算机系统的非侵入性电源管理方法,包括下列步骤提供一系统总线(12);提供一计算机(11a),包括多个中央处理单元(CPU)(32);每一个所述多个中央处理单元(32)具有一CPU输入(33i)和一CPU输出(33o);操作同步运行软件应用程序的所述CPU(32),在每一个CPU时钟周期,所述多个中央处理单元(32)中的每一个的每个操作步骤并行完成,并且与所述多个CPU(32)的每一个其它CPU的操作步骤基本上同时进行;在所述计算机(11a)内提供具有一表决输出(35)的表决器(34);所述表决器(34)可耐受辐射;将所述表决器(34)连接到每一个所述CPU输出(33o);提供一存储器(46);提供一存储器控制器(36),具有一表决状态和控制电路(38)、一存储器接口(40)和一系统总线接口(42);将所述存储器控制器(36)连接到所述表决器(34)、通过所述总线接口(42)连接到所述系统总线(12)、并通过所述存储器接口(40)连接到所述存储器(46)从所述存储器(46)提供一存储器输出(37a)给所述存储器控制器(36);通过存储器控制器(36)和所述表决器(34)将所述存储器输出(37a)作为输入(33i)均等地分配给每一个所述CPU(32);将来自每一个所述多个CPU(32)的CPU输出(33o)作为输入提供给所述表决器(34),以进行比较;在所述表决器(34)中比较所述CPU输出(33o);将来自所述表决器(34)的所述表决输出(35)作为输入(37b)提供给所述系统存储器(46)、所述表决状态和控制电路(38)和所述系统计算机总线(12);提供给所述表决器(34)的多数所述CPU输出(33o)的一致性,导致所述表决输出(35)具有所述多数所述CPU输出(33o)的值;由所述表决器(34)检测所述CPU输出(33o)与多数所述CPU输出(33o)的不一致,并由此产生差错信号(68);将所述差错信号(68)提供给所述表决状态和控制电路(38);当检测到所述CPU输出(33o)的不一致时,则所述表决状态和控制电路(38)再同步所述多个CPU(32);当所述不一致指示死锁状态时,从不一致的所述CPU(32)中去除所述电源电压(24),同时对所述不一致的CPU(32)调节所述CPU输入(33i)到地电位,而不需要终止所述运行软件应用程序。
29.如权利要求28所述的方法,还包括步骤当少于两个的所述多个CPU(32)为无错时,通过所述表决状态和控制电路(38)的动作,用无错的计算机(11b)替代故障的所述计算机(11a)。
30.如权利要求29所述的方法,还包括步骤当至少两个所述RISCPU(32)有故障时,用无错的计算机(11b)替代故障的所述计算机(11a)。
31.如权利要求1所述的系统(10),其中,所述多个CPU(32)是商用未辐射硬化的芯片。
全文摘要
公开了一种用于容错计算机系统的非侵入性电源控制,在硬件时钟级采用冗余表决。计算机(11a)包括3、4或更多个同时操作的商用中央处理单元(CPU)(32)。到系统存储器(46)和系统总线(12)的输出(33)是通过可在惯用集成电路(34)中实现的耐辐射门阵列(50)表决的。连接到表决器(34)的接口控制(28)可去除或连接CPU(32)的电源,并调节CPU输入(33i),以防止对部件的破坏,而不需要终止操作程序。在每个CPU时钟周期表决写到系统存储器(46)和从系统存储器(46)读出的输入和输出(35)。表决状态和控制电路(38)“读取”表决状态,并使用硬件和软件控制CPU的状态。系统逻辑选择最好的机会,来通过给故障CPU(32)断电再同步所有CPU(32)、或切换到备用计算机(11b)、复位和重新引导换上的CPU(32),而从检测的故障中恢复。
文档编号G06F15/177GK1255211SQ98804848
公开日2000年5月31日 申请日期1998年3月31日 优先权日1997年5月7日
发明者史蒂芬·富克斯, 安德鲁·J·沃德罗普 申请人:通用动力信息系统公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1