CN100538645C - 用于执行计算机程序的方法和计算设备 - Google Patents
用于执行计算机程序的方法和计算设备 Download PDFInfo
- Publication number
- CN100538645C CN100538645C CNB2005800365207A CN200580036520A CN100538645C CN 100538645 C CN100538645 C CN 100538645C CN B2005800365207 A CNB2005800365207 A CN B2005800365207A CN 200580036520 A CN200580036520 A CN 200580036520A CN 100538645 C CN100538645 C CN 100538645C
- Authority
- CN
- China
- Prior art keywords
- program
- mistake
- computing equipment
- task
- computer program
- 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
Links
- 238000004590 computer program Methods 0.000 title claims abstract description 66
- 238000000034 method Methods 0.000 title claims abstract description 55
- 230000001052 transient effect Effects 0.000 claims description 41
- 238000012545 processing Methods 0.000 claims description 19
- 230000007246 mechanism Effects 0.000 description 27
- 238000012546 transfer Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 8
- 238000013461 design Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000007689 inspection Methods 0.000 description 3
- 230000009897 systematic effect Effects 0.000 description 3
- 230000033228 biological regulation Effects 0.000 description 2
- 238000003745 diagnosis Methods 0.000 description 2
- 230000005288 electromagnetic effect Effects 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000008034 disappearance Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 238000005111 flow chemistry technique Methods 0.000 description 1
- 230000008571 general function Effects 0.000 description 1
- 230000002650 habitual effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
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/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1438—Restarting or rejuvenating
-
- 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/0703—Error 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/0706—Error 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/0715—Error 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
-
- 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/0703—Error 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/0751—Error 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)
- 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)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及一种用于在计算设备上、尤其是在微处理器上执行计算机程序的方法,其中该计算机程序包括多个程序对象,而且在该方法中当在该计算设备上执行计算机程序期间检测错误,其中将所述程序对象分为至少两类,并在连续运行中执行多个程序对象,其中在检测到错误时重复第一类的程序对象,并且当第一类的在已得以执行的程序对象中检测到错误时,在连续运行的第一类的其它程序对象之后重新启动第一类的该程序对象来代替第二类的程序对象。
Description
现有技术
本发明涉及一种用于在计算设备上、尤其是在微处理器上执行计算机程序的方法。该计算机程序包括多个程序对象。在该方法中,当在计算设备上执行计算机程序期间检测错误。
此外,本发明还涉及可以在计算设备、尤其是在微处理器上运行的操作***。
最后本发明还涉及一种用于执行包括多个程序对象的计算机程序的计算设备。该计算设备包括用于当在计算机设备上执行计算机程序期间检测错误的错误发现机制。
当在计算设备上执行计算机程序时可能产生所谓的瞬时错误。由于半导体器件(所谓的芯片)上的结构越来越小,但是信号的时钟速率越来越大并且信号电压越来越低,因此瞬时错误出现得越来越频繁。与永久错误不同,瞬时错误只是暂时出现,并通常在一段时间之后又自动消失。在瞬时错误情况下只有单个位是错误的,而计算设备本身并未受到永久性损坏。瞬时错误可能由不同的原因导致,如电磁影响、Alpha微粒或中子。
目前在通信***中难点就在于瞬时错误的错误处理(Fehlerbehandlung)。在通信***(例如控制器局域网(ControllerArea Network),CAN)中公知在检测到错误时重新发送被有错传输的数据。此外还公知在通信***中采用错误计数器,所述错误计数器在检测到错误时被增大而在正确发送时被减小,并且只要该错误计数器超过特定值就阻止数据的发送。
但在用于执行计算机程序的计算设备中,基本上只对永久性错误才进行错误处理。对瞬时错误的考虑限制于错误计数器的增加和必要时的减小。该错误计数器被设置在存储器中并且可以离线地、也就是说例如在构造为汽车控制设备的计算设备在车间停留期间作为诊断或故障信息被读出。然后才能相应地对错误进行反应。
因此,借助错误计数器的错误处理一方面不允许在尤其是与安全有关的***所需要的短容错时间内的错误处理,另一方面在以下意义上也不允许建设性的错误处理,即在该容错时间内重新按规定执行计算机程序。取代于此,在现有技术中,在超过错误计数器的特定值之后将计算机程序转换到应急运行。这意味着不是执行计算机程序的有错部分而是执行其它部分,并考虑通过这种方式所确定的替换值用于进一步的计算。该替换值例如可以借助其它参量建模。可替换地,用计算机程序的有错部分所计算的结果作为有错的而被丢弃,并通过为应急运行所设置的标准值来代替用于进一步计算。由此,用于处理在计算设备上运行的计算机程序的瞬时错误的公知方法不允许***地、建设性地考虑多数错误的瞬时性质。
根据现有技术还公知,通过完全地重新启动计算设备来消除在该计算设备上执行计算机程序时出现的瞬时错误。这种解决方法也不能真正地令人满意,因为在计算机程序执行的迄今过程中丢失了所获得的参量,并且计算设备在重新启动的持续时间内无法实现其按照规定的功能。这尤其是在与安全有关的***中是无法接受的。
最后作为对在计算设备上所执行的计算机程序的瞬时错误的错误处理,还公知的是,将该计算机程序退后几个时钟,并重复该计算机程序的各个机器指令。该方法也称为微回退(Micro Roll-back)。在该公知方法中只是围绕在机器层面(时钟、机器指令)上的对象回跳。这需要机器层面的相应硬件支持,这又与计算设备领域中很高的耗费相联系。只通过软件控制来实施该公知方法是不可能的。
由现有技术公知的错误处理机制无法以合适方式对当在计算机设备上执行计算机程序时出现的瞬时错误进行反应。
但是,瞬时错误恰好在未来技术中非常频繁。如果例如通过双核机制发现所述瞬时错误,则从而总是还要回答关于错误定位的问题,以识别正确的结果。如果目标是使瞬时错误不总是导致计算机的重新启动,则这尤为如此。典型地,错误定位像已描述的那样只能通过比较费事的方法来实现。
本发明所基于的任务是,如果在计算机***中执行计算机程序时出现瞬时错误则如此建设性地处理所述瞬时错误,使得计算机***的全部功能作用和功能可靠性在尽可能短的容错时间内被重新建立。
为了解决该任务,从上述类型的方法出发建议:在检测到错误时至少一个已得以执行的程序对象被转换到所定义的状态,并从该状态被重新启动。
但在***层面上还提出如何能合理使用任务重复这一构思的问题。通常不能再次简单地计算任意有错的任务,因为额外所需的计算时间以及为此所采用的时刻从***的观点来看已规划用作它途。如果处理器的满负荷已经接近100%(而且通常正是这种情况),则通过这种未规划的额外负荷(如它是任务重复)产生***的过负荷,该过负荷典型地可能导致崩溃。如果考察的是时控***(该时控***如所呈现的那样至少部分地被实现),则这更明显。在这种***情况下,不能容许破坏极限,正如大多数其它硬实时构思那样少。
结果是,从***观点来看因此必须规划可能通过可能的任务重复而产生的额外负荷。如果在每个任务之后都维持任务重复所需要的计算时间,则这一定能正常运转,但是相对于不处理错误的***来说必须付出100%额外性能。从成本观点来看这是无法接受的。
因此此外本发明的任务是提供一种最佳的***策略,所述***策略并不总是规划任务的双重计算(并从而产生永久的和非常高的开销),同时解决如何使其与时控方案相联系的问题。
发明优点
由此在本发明***策略的框架下建议一种方法、操作***和计算设备,其允许将任务重复的构思与最低甚至没有的性能开销结合起来。在此,这种***策略是任务(Task)、使命(Aufgabe)、程序或程序部分的调度方法的边界条件,所述任务、使命、程序或程序部分下面尤其是称为程序对象或多个程序对象。
在检测到错误时不必已完全执行了被重新启动的程序对象。在本发明的意义上,还可以在出现错误时重新启动这种程序对象,所述程序对象在检测到错误的时刻还没有被完全执行,但是其执行可能已经开始。因此按照本发明,在出现瞬时或永久错误时重新执行至少一个操作***对象。相对于微回退的优点尤其在于,可以用非常少的硬件支持来实现程序对象的重复。为了能存储为重新执行程序对象所需要的若干信息(例如程序对象的输入参量),非常需要另外的存储空间。本发明方法的真正管理可以通过计算设备的操作***实施。也就是说,本发明的方法可以用传统的、商业上惯用的处理器来实现,而无需另外的硬件。但是当然还可以用硬件支持来实现本发明的方法。
因此与现有技术相比,再次计算有错的任务、即有错的使命或有错的程序或者程序部分或程序对象或者至少操作***对象更为有利。如果该错误原本是瞬时的,则在重新计算时两个输出是相同的,也就是说错误消失并通过重新计算得以处理。
因此优选地说明一种用于在计算设备上、尤其是在微处理器上执行计算机程序的方法,其中该计算机程序包括多个程序对象,在该方法中,当在计算设备上执行计算机程序期间检测错误,其中将程序对象分为至少两类,并在连续运行(Durchlauf)中执行多个程序对象,其中在检测到错误时重复第一类的程序对象,并且当在第一类的已得以执行的程序对象中检测到错误时,在连续运行的第一类的其它程序对象之后重新启动第一类的该程序对象来代替第二类程序对象。
在此仅在被重新启动的类中进行错误检测。
错误检测本身可以根据任意方法来进行。可以设想采用任何类型的错误发现机制,该错误发现机制可以在执行计算机程序期间检测错误(所谓的并行检查)。例如在双核体系结构中双重地构造整个计算机核。如果计算机核以锁步(Lockstep)模式运行,则可以针对每条指令比较两个计算机核是否提供相同的结果。然后结果的不同使可靠地推断出错误。因此这种错误发现机制在执行程序对象时实时地发现错误。相应地,也适用于在处理器体系结构中普遍使用的错误发现代码、或者也适用于计算设备的双重子部件。所有这些错误发现机制共同点在于,非常快速地发现瞬时错误和如果已经检测到错误,则提供故障信号。
根据这种故障信号可以触发重复该程序对象的错误处理机制。如果在重新执行时再次出现相同的错误,则可以推断是永久错误,或者增大错误计数器,其中只有在其超过特定的值时才推断是永久错误。相反,如果在重新执行该程序对象时不再出现错误,则可以认为该错误是瞬时错误。在无错地重新执行程序对象期间,该计算机程序再次被提供用于其按照规定的功能。因此该可用性已在最短的时间之后重新产生。从而对至少一个程序对象的重复是处理瞬时错误的良好手段。
按照本发明的优选改进建议,将程序对象构造为计算机程序的运行时间对象(下面具体称为任务),并且在检测到错误时重新执行至少一个任务。任务尤其是在操作***层面上的典型对象。如果期望甚至用纯软件来控制,则任务的重复可以用最低的耗费来实现。
按照本发明的优选实施方式建议,重新启动在检测到错误时被执行的程序对象。但是可替代的或附加地,还可以启动和重新执行在检测到错误时已经被完全执行了的程序对象。
建议在执行程序对象期间、尤其是在开始执行程序对象时产生和存储所述程序对象的至少一个所定义的状态。这例如可以通过存储对程序对象的状态重要的参量的所有值来实现。
此外还建议,为了检测错误,使用对在其上执行具有多个程序对象的计算机程序的计算设备冗余工作的另一计算设备。当然还可以采用多于一个的冗余计算设备来检测错误。
优选地,本发明的方法用在汽车、尤其是汽车控制设备中,以便尽管在执行计算机程序时出现不可避免的瞬时错误也保证安全和可靠地执行计算机程序。这特别是对于在汽车的安全性临界应用中执行控制和/或调节程序是有意义的。
此外还建议,如果在重新执行至少一个程序对象时重新出现相同的错误,则推断是永久错误。还可以设想仅当错误在对程序对象重复可预定的次数之后仍然总是出现时才推断是永久错误。因此在这种情况下,如果在第三次或更后期地重复程序对象之后该错误才消失,则甚至也推断是瞬时错误。通过本发明的改进可以重复重要的程序对象例如三次而不只是两次。
按照本发明的另一个优选改进建议,将至少一个程序对象的重复次数限制为可预定的值。由此防止在永久错误情况下任意频繁地重复同一程序对象。对至少一个程序对象的重复次数的限制可以例如借助计数器或通过时限(Zeitschranke)来进行。此外,通过预先给定取决于任务的重复值还可以使重要的任务比不太重要的任务重复得更多次,并由此更多次或更长时间地向重要的任务提供在无瞬时错误情况下无错运行的可能性,而在不太重要的任务情况下比较快地推断是永久错误并开始另一***反应。
按照本发明另一优选实施方式,建议将至少一个程序对象的重复次数动态地限制为可预定的值。优选地,根据调度的剩下的剩余时间将至少一个程序对象的重复次数动态地限制为可预定的值。通过这种方式例如可以连续运行第一任务和第二任务,而可以多次重复第三任务。
为了实现本发明的方法,建议在执行计算机程序期间在执行程序对象之前存储对实施该程序对象所需要的或者定义该程序对象的状态的参量的值。按照该实施方式,存储所有程序对象的参量。
可替换地,建议对于在一周期内周期性执行的计算机程序来说,在检测到错误时在该计算机程序的周期中的可预定的回跳点处跳回到确定的程序对象上。因此按照该实施方式,在错误情况下总是跳至该周期内的同一位置。优选地,在执行该计算机程序期间仅当在该回跳点处执行程序对象之前存储对程序对象的状态重要的所有参量的值。因此每个循环或周期必须仅存储一次程序对象在该回跳点处的重要参量的值。由此可以节省存储所用的时间以及存储空间。
于是当在检测到错误之后重新执行程序对象时,调用所存储的输入参量,并作为输入参量提供给将要重新执行的程序对象。
作为本发明的另一实施方式,建议对一个程度对象设置多个回跳点。在出现错误时不必重新执行整个程序对象、而仅重新执行该程序对象的一部分。在出现错误时简单地返回到前面的、至其为止程序对象的执行是无错的回跳点。例如,在直至第n个回跳点时无错地执行该程序对象的情况下,在该第n个回跳点和第(n+1)个回跳点之间出现错误时跳回到第n个回跳点。然后从该第n个跳回点开始重新执行该程序对象。由此能节省时间。优选地,当在执行程序对象期间在越过每个回跳点时分别产生和存储至少一个所定义的状态。
特别有意义的是,以操作***的形式实现本发明的方法。在此该操作***可以在计算设备、尤其是在微处理器上运行,并当在该计算设备上运行被编程用于实施本发明的方法。因此,在这种情况下本发明通过该操作***来实现,使得该操作***按照与适合采用该操作***执行的方法相同的方式表现本发明。该操作***优选地存储在存储元件上并且被传送给计算设备用于执行。作为存储元件尤其可以采用任意的数据载体或电存储介质,例如随机存取存储器(RAM)、只读存储器(ROM)或闪速存储器。
作为本发明任务的另一解决方案以开头所述类型的计算设备为出发点,建议该计算设备具有错误处理机制,所述错误处理机制在通过错误发现机制检测到错误时促使重新执行至少一个程序对象。
按照本发明的优选改进,建议所述错误处理机制具有触发逻辑,所述触发逻辑在检测到错误时重新启动至少一个程序对象。
按照本发明的优选实施方式,建议在所述计算设备上运行实时操作***(如OSEK time)。最后建议所述计算设备包括微处理器。
附图
本发明的其它特征、应用可能性和优点由下面对在附图中示出的本发明实施例的描述给出。在此所有所描述或示出的特征可以单独地或以任意组合方式形成本发明的主题,而与其在权利要求书或其引用部分中的概述无关、以及与其在说明书或附图中的表述或显示无关。
图1示出本发明方法按照其优选的实施方式的流程图;
图2以示意图示出按照其优选的实施方式的本发明计算设备,
图3由图3a和3b组成,示出用于结合任务重复的本发明方案。
实施例的描述
本发明涉及一种用于在计算设备、尤其是在微处理器上执行计算机程序的方法。该计算机程序包括多个优选地被构造为任务的程序对象。在该方法中,在计算机设备上执行计算机程序期间检测错误。检测到的错误可以是瞬时(也即短暂的)类型或永久类型。
瞬时错误可能当在计算设备上执行计算机程序时出现。由于计算设备的半导体器件(所谓的芯片)上的结构越来越小,但信号的时钟速率却越来越大,信号电压越来越低,因此当在计算设备上执行计算机程序时越来越频繁地出现瞬时错误。与永久错误不同,瞬时错误只暂时出现,并且通常在一段时间之后自动消失。在瞬时错误情况下只有单个位错误,而计算设备本身未受到永久性损坏。瞬时错误可能由不同的原因导致,如电磁影响、Alpha微粒或中子。
由于瞬时错误几乎是不可预见地出现且因此不可再现,所以在根据现有技术公知的计算设备中基本上只针对永久性错误进行错误处理。对瞬时错误的考虑限制于错误计数器的增加和必要时的减少。所述错误计数器被设置在存储器中并且可以离线地、也就是说例如在车间停留期间作为诊断或故障信息被读出。然后才能相应地对错误进行反应。因此公知的错误处理不允许在尤其是与安全有关的***所需要的短容错时间内的错误处理,另一方面在以下意义上不允许建设性的错误处理,即在该容错时间内重新按规定执行计算机程序并且计算设备能够实现其按照规定的任务。
与此相反,本发明的方法可以通过***地、建设性地考虑多数错误的瞬时性质来处理在计算设备上运行的计算机程序的瞬时错误。在图1中以运行时间对象、即所谓的任务为例示出本发明方法的流程图。其它任务的存在不影响该原理流程,因此不考虑。因此就像按照如图1所示的流程处理任务那样,按照本发明也可以处理多个任务。特别有利的是并行工作的错误发现机制(所谓的并行检查(concurrent checking))。但该机制不能显示在流程图中,该机制作为串联组件添加在相应的位置上。
按照本发明的方法在功能块1中开始。在该功能块1中,从在计算设备上执行任务开始;调用该任务。在功能块2中产生回跳点。为此将与安全有关的任务输入参量存储在计算设备的存储元件中,所述任务输入参量足以将任务置于所定义的状态用于重新启动并再次启动该任务。优选地,存储该任务的所有输入参量。然后在功能块3中进一步执行该任务。该执行可以或者进行至另一回跳点、或者进行至直到该任务结束为止。然后实施错误发现机制。错误检测可以根据任意方法进行。在执行计算机程序期间检测错误(所谓的并行检查)。从而例如在所谓的双核体系结构中双重地构造整个计算机核。如果以所谓的锁步(Lockstep)模式运行计算机核,则可以为每个指令比较两个计算机核是否提供相同的结果。然后结果的不同使可靠地推断出错误。因此这种错误发现机制在执行任务时实时地发现错误。相应地,也适用于在处理器体系结构中通常所使用的错误发现代码,或者也适用于计算设备的双重子部件。优选地,还采用这种错误发现机制,所述错误发现机制非常快速地发现瞬时错误并在检测到错误时提供故障信号。
在询问块4中,检查是否已发现了错误、即瞬时或永久错误。如果已发现了错误,则转移到另一询问块7,在该询问块7中检查错误计数器逻辑的当前值。如果错误计数器还没有不超过(在递减的错误计数器情况下)或超过(在递增的错误计数器情况下)可预定的计数器读数,则可以再次实施在其执行期间已出现了错误的任务、或者可以再次实施在出现错误之前就已执行的特定数量的任务。如果可以重新启动执行该任务,则转移到功能块8中,在该功能块8中利用关于出现了其它错误的信息来更新(减小或增加)错误计数器逻辑的状态。从那里转移到功能块5中,在功能块5中加载存储在功能块2中的参量,并且输送给任务用以在开始执行时产生所定义的状态。然后转移到功能块3中,在那里再次部分地(也就是从已经执行过的回跳点开始)或者完全地(也即从开始起再次启动该任务)执行待重复的任务。
如果在询问块4中得出在功能块3中执行任务期间没有出现错误,则转移到功能块9,在该功能块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表示。计算设备包括例如被构造为电子存储器、尤其是闪速(flash)存储器的存储元件21。此外,计算设备20包括微处理器22,在该微处理器上可以执行计算机程序。计算机程序存储在电子存储介质21中并用附图标记23表示。为了在微处理器22上执行计算机程序,将该计算机程序整个地或分段地、例如以指令方式通过数据连接24传输给微处理器22。数据连接24可以被构造为一个或多个数据线路或总线***以传输数据。此外在存储介质21上还存储有操作***,使得在开动计算设备20时至少部分地从存储器21被传送给微处理器22并在那里被执行。该操作***用附图标记25表示。其任务是控制和管理计算机程序23在微处理器22和与计算设备20相连接的***设备上的执行。按照本发明,操作***25以特殊方式构成,使得所述操作***被编程用以执行本发明的方法,并且当其在微处理器22上运行时执行本发明的方法。特别是,操作***25包括通向用于当在微处理器22上执行计算机程序23期间检测错误的错误发现机制的入口(Zugang)。此外,操作***25包括错误处理机制,其在检测到错误时促使重新执行计算机程序23的至少一个程序对象(一个任务)。
因此在本发明***策略的框架下提出一种方法、操作***和计算设备,其允许将任务重复的构思与最低或甚至没有的性能开销结合起来。
在此以这样的***策略为基础,所述***策略在分别不同的前提条件下将性能开销降至最低,并由此将成本降至最低。通常在此前提是:尤其是已经描述过的、可以在任务运行时发现错误的错误发现机制(例如利用冗余处理的双核机制)可供使用。此外这里具体讨论瞬时错误。为了发现永久错误,需要一种扩展,例如如上所述的错误计数器。
在用于结合任务重复的本发明策略中,如在图3中所述,要注意几个前提条件:
至少区分两类任务(例如临界任务和非临界任务)。在此错误发现机制不是已被用于任务的所有类和/或任务重复不是针对任务的所有类被执行。
在图3的例子中区分两类任务,其中只在一类中执行任务重复和/或只在一类中启动错误发现机制。当在临界任务和非临界任务中区分时,按照本发明恰恰仅截获临界任务中的错误,尤其是只对第一类使用错误发现机制。在此临界任务是这样的任务,其中对***的总功能或基础功能需要正确的执行并且最迟必须在特定的时刻进行以获得该功能。非临界任务是这样的任务,其中或者不涉及或者基本上不限制总***功能或基础功能。特别是,在***中在此在安全性临界和安全性非临界的功能之间区分。
第二类、即这里是非临界类2的任务中的瞬时错误可以被忽略。此外如所实施的那样也适用的是:一次也不“允许轮到”第二类的任务,也就是说,如果在任务处理循环中不调用该第二类的任务,则从***观点来看不出现严重的结果。
在此,该***应当能应付稍微比较大的抖动(在一连续运行的数量级内)。优选地这应当贯穿应用和平台机制、尤其是操作***。在此,在图5a中示出在无错执行时具有任务T1、T2、T3、T4、T5和S的连续运行。
此外在图3中,在第一类任务T1、T2、T3、T4及T5与第二类任务S之间区分。当在T3期间出现瞬时错误时,按照图3b,在第一类的其它任务之后在S时间内再次考虑T3,而S则完全或部分取消。
也就是说,至少存在两类任务(例如临界的T1-T5和非临界的S)。第二类的任务中的瞬时错误可以被忽略。此外必须适用的是,一次也不“允许轮到”第二类的任务,也就是说,如果在循环(Runde)或连续运行中不调用该类的任务,则从***观点来看不出现严重的结果。最后,每一连续运行必须存在至少一个非临界任务,该非临界任务的持续时间与最长的临界任务一样长。该至少一个非临界任务S还可以作为空转时间(idle Zeit)来实现。
当在Ti中(如根据图3b在T3中)检测到错误时,现在将Ti(T3)的结果解释为无关紧要的,而且与上述例子不同,执行其它任务(T4,T5)。在Tn(T5)完成之后,再次考虑Ti(T3)。在此前提条件是一***设计,该***设计不要求一循环的任务的结果被同一循环的其他任务所需要,因为在此不遵守任务的顺序。
该***方案根据图1和图2的实施方式用相应的装置实施,使得就本公开而言明确地可将每个实施方式与每个其它实施方式组合。
由此按照本发明就瞬时错误而言可以获得最佳的FO特性(FO:Fail Operation(al),Fault Operation(al)(故障操作))。
Claims (14)
1.用于在计算设备(20)上执行计算机程序(23)的方法,其中该计算机程序(23)包括多个程序对象,并且在该方法中当在该计算设备(20)上执行计算机程序(23)期间检测错误,其特征在于,
将所述程序对象分成至少两类,并在连续运行中执行多个程序对象;
当在第一类的已经得以执行的程序对象中检测到错误时,将所述错误认为是瞬时错误,和在连续运行的第一类的其它程序对象之后重新启动第一类的该程序对象来代替第二类的程序对象;和
只有当在对程序对象重复可预先规定的次数之后仍总是出现错误时,才推断出永久错误。
2.根据权利要求1所述的方法,其特征在于,仅在第一类中进行错误检测。
3.根据权利要求1所述的方法,其特征在于,交替地执行不同类的程序对象。
4.根据权利要求1所述的方法,其特征在于,将第一类的程序对象构造为计算机程序(23)的任务,并且在检测到错误时重新执行至少一个任务。
5.根据权利要求1或2所述的方法,其特征在于,重新执行在检测到错误的时刻所执行的程序对象。
6.根据权利要求1所述的方法,其特征在于,在执行第一类的程序对象期间产生和存储程序对象的至少一个所定义的状态。
7.根据权利要求6所述的方法,其特征在于,在开始执行程序对象时产生和存储程序对象的至少一个所定义的状态。
8.根据权利要求1所述的方法,其特征在于,所述方法用于汽车中。
9.根据权利要求8所述的方法,其特征在于,所述方法用于汽车控制设备中。
10.根据权利要求1所述的方法,其特征在于,在执行计算机程序(23)期间在执行第一类的程序对象之前存储对执行该程序对象所需要的参量的值(3)。
11.根据权利要求1所述的方法,其特征在于,对在一周期中要周期性执行的计算机程序(23)来说,当在特定的程序对象上检测到错误时返回到在该计算机程序(23)的周期中的可预定的回跳点。
12.用于执行包括多个程序对象的计算机程序(23)的计算设备(20),其中该计算设备(20)包括用于当在该计算设备(20)上执行计算机程序(23)期间检测错误的错误发现模块,其特征在于,
所述计算设备(20)具有错误处理模块,所述错误处理模块在通过错误发现模块检测到错误时促使重新启动至少一个已得以执行的程序对象,其中将所述多个程序对象分成至少两类,并在连续运行中执行多个程序对象,当在第一类的已得以执行的程序对象中检测到错误时,将错误认为是瞬时错误,在连续运行的第一类的其它程序对象之后重新启动第一类的该程序对象来代替第二类的程序对象,和只有当在对程序对象重复可预先规定的次数之后仍总是出现错误时,才推断出永久错误。
13.根据权利要求12所述的计算设备(20),其特征在于,所述错误处理模块具有触发逻辑,所述触发逻辑在检测到错误时重新启动所述至少一个程序对象。
14.根据权利要求12所述的计算设备(20),其特征在于,在所述计算设备(20)上运行实时操作***(25)。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102004051966A DE102004051966A1 (de) | 2004-10-25 | 2004-10-25 | Verfahren, Betriebssystem und Rechengerät zum Abarbeiten eines Computerprogramms |
DE102004051991A DE102004051991A1 (de) | 2004-10-25 | 2004-10-25 | Verfahren, Betriebssystem und Rechengerät zum Abarbeiten eines Computerprogramms |
DE102004051966.8 | 2004-10-25 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101048738A CN101048738A (zh) | 2007-10-03 |
CN100538645C true CN100538645C (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 Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005800364685A Expired - Fee Related CN100538644C (zh) | 2004-10-25 | 2005-10-19 | 执行计算机程序的方法、计算设备 |
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)
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 |
WO2011117156A2 (de) * | 2010-03-23 | 2011-09-29 | Continental Teves Ag & Co. Ohg | Kontrollrechnersystem, verfahren zur steuerung eines kontrollrechnersystems, sowie verwendung eines kontrollrechnersystems |
CN107531194B (zh) * | 2014-09-25 | 2019-07-09 | 日本精工株式会社 | 电动助力转向装置的控制装置和控制方法 |
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 |
JP6082505B1 (ja) | 2016-04-12 | 2017-02-15 | 株式会社エイエムジー | 化粧品容器 |
CN109508260B (zh) * | 2018-10-31 | 2021-11-12 | 西北工业大学 | 一种自修复处理器对锁步***的可靠性建模与分析方法 |
Family Cites Families (15)
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 |
-
2004
- 2004-10-25 DE DE102004051991A patent/DE102004051991A1/de not_active Withdrawn
- 2004-10-25 DE DE102004051966A patent/DE102004051966A1/de not_active Withdrawn
-
2005
- 2005-10-19 JP JP2007537273A patent/JP2008518293A/ja active Pending
- 2005-10-19 CN CNB2005800364685A patent/CN100538644C/zh not_active Expired - Fee Related
- 2005-10-19 EP EP05796981A patent/EP1810139B1/de not_active Not-in-force
- 2005-10-19 WO PCT/EP2005/055392 patent/WO2006045734A1/de active Application Filing
- 2005-10-19 US US11/666,408 patent/US7788533B2/en not_active Expired - Fee Related
- 2005-10-20 US US11/666,097 patent/US7716524B2/en not_active Expired - Fee Related
- 2005-10-20 WO PCT/EP2005/055437 patent/WO2006045754A1/de active Application Filing
- 2005-10-20 JP JP2007537281A patent/JP4648396B2/ja not_active Expired - Fee Related
- 2005-10-20 EP EP05797279A patent/EP1810140A1/de not_active Ceased
- 2005-10-20 CN CNB2005800365207A patent/CN100538645C/zh not_active Expired - Fee Related
Non-Patent Citations (5)
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-CriticalRecovery Operations. Sandra Ramos-Thuel and Jay K.Strosnider.PROCEEDINGS OF THE REAL TIME SYSTEMS SYMPOSIUM. 1991 |
Also Published As
Publication number | Publication date |
---|---|
US20090031161A1 (en) | 2009-01-29 |
WO2006045734A1 (de) | 2006-05-04 |
CN101048738A (zh) | 2007-10-03 |
CN101048737A (zh) | 2007-10-03 |
JP2008518293A (ja) | 2008-05-29 |
DE102004051966A1 (de) | 2006-05-04 |
JP4648396B2 (ja) | 2011-03-09 |
DE102004051991A1 (de) | 2006-04-27 |
US7716524B2 (en) | 2010-05-11 |
US7788533B2 (en) | 2010-08-31 |
EP1810140A1 (de) | 2007-07-25 |
JP2008518294A (ja) | 2008-05-29 |
US20090254773A1 (en) | 2009-10-08 |
EP1810139B1 (de) | 2010-08-18 |
EP1810139A1 (de) | 2007-07-25 |
CN100538644C (zh) | 2009-09-09 |
WO2006045754A1 (de) | 2006-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100538645C (zh) | 用于执行计算机程序的方法和计算设备 | |
CN1993679B (zh) | 执行计算机程序的方法、操作***和计算设备 | |
JP5199088B2 (ja) | 少なくとも2つの命令実行部および1つの比較ユニットを備えたコンピュータシステムを制御する方法および装置 | |
US9032258B2 (en) | Safety system challenge-and-response using modified watchdog timer | |
CN100359481C (zh) | 多任务***的异常监控装置及其方法 | |
CN103415840A (zh) | 跨硬件层和软件层的错误管理 | |
CN103370694A (zh) | 重启数据处理*** | |
CN105074656A (zh) | 管理并发谓词表达式的方法和装置 | |
CN101027646A (zh) | 用于处理计算机***上的计算机程序的方法 | |
KR20100010390A (ko) | 마이크로컴퓨터와 마이크로컴퓨터의 제어방법 | |
CN100511165C (zh) | 执行计算机程序的方法、操作***以及计算设备 | |
CN110673975B (zh) | 一种星载计算机软件的安全内核结构及安全运行方法 | |
Mouallem et al. | A fault-tolerance architecture for kepler-based distributed scientific workflows | |
Abdulhameed et al. | Software Fault Tolerance: A Theoretical Overview. | |
CN115312115B (zh) | 闪存芯片挂起功能的验证方法、装置、设备及介质 | |
Braun et al. | Increasing the reliability of single and multi core systems with software rejuvenation and coded processing | |
Ryu et al. | Checkpointing for the reliability of real-time systems with on-line fault detection | |
Kumar et al. | Analysis of a stochastic model on two-unit cold standby hardware-software system considering fault tolerance | |
Sahoo et al. | Backward fault recovery in real time distributed systems of periodic tasks with timing and precedence constraint | |
CN116089164A (zh) | 故障点前滚恢复方法、装置及存储介质 | |
Kumar et al. | Analysis of Stochastic Model on a Two-Unit Hot Standby Combined Hardware-Software System | |
Ryu | Reliability analysis for static checkpointing in embedded real-time systems | |
CN117234787A (zh) | ***级芯片运行状态监控方法及*** | |
Al-Hashimi et al. | Dependability under malicious agreement in n-modular redundancy-on-demand systems | |
Joshi | Reliability and N-version Programming in Software Fault Tolerance |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090909 Termination date: 20171020 |