CN101027646A - 用于处理计算机***上的计算机程序的方法 - Google Patents

用于处理计算机***上的计算机程序的方法 Download PDF

Info

Publication number
CN101027646A
CN101027646A CNA200580032256XA CN200580032256A CN101027646A CN 101027646 A CN101027646 A CN 101027646A CN A200580032256X A CNA200580032256X A CN A200580032256XA CN 200580032256 A CN200580032256 A CN 200580032256A CN 101027646 A CN101027646 A CN 101027646A
Authority
CN
China
Prior art keywords
mistake
computer system
routine
fault identification
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.)
Pending
Application number
CNA200580032256XA
Other languages
English (en)
Inventor
W·普菲菲尔
R·魏伯勒
B·米勒
F·哈特维希
W·哈特
R·安格鲍尔
E·贝尔
T·科特克
Y·科拉尼
R·格梅利希
K·格雷比茨
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 CN101027646A publication Critical patent/CN101027646A/zh
Pending legal-status Critical Current

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/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/0793Remedial or corrective actions
    • 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

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)
  • Debugging And Monitoring (AREA)
  • Retry When Errors Occur (AREA)

Abstract

为了尽可能灵活地处理在处理计算机***(1)上的计算机程序时所出现的差错,并在此保证该计算机***的尽可能高的可用性,本发明推荐,在出现差错时由差错识别单元(5)所生成的差错处理信号被分配了一个标识,根据该标识从一个可预定的差错处理例程集中选择一个差错处理例程,并执行所述被选择的差错处理例程。

Description

