JP4596488B2 - コンピュータプログラムを処理する方法、駆動システム、および計算装置 - Google Patents

コンピュータプログラムを処理する方法、駆動システム、および計算装置 Download PDF

Info

Publication number
JP4596488B2
JP4596488B2 JP2007537272A JP2007537272A JP4596488B2 JP 4596488 B2 JP4596488 B2 JP 4596488B2 JP 2007537272 A JP2007537272 A JP 2007537272A JP 2007537272 A JP2007537272 A JP 2007537272A JP 4596488 B2 JP4596488 B2 JP 4596488B2
Authority
JP
Japan
Prior art keywords
error
program
computer program
computing device
class
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
JP2007537272A
Other languages
English (en)
Other versions
JP2008518292A (ja
Inventor
ヴァイベルレ、ラインハルト
ミュラー、ベルント
ハルター、ヴェルナー
アンゲルバウアー、ラルフ
コトゥケ、トーマス
コラーニ、ヨルク
グメーリッヒ、ライナー
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 JP2008518292A publication Critical patent/JP2008518292A/ja
Application granted granted Critical
Publication of JP4596488B2 publication Critical patent/JP4596488B2/ja
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

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)
  • Hardware Redundancy (AREA)

Description

本発明は、計算装置上、特にマイクロプロセッサ上でコンピュータプログラムを処理する方法に関する。本発明に係るコンピュータプログラムは、複数のプログラムオブジェクトを有している。また、本発明に係るコンピュータプログラムを処理する方法は、計算装置上でコンピュータプログラムを処理する間にエラーを検出することができる。
本発明は、さらに、計算装置上、特にマイクロプロセッサ上で遂行可能な、駆動システムに関する。
そして、本発明は、複数のプログラムオブジェクトを有するコンピュータプログラムを処理する計算装置に関する。本発明に係る計算装置は、計算装置上でコンピュータプログラムを処理する間にエラーを検出するためのエラー発見機構を有している。
計算装置上でコンピュータプログラムを処理する場合に、いわゆる過渡的エラーがもたらされることがある。ここで、過渡的エラーは、半導体モジュール(いわゆるチップ)上の構造が微細化されるのに対して、信号のクロックレートが増大し、また、信号の電圧は低下されることによって、より頻繁に生じるようになる。また、過渡的なエラーは、恒久的なエラーとは異なり、一時的にだけ発生し、通常はいくらかの時間が経過した後に自ら再び消えてしまう。過渡的なエラーにおいては、個々のビットが歪曲されるだけで、計算装置自体が恒久的に損傷されることはない。過渡的エラーは、例えば、電磁的な影響、アルファ粒子または中性子のような、種々の原因により生じる可能性がある。
通信システムにおいては、今日すでに、エラー処理における重点は、過渡的なエラーにある。通信システムにおいて(例えば、コントローラエリアネットワーク;CANにおいて)、エラーが検出された場合には、誤りをもって仲介されたデータを新たに送信することが知られている。さらに、通信システム内でエラーカウンタを使用することが知られており、そのエラーカウンタはエラーが検出された場合に増分され、正しく送信された場合には減分され、所定の値を上回るとすぐに、データの送信が停止される。
しかしながら、コンピュータプログラムを処理する計算装置においては、エラー処理は、大体において、恒久的なエラーについてのみ行われる。過渡的エラーの考慮は、エラーカウンタの増分と、場合によっては減分とに限定される。これが、メモリ内に格納されて、オフラインで、すなわち、例えば、計算装置が自動車制御装置として形成されている場合に、修理工場滞在の間に、診断情報またはエラー情報として読み出すことができる。その場合に初めて、それに応じてエラーに反応することができる。
したがって、従来のエラーカウンタによるエラー処理は、1つには、特に安全上重要なシステムのために必要な短いエラー許容時間内のエラー処理を許さず、他方では、エラー許容時間内にコンピュータプログラムが再び秩序通りに処理されるような、構造的なエラー処理も許さない。従来技術においては、その代りに、コンピュータプログラムはエラーカウンタが所定の値を上回った場合に、例えば、非常走行駆動に切り替えられる。これは、コンピュータプログラムにおけるエラーのある部分の代りに、他のものが処理されて、そのようにして得られた代替値がそれ以降の処理に利用されることを意味している。代替値は、例えば、他の変量を用いてモデリングすることができる。代替的に、コンピュータプログラムのエラーのある部分によって計算された結果を、誤っているとして捨て去り、それ以降の計算のために、例えば、非常走行駆動のために設けられている標準値に代えることができる。したがって、計算装置上で遂行されるコンピュータプログラムの過渡的なエラーを処理する既知の方法は、多くのエラーの過渡的な性質と系統的、構造的につきあうことを許さない。
従来技術からは、さらに、計算装置上でコンピュータプログラムを処理する場合に、発生する過渡的エラーに、計算装置の完全な新規スタートによって対処することが知られている。この解決も、実際には満足のゆくものではない。というのは、コンピュータプログラムの処理のそれまでの推移において得られた変量が失われてしまい、計算装置は新規スタートの期間の間その規定通りの機能を満たすことができないからである。これは特に、安全上重要なシステムにおいて、受け容れられない。
また、計算装置上で処理されるコンピュータプログラムの過渡的エラーのためのエラー処理として、コンピュータプログラムを数クロック戻してコンピュータプログラムの個々の機械指令を繰り返すことも知られている。この方法は、ミクロロールバックとも称される。この既知の方法において、オブジェクトだけ機械レベル(クロック、機械指令)へジャンプバックされる。ここで上記ミクロロールバックは、機械レベル上のそれに応じたハードウェア支援を必要とし、それが計算装置の領域における著しい手間および費用と結びついている。また、純粋にソフトウェアによって制御される、既知の方法の実施は、実質的に不可能である。
したがって、上述したように、従来技術から知られたエラー処理機構は、計算装置上でコンピュータプログラムを処理する場合に発生する過渡的エラーに、適切な方法で反応することはできない。
しかしながら、過渡的エラーは、まさに未来のテクノロジーにおいて極めて頻繁に生じうる。したがって、例えば、デュアルコア機構を介して、それを発見した場合に、正しい結果を識別するためには、エラー位置測定の問題に応えることが必要となる。特に、過渡的エラーが生じたとしても、計算器の新規スタートを行わないこと目標とする場合には、エラー位置測定を行うことが必要となる。エラー位置測定は、上述したように、典型的には、比較的複雑な方法を介してのみ達成される。
本発明の課題は、計算システム内でコンピュータプログラムを処理する際に過渡的エラーが発生した場合において、それを構造的に、できるだけ短いエラー許容時間内に処理し、計算器システムの機能を回復させ、および機能安全性を再形成することが可能な、新規かつ改良されたコンピュータプログラムを処理する方法、駆動システムおよび計算装置を提供することにある。
この課題を解決するために、冒頭で挙げた種類の方法に基づいて、エラーが検出された場合に、すでに処理へ供給されている少なくとも1つのプログラムオブジェクトが定められた状態へ移行され、この状態から新たに開始されることが、提案される。
もちろんシステムレベル上で、さらに、どのようにしてタスク繰返しのこの種のコンセプトをきちんと使用することができるか、という問題が生じる。これは、通常、任意の誤りのあるタスクを単純に再度計算できる、というわけにはいかない。というのは、付加的に必要な計算時間と、そのために使用される時点も、システムの観点から別に用途が計画されているからである。プロセッサの負担がすでにほぼ100%である(そして通常そうである)場合に、この種の計画されない付加時間(クロック繰返しのような)によって、システムの過負荷が生じ、それが典型的なシステムの崩壊をもたらす可能性がある。これは、例えば、少なくとも部分的に自らを押し通す、時間制御されるシステムを考える場合に、さらにはっきりとする。上記のような時間制御されるシステムにおいては、デッドライン侵害は、多くの他のリアルタイムコンセプトの場合と同様に、許容できない。
したがって結果として、システムの視点から、潜在的なタスク繰返しによって生じる可能性のある、付加的な負荷を計算に入れなければならない。ここで、各タスクの後に、タスク繰返しを必要とする計算時間を見込む場合には、確実に機能し得るが、エラー処理しないシステム100%と比較すると、付加的なパフォーマンスの代償を支払わなければならない。したがって、コストの観点からは、受け容れられない。
したがって本発明の課題は、さらに、例えば、タスクの二倍の計算をもはや計画に入れず(そしてそれに伴って恒久的かつ非常に大きいオーバーヘッドを発生させず)、同時にどのようにして時間制御される考えと結合するか、の問題を解決する、最適なシステムストラテジーを提供することである。
したがって、本発明に基づくシステムストラテジーの枠内で、最小限のパフォーマンスオーバーヘッドで、あるいはパフォーマンスオーバーヘッドなしで、タスク繰返しのコンセプトを組み込むことを許容する、コンピュータプログラムを処理する方法、駆動システムおよび計算装置が提案される。その場合にこの種のシステムストラテジーは、タスク、課題、プログラムまたは、以下においてプログラムオブジェクトと称する、プログラム部分のスケジューリング方法のための、周辺条件である。
新たに開始されるプログラムオブジェクトは、エラーが検出された時点で、完全に処理されている必要はない。本発明の主旨において、エラー検出の時点でまだ完全に処理されていないが、その処理がすでに開始されているプログラムオブジェクトも、エラーが発生した場合に新たに開始させることができる。したがって本発明によれば、過渡的または恒久的なエラーが発生した場合に、少なくとも1つの駆動システムオブジェクトが新たに実施される。ミクロロールバックに対する利点は、特に、プログラムオブジェクトの繰返しを極めてわずかなハードウェア支援で実現することができることにある。プログラムオブジェクトの新たな実施のために必要な情報(例えば、プログラムオブジェクトの入力量)を格納することができるようにするために、付加的なメモリが必要となるだけである。本発明に基づく方法の本来の管理は、計算装置の駆動システムによって実施することができる。すなわち、本発明に基づく方法は、付加的なハードウェアを必要とすることなしに、市場で一般的な従来のプロセッサによって実現することができる。なお、本発明に係るコンピュータプログラムを処理する方法をハードウェア支援で実現することも、もちろん可能である。
したがって、エラーのあるタスク、エラーのある課題、エラーのあるプログラミングまたはプログラミング部分、もしくはプログラムオブジェクト、あるいは少なくとも駆動システムオブジェクトを再度計算する従来の技術と比較して、本発明に係るコンピュータプログラムを処理する方法は、効果的である。もともとエラーが過渡的であった場合には、新しく計算する場合に2つの出力は等しく、したがってエラーは消滅し、新規計算によって処理される。
したがって好ましくは、計算装置上、特にマイクロプロセッサ上でコンピュータプログラムを処理する方法が示され、上記コンピュータプログラムは複数のプログラムオブジェクトを有しており、かつ計算装置上でコンピュータプログラムを処理する間にエラーが検出され、エラーが検出された場合には、すでに処理へ供給されている、少なくとも1つのプログラムオブジェクトが定められた状態へ移行されて、この状態から新たに開始され、後続の他のプログラムオブジェクトがずらされる。
また、好ましくは、プログラムオブジェクトは少なくとも2つのクラスに分割され、エラーが検出された場合には、第1のクラスのプログラムオブジェクトが繰り返され、第1のクラスの、すでに処理へ供給されているプログラムオブジェクト内でエラーが検出された場合には、第1のクラスのこのプログラムオブジェクトが第2のクラスのプログラムオブジェクトの代りに新たに開始される。上記場合においてエラーの検出は、新たに開始されるクラスにおいてのみ実施される。
また、好ましくは、すべてのプログラムオブジェクトのためにランスルー内に全計算時間が設けられており、かつ全計算時間が次のように、すなわち、エラーが検出された場合に新たに開始されるプログラムオブジェクトが、エラーのない場合においてはランスルー内の全計算時間の最大50%を有するように、分割され、その場合に異なるクラスのプログラムオブジェクトが交互に処理され、第1のクラスのエラーのあるプログラムオブジェクトが、すぐ後に続く第2のクラスのプログラムオブジェクトの代りに処理され、もしくは新たに開始される。
また、エラー検出自体は、任意の方法にしたがって行うことができる。エラー検出手段としては、例えば、コンピュータプログラムの処理の間にエラーを検出する(いわゆるconcurrent checking;並行チェック)ことなど、各種類のエラー発見機構の使用が考えられる。例えば、デュアルコアアーキテクチャにおいては、全計算機コアが二重に形成されている。計算機コアがロックステップモードで駆動される場合に、各インストラクションについて、2つの計算機コアが同一の結果を供給するか、結果を比較することができる。その場合に結果の差は、確実にエラーを推定させる。したがってこのエラー発見機構は、プログラムオブジェクトを処理する場合にエラーをリアルタイムで発見することができる。同様なことが、プログラムアーキテクチャ内で一貫して使用されるエラー発見コードについても、あるいは計算装置の二重にされた部分コンポーネントについても言える。これらすべてのエラー発見機構に共通なことは、過渡的エラーを極めて迅速に発見し、エラーが検出された場合には、エラー信号を供給することができることである。
この種のエラー信号には、例えば、プログラムオブジェクトを繰り返すエラー処理機構を合わせることができる。プログラムオブジェクトを新たに実施したとき同一のエラーが再度発生した場合には、恒久的エラーを推定することができ、あるいはエラーカウンタが増分され、その場合にエラーカウンタが所定の値を上回った場合に初めて、恒久的エラーを推定することができる。それに対してプログラムオブジェクトを新たに実施した場合にエラーがもはや発生しない場合には、エラーが過渡的なエラーであった、と言うことができる。プログラムオブジェクトのエラーがまだ生じていない新たな実施の間に、コンピュータプログラムは、その規定通りの機能を実現するために再び準備を行うことができる。したがって極めて短い時間の後に、可用性を再び高めることができる。したがって少なくとも1つのプログラムオブジェクトの繰返しは、過渡的エラーに対処するための、良好な手段である。
本発明の好ましい展開によれば、プログラムオブジェクトがコンピュータプログラムのランタイムオブジェクトとして形成されており(以下においては特に「タスク」と称する。)、エラーが検出された場合に少なくとも1つのタスクが新たに実施されることが、提案される。タスクは、特に駆動システムレベル上の、典型的なオブジェクトである。タスクの繰返しは、最小限の手間とコストで、望ましい場合には特に純粋なソフトウェア制御で、実現するこができる。
本発明の好ましい実施形態によれば、エラーが検出された時点で実施されていたプログラムオブジェクトが新たに開始されることが、提案される。しかしその代りに、あるいはそれに加えて、エラーの検出の時点ですでに完全に処理されていたプログラムオブジェクトも開始し、新たに処理することができる。
また、プログラムオブジェクトの処理の間、特にプログラムオブジェクトの処理の開始時に、プログラムオブジェクトの少なくとも1つの定められた状態が生成されて、記憶されることが、提案される。これは、例えば、、プログラムオブジェクトの状態にとって重要なすべての変量の値が格納されることによって、行うことができる。
さらに、エラー検出のために、複数のプログラムオブジェクトを有するコンピュータプログラムが処理されている計算装置に対して冗長に作業する、他の計算装置が使用されることが提案される。もちろん、エラー検出のために1つより多い冗長な計算装置を使用することもできる。
好ましくは、本発明に基づく方法は、自動車内、特に自動車制御装置内で、コンピュータプログラムを処理する場合に不可避の過渡的エラーにもかかわらず、コンピュータプログラムの確実かつ信頼できる処理を保証するために、使用される。これは特に、自動車内の安全上重要な適用における開ループ制御および/または閉ループ制御プログラムを処理するために、重要である。
さらに、少なくとも1つのプログラムオブジェクトを新たに実施した場合に同一のエラーが新たに発生した場合に、恒久的エラーが推定されることが、提案される。また、エラーが、プログラムオブジェクトの予め定められた数の繰返し後に相変わらず発生した場合に初めて、恒久的エラーが推定されることも、考えられる。したがって、この場合においては、プログラムオブジェクトが3回あるいはさらに繰り返された後に初めてなくなった場合でも、まだ過渡的エラーが推定される。本発明のこの展開によって、重要なプログラムオブジェクトを、例えば、2回だけでなく3回繰り返すことができる。
本発明の他の好ましい展開によれば、少なくとも1つのプログラムオブジェクトの繰返しの数が、予め定めることのできる値に限定されることが、提案される。それによって、恒久的エラーの場合に同一のプログラムオブジェクトが任意に何回も繰り返されることが、防止される。少なくとも1つのプログラムオブジェクトの繰返しの数の制限は、例えばカウンタを用いて、あるいはタイムバリアを介して行うことができる。タスクに依存する繰返し値を予め定めらることによって、さらに、重要なタスクをそれより重要でないものより多く繰り返し、それによって重要なタスクにより多く、もしくはより長い間、過渡的エラーなしでエラーのない遂行を行う可能性を与えることが、可能となる。また、それより重要でないタスクの場合には、比較的迅速に恒久的エラーが推定されて、他のシステムリアクションが導入される。
本発明の他の好ましい実施形態によれば、少なくとも1つのプログラムオブジェクトの繰返しの数が予め定めることのできる値に動的に制限されることが、提案される。好ましくは少なくとも1つのプログラムオブジェクトの繰返しの数が、スケジューリングのために残っている残留時間にしたがって、予め定めることのできる値に動的に制限される。このようにして、例えば、第1のタスクと第2のタスクは通過することができ、第3のタスクは何回も繰り返すことができる。
本発明に基づく方法を実現するために、コンピュータプログラムを処理する間、プログラムオブジェクトを実施する前に、プログラムオブジェクトの実施に必要な変量、もしくはプログラムオブジェクトの状態を定める変量の値が記憶されることが、提案される。したがってこの実施形態によれば、すべてのプログラムオブジェクトの変量が格納される。
代替的に、周期内に周期的に処理すべきコンピュータプログラムにおいて、エラーが検出された場合に、コンピュータプログラムの周期内の予め定めることのできるジャンプバック点の所定のプログラムオブジェクトへジャンプバックすることが、提案される。したがってこの実施形態によれば、エラーが発生した場合に常に周期内の同一の箇所へジャンプされる。その場合に好ましくは、コンピュータプログラムの処理の間、ジャンプバック点でプログラムオブジェクトを実施する前にだけ、プログラムオブジェクトの状態にとって重要なすべての変量の値が記憶される。したがってサイクルまたは周期当たり一回だけ、ジャンプバック点でプログラムコードの重要な変量の値だけを格納すれば済む。それによって記憶のための時間とメモリスペースを省くことができる。
エラーが検出された後に、プログラムオブジェクトを新たに実施する場合に、格納されている入力量が呼び出されて、新たに実施すべきプログラムオブジェクトに入力量として提供される。
本発明の他の実施形態として、1つのプログラムオブジェクトに複数のジャンプバック点があてがわれることが、提案される。エラーが発生した場合に、プログラムオブジェクト全体ではなく、プログラムオブジェクトの一部を新たに処理すれば済む。エラーが発生した場合に単に、そこまではプログラムオブジェクトの処理にエラーがなかった、先行するジャンプバック点へジャンプバックされる。例えば、n番目のジャンプバック点までプログラムオブジェクトがエラーなしに処理された場合に、この点と(n+1)番目のジャンプバック点との間でエラーが発生した場合に、n番目のジャンプバック点へジャンプバックすることができる。その場合にプログラムオブジェクトは、n番目のジャンプバック点から処理される。それによって時間の節約が可能である。好ましくはプログラムオブジェクトの処理の間に各ジャンプバック点を通過する場合に、それぞれ少なくとも1つの定められた状態が生成されて、格納される。
特に重要なことは、本発明に基づく方法を駆動システムの形式で実現することである。その場合に駆動システムは、計算装置上、特にマイクロプロセッサ上で遂行可能であって、計算装置上で遂行された場合に、本発明に基づく方法を実施するようにプログラミングされている。したがって、この場合において本発明は、駆動システムによって実現されるので、この駆動システムは、駆動システムが実施するのに適している方法と同様に、本発明を表す。駆動システムは、好ましくはメモリ素子上に格納されており、処理するために計算装置へ引き渡される。メモリ素子として、とくに任意のデータ担体または電気的なメモリ媒体、例えば、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)またはフラッシュメモリ、を使用することができる。
本発明の課題の他の解決として、冒頭で挙げた種類の計算装置に基づいて、計算装置がエラー処理機構を有しており、そのエラー処理機構はエラー発見機構によってエラーが検出された場合に、少なくとも1つのプログラムオブジェクトの新たな実施を促すことが、提案される。
本発明の好ましい展開によれば、エラー処理機構が、エラーが検出された場合に少なくとも1つのプログラムオブジェクトを新たに開始させる、トリガー論理を有していることが、提案される。
好ましい実施形態によれば、計算装置上でリアルタイム駆動システム、例えばOSEK(Open Systems and the Corresponding Interfaces for Automotive Electronics)が遂行されることが、提案される。そして、計算装置がマイクロプロセッサを有してることが、提案される。
本発明によれば、計算システム内でコンピュータプログラムを処理する際に過渡的エラーが発生した場合において、それを構造的に、できるだけ短いエラー許容時間内に処理し、計算器システムの機能を回復させ、および機能安全性を再形成することができる。
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書および図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。なお、本発明は、以下に説明する実施の形態に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
本発明に係る実施形態は、計算装置上、特にマイクロプロセッサ上でコンピュータプログラムを処理する方法に関する。コンピュータプログラムは、複数のプログラムオブジェクトを有しており、それらは好ましくはタスクとして形成されている。本発明の実施形態に係る方法では、計算装置上でコンピュータプログラムを処理する場合に、エラーが検出される。検出されたエラーは、過渡的な(したがって一時的な)種類のエラー、あるいは恒久的な種類のエラーであり得る。
過渡的なエラーは、計算装置上でコンピュータプログラムを処理する場合に発生する可能性がある。ここで、過渡的エラーは、半導体モジュール(いわゆるチップ)上の構造が微細化されるのに対して、信号のクロックレートが増大し、また、信号の電圧は低下されることによって、より頻繁に発生するようになる。また、過渡的エラーは、恒久的エラーとは異なり、一時的にだけ発生し、通常いくらかの時間が経過した後に自ら再び消えてしまう。過渡的なエラーにおいては、個々のビットが歪曲されるだけで、計算装置それ自体が恒久的に損傷されることはない。過渡的エラーは、例えば電磁的な影響、アルファ粒子または中性子のような、種々の原因により生じる可能性がある。
“過渡的なエラーの発生を予測することはほぼ不可能であり、したがって再現できない”という事実に基づいて、従来の技術を用いた計算装置においては、エラー処理はほぼ恒久的エラーについてだけ行われている。過渡的エラーの考慮は、エラーカウンタのインクリメントと場合によってはデクリメントに限定される。これがメモリ内に格納されて、オフラインで、すなわち、例えば、修理工場滞在の間に、診断情報またはエラー情報として読み出すことができる。その場合に初めて、診断情報またはエラー情報に応じて反応することができる。したがって、従来のエラー処理は、特に安全上重要なシステムにおいて重要な短いエラー許容時間内のエラー処理を行うことはできず、他方ではまた、エラー許容時間内にコンピュータプログラムが再び秩序どおりに処理されて、計算装置がその規定どおりの課題を満たすことができるような、構造的なエラー処理を行うこともできない。
従来のエラー処理方法に対して、本発明の実施形態に係る方法は、多くのエラーの過渡的な性質に対して、系統的、構造的に対応することによって、計算装置上で遂行されるコンピュータプログラムの過渡的なエラーの処理を行うことができる。ランタイムオブジェクト、いわゆるタスクの例における、本発明の実施形態に係る方法のフローチャートが、図1に示されている。他のタスクの存在は、原理的なシーケンスに影響を与えないため、図1では考慮を省く。すなわち、図1に示すシーケンスにしたがってタスクが処理され、したがって本発明の実施形態に係る方法によれば、複数のタスクも処理することができる。並列に作業するエラー発見機構(いわゆるconcurrent checking)が特に効果的である。なお、エラー発見機構について、図1のフローチャートでは、それに応じた箇所にシリアルのモジュールとして挿入されている。
本発明の実施形態に係る方法は、機能ブロック1で開始される。機能ブロック1において、計算装置上でタスクの処理が開始される、すなわち、タスクが呼び出される。機能ブロック2において、ジャンプバック点が生成される。ジャンプバック点を生成するために、タスクを新規スタートのために定められた状態へ移行させ、タスクを再度始動させるのに十分な、安全で重要なタスク入力量が、計算装置のメモリ素子内に格納される。好ましくはタスクのすべての入力量が格納される。その後機能ブロック3において、タスクが再び処理される。処理は、他のジャンプバック点で行われるか、あるいはタスクの最後まで行われる。その後、エラー発見機構が実施される。ここで、エラー検出は、任意の方法にしたがって行うことができる。例えば、エラーは、コンピュータプログラムの処理の間に検出される(いわゆるconcurrent checking)。すなわち、例えば、いわゆるデュアルコアアーキテクチャにおいては、計算機コア全体が二重に形成されている。計算機コアがいわゆるロックステップ(同期並行処理)モードで駆動される場合に、各インストラクションについて、2つの計算機コアが同一の結果を供給するか、結果を比較することができる。その場合に結果が異なることは、確実にエラーを推定させる。したがってこの種のエラー発見機構は、タスクを処理する場合のエラーを実時間で発見することができる。同様なことが、プロセッサアーキテクチャ内で広く使用されるエラー発見コードについて、あるいは、計算装置の二重にされた部分コンポーネントについて言える。好ましくは、過渡的エラーを極めて迅速に発見し、エラーが検出された場合に、エラー信号を出力することが可能な、この種のエラー発見機構が使用される。
照会ブロック4において、エラー、すなわち過渡的エラーまたは恒久的エラーが発見されたか、が調べられる。エラーが検出された場合には、他の照会ブロック7へ分岐し、そこでエラーカウンタ論理の現在の値が検査される。エラーカウンタがまだ予め定めることのできるカウンタ状態を下回っていない場合(デクリメントするエラーカウンタの場合)、あるいは上回っていない場合(インクリメントするカウンタの場合)には、その処理の間にエラーが発生したタスク、もしくはエラーの発生前に処理された所定数のタスクをもう一度実施することができる。タスクの処理の新規スタートが可能である場合には、機能ブロック8へ分岐し、エラーカウンタ論理のステータスが、他のエラーが発生している、という情報によって更新(デクリメントまたはインクリメント)される。そこから機能ブロック5へ分岐して、その中で機能ブロック2で格納された変量がロードされて、タスクが定められた状態を発生させるために処理の開始へ供給される。その後機能ブロック3へ分岐して、そこで繰り返すべきタスクが部分的に、すなわち例えばすでに処理されたジャンプバック点から、あるいは全体として、すなわちタスクが最初からもう一度開始されるように、再度処理される。
照会ブロック4において、機能ブロック3内でタスクが処理される間に何らエラーが発生していないことが明らかにされた場合に、機能ブロック9へ分岐して、そこでエラーカウンタ論理のステータスが、“エラーが検出されなかった”という情報によって更新される。次に判断ブロック11へ移行して、そこでコンピュータプログラムが最後まで処理されたか否かが調べられる。コンピュータプログラムが最後まで処理された場合には、機能ブロック6のコンピュータプログラムの最後に分岐する。他の場合には、機能ブロック12へ分岐して、そこで実際のタスクステータスに応じて、タスクを再度開始させるのに十分な、安全で重要なタスク入力量が定められ、かつ格納されることにより、他のバックジャンプ点が発生される。機能ブロック12から再び機能ブロック3へ分岐して、そこで繰り返すべきタスクが開始されて、部分的に、あるいは全体として、もう一度処理される。
照会ブロック7において、エラーカウンタ論理の状態に基づいてタスクを新たに処理するためのこれ以上の試みがもはや不可能であることが明らかになった場合には、機能ブロック10へ分岐する。照会ブロック7においては、このタスクのためにエラーカウンタ論理の値が、タスクに依存する繰返し値よりも大きいか否かが調べられる。このタスクに依存する繰返し値は、種々のタスクについて等しく設定することができ、あるいはまた各タスクについて個別に設定することができる。このようにして、本発明の実施形態に係る方法は、例えば、恒久的なエラーが報告される前に、特に重要なタスクをまず何回か繰り返すことが可能となる。タスクに依存する繰返し値が1として設定される場合には、恒久的なエラーが検出される前に、タスクは1回だけ繰り返される。また、タスクに依存する繰返し値が2または3に設定される場合には、恒久的なエラーが検出される前に、タスクは2回または3回繰り返される。したがってこの場合においてタスクは、過渡的なエラーがもはや発生しなくなるまで、より長い時間、もしくは多くのランスルーを使用することができる。また、機能ブロック10において、恒久的なエラーが検出されて、それに応じた措置が導入される。この措置は、例えば、コンピュータプログラムを非常走行駆動へ移行させ、あるいはとりあえず行わず、その後コンピュータプログラムの遂行を終了することにある。
なお、本発明の実施形態に係る方法は、図1に示し、かつ上述したすべての機能ブロックおよび照会ブロックを有する必要はない。すなわち、例えば、エラーカウンタ論理に関する、ブロック7から9を省くことができる。エラーが検出された場合に、新たに開始して実施すべき1つまたは複数のタスクは、エラーがもはや発生しなくなるまで、繰り返すことができる。恒久的なエラーは検出されないので、機能ブロック10を省くことができる。代替的に、タスクに依存する繰返し値を1と設定することができるので、エラーカウンタを更新するための機能ブロック8と9を省くことができる。そして、唯一のジャンプバック点を有する唯一のタスクが実施される場合には、ブロック11と12を省くこともできる。
図2には、コンピュータプログラムを処理するための本発明の実施形態に係る計算装置が示されている。本発明の実施形態に係る計算装置は、その全体を符号20で示されている。計算装置は、メモリ素子21を有しており、そのメモリ素子は例えば電子的なメモリとして、例えば、特にフラッシュメモリ(Flash)として形成されている。さらに、計算装置20はマイクロプロセッサ22を有しており、そのマイクロプロセッサ上でコンピュータプログラムを処理することができる。コンピュータプログラム(CP)は、例えば、電子的なメモリ媒体21上に格納されており、参照符号23で示されている。マイクロプロセッサ22上でコンピュータプログラムを処理するために、コンピュータプログラムは全体として、あるいは部分的に、例えば指令単位で、データ接続24を介してマイクロプロセッサ22へ転送される。データ接続24は、例えば、1本または複数本のデータ線として、あるいはデータ伝送のためのバスシステムとして形成することができる。メモリ媒体21上には、例えば、さらに、駆動システムが格納されており、その駆動システムは計算装置20を立ち上げる場合に少なくとも部分的にメモリ21からマイクロプロセッサ22へ転送されて、そこで実施される。ここで、駆動システム(BS)は、参照符号25で示されている。駆動システムは、例えば、マイクロプロセッサ22上のコンピュータプログラム23の処理と計算機20に接続されている周辺機器を制御し、かつ管理する課題を有している。本発明の実施形態によれば、駆動システム25が特別な方法で形成されているので、同システムは本発明の実施形態に係る方法を実施するようにプログラミングされており、かつマイクロプロセッサ22上で遂行される場合に、本発明の実施形態に係る方法を実施する。特に、駆動システム25は、マイクロプロセッサ22上でコンピュータプログラム23を処理する間にエラーを検出するためのエラー発見機構へのアクセスを有している。さらに、駆動システム25はエラー処理機構を有しており、そのエラー処理機構はエラーが検出された場合にコンピュータプログラム23の少なくとも1つのプログラムオブジェクト(タスク)の新たな実施を促すことができる。
したがって、本発明の実施形態に係る方法、駆動システムおよび計算装置は、本発明に基づくシステムストラテジーの枠内で、最少のパフォーマンスオーバーヘッドで、あるいは特にパフォーマンスオーバーヘッドなしで、タスク繰返しのこのコンセプトを組み込むことが可能となる。
その場合に、それぞれ異なる前提においてパフォーマンスオーバーヘッドとそれに伴ってコストを最小限に抑える、システムストラテジーが基礎とされる。その場合に一般的に、上述したタスクの遂行の際にエラーを発見することのできる(例えば、冗長な処理を有する、デュアルコア機構)エラー発見機構が提供されることが前提とされる。さらに、ここで特に、過渡的エラーについて詳しく説明する。また、恒久的エラーを発見するためには、拡張、例えば、上述したエラーカウンタが必要である。
図3で説明するように、タスク繰返しを組み込むための本発明に基づくストラテジーにおいては、幾つかの前提に注意しなければならない。
タスクの少なくとも2つのクラス(例えばクリティカルなクラスとクリティカルでないクラス)が区別される。その場合にすでに、エラー発見機構はタスクのすべてのクラスのために使用されず、および/または、タスクのすべてのクラスについて実施されない。
図3の例において、タスクの2つのクラスが区別され、一方のクラスにおいてだけタスク繰返しが実施され、および/または、一方のクラスにおいてだけエラー発見機構が始動される。クリティカルなクラスとクリティカルでないクラスに区別する場合には、クリティカルなクラスにおけるエラーだけが本発明に基づいて検出され、特に第1のクラスのためだけに、エラー発見機構が使用される。その場合にクリティカルなクラスは、システムの全機能または基礎となる機能性のために正確な処理が必要であって、この機能を得るためには、遅くとも所定の時点までに行われなければならないタスクである。クリティカルでないタスクは、全システム機能あるいはまた基礎となる機能が該当しないか、あるいは本質的に制限されない、タスクである。その場合に特に、システムにおいては、安全上重要な機能と安全上重要でない機能の間で区別される。
第2のクラス、すなわちクリティカルでないクラス2のタスク内の過渡的エラーは、例えば、無視することができる。さらに、上述したように、第2のクラスのタスクは、「順番が来なくても」よく、すなわち、この第2のクラスのタスクがタスク処理サイクル内で呼び出されない場合に、システムの観点から重大な結果をもたらさないと言える。さらに、第1のクリティカルなクラス1のタスクの全ランタイムは、好ましくはランスルーないしタスク処理サイクルの全計算時間の、システムに基づく所定のパーセンテージ(例えば50%)より多くを要求しない。その場合にクリティカルなタスクには、クリティカルなタスクとクリティカルでないものとに二分する場合に、全計算時間の最大で50%が割り当てられるので、ワーストケースにおいて、すべのクリティカルなタスクにエラーがある場合に、これらを新たに開始させ、もしくは計算することができる。
その場合には、図3に示すシステム考えが可能であって、それにおいては種々のクラスのタスクが、タイムスケジュール内でタスクT1(クラス1)の「後任」S1が少なくとも、T1のWCET(worst case execution time)と同じ大きさの時間を有し、タスクT1の置き換えを可能とする。
その場合に、基本的な考えは、T1内に過渡的なエラーが発生した場合に、S1の代りに再度T1が計算されることである。それによって、T1内のエラーがT2の計算前に除去されることが、保証される。したがって、タスクの計算時間内で、エラー認識および処理(エラー許容特性を維持しながらの極めて確率の高い回復を含む)が行われる。
そのために図3において、クラス1のタスクT1、T2およびT3と、クラス2のタスクS1、S2およびS3の間で区別される。エラーのない実施において、図3aにタスク順序T1、S1、T2、S2、T3、S2が例示されている。T1の間に過渡的エラーが発生した場合に、図3bに示すように、T1がS1内で再度計算されて、次にT2、S2、T3、S3が計算されるので、過渡的エラーが補正される。
タスク繰返しを組み込むための他のシステム考えが、図4aと4bからなる図4に示されている。その場合にシステムは、比較的小さいジッタ(タスク計算時間の規模の中で)にうまく対応することができる。これは、好ましくは、プラットフォーム機構(特に駆動システム)に適用されうる。その場合に図4aは、エラーのない実施におけるタスクT1、T2、T3、T4およびSを有するランスルーを示している。
ここでもタスクの少なくとも2つのクラス(例えば上述のようにクリティカルとクリティカルでない)とを存在させることができ、ここでは例えば、一方のクラスにおいてだけタスク繰返しが実施され、および/または、一方のクラスにおいてだけエラー発見機構が始動される。クリティカルなタスクとクリティカルでないタスクを区別する場合には、本発明に係る実施形態にしたがってクリティカルなクラス内のエラーのみがキャッチされ、特に第1のクラスのためにだけ、エラー発見機構が使用される。これは、図3の場合と同様である。
すなわち、ここでも第2のクラスのタスク内の過渡的エラーは、無視することができる。さらにここでも、第2のクラスのタスクは「順番が来なくても」よく、すなわちサイクル内でこのクラスのタスクが呼び出されない場合に、システムの観点からは重要な結果はもたらされない、と言える。そして、ランスルーまたはサイクル当たり、したがってタスク計算サイクル当たり、クリティカルなタスクの最も長いものより長く続く、少なくとも1つのクリティカルでないタスクが存在しなければならない。この少なくとも1つのクリティカルでないタスクは、アイドルタイムとして実現することもでき、もちろんそれは、図3に示す例にも当てはまる。
例において、ランスルーまたはサイクル内にT1、…、TnのタスクTi(自然数としてのn、ここでは、例えば、5とする。)が存在し、それらはすべてクリティカルであって、および、ほぼこの順序で処理されると仮定する。さらに、Tnの後に、クリティカルでなく、かつ各個々のTiよりも長い、少なくとも1つのタスクSが存在する。図4bにおいては、タスクT3内で過渡的エラーが発生している。Ti内のエラーが検出された場合に、タスクTiが単純に即座に繰り返され、残り、したがってT4とT5は、図4bに示すように、後方へずらされる。ランスルー内で過渡的エラーが1つしか発生しない間は、クリティカルなタスクのどれも話題にならず、実施においてどれも最大のタスク長さより多くは後方へずれない。したがってその場合に、エラーが複数になった場合にクリティカルなタスクが実施できないか、はクリティカルでないタスクないしアイドルタイムの長さに直接依存する。安全上の理由からは、ここでも、第1のクリティカルなクラス1のタスクの全ランタイムは、それが好ましくはランスルーないしタスク処理サイクルの全計算時間のシステムに基づく所定のパーセンテージ(例えば50%)より多く要求しないように、選択することができる。その場合にクリティカルなタスクとクリティカルでないタスクに二分する場合に、クリティカルなタスクには、ここでも安全コンセプトから、全体で全計算時間の最大50%が割り当てられているので、最悪の場合に、すべてのクリティカルなタスクにエラーがある場合に、これらを新たに始動させ、もしくは計算することができる。
図5aと5bからなる図5は、他の考え方を示しており、それにおいてはほぼ一致する前提を用いることができる。ここではシステムは、少し大きいジッタ(ランスルーの規模において)に対応することができる。これは、プラットフォーム機構、特に駆動システムに適用されうる。ここでもタスクの少なくとも2つのクラス(例えばクリティカルなクラスT1−T5とクリティカルでないクラスS)が存在する。ここでも、第1のクラス(T1−T5)のためにだけエラー発見機構が使用される。第2のクラスのタスク内の過渡的エラーは、ここでも無視することができる。さらに第2のクラスのタスクは、「順番が来なくても」よく、すなわちサイクル内でこのクラスのタスクが呼び出されない場合に、システムの観点から重大な結果をもたらさないことが、成立しなければならない。そして、ランスルーまたはサイクル当たり、クリティカルなタスクの最も長いものより長く続く、少なくとも1つのクリティカルでないタスクが存在しなければならない(ここでも、アイドルタイムとして実現することができる)。(上の図3および図4の場合と同様の考え方である。)
ランスルー内に、このランスルー内で処理されるべき、タスクT1、…、Tn(すべてクリティカル)が存在すると、仮定する。さらに、Tnの後ろに、クリティカルではなく、かつ各個々のTiよりも長い、少なくとも1つのタスクSが存在するものとする。そのために図5aには、1つのランスルーのために順序T1、T2、T3、T4、T5およびSを有する、エラーのあるタスクのない、シーケンスが示されている。
例えば図5bのT3におけるように、Ti内でエラーが検出された場合に、Ti(T3)の結果は重要でないと説明されて、前の例とは異なり、他のタスク(T4、T5)が処理される。Tn(T5)が処理された後に、Ti(T3)がもう一度計算される。その場合の前提は、サイクルのタスクの結果が、同じサイクルの他のタスクによってさらに(必ず)必要とされることを、要求しないシステムデザインである。というのは、その場合にはタスクの順序が維持されないからである。
このシステムの考え方は、図1と2の説明にしたがって、それに応じた装置によって実施される。したがって、本発明の実施形態は、上記に限られず、例えば、各実施形態は、本発明に基づく他の各々の実施形態と組み合わせることができる。
それによって本発明に係る実施形態に基づいて、特にFO特性(FO:Fail Operation(al),Fault Operation(al))自体を極めて短い回復時間で再び回復させることが可能な、過渡的エラーに関する最適なFO特性を得ることができる。この考え方は、時間制御されるシステムにおいても極めて良好に使用可能であり、および、それに向けて最適化することができる。
本発明の実施形態に係るコンピュータプログラムを処理する方法を示すフローチャートである。 本発明の実施形態に係る計算装置を示す説明図である。 本発明の実施形態に係る、タスク繰返しを組み込むための第1の実施例を示す説明図である。 本発明の実施形態に係る、タスク繰返しを組み込むための第2の実施例を示す説明図である。 本発明の実施形態に係る、タスク繰返しを組み込むための第3の実施例を示す説明図である。

Claims (17)

  1. 計算装置(20)上でコンピュータプログラム(23)を実行する方法であって
    前記コンピュータプログラム(23)複数のプログラムオブジェクトを有し、前記計算装置(20)上で前記コンピュータプログラム(23)を実行中にエラーが検出され、
    前記プログラムオブジェクトが少なくとも2つのクラスに区分され、前記エラーが検出された場合に第1のクラスのプログラムオブジェクトの実行が繰り返され、第2のクラスのプログラムオブジェクトの実行が繰り返されず、
    実行のために供給された前記第1のクラスのプログラムオブジェクト内でエラーが検出された場合に、前記第1のクラスのプログラムオブジェクトが所定の状態移行されて前記所定の状態から再開され、後する前記第1のクラスの他のプログラムオブジェクトの実行シフトされることを特徴とする、コンピュータプログラムを実行する方法。
  2. 再開されるクラスのプログラムオブジェクトについてのみエラーが検出されることを特徴とする、請求項に記載のコンピュータプログラムを実行する方法。
  3. すべてのプログラムオブジェクトのためランスルーに全計算時間が設定され、エラーが検出された場合に再開される前記第1のクラスのプログラムオブジェクトエラーのないランスルー前記全計算時間の最大50%を得るように、前記全計算時間が区分されることを特徴とする、請求項に記載のコンピュータプログラムを実行する方法。
  4. 前記異なるクラスのプログラムオブジェクトが交互に実行されることを特徴とする、請求項に記載のコンピュータプログラムを実行する方法。
  5. エラーを伴う前記第1のクラスのプログラムオブジェクトが、前記第1のクラスのプログラムオブジェクトに続く前記第2のクラスのプログラムオブジェクトの代りに実行されることを特徴とする、請求項に記載のコンピュータプログラムを実行する方法。
  6. 前記プログラムオブジェクト前記コンピュータプログラム(23)のタスクとして形成され、エラーが検出された場合に少なくとも1つのタスクが再び実行されることを特徴とする、請求項1に記載のコンピュータプログラムを実行する方法。
  7. エラー検出された時に実行されていたプログラムオブジェクトが再び実行されることを特徴とする、請求項1または6に記載のコンピュータプログラムを実行する方法。
  8. 前記プログラムオブジェクトの実行中に、前記プログラムオブジェクトの少なくとも1つの所定の状態が生成されて記憶されることを特徴とする、請求項1に記載のコンピュータプログラムを実行する方法。
  9. 前記プログラムオブジェクトの実行開始時に、前記プログラムオブジェクトの少なくとも1つの所定の状態が生成されて記憶されることを特徴とする、請求項8に記載のコンピュータプログラムを実行する方法。
  10. 前記計算装置(20)自動車内で使用されることを特徴とする、請求項1に記載のコンピュータプログラムを実行する方法。
  11. 前記計算装置(20)が自動車制御装置内で使用されることを特徴とする、請求項10に記載のコンピュータプログラムを実行する方法。
  12. 前記コンピュータプログラム(23)の実行中で前記プログラムオブジェクトの実行前に、前記プログラムオブジェクトの実行に必要な変量の値が記憶されることを特徴とする、請求項1に記載のコンピュータプログラムを実行する方法。
  13. 前記コンピュータプログラム(23)が期間内で周期的に実行される場合において
    エラーが検出された場合に、前記コンピュータプログラム(23)の前記期間予め設定可能なジャンプバック点の特定のプログラムオブジェクトジャンプバックされることを特徴とする、請求項1に記載のコンピュータプログラムを実行する方法。
  14. 計算装置(20)上で実行可能な駆動システム(25)であって、
    前記駆動システム(25)請求項1から13のいずれか1項に記載の方法を実行するためにプログラミングされ、
    前記計算装置(20)上で実行された場合に請求項1から13のいずれか1項に記載の方法を実行することを特徴とする、駆動システム。
  15. 複数のプログラムオブジェクトを有するコンピュータプログラム(23)を実行する計算装置(20)であって
    前記計算装置(20)、前記計算装置(20)上で前記コンピュータプログラム(23)の実行中にエラーを検出するエラー検出機構を有し、
    前記コンピュータプログラム(23)が複数のプログラムオブジェクトを有し、前記計算装置(20)上で前記コンピュータプログラム(23)を実行中に前記エラーが検出され、
    前記プログラムオブジェクトが少なくとも2つのクラスに区分され、前記エラーが検出された場合に第1のクラスのプログラムオブジェクトの実行が繰り返され、第2のクラスのプログラムオブジェクトの実行が繰り返されず、
    前記計算装置(20)は、実行のために供給された前記第1のクラスのプログラムオブジェクト内でエラーが検出された場合に、前記第1のクラスのプログラムオブジェクトを所定の状態に移行して前記所定の状態から再開し、かつ後続する前記第1のクラスの他のプログラムオブジェクトの実行をシフトするエラー処理機構を有することを特徴とする、計算装置。
  16. 前記エラー処理機構前記エラーが検出された場合に前記第1のクラスの少なくとも1つのプログラムオブジェクトを再開するトリガー論理を有していることを特徴とする、請求項15に記載の計算装置。
  17. 前記計算装置(20)上で、リアルタイム駆動システム(25)が実行されることを特徴とする、請求項15に記載の計算装置。
JP2007537272A 2004-10-25 2005-10-19 コンピュータプログラムを処理する方法、駆動システム、および計算装置 Expired - Fee Related JP4596488B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102004051967A DE102004051967A1 (de) 2004-10-25 2004-10-25 Verfahren, Betriebssystem und Rechengerät zum Abarbeiten eines Computerprogramms
PCT/EP2005/055390 WO2006045733A2 (de) 2004-10-25 2005-10-19 Verfahren, betriebssystem und rechengerät zum abarbeiten eines computerprogramms

Publications (2)

Publication Number Publication Date
JP2008518292A JP2008518292A (ja) 2008-05-29
JP4596488B2 true JP4596488B2 (ja) 2010-12-08

Family

ID=36129013

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007537272A Expired - Fee Related JP4596488B2 (ja) 2004-10-25 2005-10-19 コンピュータプログラムを処理する方法、駆動システム、および計算装置

Country Status (7)

Country Link
US (1) US7711985B2 (ja)
EP (1) EP1812853B1 (ja)
JP (1) JP4596488B2 (ja)
CN (1) CN100511165C (ja)
AT (1) ATE413646T1 (ja)
DE (2) DE102004051967A1 (ja)
WO (1) WO2006045733A2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008011848A1 (de) * 2006-07-26 2008-01-31 Nokia Siemens Networks Gmbh & Co. Kg Verfahren und system zur erneuten berechnung von gebühren eines bereits mit anderen, auch fehlerhaften tarifparametern vergebührten ereignisses
EP2568346B1 (en) 2011-09-06 2015-12-30 Airbus Operations Robust system control method with short execution deadlines
US9734006B2 (en) * 2015-09-18 2017-08-15 Nxp Usa, Inc. System and method for error detection in a critical system
US11305810B2 (en) 2020-04-24 2022-04-19 Steering Solutions Ip Holding Corporation Method and system to synchronize non-deterministic events

Family Cites Families (11)

* 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
JPH10326220A (ja) * 1997-05-27 1998-12-08 Toshiba Corp ファイルシステムおよびファイル管理方法
JPH117431A (ja) * 1997-06-16 1999-01-12 Hitachi Ltd 複数コンピュータで実行する業務の障害回復システム
US6205542B1 (en) * 1997-12-24 2001-03-20 Intel Corporation Processor pipeline including replay
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
DE102004037713A1 (de) 2004-08-04 2006-03-16 Robert Bosch Gmbh Verfahren, Betriebssystem und Rechengerät zum Abarbeiten eines Computerprogramms

Also Published As

Publication number Publication date
JP2008518292A (ja) 2008-05-29
WO2006045733A3 (de) 2006-07-20
CN101048742A (zh) 2007-10-03
WO2006045733A2 (de) 2006-05-04
DE502005005915D1 (de) 2008-12-18
CN100511165C (zh) 2009-07-08
EP1812853B1 (de) 2008-11-05
US7711985B2 (en) 2010-05-04
DE102004051967A1 (de) 2006-04-27
ATE413646T1 (de) 2008-11-15
US20080162989A1 (en) 2008-07-03
EP1812853A2 (de) 2007-08-01

Similar Documents

Publication Publication Date Title
JP4728334B2 (ja) コンピュータプログラムを処理する方法、オペレーティングシステムおよび計算装置
JP4648396B2 (ja) コンピュータプログラムを処理する方法、駆動システムおよび計算装置
US9032258B2 (en) Safety system challenge-and-response using modified watchdog timer
CN101243407B (zh) 用于控制计算器系统的方法和装置
US20120317576A1 (en) method for operating an arithmetic unit
JP4903149B2 (ja) コンピュータシステム上でコンピュータプログラムを処理する方法
JP2006164277A (ja) プロセッサにおけるエラー除去装置および方法,プロセッサ
JP4596488B2 (ja) コンピュータプログラムを処理する方法、駆動システム、および計算装置
CN108694094B (zh) 用于处理存储器访问操作的装置和方法
US8612991B2 (en) Dynamic critical-path recalculation facility
TWI498820B (zh) 具有用於分支錯誤預測之第二跳躍執行單元的處理器
US20040073836A1 (en) Predecessor and successor type multiplex system
US20080133975A1 (en) Method for Running a Computer Program on a Computer System
JP2009129463A (ja) 車両制御装置のリアルタイムシステムにおける一時的エラーの処理方法
KR20100010390A (ko) 마이크로컴퓨터와 마이크로컴퓨터의 제어방법
CN110673975B (zh) 一种星载计算机软件的安全内核结构及安全运行方法
US7159152B2 (en) System with a monitoring device that monitors the proper functioning of the system, and method of operating such a system
Tarafdar et al. Software fault tolerance of concurrent programs using controlled re-execution
US20230398955A1 (en) In-vehicle use control system
US11048575B2 (en) Method and device for error handling in a communication between distributed software components
WO2001027764A1 (en) Software fault tolerance of concurrent programs using controlled re-execution
JP2008090656A (ja) プログラマブルコントローラ
JPS63263543A (ja) マルチレベルプログラミング方式
CN115629934A (zh) 监控方法、微控制器、计算机程序及其存储介质
EP1450255A1 (en) Microcontroller device for complex processing procedures and corresponding interrupt management process

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100511

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100701

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100817

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100916

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131001

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees