CN102640119A - 用于运行计算单元的方法 - Google Patents

用于运行计算单元的方法 Download PDF

Info

Publication number
CN102640119A
CN102640119A CN2010800568202A CN201080056820A CN102640119A CN 102640119 A CN102640119 A CN 102640119A CN 2010800568202 A CN2010800568202 A CN 2010800568202A CN 201080056820 A CN201080056820 A CN 201080056820A CN 102640119 A CN102640119 A CN 102640119A
Authority
CN
China
Prior art keywords
inner core
result
task
calculating inner
signature register
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
Application number
CN2010800568202A
Other languages
English (en)
Other versions
CN102640119B (zh
Inventor
B.米勒
M.费尔希
Y.科拉尼
H.班斯基
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Publication of CN102640119A publication Critical patent/CN102640119A/zh
Application granted granted Critical
Publication of CN102640119B publication Critical patent/CN102640119B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1695Error detection or correction of the data by redundancy in hardware which are operating with time diversity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0715Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a system implementing multitasking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • G06F11/0724Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU] in a multiprocessor or a multi-core unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0736Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function
    • G06F11/0739Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function in a data processing system embedded in automotive or aircraft systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1633Error detection by comparing the output of redundant processing systems using mutual exchange of the output between the redundant processing components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1641Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
    • G06F11/1645Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components and the comparison itself uses redundant hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1683Temporal synchronisation or re-synchronisation of redundant processing components at instruction level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1487Generic software techniques for error detection or fault masking using N-version programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1654Error detection by comparing the output of redundant processing systems where the output of only one of the redundant processing components can drive the attached hardware, e.g. memory or I/O
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1687Temporal synchronisation or re-synchronisation of redundant processing components at event level, e.g. by interrupt or result of polling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1691Temporal synchronisation or re-synchronisation of redundant processing components using a quantum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/83Indexing scheme relating to error detection, to error correction, and to monitoring the solution involving signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)
  • Advance Control (AREA)

Abstract

本发明涉及一种用于运行计算单元(2)的方法,所述计算单元具有至少两个计算内核(4,6),其中分别给至少两个计算内核(4,6)中的至少两个分配签名寄存器(18,20),所述签名寄存器具有多个输入,其中由至少两个计算内核(4,6)中的至少两个执行至少一个任务(12,14),其中利用每个任务(8,10)计算算法,其中将由每个计算内核(4,6)计算的结果(12,14)写入所分配的签名寄存器(18,20)中并且对写入签名寄存器(18,20)中的结果(12,14)进行比较。

Description

用于运行计算单元的方法
技术领域
本发明涉及用于运行计算单元的方法、计算单元、计算机程序和计算机程序产品。
背景技术
已知不同的方法用于提高电子控制系统或例如可以应用在车辆中的电子控制设备的安全性。除了协调或投票方法(其中计算的结果由多数决定构成)之外,还存在所谓的比较方法,其中将两个计算单元的结果相互比较并且在不同的情况下切断控制设备。在后一种情况下应认为的是,控制设备通过切断在每种情况下采取安全的状态。在迄今的比较方法中,附加地使用硬件。计算单元以所定义的恒定的时钟偏移或者时钟相同地工作,所述计算单元的结果应该被比较。附加的比较逻辑比较所有数据,所述数据经由作为总线构造的网络离开计算单元,在此考虑可能的时钟偏移。
发明内容
以此为背景介绍一种具有独立权利要求的特征的方法和计算单元以及具有并列权利要求的特征的计算机程序和计算机程序产品。本发明的其他扩展方案从从属权利要求和说明书中得出。
此外利用本发明提供与至少两个MISR(多输入移位寄存器)或MIS寄存器或多输入签名寄存器和因此具有多个输入的至少两个签名寄存器的异步比较。
在本发明的范围中规定,在计算单元的至少两个计算内核或处理器中的至少两个(通常两个计算内核)上分别开始作业或任务或者过程,其中两个任务在一种实施形式中计算相同的算法并且在使用所分配的MISR的情况下存储中间结果。接着,对分配给至少两个作业的至少两个MISR的内容进行比较。至少两个计算内核中的至少两个一般不时钟准确地被同步,其中所述至少两个计算内核也可以称为内核(Core)并且在所述至少两个计算内核上计算作业。
计算单元包括多个组件,也即至少两个计算内核,其被构造用于典型地冗余地执行任务或作业。作业通常是软件作业。作为计算单元的其他组件,设置签名寄存器,其中至少两个计算内核中的至少两个被分配给这种签名寄存器。此外,计算单元可以具有硬件模块,例如目标硬件或存储单元。组件的功能此外通过执行任务或作业来实施。在本发明的范围中,任务例如包括应用作业、比较作业和写作业。
在具有所定义的恒定的时钟偏移的专用比较逻辑情况下规定,至少两个计算内核中的至少两个一般执行相同的程序代码。典型地不进行不同程序的暂时并行处理。这样的系统的性能相应于单处理器系统的性能。如果存在以下可能性:例如在DCSL系统中,暂时切断比较器或比较器装置,所述DCSL系统具有在运行模式和比较模式之间的转换装置,则必须耗费地对计算内核或处理器进行同步,如果应该将所述计算内核或处理器切换到比较模式的话。
这里所述的发明能够在设计上实现冗余计算的参量的比较,而计算内核不必时钟相同地或以恒定的时钟偏移地工作。不使用专用比较逻辑,其连接到计算内核上。代替地,为此目的使用在至少两个计算内核中的至少两个中所包含的比较运算符。该方法不检验所有结果(通常中间结果)的正确性,而是仅检验特别有关的结果。为了最小化待比较参量的数量,使用两个MISR(多输入移位寄存器)。
本发明计算单元被构造用于执行所介绍的方法的所有步骤。在此,也可以由计算单元的各个组件执行该方法的各个步骤。此外,计算单元的功能或计算单元的各个组件的功能可以被实施为该方法的步骤。此外,可能的是,该方法的步骤被实现为计算单元的至少一个组件或整个计算单元的功能。
本发明此外涉及具有程序代码装置的计算机程序,以便当在计算机上、尤其是在本发明计算单元中执行计算机程序时执行所述方法的所有步骤。
具有存储在计算机可读的数据载体上的程序代码装置的本发明计算机程序产品被构造用于当在计算机上、尤其是在本发明计算单元中执行计算机程序时执行所述方法的所有步骤。
本发明的其他优点和扩展方案由说明书和附图得出。
不言而喻,前述的和下面仍要阐述的特征可以不仅以分别所说明的组合的方式、而且以其他组合的方式或者单独地被使用,而不偏离本发明的范围。
附图说明
图1以示意图示出用于执行本发明方法的第一实施形式的本发明计算单元的第一实施形式。
图2以示意图示出用于执行本发明方法的第二实施形式的本发明计算单元的第二实施形式。
图3以示意图示出用于执行本发明方法的第三实施形式的本发明计算单元的第三实施形式。
具体实施方式
本发明根据实施例在附图中示意性地示出并且下面参照附图详尽地予以描述。
所述图相关联地和全面地被描述,相同的附图标记表示相同的组件。
在执行本发明方法的第一实施形式时本发明计算单元73的第一实施形式在图1中示意性地示出。该计算单元73包括分配有具有多个输入(MISR0)的第一签名寄存器76的第一计算内核74(Core0)、分配有具有多个输入(MISR1)的第二签名寄存器78的第二计算内核75和目标硬件80。
该第一实施形式涉及一种方法,其中不使用同步点、例如屏障。这里通过以预先给定的顺序开始多个任务(作业)82、84、86、88、90来保证时间依赖性。在此,每个作业激活其自己的后续作业。在该实施形式情况下以及在随后的实施形式情况下规定,签名寄存器(多输入移位寄存器,MISR)的值属于任务上下文并且在切换任务82、84、86、88、90时可以被确保或再次建立。所使用的任务82、84、86、88、90与相应的计算内核74、75绑定并且因此仅在这些计算内核上被实施。
首先,在第一步骤中在第一计算内核74(Core0)上激活第一任务82或应用作业A0并且由操作系统被带入实施。在实施期间,在应用作业A0中执行算法并且将由应用开发者定义的结果92、也即中间和最终结果写入第一签名寄存器76 MISR0中。在计算了所有结果92并且将所有中间和最终结果写入MISR中之后,在第二计算内核75(Core1)上激活第二任务84,这里是应用作业A1
在第二步骤时,在应用作业A1中现在同样进行对结果94的计算。在此可以使用与在第一任务82(应用作业A0)中相同的以及不同的算法。在此情况下决定的是,相同的结果94被计算并且相同的中间和最终结果被写入第二签名寄存器78中。以何种方式和方法计算结果94因此是无关紧要的。如果所有结果94被计算并且所有有关的中间和最终结果被写入第二签名寄存器78(MISR1)中,则作为第三任务86,比较作业B1在第二计算内核75(Core1)上被激活。
在作为第三任务86的比较作业B1中,在第三步骤中读取并且比较两个MISR的值。只有当在检验时确定出内容一致性时,作为第三任务88在第一计算核心74(Core0)上激活比较作业B0。在所有其他情况下,执行相应的误差处理并且尤其是作为比较作业或后续作业B0不激活或开始第四任务88。
在第四步骤中,利用比较任务B0同样读取和比较两个MISR的值96、98。只有当在检验时确定出内容一致性时,作为第五任务90在第一计算内核(Core0)上激活写作业C0。在所有其他情况下,执行相应的误差处理并且作为后续作业通常不激活或开始写作业C0
所计算的结果100在第五步骤中由第五任务90(写作业C0)写到目标硬件80上。
因此冗余地通过第三任务86(比较作业B1)和第四任务88(比较作业B0)比较两个MISR,以便在计算内核74、75中排除或发现误差。如果计算内核74、75之一应该错误地解释两个签名寄存器76、78的比较,假如所述两个签名寄存器例如内容不同的话,并且但是该区别由于误差是未知的,则另一计算内核74、75到目标硬件80上的写操作通过第五任务90(写作业C0)阻止,因为通过其的处理链事先被中断。
在第一实施形式的变型方案情况下,如果要执行的代码的顺序被保持,则可以将作业A1和B1以及作业B0和C0分别组合成一个任务或一个作业。单个作业或组合的作业是否更有意义,取决于应用、时间规划(调度)和作业的运行时间。对此可以逐情况地判决,由此可以优化调度。
在用于运行计算单元2的方法的根据图2所示的第二实施形式中,在第一步骤中规定,出于安全原因冗余地在两个计算内核4、6或者内核上实施计算。在此,及时地激活两个任务8、10或作业TW和TR,其分别绑定在两个计算内核4、6(CW和CR)或处理器之一上。可能地在通过操作系统16相应地支持情况下可以给作业分配相同的优先级。如果应该出于优先级原因而仅开始作业之一并且第二作业必须等待,则这可以被接受。不需要精确的同时性。
在第二步骤中,首先利用每个任务8、10计算算法。将结果12、14、也即有关的中间结果和所有有关的最终结果写到包括多个输入(MISR)的签名寄存器18、20上。在一种实施形式中,应用开发者确定将哪些结果12、14写入到MISR中。在此定义,将哪些结果12、14和/或哪些类型的结果12、14写入到相应的签名寄存器18、20中。因此,给每个计算内核4、6分配自己的签名寄存器18、20,所述签名寄存器在开始任务8、10时被初始化。如果作业或任务8、10应该由同样冗余地工作和同样使用MISR的另一任务中断,则MISR连同任务8、10和从而作业的上下文一起可能借助于操作系统16存储和稍后修复。
在第三步骤中,在结束所有计算之后实现任务8、20的同步36,例如通过所谓的屏障。由此确保,两个作业已经结束了其计算。
在第四步骤中进行两个MISR的内容的比较。所述内容在正常情况下必须是相同的。每个作业将比较22、24的结果写入自己的存储单元26、28中,所述存储单元根据架构可以被构造为本地RAM。
在下一第五步骤中,作业在分别检验30、32的范围中比较其比较结果。为此,为作业进行同步38。利用该措施可以确定:在计算内核4、6之一中的比较操作是否是有错误的。如果情况如此,则可以忽略签名寄存器18、20中的差别。
在最后的步骤中,执行写过程40,其中由第一任务8 TW将有关的数据从第一计算内核4 CW写到目标硬件42上。
这里所需要的同步36、38可以通过屏障或相互的事件机制例如按照开放式系统和其用于机动车中的电子装置的接口的OSEK操作系统标准来实现。
为了同步36、38任务8、10或应用TW和TR,在扩展方案中也可以使用扩展的MISR。为此对MISR扩展附加的寄存器,其中写到MISR中的值的数目被计数。该扩展的功能性可以完全地转化成硬件。与MISR的内容同样地,也对该计数寄存器初始化并且用值来修复。为了同步,作业TW和TR可以在一个过程之后用相应其他MISR的计数寄存器的值检验自己的计数寄存器的值。如果其他计数寄存器的值相应于自己的计数寄存器的值,则可以继续处理。可替代地,这里也可以预先给定预期的值并且根据该预期的值检验当前值。
在误差情况下,可以在两个位置处识别比较误差,也即当在第四步骤中比较MISR时和/或当在第五步骤中比较比较结果时。
在两种情况下,存在以下可能性:通过适当的机制中断进一步的处理。这如何实现一般取决于应用的安全要求。
在所述的第二实施形式的第一变型方案中,由两个任务8、10或作业TW和TR计算不同的算法,但是所述算法应该提供相同的结果。因此,可以仅仍将在两个算法中相同地出现的值写入MISR中。这使得能够使用各种各样的软件并且发现软件误差。此外,可以写入MISR中的值的数目被减少,但是在此可以观察到结果处的舍入误差。
在第二实施形式的第二变型方案中,可以取消将结果写入存储单元26、28(RAM)中。在比较误差情况下,如果任务8、10提供不同的值,在两个计算内核4、6上利用相应的误差处理中断比较。为了实现这样的行为,在第二内核上的比较操作与其比较测试无关地同样被结束,这例如可以通过同步点的时间保护来实现。由此得出,在目标硬件42上不进行写操作。
在用于运行在图3中示意性示出的计算单元50的本发明方法的第三实施形式情况下规定,在系统层面上接受对硬件的短时有错误的影响。由此相对于第二实施形式得出:取消大多的同步屏障并且因此实现较高的平均性能或平均功率和两个内核的较弱耦合。
本发明计算单元50的第三实施形式的基本构造在图3中示意性示出。该计算单元50包括被构造为CPU1的第一计算内核52和被构造为CPU2的第二计算内核54,其中给每个计算内核52、54分配具有多个输入的签名寄存器56、58。此外,图2示出计算单元50的目标硬件60和操作系统(OS)62。这里也由操作系统62同时地或在几乎相同的时刻开始两个任务64、66或应用或作业。
如也在第二实施形式中那样,这里操作系统结构不起作用,也就是说,该方法可以与是否设置一个操作系统62或多个操作系统62无关地被执行。但是在该情况下,两个计算内核52或内核中的第一个在写过程68中在无先前比较的情况下将其结果70和中间结果直接写到目标硬件60上,这在误差情况时也适用于有错误的结果70。第二任务66的写过程72的结果71仅仅被写入第二签名寄存器58中。此外确保,至少将有关的中间结果不仅写入目标硬件60上而且写入第一签名寄存器56(MISR)中。
对此存在多种可能性。写过程72例如可以在软件中作为单独的写指令来实现。但是也可能的是,如此设计硬件,使得将分支构建入写路径中并且硬件因此在两个位置处同时地或至少对于软件透明地执行写指令。该分支可以通过控制命令接通和关断。这意味着,分支在每个中间结果的情况下被接通,如果中间结果应该被写入到MISR中的话。因此软件仅仍需要用于写的指令。
第二计算内核54(Core)获得相同的任务66,但是在其处将所有相应的写指令仅引导到所分配的签名寄存器58(MISR)中。
因此,两个计算内核52、54不准确地计算相同者,因为所述两个计算内核具有不同的写特性。但是差别可以自动化地和典型地通过离线工具(OLT)或相应的工具产生。
执行比较操作包括根据图3所述的实施形式的子变型方案或选项,其中子变型方案可以相互任意地组合。
利用第一选项可能的是,在任务64、66中或在作业本身中使用比较操作。在该情况下,两个任务64、66中的每一个在最后的写之后等待MISR,直至由硬件必要时通过软件给任务64、66提供信号为止,所述信号通知:也存在相应其他的MISR结果。为了MISR知道最后的结果是何时被写的,要么由在每个参与内核上的软件向MISR发送信号,要么在写第一值之前通过相应的软件用信号通知相应的MISR:应该写多少值。该作业根据该信号再次变为激活的,执行比较,必要时输出相应的误差反应并且然后被结束。
在第二选项情况下规定,为了比较在每个计算内核52、54上放置自己的比较任务或自己的比较作业。这些作业由分别要监控的作业开始并且一旦其他内核的MISR值也可供使用,可以执行比较。
第三选项的主题是在计算单元50中设置硬件比较器。该比较器例如可以独立地读取MIS寄存器。但是,典型地在结束作业之前,通过作业本身给比较器提供MIS寄存器。这也可以利用OLT实现。
一般确保,与子变型方案无关地甚至在两个计算内核52、54上执行比较操作。通常,为此使用例如通过计时器的时间监控。在向MISR的最后写指令和结束比较操作之间的时间在此被限制。为此,在最终对MISR进行写之后,开始计时器。因此,通过时间监控定义在其内要结束比较操作的时间间隔的长度的值。如果在执行比较之前时间间隔到期,则探测到误差。
在本发明方法的这里所述的实施形式情况下可以得出,计算内核4、6、52、54、74、75可能地处于无限循环或者出于其他原因提前结束或终止,例如由于不允许地访问受保护的存储单元。在任务8、10、64、66、88、90同步的所有位置处,可以通过时间条件识别这样的误差。首先达到同步点的计算内核4、6、52、54、74、75在那里仅等待有限的时间。如果超过该时间,而无相应的其他计算内核4、6、52、54、74、75同样达到同步点,则引起误差。在这种运行时间监控情况下注意到,被等待的任务8、10、64、66、82、84、86、88、90可能已被中断,由此其总运行时间被影响。或者确定期限(最后期限),其足够长,以便一起考虑所有可能的中断,或者如果在第二计算内核4、6、52、54、74、75上计算不同于对应的作业的事物,则中断在第一计算内核4、6、52、54、74、75上的时间测量。
本发明可以应用于所有控制设备,在所述控制设备中必须满足一定的安全要求,例如多核系统或已经具有多个同类的但是无关的计算单元的设备。

Claims (10)

1.用于运行计算单元(2,50,73)的方法,所述计算单元具有两个计算内核(4,6,52,54,74,75),其中给至少两个计算内核(4,6,52,54,74,75)中的至少两个分别分配具有多个输入的签名寄存器(18,20,56,58,76,78),其中由至少两个计算内核(4,6,52,54,74,75)中的至少两个执行至少一个任务(8,10,64,66,82,84,86,88,90),其中利用每个任务(8,10,64,66,82,86,88,90)计算算法,其中将由每个计算内核(4,6,52,54,74,75)所计算的结果(12,14,70,71,92,94)写入所分配的签名寄存器(18,20,56,58,76,78)中并且对写入签名寄存器(18,20,56,58,76,78)中的结果(12,14,70,71,92,94)进行比较。
2.根据权利要求1所述的方法,其中由任务(8,10,64,66,82,84,86,88,90)对写入签名寄存器(18,20,56,58,76,78)中的结果(12,14,70,71,92,94)进行比较。
3.根据权利要求1或2所述的方法,其中规定,算法应该在计算时提供相同的结果(12,14,70,71,92,94),其中由至少两个计算内核(4,6,52,54,74,75)中的至少两个计算相同的算法和/或其中由至少两个计算内核(4,6,52,54,74,75)中的至少两个计算不同的算法。
4.根据前述权利要求之一所述的方法,其中使至少两个任务(8,10,64,66,82,84,86,88,90)彼此同步。
5.根据前述权利要求之一所述的方法,其中相继执行至少两个任务(8,10,64,66,82,84,86,88,90),其中由至少一个第一任务(8,10,64,66,82,84,86,88,90)激活至少一个后续的第二任务(8,10,64,66,82,84,86,88,90)。
6.根据前述权利要求之一所述的方法,其中由每个任务(8,10,64,66,82,84,86,88,90)将比较结果写入自己的存储单元中,和其中对比较结果相互进行比较。
7.根据前述权利要求之一所述的方法,其中用信号通知签名寄存器(18,20,56,58,76,78):最后的结果何时被写,其中由每个参与的计算内核(4,6,52,54,74,75)上的软件给签名寄存器(18,20,56,58,76,78)发送信号,或者其中在写第一结果之前通过相应的软件用信号通知相应的签名寄存器(18,20,56,58,76,78):多少值应该被写。
8.计算单元,其具有至少两个计算内核(4,6,52,54,74,75),其中给至少两个计算内核(4,6,52,54,74,75)中的至少两个分别分配具有多个输入的签名寄存器,其中至少两个计算内核(4,6,52,54,74,75)中的至少两个被构造用于执行至少一个任务(8,10,64,66,82,84,86,88,90),利用每个任务(8,10,64,66,82,84,86,88,90)计算算法,并且将所计算的结果(12,14,70,71,92,94)写入所分配的签名寄存器(18,20,56,58,76,78)中并且其中计算单元(2,50,73)的至少一个组件被构造用于对写入签名寄存器(18,20,56,58,76,78)中的结果(12,14,70,71,92,94)进行比较。
9.根据权利要求8所述的计算单元,其中计算内核(4,6,52,54,74,75)具有比较运算符,其被构造用于比较结果(12,14,70,71,92,94)。
10.具有程序代码装置的计算机程序,用于当在计算机上尤其是在根据权利要求8或9所述的相应的计算单元(2,50,73)中执行计算机程序时执行根据权利要求1至7之一所述的方法的所有步骤。
CN201080056820.2A 2009-12-15 2010-12-02 用于运行计算单元的方法 Active CN102640119B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE102009054637A DE102009054637A1 (de) 2009-12-15 2009-12-15 Verfahren zum Betreiben einer Recheneinheit
DE102009054637.5 2009-12-15
PCT/EP2010/068720 WO2011082904A1 (de) 2009-12-15 2010-12-02 Verfahren zum betreiben einer recheneinheit

Publications (2)

Publication Number Publication Date
CN102640119A true CN102640119A (zh) 2012-08-15
CN102640119B CN102640119B (zh) 2014-09-17

Family

ID=43734065

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080056820.2A Active CN102640119B (zh) 2009-12-15 2010-12-02 用于运行计算单元的方法

Country Status (6)

Country Link
US (1) US20120317576A1 (zh)
EP (1) EP2513796B1 (zh)
CN (1) CN102640119B (zh)
DE (1) DE102009054637A1 (zh)
IN (1) IN2012DN03822A (zh)
WO (1) WO2011082904A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104008005A (zh) * 2013-02-20 2014-08-27 罗伯特·博世有限公司 用于控制处理器的装置、方法和系统

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9274904B2 (en) * 2013-06-18 2016-03-01 Advanced Micro Devices, Inc. Software only inter-compute unit redundant multithreading for GPUs
AT515341B1 (de) * 2014-01-23 2015-12-15 Bernecker & Rainer Ind Elektronik Gmbh Verfahren zur Überprüfung der Abarbeitung von Software
US9268660B2 (en) 2014-03-12 2016-02-23 International Business Machines Corporation Matrix and compression-based error detection
DE102017210151A1 (de) * 2017-06-19 2018-12-20 Zf Friedrichshafen Ag Vorrichtung und Verfahren zur Ansteuerung eines Fahrzeugmoduls in Abhängigkeit eines Zustandssignals
GB2579591B (en) 2018-12-04 2022-10-26 Imagination Tech Ltd Buffer checker
GB2579590B (en) 2018-12-04 2021-10-13 Imagination Tech Ltd Workload repetition redundancy
GB2592436B (en) * 2020-02-28 2022-02-23 Imagination Tech Ltd Critical workload check
GB2592437B (en) * 2020-02-28 2022-03-02 Imagination Tech Ltd Critical workload check

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3009355A1 (de) * 1980-03-12 1981-09-17 Standard Elektrik Lorenz Ag, 7000 Stuttgart Redundantes rechnersystem
US5784383A (en) * 1997-10-02 1998-07-21 International Business Machines Corporation Apparatus for identifying SMP bus transfer errors
EP0969372A2 (en) * 1998-06-30 2000-01-05 Sun Microsystems, Inc. Bus error handling in a computer system
US20090249034A1 (en) * 2008-03-28 2009-10-01 Fujitsu Limited Processor and signature generation method, and multiple system and multiple execution verification method

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5961653A (en) * 1997-02-19 1999-10-05 International Business Machines Corporation Processor based BIST for an embedded memory
JP5285828B2 (ja) * 1999-04-09 2013-09-11 ラムバス・インコーポレーテッド 並列データ処理装置
US20080008393A1 (en) * 1999-04-09 2008-01-10 Dave Stuttard Parallel data processing apparatus
DE10252230A1 (de) * 2002-11-11 2004-05-27 Robert Bosch Gmbh Verfahren zur Übertragung von Daten
US7584405B2 (en) * 2003-12-03 2009-09-01 Hewlett-Packard Development Company, L.P. Fault-detecting computer system
US20050240806A1 (en) * 2004-03-30 2005-10-27 Hewlett-Packard Development Company, L.P. Diagnostic memory dump method in a redundant processor
US7321989B2 (en) * 2005-01-05 2008-01-22 The Aerospace Corporation Simultaneously multithreaded processing and single event failure detection method
US20070266372A1 (en) * 2006-05-10 2007-11-15 Gawor Helen L Generating documentation from task execution
GB2443507A (en) * 2006-10-24 2008-05-07 Advanced Risc Mach Ltd Debugging parallel programs
FR2912526B1 (fr) * 2007-02-13 2009-04-17 Thales Sa Procede de maintien du synchronisme d'execution entre plusieurs processeurs asynchrones fonctionnant en parallele de maniere redondante.
US8171328B2 (en) * 2008-12-31 2012-05-01 Intel Corporation State history storage for synchronizing redundant processors

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3009355A1 (de) * 1980-03-12 1981-09-17 Standard Elektrik Lorenz Ag, 7000 Stuttgart Redundantes rechnersystem
US5784383A (en) * 1997-10-02 1998-07-21 International Business Machines Corporation Apparatus for identifying SMP bus transfer errors
EP0969372A2 (en) * 1998-06-30 2000-01-05 Sun Microsystems, Inc. Bus error handling in a computer system
US20090249034A1 (en) * 2008-03-28 2009-10-01 Fujitsu Limited Processor and signature generation method, and multiple system and multiple execution verification method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104008005A (zh) * 2013-02-20 2014-08-27 罗伯特·博世有限公司 用于控制处理器的装置、方法和系统

Also Published As

Publication number Publication date
EP2513796B1 (de) 2013-10-02
US20120317576A1 (en) 2012-12-13
IN2012DN03822A (zh) 2015-08-28
CN102640119B (zh) 2014-09-17
WO2011082904A1 (de) 2011-07-14
EP2513796A1 (de) 2012-10-24
DE102009054637A1 (de) 2011-06-16

Similar Documents

Publication Publication Date Title
CN102640119B (zh) 用于运行计算单元的方法
Iturbe et al. A triple core lock-step (tcls) arm® cortex®-r5 processor for safety-critical and ultra-reliable applications
CN103262045B (zh) 具有容错架构的微处理器系统
US8205201B2 (en) Process for maintaining execution synchronization between several asynchronous processors working in parallel and in a redundant manner
EP3178000B1 (en) Method of executing programs in an electronic system for applications with functional safety comprising a plurality of processors, corresponding system and computer program product
US10761916B2 (en) Method for executing programs in an electronic system for applications with functional safety comprising a plurality of processors, corresponding system and computer program product
US8930752B2 (en) Scheduler for multiprocessor system switch with selective pairing
EP2813949B1 (en) Multicore processor fault detection for safety critical software applications
US20060200278A1 (en) Generic software fault mitigation
US20070277023A1 (en) Method For Switching Over Between At Least Two Operating Modes Of A Processor Unit, As Well Corresponding Processor Unit
Reinhardt et al. Achieving a scalable e/e-architecture using autosar and virtualization
CN101313281A (zh) 用于在包括至少两个具有寄存器的执行单元的系统中消除错误的装置和方法
CN112015599B (zh) 错误恢复的方法和装置
US20060282702A1 (en) Task management apparatus for control apparatus, input/output control apparatus, information control apparatus, task management method, input/output controlling method, and information controlling method
Alcaide et al. Software-only diverse redundancy on GPUs for autonomous driving platforms
Györök et al. Duplicated control unit based embedded fault-masking systems
JP2022088346A (ja) コア同期のためのデバッグトレースストリーム
CN101861569B (zh) 高集成度和高可用性计算机处理模块
Pop et al. Methods and tools for reducing certification costs of mixed-criticality applications on multi-core platforms: the RECOMP approach
CN100511165C (zh) 执行计算机程序的方法、操作系统以及计算设备
JP4102814B2 (ja) 入出力制御装置,情報制御装置及び情報制御方法
Rajabzadeh et al. Transient detection in COTS processors using software approach
US10089200B2 (en) Computer apparatus and computer mechanism
CN108733502B (zh) 用于操作系统中的错误识别的方法
Audsley et al. Distributed fault-tolerant avionic systems-a real-time perspective

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant