用于检测微控制器中的潜在故障的方法和系统的制作方法

文档序号:6503784阅读:107来源:国知局
用于检测微控制器中的潜在故障的方法和系统的制作方法
【专利摘要】本发明涉及用于检测微控制器中的潜在故障的方法和系统。实施例涉及用于检测对相同的输入数据进行操作的CPU内的寄存器出错的系统和方法,其能够实现不同CPU的寄存器中的至少一组相应寄存器的内容的非侵入性读访问和比较以按照具有不一致的内容的相应寄存器的形式检测出错的寄存器。
【专利说明】用于检测微控制器中的潜在故障的方法和系统
【技术领域】
[0001]本发明一般地涉及一种用于检测微控制器中的潜在故障的方法和系统,具体地讲,涉及一种用于检测由潜在故障导致的微控制器寄存器的出错(corruption)以避免微控制器(例如,汽车电子控制单元(ECU)中的高完整性微控制器)的意外操作的方法和系统。
【背景技术】
[0002]存在这样的趋势:现代汽车ECU集成越来越多的功能。一方面,这种趋势由技术进步推动,技术进步能够实现不断增加的集成水平。此外,汽车工业的高度成本驱动的本质也迫使开发者减少每辆汽车的ECU的总数。
[0003]在这种情况下,电子设备在提供高级驾驶辅助功能时起到越来越多的作用,所述高级驾驶辅助功能具体地有助于防止危险并且减少致命伤害的数量。
[0004]ECU里面的辅助功能的集成主要集中于通过托管关键的计算和控制功能而起到决定性作用的多CPU微控制器。这种多CPU微控制器可被视为具有定义的并且封装的任务的计算节点的群集。
[0005]在这种假设下-即与各种辅助功能相关的多个关键的计算和控制功能由同一多CPU微控制器执行-潜在故障的早期检测是待解决的主要问题以避免多CPU微控制器的操作实际受到影响的问题。
[0006]这种错误的典型起因可能是由可被概括为潜在故障的效应(诸如,阿尔法粒子撞击、电源尖峰等)导致的CPU寄存器的出错。结果,当接下来使用寄存器内容时,任何这种出错将会导致CPU的意外操作。这基于这样的事实:典型CPU包含保存确定它的未来操作的CPU的当前状态的许多寄存器。因此,实施例针对一种用于在由CPU使用出错的寄存器之前检测到这些寄存器的方法和系统。
[0007]此外,CPU寄存器可以是对于在CPU上运行的程序而言可见的架构寄存器,或者可以是由CPU用来控制操作但对于程序而言不可见的“隐藏”寄存器,例如分支预测表中的寄存器。
[0008]因为这两种类型的寄存器都可看见访问之间的长时间段(在该长时间段期间它们容易出错),所以对应CPU对潜在故障的敏感性增加。
[0009]用于检测出错的寄存器的典型解决方案包括下面的解决方案。第一已知方案基于由在CPU上运行的程序读出在架构上可见的寄存器并比较该值与保存在系统中别处的已知良好值。这需要已知良好值是可用的。然而,对于动态更新的寄存器,这种值可能不可用。
[0010]这种解决方案的另一问题在于:使程序读出架构状态是侵入性的,并且将会消耗CPU资源来执行。此外,隐藏寄存器通常对于程序而言是不可见的,因此不能被比较。
[0011]第二已知解决方案基于使用至少两个锁步的CPU。锁步的CPU允许在出错导致两个CPU的操作不同时检测到这种出错。然而,可能仅在出错实际发生之后的某一时间可检测到这种不同的操作,于是,对于系统而言可能太晚以致不能从这种出错恢复。
[0012]由于这些或其它原因,需要本发明。
【发明内容】

[0013]如权利要求中更完整所述,基本上如至少一个附图中所示和/或如结合至少一个附图所述,提供一种用于检测微控制器中的潜在故障的方法和系统。
[0014]通过下面参照附图进行的详细描述,实施例的另外的特征和优点将会变得清楚。
【专利附图】

【附图说明】
[0015]附图被包括以提供进一步理解,并且被包括在本说明书中并构成本说明书的一部分。附图涉及例子和实施例并与描述一起用于解释本发明的原理。其它实施例和实施例的许多预期优点将会被容易地理解,因为它们通过参照下面的详细描述而变得更好理解。
[0016]图1示出用于检测潜在故障的两个锁步的CPU中的CPU状态寄存器扫描的系统的实施例;
图2示出用于检测对相同的输入数据进行操作的冗余CPU的寄存器出错的方法的实施例。
【具体实施方式】
[0017]在下面的“【具体实施方式】”中,参照附图,附图形成“【具体实施方式】”的一部分,并且在附图中作为说明而示出特定实施例。应理解,在不脱离本发明的范围的情况下,可使用其它实施例并且可做出结构或其它改变。因此,不应在限制性的意义上进行下面的详细描述,并且本发明的范围由所附权利要求定义。
[0018]在下面,为了说明目的,将参照汽车电子控制单元中的微控制器描述本发明。然而,本发明不限于此,并且可结合微控制器的任何其它类型的故障检测找到它的应用。
[0019]关于多CPU或多核微控制器的一个问题是系统完整性。系统完整性的前提在于:在潜在错误可能使多CPU或多核微控制器的进一步操作出错之前,检测到潜在错误。
[0020]对于高完整性安全微控制器,关于系统完整性的现有技术的状态是对于计算群集使用双工系统,也称为两个CPU的锁步执行。CPU的锁步执行描述这样的事实:例如,两个CPU执行被延迟例如两个时钟周期的相同过程以缓解共因失效。
[0021]因此,在以上例子中的第一锁步CPU中的错误的情况下,也存在用于检测该错误的至少两时钟周期延迟。这是由这样的事实所引起的:通常通过比较第二锁步CPU的因此延迟两个时钟周期的输出与第一锁步CPU的延迟的输出来检测错误。然而,同时,直至检测到错误,对于锁步CPU的系统而言可能太晚以致不能从CPU寄存器的出错恢复。
[0022]因此,实施例涉及一种用于优选地在CPU或微控制器中的状态寄存器出错影响CPU或微控制器的进一步操作之前并且在不干扰CPU或微控制器的正常操作的情况下检测这些出错的新颖的系统和方法。
[0023]当前,汽车E⑶通常以这种方式设置,即关键错误导致进入失效安全模式。然而,在这种情况下,几乎未定义再次进入正常模式的过程。换句话说,错误恢复现今刚处于定义中。
[0024]由于上述驾驶辅助功能的实际复杂性通常反映在支持软件的复杂性中,所以迄今为止在研究和开发方面未关注对应的微控制器架构及其例如通过潜在故障的早期检测来支持错误恢复的能力。因此,现今没有电路可用来在实际应用中允许在CPU状态寄存器出错影响CPU的进一步操作之前检测到它们。
[0025]因此,实施例包括一种适应于允许以非侵入性方式读多CPU微控制器的架构寄存器和隐藏寄存器的系统和方法。读访问的结果可被传送到输出以用于例如在锁步的系统中的比较。为了这个目的,实施例可包括位于多CPU微控制器中的每个CPU中的内部总线系统,允许读每个寄存器(即,架构寄存器和隐藏寄存器)。
[0026]在一个实施例中,每个寄存器可在内部总线上被给予独一无二的访问地址,并且可在不扰乱多CPU微控制器的状态或者不干扰多CPU微控制器的正常操作的情况下读每个
寄存器。
[0027]程序装置可用于依次读每个寄存器并把结果放在专用CPU扫描输出上。多CPU微控制器可被用在锁步的系统中,并且扫描输出可被与锁步的一对CPU中的对应CPU上的相同扫描输出进行比较。
[0028]程序装置可用于反复地扫描多CPU微控制器的寄存器,允许在寄存器的进一步使用导致系统失效之前发现潜在故障。扫描寄存器的速度可变化以平衡访问频率与功耗和失效反应时间。在一个实施例中,与多CPU微控制器的非关键寄存器相比,可更频繁地读关键寄存器。
[0029]如前所示,通常在由诸如延迟的双工系统中的至少一个第二 CPU进行的相同输入信号的延迟的处理的基础上以及在第一 CPU和所述至少一个第二 CPU的合适的输出信号的随后比较的基础上执行这种错误检测以产生对应的错误信号。
[0030]图1示出用于检测潜在故障的两个锁步的CPU中的CPU寄存器扫描的系统的实施例。在这个系统中,第一 CPU 110包括:第一 CPU状态寄存器111、第二 CPU状态寄存器112、第三CPU状态寄存器113和第n CPU状态寄存器119。在图1中的实施例的情况下,所有CPU寄存器被称为“CPU状态寄存器”。然而,虽然在更广泛的意义上CPU的所有寄存器的特征在于它的当前状态,但在严格意义上一些上述状态寄存器不需要是“CPU状态”寄存器。[0031 ] 如前所示,CPU状态寄存器111、112、113、119中的任何一个可以是对于在第一 CPU110上运行的程序而言可见的架构寄存器,或者可以是由第一 CPU 110用来控制它的操作但对于程序而言不可见的“隐藏”寄存器。
[0032]在任何情况下,可通过非侵入性读总线的地址总线部分114上的独一无二的寄存器地址访问CPU状态寄存器111、112、113、119中的每一个。响应于这种访问,CPU状态寄存器111、112、113、119中的对应一个可经由非侵入性读总线的数据总线部分116把它的数据内容发送给第一 CPU 110的专用CPU扫描输出118。在一个实施例中,非侵入性读总线可包括位于第一 CPU 110内的单独总线,该单独总线使得能够在不影响第一 CPU 110的状态或者不干扰第一 CPU 110的正常操作的情况下访问CPU状态寄存器111、112、113、119。
[0033]如同图1的实施例中一样,位于第一 CPU 110内的程序装置115可用于依次读第一 CPU 110的第一 CPU状态寄存器111、第二 CPU状态寄存器112、第三CPU状态寄存器113和第n CPU状态寄存器119中的每一个,并把结果放在第一 CPU 110的专用CPU扫描输出118上。此外,在一个实施例中,程序装置115可配置为改变访问第一 CPU 110的第一 CPU状态寄存器111、第二 CPU状态寄存器112、第三CPU状态寄存器113和第n CPU状态寄存器119的频率或顺序以平衡CPU状态寄存器111、112、113、119中的或多或少关键的状态寄存器之间的访问频率和失效反应时间。
[0034]另外,图1中的实施例包括与第一 CPU 110 一起在锁步模式下操作的第二 CPU190。换句话说,第二 CPU 190提供对与第一 CPU 110相同的输入数据进行操作的冗余CPU以便能够实现第一 CPU 110和第二 CPU 190的各组相应寄存器的内容的比较以检测出错的寄存器内容。
[0035]第二 CPU 190包括:第一 CPU状态寄存器191、第二 CPU状态寄存器192、第三CPU状态寄存器193和第n CPU状态寄存器199。
[0036]此外,关于第二 CPU 190,CPU状态寄存器191、192、193、199中的任何一个可以是
对于在第二 CPU 190上运行的程序而言可见的架构寄存器,或者可以是由第二 CPU 190用来控制它的操作但对于程序而言不可见的“隐藏”寄存器。
[0037]类似于第一 CPU 110,可通过另一非侵入性读总线的地址总线部分194上的独一无二的寄存器地址访问CPU状态寄存器191、192、193、199中的每一个。响应于这种访问,CPU状态寄存器191、192、193、199中的对应一个可经由所述另一非侵入性读总线的数据总线部分196把它的数据内容发送给第二 CPU 190的专用CPU扫描输出198。在一个实施例中,所述非侵入性读总线可包括位于第二 CPU 190内的单独总线,该单独总线使得能够在不影响第二 CPU 190的状态或者不干扰第二 CPU 190的正常操作的情况下访问CPU状态寄存器 191、192、193、199。
[0038]如同图1的实施例中一样,位于第二 CPU 190内的另一程序装置195可用于依次读第二 CPU 190的第一 CPU状态寄存器191、第二 CPU状态寄存器192、第三CPU状态寄存器193和第n CPU状态寄存器199中的每一个,并把读结果放在第二 CPU 190的专用CPU扫描输出198上。此外,程序装置195可配置为改变访问第二 CPU 190的第一 CPU状态寄存器191、第二 CPU状态寄存器192、第三CPU状态寄存器193和第n CPU状态寄存器199的频率或顺序以平衡CPU状态寄存器191、192、193、199中的或多或少关键的状态寄存器之间的访问频率和失效反应时间。
[0039]图1示出比较器150可连接第一 CPU 110的专用CPU扫描输出118与第二 CPU 190的专用CPU扫描输出198。以这种方法,比较器150可用于比较第一 CPU 110和第二 CPU190的各组相应寄存器的内容以检测出错的寄存器内容。例如,第一 CPU 110的第一寄存器111的内容可被与第二 CPU 190的第一寄存器191的内容进行比较,第一 CPU 110的第二寄存器112的内容可被与第二 CPU 190的第二寄存器192的内容进行比较,第一 CPU 110的第三寄存器113的内容可被与第二 CPU 190的第三寄存器193的内容进行比较,并且第一CPU 110的第η寄存器119的内容可被与第二 CPU 190的第η寄存器199的内容进行比较。作为用于潜在故障的检测的这种过程的一部分,第一 CPU 110的专用CPU扫描输出118的端口可被与第二 CPU 190的专用CPU扫描输出198的对应的锁步端口进行比较。
[0040]为了这个目的,第一 CPU 110和第二 CPU 190可在锁步的系统中操作。即,第二 CPU190可执行被延迟例如两个时钟周期的与第一 CPU 110相同的过程。以这种方法,第二 CPU190不会以与第一 CPU 110相同的方式受到引起寄存器出错的效应影响的可能性增加。
[0041]因此,每当利用相同输入数据执行相同过程的锁步的第一 CPU 110和第二 CPU190的对应寄存器的上述比较导致相应寄存器的不一致的CPU状态寄存器内容时,CPU状态寄存器可被检测为出错。为了防止CPU状态寄存器的出错影响对应CPU的进一步操作,第一CPU 110和第二 CPU 190都可被重置为没有第一 CPU 110和第二 CPU 190之间的任何寄存器不一致的扫描状态,并被指示重复被执行直至寄存器出错发生的时间点的指令。在替代实施例中,不一致的CPU状态寄存器内容中的正确的CPU状态寄存器内容能够通过三个或更多的锁步的CPU的相应寄存器之间的多数决定而被确定以在对应的一组锁步的CPU上执行任何另外的处理命令之前替代对应CPU状态寄存器中的不正确的CPU状态寄存器内容。
[0042]图2示出用于检测对相同的输入数据进行操作(即,对相同的一组指令和数据进行操作)的冗余CPU的寄存器出错的方法的实施例。在该方法的步骤60中,至少两个微控制器可对相同的输入数据进行操作。每个微控制器可包括多个寄存器。
[0043]在该方法的步骤61中,可由总线系统读微控制器中的不同微控制器的所述多个寄存器中的至少一组相应寄存器的内容。
[0044]此外,在如图2中所示的该方法的可选步骤62中,程序装置可用于确定读所述多个寄存器中的至少两组相应寄存器的顺序。
[0045]在如图2中所示的该方法的另外步骤63中,可比较微控制器中的不同微控制器的所述多个寄存器中的至少一组相应寄存器的内容。
[0046]在该方法的步骤64中,作为以上比较的结果,可按照具有不一致的内容的相应寄存器的形式检测微控制器的出错的寄存器。
[0047]关于与附图相关的上述实施例,强调的是,实施例基本上用于增加可理解性。除此之外,下面的另外的实施例试图表示更一般的概念。然而,也不应在限制性的意义上理解下面的实施例。相反地,如前所示,本发明的范围由所附权利要求定义。
[0048]在这个方面,第一实施例涉及一种用于检测对相同的输入数据进行操作的冗余(PU的寄存器出错的系统,该系统包括:单独总线,位于冗余CPU中的每个CPU中,用于以非侵入性方式读冗余CPU中的各CPU的至少一个预定寄存器。这个实施例包括:比较器,用于比较冗余CPU中的不同CPU的至少一组相应寄存器的内容以检测出错的寄存器内容。
[0049]一个实施例还包括:程序装置,位于冗余CPU中的每个CPU中,用于确定读所述至少一个预定寄存器的频率和/或读冗余CPU中的各CPU的至少两个预定寄存器的顺序。
[0050]在一个实施例中,冗余CPU是锁步的CPU。
[0051]在另一实施例中,冗余CPU中的每个CPU中的单独总线配置为以非侵入性方式访问冗余CPU中的各CPU的所有架构寄存器和至少一个隐藏寄存器子集。
[0052]在一个实施例中,每个程序装置配置为与不太关键的寄存器相比更频繁地读所述至少一个预定寄存器中的至少一个关键的寄存器。
[0053]在另一实施例中,每个程序装置配置为响应于预定事件读所述至少一个预定寄存器中的至少一个关键的寄存器。
[0054]另一实施例涉及一种系统,该系统包括对相同的输入数据进行操作的至少两个微控制器。在这个系统中,每个微控制器包括控制微控制器中的各微控制器的操作的多个寄存器。
[0055]此外,这个系统包括:总线系统,用于以非侵入性方式读并比较微控制器中的不同微控制器的所述多个寄存器中的至少一组相应寄存器的内容以按照具有不一致的内容的相应寄存器的形式检测出错的寄存器。
[0056]在一个实施例中,该系统配置为输出至少一个读访问地址并比较所述至少一个读访问地址与开始由总线系统对所述多个寄存器中的对应一个寄存器的对应非侵入性读访问的访问地址以确保在对应非侵入性读访问期间未发生对应地址字段的出错。
[0057]—个实施例还包括:程序装置,用于确定读所述多个寄存器中的至少一组相应寄存器的频率和/或读所述多个寄存器中的至少两组相应寄存器的顺序。
[0058]在一个实施例中,程序装置配置为被调节(throttle)以仅微控制器的每第η时钟周期读所述多个寄存器中的至少一组相应寄存器以减少功耗,其中η是预定自然数并且η > 2。
[0059]另一实施例包括:比较器,用于比较在微控制器中的不同微控制器的所述多个寄存器中的所述至少一组相应寄存器的内容。在这个实施例中,每个微控制器包括:输出端口,用于输出由总线系统以非侵入性方式读的微控制器中的对应一个微控制器的所述多个寄存器的内容。
[0060]此外,根据这个实施例,所述多个寄存器是m位宽,其中输出端口的宽度仅为m/n位宽,这提供比较器的减少的宽度以进一步减少功耗。在这个实施例中,m是预定自然数并且m=n.1,并且i是预定自然数并且i>2。
[0061]另一实施例涉及一种用于检测对相同的输入数据进行操作的CPU内的寄存器出错的系统,该系统包括用于不同CPU的寄存器中的至少一组相应寄存器的内容的非侵入性读访问和比较以按照具有不一致的内容的相应寄存器的形式检测出错的寄存器的装置。
[0062]在一个实施例中,该装置包括:提供对寄存器的非侵入性读访问的至少一个总线、控制非侵入性读访问的频率和/或顺序的至少一个程序装置和用于寄存器的内容的比较的比较器。此外,在这个系统中,每个CPU包括用于把CPU中的对应一个CPU的寄存器的内容输出到比较器的扫描输出。
[0063]在一个实施例中,该系统配置为通过把CPU的多个寄存器分成多个子块来在CPU的每个时钟周期中读并输出所述多个寄存器的内容。
[0064]在另一实施例中,该系统配置为根据CPU的应用的需要的失效反应时间改变非侵入性读访问的速度。
[0065]另一实施例涉及一种用于检测对相同的输入数据进行操作的冗余CPU的寄存器出错的方法。这种方法包括下述步骤:由位于冗余CPU中的每个CPU中的单独总线以非侵入性方式读冗余CPU中的各CPU的至少一个预定寄存器。
[0066]此外,该方法包括下述步骤:由比较器比较冗余CPU中的不同CPU的至少一组相应寄存器的内容以检测出错的寄存器内容。
[0067]在该方法的一个实施例中,非侵入性读包括:使用位于冗余CPU中的每个CPU中的程序装置来确定读所述至少一个预定寄存器的频率和/或读冗余CPU中的各CPU的至少两个预定寄存器的顺序。
[0068]根据一个实施例,冗余CPU是锁步的CPU。
[0069]在一个实施例中,冗余CPU中的每个CPU中的单独总线配置为以非侵入性方式访问冗余CPU中的各CPU的所有架构寄存器和至少一个隐藏寄存器子集。
[0070]在另一实施例中,使用程序装置包括:更频繁地读所述至少一个预定寄存器中的至少一个关键的寄存器。
[0071]另一实施例涉及一种包括使至少两个微控制器对相同的输入数据进行操作的步骤的方法。在这种方法中,每个微控制器包括控制微控制器中的各微控制器的操作的多个
寄存器。
[0072]此外,这种方法包括下述步骤:由总线系统以非侵入性方式读并比较微控制器中的不同微控制器的所述多个寄存器中的至少一组相应寄存器的内容以按照具有不一致的内容的相应寄存器的形式检测出错的寄存器。
[0073]一个实施例还包括下述步骤:输出至少一个读访问地址并比较所述至少一个读访问地址与开始由总线系统对所述多个寄存器中的对应一个寄存器的对应非侵入性读访问的访问地址以确保在对应非侵入性读访问期间未发生对应地址字段的出错。
[0074]在一个实施例中,以非侵入性方式读包括:使用程序装置来确定读所述多个寄存器中的至少一组相应寄存器的频率和/或读所述多个寄存器中的至少两组相应寄存器的顺序。
[0075]在另一实施例中,使用程序装置包括:调节非侵入性读以仅微控制器的每第η时钟周期读所述多个寄存器中的至少一组相应寄存器以减少功耗,其中η是预定自然数并且η > 2。
[0076]另一实施例涉及一种用于由对相同的输入数据进行操作的冗余CPU检测CPU寄存器出错的方法。这种方法包括下述步骤:以非侵入性方式读并比较冗余CPU中的不同CPU的CPU寄存器中的至少一组相应CPU寄存器的内容以按照具有不一致的内容的相应CPU寄存器的形式检测出错的CPU寄存器。
[0077]虽然已在这里表示并描述了特定实施例,但本领域普通技术人员将会理解,在不脱离本发明的范围的情况下,可用各种替代和/或等同实现方式替换示出并描述的特定实施例。本申请旨在覆盖这里讨论的特定实施例的任何修改或变化。因此,旨在本发明仅由权利要求及其等同物限制。
【权利要求】
1.一种用于检测对相同的输入数据进行操作的冗余CPU的寄存器出错的系统,包括: 单独总线,位于冗余CPU中的每个CPU中,每个总线配置为以非侵入性方式读冗余CPU中的各CPU的至少一个预定寄存器;和 比较器,用于比较冗余CPU中的不同CPU的至少一组相应寄存器的内容以检测出错的寄存器内容。
2.根据权利要求1所述的系统,还包括:程序装置,位于冗余CPU中的每个CPU中,每个程序装置配置为确定读所述至少一个预定寄存器的频率和/或读冗余CPU中的各CPU的至少两个预定寄存器的顺序。
3.根据权利要求1所述的系统,其中所述冗余CPU是锁步的CPU。
4.根据权利要求1所述的系统,其中所述冗余CPU中的每个CPU中的单独总线配置为以非侵入性方式访问冗余CPU中的各CPU的所有架构寄存器和至少一个隐藏寄存器子集。
5.根据权利要求2所述的系统,其中每个程序装置配置为与其它非关键的寄存器相比更频繁地读所述至少一个预定寄存器中的至少一个关键的寄存器。
6.根据权利要求2所述的系统,其中每个程序装置配置为响应于预定事件而读所述至少一个预定寄存器中的至少一个关键的寄存器。
7.一种系统,包括: 至少两个微控制器,对相同的输入数据进行操作,每个微控制器包括控制微控制器中的各微控制器的操作的多个寄存器;和 总线系统,配置为以非侵入性方式读并比较微控制器中的不同微控制器的所述多个寄存器中的至少一组相应寄存器的内容以按照具有不一致的内容的相应寄存器的形式检测出错的寄存器。
8.根据权利要求7所述的系统,其中所述总线系统配置为输出至少一个读访问地址并比较所述至少一个读访问地址与开始由总线系统对所述多个寄存器中的对应一个寄存器的对应非侵入性读访问的访问地址以确保在对应非侵入性读访问期间未发生对应地址字段的出错。
9.根据权利要求7所述的系统,还包括:至少两个程序装置,分别与所述至少两个微控制器关联,每个程序装置配置为确定读所述多个寄存器中的至少一组相应寄存器的频率和/或读所述多个寄存器中的至少两组相应寄存器的顺序。
10.根据权利要求9所述的系统,其中每个程序装置配置为被调节以仅微控制器的每第η时钟周期读所述多个寄存器中的所述至少一组相应寄存器以减少功耗,其中η是预定自然数并且η≥2。
11.根据权利要求10所述的系统,还包括:比较器,配置为比较在微控制器中的不同微控制器的所述多个寄存器中的所述至少一组相应寄存器的内容,其中每个微控制器包括用于输出由总线系统以非侵入性方式读的微控制器中的对应一个微控制器的所述多个寄存器的内容的输出端口,其中所述多个寄存器是m位宽,其中输出端口的宽度为m/n位宽,提供比较器的减少的宽度以进一步减少功耗,其中m是预定自然数并且m=n.1,并且i是预定自然数并且i > 2。
12.一种用于检测对相同的输入数据进行操作的CPU内的寄存器出错的系统,包括: 至少两个CPU,对相同的输入数据进行操作;和用于所述至少两个CPU的寄存器中的至少一组相应寄存器的内容的非侵入性读访问和比较以按照具有不一致的内容的相应寄存器的形式检测出错的寄存器的装置。
13.根据权利要求12所述的系统,其中所述装置包括:提供对寄存器的非侵入性读访问的至少一个总线、控制非侵入性读访问的频率和/或顺序的至少一个程序装置和用于寄存器的内容的比较的比较器,每个CPU包括用于把CPU中的对应一个CPU的寄存器的内容输出到比较器的扫描输出。
14.根据权利要求12所述的系统,其中所述装置配置为通过把CPU的多个寄存器分成多个子块来在CPU的每个时钟周期中读并输出所述多个寄存器的内容。
15.根据权利要求12所述的系统,其中所述装置配置为根据CPU的应用的需要的失效反应时间来改变非侵入性读访问的速度。
16.一种用于检测对相同的输入数据进行操作的冗余CPU的寄存器出错的方法,包括: 由位于冗余CPU中的每个CPU中的单独总线以非侵入性方式读冗余CPU中的各CPU的至少一个预定寄存器;以及 由比较器比较冗余CPU中的不同CPU的至少一组相应读寄存器的内容以检测出错的寄存器内容。
17.根据权利要 求16所述的方法,其中以非侵入性方式读包括:使用位于冗余CPU中的每个CPU中的程序装置来确定读所述至少一个预定寄存器的频率和/或读冗余CPU中的各CPU的至少两个预定寄存器的顺序。
18.根据权利要求16所述的方法,其中所述冗余CPU是锁步的CPU。
19.根据权利要求16所述的方法,其中所述冗余CPU中的每个CPU中的单独总线配置为以非侵入性方式访问冗余CPU中的各CPU的所有架构寄存器和至少一个隐藏寄存器子集。
20.根据权利要求17所述的方法,其中使用程序装置包括:更频繁地读所述至少一个预定寄存器中的至少一个关键的寄存器。
21.—种方法,包括: 使至少两个微控制器对相同的输入数据进行操作,每个微控制器包括控制微控制器中的各微控制器的操作的多个寄存器;以及 由总线系统以非侵入性方式读并比较微控制器中的不同微控制器的所述多个寄存器中的至少一组相应寄存器的内容以按照具有不一致的内容的相应寄存器的形式检测出错的寄存器。
22.根据权利要求21所述的方法,还包括:输出至少一个读访问地址并比较所述至少一个读访问地址与开始由总线系统对所述多个寄存器中的对应一个寄存器的对应非侵入性读访问的访问地址以确保在对应非侵入性读访问期间未发生对应地址字段的出错。
23.根据权利要求21所述的方法,其中以非侵入性方式读包括:使用程序装置来确定读所述多个寄存器中的至少一组相应寄存器的频率和/或读所述多个寄存器中的至少两组相应寄存器的顺序。
24.根据权利要求22所述的方法,其中使用程序装置包括:调节非侵入性读以仅微控制器的每第η时钟周期读所述多个寄存器中的至少一组相应寄存器以减少功耗,其中η是预定自然数并且η >2。
25.一种用于由对相同的输入数据进行操作的冗余CPU检测CPU寄存器出错的方法,包括: 以非侵入性方式读冗余CPU中的不同CPU的CPU寄存器的至少一组相应CPU寄存器;以及 比较CPU寄存器中的至少一组相应CPU寄存器的内容以按照具有不一致的内容的相应CPU寄存器的形式检测出错的CPU寄存器。
【文档编号】G06F11/16GK103473153SQ201310220189
【公开日】2013年12月25日 申请日期:2013年6月5日 优先权日:2012年6月5日
【发明者】S.布鲁尔顿, N.S.哈斯蒂 申请人:英飞凌科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1