专利名称:通过逆处理的实时错误检测的制作方法
技术领域:
本发明通常涉及处理器和微处理器并且更特别地涉及可以用于实时错误检测的处理布置而且可应用于安全关键或者高度完整性系统中。
背景技术:
高度完整性软件已在各种广泛应用中变得普遍。例如,许多汽车、银行、宇航、国防、网上支付和其它应用具有如下关键路径这些路径要求借助于冗余性、多样性或者二者来核实安全操作。确保关键路径的安全操作的一般方式是计算两个算法并且使用独立比较器来比较结果的一致性或者可信性(plausibility)。一般地,这已经由两种不同方法来实施。第一在限于一个有效(active)处理信道的系统上,可以利用时间分离来计算两个(或者更多) 不同(diverse)算法。然后交叉校验这些结果的一致性或者可信性。第二在具有不止一个处理信道的系统上,可以同时计算相同算法(在一个处理信道(“芯”)上处理一个算法)并且比较结果的一致性。第二方法的共同子集是在两个冗余处理信道上计算一个算法的方式, 由此两个处理信道在时间上分离(通常隔开数个时钟周期)。这一子集方法合乎需要,因为它可以鲁棒地抵御由于略微时间分离所致的硬和软错误事件,比如由常见诱因事件(例如 α粒子撞击)而产生的扰动。希望是常见诱因事件将以计算的输出不同于另一处理信道这样的方式扰动一个处理信道。向这些信道的输出由简单比较器比较,如果必要,则该简单比较器可以触发错误事件。在时间上分离的多个处理信道实施有若干弊端。延迟向校验器芯中的输入过程和从主芯的输出要求保持大量的处理状态,这花费硅区域和功率。此外,为维持时间分离而要求的延迟状态的数目随着实施的频率增加而增加。再者,更多延迟状态花费附加硅区域和功率。另外,必须保护由相应计算所使用的数据以免遭破坏。也必须示出用来校验输出的比较器独立于处理信道的任何常见诱因失灵。比较的质量变得软件相关,因为它依赖于一个处理信道的扰动不同于另一处理信道,但是最终取决于机器的实际处理状态。除了这些考虑之外,实施中的最关键问题也许是使两个处理信道的实际执行尽可能最大限度不同以便减少常见诱因失灵。为了确保完整性,应用必须示出每个处理信道是独立的,使得最小化常见诱因失灵并且使得一个信道中的失灵并不影响其它信道(一个或多个)。提供多样性的努力除了别的之外还包括使用硅区域的不同纵横比(aspect ration)、使用设计的旋转宏、在物理上分离实例、以及以实际芯的不同处理速度为目标。然而,这些努力无一提供确保的完整覆盖。
发明内容
公开了处理器、微处理器以及逻辑块系统和方法、错误检测系统和方法以及集成电路。在一个实施例中,一种基于逻辑的计算系统包括第一处理芯;第二处理芯,根据第一处理芯来生成并且包括第一处理芯的反相逻辑等效物,使得第二处理芯的输出是第一处理芯的输出的互补;以及比较器逻辑,耦合成接收第一和第二处理芯的输出作为输入并且如果第二处理芯的输出不是第一处理芯的输出的互补则提供错误输出。在一个实施例中,一种集成电路包括具有输出的第一微处理器;第二微处理器, 根据第一微处理器来创建并且包括第一微处理器的反相逻辑等效物,第二微处理器具有输出;以及比较器电路,耦合到第一微处理器的输出和第二微处理器的输出并且配置成比较这些输出而且如果第二微处理器芯的输出不是第一微处理器芯的输出的互补则提供错误输出。在一个实施例中,一种创建不同逻辑块的方法包括创建逻辑块的高级语言描述; 并且针对语言描述的第一实例,执行语言描述的第一逻辑合成并且执行不同微处理器生成脚本、执行第二逻辑合成和优化、生成逻辑门级网表(netlist)并且生成技术特定的布局。在一个实施例中,一种在处理器中的实时错误检测的方法包括第一处理器执行指令;第二处理器执行指令;比较第一处理器和第二处理器的结果;并且如果第二处理器的结果不是第一处理器的互补则检测到错误。
考虑到结合附图的本发明各种实施例的以下具体描述,可以更完整地理解本发明,在所述附图中
图1描绘了根据一个实施例的处理系统的概念框图。图2A描绘了根据一个实施例的原始处理信道的框图。图2B描绘了根据一个实施例的具有反相状态输入和反相状态输出的不同处理信道的框图。图3A描绘了根据一个实施例的关于反相逻辑实施的不同处理信道的框图。图;3B描绘了根据一个实施例的图2A的所得到实施的框图。图4A描绘了根据一个实施例的关于时钟输入的原始处理信道的框图。图4B描绘了根据一个实施例的具有反相时钟输入的不同处理信道的框图。图5A描绘了根据一个实施例的关于输出的原始处理信道的框图。图5B描绘了根据一个实施例的具有反相输出的不同处理信道的框图。图6描绘了根据一个实施例的设计流程的框图。图7描绘了根据一个实施例的比较器系统的框图。尽管本发明可加以各种修改和替代形式,但是其具体细节已在附图中通过例子的方式示出并且将被具体描述。然而应当理解,意图并非在于使本发明限于描述的特别实施例。相反,意图在于覆盖落入如所附权利要求限定的本发明的精神和范围内的所有修改、等效和替代。
具体实施例方式公开了涉及利用逆(inverse)处理的实时错误检测的系统和方法。在一个实施例中,自治、自动化过程根据主芯的单个描述来创建不同处理芯。不同处理芯尽可能不同而又保持在逻辑上等效于主芯。当两个处理芯执行共同算法时,比较器系统由于在两次实施之间的固有相关性而可以检测错误。可以通过定期比较不同处理芯的输出与主处理芯的输出来检测错误。在一个实施例中实现在主芯与不同芯之间的逻辑等效性,使得将不同芯的每个内部状态存储为主芯的互补、每个内部时钟沿相对于主芯反相、向不同芯的输入相对于主芯双反相、不同芯的输出相对于主芯反相、不同芯的逻辑状态总是处理芯的逆并且不要求在这些芯上的算法执行之间的时间分离。一个实施例可以仅使用可用内部状态的子集作为用于比较的基础,而另一实施例可以包括用于处理信道或者比较器机制的时间分离,并且又一实施例可以将可用状态的有压缩或者无压缩的离线存储用于将来的处理和比较。可以利用如下知识来实施比较器系统在每个实施中的相应状态矢量元的适当逻辑比较器总是互补的。由于不同芯根据主芯创建反相输出,所以在一个实施例中可以利用 “异或”(XOR)型比较器。在这样的实施中,如果恰好操作数之一具有TRUE (真)值,则比较器返回TRUE。换而言之,如果输出在一个或者另一个但是并非二者中不同,则比较器检测到故障。以这一方式创建多样性并且使用比较器系统赋予许多益处。主要地,该系统实现抵御常见诱因事件的鲁棒性。另外,这一多样性减少为保持鲁棒地抵御硬和软错误而要求的延迟状态的数目,因此减少所需的硅区域和功率的数量。此外,无需保护存储的数据以免遭破坏,因为有最少的存储数据——两个芯取得相同输入,并且一旦可用就可以立即比较两个信道的输出。不同于时间移位的冗余处理信道实施,没有来自主处理信道中的指令流的诊断覆盖的相关性。使用XOR型比较器也给予将芯的每个状态改变报告为不同信号电平的益处,因而可以容易检测信号路由中的常见失灵,比如开路、短路或者交叉连接。可以同样地检测状态矢量布线和逻辑上的持久故障。反相时钟在不同芯实施中的使用也允许检测影响上升沿或者下降沿但是并非同时影响二者的时钟假信号(glitch),因为将以不同方式或者根本不扰动不同芯。在另一实施例中,根据主芯创建#个不同芯。当主芯与#个不同芯一起执行共同算法时,与上述的比较器系统类似的但是针对#个不同芯而缩放的比较器系统可以检测错误。因此根据所期望的诊断覆盖水平,实施例可无限缩放,仅受目标硬件的资源限制。使用於2的实施例也允许用于发现错误信道的进一步逻辑处理并且允许失败操作行为和错误纠正。实施例可以涉及微处理器和微处理系统以及任何可以描述为高级语言描述的逻辑块,使得比如按照脚本的进一步处理可以将该描述转译成最大限度不同等效物。如本领域的技术人员理解的那样,这样的逻辑块除了别的之外还可以包括但不限于协同处理器、 外设、存储器控制器、数字信号处理器、通信接口和图形引擎。术语“微处理器”的使用可以指代一个实施例,但是一般并非在所有实例中限于微处理器本身。参考附图,图1是根据一个实施例的具有逆处理的处理系统100的广义概念框图。 系统100包括原始处理信道102和不同处理信道104。如果向系统100的输入为逻辑“1” 而原始信道102的输出为逻辑“0”,则不同信道104的输出在系统100中无任何错误时将是原始信道102的逆。因此,在图1的例子中,不同信道104的输出为逻辑“1”。XOR门106比较原始信道102和不同信道104的输出并且这里假定输入不匹配则提供“1”的输出。这一结果表明未出现错误,因为假定信道102和104的逆关系,期望不匹配结果。如果信道102 和104的输出匹配则将出现“0”的输出,这将表明错误或者失灵。
在一个实施例中,如本领域的技术人员理解的那样,可以用VHDL(超高速集成电路硬件描述语言)、Veril0g或者某一其它适当逻辑描述来定义原始处理信道102,使得可以使用适当逻辑合成和物理布局工具来把信道102的定义解译和变换成硅上的物理布局。然后可以在逻辑合成之前通过处理原始处理信道102的VHDL来获得不同处理信道104的定义。 在一个实施例中,关于原始信道102根据以下各项来定义不同信道104 不同状态存储;不同逻辑实施;不同时控;不同输出;以及不同布局。图2描绘了根据一个实施例的与不同状态存储(包括内部状态寄存器输入、输出和复位状态的反相)有关的框图。图2A描绘了根据一个实施例的原始处理信道102,而图 2B描绘了根据一个实施例的不同处理信道104的框图。在一个实施例中,原始处理信道102 包括散置有寄存器112和116的处理逻辑110、114和118。如本领域的技术人员理解的那样,信道102仅为一个例子,并且其它实施例可以具有更多或者更少处理逻辑块和/或寄存器以及类似或者不同布置。在一个实施例中,不同处理信道104也包括处理逻辑块120、124和128以及寄存器122和126。如先前提到的那样,信道104也可以根据信道102的组成和配置而包括变化的组成和配置。然而与信道102对照,信道104包括反相器130,使得寄存器122和126的所有输入和输出反相。此外,寄存器122和126的复位状态132关于寄存器112和116的复位状态被反相。图3描绘了与根据一个实施例的不同逻辑实施有关的框图。图3A描绘了在内部状态寄存器输入、输出和复位状态如上文讨论的那样反相之后的图2B的不同处理信道104。 在一个实施例中,在生成最终不同处理信道104时的下一步骤是使逻辑实施多样化。这里对在生成最终不同处理信道104时的步骤顺序的描述仅涉及一个实施例,并且生成的顺序或者其它细节在其它实施例中可以变化。图3A中的箭头指代状态反相器130与现有处理逻辑云或者块120、1M和128的合并。在一个实施例中,向处理逻辑120的输入被双反相(未描绘),并且一个或者两个反相器在各种实施例中可以与处理逻辑120合并。保持反相器之一为分立反相器可以有助于保证输入逻辑具有不同实施。尽管未描绘,但是寄存器122和 1 在实施例中也可以包括复位,其可以反相但是并非必需如此只要有效状态为有效低。在一个实施例中也可以执行处理逻辑120、1M和128的重新优化。此外,在实施例可以通过进行其它逻辑多样化和/或优化过程(比如在逻辑合成处选择性地排除库单元)来进一步增加多样性。图4描绘了与不同时控有关的框图。在图4A中描绘了在上文参考图3讨论的不同逻辑实施之后的不同处理信道104,其中添加时钟信号134。为了关于原始信道102进一步多样化信道104,在一个实施例中实施不同时控。在图4B中,不同信道104的时钟信号 134在136处反相,并且使用负沿时控寄存器122和1 而不是图4A中所描绘的正沿时控寄存器122和126。参考图5,在实施例中也可以实施不同输出。图5A描绘了如在图4B中那样遵循不同时控的不同处理信道104。在图5B中,不同处理信道104的输出在138处反相。在实施例中,在整体芯设计流程中自动生成不同状态存储、不同逻辑实施、不同时控、不同输出和不同布局。参考图6,根据例如以VHDL、Verilog或者某一其它适当格式的初始寄存器传送电平(RTL)描述150来生成主芯或者原始芯和不同芯。
在15 处,执行原始芯的第一逻辑合成。在一个实施例中使用SYN0PSYS逻辑合成工具。在152b处,进行不同芯的相同初始逻辑合成,其中添加不同芯生成脚本。在一个 SYN0PSYS实施例中,可以在GETCH阶段、或者在合成之前输入的VHDL或者Verilog RTL描述初次转译成技术定义的门时执行用于不同处理信道的网表修改。在其它实施例中,如本领域的技术人员理解的那样,可以使用其它工具和过程。在实施例中可以使用某些定义和 /或专门化以便迫使或者使得多样化更简单(比如在合成原始和不同信道或者芯时仅使用 Q-输出寄存器)以便迫使不同逻辑实施。在15 和154b处,可以针对原始和不同芯执行逻辑合成和优化。在一个实施例中,在这一阶段实施目标单元库和单元排除列表。在156a和156b处,生成比如以Verilog或者VHDL的门级网表,并且在158处执行多样性校验。在一个实施例中,多样性校验包括原始和不同芯的门与门比较以保证不同芯是原始芯的逆(A=IB)。遵循在160a和160b处的可以针对频率和硅布局进行优化的布局, 生成原始芯102和不同芯104。参考图7并且在操作中,原始处理信道102在正常模式中操作,而不同处理信道 104在被动遮蔽(passive shadow)或者监视模式中操作。然后可以比较原始处理信道102 和不同处理信道104的状态以保证结果是互补的,即彼此的逆。在一个实施例中可以将每个信道102和104的每个状态改变报告为不同信号电平。在一个实施例中,处理信道102的状态矢量与不同信道104的互补状态矢量的比较可以由一组适当逻辑比较器170 (比如在一个实施例中为XOR函数)进行。在一个实施例中,比较器逻辑170因此每当两个互补状态矢量元中的一个或者多个变成等效时将用信号通知错误172。使用比较器输入的这一固有互补编码也保证了也可以检测状态矢量布线和逻辑上的交叉连接、开路连接和持久故障。可以示出实施例在多样化过程之后在逻辑上等效,因为两个信道的描述是绝对和简洁的。正式等效性工具或者其它方法可以应用于网表以及应用于在设计过程的流程内的其它布局阶段以示出等效性适用所有情况。等效性校验证实了设计的实际布局和最大限度不同设计关于彼此以及关于所需的时序和信号传播约束是在逻辑上正确的。实施例从而可以提供可以根据处理信道的现有设计而自动获得的鲁棒、最大限度不同处理信道,使得在任一信道的处理中的扰动可以由简单的在线状态矢量比较器检测以用信号通知错误。对照常规解决方案,可以通过仿真来确定最大限度不同处理信道的实施例的实际诊断覆盖,因为没有来自主处理信道中的指令流的诊断覆盖的相关性。实施例可以可应用于高度完整性和安全关键应用(包括汽车、银行、宇航、国防、网上支付和其它应用)中。例如,具体汽车应用可以包括制动和速度控制、转向、车道保持、响应于故障检测而自动停止、混合交通工具操作以及其它,并且环境因素、静电放电(ESD)、物理扰动和损坏以及其它可能引起错误。尽管错误或者失灵可能确实出现于单个硅芯片中, 但是现代汽车在单个交通工具中包括多个“联网”芯片。鉴于涉及到多个销售商和复杂性, 则可能难以全面检查芯片的联网或者互操作。因此,实施例可以特别可应用于这样的情形中以提供“智能”硅从而实现如下快速错误检测,该检测在实施例中可以将系统或者甚至整个交通工具置于“安全”操作模式以避免灾难性后果。实施例也可以可应用于其它计算和处理应用中。随着尺寸要求减少(例如晶体管尺寸缩减),扰动可能更容易得多地出现。为了获得更快的计算机,冗余逻辑云可以是一种解决方案,并且这里讨论的逆处理的实施例可以具有特别可应用性。实施例也可以可应用于可能易受黑客攻击和篡改的安全系统比如芯片卡和护照中。不具限制性,这里引用处理器和/或微处理器在实施例中可以指代可操作用于执行算法、指令和代码的硬件设备,包括集成电路、专用集成电路(ASIC)或者微芯片。处理器或者微处理器可以形成计算机的部分,并且处理器、微处理器和/或计算机可以可应用于各种系统、子系统和设备(包括汽车、飞行器、太空船和其它交通工具;个人通信和计算设备;移动电话;芯片卡、护照以及标识卡和设备;网络和外设;国防设备和系统;因特网系统和终端(包括支付系统);以及如这里别处提到或者本领域的技术人员理解的其它系统、子系统和设备)中。实施例呈现的优点包括与使用时间延迟的相同副本的常规解决方案相比的更佳诊断覆盖、用于进行比较的更佳数据、常见信号路径故障的可检测性、和功率节省。不同处理芯的自动生成在提供最大多样性的同时也呈现与人工预定生成相比的显著时间和成本优点。这里已描述了系统、设备和方法的各种实施例。这些实施例仅通过例子的方式来给出而并非旨在限制本发明的范围。另外应当理解,可以用各种方式组合已描述的实施例的各种特征以产生众多附加实施例。另外,尽管已描述了各种材料、尺度、形状、注入位置等用于与公开的实施例一起使用,但是可以利用除了公开的那些材料、尺度、形状、注入位置等之外的其它材料、尺度、形状、注入位置等而不超出本发明的范围。相关领域的普通技术人员将认识到本发明可以包括比在上述的任何个别实施例中说明的特征更少的特征。这里描述的实施例并非意欲穷举呈现本发明的各种特征可以组合的方式。因而实施例并非是互斥的特征组合;相反,如本领域的普通技术人员理解的那样,本发明可以包括从不同个别实施例选择的不同个别特征的组合。限制上文通过引用对文档的任何并入,使得未并入与这里的明确公开相悖的主题。还限制上文通过引用对文档的任何并入,使得这里未通过引用来并入在文档中包括的权利要求。还又限制上文通过引用对文档的任何并入,使得这里未通过引用来并入在文档中提供的任何定义,除非这里明确包括。出于解释本发明的权利要求的目的,明确旨在不援引35 U. S. C.第112节第六段的条款,除非在权利要求中记载具体措词“用于……的装置”或者“用于……的步骤”。
权利要求
1.一种基于逻辑的计算系统,包括第一处理芯;第二处理芯,根据所述第一处理芯来生成并且包括所述第一处理芯的反相逻辑等效物,使得所述第二处理芯的输出是所述第一处理芯的输出的互补;以及比较器逻辑,耦合成接收第一和第二处理芯的所述输出作为输入并且如果所述第二处理芯的所述输出不是所述第一处理芯的所述输出的所述互补则提供错误输出。
2.根据权利要求1所述的系统,其中根据所述第一处理芯自动生成所述第二处理芯。
3.根据权利要求1所述的系统,其中通过在逻辑合成所述第一处理芯的逻辑描述之前或者期间通过处理所述逻辑描述,根据所述第一处理芯生成所述第二处理芯。
4.根据权利要求3所述的系统,其中所述逻辑描述为VHDL或者Verilog。
5.根据权利要求1所述的系统,其中所述第二处理芯的输入为所述第一处理芯的输入的双反相。
6.根据权利要求1所述的系统,其中所述第一处理芯和所述第二处理芯每个均包括状态寄存器,并且其中所述第二处理芯的所述状态寄存器的输入、输出和复位状态相对于所述第一处理芯的所述状态寄存器的输入、输出和复位状态被反相。
7.根据权利要求1所述的系统,其中所述第二处理芯的逻辑实施为所述第一处理芯的逻辑实施的逆。
8.根据权利要求1所述的系统,其中所述第二处理芯的时钟信号关于所述第一处理芯的时钟信号被反相。
9.根据权利要求1所述的系统,其中所述第二处理芯的输出关于所述第一处理芯的输出被反相。
10.根据权利要求1所述的系统,其中第一和第二处理芯从由微处理器、协同处理器、 外设、存储器控制器、数字信号处理器、通信接口和图形引擎组成的组中进行选择。
11.一种集成电路,包括具有输出的第一微处理器;第二微处理器,根据所述第一微处理器来创建并且包括所述第一微处理器的反相逻辑等效物,所述第二微处理器具有输出;以及比较器电路,耦合到所述第一微处理器的所述输出和所述第二微处理器的所述输出并且配置成比较所述输出而且如果所述第二微处理器芯的所述输出不是所述第一微处理器芯的所述输出的互补则提供错误输出。
12.根据权利要求11所述的集成电路,包括在所述第二微处理器的输入处的至少一个反相器。
13.根据权利要求12所述的集成电路,包括在所述第二微处理器的所述输入处的两个反相器。
14.根据权利要求11所述的集成电路,其中所述第一微处理器和所述第二微处理器每个均包括至少一个状态寄存器,并且其中所述第二微处理器包括在所述至少一个状态寄存器的输入和输出中的每一个处的反相器。
15.根据权利要求14所述的集成电路,其中所述第二微处理器的所述至少一个状态寄存器的复位状态关于所述第一微处理器的所述至少一个状态寄存器的复位状态被反相。
16.根据权利要求11所述的集成电路,其中所述第二微处理器的逻辑实施为所述第一微处理器的逻辑实施的逆。
17.根据权利要求11所述的集成电路,其中所述第二微处理器芯的时钟信号线包括反相器。
18.根据权利要求11所述的集成电路,包括在所述第二微处理器的输出处的反相器。
19.一种创建不同逻辑块的方法,包括 创建逻辑块的高级语言描述;并且针对所述语言模式的第一实例,执行所述语言描述的第一逻辑合成并且执行不同微处理器生成脚本, 执行第二逻辑合成和优化, 生成逻辑门级网表,并且生成技术特定的布局。
20.根据权利要求19所述的方法,还包括 针对所述语言描述的第二实例,执行所述语言描述的第一逻辑合成, 执行第二逻辑合成和优化, 生成逻辑门级网表,并且生成技术特定的布局。
21.根据权利要求20所述的方法,还包括在生成所述逻辑门级网表之后执行在所述第一实例与第二实例之间的多样性校验。
22.根据权利要求19所述的方法,还包括创建原始处理器和不同处理器,所述不同处理器为所述原始处理器的反相逻辑等效物。
23.根据权利要求19所述的方法,还包括限定所述不同处理器生成脚本。
24.根据权利要求19所述的方法,其中所述高级语言描述包括寄存器传送电平(RTL) 描述。
25.—种在处理器中的实时错误检测的方法,包括 第一处理器执行指令;第二处理器执行指令;比较所述第一处理器和所述第二处理器的结果;并且如果所述第二处理器的所述结果不是所述第一处理器的互补则检测到错误。
26.根据权利要求25所述的方法,其中所述第二处理器为所述第一处理器的反相逻辑等效物。
27.根据权利要求25所述的方法,其中自动进行第二处理器执行指令。
全文摘要
本发明涉及通过逆处理的实时错误检测。公开了处理器、微处理器以及逻辑块系统和方法、错误检测系统和方法以及集成电路。在一个实施例中,一种基于逻辑的计算系统包括第一处理芯;第二处理芯,根据第一处理芯来生成并且包括第一处理芯的反相逻辑等效物,使得第二处理芯的输出为第一处理芯的输出的互补;以及比较器逻辑,耦合成接收第一和第二处理芯的输出作为输入并且如果第二处理芯的输出不是第一处理器的输出的互补则提供错误输出。
文档编号G06F11/00GK102402465SQ201110203150
公开日2012年4月4日 申请日期2011年7月20日 优先权日2010年7月20日
发明者S. 哈斯蒂 N., 布鲁尔顿 S. 申请人:英飞凌科技股份有限公司