发明内容
本发明的目的在于指出一种替代性的双核微处理器系统,其类似地包含全存储器与测试数据存储装置(其具有相对较小的大小,用于存储与存储在全存储器中的原始数据相关联的冗余信息),且该微处理系统与对应的双核微处理器系统相比具有增大的错误识别率。
本发明借助一种用于控制或调节至少部分安全关键处理的微处理器系统实现了此目的,该系统包含:集成在芯片封装内的两个中央处理单元;第一与第二总线系统;第一总线系统上的至少一个全存储器;一个或一个以上的测试数据存储装置中的测试数据,其被联系到第一总线系统上的全存储器中的数据,其中,测试数据存储装置小于全存储器,总线系统包含比较和/或驱动器部件,该部件允许两个总线系统之间的数据交换和/或数据比较。测试数据存储装置被布置在第一总线系统上,第二总线系统不具有布置在其上的、用于对第一总线系统上的存储器中的数据进行备份的存储器或测试数据存储装置。使用第一总线系统上的测试数据和测试数据存储器对第一总线系统上的全存储器的至少一部分进行备份,第一总线系统具有布置于其上的硬件测试数据产生器,硬件测试数据产生器为测试数据存储器产生测试数据。第二总线系统的区域包含硬件错误识别单元,该单元将来自第一总线系统上的测试数据存储器的测试数据与来自第一总线系统上的全存储器的数据进行比较,特别是被读入微处理器单元的数据来自第一总线系统上的全存储器。
基于本发明的微处理器系统包含集成在芯片封装中的两个中央处理单元。
每个处理单元具有相关联的专用总线系统(第一与第二总线),这意味着此总线系统也具有冗余设计。
微处理器系统还包含第一总线上的测试数据存储装置,其与第一总线系统中的全存储器相比具有减小的存储容量。测试数据存储装置存储测试数据,该数据被联系到第一总线系统上的存储器中的数据。
测试数据存储装置用于存储被联系到全存储器中的数据的测试数据。对测试数据进行存储用于识别典型数据存储装置错误,该错误可在读取或写入操作过程中在很少的情况下发生。这样的错误也可通过一式二份地提供的全存储器以及以相同形式两次存储的数据识别出。然而,这是成本巨大的,因为存储器构成芯片制造成本的相当大的部分。已经发现,沿着基于本发明的微处理器系统的思路,还可以使用具有减小的存储器空间需求的冗余存储器--即测试数据存储装置--实现充分的错误识别。为此,举例而言,全存储器中的数据字(数据项)具有在测试数据存储装置中为之存储的测试信息项或测试值(例如奇偶信息、汉明码等等)。在最简单的情况下,这可以为具有1位的长度的奇偶位。更为复杂的编码方法--例如汉明码--也可使得错误校正成为可能,并识别多种错误。奇偶信息项可在逐字的基础上形成,和/或由全存储器中的多个数据字组合形成(块状测试数据编码)。
优选为,仅部分全存储器由测试数据存储装置进行备份。在这种情况下,因此在全存储器中存在未被防备错误地进行备份的存储器区域。这些存储器区域可装有并非安全关键的、重要性较低的程序功能。然而,也可以由测试数据存储装置对整个全存储器进行备份。
另外,总线系统包含比较和/或驱动器部件,其允许两总线系统之间的数据交换和/或数据比较。
至少第一总线系统具有布置在其上的、固有的已知硬件测试数据产生器,其通过例如逻辑门制造。识别存储器错误所需要的测试信息因此不由中央处理单元(CPU)而是由硬件测试数据产生器(其在物理上与CPU分立地布置)来产生。硬件测试数据产生器优选为基本为硬件实现的半导体结构,其将规定的逻辑用作独立而不依赖中央处理单元协助地执行用于数据处理和/或信号处理的特定工步的基础。尽管硬件产生器所执行的操作在原理上也可由中央处理单元执行,除了可能增大的错误率以外,这通常是与更高的时钟周期消耗相关联的,其大大增加了延迟时间。
测试数据存储装置优选为具有独立的附加地址解码器,其特别地由第二总线上的处理单元致动。第二总线系统特别优选为不具有用于对第一总线上的存储器中的数据进行备份的、布置于其上的存储器或测试数据存储装置。
全存储器优选为读/写存储器。然而,在本发明的原理的基础上,可对只读存储器(例如ROM、Otp ROM、EPROM、EEPROM或闪速ROM)进行备份。
尽管使用由DE 195 29 434 A1可知的测试数据存储装置的备份方法满足对于现在的应用所需的可用性需求,除了所提到的存储器错误以外,还存在已知的体系结构不能防御的、附加类型的错误。举例而言,不能识别地址总线上的错误和地址解码器中的错误。尽管用于产生测试信息的块状测试数据编码可允许这些附加类型的错误被识别出,这种方法被限制于只读存储器的应用。因此,沿着本发明的思路,使用同样地布置在存储器总线上的测试数据存储装置以及适当的测试数据对至少部分全存储器进行备份。这实现了对前面提到的附加类型的错误的识别。
优选为,基于本发明的微处理器系统具有用于在其中实现地址错误识别的装置。这被特别设计为提供这样的手段:其在测试数据计算中包含被备份的数据的地址。特别优选为,写入特别涉及不仅使用数据位而且使用被备份数据以及相关联的地址计算得到的测试数据(其为例如校验位)。通过这种方式,当数据被读取时,寻址(addressing)错误可被识别出。地址错误识别优选为在两个总线系统中的每一个上提供。
一种用于地址错误识别的替代性优选手段包含这样的装置:其附加地在微处理器系统中实现,且其执行用于在后台进行地址错误识别的一个或一个以上的测试。这种类型的错误识别便利地不再是在读/写访问操作过程中并行执行。相反,这种错误识别措施特别地仅在优选为不存在进一步基本CPU活动的周期性单独校验的背景下采取。这里介绍的这种替代性地址错误识别可采用软件或硬件措施的形式。这里介绍的手段可采用内嵌自测试的形式,特别是在CPU内或硬件状态机内。
沿着自测试的思路,存储器优选为具有写入其上并接着从其上读取的、预定义的模式(pattern)。该模式可特别优选为采用这样的形式:使得可能的解码错误或致动错误有意地导致数据的污染(corruption)。在读取过程中,这种有意导致的错误于是被识别出。
作为对前面提到的两种错误识别装置的补充或替代的是,优选为实现寻址错误识别手段,其中,存储器单元使得存储器单元的地址被写入其中并接着被检查。
先前介绍的方法的例子被称为“地址到数据”测试。这种测试涉及使得存储器位置的地址的数字值被写入其中的每个存储器位置:
地址 数据项
0x00 0x00
0x01 0x01
……
0xff 0xff
本发明的思路所用的测试数据存储装置在原理上为传统的读/写存储器,但其具有与全存储器相比减小的存储容量。
微处理器系统被集成在共用芯片封装上,并优选为以时钟同步方式运行。优选为,两个系统被布置在共用半导体材料上。
微处理器系统包含两个总线系统,其优选为各自包含数据总线、地址总线与控制总线。
除了读/写存储器以外,自然还有至少一个只读存储器,其用于运行微处理器系统。术语“只读存储器”以本发明的思路被理解为至少对于某个时间是非易失性的存储器,例如特别是ROM、闪速ROM或OTP ROM类型。沿着核冗余原理的思路,于是,不是绝对有必要使两个总线系统均在其上具有全部或相同内容只读存储器。如果冗余概念也被传递到只读存储器(其是优选的),则为适当的测试信息进行准备,以便保证只读存储器中的数据被备份。这能特别通过第二总线上较小的只读存储器实现,该存储器包含适当的测试信息而不是数据。
优选为,基于本发明的微处理器系统用于在物理存储器中或至少与全读/写存储器直接邻近地存储附加地在第一总线上的测试数据。直接邻近意味着相关的芯片结构彼此毗连,其意味着可以观察到对于数据的必需短延迟时间。
优选为,微处理器系统被设计为使得读取周期涉及全存储器中这样的数据:由位于数据存储器区域内或接近数据存储器区域的一个或一个以上的硬件测试单元将该数据与关联到这些数据的测试数据进行比较。硬件校正单元在错误的情况下使用测试数据对数据进行校正。举例而言,这种校正允许简单的错误--例如不正确的位--被直接校正,使得微处理器系统不需要被关断。取决于测试字的复杂性,因此可以拦截更为复杂的错误。如果校正不成功,也就是说,如果数据中的错误复杂到使具有测试信息的逻辑组合使得校正后的数据仍是错误的,则这些数据由优选的当前进一步比较单元认出(spot),该单元比较在并行总线系统上排队的数据。因此,在适当的错误线(其特别地关闭微处理器系统或将之与电子电路的其余部分解耦合)上方便地输出错误信号。例如,在电子制动系统中,这有效地防止阀驱动器被错误地致动。
根据本发明,依靠考虑到借助第二总线上的处理单元致动的附加地址解码器的测试数据存储装置的独立寻址,地址错误可被识别。第二总线上的测试数据存储装置可有利地以这种方式分配。另外,这可产生对于第二总线上的错误识别装置的简化设计,其不特别包含错误产生电路。
最后,本发明还涉及本发明的微处理器系统的第二实施例,其为上面所述的系统的发展。
与已知的错误校正/错误识别微处理器(其使用核冗余原理并仅仅包含在一个存储器单元中识别/校正错误的机制)形成对比的是,本发明现在允许整个存储器被备份。这使得所用的冗余概念由只读存储器扩展到数据存储装置。这允许制造成本的进一步降低,同时,保持已有的安全性要求。
具体实施方式
图1中的微控制器包含两个中央处理单元(CPU)1、2,其以时钟同步的形式运行。两个微计算机执行同样的程序。每个单元具有各自单独的相关联地址与数据总线。CPU 1具有连接到其上的全数据存储装置7。另外,微处理器系统包含比较器3,其采用硬件单元的形式,并用于连续地将两个总线系统上的排队地址和数据彼此进行比较。如果不匹配,产生错误信号。出于简化图示的目的,附图没有更加详细地示出微处理器系统中通常存在的部件,例如输入/输出单元、只读存储器等等。这些没有示出的部件本质上基于WO99/35543中介绍的冗余核微控制器。
第一总线上的测试数据存储器5具有与存储器7相比减小了参数8的存储容量。存储器5用于存储测试数据,该数据由硬件产生器6在由CPU1在存储器7对于数据的每个写入操作过程中实际上同时地产生。在没有程序相关手段的情况下产生测试数据允许写入操作在原则上没有增大的时钟周期消耗的情况下进行。
读取涉及由CPU 1使用地址解码器8寻址的存储器7。在读取操作期间,硬件单元6是有效的。硬件单元6用于沿着测试数据产生方法(例如汉明码)的思路对数据进行校验,并可立即对之进行校正。比较器3所包含的总线驱动器用于同时提供对于CPU 1与CPU 2的排队数据。
如果数据与测试数据不匹配,识别出错误。尽管错误识别61也在第二总线上发生,其涉及可能在第一总线的区域内校正的数据。这种校验在硬件比较器61中进行,其可类似地产生错误信号。测试数据存储器5被布置为在物理上与数据存储装置7邻近,使得数据可在短时间内被校正,且因此这种校正仍可能在规定定时内。
沿着图1中的示例的思路,包含第一总线上的校验和存储器5与全数据存储装置7的块具有添加于其上的附加地址解码器9′,地址解码器9′对来自CPU 2的、用于访问测试数据存储器5的地址区域的地址进行解码。为此,提供与之相关联的地址总线与解码器9′之间的直接连接。地址解码器8对全存储器7的地址区域内的、CPU 1的存储器访问操作进行解码。所读取的测试数据经由块6被直接传送到错误识别块61。与块6形成对比的是,错误识别块61自身不包含任何错误校正装置。块61将测试数据与经由驱动器级被传送到第二总线的数据进行比较。为此,再次由(可能被校正的)读取数据形成校验和。将此校验和与自存储器读取的测试数据进行比较。第二总线上的错误识别涉及被CPU 2寻址的测试数据存储器5。通过用解码器9′对校验和存储器的独立寻址,保证地址错误的识别。
图2中的微处理器系统还在根据图2中的实例的共用块中合并了全数据存储装置7与校验和存储器5。块6和61中的错误识别与校正方法类似地基于图1的原理。图2中的微处理器系统不同于图1中的微处理器系统,特别是因为分配了地址解码器9′。CPU 1的正确地址产生通过将之与来自CPU 2(其执行同样的代码)的进行比较来检验。在比较器3内,将CPU2的地址与当前由CPU 1参考的地址进行比较,如果它们不匹配,则产生错误信号。基于图2的实例的微处理器系统的特定特征主要在于CPU 2的微处理器区域既不包含测试数据存储装置也不包含数据存储装置。沿着块6的错误识别6的思路,仅用于读取与写入过程中的错误识别的块61在CPU 2的区域内被复制。
与图1的实例形成对比的是,图2所示微处理器系统中没有第二地址解码器,这意味着不能基于冗余性识别地址错误。为了仍然实现地址错误识别,块6中的测试数据产生涉及将被写入的存储器地址的地址也被包含在内。在写入过程中,校验位不仅使用来自存储器7的存储器位置的数据位进行计算,还包含此存储器位置的地址。如果寻址中存在错误,可以在读取访问操作过程中发现它。