(57)【要約】本発明は、計算装置（２０）上、特にマイクロプロセッサ（２２）上でコンピュータプログラム（２３）を処理する方法に関する。コンピュータプログラムは、例えばタスクとして形成される複数のプログラムオブジェクトを有する。コンピュータプログラムの処理中に、過渡的エラーおよび恒久的エラーが検出される。過渡的エラーが発生すると、可能な限り短いエラー許容時間内で、計算機システムの機能能力および機能安全性が再び回復されるように構造的に処理する。このため、エラーが検出されると、既に処理中である少なくとも１つのプログラムオブジェクトが規定の状態に移行されて、その状態から新たに開始される。プログラムオブジェクトは、例えばコンピュータプログラムのランタイムオブジェクト、いわゆるタスクである。本発明の主旨において、エラー発生時に処理中または処理済みの１つまたは複数のタスクが、新たに開始され実行されうる。【選択図】図２
2008508626.tif 000002
【特許請求の範囲】
【請求項１】
計算装置（２０）上、特にマイクロプロセッサ（２２）上でコンピュータプログラム（２３）を処理する方法であって、前記コンピュータプログラム（２３）が複数のプログラムオブジェクトを有し、かつ、前記計算装置（２０）上で前記コンピュータプログラム（２３）を処理中にエラーが検出される、前記方法において、
エラーが検出されると、既に処理中である少なくとも１つのプログラムオブジェクトが規定された状態に移行され、その状態から新たに開始されることを特徴とする、計算装置上でコンピュータプログラムを処理する方法。
【請求項２】
前記プログラムオブジェクトが前記コンピュータプログラム（２３）のタスクとして形成されており、前記エラーが検出されると、少なくとも１つのタスクが新たに実行されることを特徴とする、請求項１に記載の方法。
【請求項３】
前記エラーが検出された時点で実行されていたプログラムオブジェクトが、新たに実行されることを特徴とする、請求項１または２に記載の方法。
【請求項４】
前記プログラムオブジェクトの処理中、特に前記プログラムオブジェクトの処理の開始時に、前記プログラムオブジェクトの少なくとも１つの規定された状態が形成され、記憶されることを特徴とする、請求項１〜３のいずれか１項に記載の方法。
【請求項５】
エラー検出のために、前記計算装置（２０）に対して冗長に作動する他の計算装置が使用されることを特徴とする、請求項１〜４のいずれか１項に記載の方法。
【請求項６】
前記方法が車両で、特に車両制御装置で使用されることを特徴とする、請求項１〜５のいずれか１項に記載の方法。
【請求項７】
少なくとも１つのプログラムオブジェクトが新たに実行された際に同一のエラーが新たに発生した場合には、恒久的エラーが推定される（１２）ことを特徴とする、請求項１〜６のいずれか１項に記載の方法。
【請求項８】
少なくとも１つのプログラムオブジェクトの繰返回数が、予め設定可能な値に制限されることを特徴とする、請求項７に記載の方法。
【請求項９】
少なくとも１つのプログラムオブジェクトの繰返回数が、予め設定可能な値に動的に制限されることを特徴とする、請求項８に記載の方法。
【請求項１０】
少なくとも１つのプログラムオブジェクトの繰返回数が、スケジューリング上で残されている空き時間に応じて、予め設定可能な値に動的に制限されることを特徴とする、請求項９に記載の方法。
【請求項１１】
前記コンピュータプログラム（２３）の処理中、プログラムオブジェクトの実行前に、前記プログラムオブジェクトの処理に必要とされる変量の値が記憶される（２）ことを特徴とする、請求項１〜１０のいずれか１項に記載の方法。
【請求項１２】
一周期で周期的に処理すべきコンピュータプログラム（２３）において、所定のプログラムオブジェクト上でエラーが検出されると、前記コンピュータプログラム（２３）の前記周期内で予め設定可能なチェックポイントにジャンプバックされることを特徴とする、請求項１〜１０のいずれか１項に記載の方法。
【請求項１３】
前記コンピュータプログラム（２３）の処理中、前記チェックポイントでのプログラムオブジェクトの実行前にのみ、前記プログラムオブジェクトに含まれる全ての入力変量が記憶されることを特徴とする、請求項１２に記載の方法。
【請求項１４】
エラー検出後のプログラムオブジェクトの新たな実行に際して、前記プログラムオブジェクトのために記憶されている入力変量によって、前記プログラムオブジェクトが新たに実行されることを特徴とする、請求項１１または１３に記載の方法。
【請求項１５】
計算装置（２０）上、特にマイクロプロセッサ（２２）上で実行可能なオペレーティングシステム（２５）において、
前記オペレーティングシステム（２５）が、請求項１〜１４のいずれか１項に記載の方法を実施するようにプログラミングされており、前記計算装置（２０）上で実行されると、請求項１〜１４のいずれか１項に記載の方法を実施することを特徴とする、駆動システム。
【請求項１６】
複数のプログラムオブジェクトを有するコンピュータプログラム（２３）を処理する計算装置（２０）であって、その場合に前記計算装置（２０）上で前記コンピュータプログラム（２３）の処理中にエラーを検出するエラー検出機構を有する、前記計算装置（２０）において、
エラー処理機構を有しており、前記エラー検出機構によってエラーが検出されると、既に処理中である少なくとも１つのプログラムオブジェクトが、規定された状態に移行されて、その状態から新たに開始されるように促すことを特徴とする、計算装置。
【請求項１７】
エラーが検出されると、前記少なくとも１つのプログラムオブジェクトを新たに開始させるトリガーロジックを、前記エラー処理機構が備えることを特徴とする、請求項１６に記載の計算装置。
【請求項１８】
前記計算装置（２０）上で、リアルタイムオペレーティングシステム（２５）が実行されることを特徴とする、請求項１６または１７に記載の計算装置。
【請求項１９】
マイクロプロセッサ（２２）を備えることを特徴とする、請求項１６〜１８のいずれか１項に記載の計算装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算装置上、特にマイクロプロセッサ上でコンピュータプログラムを処理する方法に関する。コンピュータプログラムは、複数のプログラムオブジェクトを有する。本方法においては、計算装置上でコンピュータプログラムを処理中にエラーが検出される。
【０００２】
本発明は、さらに、計算装置上、特にマイクロプロセッサ上で実行可能なオペレーティングシステムに関する。
【０００３】
そして、本発明は、複数のプログラムオブジェクトを有するコンピュータプログラムを処理する計算装置にも関する。計算装置は、計算装置上でコンピュータプログラムを処理中にエラーを検出するエラー検出機構を備える。
【背景技術】
【０００４】
計算装置上でコンピュータプログラムを処理する際には、いわゆる過渡的エラーが発生しうる。半導体モジュール（いわゆるチップ）上の構造がますます小さくなる一方で、信号のクロック速度がますます大きく、信号の電圧がますます低くなるので、過渡的エラーがますます頻繁に発生する。過渡的エラーは、恒久的エラーと異なり、一時的にのみ発生し、通常ある程度の時間が経てば自ずと消滅する。過渡的エラーでは、幾つかのビットがエラーとなるのみで、計算装置自体が恒久的に損傷することはない。過渡的エラーは、例えば電磁的な影響、アルファ粒子または中性子のような種々の原因に起因しうる。
【０００５】
通信システムでは、今日既に、エラー処理の重点が過渡的エラーに置かれている。通信システム（例えばコントローラエリアネットワーク：ＣＡＮ）では、エラーが検出されると、エラーを伴って伝達されたデータを新たに送信することが知られている。さらに、通信システムでエラーカウンタを使用することが知られており、エラーカウンタは、エラーが検出されるとインクリメントされ、正しく送信されるとデクリメントされて、所定値を上回ると直ぐにデータの送信を阻止する。
【発明の開示】
【０００６】
しかし、コンピュータプログラムを処理する計算装置では、基本的に恒久的エラーのみを対象としてエラー処理が行われる。過渡的エラーの考慮は、エラーカウンタのインクリメントと、場合によってはデクリメントに限定される。エラーカウンタの値がメモリに記憶され、オフラインで、すなわち、例えば車両制御装置として形成される計算装置では修理工場で待機中に、診断情報またはエラー情報として読出される。この場合に初めて、エラーに応じた対応がなされうる。
【０００７】
すなわち、エラーカウンタを用いたエラー処理は、特に安全上重要なシステムに要求される短いエラー許容時間内にエラー処理を許容しない一方で、エラー許容時間内にコンピュータプログラムを再び規定通りに処理するような、構造的なエラー処理をも許容しない。代替的に、従来技術におけるコンピュータプログラムは、エラーカウンタが所定の値を上回ると、非常走行オペレーションに切替えられる。これは、コンピュータプログラムのエラーを伴う部分の代りに、他の部分が処理されて、その方法で求められた代替値が後続する他の処理に使用されることを意味する。代替値は、例えば、他の変量を用いて生成されうる。代替的に、コンピュータプログラムのエラーを伴う部分によって計算された結果を誤りとして棄却して、他の計算用には非常走行オペレーション用に設けられた標準値を使用しうる。よって、計算装置上で実行されるコンピュータプログラムの過渡的エラーを処理する既知の方法は、大抵のエラーの過渡的な性質を系統的かつ構造的に取扱うことを許容しない。
【０００８】
従来技術として、さらに、計算装置上でコンピュータプログラムを処理する際に発生した過渡的エラーを、計算装置の完全に新たな開始によって除去することが知られている。この解決策も、実際には満足できるものではない。というのは、コンピュータプログラムのある処理より従前の過程（Verlauf）で得られた変量が失われてしまい、新たな開始の間に計算装置が所定の機能を満たせないからである。これは、特に安全上重要なシステムでは受け容れられない。
【０００９】
そして、計算装置上で処理されるコンピュータプログラムの過渡的エラーに対するエラー処理として、コンピュータプログラムを数クロックのみ後退させて、コンピュータプログラムの個々の機械命令を繰返すことも知られている。この方法は、マイクロロールバックとも称される。この既知の方法では、オブジェクトのためにのみマシンレベル（Maschineneben；クロック、機械命令）にジャンプバック（zurueckgesprungen）される。これは、マシンレベル上でそれに応じたハードウェア支援を必要とし、計算装置の側における多大な労力をもたらす。この既知の方法は、純粋なソフトウェアによっては実施不能である。
【００１０】
従来技術として既知のエラー処理機構は、計算装置上でコンピュータプログラムを処理する際に発生する過渡的エラーに適切な方法で対応できない。
【００１１】
本発明の課題は、計算機システム上でコンピュータプログラムを処理中に過渡的エラーが発生すると、そのエラーを可能な限り短いエラー許容時間内で、計算機システムの完全な機能能力および機能安全性が再び回復されるように構造的に処理することにある。
【００１２】
本課題を解決するために、前述した種類の方法に基づいてエラーが検出されると、既に処理中である少なくとも１つのプログラムオブジェクトが規定の状態に移行されて、その状態から新たに開始されることが提案される。
【００１３】
（発明の利点）
新たに開始されるプログラムオブジェクトは、エラーが検出された際に完全に処理されている必要はない。本発明の主旨において、エラー検出の時点までに完全に処理されていないが、既に処理が開始されているプログラムオブジェクトもまた、エラーが発生した際に新たに開始されうる。すなわち、本発明によれば、過渡的エラーまたは恒久的エラーが発生した際には、少なくとも１つのオペレーティングシステムのオブジェクトが新たに実行される。マイクロロールバックの利点は、特にプログラムオブジェクトの繰返しを非常に僅かなハードウェア支援によって実現しうることにある。プログラムオブジェクトの新たな実行に必要とされる情報（例えばプログラムオブジェクトの入力変量）を記憶可能なように、たかだか付加的なメモリ領域が必要とされるのみである。本発明に基づく方法の本質的な管理（Verwaltung）は、計算装置のオペレーティングシステムによって実施されうる。すなわち、本発明に基づく方法は、付加的なハードウェアを必要とせずに、従来の商業用プロセッサによって実現可能である。もちろん、本発明に基づく方法をハードウェア支援によって実現することも可能である。
【００１４】
エラー検出自体は、任意の方法に従って行われうる。コンピュータプログラムの処理中にエラーを検出しうる（いわゆるconcurrent checking）種類のエラー検出機構の使用が考えられうる。例えばデュアルコアアーキテクチャでは、完全な計算機コアが二重に形成される。計算機コアがロックステップモードで駆動されると、２つの計算機コアが同一の結果を提供するか否かが命令毎に比較されうる。この場合に結果の相違は、確実にエラーを推定させる。すなわち、エラー検出機構は、プログラムオブジェクトを処理中にリアルタイムでエラーを検出する。プロセッサアーキテクチャで一貫して使用されるエラー検出コード、または計算装置の二重化された部分コンポーネントについても、同様である。これら全てのエラー検出機構の共通点は、過渡的エラーを非常に迅速に検出し、エラーが検出されるとエラー信号を供給することにある。
【００１５】
この種のエラー信号は、プログラムオブジェクトを繰返すエラー処理機構が供給しうる。新たな実行に際して同一のエラーが再び発生した場合には、恒久的エラーが推定可能であり、またはエラーカウンタがインクリメントされ、その場合にエラーカウンタが所定値を上回る場合に初めて、恒久的エラーが推定される。一方、プログラムオブジェクトの新たな実行に際して、もはやエラーが発生しない場合には、エラーが過渡的エラーであったとみなしうる。プログラムオブジェクトがエラーを伴わずに新たに実行される間に、コンピュータプログラムは、規定に基づく機能のために再び準備される。すなわち、非常に短い時間の後には、再び可用性（Verfuegbarkeit）が得られる。よって、少なくとも１つのプログラムオブジェクトの繰返しは、過渡的エラーを処理する良好な手段となる。
【００１６】
本発明の望ましい展開によれば、プログラムオブジェクトがコンピュータプログラムのランタイムオブジェクトとして形成されており（以下では、特にタスクと称する。）、エラーの検出に際して、少なくとも１つのタスクが新たに実行されることが提案される。タスクは、特にオペレーティングシステム水準上の典型的なオブジェクトである。タスク繰返しは、望ましくは純粋にソフトウェア的に制御されて、最小限の労力で実現されうる。
【００１７】
本発明の望ましい実施形態によれば、エラーが検出された時点で実行されていたプログラムオブジェクトが新たに開始されることが提案される。代替的または付加的に、エラーが検出された時点で既に完全に処理されていたプログラムオブジェクトが、開始されて新たに処理されることも可能である。
【００１８】
プログラムオブジェクトの処理中、特にプログラムオブジェクトの処理の開始時に、プログラムオブジェクトの少なくとも１つの規定された状態が形成され、記憶されることが提案される。これは、例えば、プログラムオブジェクトの状態として重要な全ての変量の値が記憶されることによって行われうる。
【００１９】
さらに、エラー検出のために、複数のプログラムオブジェクトを伴うコンピュータプログラムが処理される計算装置に対して、冗長に作動する他の計算装置が使用されることが提案される。もちろん、エラー検出のために、１つ以上の冗長な計算装置も使用されうる。
【００２０】
望ましくは、本発明に基づく方法が車両で、特に車両制御装置で、コンピュータプログラムの処理に際して不可避な過渡的エラーにもかかわらず、コンピュータプログラムの確実かつ信頼できる処理を保証するために使用される。これは、特に、車両の安全上重要な適用では、開ループおよび／または閉ループ制御プログラム（Steuer- und/oder Regelungsprogrammen）を処理するために重要となる。
【００２１】
さらに、少なくとも１つのプログラムオブジェクトを新たに実行された際に同一のエラーが新たに発生した場合には、恒久的エラーが推定されることが提案される。また、プログラムオブジェクトが予め設定可能な回数で繰返された後でもまだエラーが発生すれば、恒久的エラーが初めて推定されることも考えられうる。すなわち、この場合、プログラムオブジェクトが３回またはさらに繰返された後に初めてエラーが消滅しても、まだ過渡的エラーとして推定される。本発明のこの展開によって、重要なプログラムオブジェクトが例えば２回のみならず３回繰返されうる。
【００２２】
本発明の他の望ましい展開によれば、少なくとも１つのプログラムオブジェクトの繰返回数が、予め設定可能な値に制限されることが提案される。これによって、恒久的エラーに際して、同一のプログラムオブジェクトが任意に何度も繰返されることが回避される。少なくとも１つのプログラムオブジェクトの繰返回数を制限することは、例えば、カウンタを用いて、または制限時間を介して行いうる。さらに、タスクに依存する繰返回数の設定によって、重要性の高いタスクを重要性の低いタスクより頻繁に繰返し、よって重要性の高いタスクには、過渡的エラーを伴わない誤りのない実行の可能性が、より頻繁に、またはより長期に与えられうる一方で、重要性の低いタスクでは、恒久的エラーがより迅速に推定され、他のシステム応答が導入される。
【００２３】
本発明の他の望ましい実施形態によれば、少なくとも１つのプログラムオブジェクトの繰返回数が、予め設定可能な値に動的に制限されることが提案される。望ましくは、少なくとも１つのプログラムオブジェクトの繰返回数が、スケジューリング上で残されている空き時間（Restzeit）に応じて予め設定可能な値に動的に制限される。このようにして、例えば、第１および第２のタスクをスケジューリング（duerchlaufen）しうる一方で、第３のタスクを複数回繰返しうる。
【００２４】
本発明に基づく方法を実現するために、コンピュータプログラムの処理中、プログラムオブジェクトの実行前に、プログラムオブジェクトの処理に必要とされる値またはプログラムオブジェクトの状態を規定する変量が記憶されることが提案される。すなわち、本実施形態によれば、全てのプログラムオブジェクトの変量が記憶される。
【００２５】
代替的に、一周期で周期的に処理すべきコンピュータプログラムにおいて、所定のプログラムオブジェクト上でエラーが検出されると、コンピュータプログラムの周期内で予め設定可能なチェックポイント（Ruecksprungpunkt）にジャンプバックされることが提案される。すなわち、本実施形態によれば、エラーに際して、周期内の同一箇所に常にジャンプされる。この場合に望ましくは、コンピュータプログラムの処理中、チェックポイントでのプログラムオブジェクトの実行前にのみ、プログラムオブジェクトの状態として重要とされる全ての変量の値が記憶される。すなわち、サイクル毎または周期毎に１回だけ、チェックポイントにおけるプログラムオブジェクトの重要とされる変量の値のみが記憶される必要がある。これによって、記憶に要する時間およびメモリ領域が節約されうる。
【００２６】
そして、エラー検出後のプログラムオブジェクトの新たな実行に際して、記憶された入力変量が読出されて、新に実行すべきプログラムオブジェクトに入力変量として提供される。
【００２７】
本発明の他の実施形態として、１つのプログラムオブジェクトに複数のチェックポイントが設定されることが提案される。エラーの発生に際して、プログラムオブジェクトの全体ではなく、一部のみが新たに処理される必要がある。エラーが発生すると、プログラムオブジェクトの処理にエラーを伴わなかった、先行のチェックポイントに単純にジャンプされる。例えばｎ番目のチェックポイントまでプログラムオブジェクトの処理にエラーを伴わなかった際には、ｎ番目のチェックポイントと（ｎ＋１）番目のチェックポイントとの間でエラーが発生すれば、ｎ番目のチェックポイントにジャンプバックされうる。そして、プログラムオブジェクトは、ｎ番目のチェックポイントから新たに処理される。よって、時間の節約が可能となる。望ましくは、プログラムオブジェクトの処理中に各チェックポイントを超えれば、少なくとも１つの規定された状態が形成されて記憶される。
【００２８】
本発明に基づく方法をオペレーティングシステムの形式で実現することが特に重要である。この場合にオペレーティングシステムは、計算装置上、特にマイクロプロセッサ上で実行可能であり、計算装置上で実行されると、本発明に基づく方法を実施するようにプログラミングされる。すなわち、この場合に本発明がオペレーティングシステムによって実現されるので、オペレーティングシステムは、オペレーティングシステムの実施に適した方法と同様に本発明を表すものである。オペレーティングシステムは、望ましくはメモリ素子上に格納されており、処理のために計算装置に読出される。メモリ素子としては、特に任意のデータ媒体、または、例えばランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）もしくはフラッシュメモリのような、電気的なメモリ媒体が使用されうる。
【００２９】
本発明の課題に係る他の解決策としては、前述した種類の計算装置に基づいて、計算装置がエラー処理機構を有しており、エラー処理機構は、エラー検出機構によってエラーが検出されると、少なくとも１つのプログラムオブジェクトの新たな実行を促すことが提案される。
【００３０】
本発明の望ましい展開によれば、エラーが検出されると、少なくとも１つのプログラムオブジェクトを新たに開始させるトリガーロジック（Triggerlogik）を、エラー処理機構が備えることが提案される。
【００３１】
望ましい実施形態によれば、計算装置上でリアルタイムオペレーティングシステム、例えばＯＳＥＫｔｉｍｅが実行されることが提案される。そして、計算装置がマイクロプロセッサを備えることが提案される。
【００３２】
本発明の他の特徴、適用可能性および利点は、図面に示される本発明の実施例に関する以下の説明から明らかにされる。この場合、記載または図示される全ての特徴は、それ自体または任意の組合せにおいて、特許請求項に係る要約またはその帰属に関係なく、かつ、明細書中の表現または図面中の表示に関係なく、本発明の対象を形成する。
【００３３】
（実施例）
本発明は、計算装置上、特にマイクロプロセッサ上でコンピュータプログラムを処理する方法に関する。コンピュータプログラムは、望ましくはタスクとして形成される複数のプログラムオブジェクトを有する。本方法においては、計算装置上でコンピュータプログラムを処理中にエラーが検出される。検出されたエラーは、過渡的（すなわち一時的）または恒久的なものでありうる。
【００３４】
計算装置上でコンピュータプログラムを処理する際には、過渡的なエラーが発生しうる。計算装置の半導体モジュール（いわゆるチップ）上の構造がますます小さくなる一方で、信号のクロック速度がますます大きく、信号の電圧がますます低くなるので、計算装置上でコンピュータプログラムを処理する際には、過渡的エラーがますます頻繁に発生する。恒久的エラーと異なり、過渡的エラーは、一時的にのみ発生し、通常ある程度の時間が経てば自ずと消滅する。過渡的エラーでは、幾つかのビットがエラーとなるのみで、計算装置自体が恒久的に損傷することはない。過渡的エラーは、例えば電磁的な影響、アルファ粒子または中性子のような種々の原因に起因しうる。
【００３５】
過渡的エラーがほとんど予測不能に発生し、よって再現不能であるという事実に基づいて、従来技術として既知の計算装置では、基本的に恒久的エラーのみを対象としてエラー処理が行われる。過渡的エラーの考慮は、エラーカウンタのインクリメント、場合によってはデクリメントに限定される。エラーカウンタの値がメモリに記憶され、オフラインで、すなわち修理工場で待機中に、診断情報またはエラー情報として読出される。この場合に初めて、エラーに応じた対応がなされうる。すなわち、既知のエラー処理は、特に安全上重要なシステムに要求される短いエラー許容時間内にエラー処理を許容しない一方で、エラー許容時間内にコンピュータプログラムを再び規定通りに処理して計算装置が所定の課題を遂行可能となるような、構造的なエラー処理をも許容しない。
【００３６】
これとは異なり、本発明に基づく方法は、大抵のエラーの過渡的な性質を系統的かつ構造的に取扱うことで、計算装置上で実行されるコンピュータプログラムの過渡的エラーの処理を許容する。ランタイムオブジェクト、いわゆるタスクの例における、本発明に基づく方法のフローチャートが図１に示される。他のタスクの存在は、根本的なシーケンスに影響を与えず、すなわち考慮から省かれる。すなわち、図１に示すようなシーケンスでタスクが処理されれば、本発明に基づいて複数のタスクも処理されうる。並列処理するエラー検出機構（いわゆるconcurrent checking）が特に効果的である。しかし、これは、フローチャート内でそのように表示不能であるので、適切な箇所に直列モジュールとして挿入される。
【００３７】
本発明に基づく方法が機能ブロック１で開始される。機能ブロック１において、計算装置上でタスクの処理が開始される（すなわち、タスクが呼出される。）。機能ブロック２において、チェックポイントが形成される。この目的のために、新たな開始用に規定された状態に移行させ、タスクを再び開始させるために十分な、確実で重要なタスク入力変量が計算装置のメモリ素子に記憶される。望ましくはタスクの全ての入力変量が記憶される。そして、機能ブロック３において、タスクがさらに処理される。処理は、他のチェックポイントまで、またはタスクの最後まで行いうる。その後、エラー検出機構が実行される。エラー検出は、任意の方法に従って行いうる。エラーがコンピュータプログラムの処理中に検出される（いわゆるConcurrent checking）。すなわち、例えば、いわゆるデュアルコアアーキテクチャでは、完全な計算機コアが二重に形成される。計算機コアがいわゆるロックステップモードで駆動されると、２つの計算機コアが同一の結果を提供するか否かが命令毎に比較されうる。この場合に結果の相違は、確実にエラーを推定させる。すなわち、この種のエラー検出機構は、タスクを処理する際にリアルタイムでエラーを検出する。プロセッサアーキテクチャで一貫して使用されるエラー検出コード、または計算装置の二重化された部分コンポーネントについても、同様である。望ましくは、過渡的エラーを非常に迅速に検出し、エラーが検出されるとエラー信号を供給する、この種のエラー検出機構が使用される。
【００３８】
判断ブロック４において、エラー、すなわち過渡的エラーまたは恒久的エラーが検出されるか否かが調べられる。エラーが検出された場合には、他の判断ブロック７に分岐し、エラーカウンタロジックの現在値が調べられる。エラーカウンタが予め設定可能なカウンタ状態をまだ下回らない場合（エラーカウンタがデクリメントされる際）、または上回らない場合（エラーカウンタがインクリメントされる際）には、処理中にエラーが発生したタスク、またはエラー発生前に処理された所定数のタスクを再び実行しうる。タスク処理の新たな開始が可能である場合には、機能ブロック８に分岐され、エラーカウンタロジックのステータスは、「他のエラーが発生している」という情報で更新（デクリメントまたはインクリメント）される。そして、機能ブロック５に分岐されて、機能ブロック２において記憶された変量が読込まれて、規定された状態を形成させるタスクが処理を開始する。そして、機能ブロック３に分岐されて、繰返されるべきタスクが部分的に、すなわち例えば既に処理されたチェックポイントから、または全体的に、すなわち最初から再び開始されて、再び処理される。
【００３９】
判断ブロック４において、機能ブロック３でタスクを処理中にエラーが発生していないことが明らかにされた場合には、機能ブロック９に分岐されて、エラーカウンタロジックのステータスは、「エラーが検出されていない」という情報で更新される。そして、判断ブロック１１に分岐されて、コンピュータプログラムが最後まで処理されているか否かが調べられる。最後まで処理されている場合には、機能ブロック６でコンピュータプログラムの最後に分岐される。最後まで処理されていない場合には、機能ブロック１２に分岐されて、現在のタスクステータスに応じて他のチェックポイントが形成されて、タスクを再び開始させるために十分な、確実で重要なタスク入力変量が規定されて記憶される。そして、機能ブロック３に再び分岐されて、繰返されるべきタスクが新たに開始されて、部分的または全体的に再び処理される。
【００４０】
判断ブロック７において、エラーカウンタロジックの状態に基づいて、タスクを新たに処理するための他の試みがもはや不能であることが明らかにされた場合には、機能ブロック１０に分岐される。判断ブロック７において、タスク用のエラーカウンタロジックの値が、タスクに依存する繰返回数よりも大きいか否かが調べられる。タスクに依存する繰返回数は、異なるタスクに対して同一、または各タスクに対して個々に設定されうる。このような方法で、例えば特に重要なタスクは、恒久的エラーが報告される前にまず数回繰返されうる。タスクに依存する繰返回数が１として予め設定されると、恒久的エラーが検出される前にタスクが１回のみ繰返される。タスクに依存する繰返回数が２または３に予め設定されると、恒久的エラーが検出される前にタスクが２回または３回繰返される。すなわち、この場合にタスクは、過渡的エラーがもはや発生しなくなるまでに、より長い時間を有し、もしくはより多くのスケージューリング期間（Durchlaufe）が提供される。機能ブロック１０において、恒久的エラーが検出されて、それに応じた措置が導入される。措置は、例えば、コンピュータプログラムを非常走行オペレーションに移行させ、またはとりあえず措置を講じずにコンピュータプログラムの実行を終了することでもありうる。
【００４１】
本発明に基づく方法は、図１に示すとともに前述で説明した、全ての機能ブロックおよび判断ブロックを必ずしも有する必要はない。すなわち、例えば、エラーカウンタロジックに関するブロック７〜９を省略しうる。エラーが検出されると、新たに開始されて実行されるべき１つまたは複数のタスクは、エラーがもはや発生しなくなるまで繰返される。恒久的エラーが検出されないので、機能ブロック１０も省略しうる。代替的に、タスクに依存する繰返回数が１として予め設定されうるので、エラーカウンタを更新する機能ブロック８および９を省略しうる。そして、唯一のチェックポイントを伴う唯一のタスクのみが実行される場合には、ブロック１１および１２も省略しうる。
【００４２】
図２には、コンピュータプログラムを処理する、本発明に基づく計算装置が、望ましい実施形態に基づいて示される。計算装置は、全体が参照符号２０で示される。計算装置は、メモリ素子２１を有しており、そのメモリ素子が例えば電子メモリ、特にフラッシュメモリとして形成される。さらに、計算装置２０は、マイクロプロセッサ２２を有しており、その上でコンピュータプログラムを処理しうる。コンピュータプログラムは、電子メモリ媒体２１に格納され、参照符号２３で示される。マイクロプロセッサ２２上でコンピュータプログラムを処理するために、コンピュータプログラムが全体的または部分的に、例えば命令単位で、データ接続２４を介してマイクロプロセッサ２２に伝送される。データ接続２４は、１つもしくは複数のデータ線、またはデータ伝送用のバスシステムとして形成されうる。メモリ媒体２１上には、さらにオペレーティングシステムが格納されており、オペレーティングシステムは、計算装置２０の起動に際して、少なくとも部分的にメモリ２１からマイクロプロセッサ２２に伝送されて処理される。オペレーティングシステムが参照符号２５で示される。オペレーティングシステムは、マイクロプロセッサ２２上のコンピュータプログラム２３の処理と、計算装置２０に接続された周辺装置とを制御し、管理するという課題を有する。本発明に基づくオペレーティングシステム２５は、特別な方法で形成されているので、本発明に基づく方法を実施するようにプログラミングされており、かつ、マイクロプロセッサ２２上で実行されると、本発明に基づく方法を実施する。特にオペレーティングシステム２５は、マイクロプロセッサ２２上でコンピュータプログラムを処理中に発生したエラーを検出する、エラー検出機構へのアクセスを有する。さらに、オペレーティングシステム２５は、エラー処理機構を有しており、それは、エラーが検出されると、コンピュータプログラム２３の少なくとも１つのプログラムオブジェクト（タスク）の新たな実行を促す。
【図面の簡単な説明】
【００４３】
【図１】本発明に基づく方法を、望ましい実施形態に基づいて示すフローチャートである。
【図２】本発明に基づく計算装置を、望ましい実施形態に基づいて図式的に示す図である。
【符号の説明】
【００４４】
２０    計算装置
２１    メモリ媒体
２２    マイクロプロセッサ
２３    コンピュータプログラム
２４    データ接続
２５    オペレーティングシステム
【図１】
2008508626.tif 000003
【図２】
2008508626.tif 000004
【国際調査報告】
2008508626.tif 000005
2008508626.tif 000006
2008508626.tif 000007
2008508626.tif 000008
2008508626.tif 000009
2008508626.tif 000010
2008508626.tif 000011
2008508626.tif 000012
2008508626.tif 000013
2008508626.tif 000014