JP4903149B2 - コンピュータシステム上でコンピュータプログラムを処理する方法 - Google Patents

コンピュータシステム上でコンピュータプログラムを処理する方法 Download PDF

Info

Publication number
JP4903149B2
JP4903149B2 JP2007532882A JP2007532882A JP4903149B2 JP 4903149 B2 JP4903149 B2 JP 4903149B2 JP 2007532882 A JP2007532882 A JP 2007532882A JP 2007532882 A JP2007532882 A JP 2007532882A JP 4903149 B2 JP4903149 B2 JP 4903149B2
Authority
JP
Japan
Prior art keywords
error
computer system
execution
executed
processing
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
JP2007532882A
Other languages
English (en)
Other versions
JP2008513900A (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 JP2008513900A publication Critical patent/JP2008513900A/ja
Application granted granted Critical
Publication of JP4903149B2 publication Critical patent/JP4903149B2/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/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/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/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

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

Description

本発明は、少なくとも1つの計算ユニットを備えるコンピュータシステム上でコンピュータプログラムを処理する方法に関する。コンピュータプログラムは、少なくとも1つのランタイムオブジェクトを備える。ランタイムオブジェクトの実行中に生じたエラーは、エラー認識ユニットによって認識される。エラーの認識に際してエラー認識ユニットがエラー認識信号を生成する。
本発明は、また、コンピュータプログラムを実行可能なコンピュータシステムに関する。コンピュータプログラムは、少なくとも1つのランタイムオブジェクトを有する。コンピュータシステム上でランタイムオブジェクトを実行中に生じたエラーは、エラー認識ユニットによって認識可能である。
本発明は、さらに、コンピュータシステム上で実行可能なコンピュータプログラムと、コンピュータプログラムが記憶されたコンピュータ読取可能なデータ媒体に関する。
コンピュータ上でコンピュータプログラムを処理する際には、エラーが生じる場合がある。エラーは、ハードウェア(プロセッサ、バスシステム、周辺機器等)に起因するか、またはソフトウェア(アプリケーションプログラム、駆動システム、BIOS等)に起因するかで区別される。
エラーの発生に際して、さらに、恒久的エラーと過渡的エラーとが区別される。恒久的エラーは、常に存在し、例えばエラーを伴うハードウェアまたはエラーを伴ってプログラミングされたソフトウェアに起因する。対照的に、過渡的エラーは、一時的にのみ発生し、よって再現可能性および予測可能性が極めて低い。二進値により格納、伝送および/または処理されるデータでは、過渡的エラーは、例えば電磁的な影響または放射(アルファ放射、中性子放射)によって個々のビットが変化されることによって生じる。
通常、コンピュータプログラムは、複数のランタイムオブジェクトに分割され、それらが逐次的または並列的にコンピュータシステム上で実行される。ランタイムオブジェクトは、例えばプロセス、タスクまたはスレッドである。よって、コンピュータプログラムの実行中に生じるエラーは、実行されるランタイムオブジェクトに原理的に対応づけ可能である。
恒久的エラーの処理は、通常、コンピュータシステムの終了または少なくとも部分システムの終了に基づく。しかし、これらは、コンピュータシステムまたは部分システムの機能性がもはや提供されなくなるという欠点を有する。それにもかかわらず、特に安全上重要な環境で確実な動作を保証可能にするために、コンピュータシステムの部分システムが、例えば冗長的に設けられる。
過渡的エラーも、部分システムの終了によって頻繁に処理される。さらに、過渡的エラーの発生に際して、1つまたは複数の部分システムを終了し、新たに開始し、例えばセルフテストによってコンピュータプログラムのエラーを伴わない処理を論理的に決定(schliessen)することが知られている。新たなエラーが認識されなければ、部分システムは当該作業を続行する。この場合、エラーによって中断されたタスクもしくはその時点までに処理されたランタイムオブジェクトがさらに実行されないようにできる(いわゆるフォワードリカバリー)。フォワードリカバリーは、例えばリアルタイム処理可能なシステムに適用される。
特にリアルタイム処理不能なアプリケーションでは、コンピュータプログラムもしくはランタイムオブジェクトの予め設定可能な箇所にチェックポイントを設定することが知られている。過渡的エラーが生じ、その結果部分システムが新たに開始されると、タスクは、最後に処理されたチェックポイントで再び開始される。この種のバックワードリカバリーと称される方法は、例えば金融市場でトランザクションを実行するために用いられるコンピュータシステムに適用される。
発生した過渡的エラーを処理するための既知の方法は、コンピュータシステム全体または少なくとも部分システムが一時的に可用性を失うので、コンピュータプログラムの処理遅延およびデータ損失を生じる場合があるという欠点を有する。
よって、本発明の課題は、コンピュータシステム上でコンピュータプログラムを処理する際に生じるエラーを可能な限り柔軟に処理するとともに、コンピュータシステムの可用性を可能な限り高く保証することである。
発明を解決するための手段
上記課題を解決するために、冒頭に記載された種類の方法に基づいて、予め設定可能なエラー処理ルーチン群からランタイムオブジェクトに対応づけられた識別子に応じて1つの処理ルーチンが選択され、選択された処理ルーチンが実行されることが提案される。
本発明によれば、コンピュータシステム上で実行される1つまたは複数のランタイムオブジェクトに、少なくとも1つのエラー処理ルーチンを示す識別子が対応づけられる。ランタイムオブジェクトの実行中にエラーが生じると、ランタイムオブジェクトの識別子に相当するエラー処理ルーチンが選択されて実行される。識別子は、例えばランタイムオブジェクトのプログラミングの時点で、あるいはランタイムオブジェクトのコンピュータシステム上へのインストールの時点で、すでに決定可能である。よって、コンピュータシステムのプログラミングの時点、もしくはコンピュータプログラムのコンピュータシステム上へのインストールの時点で、エラーが生じた場合に実行すべきエラー処理ルーチンがすでに決定可能となる。
例えば、安全上重要および/またはクリティカルな機能に関するランタイムオブジェクトには、リアルタイム処理不能な機能に関するランタイムオブジェクトと異なる識別子が対応づけ可能である。これが、異なるランタイムオブジェクトで生じるエラーの非常に柔軟な処理を可能にする。
特に、本発明に基づく方法によれば、ランタイムオブジェクトの処理に際してエラーが生じた場合に、部分システムまたはさらにコンピュータシステム全体を常に再起動する必要がなくなる。むしろ、エラー処理機構の柔軟な選択が可能となる。よって、システム全体の可用性が著しく向上される。
本発明に基づく方法の望ましい展開によれば、エラー処理ルーチンは、付加的に、エラー認識ユニットによって生成されたエラー認識信号に応じて選択される。エラー認識ユニットは、例えば、エラーがハードウェアエラーであるか、もしくはソフトウェアエラーであるか、またはいずれのハードウェアユニット(プロセッサ、バスシステム、メモリ等)がエラーを生じさせたかを決定可能である。さらに、エラー認識ユニットは、発生したエラーが恒久的エラーであるか、または過渡的エラーであるかを決定可能である。このために、エラー認識ユニットは、各ランタイムオブジェクトに関して、発生したエラーの数を計数するカウンタを設けうる。所定のランタイムオブジェクトの実行に際して特に多くのエラーが生じれば、エラー認識ユニットは、恒久的エラーを論理的に決定(schliessen)可能であり、カウンタが非常に小さな値のみを有する場合とは異なるエラー認識信号を生成可能である。特に、エラー認識信号は、確定された変数に関する情報、例えばランタイムオブジェクトの処理に際してすでに生じたエラーの数の現在のカウンタ状態を内容として含むことが考えられる。これは、エラー処理ルーチンの特に柔軟な選択を可能にする。
コンピュータシステムが、例えば複数の計算ユニットを備えれば、ランタイムオブジェクトが実行されてエラーを生じた計算ユニットがエラー認識信号を用いて識別可能となる。同一のランタイムオブジェクトが、例えば複数の計算ユニット上で実行され、かつ計算ユニットが安全上の重要性を異にする様々な環境に対応づけられていれば、ランタイムオブジェクトに常に同一の識別子が対応づけられているにもかかわらず、ランタイムオブジェクトの処理中におけるエラーの発生に際して、ランタイムオブジェクトの各々が実行された計算ユニットに応じて、異なるエラー処理ルーチンを選択可能となる。
複数の計算ユニットが冗長的に設けられ、かつ計算ユニット上でランタイムオブジェクトが冗長的に実行されれば、エラー処理は、例えば、エラーを生じた計算ユニットから提供される結果を、後続処理に際して(例えば続いて多数決(Voting)により論理的に決定する際には)無視可能である。よって、発生したエラーの更なる柔軟な処理が可能となる。
望ましくは、実行されるランタイムオブジェクトおよび/またはランタイムオブジェクトの実行を特徴づける少なくとも1つの変数に応じて、エラー処理が実行される。この種の変数は、例えばランタイムオブジェクトに対応づけられた優先順位でありうる。よって、付加的に、実行されるランタイムオブジェクトの優先順位に応じて、エラー処理が実行可能となる。
ランタイムオブジェクトの実行を特徴づける変数は、すでに行われた、または与えられた処理時間を表すこともできる。例えばランタイムオブジェクトのロード直後にエラーが生じれば、ランタイムオブジェクト全体をもう一度ロードして実行させることもできる。しかし、ランタイムオブジェクトが与えられた処理時間のすでに終了直前にあり、あるいは他のランタイムオブジェクトが早急に処理されるべきであれば、処理中にエラーが生じたランタイムオブジェクトを単純に終了させることもできる。
ランタイムオブジェクトの実行を特徴づける変数は、さらに、他のランタイムオブジェクトとのデータ交換またはメモリアクセスが行われているか否かを記述することができる。この場合、エラー処理ルーチンの選択がこの記述を考慮することができる。
本発明に基づく方法の望ましい実施形態では、コンピュータシステムが複数の計算ユニットを備える。ランタイムオブジェクトは、少なくとも2つの計算ユニット上で冗長的に実行される。少なくとも2つの計算ユニットで冗長的に生じた結果の比較が実行され、結果が一致しない場合には、エラー認識信号が生成される。
複数の計算ユニットを備えるコンピュータシステムは、例えばデュアルコアアーキテクチャ(2つの計算ユニット)またはマルチプロセッサアーキテクチャ(複数の計算ユニット)と称される。本発明に基づく方法を用いて、特にランタイムオブジェクトの冗長的な処理に際して、特に柔軟なエラー処理が実行可能となる。
望ましくは、本方法は、車両内、特に車両制御装置内、または安全上重要なシステム内で用いられる。安全上重要なシステムは、例えば航空機の制御に用いられる。この分野では、過渡的エラーを系統的かつ柔軟に処理し、よって該当するシステムの可用性を可能な限り高くすることが特に重要である。
望ましくは、コンピュータシステムの少なくとも1つの計算ユニット上で駆動システムが動作し、識別子の評価および/またはエラー認識信号の評価および/またはエラー処理ルーチンの選択が駆動システムによって行われる。これにより、認識されたエラーの特に迅速かつ確実な処理が可能となる。というのは、駆動システムは、通常、発生したエラーの処理に必要とされるリソースへのアクセスを備えるためである。例えば、駆動システムは、いずれのランタイムオブジェクトがプロセッサ上でいつ実行されるかを決定する、いわゆるスケジューラを有する。スケジューラは、駆動システムに、特にランタイムオブジェクトを迅速に終了し、新たに開始し、またはランタイムオブジェクトの代りにエラー処理ルーチンを開始することを促すことができる。
本方法の望ましい実行形態では、予め設定可能なエラー処理ルーチン群内の少なくとも1つのエラー処理ルーチンが、次のエラー処理可能性のいずれかを実現する:
−動作を実行しない:発生したエラーが無視される。
−ランタイムオブジェクトの実行の中断:ランタイムオブジェクトの実行が中断され、例えば代りに他のランタイムオブジェクトが実行される。
−ランタイムオブジェクトの実行の中断およびランタイムオブジェクトの新たな起動の禁止:よって、実行中にエラーが生じたランタイムオブジェクトが再び実行されない。
−ランタイムオブジェクトの実行の繰返し。
−バックワードリカバリー:ランタイムオブジェクトの実行中にチェックポイントが設定され、エラーの発生に際して最後のチェックポイントへジャンプバックされる。
−フォワードリカバリー:ランタイムオブジェクトの実行が中断されて後続する他の時点で再び続行され、もしくはランタイムオブジェクトが新たに初期化されて現在の入力量で開始される。
−リセット:コンピュータシステム全体または部分システムが新たに開始される。
これらのエラー処理ルーチンは、発生したエラーの特に柔軟な処理を可能にする。
望ましくは、本発明に基づく方法は、過渡的エラーの処理に用いられる。しかし、望ましくは、エラー処理ルーチンの選択は、認識されたエラーが過渡的エラーおよび恒久的エラーのいずれであるかに応じて実行される。
認識された恒久的エラーは、例えば、ランタイムオブジェクトがもはや実行されず、または部分システムが恒久的に終了されることによって処理可能である。対照的に、認識された過渡的エラーは、単純に無視され、またはフォワードリカバリーを用いて処理可能である。
望ましくは、テストルーチンを用いてハードウェアテストが実行される。この場合、エラー認識信号は、テストルーチンの処理の結果に応じて生成される。よって、例えば、特にハードウェア障害が確実に認識可能となり、よって恒久的エラーが論理的に決定(geschlossen)可能となる。
望ましい実施形態では、ランタイムオブジェクトに、異なるエラー種類について異なる識別子が対応づけられる。例えば、ランタイムオブジェクトの処理中に恒久的エラーが認識されれば、ランタイムオブジェクトの処理中に過渡的エラーが生じた場合と異なるエラー処理ルーチンが選択可能となる。
さらに、ランタイムオブジェクトに、異なるランタイム環境について異なる識別子が対応づけられる。例えば、ランタイムオブジェクトに、安全上重要な環境で処理するための識別子、冗長的に設計された計算ユニット上で冗長的に処理するための他の識別子、およびさらにタイムクリティカルな環境で処理するための他の識別子が対応づけ可能である。本実施形態では、ランタイムオブジェクトの処理に際して生じたエラーのさらに柔軟な処理が可能となり、可用性がさらに向上される。
課題は、また、冒頭に記載された種類のコンピュータシステムによって、ランタイムオブジェクトに識別子が対応づけられ、予め設定可能なエラー処理ルーチン群から識別子に応じて1つの実行可能なエラー処理ルーチンが選択可能となることによって解決される。
本発明に基づく方法をコンピュータプログラムの形式で実現することが特に重要である。この場合、コンピュータプログラムは、コンピュータシステム上、特に計算ユニット上で実行可能であって、本発明に基づく方法を実行するためにプログラミングされている。この場合、本発明がコンピュータプログラムによって実行されるので、コンピュータプログラムは、コンピュータプログラムによる実行に適した方法と同様に、本発明を表す。コンピュータプログラムは、望ましくはコンピュータ読取可能なデータ媒体上に記憶されている。コンピュータ読取可能なデータ媒体として、例えばランダムアクセスメモリ、リードオンリーメモリ、フラッシュメモリ、デジタル多用途ディスクまたはコンパクトディスクの使用が可能である。
本発明の他の適用可能性および利点は、図面に示す実施例についての以下の説明から明らかにされる。
図1には、本発明に基づく方法の実施に適したコンピュータシステム1が図式的に示される。コンピュータシステム1は、2つの計算ユニット2、3を備える。計算ユニットは、例えば完全なプロセッサ(CPU)でありうる(いわゆるデュアルコアアーキテクチャ)。デュアルコアアーキテクチャは、プロセスもしくはランタイムオブジェクトが2つの計算ユニット2、3上でほぼ同時に実行されるように、2つの計算ユニット2、3を冗長的に動作させることを可能にする。計算ユニット2、3は、算術論理ユニット、いわゆるALU(Arithmetic Logical Unit)でありうる(デュアルALUアーキテクチャ)。
2つの計算ユニット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は、実行可能なランタイムオブジェクトの各々について、ランタイムオブジェクトに対応づけられた1つもしくは複数の識別子を内容として含む。メモリ領域9とプログラムメモリ4とを同一のメモリ素子上に形成することも、また異なるメモリ素子上に形成することも可能である。1つもしくは複数のメモリ素子は、例えば計算ユニット2もしくは計算ユニット3に対応づけられた作業メモリまたはキャッシュでありうる。
コンピュータシステム1については、他の多数の形態が考えられる。例えば、コンピュータシステム1が計算ユニットを1つのみ備えることも可能である。この場合、ランタイムオブジェクトの処理に際するエラーは、例えばエラー認識ユニット5によって蓋然性検査を用いて認識可能である。
特に、同一のランタイムオブジェクトを計算ユニット2、3上で連続して何回も実行可能である。この場合、エラー認識ユニット5は、各々に生じた結果を比較し、結果が互いに異なる際にエラーの存在を論理的に決定(schliessen)可能である。
さらに、コンピュータシステム1が3つ以上の計算ユニット2、3を備えることも考えられる。この場合、ランタイムオブジェクトは、例えば存在する3つの計算ユニット2、3上で冗長的に実行可能である。このようにして得られた結果の比較によって、エラー認識ユニット5がエラーの存在を認識可能である。
図2には、本発明に基づく方法のフロー図が示される。方法は、ステップ100で開始される。ステップ101では、スケジューラ7は、計算ユニット2、3に、ランタイムオブジェクトをプログラムメモリ4から読出して実行するように促す。
ステップ102では、ランタイムオブジェクトの処理に際してエラーの存在の有無が検査される。これは、例えば、計算ユニット2、3によって冗長的に計算された結果を比較するエラー認識ユニット5によって行われる。エラーが存在しなければ、ステップ101に戻って、計算ユニット2、3内で他のランタイムオブジェクトが実行される。
一方、ステップ102でエラーが認識されれば、ステップ103でエラー認識ユニットによってエラー認識信号が生成され、インターフェイス8を介して駆動システム6に伝達される。
ステップ104では、駆動システム6がエラーを伴うランタイムオブジェクトを確定する。この情報は、例えばスケジューラ7から取得可能である。
ステップ105では、ステップ104で確定されたランタイムオブジェクトに対応づけられた識別子が確定される。このために、例えば、メモリ領域9には、実行可能なランタイムオブジェクトの各々に対応づけられた識別子が記憶されるテーブルが格納可能である。
さらに、ランタイムオブジェクトに対応づけられた識別子がランタイムオブジェクト自体と共にプログラムメモリ4に記憶されることも可能である。ランタイムオブジェクトが実行のために計算ユニット2、3にロードされると、計算ユニット2、3の各々に対応づけられたメモリ領域、例えばレジスタに識別子が記憶可能である。この場合、駆動システム6は、計算ユニット2、3の各々にランタイムオブジェクトの識別子を要求可能である。
また、エラー認識ユニットがランタイムオブジェクトに対応づけられた識別子を確定し、例えばパラメータとして、エラー認識信号と共にインターフェイス8を介して駆動システムに提供することも考えられる。
ステップ106では、エラー認識信号およびランタイムオブジェクトに対応づけられた識別子に応じて、エラー処理ルーチンが選択される。この場合、ランタイムオブジェクトに対応づけられた識別子は、選択すべきエラー処理ルーチンを一義的に決定可能である。例えば、識別子は、エラーを伴うランタイムオブジェクトが中断されるべきであり、再び起動されるべきではないことを決定可能である。識別子は、同様に、予め設定されたチェックポイントにジャンプバックされて、そこからランタイムオブジェクトが新たに実行されるべきである(バックワードリカバリー)ことを決定可能である。
識別子は、さらに、フォワードリカバリーが実行されて、ランタイムオブジェクトの実行が繰り返されるべきであること、または更なるエラー処理が実行されるべきではないことを決定可能である。
特に、エラー認識ユニット5から駆動システム6に伝達されたエラー認識信号に、発生したエラーの種類に関する情報を含む(entnehmen)ことが効果的である。この種類は、例えば、それが過渡的エラーであるか、または恒久的エラーであるかを示すことができる。エラー信号は、さらに、このエラー信号に、エラーが生じた計算ユニット2、3に関する情報を含む(entnehmen)ように形成可能である。この場合、ランタイムオブジェクトに、例えば複数の識別子が対応づけ可能である。この場合、第1の識別子は、恒久的エラーの発生に際して実行すべきエラー処理ルーチンを記述可能である。一方、第2の識別子は、過渡的エラーの発生に際して実行すべきエラー処理ルーチンを記述可能である。これが結果として、さらに柔軟なエラー処理を可能にする。
特に、コンピュータシステム1がマルチプロセッサシステムとして、またはマルチALUシステムとして構成されている場合には、ランタイムオブジェクトが1つもしくは複数のプロセッサ上またはALU上で実行されているかに応じて、エラー処理ルーチンを選択することが効果的でありうる。この情報は、例えばエラー認識信号に含まれうる(entnommen)。この場合、ランタイムオブジェクトは、ランタイムオブジェクトが1つの計算ユニット2、3上でのみエラーを伴って実行された場合と、ランタイムオブジェクトが複数の計算ユニット2、3上でエラーを伴って実行された場合とで異なる識別子を備えうる。
ステップ107では、駆動システム6によって選択されたエラー処理ルーチンが実行されることでエラー処理が実行される。選択されたエラー処理ルーチンに応じて、駆動システムは、例えばスケジューラ7に、現在、計算ユニット2、3上で実行されているランタイムオブジェクトを中断し、計算された全ての値を棄却し、ランタイムオブジェクトを新たに開始させることを促すことが可能である。ステップ108では、エラー処理のための本発明に基づく方法が終了する。もちろん、ランタイムオブジェクトを逐次的に実行してエラーの存在を検査するという、図2に示すプログラムの処理は、この時点で必ずしも同様に終了しない。ステップ108に到達した際にプログラムの処理がまだ終了していない場合には、ステップ101にジャンプバック可能である(破線)。
図3には、実行すべきエラー処理ルーチンの選択に際して他の変数が考慮される、本発明に基づく方法の他の実施形態がフロー図を用いて示される。
方法は、ステップ200で開始される。ステップ201〜205は、図2に示されて説明されたステップ101〜105に相当する。
ステップ206では、ランタイムオブジェクトもしくはランタイムオブジェクトの実行を特徴づける変数が確定される。ランタイムオブジェクトを特徴づける変数は、例えばランタイムオブジェクトに対応づけられた安全上の重要性でありうる。ランタイムオブジェクトを特徴づける変数は、さらに、当該ランタイムオブジェクトによって計算された変数が必要とされるか、そして他のいずれのランタイムオブジェクトによって必要とされるか、または当該ランタイムオブジェクトによって計算された変数が他のランタイムオブジェクトに依存するか、そしていずれのランタイムオブジェクトに依存するかを記述可能である。よって、結果として、ランタイムオブジェクト相互の依存性を記述可能である。
ランタイムオブジェクトの実行を特徴づける変数は、例えば、エラーの発生時にランタイムオブジェクトによるメモリアクセスがすでに行われていたか、ランタイムオブジェクトのロード後に比較的すぐにエラーが生じたか、ランタイムオブジェクトによって計算すべき変数が他のランタイムオブジェクトによって差し迫って必要とされるか、および/またはランタイムオブジェクトの実行のためにさらに与えられる処理時間がどの程度であるかを記述可能である。この場合、これらの変数は、エラー処理ルーチンの選択に際して考慮可能である。例えば、ランタイムオブジェクト全体を新たに実行するために、もはや十分な時間が与えられなければ、バックワードリカバリーまたはフォワードリカバリーを実行するようにできる。
ステップ207では、恒久的エラーまたは過渡的エラーの区別が確定される。このために、所定のランタイムオブジェクトの実行に際してどの程度の頻度でエラーが生じるかを表す、例えばエラーカウンタを連動可能である。エラーは、特に頻繁にまたは常に生じるようであれば、恒久的エラーとして見なすことも可能である。
ステップ206と207とは、互いに独立しており、各々に個別に実行可能である。しかし、逆の順序でも実行可能である。さらに、ステップ206で確定された、ランタイムオブジェクトまたはランタイムオブジェクトの実行を特徴づける変数は、ステップ207でエラー種類を確定するための入力値として使用されることが考えられる。この場合、2つのステップ206および207は、記載の順序で処理される必要がある。そして、ステップ206および207は、必ずしも逐次的に処理される必要はなく、並列的にも処理可能である。
さらに、コンピュータシステム1の個々のハードウェアユニット、従って例えば計算ユニット2、3にエラーカウンタを対応づけることも可能である。例えば、コンピュータシステム1の計算ユニット2、3上で特に複数のランタイムオブジェクトの実行に際してエラーを伴うことが検出されれば、恒久的エラー(例えばハードウェアエラー)の存在が論理的に決定(geschlossen)可能である。
ステップ208では、エラー処理ルーチンが選択される。このために、ステップ205〜207で確定された変数、特にエラーを伴うランタイムオブジェクトに対応づけられた1つもしくは複数の識別子、ランタイムオブジェクトまたはランタイムオブジェクトの実行を特徴づける1つもしくは複数の変数、および発生したエラーの種類が考慮される。
エラー処理ルーチンは、例えば駆動システム6によって選択される。選択は、前述した変数を用いてデシジョンツリーの形式で実行可能である。
ステップ209では、エラー処理が実行されて、ステップ210ではエラー処理のための本発明に基づく方法が終了する。もちろん、ランタイムオブジェクトを逐次的に実行してエラーの存在を検査するという、図3に示すプログラムの処理は、この時点で必ずしも同様に終了しない。ステップ210に到達した際にプログラムの処理がまだ終了していない場合には、ステップ201にジャンプバック可能である(破線)。
よって、本発明に基づく方法によれば、コンピュータシステム上にランタイムオブジェクトをプログラミングもしくは実装またはインストールする時点ですでに、エラーの発生に際していずれのエラー処理ルーチンが実行されるべきであるかを決定可能である。これが、特に柔軟で、実行されるランタイムオブジェクトに適合されたエラー処理を可能にする。特に、本発明によれば、ランタイムオブジェクトに複数の識別子が対応づけ可能である。よって、エラー処理ルーチンの選択がさらに柔軟に構成可能となる。
望ましくは、エラーの種類(過渡的/恒久的)、ランタイムオブジェクト自体またはランタイムオブジェクトの実行を特徴づける変数を、エラー処理ルーチンの選択のために援用可能である。さらに、エラー認識ユニット5によって確定された情報、例えばエラーの発生時にランタイムオブジェクトが実行されていた計算ユニット2、3の識別(Identitaet)を、エラー処理ルーチンの選択に際して考慮可能である。この場合、考察されるランタイムオブジェクトが1つの計算ユニット2、3上でのみ、または2つの計算ユニット2、3上で同時に処理されるか/されていたかに関する情報から、ランタイムオブジェクトの当該処理時点で安全重要性が論理的に決定(geschlossen)可能である。さらに、コンピュータシステムおよび/またはコンピュータシステムの周辺(例えばセンサ変数の現在の値範囲および/または出力変数の値範囲)に関する他の情報を、ランタイム環境の現時点で安全重要性を評価するために援用可能である。よって、コンピュータシステム上でさらに柔軟なエラー処理が可能となる。
ステップ107もしくは209でエラー処理を実行中に、さらに、例えばエラー処理ルーチンによって促されたエラーを伴うランタイムオブジェクトの新たな実行が再びエラーをもたらすかを検査可能である。この場合、新たなエラー処理ルーチンを、しかし今度は他のエラー処理ルーチンを選択するようにできる。例えば、この場合には、システム全体もしくは部分システムを終了するようにできる。
本発明に基づく方法を実行するためのコンピュータシステムのコンポーネントを示すブロック図である。 本発明に基づく方法の第1の実施形態を示すフロー図である。 本発明に基づく方法の第2の実施形態を示すフロー図である。
符号の説明
1 コンピュータシステム
2、3 計算ユニット
4 プログラムメモリ
5 エラー認識ユニット
6 駆動システム
7 スケジューラ
8 インターフェイス
9 メモリ領域

Claims (20)

  1. 少なくとも1つの計算ユニット(2、3)を備えるコンピュータシステム(1)上でコンピュータプログラムを処理する方法であって、前記コンピュータプログラムがプログラム指令により実行される少なくとも1つのプロセスを備え、前記プロセスの実行中に生じたエラーがエラー認識ユニット(5)によって認識され、かつエラーの認識に際して前記エラー認識ユニット(5)がエラー認識信号を生成する、前記方法において、
    前記少なくとも1つの計算ユニット(2、3)に個別に各計算ユニット(2、3)のランタイムの環境を示すランタイム環境が対応付けられ、
    前記プロセスを実行する各計算ユニット(2、3)に対応付けられたランタイム環境と、前記プロセスに対応づけられた識別子とに応じて、予め設定可能なエラー処理ルーチン群から1つのエラー処理ルーチンが選択され、前記選択されたエラー処理ルーチンが実行されることを特徴とする、コンピュータプログラムを処理する方法。
  2. 前記エラー処理ルーチンが、付加的に、前記エラー認識信号に応じて選択されることを特徴とする、請求項1に記載の方法。
  3. 実行される前記プロセスおよび/または前記プロセスの実行を特徴づける少なくとも1つの変数に応じて、前記エラー処理が実行されることを特徴とする、請求項1または2に記載の方法。
  4. 前記プロセスの実行を特徴づける少なくとも1つの変数に応じて前記エラー処理が実行されるとき、前記プロセスの実行を特徴づける少なくとも1つの変数は、前記プロセスに割当て可能な処理時間および/または前記プロセスの実行に費やされた時間を示す変数であることを特徴とする、請求項3に記載の方法。
  5. 前記プロセスの実行を特徴づける少なくとも1つの変数に応じて前記エラー処理が実行されるとき、前記プロセスの実行を特徴づける少なくとも1つの変数は、前記プロセスによる結果が他のプロセスにより差し迫って必要とされるかを示す変数、および/または前記エラーの発生時に前記プロセスによるメモリアクセスが行われていたかを示す変数であることを特徴とする、請求項3に記載の方法。
  6. 前記コンピュータシステム(1)が複数の計算ユニット(2、3)を備え、前記プロセスが少なくとも2つの前記計算ユニット(2、3)上で冗長的に実行され、前記少なくとも2つの計算ユニット(2、3)で冗長的に生じた結果の比較が実行され、前記結果が一致しない場合には、エラー認識信号が生成されることを特徴とする、請求項1〜5のいずれか1項に記載の方法。
  7. 車両制御装置内で用いられることを特徴とする、請求項1〜6のいずれか1項に記載の方法。
  8. 安全上重要なシステム内で用いられることを特徴とする、請求項1〜7のいずれか1項に記載の方法。
  9. 前記コンピュータシステム(1)の少なくとも1つの計算ユニット(2、3)上で駆動システム(6)が動作し、前記識別子の評価および/または前記エラー認識信号の評価および/または前記エラー処理ルーチンの選択が駆動システム(6)によって行われることを特徴とする、請求項1〜8のいずれか1項に記載の方法。
  10. 前記予め設定可能なエラー処理ルーチン群内の少なくとも1つのエラー処理ルーチンが、次のエラー処理可能性、すなわち、a)動作を実行しない、b)前記プロセスの実行の中断、c)前記プロセスの実行の中断と前記プロセスの新たな起動の禁止、d)前記プロセスの実行の繰返し、e)バックワードリカバリー、f)フォワードリカバリー、g)リセットのいずれかを実現することを特徴とする、請求項1〜9のいずれか1項に記載の方法。
  11. 前記発生したエラーが過渡的エラーであることを特徴とする、請求項1〜10のいずれか1項に記載の方法。
  12. 前記エラー処理ルーチンの選択が、付加的に、前記認識されたエラーが過渡的エラーおよび恒久的エラーのいずれであるかに応じて実行されることを特徴とする、請求項1〜11のいずれか1項に記載の方法。
  13. テストルーチンを用いてハードウェアテストが実行され、前記テストルーチンの処理結果に応じて前記エラー認識信号が生成されることを特徴とする、請求項1〜12のいずれか1項に記載の方法。
  14. 前記プロセスには、前記プロセスの処理中に生じたエラーの種類に応じて異なるエラー処理ルーチンを選択するように識別子が対応づけられることを特徴とする、請求項1〜13のいずれか1項に記載の方法。
  15. 前記プロセスには、前記プロセスを実行する前記各計算ユニットに対応付けられたランタイム環境に応じて異なるエラー処理ルーチンを選択するように識別子が対応づけられることを特徴とする、請求項1〜14のいずれか1項に記載の方法。
  16. コンピュータシステム(1)上で実行可能なコンピュータプログラムであって、前記コンピュータシステム(1)上で実行された場合に、請求項1〜15のいずれか1項に記載の方法を実行することを特徴とする、コンピュータプログラム。
  17. 駆動システム(6)として形成されることを特徴とする、請求項16に記載のコンピュータプログラム。
  18. コンピュータシステム(1)上で実行可能なコンピュータプログラムが記憶されたコンピュータ読取可能なデータ媒体であって、
    前記コンピュータシステム(1)上で前記コンピュータプログラムが実行された場合に、請求項1〜15のいずれか1項に記載の方法を実行することを特徴とするコンピュータ読取可能なデータ媒体。
  19. 少なくとも1つの計算ユニット(2、3)を備え、コンピュータプログラムを実行可能なコンピュータシステム(1)であって、前記コンピュータプログラムがプログラム指令により実行される少なくとも1つのプロセスを備え、前記プロセスの実行中に生じたエラーがエラー認識ユニット(5)によって認識可能である、前記コンピュータシステムにおいて、
    前記少なくとも1つの計算ユニット(2、3)に個別に各計算ユニット(2、3)のランタイムの環境を示すランタイム環境が対応付けられ、
    前記プロセスを実行する各計算ユニット(2、3)に対応付けられたランタイム環境と、前記プロセスに対応づけられた識別子とに応じて、予め設定可能なエラー処理ルーチン群から1つのエラー処理ルーチンが選択され、前記選択されたエラー処理ルーチンが実行されることを特徴とするコンピュータシステム。
  20. 請求項1〜15のいずれか1項に記載の方法を実行するためのコンピュータプログラムを備えることを特徴とする、請求項19に記載のコンピュータシステム。
JP2007532882A 2004-09-25 2005-09-12 コンピュータシステム上でコンピュータプログラムを処理する方法 Expired - Fee Related JP4903149B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE102004046611.4 2004-09-25
DE102004046611A DE102004046611A1 (de) 2004-09-25 2004-09-25 Verfahren zur Abarbeitung eines Computerprogramms auf einem Computersystem
PCT/EP2005/054513 WO2006032617A1 (de) 2004-09-25 2005-09-12 Verfahren zur abarbeitung eines computerprogramms auf einem computersystem

Publications (2)

Publication Number Publication Date
JP2008513900A JP2008513900A (ja) 2008-05-01
JP4903149B2 true JP4903149B2 (ja) 2012-03-28

Family

ID=35447817

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007532882A Expired - Fee Related JP4903149B2 (ja) 2004-09-25 2005-09-12 コンピュータシステム上でコンピュータプログラムを処理する方法

Country Status (6)

Country Link
US (1) US8316261B2 (ja)
EP (1) EP1794680A1 (ja)
JP (1) JP4903149B2 (ja)
CN (1) CN101027647B (ja)
DE (1) DE102004046611A1 (ja)
WO (1) WO2006032617A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070294584A1 (en) * 2006-04-28 2007-12-20 Microsoft Corporation Detection and isolation of data items causing computer process crashes
US20090024870A1 (en) * 2007-07-20 2009-01-22 Telefonaktiebolaget Lm Ericsson System and method for managing application server responses in ip multimedia subsystem
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
DE102009030774B4 (de) * 2009-06-27 2020-01-30 Bayerische Motoren Werke Aktiengesellschaft Verfahren zur rechnergestützten Erfassung von Fehlern beim Ablauf von einem oder mehreren softwarebasierten Programmen in einem System aus Komponenten
WO2013073761A1 (ko) * 2011-11-14 2013-05-23 (주)네오위즈게임즈 비정상 종료 처리 방법, 이를 수행하는 비정상 종료 처리 서버 및 이를 저장한 기록 매체
DE102013208666A1 (de) 2013-05-13 2014-11-13 Zf Friedrichshafen Ag Verfahren und Vorrichtung zur Absicherung eines Errorhandlers für eine Abarbeitung eines Computerprogramms auf einem Rechnersystem
DE102015222168B4 (de) * 2015-11-11 2024-02-22 Kuka Roboter Gmbh Verfahren und computerprogramm zur korrektur von fehlern eines manipulatorsystems
DE102015222164A1 (de) 2015-11-11 2017-05-11 Kuka Roboter Gmbh Verfahren und Computerprogramm zur Erzeugung einer grafischen Benutzerschnittstelle eines Manipulatorprogramms
US10216521B2 (en) * 2017-06-20 2019-02-26 Nvidia Corporation Error mitigation for resilient algorithms
KR102259928B1 (ko) * 2017-06-26 2021-06-03 에스케이하이닉스 주식회사 오류 관리 시스템 및 이를 포함하는 데이터 처리 시스템
WO2019174709A1 (de) * 2018-03-12 2019-09-19 Celonis Se Verfahren zur behebung von prozessanomalien
CN116319269B (zh) * 2023-05-19 2023-09-15 南方电网数字电网研究院有限公司 具备通讯故障自检及快速隔离的新能源边缘侧通信模块

Family Cites Families (29)

* 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
JP2779559B2 (ja) * 1991-09-04 1998-07-23 本田技研工業株式会社 レーダ装置
JPH0635758A (ja) 1992-07-20 1994-02-10 Fujitsu Ltd プログラム監視制御装置
DE4439060A1 (de) 1994-11-02 1996-05-09 Teves Gmbh Alfred Mikroprozessoranordnung für ein Fahrzeug-Regelungssystem
US5619409A (en) * 1995-06-12 1997-04-08 Allen-Bradley Company, Inc. Program analysis circuitry for multi-tasking industrial controller
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
US6334193B1 (en) * 1997-05-29 2001-12-25 Oracle Corporation Method and apparatus for implementing user-definable error handling processes
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
CN1141644C (zh) * 1999-11-20 2004-03-10 深圳市中兴通讯股份有限公司 一种嵌入处理机内存的检测和监控方法
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 情報再生装置、情報処理方法及び情報記録媒体
DE10056408C1 (de) 2000-11-14 2002-03-07 Bosch Gmbh Robert Vorrichtung zur Überwachung eines Prozessors
US7058927B2 (en) * 2000-12-21 2006-06-06 Veritas Operating Corporation Computer software run-time analysis systems and methods
US6950978B2 (en) * 2001-03-29 2005-09-27 International Business Machines Corporation Method and apparatus for parity error recovery
US6931571B2 (en) * 2001-11-20 2005-08-16 Hewlett-Packard Development Company, L.P. Method and apparatus for handling transient memory errors
US7194671B2 (en) * 2001-12-31 2007-03-20 Intel Corporation Mechanism handling race conditions in FRC-enabled processors
US7418618B2 (en) * 2003-01-08 2008-08-26 Transpacific Ip Ltd. Error reporting and correcting method for peripheral
US20040078650A1 (en) * 2002-06-28 2004-04-22 Safford Kevin David Method and apparatus for testing errors in microprocessors
US7251755B2 (en) * 2004-02-13 2007-07-31 Intel Corporation Apparatus and method for maintaining data integrity following parity error detection
US7716652B2 (en) * 2004-03-30 2010-05-11 Symantec Corporation System and methods for tracing transactions
US7263631B2 (en) * 2004-08-13 2007-08-28 Seakr Engineering, Incorporated Soft error detection and recovery
DE102004046288A1 (de) 2004-09-24 2006-03-30 Robert Bosch Gmbh Verfahren zur Abarbeitung eines Computerprogramms auf einem Computersystem

Also Published As

Publication number Publication date
US8316261B2 (en) 2012-11-20
EP1794680A1 (de) 2007-06-13
DE102004046611A1 (de) 2006-03-30
CN101027647B (zh) 2013-05-01
US20080201618A1 (en) 2008-08-21
WO2006032617A1 (de) 2006-03-30
CN101027647A (zh) 2007-08-29
JP2008513900A (ja) 2008-05-01

Similar Documents

Publication Publication Date Title
JP4903149B2 (ja) コンピュータシステム上でコンピュータプログラムを処理する方法
US8140908B2 (en) System and method of client side analysis for identifying failing RAM after a user mode or kernel mode exception
US8677189B2 (en) Recovering from stack corruption faults in embedded software systems
EP0505706A1 (en) Alternate processor continuation of the task of a failed processor
JP2008513899A (ja) コンピュータシステム上でコンピュータプログラムを処理する方法
US20080098264A1 (en) Program debug method and apparatus
JP5611756B2 (ja) プログラム・フロー制御
JP4728334B2 (ja) コンピュータプログラムを処理する方法、オペレーティングシステムおよび計算装置
US7543186B2 (en) System and method for implementing software breakpoints
CN111133418B (zh) 在例外屏蔽更新指令之后允许未中止的事务处理
US5826078A (en) Job re-execution system and controlling method thereof
CN109885489B (zh) 驱动程序中数据竞争检测方法及装置
US6725368B1 (en) System for executing a post having primary and secondary subsets, wherein the secondary subset is executed subsequently to the primary subset in the background setting
US11669438B2 (en) Method for testing a system
EP2876557A1 (en) Detecting a read access to unallocated or uninitialized memory
US7921329B2 (en) Worker thread corruption detection and remediation
US7613950B2 (en) Detecting floating point hardware failures
US20190034259A1 (en) Systems and Methods for Implementing a Thread Trace Log
US11099958B2 (en) Instruction generation for validation of processor functionality
CN101048742A (zh) 执行计算机程序的方法、操作系统以及计算设备
US11847017B2 (en) Method for determining a reset cause of an embedded controller for a vehicle and an embedded controller for a vehicle to which the method is applied
CN113742252A (zh) 一种检测内存乱序的方法及装置
US20210090677A1 (en) Apparatus and method for executing debug instructions
US20240061765A1 (en) Distributed debugging environment for a continuous integration pipeline
JP3185780B2 (ja) システム監視装置及びその方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100622

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100922

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110201

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110502

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: 20111129

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: 20120104

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: 20150113

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

LAPS Cancellation because of no payment of annual fees