用于处理计算机***上的计算机程序的方法
本发明涉及一种用于处理计算机***上的计算机程序的方法,其中所述的计算机***至少包括一个计算单元。所述计算机程序至少包括一个运行时对象(Laufzeitobjekt)。在执行运行时对象时所出现的差错通过一种差错识别单元来识别。在出现一个被识别的差错时,所述差错识别单元生成一个差错识别信号。
本发明还涉及一种计算机***,在该计算机***上可以执行计算机程序。该计算机程序至少包括一个运行时对象。在执行运行时对象时在所述计算机***上所出现的差错可以通过一种差错识别单元来识别。
本发明还涉及一种在计算机***中的差错识别单元,所述计算机***至少具有一个硬件部件并且在该计算机***上可以运行一个运行时对象,其中所述差错识别单元在执行运行时对象期间对所出现的差错进行识别。
此外本发明还涉及一种可以在计算机***上运行的计算机程序以及一种其上存储计算机程序的机器可读的数据载体。
现有技术
在处理计算机上的计算机程序时可能出现差错。据此,可以根据所述差错是否由硬件(处理器、总线***、***设备等)或由软件(应用程序、操作***、BIOS等)引起的来区分所述差错。
在出现差错时还划分为永久差错和瞬时差错。永久差错是经常存在的并且比如基于出错的硬件或出错的编程软件。与之相反,瞬时差错仅仅是暂时出现并从而其重现和预测明显也是比较困难的。在二进制存储、二进制传输和/或二进制处理的数据中,比如由于电磁影响或辐射(阿尔法辐射、中子辐射)改变一些比特而出现瞬时差错。
通常,一个计算机程序被划分为在计算机***上串行或并行执行的多个运行时对象。运行时对象比如是进程、任务或线程。在计算机程序执行期间所出现的差错从而原则上可以被划归到被执行的运行时对象。
对永久差错的一种处理典型地是基于关断计算机***或至少关断单个的硬件部件或子***。然而这所具有的缺点是:由此计算机***或子***的功能性不再可供使用。为了尤其在安全性重要的环境中仍然能够保证可靠的运行,计算机***的所述子***比如是冗余设计的。
瞬时差错常常也通过关断子***来处理。此外已公开的是,在出现瞬时差错时把一个或多个子***关断并重新启动,并比如通过自检而推断计算机程序的一个目前无差错的处理。如果没有识别出新的差错,那么所述子***就继续其运行。在此可以不再继续执行由于差错而中止的任务或此时被处理的运行时对象(所谓前向恢复)。前向恢复比如被应用于实时性的***中。
尤其在非实时性的应用中,已公开的是在计算机程序或运行时对象的可预定的位置设置检查点。如果出现一个瞬时差错并且随之重新启动所述子***,那么该任务在最后被处理的检查点处被再次恢复。这种被称作后向恢复的方法比如被应用于金融市场上为进行交易处理所使用的计算机***中。
所述已公开的用于处理所出现的瞬时差错的方法具有的缺点是,整个计算机***、然而至少子***暂时不可供使用,这可能导致计算机程序处理的延缓以及导致数据丢失。
从而本发明所基于的任务是,尽可能灵活地处理在处理计算机***上的计算机程序时所出现的差错,并在此保证尽可能高的计算机***的可用性。
为了解决该任务,根据开头所述种类的方法,本发明推荐给在出现差错时所生成的差错处理信号分配一个标识,根据该标识从一个可预先给定的差错处理例程集中选择一个差错处理例程,并执行所选择的差错处理例程。
本发明的优点
根据本发明,可以启动一个差错处理的每一个差错识别信号都被分配一个标识。该标识指示出预定的差错处理机制中的哪一个要被采用。从而可以为一个所出现的差错选择出一个均为最佳的差错处理例程,使得可以保持计算机***的最大可用性。
差错识别信号比如可以以一个所谓中断的形式来启动一个差错处理。借助该中断,给计算机***的监控计算机程序处理的单元通知存在一个差错。该监控单元则可以促使差错处理的执行。根据本发明,为了执行差错处理而提供了多个差错处理例程。根据分配给差错识别信号的标识选择并执行一个差错例程。这实现了对差错处理例程的尤其灵活的选择。常常尤其可以选择能够实现计算机***的最大可用性的差错处理例程。
所述差错识别信号可以是一种内部信号。如果所述计算机***比如包括多个计算单元并且所述运行时对象在所述计算单元的至少两个上并行执行,那么就可以由所述差错识别单元来对所述至少两个计算单元的并行产生的结果进行比较。如果所述结果不一致,那么所述差错识别单元就生成一个差错处理信号。如果所述运行时对象在多于两个的计算单元上冗余执行,并且运行时对象的执行中的多数都没有差错,那么就可以符合目的地继续执行计算机程序并忽略有差错的运行时对象的执行。为此给由差错识别单元所生成的差错识别信号分配一个标识,该标识促使所述计算机***选择一个差错处理例程,借助该例程可以实现上述的差错处理。
所述差错处理信号优选是一种外部信号。外部的差错处理信号比如可以由被分配给一个通信***(比如总线***)的一个差错识别单元来生成。在这种情况下,所述差错识别单元可以确定存在传输差错或者确定通信***的失效,并给所生成的差错识别信号附加一个表征被识别差错的标识,或者生成一个包含所述标识的差错识别信号。外部差错识别信号比如也可以由一个存储器单元来生成并描述了一个所谓的奇偶差错。按差错的种类并按照外部差错识别信号的来源可以给所述差错识别信号分配另外一个标识。因为差错处理例程的选择是根据分配给差错识别信号的标识来进行的,所以可以尤其灵活地进行差错处理。尤其在编程时或者在安装一个新的软件部件或一个新的硬件部件时就能确定所述计算机***应当如何处理特定的差错。
根据本发明方法的一个优选的实施方案,表征运行时对象和/或运行时对象的执行的一个量被求得。然后根据所求得的量来生成差错处理信号。这种量比如可以是分配给所述运行时对象的优先级。从而可以另外根据被执行的运行时对象的优先级来执行差错处理。
所述被求得的量优选地描述了直至预定的事件时还可供使用的时长。这种事件比如可以是要处理的运行时对象的通过一个调度程序来进行的切换,或者是直到由该运行时对象所计算的数据必须被提供给另一运行时对象时还可供使用的时长。
表征所述运行时对象的执行的一个量也可以被标记为已经进行的。如果比如在加载该运行时对象之后短时间内出现了差错,那么就可以规定把这整个运行时对象进行再次加载和执行。但如果该运行时对象已经稍微早于可供使用的处理时间末端,比如应当紧急处理另一运行时对象,那么就规定在其处理期间出现差错时就简单地终止运行时对象。
表征所述运行时对象的处理的所述量还可以描述是否已经与另外的运行时对象进行了数据交换、是否通过一个或多个通信***传输了数据或者是否进行了存储器访问。所求得的量则可以在借助差错识别信号所传输的标识中被反映,并从而可以在差错处理例程的选择中被考虑。
本发明的方法优选地应用于车辆、尤其是车辆控制设备、或者安全性重要的***中,比如飞机的控制。在车辆中或者在安全性重要的***中,尤其重要的是可以灵活地处理所出现的差错并从而计算机***尤其可靠地运行并且是高度可用性的。
根据本发明方法的一个优选实施方案,在可预先给定的差错处理例程集中的差错处理例程的至少之一实现了以下差错处理可能性之
-不执行操作:
忽略出现的差错。
-中断运行时对象的执行:
所述运行时对象的执行被中断,并比如替而代之地执行另一运行时对象。
-中断该运行时对象的执行并禁止重新激活该运行时对象:
该运行时对象在其执行期间出现差错时就因此不再被执行。
-重复执行该运行时对象。
-后向恢复:在该运行时对象的执行期间设置检查点并在出现差错时跳回到前一检查点。
-前向恢复:中断该运行时对象的执行并在后面相邻的另一个点处重新继续执行。
-复位:重新启动整个计算机***或一个子***。
这些差错处理例程可以尤其灵活地处理所出现的差错。
本发明的方法优选地用于处理瞬时差错。然而有利的是根据所识别的差错是否是瞬时差错或永久差错来选择差错处理例程。
一个被识别的永久差错比如可以通过如下来进行处理:不再执行所述的运行时对象或者持续地关断一个子***。与之相反,一个被识别的瞬时差错比如可以简单地被忽略或者借助前向恢复来处理。
在本发明方法的一个尤其优选的实施方案中,在计算机***的至少一个计算单元上运行有一个操作***。在此差错处理例程的选择通过该操作***来进行。因为操作***经常对为处理所出现的差错而必要的资源进行访问,所以这能够实现对被识别的差错进行尤其迅速而可靠的处理。比如一种操作***具有一种所谓的调度程序,其中该调度程序判断哪个运行时对象在哪个时间在处理器上被执行。这使得操作***可以尤其迅速地结束一个运行时对象、重新启动该运行时对象或者启动一个差错处理例程来代替该运行时对象。
如果所述计算机***具有多个部件,并且一个部件、比如一个计算单元被识别为失效,那么就可以尤其简单地通过该操作***来选择一个差错处理例程,其中该差错处理例程规定了关断失效的部件或进行自检,这是因为该操作***经常进行各个部件的管理或者能访问管理所述部件的功能单元。
所述任务还通过开头所述种类的一种计算机***如此来得到解决:给由所述差错识别单元在出现差错时所生成的差错处理信号分配一个标识,并且该计算机***具有用于根据该标识从一个可预先给定的差错处理例程集中选择一个可执行的差错处理例程的装置。
所述任务还通过开头所述种类的一种差错识别单元如此来得到解决:所述差错识别单元具有装置以用于根据被识别的差错的至少一个特性来产生一个差错识别信号,其中该差错识别信号可以被分配一个标识,该标识能够实现从一个可预先给定的差错处理例程集中选择一个差错处理例程。
所述被识别的差错的至少一个特性优选地确定了所述被识别的差错是否是一个瞬时的或永久的差错、该差错是否取决于一个出错的运行时对象或一个出错的软件部件或一个出错的硬件部件或一个出错的子***,和/或在差错出现期间执行了哪个运行时对象。
在计算机***上通常可能并行、准并行或串行地运行多个计算机程序。在根据本发明的计算机***上所运行的计算机程序比如是一种所谓的应用程序,借助该应用程序来处理应用数据。这种计算机程序至少包含一个运行时对象。
此外在本发明中尤其有意义的是以至少一个计算机程序的形式来实现本发明的方法。在此所述的至少一个计算机程序在该计算机***上,尤其在一个计算机设备上是可执行的,并且被编程用于实施本发明的方法。在这种情况下,本发明的方法通过所述计算机程序来实现,如此使得该计算机程序以与该计算机程序适于执行的方法相同的方式体现了本发明。该计算机程序优选地被存储在机器可读的数据载体上。作为机器可读的数据载体比如可以采用随机存取存储器、只读存储器、闪存、DVD盘或CD盘。
所述计算机程序有利地作为一种操作***而被设计用于实施本发明的方法。
附图
本发明的其他应用可能性和优点通过附图中所描述的实施例的下列描述来给出。其中:
附图1简要示出了用于实施本发明方法的计算机***的部件;
附图2简要示出了在一个第一实施方案中本发明方法的流程图;
附图3简要示出了在一个第二实施方案中本发明方法的流程图;
实施例的说明
在附图1中简要示出了适合于实施本发明方法的一种计算机***1。该计算机***1具有两个计算单元2、3。该计算单元2、3比如可以是完整的处理器(CPU)(所谓的双核构造)。一个双核构造能够如此冗余地运行所述两个计算单元2、3,使得一个进程或一个运行时对象可以在这两个计算单元2、3上几乎同时地被执行。所述计算单元2、3也可以是算术逻辑单元(ALU)(所谓的双ALU构造)。
所述两个计算单元2、3被分配有一个公共的程序存储器4和一个差错识别单元5。在所述程序存储器4中存储有多个可执行的运行时对象。所述差错识别单元5比如被构造为比较器,该比较器可以对处理器2和3所计算的值进行比较。
为了对计算机***1实施基本的控制,在该计算机***1上运行了一个操作***6。该操作***6具有一个调度程序7和一个接口8。所述调度程序7对由所述计算单元2、3提供的计算时间进行管理,其方式是由该调度程序来决定哪个进程何时或哪个运行时对象何时在计算单元2和3的哪一个上被执行。所述接口8能够使所述差错识别单元5借助一个差错识别信号把被识别的差错通知给所述操作***6。
所述操作***6对存储区域9进行存取。该存储区域9为每个差错识别信号包含有分配给该差错识别信号的一个标识或多个标识。所述存储器区域9和所述程序存储器4不但可以被映射到同一个存储器单元上,而且还可以被映射到不同的存储器单元上。所述一个或多个存储器单元比如可以是分配给计算单元2或计算单元3的工作存储器或缓存。然而所述存储器区域9也尤其可以是同一存储器区域,在所述计算机***1上的处理之前或期间,在该区域上存储所述操作***6。
所述计算机***1的其他方案中的多数是可推荐的。比如该计算机***1可能仅包含一个计算单元。于是,比如可以通过所述差错识别单元5借助一种真实性检查来产生在处理一个运行时对象时的差错。
尤其可以在所述计算单元2、3上多次接连着执行同一个运行时对象。那么所述差错识别单元5就可以对分别产生的结果进行比较,并且在所述结果相互有偏差的情况下推断出运行时对象或比如其上执行所述运行时对象的计算单元2、3的硬件部件存在差错。
此外还可以推荐的是所述计算机***1包含多于两个的计算单元2、3。那么一个运行时对象就可以比如在三个现有的计算单元2、3上冗余地执行。通过比较如此所获得的结果,所述差错识别单元5就可以识别差错的存在。
所述计算机***1尤其可以包含有其他的部件。比如该计算机***1可以包含一个总线***来用于在各个部件之间交换数据。此外该计算机***1还包含有通过另一独立的操作***来控制的计算单元。所述计算机***1尤其可以包含多个不同的存储器单元,其中所述程序和/或数据存储于该存储器单元上,或者在计算机***1运行期间被读出和/或被写入。
在附图2中简要示出了本发明方法的流程图。所述方法开始于步骤100。在步骤101中所述调度程序7使计算单元2、3从程序存储器4中读出一个运行时对象并执行它。
在步骤102中,验证在处理所述运行时对象时是否存在差错。这比如通过所述差错识别单元5来进行,其中所述差错识别单元对由计算单元2、3冗余计算的结果进行比较。为了识别差错此外还可以进行硬件测试,其中这种硬件测试借助固定预定的例程来验证硬件的正确的作用方式。如果没有差错,那么就分支返回到步骤101,并继续执行所述运行时对象,或者加载另一运行时对象并在所述计算单元2、3中执行。
但是如果在步骤102中识别了一个差错,那么在步骤103中由所述差错识别单元5生成一个差错识别信号。
所述差错识别单元5在此根据所述被识别的差错来生成所述的差错识别信号。比如在一个被识别的硬件差错的情况下生成一个不同于被识别的软件差错时的差错识别信号。所述差错识别单元5同样也可以区分所述被识别的差错是否是一个瞬时差错或一个永久差错。此外还可以根据其上出现差错或其上运行出错的运行时对象的硬件部件来生成所述的差错识别信号。尤其可以推荐的是,根据所述出错的运行时对象或出错的硬件部件是否运行于一个安全性苛刻的或时间苛刻的环境中来生成所述的差错识别信号。
另外在步骤103中,所述差错识别信号由所述差错识别单元5比如通过所述接口8而被传输给所述操作***6。此外还可推荐的是,所述差错识别信号以中断的形式被传输给所述计算单元2、3之一。于是所述计算单元2、3中断当前的处理并负责把所述差错识别信号比如通过所述接口8继续传输给所述操作***6。
在步骤104中所述差错识别信号的标识被求出。为此比如可以在所述存储器区域9中存储一个表格,在该表格中为每个差错识别信号存储有被分配给所述差错识别信号的一个或多个标识。所述标识比如表明了由所述操作***6根据所获得的差错识别信号而应当选择的差错处理例程。
然而也可以规定所述标识被存储在被分配给各计算单元2、3的一个存储器区域中,比如缓存或寄存器。在这种情况下,操作***6可以从各个计算单元2、3请求差错识别信号的标识。
在可选步骤105中所述操作***6求得出错的运行时对象或出错的硬件部件。该信息比如可以通过所述调度程序7来获得。
此外还可以直接从所述差错识别信号来提取该信息。比如如果所述差错识别单元5已经识别出了出错的硬件部件或出错的运行时对象并且所述差错识别信号根据所述硬件部件如此来被生成,即被分配给所述差错识别信号的标识能够说明所涉及的部件,那么上述方法是可行的。为此比如可以在存储于所述存储器区域9中的表格中借助合适的符号来为每个差错识别信号给出出错的部件,其中是这些出错的部件可能引起了所获得的差错识别信号的生成。那么借助所获得的差错识别信号就可以推断出错的硬件部件或出错的运行时对象。
在步骤106中根据所述差错识别信号以及被分配给该差错识别信号的标识来选择一个差错处理例程。在此被分配给所述差错识别信号的所述标识可以明确地确定所述要选择的差错处理例程,并从而确定了要被执行的差错处理机制。所述标识比如可以确定所述出错的运行时对象应当被中止并不应当被再次激活。该标识同样也可以确定应当返回到一个预先给定的检查点上并应当从那里重新执行该运行时对象(后向恢复)。该标识此外还可以确定进行前向恢复,重复执行所述运行时对象或者应当不再进行其他的差错处理。
所述标识还可以确定应当重新启动一个硬件部件,比如一个计算单元2、3或一个总线***,应当实施一种自检或应当关断该计算机***的一个相应硬件部件或一个子***。
如果从由差错识别单元5传输至操作***6的所述差错识别信号中可提取关于所出现差错的种类的信息,那么这是尤其有利的。这些种类比如可以说明是否涉及一个瞬时差错或一个永久差错。
在此比如可以给所述运行时对象分配多个标识。一个第一标识在此可以描述在出现永久差错时要执行的差错处理例程。一个第二标识相反可以表示在出现瞬时差错时要执行的差错处理例程。因此实现了更灵活的差错处理。
尤其如果所述计算机***1被构造为多处理器***或多ALU***,那么有利的是,根据在计算单元2、3或ALU中的一个或多个上是否执行了一个恰好被执行的运行时对象,以及根据在计算单元2、3中的一个或多个上是否出现所述差错,来进行差错处理例程的选择。该信息比如可以从所述差错识别信号中提取。所述运行时对象仅仅在一个计算单元2、3上错误地执行或者所述运行时对象在多个计算单元2、3上错误地执行,针对这种情况所述差错识别信号在此可以具有不同的标识。
在步骤107中进行差错处理,其中通过所述操作***6选择的差错处理例程被执行。根据所选择的差错处理例程,所述操作***比如可以促使所述调度程序7中止当前在计算单元2、3上执行的运行时对象、丢弃所有的计算值并重新启动该运行时对象。
在步骤108该方法结束。
在附图3中借助流程图简要地示出了本发明方法的另一实施方案,其中在选择要被执行的差错处理例程时考虑了其他的量。
所述方法开始于步骤200。步骤201至205可以对应于附图2中所示出和描述的步骤101至105。
在步骤206中求得表征所述运行时对象或运行时对象的执行的量。表征所述运行时对象的一个量比如可能描述了分配给该运行时对象的安全重要性。表征所述运行时对象的一个量此外也可能描述由当前的运行时对象所计算出的量是否以及是哪些其他的运行时对象所需要的,以及由该当前的运行时对象所计算出的量是否以及与哪些其他的运行时对象有关。从而可以描述运行时对象相互之间的依赖关系。
表征运行时对象的执行的所述量此外还描述了在出现差错时所述运行时对象是否已经进行了存储器访问,所述差错是否在加载所述运行时对象之后很快就产生,由所述运行时对象所计算出的量是否急需地被其他运行时对象所需要,和/或用于执行该运行时对象的还可供使用的时间段有多大。
这类量可能在选择差错处理例程时被尤其有利地考虑。如果比如没有足够的时间来重新执行整个运行时对象,那么就可以规定执行后向恢复或前向恢复。这样就实现了根据描述还可供使用的时间的所述量来选择各个差错处理例程。
在步骤207中确定是否存在一个永久差错或一个瞬时差错。为此比如可以引入差错计数器,所述差错计数器描述了在执行一个确定的运行时对象时一个差错有多频繁地出现。如果该差错特别频繁或者甚至总是出现,那么就可以认为是一个永久差错。
此外还可以给一个确定的硬件部件或计算机***1的一个子***(也即比如一个计算单元2、3或一个总线***)分配一个差错计数器。如果比如确定了在计算机***1的一个计算单元2、3上尤其多的运行时对象被出错地执行,或者不能尤其频繁地执行,那么就可以推断存在一个永久差错、比如一个失效的硬件。
在步骤208中选择一个差错处理例程。为此在步骤205至207中考虑所求得的量、尤其是一个或多个分配给出错的差错识别信号的标识、表征所述运行时对象或运行时对象的执行的一个或多个量、以及所出现的差错的种类。
所述差错处理例程比如通过所述操作***6来选择。这种选择可以借助前述的量以判定树的形式来进行。
在步骤209中执行差错处理并在步骤210中该方法结束。
从而借助本发明的方法可以在编程或执行或安装所述计算机***1上的差错识别单元5时确定:在出现一个确定的差错时应当执行哪个差错处理例程。这实现了尤其灵活的并且与被识别的差错种类相匹配的差错处理。在此根据本发明可以给一个运行时对象分配多个标识。从而可以更灵活地设计差错处理例程的选择。
优选地为了选择差错处理例程而可以考虑表征差错种类(瞬时/永久)的、表征运行时对象自身的或表征运行对象的执行的一个量。
此外还可以在选择差错处理例程时考虑由差错识别单元5求得的信息,比如在出现差错时其上执行所述运行时对象的计算单元2、3的身份。在此可推荐的是,一个或多个硬件部件或者计算单元2、3中的一个或多个是安全性重要的。如果在尤其是安全性重要的一个计算单元2、3上出现了差错,那么就可以规定:选择一个不同于在较低安全性重要的一个计算单元2、3上出现差错时该同一运行时对象被执行时的差错处理例程。从而可以在所述计算机***1上进行更灵活的差错处理。
在步骤107或209中,在执行差错处理期间,此外还可以验证比如由所述差错处理例程所促使的运行时对象的重新执行或者重新启动的硬件部件的重新运行是否再次导致一个差错。在这种情况下可以规定重新选择一个差错处理例程,然而这次是选择另一差错处理例程。在这种情况下比如可以规定关断整个***或一个子***。
除了本发明方法的借助附图2和3中的流程图所述的实施方案之外,还可以考虑其他的实施方案。尤其可以改变各个步骤的顺序、取消一些步骤或补充新的步骤。
如果比如在选择或选择差错处理例程时明确地既不必考虑参与差错生成的硬件部件,也即比如所述总线***、存储器单元或计算单元2、3之一,也不必考虑在出现差错期间或之前所执行的软件部件,也即比如在一个计算单元上运行的运行时对象,那么就可以取消步骤105或步骤205。如果所产生的差错识别信号已经清楚地指向一个硬件部件和/或一个软件部件,那么所述步骤尤其不是必要的。
本发明的方法可以以极不同的方式来实现或被编程并在所述计算机***1上实施。在此尤其应考虑的是可供使用的编程环境、以及基础计算机***1的性能、以及其上所运行的操作***6。
此外还可以以极不同的方式来表示差错识别信号、分配给差错识别信号的标识、硬件部件或软件部件。比如借助字母-数字符号(所谓字符串)来表示硬件部件和软件部件。被分配给差错识别信号的标识比如可以通过被分配给要被选择的差错处理例程的指示结构(所谓指针)来实现。这比如允许尤其方便地调用所述被选择的差错处理例程。在此可推荐的是,把诸如能够标明出错的硬件部件或软件部件的信息等其他信息以所谓变量的形式在调用所述差错处理例程时转交给该差错处理例程。

Claims (19)

1.用于处理计算机***上(1)的计算机程序的方法,其中所述计算机程序至少包含一个运行时对象,并且其中在执行该运行时对象时所出现的差错通过一种差错识别单元(5)来识别,其特征在于,所述差错识别单元(5)在出现差错时生成一个差错处理信号,一个标识被分配给所述差错处理信号,根据该标识从一个可预先给定的差错处理例程集中选择一个差错处理例程,并执行所述的被选择的差错处理例程。
2.根据权利要求1或2所述的方法,其特征在于,所述差错处理例程是一个外部信号。
3.根据前述权利要求之一所述的方法,其特征在于,求得至少一个表征所述运行时对象和/或所述运行时对象的执行的量,并根据所求得的至少一个量来生成所述的差错处理信号。
4.根据权利3所述的方法,其特征在于,所述被求得的量描述了直至一个预定事件时还可供使用的时长。
5.根据前述权利要求之一所述的方法,其特征在于,所述计算机***(1)包含多个计算单元(2、3),所述运行时对象在所述计算单元(2、3)的至少两个上并行地执行,对所述至少两个计算单元(2、3)的并行产生的结果进行比较,并且如果所述结果不相符就生成一个差错处理信号。
6.根据前述权利要求之一所述的方法,其特征在于,该方法应用于车辆、尤其是车辆控制设备中。
7.根据前述权利要求之一所述的方法,其特征在于,该方法应用于安全性重要的***中。
8.根据前述权利要求之一所述的方法,其特征在于,在所述预定的差错处理例程集中的至少一个差错处理例程实现了下列差错处理可能性之一:
a.不执行操作;
b.中断所述运行时对象的执行;
c.中断所述运行时对象的执行并禁止重新激活该运行时对象;
d.重复执行所述运行时对象;
e.后向恢复;
f.前向恢复;
g.复位。
9.根据前述权利要求之一所述的方法,其特征在于,所出现的差错是一个瞬时差错。
10.根据前述权利要求之一所述的方法,其特征在于,差错处理例程的选择另外还根据所述被识别的差错是否是一个瞬时差错或一个永久差错来进行。
11.根据前述权利要求之一所述的方法,其特征在于,在所述计算机***(1)的至少一个计算单元(2、3)上运行一个操作***(6),并且通过该操作***(6)来进行差错处理例程的选择。
12.能在计算机***(1)上运行的计算机程序,其特征在于,如果该计算机程序在所述计算机***(1)运行,那么它就实施根据权利要求1至11之一所述的方法。
13.根据前述权利12所述的计算机程序,其特征在于,该计算机程序被构造为一个操作***(6)。
14.其上存储有在计算机***(1)上可执行的计算机程序的机器可读的数据载体,其特征在于,如果该计算机程序在所述计算机***(1)运行,那么它就实施根据权利要求1至11之一所述的方法。
15.其上可执行计算机程序的计算机***(1),其中所述计算机程序至少包含一个运行时对象,其中该计算机***(1)包含有一个差错识别单元(5)来用于识别在该运行时对象执行期间所出现的差错,其特征在于,在出现差错时通过差错识别单元(5)所生成的一个差错处理信号被分配有一个标识,并且该计算机***(1)具有装置来用于从可预定的差错处理例程集中根据所述标识来选择一个可执行的差错处理例程。
16.根据前述权利15所述的计算机***(1),其特征在于,该计算机***(1)具有一个计算机程序来用于根据权利要求1至11之一所述的方法选择一个差错处理例程。
17.根据前述权利16所述的计算机***(1),其特征在于,所述计算机程序被构造为操作***(6)。
18.在计算机***(1)中的差错识别单元(5),其中该计算机***具有至少一个硬件部件,并且该计算机***上可运行至少一个运行时对象,其中所述差错识别单元(5)识别在执行一个运行时对象时出现的差错,其特征在于,该差错识别单元(5)具有装置以用于根据被识别的差错的至少一个特性来生成一个差错识别信号,其中可以给所述差错识别信号分配一个标识,该标识能够实现从一个可预定的差错处理例程集中选择一个差错处理例程。
19.根据前述权利18所述的差错识别单元(5),其特征在于,所述的被识别的差错的至少一个特性给出了:该被识别的差错是否是一个瞬时差错或一个永久差错,该差错是否取决于一个出错的运行时对象或一个出错的硬件部件,和/或在出现该差错时执行了哪个运行时对象。
CNA200580032256XA 2004-09-24 2005-08-17 用于处理计算机***上的计算机程序的方法 Pending CN101027646A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102004046288A DE102004046288A1 (de) 2004-09-24 2004-09-24 Verfahren zur Abarbeitung eines Computerprogramms auf einem Computersystem
DE102004046288.7 2004-09-24

Publications (1)

Publication Number Publication Date
CN101027646A true CN101027646A (zh) 2007-08-29

Family

ID=35311372

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA200580032256XA Pending CN101027646A (zh) 2004-09-24 2005-08-17 用于处理计算机***上的计算机程序的方法

Country Status (6)

Country Link
US (1) US20080133975A1 (zh)
EP (1) EP1805617A1 (zh)
JP (1) JP2008513899A (zh)
CN (1) CN101027646A (zh)
DE (1) DE102004046288A1 (zh)
WO (1) WO2006032585A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113989023A (zh) * 2021-10-29 2022-01-28 中国银行股份有限公司 差错交易的处理方法及装置

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102004046611A1 (de) 2004-09-25 2006-03-30 Robert Bosch Gmbh Verfahren zur Abarbeitung eines Computerprogramms auf einem Computersystem
US7962798B2 (en) * 2006-04-17 2011-06-14 The Trustees Of Columbia University In The City Of New York Methods, systems and media for software self-healing
US8924782B2 (en) 2007-01-26 2014-12-30 The Trustees Of Columbia University In The City Of New York Systems, methods, and media for recovering an application from a fault or attack
JP4458119B2 (ja) * 2007-06-11 2010-04-28 トヨタ自動車株式会社 マルチプロセッサシステム及びその制御方法
US8095829B1 (en) * 2007-11-02 2012-01-10 Nvidia Corporation Soldier-on mode to control processor error handling behavior
JP4571996B2 (ja) * 2008-07-29 2010-10-27 富士通株式会社 情報処理装置及び処理方法
FR2986879B1 (fr) * 2012-02-15 2014-10-17 Airbus Operations Sas Procede et systeme de detection d'anomalies a solutionner dans un aeronef
GB202019527D0 (en) 2020-12-10 2021-01-27 Imagination Tech Ltd Processing tasks in a processing system

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5155729A (en) * 1990-05-02 1992-10-13 Rolm Systems Fault recovery in systems utilizing redundant processor arrangements
JPH0635758A (ja) * 1992-07-20 1994-02-10 Fujitsu Ltd プログラム監視制御装置
US5371742A (en) * 1992-08-12 1994-12-06 At&T Corp. Table driven fault recovery system with redundancy and priority handling
DE4439060A1 (de) * 1994-11-02 1996-05-09 Teves Gmbh Alfred Mikroprozessoranordnung für ein Fahrzeug-Regelungssystem
JPH09120368A (ja) * 1995-10-25 1997-05-06 Unisia Jecs Corp Cpu監視装置
US5928369A (en) * 1996-06-28 1999-07-27 Synopsys, Inc. Automatic support system and method based on user submitted stack trace
US6012148A (en) * 1997-01-29 2000-01-04 Unisys Corporation Programmable error detect/mask utilizing bus history stack
DE19720618A1 (de) * 1997-05-16 1998-11-19 Itt Mfg Enterprises Inc Mikroprozessorsystem für Kfz-Regelungssysteme
JPH11259340A (ja) * 1998-03-10 1999-09-24 Oki Comtec:Kk コンピュータの再起動制御回路
US6948092B2 (en) * 1998-12-10 2005-09-20 Hewlett-Packard Development Company, L.P. System recovery from errors for processor and associated components
US6393582B1 (en) * 1998-12-10 2002-05-21 Compaq Computer Corporation Error self-checking and recovery using lock-step processor pair architecture
US6366980B1 (en) * 1999-06-04 2002-04-02 Seagate Technology Llc Disc drive for achieving improved audio and visual data transfer
US6615374B1 (en) * 1999-08-30 2003-09-02 Intel Corporation First and next error identification for integrated circuit devices
US6625749B1 (en) * 1999-12-21 2003-09-23 Intel Corporation Firmware mechanism for correcting soft errors
JP2001357637A (ja) * 2000-06-14 2001-12-26 Sony Corp 情報再生装置、情報処理方法及び情報記録媒体
US6950978B2 (en) * 2001-03-29 2005-09-27 International Business Machines Corporation Method and apparatus for parity error recovery
US7194671B2 (en) * 2001-12-31 2007-03-20 Intel Corporation Mechanism handling race conditions in FRC-enabled processors
US20040078650A1 (en) * 2002-06-28 2004-04-22 Safford Kevin David Method and apparatus for testing errors in microprocessors
US6993675B2 (en) * 2002-07-31 2006-01-31 General Electric Company Method and system for monitoring problem resolution of a machine
US7251755B2 (en) * 2004-02-13 2007-07-31 Intel Corporation Apparatus and method for maintaining data integrity following parity error detection
US7263631B2 (en) * 2004-08-13 2007-08-28 Seakr Engineering, Incorporated Soft error detection and recovery

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113989023A (zh) * 2021-10-29 2022-01-28 中国银行股份有限公司 差错交易的处理方法及装置

Also Published As

Publication number Publication date
EP1805617A1 (de) 2007-07-11
WO2006032585A1 (de) 2006-03-30
DE102004046288A1 (de) 2006-03-30
US20080133975A1 (en) 2008-06-05
JP2008513899A (ja) 2008-05-01

Similar Documents

Publication Publication Date Title
CN101027646A (zh) 用于处理计算机***上的计算机程序的方法
US11611445B2 (en) Changing smart contracts recorded in block chains
CN101027647B (zh) 在计算机***上执行计算机程序的方法
CN101243407B (zh) 用于控制计算器***的方法和装置
EP0505706B1 (en) Alternate processor continuation of the task of a failed processor
US6920581B2 (en) Method and apparatus for functional redundancy check mode recovery
US6792560B2 (en) Reliable hardware support for the use of formal languages in high assurance systems
CN1993679B (zh) 执行计算机程序的方法、操作***和计算设备
CN102841828B (zh) 逻辑电路中的故障检测和减轻
US7496738B2 (en) Method of automatic control of the execution of a program by a microprocessor
CN103140841A (zh) 保护存储器的部分的方法和装置
JP2005166057A (ja) 障害検出コンピュータシステム
CN112015599A (zh) 错误恢复的方法和装置
CN1950775B (zh) 用于程序执行期间的入侵检测的方法,设备和计算机***
Esposito et al. COTS-based high-performance computing for space applications
CN100538644C (zh) 执行计算机程序的方法、计算设备
JP4754635B2 (ja) 制御フロー保護機構
CN110673975B (zh) 一种星载计算机软件的安全内核结构及安全运行方法
US20170351577A1 (en) Method and apparatus for managing mismatches within a multi-threaded lockstep processing system
CN100511165C (zh) 执行计算机程序的方法、操作***以及计算设备
US8458790B2 (en) Defending smart cards against attacks by redundant processing
CN114637988A (zh) 一种面向二进制的函数级软件随机化方法
Maghsoudloo et al. CCDA: Correcting control-flow and data errors automatically
Luo et al. Platform software reliability for cloud service continuity-challenges and opportunities
CN103425459A (zh) 用于数据处理的方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20070829