CN109716302A - 用于冗余数据处理的方法和设备 - Google Patents
用于冗余数据处理的方法和设备 Download PDFInfo
- Publication number
- CN109716302A CN109716302A CN201780057085.9A CN201780057085A CN109716302A CN 109716302 A CN109716302 A CN 109716302A CN 201780057085 A CN201780057085 A CN 201780057085A CN 109716302 A CN109716302 A CN 109716302A
- Authority
- CN
- China
- Prior art keywords
- processor core
- data
- processor
- core
- storage region
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1629—Error detection by comparing the output of redundant processing systems
- G06F11/1641—Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/28—Error detection; Error correction; Monitoring by checking the correct order of processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/83—Indexing scheme relating to error detection, to error correction, and to monitoring the solution involving signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/845—Systems in which the redundancy can be transformed in increased performance
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Hardware Redundancy (AREA)
Abstract
用于冗余数据处理的装置(10)包括集成电路(20),在集成电路中实现多核处理器(30)的功能。多核处理器的处理器核(40;50)分别被构造为执行有用程序,其中,可以借助所述装置的比较模块(60)对通过由不同的处理器核执行有用程序而得到的结果进行比较。处理器核在地址或数据结构(AS1、AS2;DS1、DS2)方面彼此不同,分别在处理器核方面使用所述地址或数据结构,以将数据存储到与相应的处理器核相关联的存储区域(70;80)中或者将数据从其中读出。在集成电路中在硬件方面至少部分单独地实现各个处理器核。
Description
技术领域
本发明涉及一种用于冗余数据处理的方法和集成电路。
背景技术
与安全相关的软件应用、例如用于控制调节机构(Stellwerk)的软件等,通常必须满足特殊的安全要求,这些安全要求例如已在安全标准EN 61508或者EN 50129中标准化。
安全关键软件的一个特征大多是,至少冗余地执行软件应用的一些部分。然后,对从这种冗余执行得到的结果进行比较。如果确定在各个结果之间存在偏差,则存在错误、例如硬件错误,可以通过这种方式来识别错误。
为了冗余地并行执行软件应用,可以使用彼此独立的处理器。在此,开销在于大量的材料使用。可能附加地需要用于同步各个处理器的方法。在此,可以示例性地引用申请人的SIMIS技术。
在特殊的安全技术处理器、例如所谓的锁步(Lockstep)处理器的情况下,处理器上的两个处理器核同步工作,从而处理器上的比较模块可以连续对处理器核的计算结果进行比较并且进行监视。在存在偏差的情况下,系统停止。在这种情境下,需要软件在两个处理器核上几乎相同地运行。
此外,为了使类似的硬件错误不对软件产生类似的影响,存在多次不同地对软件和数据进行编码的可能性。在此,一个示例是申请人的FailSafe-Simatic解决方案。在此,开销在于,必须以不同的方式对相同的流程进行编码。
最后,存在仅对软件应用的平行冗余执行进行仿真的可能性。为此,例如使用基于软件的仿真器,仿真器可以在处理器上执行,并且仿真器被配置为对软件应用在不同的处理器上的执行进行仿真。这具有可以节省硬件的优点。这种解决方案的缺点在于由于进行仿真而增加的运行时间。
原则上,代替用于冗余地、优选并行地执行软件应用的不同的处理器,可以使用多核处理器的不同的处理器核。然而,在此必须考虑多核处理器的处理器核至少共享处理器的一些硬件资源,例如处理器中的数据线或者控制线、缓存行(Cacheline)、缓存存储器等。也就是说,处理器核不完全彼此独立。因此,可能发生在不同的处理器核上冗余地执行的有用程序类似地或者甚至相同地对由资源导致的错误做出反应,这些资源由不同的处理器核共同使用。在这种情境下,称为“common cause(共同原因)”错误。因此,在共同使用的硬件资源中存在错误的情况下,对在多核处理器的不同的处理器核上冗余地执行的软件的比较,不总是足够用于识别这些硬件资源的错误。
发明内容
本发明要解决的技术问题是,考虑前面提到的缺点,并且提出一种设备和方法,其使得能够使用多核处理器的不同的处理器核来冗余地执行安全关键应用。
根据本发明,提供一种具有集成电路的用于冗余数据处理的装置。在集成电路中实现具有多个处理器核的多核处理器的功能。处理器核分别被构造为用于执行有用程序。此外,所述装置包括比较模块,其被配置为用于对从通过由相应的不同的处理器核执行有用程序而得到的结果进行比较。在集成电路中实现多个处理器核中的第一处理器核和与第一处理器核不同的第二处理器核,使得第一处理器核为了将数据存储在与第一处理器核相关联的第一存储区域中或者将数据从其中读出而使用地址结构,该地址结构与第二处理器核为了将数据存储在与第二处理器核相关联的第二存储区域中或者将数据从其中读出而使用的地址结构不同。替换地或者附加地,在集成电路中实现第一处理器核和第二处理器核,使得第一处理器核为了将数据存储在与第一处理器核相关联的第一存储区域中或者将数据从其中读出而使用数据结构,该数据结构与第二处理器核为了将数据存储在与第二处理器核相关联的第二存储区域中或者将数据从其中读出而使用的数据结构不同。第一处理器核在集成电路中的实现在硬件方面至少部分与第二处理器核的实现分离。
根据本发明的借助具有集成电路的装置冗余地处理数据的方法包括如下步骤:
由通过集成电路实现的多核处理器的第一处理器核和第二处理器核执行有用程序。然后,对通过由第一处理器核执行有用程序并且通过由第二处理器核执行有用程序而得到的结果进行比较。在此,第一处理器核为了将数据存储在与第一处理器核相关联的第一存储区域中或者将数据从其中读出而使用地址结构,该地址结构与第二处理器核为了将数据存储在与第二处理器核相关联的第二存储区域中或者将数据从其中读出而使用的地址结构不同。替换地或者附加地,第一处理器核为了将数据存储在与第一处理器核相关联的第一存储区域中或者将数据从其中读出而使用数据结构,该数据结构与第二处理器核为了将数据存储在与第二处理器核相关联的第二存储区域中或者将数据从其中读出而使用的数据结构不同。在集成电路中在硬件方面至少部分与第二处理器核分离地实现第一处理器核。例如,从第一处理器核到共同使用的存储器的地址线可以按照与从第二处理器核到共同使用的存储器不同的顺序布置。由此自动得到地址加扰。然后,存储器中的由于错误而重复出现的模式在两个核中不同地起作用。可以以类似的方式通过以不同的排列布置到两个处理器核的数据线来进行数据访问。应当理解,两个处理器核的基于硬件的实现允许任意复杂的数据和/或者地址加扰。
应当理解,本发明不局限于多核处理器的第一和第二处理器核。在具有多于两个的处理器核的多核处理器的情况下,这些处理器核可以互相成对地与前面关于第一处理器核和第二处理器核所描述的相同地运行。
本发明提供一系列优点,下面也将参考本发明的优选实施方式来说明这些优点。
基于如下事实,即各个处理器核为了将数据存储在分别与处理器核相关联的存储区域中或者将数据从其中读出而使用与相应的处理器核相关联的特定地址结构和/或数据结构,可以识别出不同的处理器核共同使用的资源中的、尤其是共同使用的存储器中的错误,但是也可以识别出共同使用的数据或者地址线中的错误。其原因是,由于使用特定于处理器核的地址结构或者数据结构,使得基于这些资源中的一个的错误功能的错误在每个处理器中以其它方式可以观察到。
根据一个实施方式,实现第一处理器核和第二处理器核,使得第二处理器核为了将数据存储在第二存储区域中或者将数据从其中读出而使用地址结构,与在第一处理器核方面为了将数据存储在第一存储区域中或者将数据从其中读出而使用的地址结构相比,对第二处理器核使用的地址结构进行了变换。可以改变变换的方式。优选变换可以通过加扰、即通常(伪)随机地排列与相应的处理器核相关联的存储区域的存储器地址来定义。
根据另一个实施方式,实现第一处理器核和第二处理器核,使得第二处理器核为了将数据存储在第二存储区域中或者将数据从其中读出而使用数据结构,与在第一处理器核方面为了将数据存储在第一存储区域中或者将数据从其中读出而使用的数据结构相比,第二处理器核使用的数据结构对数据字进行变换。在此,尤其是可以借助位移动来对数据字进行变换。同样可以使用其它算数运算,例如与质数相乘,来对要存储/读取的数据字进行变换。
尤其是为了使得在各个处理器核上执行的软件应用能够与在相应的处理器核外部的实例进行数据通信,根据一个实施方式,可以设置输入和输出存储区域。存储在该存储区域中的数据应当在其地址和数据结构方面遵循预先给定的地址和数据结构,在处理器核中的一个方面为了将数据存储在该输入和输出存储区域中或者将数据从其中读出而使用该地址和数据结构,预先给定的地址和数据结构对于外部实例也是已知的。换言之,在此,在处理器核方面不使用以特定于处理器的方式经过变换的地址或者数据结构。
与使用多个独立的处理器来冗余地执行有用程序相比,本发明具有如下优点:多核处理器的处理器核可以共同使用集成电路的硬件资源、例如存储器、数据和地址线等。这使得总体计算效率得到改善。换言之,根据一个优选实施方式,在集成电路中实现多核处理器的功能,使得第一处理器核和第二处理器核被配置为共同使用集成电路的硬件资源。
与原则上可能的、纯粹基于软件的解决方案相比,在基于软件的解决方案中,通过仿真器通过软件对多核处理器的处理器核进行仿真,来实现多核处理器的功能,本发明提供一系列另外的优点。通过直接以硬件实现或者至少以硬件配置多核处理器的至少一部分功能,有效程序的冗余计算可以比在纯粹基于软件的仿真器中明显更快地进行。也就是说,仅通过第一处理器核在集成电路中的实现在硬件方面至少部分与第二处理器核的实现分离,也就是说,至少部分以硬件直接配置处理器核的功能,得到运行时间增益。
最后提到的特征,即第一处理器核在集成电路中的实现在硬件方面至少部分与第二处理器核的实现分离,提供其它优点。通过该特征,可以实现,根据本发明,在一定程度上直接得到在基于软件的仿真器解决方案中强制的并且必须监视的要求,尤其是得到预先给定的功能与特定处理器核的绑定。
具体地,根据一个实施方式,例如可以在集成电路中通过硬件针对第一处理器核和第二处理器核单独实现对地址结构和/或数据结构进行变换的功能。根据该实施方式,可以省去对这些功能是否分别与正确的处理器核绑定的检查,在仿真器解决方案中需要这种检查。
结合本发明的另一个优选实施方式,即分别实现第一处理器核和第二处理器核,使得其被配置为在运行时间期间采集描述执行有用程序时的程序流程的数据,得到类似的效率提高。这些数据特别地是访问的存储器地址和存储在其中的值。然后,在需要时可以通过这些数据形成适当的哈希值等。可以在第一和第二处理器核执行有用程序期间或者之后的预先给定的时间点,在比较模块方面作为执行有用程序的结果或者部分结果,对这样采集的也称为“Dataflow-Digest(数据流摘要)”的数据进行比较。如果对于各个平行的程序执行,所采集的数据或者通过数据形成的哈希值不相同,则这指示在程序流程中的至少一个中存在错误。尤其是,以这种方式可以可靠地识别出硬件错误。
结合纯粹的仿真器解决方案必须确保这些数据的采集和必要时哈希值的计算分别唯一地与处理器核相关联,而这在此可以省去。因为根据一个实施方式设置为,在集成电路中通过硬件针对第一处理器核和第二处理器核(50)分别单独实现用于采集描述程序流程的数据的功能。
此外,可以省去结合纯粹的仿真器解决方案所需的对所使用的计算机架构的分析,该分析用于判断这种架构对特定的安全机制的反作用。根据本发明,以需要的方式针对每种配置调整所使用的硬件。
总之,特征,即第一处理器核在集成电路中的实现在硬件方面至少部分与第二处理器核的实现分离,即,在所使用的硬件中分别单独配置各个处理器核的各个功能,提供基本上在功能上明确地分离的处理器核、在功能上明确地分离的存储和数据访问机制以及在功能上明确地分离的关于程序流程的监视机制。最后,应当提到明显的性能增益。
根据第一优选实施方式,可以作为软核(Softcore)在现场可编程门阵列(FieldProgrammable Gate Array,FPGA)中配置多核处理器的功能。在此,优选作为单独的单元在FPGA中配置各个处理器核。这可以通过如下方式来实现,即,对于各个处理器核和其特定功能,尤其是关于为了将数据存储在分别与相应的处理器核相关联的存储区域中或者将数据从其中读出而使用的地址和数据结构,并且关于前面描述的Dataflow-Digest的采集,分别存在使用适当的硬件描述语言、例如VHDL的单独的描述,然后基于这些描述,在FPGA中配置或者合成相应的处理器核。
根据一个替换实施方式,可以作为“硬编码的”CPU在专用集成电路(Application-Specific Integrated Circuit,ASIC)中实现多核处理器。根据该实施方式,各个处理器核于是以“硬编码”的方式作为单独的单元存在。
为了例如在过时的情况下保证根据本发明的装置的可移植性,可以提供计算机可读的存储介质,存储介质包括对前面描述的根据本发明的装置的多核处理器的实现的定义。在此,借助硬件描述语言、尤其是借助所谓的超高速集成电路硬件描述语言(Very HighSpeed Integrated Circuit Hardware Description Language,VHDL)来进行定义。同样可以使用替换的硬件描述语言、例如Verilog。然后,可以以简单的方式在非常低的等级配置新的硬件,从而又建立多核处理器的功能。
附图说明
上面描述的本发明的特性、特征和优点以及实现本发明的方式结合下面对实施例的描述变得更清楚并且更容易理解,结合附图详细说明实施例。
图1示出了根据本发明的具有集成电路的装置的一个优选实施方式,在集成电路中实现多核处理器,
图2示出了计算机可读的存储介质,借助硬件描述语言对图1中的多核处理器的定义存储在计算机可读的存储介质上,以及
图3示出了根据本发明的方法的一个优选实施方式的步骤。
具体执行方式
图1示出了具有集成电路20的用于冗余数据处理的装置10。装置10可以是技术设备的控制器、例如铁路交通的调节机构的一部分。
在电路20中实现多核处理器30的功能,多核处理器30包括第一处理器核40和第二处理器核50。多核处理器30包括两个处理器核40、50可以共同使用的其它资源,例如缓存存储器110以及输入和输出存储器90及地址和数据线100。
多核处理器30根据以硬件描述语言、例如VHDL给出的定义130构造,即在具体情况下,在集成电路20的FPGA中配置多核处理器30。在此,在FPGA中配置两个处理器核40、50,使得针对每个处理器核40、50,分别以单独并且特定于处理器核的方式配置或者合成下面将更详细地给出的处理器核40、50的主要功能。仅为了更好理解,在此示例性地描述的实施方式仅局限于两个处理器核。原则上,多核处理器可以包括多于两个的处理器核,然后,其可以像下面针对第一和第二处理器核40、50描述的那样,互相成对地运行。
图2示意性地示出了计算机可读的存储介质120,多核处理器30的定义130存储在存储介质120上。定义以VHDL编写,并且针对处理器核40、50中的每个包括特定的说明部分140、150。
处理器核40、50中的每个被配置为用于执行有用程序(未示出),例如技术设备的控制程序。在此,有用程序在第一处理器核40和第二处理器核50上的平行的冗余执行可以提高设备的安全性。为此,在执行有用程序期间和/或之后,借助比较模块60将中间结果或者最终结果相互进行比较,中间结果或者最终结果分别通过在第一处理器核40和第二处理器核上执行有用程序而得到。如果通过在第一处理器核40上执行有用程序而得到的结果,与通过在第二处理器核50上执行有用程序而得到的相应的结果不同,则这可以被识别为在处理器核40、50中的一个上的程序执行中存在错误。这种错误的原因尤其可能是硬件错误。
在此,也可以根据下面说明的第一和第二处理器核40、50的实现或者配置,来识别如下硬件错误,这些硬件错误基于两个处理器核40、50共同使用的硬件组成部分(例如存储区域90、110或者线路100)中的错误。
在FPGA中配置第一处理器核40,使得第一处理器核40为了将数据存储在与第一处理器核40相关联的第一存储区域70中或者将数据从其中读出而使用地址结构AS1,地址结构AS1与第二处理器核50为了将数据存储在与第二处理器核50相关联的第二存储区域80中或者将数据从其中读出而使用的地址结构AS2不同。第一处理器核40例如可以使用以特定于处理器核的方式加扰的地址结构AS1,地址结构AS1与第二处理器核50使用的同样以特定于处理器核的方式加扰的地址结构AS2不同。
此外,在FPGA中配置第一处理器核40,使得第一处理器核40为了将数据存储在第一存储区域70中或者将数据从其中读出而使用数据结构DS1,数据结构DS1与第二处理器核50为了将数据存储在第二存储区域80中或者将数据从其中读出而使用的数据结构DS2不同。与第二处理器核50相比,第一处理器核40例如可以将要存储的数据字移动预先给定的数量的位(Bit)。
基于分别以特定于处理器核的方式加扰的地址结构AS1、AS2和/或以特定于处理器核的方式经过变换的用于存储数据字的数据结构DS1、DS2,可以识别出处理器核40、50共同使用的资源90、100、110中的硬件错误,因为其在各个处理器核40、50中具有不同的影响,然后,在平行地执行有用程序时,使得最晚在不同的中间结果或者结果中可以察觉到这些影响。在FPGA中针对每个处理器核40、50单独配置用于对地址结构加扰和用于变换数据结构的功能。
此外,第一和第二处理器核40、50被配置为在执行有用程序期间采集描述程序流程的数据。这特别地是所访问的存储器地址和存储在其中的值。通过采集的这些数据,可以为了压缩的目的而形成哈希值。在FPGA中针对每个处理器核40、50单独配置用于采集这些控制数据的功能。因为两个处理器核40、50执行相同的有用程序,因此在例如第一处理器核40得到的前面说明的哈希值形式的第一中间结果,与关于第二处理器核50示出相应的第二中间结果的哈希值不同的情况下,比较模块60可以假设在第一或者第二处理器核40、50中的程序执行期间存在错误。
通过输入和输出存储区域90,可以向多核处理器30中输入数据并且通过多核处理器30进行数据输出。为此,在FPGA中配置第一处理器核40和第二处理器核50,使得其根据从外部预先给定的、未变换或者加扰的地址和数据结构访问该输入和输出存储区域90。在此,可以附加地借助校验和对存储在该存储区域90中的数据进行保护。在此,可以在相应的处理器核40、50中创建校验和。
在图3中示意性地给出了用于冗余数据处理的方法的一个优选实施方式的步骤。
在位于前面的步骤S0中,提供计算机可读的存储介质120,前面参考图1描述的多核处理器30的定义130存储在存储介质120上。定义借助适当的硬件描述语言、例如VHDL编写。
在步骤S1中,根据定义130在集成电路20的FPGA中配置多核处理器30。如前面参考图1所说明的,在此,分别以特定于处理器核的方式单独在FPGA中配置第一和第二处理器核40、50的主要功能。
在步骤S2中,通过第一处理器核40和第二处理器核40冗余地平行地执行有用程序。
在步骤S3中,借助比较模块60对通过由第一处理器核40执行有用程序和通过由第二处理器核50执行有用程序而得到的中间结果或者最终结果进行比较。
在执行有用程序期间,第一处理器核40为了将数据存储在与第一处理器核40相关联的第一存储区域70中或者将数据从其中读出而使用地址结构AS1,地址结构AS1与第二处理器核50为了将数据存储在与第二处理器核50相关联的第二存储区域80中或者将数据从其中读出而使用的地址结构AS2不同。
此外,在这种情境下,第一处理器核40为了将数据存储在第一存储区域70中或者将数据从其中读出而使用数据结构DS1,数据结构DS1与第二处理器核50为了将数据存储在第二存储区域80中或者将数据从其中读出而使用的数据结构DS2不同。
综上所述,本发明涉及一种用于冗余数据处理的装置,该装置包括集成电路,在集成电路中实现多核处理器的功能。多核处理器的处理器核分别被构造为执行有用程序,其中,可以借助该装置的比较模块,对通过不同的处理器核执行有用程序而得到的结果进行比较。处理器核在地址或者数据结构方面彼此不同,在处理器核方面分别使用该地址或者数据结构,以将数据存储在与相应的处理器核相关联的存储区域中或者将数据从其中读出。在集成电路中通过硬件至少部分单独地实现各个处理器核。
虽然在细节上通过优选实施例详细说明和描述了本发明,但是本发明不局限于所公开的示例,本领域技术人员可以从中导出其它变形方案,而不脱离本发明的保护范围。
Claims (12)
1.一种用于冗余数据处理的装置(10),具有集成电路(20),
-其中,在集成电路(20)中实现具有多个处理器核(40;50)的多核处理器(30)的功能,其中,处理器核(40;50)分别被构造为执行有用程序,
-其中,所述装置(10)包括比较模块(60),所述比较模块被配置为用于对通过由相应地不同的处理器核(40;50)执行有用程序而得到的结果进行比较,其中,实现多个处理器核(40;50)中的第一处理器核(40)和与第一处理器核(40)不同的第二处理器核(50),使得
第一处理器核(40)
-为了将数据存储在与第一处理器核(40)相关联的第一存储区域(70)中或者将数据从其中读出而使用地址结构(AS1),所述地址结构与第二处理器核(50)为了将数据存储在与第二处理器核(50)相关联的第二存储区域(80)中或者将数据从其中读出而使用的地址结构(AS2)不同,和/或
第一处理器核(40)
-为了将数据存储在与第一处理器核(40)相关联的第一存储区域(70)中或者将数据从其中读出而使用数据结构(DS1),所述数据结构与第二处理器核(50)为了将数据存储在与第二处理器核(50)相关联的第二存储区域(80)中或者将数据从其中读出而使用的数据结构(DS2)不同,并且其中,
-第一处理器核(40)在集成电路(20)中的实现在硬件方面至少部分与第二处理器核(50)的实现分离。
2.根据权利要求1所述的装置(10),其特征在于,在集成电路(20)中实现多核处理器(30)的功能,使得第一处理器核(40)和第二处理器核(50)被配置为共同使用集成电路(20)的硬件资源(90;100;110)。
3.根据权利要求1或2所述的装置(10),其特征在于,实现第一处理器核(40)和第二处理器核(50),使得第二处理器核(50)为了将数据存储在第二存储区域(80)中或者将数据从其中读出而使用地址结构(AS2),与在第一处理器核(40)方面为了将数据存储在第一存储区域(70)中或者将数据从其中读出而使用的地址结构(AS1)相比,对第二处理器核使用的地址结构进行了变换、尤其是加扰。
4.根据前述权利要求中任一项所述的装置(10),其特征在于,实现第一处理器核(40)和第二处理器核(50),使得第二处理器核(50)为了将数据存储在第二存储区域(80)中或者将数据从其中读出而使用数据结构(DS2),与在第一处理器核(40)方面为了将数据存储在第一存储区域(70)中或者将数据从其中读出而使用的数据结构(DS1)相比,第二处理器核使用的数据结构尤其是借助位移动或者其它算数运算对数据字进行了变换。
5.根据权利要求3或4所述的装置(10),其特征在于,在集成电路(20)中通过硬件针对第一处理器核(40)和第二处理器核(50)单独实现对地址结构和/或数据结构进行变换的功能。
6.根据前述权利要求中任一项所述的装置(10),其特征在于,分别实现第一处理器核(40)和第二处理器核(50),使得其被配置为在运行时间期间采集描述执行有用程序时的程序流程的数据。
7.根据权利要求6所述的装置(10),其特征在于,在集成电路(20)中通过硬件针对第一处理器核(40)和第二处理器核(50)单独实现用于采集描述程序流程的数据的功能。
8.根据前述权利要求中任一项所述的装置(10),其特征在于输入和输出存储区域(90),所述输入和输出存储区域使得能够将数据输入到多核处理器(30)中并且通过多核处理器(30)进行数据输出,其中,实现第一处理器核(40)和第二处理器核(50),使得第一处理器核和第二处理器核根据预先给定的地址和数据结构访问所述输入和输出存储区域(90)。
9.根据前述权利要求中任一项所述的装置(10),其特征在于,在现场可编程门阵列中配置多核处理器(30)的功能,其中,作为单独的单元在现场可编程门阵列中配置处理器核(40;50)。
10.根据前述权利要求中任一项所述的装置(10),其特征在于,在专用集成电路中实现多核处理器(30)。
11.一种用于借助具有集成电路(20)的装置(10)冗余地处理数据的方法,包括如下步骤:
-由通过集成电路(20)实现的多核处理器(30)的第一处理器核(40)和第二处理器核(50)执行(S2)有用程序;
-对通过由第一处理器核(40)执行有用程序并且通过由第二处理器核(50)执行有用程序而得到的结果进行比较(S3),其中,
第一处理器核(40)
-为了将数据存储在与第一处理器核(40)相关联的第一存储区域(70)中或者将数据从其中读出而使用地址结构(AS1),所述地址结构与第二处理器核(50)为了将数据存储在与第二处理器核(50)相关联的第二存储区域(80)中或者将数据从其中读出而使用的地址结构(AS2)不同,和/或
第一处理器核(40)
-为了将数据存储在与第一处理器核(40)相关联的第一存储区域(70)中或者将数据从其中读出而使用数据结构(DS1),所述数据结构与第二处理器核(50)为了将数据存储在与第二处理器核(50)相关联的第二存储区域(80)中或者将数据从其中读出而使用的数据结构(DS2)不同,
其中,在集成电路(20)中在硬件方面至少部分与第二处理器核(50)分离地实现第一处理器核(40)。
12.一种计算机可读的存储介质(120),其包括借助硬件描述语言、尤其是借助所谓的超高速集成电路硬件描述语言对根据权利要求1至10中任一项所述的装置(20)的多核处理器(30)的实现的定义(130)。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102016215345.5 | 2016-08-17 | ||
DE102016215345.5A DE102016215345A1 (de) | 2016-08-17 | 2016-08-17 | Verfahren und Vorrichtung zur redundanten Datenverarbeitung |
PCT/EP2017/068635 WO2018033344A1 (de) | 2016-08-17 | 2017-07-24 | Verfahren und vorrichtung zur redundanten datenverarbeitung |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109716302A true CN109716302A (zh) | 2019-05-03 |
CN109716302B CN109716302B (zh) | 2022-10-18 |
Family
ID=59506248
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780057085.9A Active CN109716302B (zh) | 2016-08-17 | 2017-07-24 | 用于冗余数据处理的方法和设备 |
Country Status (7)
Country | Link |
---|---|
US (1) | US11334451B2 (zh) |
EP (1) | EP3475824B1 (zh) |
CN (1) | CN109716302B (zh) |
AU (1) | AU2017313189B2 (zh) |
CA (1) | CA3033912C (zh) |
DE (1) | DE102016215345A1 (zh) |
WO (1) | WO2018033344A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230092343A1 (en) * | 2020-05-30 | 2023-03-23 | Huawei Technologies Co., Ltd. | Lockstep processor recovery for vehicle applications |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102016205119A1 (de) * | 2016-03-29 | 2017-10-05 | Siemens Aktiengesellschaft | System zur Steuerung von Stellwerken im Bahnverkehr |
GB2555628B (en) * | 2016-11-04 | 2019-02-20 | Advanced Risc Mach Ltd | Main processor error detection using checker processors |
US11645178B2 (en) * | 2018-07-27 | 2023-05-09 | MIPS Tech, LLC | Fail-safe semi-autonomous or autonomous vehicle processor array redundancy which permits an agent to perform a function based on comparing valid output from sets of redundant processors |
DE102018212686A1 (de) * | 2018-07-30 | 2020-01-30 | Siemens Aktiengesellschaft | Verfahren zum Betreiben einer Rechenanlage |
EP3764235B1 (en) | 2019-07-12 | 2022-10-26 | Ratier-Figeac SAS | Field programmable gate array (fpga) having dissimilar cores |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102591763A (zh) * | 2011-12-31 | 2012-07-18 | 龙芯中科技术有限公司 | 一种基于确定性重放的处理器整体故障检测系统与方法 |
CN103635884A (zh) * | 2011-05-20 | 2014-03-12 | Abb技术股份公司 | 用于使用控制器操作的冗余的系统和方法 |
US20140359225A1 (en) * | 2013-05-28 | 2014-12-04 | Electronics And Telecommunications Research Institute | Multi-core processor and multi-core processor system |
CN104508635A (zh) * | 2012-07-13 | 2015-04-08 | 西门子公司 | 具有微处理器系统的装置 |
CN104820626A (zh) * | 2014-01-30 | 2015-08-05 | 罗伯特·博世有限公司 | 用于使具有不同的安全等级的软件在多核处理器系统中共存的方法 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5911059A (en) * | 1996-12-18 | 1999-06-08 | Applied Microsystems, Inc. | Method and apparatus for testing software |
US6247143B1 (en) * | 1998-06-30 | 2001-06-12 | Sun Microsystems, Inc. | I/O handling for a multiprocessor computer system |
DE10124027A1 (de) * | 2001-05-16 | 2002-11-21 | Continental Teves Ag & Co Ohg | Verfahren,Mikroprozessorsystem für sicherheitskritische Regelungen und dessen Verwendung |
TWI258658B (en) | 2003-07-07 | 2006-07-21 | Sunplus Technology Co Ltd | Device in CPU using address line to proceed scrambling processing and method thereof |
TWI222598B (en) | 2003-07-09 | 2004-10-21 | Sunplus Technology Co Ltd | Device and method protecting data by scrambling address lines |
EP1820093B1 (de) * | 2004-10-25 | 2018-08-15 | Robert Bosch Gmbh | Verfahren und einrichtung zum umschalten in einem computersystem mit mindestens zwei ausführungseinheiten |
EP2153328B1 (en) | 2007-05-25 | 2011-08-10 | Freescale Semiconductor, Inc. | Data processing system, data processing method, and apparatus |
US7877627B1 (en) | 2008-12-18 | 2011-01-25 | Supercon, L.L.C. | Multiple redundant computer system combining fault diagnostics and majority voting with dissimilar redundancy technology |
US8082425B2 (en) * | 2009-04-29 | 2011-12-20 | Advanced Micro Devices, Inc. | Reliable execution using compare and transfer instruction on an SMT machine |
WO2011101707A1 (en) | 2010-02-16 | 2011-08-25 | Freescale Semiconductor, Inc. | Data processing method, data processor and apparatus including a data processor |
US8479042B1 (en) * | 2010-11-01 | 2013-07-02 | Xilinx, Inc. | Transaction-level lockstep |
US8443230B1 (en) | 2010-12-15 | 2013-05-14 | Xilinx, Inc. | Methods and systems with transaction-level lockstep |
US10761925B2 (en) * | 2015-03-24 | 2020-09-01 | Nxp Usa, Inc. | Multi-channel network-on-a-chip |
-
2016
- 2016-08-17 DE DE102016215345.5A patent/DE102016215345A1/de not_active Withdrawn
-
2017
- 2017-07-24 AU AU2017313189A patent/AU2017313189B2/en active Active
- 2017-07-24 CA CA3033912A patent/CA3033912C/en active Active
- 2017-07-24 US US16/324,587 patent/US11334451B2/en active Active
- 2017-07-24 EP EP17746438.5A patent/EP3475824B1/de active Active
- 2017-07-24 CN CN201780057085.9A patent/CN109716302B/zh active Active
- 2017-07-24 WO PCT/EP2017/068635 patent/WO2018033344A1/de unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103635884A (zh) * | 2011-05-20 | 2014-03-12 | Abb技术股份公司 | 用于使用控制器操作的冗余的系统和方法 |
CN102591763A (zh) * | 2011-12-31 | 2012-07-18 | 龙芯中科技术有限公司 | 一种基于确定性重放的处理器整体故障检测系统与方法 |
CN104508635A (zh) * | 2012-07-13 | 2015-04-08 | 西门子公司 | 具有微处理器系统的装置 |
US20140359225A1 (en) * | 2013-05-28 | 2014-12-04 | Electronics And Telecommunications Research Institute | Multi-core processor and multi-core processor system |
CN104820626A (zh) * | 2014-01-30 | 2015-08-05 | 罗伯特·博世有限公司 | 用于使具有不同的安全等级的软件在多核处理器系统中共存的方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230092343A1 (en) * | 2020-05-30 | 2023-03-23 | Huawei Technologies Co., Ltd. | Lockstep processor recovery for vehicle applications |
Also Published As
Publication number | Publication date |
---|---|
EP3475824C0 (de) | 2023-08-30 |
CA3033912A1 (en) | 2018-02-22 |
WO2018033344A1 (de) | 2018-02-22 |
US20190188093A1 (en) | 2019-06-20 |
CA3033912C (en) | 2022-03-29 |
AU2017313189A1 (en) | 2019-03-07 |
EP3475824A1 (de) | 2019-05-01 |
US11334451B2 (en) | 2022-05-17 |
EP3475824B1 (de) | 2023-08-30 |
AU2017313189B2 (en) | 2020-12-17 |
DE102016215345A1 (de) | 2018-02-22 |
CN109716302B (zh) | 2022-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109716302A (zh) | 用于冗余数据处理的方法和设备 | |
CN107122289B (zh) | 系统回归测试的方法、装置及系统 | |
TWI488110B (zh) | 狀態機引擎及其方法 | |
US20180173897A1 (en) | Data Masking Systems and Methods | |
TWI502502B (zh) | 用於處理狀態機引擎所接收之資料之方法及系統 | |
TWI492062B (zh) | 用於程式化狀態機引擎之方法與裝置 | |
TWI569206B (zh) | 用於狀態機引擎之結果產生 | |
CN105911885B (zh) | 用于改善工业控制系统的工业控制器 | |
US20160077857A1 (en) | Techniques for Remapping Sessions for a Multi-Threaded Application | |
WO2017020590A1 (zh) | 一种芯片验证方法和装置、设备、存储介质 | |
CN104813330A (zh) | 在运行时测量在安全区域内加载的应用 | |
Wassyng et al. | Lessons learned from a successful implementation of formal methods in an industrial project | |
TWI579667B (zh) | 可程式邏輯控制器模組及可程式邏輯控制器 | |
Feiler et al. | Automated fault tree analysis from aadl models | |
CN112232000A (zh) | 跨多个验证域的验证系统、验证方法、验证设备 | |
CN107193249A (zh) | 程序开发辅助装置以及程序开发辅助方法 | |
CN107193251A (zh) | 评价系统和评价方法 | |
WO2023071062A1 (zh) | 一种设备控制系统构建方法及装置 | |
WO2016048734A1 (en) | Processing parameters for operations on blocks while decoding images | |
JP2011175641A (ja) | 時間的に分離した冗長プロセッサの実行を使用しての周辺機器への読み書き | |
CN105760456B (zh) | 一种保持数据一致性的方法和装置 | |
US8694975B2 (en) | Programming system in multi-core environment, and method and program of the same | |
CN108038014A (zh) | 一种图像压缩多核并行容错方法、计算机、处理器 | |
US11909821B2 (en) | Method for processing application programs in a distributed automation system | |
JP2015096997A (ja) | 論理検証方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: Munich, Germany Applicant after: Siemens Transportation Co.,Ltd. Address before: Munich, Germany Applicant before: Siemens Mobile Co.,Ltd. |
|
CB02 | Change of applicant information | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40003566 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |