CN100538644C - 执行计算机程序的方法、计算设备 - Google Patents

执行计算机程序的方法、计算设备 Download PDF

Info

Publication number
CN100538644C
CN100538644C CNB2005800364685A CN200580036468A CN100538644C CN 100538644 C CN100538644 C CN 100538644C CN B2005800364685 A CNB2005800364685 A CN B2005800364685A CN 200580036468 A CN200580036468 A CN 200580036468A CN 100538644 C CN100538644 C CN 100538644C
Authority
CN
China
Prior art keywords
computer program
program
computing equipment
mistake
type
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.)
Expired - Fee Related
Application number
CNB2005800364685A
Other languages
English (en)
Other versions
CN101048737A (zh
Inventor
R·魏伯勒
B·米勒
W·哈特
R·安格鲍尔
T·科特克
Y·科拉尼
R·格梅利希
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 CN101048737A publication Critical patent/CN101048737A/zh
Application granted granted Critical
Publication of CN100538644C publication Critical patent/CN100538644C/zh
Expired - Fee Related 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • 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/0751Error or fault detection not based on redundancy

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Retry When Errors Occur (AREA)
  • Debugging And Monitoring (AREA)
  • Transmission And Conversion Of Sensor Element Output (AREA)
  • Measurement Of Length, Angles, Or The Like Using Electric Or Magnetic Means (AREA)
  • Position Input By Displaying (AREA)

Abstract

用于执行在计算机设备上、尤其是在微处理器上的计算机程序的方法,其中所述计算机程序包括多个程序对象,并且在所述方法中,在执行计算机设备上的所述计算机程序期间进行错误检测,所述程序对象被分成至少两类,其中,在检测到错误时,重复第一类程序对象;并且在已经执行的第一类程序对象中检测到错误时,第一类程序对象代替第二类程序对象而被重新启动。

Description

执行计算机程序的方法、计算设备
本发明涉及一种用于执行在计算设备上、特别是微处理器上的计算机程序的方法。该计算机程序包括多个程序对象。在该方法中,在执行计算机程序的过程中对计算设备检测错误。
此外,本发明还涉及一种操作***,该操作***能运行在计算设备上,尤其是运行在微处理器上。
最后,本发明也涉及一种用于执行计算机程序的计算设备,该计算机程序包括多个程序对象。该计算设备具有错误发现机制用于检测在计算设备上执行计算机程序期间的错误。
现有技术
在计算设备上执行计算机程序期间,会导致所谓的暂态错误。因为半导体模块(所谓芯片)的结构越来越小、而信号的时钟频率越来越大并且信号的电压越来越低,所以总是经常出现暂态错误。与永久错误相反,暂态错误仅短暂出现并且通常在一段时间后又自己消失。在暂态错误的情况下仅仅单个的位错误,而并没有持久地损害计算设备本身。暂态错误可能出于不同的原因,例如电磁辐射、α粒子或者中子。
今天,在通信***中暂态错误已经成为错误处理中的重点。在通信***(例如在控制器局域网,CAN中)公知的是:在检测到错误时重新发送被确定为有错误的数据。此外,还公知:在通信***中使用错误计数器,该错误计数器在检测到错误时增加,在正确的发送时递减,并且只要该错误计数器超过确定的值,就阻止数据的发送。
然而,在用于执行计算机程序的计算设备中基本上仅针对永久错误来进行错误处理。对暂态错误的考虑限于错误计数器的累加和必要时为递减。该错误计数器被设置在存储器中并且能够离线地即例如在构造为汽车控制设备的计算设备中在车间停留期间作为诊断或者错误信息被读出。接着才会对错误进行相应地反应。
借助错误计数器的错误处理即一方面在尤其是对安全相关的***所必需的短暂容错时间内不允许错误处理,而另一方面在这个意义上也不允许构造性的错误处理,即在容错时间内因此计算机程序又被执行。代替计算机在现有技术中计算机在超过错误计数器的确定值之后被切换到应急工作。这意味着,代替有错误的计算机程序其它计算机程序被执行并且为进一步计算考虑到以这样的方式所确定的替代值。替代值例如能按照其它参量来模型化。替换地,通过计算机程序的有错误部分计算出的结果作为有错误的而被丢弃并且为了进一步计算通过为应急工作设置的标准值被代替。因此,公知的用于处理运行在计算设备上的计算机程序的暂态错误的方法不能够***地、结构地应对大多数错误的暂态性质。
此外,根据现有技术还公知:在计算机设备上执行计算机时通过计算机设备的完全重新启动来消除所出现的暂态错误。该解决方案也不能真正令人满意,因为在现有的计算机程序执行的过程中会丢失所获得的参量并且计算设备在重启的持续时间中不能执行其通常的功能。特别是在安全相关的***中这是不能接受的。
最后,作为在计算设备上被执行的计算机程序的暂态错误的错误处理还公知:将计算机程序复位一段时间并且重复计算机程序的单个机器指令。该方法也被称作微回滚(Micro Roll-Back)。在公知的方法中,仅仅对象被回跳到机器层(时钟、机器指令)上。这要求对机器层的相应硬件支持,这与计算设备的领域内的极大费用相关。公知方法的实施单纯地通过软件来控制是不可能的。
现有技术中公知的错误处理机制并不能够以恰当的方式对在计算设备上执行计算机程序时出现的暂态错误做出反应。
但是,暂态错误在未来技术中却是极为频繁的。如果发现暂态错误,例如它通过双核机制,则因此始终保持应答错误定位的询问,以便标识正确的结果。当有目的使暂态错误不再导致计算机的重新启动时,这就越适合。错误定位典型如所描述地只能通过开销比较大的方法来实现。
本发明的技术问题是:当在计算机***中执行计算机程序时,构造性地处理暂态错误:使得在尽可能短的容错时间内重新产生计算机***的完整功能和功能安全性。
为了解决该技术问题,从上面所述类型的方法出发建议:在检测到错误时至少一个已执行的程序对象被转移进所定义的状态中并且从该状态出来被重新启动。
当然,对***层还提出以下问题:如何能有效地使用作业重复的概念。通常,并不是这样的情况,即能简单地再次计算任意有错误的作业,因为附加必需的计算时间和为此所使用的时刻从***上看被不同计划。当处理器负载已接近100%(通常是这样)时,则通过这种未计划的附加负载(如该负载表示作业重复)产生***的过载,过载典型地会导致崩溃。当考虑时间受控的***时(如所表示的那样,这些***至少部分得以实施),这将变得更为明显。在这些***中,截止时间损害是不可容忍的,在大多数其它严格的实时概念中同样不能容忍。
因此得到,即从***来看必须考虑到能由潜在作业重复形成的附加负载。当根据每个作业维持作业重复必需的计算时间时,则该作业无疑是有效的,当然为了非错误处理***必须付出100%的附加性能。从成本来看,这是不能接受的。
因此,本发明的任务是提供一种优化的***策略,该***策略不再考虑两次计算作业(以及由此产生持久和很大的费用)并且同时解决这些问题,如这可与时间受控的方法相关。
发明内容
因此,在根据本发明的***策略的范围内建议了一种方法、一种操作***以及一种计算设备,该***策略允许将作业重复的概念与最小或者甚至没有性能费用结合。在这样的情况下,这种***策略是用于作业、任务、程序或者程序部分的调度方法的边界条件,此外该边界条件还被称作程序对象或者一些程序对象。
重新被启动的程序对象在检测到错误时不必完全被执行。在本发明的意义上,这种程序对象在出现错误时也能被重新启动,该程序对象在检测到错误时刻还没有完全被执行,但是又刚好已经开始其执行。根据本发明,即在出现暂态或者永久错误时重新执行至少一个操作***对象。相对于微回滚的优点尤其是在于:程序对象的重复能用很小的硬件支持来实现。最多必需额外的存储器位置,以便能够存储几个对重新实施程序对象所必需的信息(例如程序对象的输入参量)。根据本发明的方法的实际管理能通过计算设备的操作***来实施。即根据本发明的方法能用传统的商用处理器来实现,而不需要额外的硬件。但是不言而喻,也可以用于硬件支持实现根据本发明的方法。
因此,与现有技术相比,更有利的是,再次计算有错误的作业即有错误的任务或有错误的程序或者程序部分或程序对象或者至少操作***对象。如果该错误原本是暂态的,则在重新计算时这两个输出是相同的,即错误消失并且通过重新计算来进行处理。
因此,有利地,表示了一种用于执行在计算设备上尤其是在微处理器上的计算机程序的方法,其中计算机程序包括多个程序对象并且在该方法中在计算设备上执行计算机程序期间检测到错误,其中程序对象被分成至少两个类,其中在检测到错误时重复第一类的程序对象而再检测到已经执行的第一类程序对象中的错误时,代替第二类程序对象重新启动第一类程序对象。
在这样的情况下,错误的检测仅仅在重新被启动的第一类中实施。
恰当地,对所有程序对象设置有一个循环的总计算时间并且这样地划分总计算时间,使得在检测到错误时重新启动的程序对象在有错误的情况下获得一个循环的总计算时间的最多50%,其中不同类的程序对象交替地执行并且第一类的有错误的程序对象代替紧接其后的第二类的程序对象被执行或被重新启动。
根据任意的方法能够自己进行错误检测。可以考虑的是:使用任意类型的错误发现机制、该机制能检测到执行计算机程序(所谓并发检验)期间的错误。例如在双核架构中,双倍地构造整个计算机核。当计算机核以锁步模式工作,对任何指令能比较:计算机核是否提供相同的结果。于是这些结果的差别肯定会推断出存在错误。错误发现机制实时发现执行程序对象期间的错误。相应地,也适于错误发现的代码,该代码被连续地用于处理器架构中,或者适于计算设备的相同的部分组件。所有这些错误发现机制共同点在于:它们很迅速地发现暂态错误并且当错误被发现时提供错误信号。
根据错误信号来启动错误处理机制,该错误处理机制重复程序对象。如果在重新执行时再次出现相同的错误,则被推断出永久错误,或者增加错误计数器,其中当错误计数器超过确定的值时才推断出永久错误。相反,如果在重新执行程序对象时不再出现该错误,则由此能得到,该错误为暂态错误。在无错误地重新执行程序对象期间,该计算机程序还准备好其通常的功能。即可用性已在最短时间之后又重复。因此,重复至少一个程序对象是一种处理暂态错误良好的方法。
根据本发明的有利的扩展方案,建议将程序对象构造为计算机程序的运行时间对象(以下称作特殊作业)并且在错误的检测中重新执行至少一个作业。作业尤其是操作***层上是典型对象。如果希望甚至纯粹软件地控制,则作业的重复能用最小的开销来实现。
根据本发明的优选的实施形式,建议重新启动在错误发现的时刻所执行的程序对象。但是替换地或者附加地,也能启动或者重新执行程序对象,该程序对象在检测到错误的时刻已经被完全执行。
建议在执行计算机程序期间特别是开始执行计算机程序时产生并且存储程序对象的至少一个被定义的状态。这例如能通过这样的方式来实现,即存储所有对程序对象的状态相关的参量。
此外,建议为了错误发现使用相对于其上执行具有多个程序对象的计算机程序的计算设备冗余工作的其它设备。不言而喻,也将多于一个的冗余计算设备用于错误检测。
有利地,根据本发明的方法应用在汽车中,特别是应用在汽车控制设备中,尽管在执行计算机程序时不可避免暂态错误但是保证了计算机程序的执行安全和可靠。这特别是在汽车中对安全要求严格的应用中的控制程序和/或调节程序的执行是重要的。
此外,还建议:当在重新执行至少一个程序对象时重新出现相同的错误,则推断出永久错误。也可考虑的是,当在重复程序对象可规定的数量之后还始终出现错误,才推断出永久错误。即在这样的情况下,如果在第三次或者更后面重复程序对象之后错误消失,则还推断出暂态错误。通过本发明的扩展方案,重要的程序对象能被重复3次而不是仅仅2次。
根据本发明的另一有利的扩展方案,建议了至少一个程序对象的重复的数量被限制在预给定的值上。由此防止:在永久错误时随便经常地重复相同的程序对象。例如借助计算器或者通过时间限制来实现对至少一个程序对象重复的数量的限制。此外通过预给定与作业相关的重复值还能够实现比不是很重要的作业更经常地重复重要的作业,并且因此提供比不是很重要的作业更经常或者更长地为重要的作业提供可能性,而没有暂态错误无错误地运行,在不是很重要的作业中相对迅速地推断出永久错误并且引起另一***反应。
根据本发明的另一优选实施形式,建议了至少一个程序对象的重复的数量动态地被限制在可规定的值上。优选地,至少一个程序对象的重复数量根据用于调度的剩余复位时间被动态地限制在可规定的值上。以这样的方式例如能通过第一作业和第二作业,而第三作业能被多次重复。
为了实现根据本发明的方法,建议了在执行计算机程序期间在执行程序对象之前存储执行程序对象所必需的或者定义程序对象的状态的参量。即根据该实施形式,存储所有程序对象的参量。
作为替代方案,建议了在一个周期内周期待执行的计算机程序中当对确定的程序对象检测到错误时回跳到在计算机程序的周期中的预给定的回跳点。根据该实施形式,即在错误的情况下在该周期内始终回跳到相同的位置。优选地,在执行计算机程序期间只有在执行程序对象之前在回跳点主要用于与程序对象相关的参量被存储。即在回跳点对每个循环或者周期仅仅必需存储程序对象的相关参量一次。由此,能够节约存储的时间和存储的位置。
接着在在检测到错误之后重新执行程序对象时,调用被存储的输入量并且被提供给重新被执行的程序对象作为输入量。
作为本发明的另一实施形式,建议了为程序对象设置有多个回跳点。在出现错误时,不必重新执行整个程序对象,而是仅仅重新执行程序对象的一部分。在出现错误时,简单地回跳到那个前面经过的回跳点,直到程序对象的执行没有错误。例如,在直到第n回跳点无错误执行程序对象当在第n回跳点与第n+1回跳点之间出现错误时则能回跳到第n回跳点。因此,该程序对象从第n回跳点起被重新执行。因此,可能节约时间。优选地,在超过任何回跳点时在执行程序对象期间分别产生和存储至少一个被定义的状态。
特别重要的是,以操作***的形式实现根据本发明的方法。在这样的情况下,操作***能运行在计算设备上尤其是能运行在微处理器上并且当操作***运行在计算设备上时为了实施根据本发明的方法编程操作***。在这样的情况下即本发明通过操作***来实现,使得该操作***以相同的方式如操作***适于其实施的方法来表示本发明。该操作***优选被存储在存储器元件上并且为了执行而传送给计算设备。作为存储元件尤其是可应用任何数据载体或者电子存储器介质,例如随机存储器(RAM)、只读存储器(ROM)或者闪速存储器。
作为本发明的任务的另一解决方案,从前面所述类型的计算设备出发建议了,计算设备具有错误处理机制,该错误处理机制在检测到错误时通过错误发现机制引起至少一个程序对象的重新执行。
根据本发明的有利扩展方案,建议了错误处理机制具有触发逻辑,该错误触发逻辑在检测到错误时重新启动至少一个程序对象。
根据优选的实施形式,建议了实时操作***例如OSEK运行在计算设备上。最后,建议了计算设备包括微处理器。
附图说明
本发明的另一些特征、应用可能性和优点从以下在附图中所表示的本发明的实施形式的说明中得到。在这样的情况下,所有所描述的或者所表示的特征本身或者以本发明的主题的任意组合,与其在权利要求中的结合或者其回引无关地或者与其表达或者图示无关地形成在说明书中或形成在附图中。其中:
图1示出了按照其优选实施形式的根据本发明的方法的流程图;
图2大致示出了根据其优选实施形式的根据本发明的计算设备;
图3由图3a和3b组成地示出了根据本发明的用于结合作业重复的方法。
具体实施方式
本发明涉及一种用于在计算设备上尤其是在微处理器上执行计算机程序的方法。该计算机程序包括多个程序对象,这些程序对象优选构造为作业。在该方法中在计算设备上执行计算机程序期间检测到错误。被检测到的错误可以是暂态(即暂时的)或者永久错误。
在计算设备上执行计算机程序期间会出现暂态错误。因为计算设备的半导体模块(所谓芯片)上的结构越来越小,但信号的时钟频率越来越大以及信号的电压越来越低,所以在计算设备上执行计算机程序时越来越频繁地出现暂态错误。与永久错误相反,仅仅暂时出现错误并且在一段时间之后通常又消失。在暂态错误中,仅单个位是错误的,而计算设备本身没有持久地损害。暂态错误能有不同的原因,如例如电磁辐射、α粒子或者中子。
由于暂态错误几乎不可预测地出现并且因此不能重现的事实,在现有技术公知的计算设备中基本上仅对永久错误进行错误处理。暂态错误的考虑限于错误计数器的累加和必要时递减。该错误计数器被设置在存储器中并且能够离线地即例如在构造为汽车控制设备的计算设备中在车间停留期间作为诊断或者错误信息被读出。接着才会对错误相应地反应。公知的错误处理即尤其是对安全相关的***所必需的短暂容错时间内不允许错误处理,而另一方面在这个意义上也不允许构造性的错误处理,即在容错时间内因此计算机程序又被执行并且计算设备能完成其通常的任务。
与此相反,根据本发明的方法允许通过***地、结构地应对大多数错误的暂态性质来处理运行于计算设备上的计算机程序的暂态错误。根据本发明的流程图例如运行对象、所谓作业表示在图1中。其它作业的存在没有影响原则上过程,即省去考虑。这样如根据图1所表示的过程来执行作业,即根据本发明还能执行多个作业。并行工作的错误发现机制是特别有利的(所谓并发检验)。但是在流程图中并没有这样表示它,它作为串联模块附装在相应位置上。
在功能块1中开始根据本发明的方法。在功能块1中在计算设备上开始作业的执行,该作业被调用。在功能块2中,产生回跳点。为此目的,足够将作业置于用于重新启动的被定义的状态中并且再次启动作业的作业输入量存储在计算设备的存储元件中。优选地,作业的所有输入量被存储。接着在功能块3中进一步执行作业。在另一回跳点或者直到作业的结束能够进行执行。因此,错误发现机制被执行。错误检测能按照任意方法来进行。在执行计算机程序(所谓并发检验)期间检测到错误。这样例如在双核架构中,双倍地构造整个计算机核。当计算机核以锁步模式工作,对任何指令能比较,计算机核是否提供相同的结果。于是这些结果的不同肯定能够推断出存在错误。这种错误发现机制实时发现执行程序对象期间的错误。相应地,也适于错误发现的代码,该代码被连续地用于处理器架构中,或者适于计算设备的相同的部分组件。优选地使用这种错误发现机制,当检测到错误时迅速地发现暂态错误并且提供相应的错误信号。
在询问块4中检验,错误即暂态或者永久错误是否被发现。如果错误被发现,则在另一询问块7中被分叉,在那里错误计数器逻辑的当前值被检验。如果错误计数器还未低于可规定的值(在递减的错误计数器中)或者超过(在累加的错误计数器中)时,还能执行在其处理期间出现错误的作业一次,或者确定数量的在出现错误之前被执行的作业还能被执行一次。如果可以重新启动作业的执行,则在功能块8中被分叉,在该功能块中错误计数器逻辑的状态用出现另一错误的信息来更新(递减或者累加)。从那里在功能块5中被分叉,在该功能块中存储在功能块2内的量被加载并且在开始执行时提供用于产生被定义的状态的作业。接着,朝功能块3被分叉,在那里待重复的作业部分即例如从已被执行过的回跳点出来,或者但作为完整的即该作业从开始还被启动一次,还被执行一次。
如果在询问块4中得到在功能块3中执行作业期间没有出现错误,则在功能块9中分叉,在该功能块中用没有检测到错误的信息更新错误计数器逻辑的状态。从那里出来,在询问块11中被分叉,在那里检验计算机程序是否被执行到结束。如果是这样,则在结束计算机程序时在功能块6中被分叉。如果不是,在功能块12中被分叉,在那里根据当前的作业状态产生另一回跳点,其方式是定义并且存储安全的相关作业输入量,该量足够再次启动作业。从那里出来,接着又向功能块3被分叉,在那里待重复的作业又重新被启动并且部分或者全部地还被执行一次。
如果在询问块7中得到,由于错误计数器逻辑的状态而不再可以进一步尝试以重新执行作业,则在功能块10中被分叉。在询问块7中检验,用于该作业的错误计数器逻辑的值是否比作业相关的重复值大。作业相关的重复值可针对各种作业相同地预给定或者,但是也可各自针对每个作业单独预给定。以这样的方式可能的是,例如在发现永久错误之前,首先多次重复特别重要的作业。当作业相关的重复值被预给定为1时,该作业仅在检测到永久错误之前,仅被重复一次。如果作业相关的重复值被预给定为2或者3,则在检测到永久错误之前作业被重复2次或者3次。在这样的情况下,即该作业具有更长的时间、或者更多的运行,直到不再出现暂态错误。在功能块10中检测到永久错误并且采取相应的措施。该措施例如可以是,将计算机程序转移到应急工作或者首先采取措施而接着结束计算机程序过程。
根据本发明的方法不必一定包括所有在图1中所表示的和上面所阐述的功能和询问块。这样,例如省去了块7至9,这些块涉及错误计数器逻辑。在检测到错误时,将要重新启动和执行的作业这样长地被重复,直到不再出现错误。没有检测到永久错误,使得也能去掉功能单元10。替换地,作业相关的重复值能被预给定为1,使得能去掉用于更新错误计数器的功能块8和9。最后,当用唯一的回跳点执行唯一作业时,也可以省去块11和12。
在图2中,表示用于根据其优选的实施形式执行计算机程序的根据本发明的计算设备。计算设备在其整体上用参考标号20表示。计算设备包括存储器元件21,该存储器元件例如构造为电子存储器特别是构造为闪存存储器。此外,计算设备20还包括微处理器22,在该微处理器上计算机程序能被执行。计算机程序被存储在电子存储器介质21上并且用参考标记23表示。为了在微处理器22上执行计算机程序,计算机程序作为整体或者分段地例如逐指令地通过数据连接24传输给微处理器。数据连接24可以构造为一个或者多个数据线或者构造为用于数据传输的总线***。此外,在存储介质21上还存储有操作***,在引导计算设备20时至少部分从存储器21向微处理器22传输并且在那里被执行。该操作***用参考标记25表示。该操作***具有管理和控制计算机程序23在微处理器22上的执行以及连接到计算设备20的周边设备的任务。根据本发明,操作***25以特别的方式构造,使得当操作***在微处理器22上运行时为了实施根据本发明的方法来编程它并且实施根据本发明的方法。尤其是,操作***25包括进入错误发现机制的入口用于检测在微处理器22上执行计算机程序23期间的错误。此外,操作***25还包括错误处理机制,该错误处理机制在检测到错误时引起重新执行计算机程序23的至少一个程序对象(作业)。
因此,在根据本发明的***策略的框架下建议了一种方法、一种操作***以及计算机设备,该***策略允许以最小或者甚至没有执行开销结合作业重复的概念。
在这样的情况下,***策略被作为基础,该***策略在各个不同的前提条件下使执行开销最小并且由此使成本最小。通常,在这样的情况下,前提是提供尤其是已描述的错误发现机制,在作业的运行中能发现错误(例如双核机制,具有冗余执行)。此外,在此特别,为了发现永久错误,必需扩展例如如上所述的错误计数器。
在根据本发明的用于结合作业重复的策略中,如在图3中描述的那样,几个前提能被考虑到。
至少两类作业(例如关键和非关键的作业)被区分。在这样的情况下,已经不将错误发现机制用于所有类的作业和/或并不针对所有类的作业实施作业重复。
在图3的例子中,区分两类作业,在这些作业中只有在一类中实施和/或只有在一类中启动错误发现机制。在区分关键作业和非关键作业时,同样根据本发明在关键作业中错误被捕获,尤其是只被用于第一类错误发现机制。在这样的情况下,关键作业是这种作业,即在其中对***的整个功能或者基本功能必需正确的执行并且必须在确定的时刻稍后进行,以便获得该功能。非关键作业是这样的,即在其中整个***功能或者也有基本功能并不涉及或者并非主要地被限制。尤其是,在该***中在这样的情况下在对安全严格和对安全不严格的功能之间进行区分。
第二类即:不关键类2的作业中的暂态错误可能被忽视。此外如所述的那样:第二类作业也不允许轮到一次,即从***角度来看并没有严重的后果,当第二类作业在作业处理循环中并未被调用。此外,第一关键类1的作业的总运行时间所占百分比应当最好不要超过过程或者作业处理循环的总计算时间中由特定***所决定的百分比(例如50%)。在这样的情况下,关键作业在平均划分成关键和非关键作业时被分配总共最多50%的总计算时间,使得在所有关键作业有错误的最坏情况下能够重新启动或者计算这些作业。
因此,根据图3的***是可能的,在该***中各种类这样交替,使得作业T1的“接替者”S1(类2)在调度表中获得至少如T1的WCET(最坏情况执行时间)一样的时间。
因此,基本构思是:在出现暂态错误时在T1中代替S1再次计算T1。由此保证了,T1中的错误在计算T2之前被消除。由此在作业的计算时间内发生错误识别和错误处理(包括在保持容错特性的情况下很可能的处置)。
在图3中对此在类1的作业T1、T2和T3与类2的作业S1、S2和S3之间进行区分。在无错误地执行时,在图3a中示例性地示出了作业序列T1、S1、T2、S2、T3、S3。在T1期间出现暂态错误时根据图3b在S1时间中再次计算作业并且接着计算T2、S2、T3、S3,使得暂态错误得以校正。
该***方案根据对图1和2的介绍采用相应的装置来实施,使得在公开方面根据本发明每个实施形式明确地可与任何其它实施形式组合。
由此,根据本发明能够在暂态错误方面实现最佳的FO特性(FO:Fail Operation(al),Fault Operation(al)),甚至以很小的康复时间,该康复时间重新自行恢复FO特性。该方案也很好地用在时间控制的***中并且能进行优化。

Claims (12)

1.用于执行在计算设备(20)上的计算机程序(23)的方法,其中所述计算机程序(23)包括多个构造为任务的程序对象,并且在所述方法中,在执行计算设备(20)上的所述计算机程序(23)期间进行错误检测,
其特征在于,
所述程序对象被分成至少两类,其中,在检测到错误时,重复第一类程序对象;在已经执行的第一类程序对象中检测到错误时,第一类程序对象代替第二类程序对象而被重新启动,为了重新启动第一类程序对象产生一个回跳点,其中在所述计算设备的存储元件中存储足够使任务处于确定重新启动状态的相关任务输入参数。
2.根据权利要求1所述的方法,
其特征在于,
仅在被重新启动的第一类程序对象中实施错误检测。
3.根据权利要求1所述的方法,
其特征在于,
对于所有程序对象在循环中设置总计算时间并且把所述总计算时间划分成:使得在检测到错误时被重新启动的程序对象在无错误的情况下获得循环中的总计算时间的至多50%。
4.根据权利要求1所述的方法,
其特征在于,
如果没有出现错误,则按照预定的方式执行程序对象。
5.根据权利要求1或4所述的方法,
其特征在于,
检测到错误的所述第一类程序对象代替紧接其后的第二类程序对象而被执行。
6.根据权利要求1所述的方法,
其特征在于,
在执行所述构造为任务的程序对象时产生并且存储所述程序对象的至少一个被定义的状态。
7.根据权利要求1所述的方法,
其特征在于,
所述方法被用于汽车中。
8.根据权利要求1所述的方法,
其特征在于,
在执行所述计算机程序(23)期间,在执行所述构造为任务的程序对象之前存储执行计算机程序所需的参量。
9.根据权利要求1所述的方法,
其特征在于,
在一个周期内的要周期执行的计算机程序(23)中,当对确定的第一类程序对象检测到错误时回跳到在所述计算机程序(23)的周期中的可规定的回跳点上。
10.用于执行计算机程序(23)的计算设备(20),所述计算机程序包括多个构造为任务的程序对象,其中所述计算设备(20)具有错误发现的模块以在执行所述计算设备(20)上的所述计算机程序(23)期间检测错误,
其特征在于,
所述计算设备(20)具有错误处理的模块,用于当检测到错误时,所述错误处理的模块通过所述错误发现的模块引起:重新启动至少一个已经执行的程序对象,其中所述程序对象被划分成至少两类,其中在第一类程序对象内检测到错误时,代替第二类程序对象重新启动第一类程序对象,其中为进行重新启动而使用一个存储在所述计算设备的存储元件中的回跳点,该回跳点包括足够使任务处于确定重新启动状态的相关任务输入参数。
11.根据权利要求10所述的计算设备(20),
其特征在于,
所述错误处理的模块具有触发逻辑,所述触发逻辑在检测到错误期间重新启动至少一个第一类程序对象。
12.根据权利要求10所述的计算设备(20),
其特征在于,
在所述计算设备(20)上运行实时操作***(25)。
CNB2005800364685A 2004-10-25 2005-10-19 执行计算机程序的方法、计算设备 Expired - Fee Related CN100538644C (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE102004051991A DE102004051991A1 (de) 2004-10-25 2004-10-25 Verfahren, Betriebssystem und Rechengerät zum Abarbeiten eines Computerprogramms
DE102004051991.9 2004-10-25
DE102004051966A DE102004051966A1 (de) 2004-10-25 2004-10-25 Verfahren, Betriebssystem und Rechengerät zum Abarbeiten eines Computerprogramms

Publications (2)

Publication Number Publication Date
CN101048737A CN101048737A (zh) 2007-10-03
CN100538644C true CN100538644C (zh) 2009-09-09

Family

ID=35462117

Family Applications (2)

Application Number Title Priority Date Filing Date
CNB2005800364685A Expired - Fee Related CN100538644C (zh) 2004-10-25 2005-10-19 执行计算机程序的方法、计算设备
CNB2005800365207A Expired - Fee Related CN100538645C (zh) 2004-10-25 2005-10-20 用于执行计算机程序的方法和计算设备

Family Applications After (1)

Application Number Title Priority Date Filing Date
CNB2005800365207A Expired - Fee Related CN100538645C (zh) 2004-10-25 2005-10-20 用于执行计算机程序的方法和计算设备

Country Status (6)

Country Link
US (2) US7788533B2 (zh)
EP (2) EP1810139B1 (zh)
JP (2) JP2008518293A (zh)
CN (2) CN100538644C (zh)
DE (2) DE102004051991A1 (zh)
WO (2) WO2006045734A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102004051991A1 (de) 2004-10-25 2006-04-27 Robert Bosch Gmbh Verfahren, Betriebssystem und Rechengerät zum Abarbeiten eines Computerprogramms
DE102007056218A1 (de) * 2007-11-22 2009-05-28 Robert Bosch Gmbh Verfahren zur Behandlung von transienten Fehlern in Echtzeitsystemen, insbesondere in Steuergeräten von Kraftfahrzeugen
EP2550599B1 (de) * 2010-03-23 2020-05-06 Continental Teves AG & Co. OHG Kontrollrechnersystem, verfahren zur steuerung eines kontrollrechnersystems, sowie verwendung eines kontrollrechnersystems
BR112017003478A2 (pt) * 2014-09-25 2018-03-20 Nsk Ltd. aparelho de controle e método de controle de equipamento eletrônico em um veículo
WO2017012640A1 (en) * 2015-07-17 2017-01-26 Hewlett-Packard Indigo B.V. Electrostatic ink compositions
US9734006B2 (en) * 2015-09-18 2017-08-15 Nxp Usa, Inc. System and method for error detection in a critical system
US10136720B2 (en) 2016-04-12 2018-11-27 Amg Co., Ltd. Cosmetic container
CN109508260B (zh) * 2018-10-31 2021-11-12 西北工业大学 一种自修复处理器对锁步***的可靠性建模与分析方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3248697A (en) * 1962-11-27 1966-04-26 Ibm Error classification and correction system
US5138708A (en) * 1989-08-03 1992-08-11 Unisys Corporation Digital processor using current state comparison for providing fault tolerance
US5269017A (en) * 1991-08-29 1993-12-07 International Business Machines Corporation Type 1, 2 and 3 retry and checkpointing
US5815651A (en) * 1991-10-17 1998-09-29 Digital Equipment Corporation Method and apparatus for CPU failure recovery in symmetric multi-processing systems
US5530802A (en) * 1994-06-22 1996-06-25 At&T Corp. Input sequence reordering method for software failure recovery
JPH10214198A (ja) 1997-01-29 1998-08-11 Hitachi Ltd 情報処理システム
JPH10326220A (ja) * 1997-05-27 1998-12-08 Toshiba Corp ファイルシステムおよびファイル管理方法
US6205542B1 (en) * 1997-12-24 2001-03-20 Intel Corporation Processor pipeline including replay
FR2784475B1 (fr) * 1998-10-12 2000-12-29 Centre Nat Etd Spatiales Procede de traitement d'un systeme electronique soumis a des contraintes d'erreurs transitoires
TW420771B (en) * 1999-08-14 2001-02-01 Ibm Electronic control system for controlling the function of a processing system and method for managing system fault situations of the electronic control system
JP2003263329A (ja) * 2002-03-08 2003-09-19 Oki Electric Ind Co Ltd タスクスケジュール装置
JP4112319B2 (ja) * 2002-09-06 2008-07-02 日本電信電話株式会社 プロセス再開方法、プロセス再開装置、プロセス再開プログラム
US20040064756A1 (en) * 2002-09-26 2004-04-01 Sudarshan Kadambi Method and apparatus for improving reliability in computer processors by re-executing instructions
FR2869430A1 (fr) * 2004-04-27 2005-10-28 St Microelectronics Sa Controle de l'execution d'un algorithme par un circuit integre
DE102004051991A1 (de) 2004-10-25 2006-04-27 Robert Bosch Gmbh Verfahren, Betriebssystem und Rechengerät zum Abarbeiten eines Computerprogramms

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
Imprecise Computations. JANE W.S.LIU etc.PROCEEDINGS OF THE IEEE,Vol.82 No.1. 1994
Imprecise Computations. JANE W.S.LIU etc.PROCEEDINGS OF THE IEEE,Vol.82 No.1. 1994 *
Scheduling Periodic Jobs That Allow Imprecise Results. JEN-YAO CHUNG etc.IEEE TRANSACTIONS ON COMPUTERS,Vol.39 No.9. 1990
Scheduling Periodic Jobs That Allow Imprecise Results. JEN-YAO CHUNG etc.IEEE TRANSACTIONS ON COMPUTERS,Vol.39 No.9. 1990 *
The Transient Server Approach to SchedulingTime-Critical Recovery Operations. Sandra Ramos-Thuel and Jay K.Strosnider.PROCEEDINGS OF THE REAL TIME SYSTEMS SYMPOSIUM. 1991

Also Published As

Publication number Publication date
CN101048738A (zh) 2007-10-03
US20090254773A1 (en) 2009-10-08
JP2008518293A (ja) 2008-05-29
JP4648396B2 (ja) 2011-03-09
DE102004051966A1 (de) 2006-05-04
US20090031161A1 (en) 2009-01-29
CN100538645C (zh) 2009-09-09
WO2006045754A1 (de) 2006-05-04
CN101048737A (zh) 2007-10-03
US7716524B2 (en) 2010-05-11
EP1810140A1 (de) 2007-07-25
DE102004051991A1 (de) 2006-04-27
US7788533B2 (en) 2010-08-31
JP2008518294A (ja) 2008-05-29
EP1810139A1 (de) 2007-07-25
EP1810139B1 (de) 2010-08-18
WO2006045734A1 (de) 2006-05-04

Similar Documents

Publication Publication Date Title
CN100538644C (zh) 执行计算机程序的方法、计算设备
JP5199088B2 (ja) 少なくとも2つの命令実行部および1つの比較ユニットを備えたコンピュータシステムを制御する方法および装置
CN1993679B (zh) 执行计算机程序的方法、操作***和计算设备
CN109891393B (zh) 使用检查器处理器的主处理器错误检测
US8677189B2 (en) Recovering from stack corruption faults in embedded software systems
CN100549946C (zh) 用于执行数据处理操作的装置和方法
US9304872B2 (en) Method for providing a value for determining whether an error has occurred in the execution of a program
CN112015599B (zh) 错误恢复的方法和装置
CN102640119B (zh) 用于运行计算单元的方法
US20080133975A1 (en) Method for Running a Computer Program on a Computer System
CN100511165C (zh) 执行计算机程序的方法、操作***以及计算设备
CN103226499A (zh) 一种恢复内部存储器中的异常数据的方法及装置
CN101233495A (zh) 用于在具有快闪程序存储器的微控制器中提供程序断点的机制
JP4754635B2 (ja) 制御フロー保護機構
CN106547606B (zh) 堆栈自检方法及装置
CN110673975B (zh) 一种星载计算机软件的安全内核结构及安全运行方法
CN101158920B (zh) 一种检测操作***故障的方法和装置
JP3746957B2 (ja) 論理分割システムの制御方法
JP4647276B2 (ja) 半導体回路装置
KR20230160003A (ko) 소프트웨어 수행 순서 오류 검출 모니터링 방법
JPS63263543A (ja) マルチレベルプログラミング方式
JP2017076300A (ja) 制御装置およびレジスタの故障復帰方法

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090909

Termination date: 20161019

CF01 Termination of patent right due to non-payment of annual fee