(57)【要約】コンピュータシステム（１）上でコンピュータプログラムを処理する際に生じたエラーを可能な限り柔軟に処理し、その場合にコンピュータシステムの可用性を可能な限り高く保証するために、エラーの発生に際してエラー認識ユニット（５）によって生成されたエラー認識信号に識別子が対応づけられており、識別子に応じて、予め設定可能なエラー処理ルーチン群から１つのエラー処理ルーチンが選択され、選択されたエラー処理ルーチンが実行されることが提案される。【選択図】図１
2008513899.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータシステム（１）上でコンピュータプログラムを処理する方法であって、前記コンピュータプログラムが少なくとも１つのランタイムオブジェクトを備え、前記ランタイムオブジェクトの実行中に生じたエラーがエラー認識ユニット（５）によって認識される、方法において、
前記エラー認識ユニット（５）がエラーの認識に際してエラー認識信号を生成し、前記エラー認識信号に識別子が対応づけられており、前記識別子に応じて、予め設定可能なエラー処理ルーチン群から１つのエラー処理ルーチンが選択され、前記選択されたエラー処理ルーチンが実行されることを特徴とする、コンピュータプログラムを処理する方法。
【請求項２】
前記エラー認識信号が外部信号であることを特徴とする、請求項１に記載の方法。
【請求項３】
前記ランタイムオブジェクトおよび／または前記ランタイムオブジェクトの実行を特徴づける少なくとも１つの変数が検出され、少なくとも１つの前記検出された変数に応じて、前記エラー認識信号が生成されることを特徴とする、請求項１または２に記載の方法。
【請求項４】
前記検出された変数は、予め設定されたイベントまででさらに与えられる時間間隔を記述することを特徴とする、請求項３に記載の方法。
【請求項５】
前記コンピュータシステム（１）が複数の計算ユニット（２、３）を備え、前記ランタイムオブジェクトが少なくとも２つの前記計算ユニット（２、３）上で並列的に実行され、少なくとも２つの前記計算ユニット（２、３）で並列的に生じた結果の比較が実行され、前記結果が一致しない場合には、エラー認識信号が生成されることを特徴とする、請求項１〜４のいずれかに記載の方法。
【請求項６】
車両内、特に車両制御装置内で用いられることを特徴とする、請求項１〜５のいずれかに記載の方法。
【請求項７】
安全上重要なシステム内で用いられることを特徴とする、請求項１〜６のいずれかに記載の方法。
【請求項８】
予め設定可能な前記エラー処理ルーチン群内の少なくとも１つのエラー処理ルーチンが、次のエラー処理可能性、すなわち、ａ）動作を実行しない、ｂ）前記ランタイムオブジェクトの実行の中断、ｃ）前記ランタイムオブジェクトの実行の中断および前記ランタイムオブジェクトの新たな起動の禁止、ｄ）前記ランタイムオブジェクトの実行の繰返し、ｅ）バックワードリカバリー、ｆ）フォワードリカバリー、ｇ）リセットのいずれかを実現することを特徴とする、請求項１〜７のいずれかに記載の方法。
【請求項９】
前記発生したエラーが過渡的エラーであることを特徴とする、請求項１〜８のいずれかに記載の方法。
【請求項１０】
前記エラー処理ルーチンの選択が、付加的に、前記認識されたエラーが過渡的エラーおよび恒久的エラーのいずれであるかに応じて実行されることを特徴とする、請求項１〜９のいずれかに記載の方法。
【請求項１１】
前記コンピュータシステム（１）の少なくとも１つの計算ユニット（２、３）上で駆動システム（６）が動作し、前記エラー処理ルーチンの選択が前記駆動システム（６）によって行われることを特徴とする、請求項１〜１０のいずれかに記載の方法。
【請求項１２】
コンピュータシステム（１）上で実行可能なコンピュータプログラムであって、前記コンピュータシステム（１）上で実行された場合に、請求項１〜１２のいずれかに記載の方法を実行することを特徴とする、コンピュータプログラム。
【請求項１３】
駆動システム（６）として形成されることを特徴とする、請求項１２に記載のコンピュータプログラム。
【請求項１４】
コンピュータシステム（１）上で実行可能なコンピュータプログラムが記憶されたコンピュータ読取可能なデータ媒体であって、
前記コンピュータシステム（１）上で前記コンピュータプログラムが実行された場合に、請求項１〜１１のいずれかに記載の方法を実行することを特徴とするコンピュータ読取可能なデータ媒体。
【請求項１５】
コンピュータプログラムを実行可能なコンピュータシステム（１）であって、前記コンピュータプログラムが少なくとも１つのランタイムオブジェクトを備え、前記ランタイムオブジェクトの実行中に生じたエラーを認識するエラー認識ユニット（５）を備える、前記コンピュータシステムにおいて、
エラーの発生に際して前記エラー認識ユニット（５）によって生成されるエラー認識信号に識別子が対応付けられており、前記コンピュータシステム（１）は、前記識別子に応じて、予め設定可能なエラー処理ルーチン群から１つの実行可能なエラー処理ルーチンを選択する手段を備えることを特徴とするコンピュータシステム。
【請求項１６】
請求項１〜１１のいずれかに記載の方法に従ってエラー処理ルーチンを選択するためのコンピュータプログラムを備えることを特徴とする、請求項１５に記載のコンピュータシステム。
【請求項１７】
前記コンピュータプログラムが駆動システム（６）として形成されることを特徴とする、請求項１６に記載のコンピュータシステム。
【請求項１８】
少なくとも１つのランタイムオブジェクトを実行可能な少なくとも１つのハードウェアコンポーネントを備えるコンピュータシステム（１）内のエラー認識ユニット（５）であって、前記ランタイムオブジェクトの実行中に生じたエラーを認識する、前記エラー認識ユニットにおいて、
前記エラー認識ユニット（５）は、前記認識されたエラーの少なくとも１つの特性に応じてエラー認識信号を生成する手段を備えており、エラー認識信号には、予め設定可能なエラー処理ルーチン群から１つのエラー処理ルーチンを選択可能な識別子が対応づけ可能であることを特徴とするエラー認識ユニット。
【請求項１９】
前記認識されたエラーの少なくとも１つの特性が、前記認識されたエラーが過渡的なエラーおよび恒久的なエラーのいずれであるか、前記エラーがエラーを伴うランタイムオブジェクトおよびエラーを伴うハードウェアコンポーネントのいずれによるものか、および／または前記エラーの発生中にいずれのランタイムオブジェクトが実行されたか、を表すことを特徴とする、請求項１８に記載のエラー認識ユニット。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、少なくとも１つの計算ユニットを備えるコンピュータシステム上でコンピュータプログラムを処理する方法に関する。コンピュータプログラムは、少なくとも１つのランタイムオブジェクトを備える。ランタイムオブジェクトの実行中に生じたエラーは、エラー認識ユニットによって認識される。エラーの認識に際してエラー認識ユニットがエラー認識信号を生成する。
【０００２】
本発明は、また、コンピュータプログラムを実行可能なコンピュータシステムに関する。コンピュータプログラムは、少なくとも１つのランタイムオブジェクトを備える。コンピュータシステム上でランタイムオブジェクトを実行中に生じたエラーは、エラー認識ユニットによって認識可能である。
【０００３】
本発明は、また、少なくとも１つのランタイムオブジェクトを実行可能な少なくとも１つのハードウェアコンポーネントを備える、コンピュータシステム内のエラー認識ユニットに関し、エラー認識ユニットは、ランタイムオブジェクトの実行中に生じたエラーを認識する。
【０００４】
本発明は、さらに、コンピュータシステム上で実行可能なコンピュータプログラムと、コンピュータプログラムが記憶されたコンピュータ読取可能なデータ媒体に関する。
【背景技術】
【０００５】
コンピュータ上でコンピュータプログラムを処理する際には、エラーが生じる場合がある。エラーは、ハードウェア（プロセッサ、バスシステム、周辺機器等）に起因するか、またはソフトウェア（アプリケーションプログラム、駆動システム、ＢＩＯＳ等）に起因するかで区別される。
【０００６】
エラーの発生に際して、さらに、恒久的エラーと過渡的エラーとが区別される。恒久的エラーは、常に存在し、例えばエラーを伴うハードウェアまたはエラーを伴ってプログラミングされたソフトウェアに起因する。対照的に、過渡的エラーは、一時的にのみ発生し、よって再現可能性および予測可能性が極めて低い。二進値により格納、伝送および／または処理されるデータでは、過渡的エラーは、例えば電磁的な影響または放射（アルファ放射、中性子放射）によって個々のビットが変化されることによって生じる。
【０００７】
通常、コンピュータプログラムは、複数のランタイムオブジェクトに分割され、それらが逐次的または並列的にコンピュータシステム上で実行される。ランタイムオブジェクトは、例えばプロセス、タスクまたはスレッドである。よって、コンピュータプログラムの実行中に生じるエラーは、実行されるランタイムオブジェクトに原理的に対応づけ可能である。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
恒久的エラーの処理は、通常、コンピュータシステムの終了または少なくとも個々のハードウェアコンポーネントもしくは部分システムの終了に基づく。しかし、これらは、コンピュータシステムまたは部分システムの機能性がもはや提供されなくなるという欠点を有する。それにもかかわらず、特に安全上重要な環境で確実な動作を保証可能にするために、コンピュータシステムの部分システムが、例えば冗長的に設けられる。
【０００９】
過渡的エラーも、部分システムの終了によって頻繁に処理される。さらに、過渡的エラーの発生に際して、１つまたは複数の部分システムを終了し、新たに開始し、例えばセルフテストによってコンピュータプログラムのエラーを伴わない処理を論理的に決定（schliessen）することが知られている。新たなエラーが認識されなければ、部分システムは当該作業を続行する。この場合、エラーによって中断されたタスクもしくはその時点までに処理されたランタイムオブジェクトがさらに実行されないようにできる（いわゆるフォワードリカバリー）。フォワードリカバリーは、例えばリアルタイム処理可能なシステムに適用される。
【００１０】
特にリアルタイム処理不能なアプリケーションでは、コンピュータプログラムもしくはランタイムオブジェクトの予め設定可能な箇所にチェックポイントを設定することが知られている。過渡的エラーが生じ、その結果部分システムが新たに開始されると、タスクは、最後に処理されたチェックポイントで再び開始される。この種のバックワードリカバリーと称される方法は、例えば金融市場でトランザクションを実行するために用いられるコンピュータシステムに適用される。
【００１１】
発生した過渡的エラーを処理するための既知の方法は、コンピュータシステム全体または少なくとも部分システムが一時的に可用性を失うので、コンピュータプログラムの処理遅延およびデータ損失を生じる場合があるという欠点を有する。
【００１２】
よって、本発明の課題は、コンピュータシステム上でコンピュータプログラムを処理する際に生じるエラーを可能な限り柔軟に処理するとともに、コンピュータシステムの可用性を可能な限り高く保証することである。
【課題を解決するための手段】
【００１３】
上記課題を解決するために、冒頭に記載された種類の方法に基づいて、エラーの発生に際して生成されるエラー認識信号に識別子が対応づけられており、識別子に応じて、予め設定可能なエラー処理ルーチン群から１つのエラー処理ルーチンが選択され、選択されたエラー処理ルーチンが実行されることが提案される。
【００１４】
本発明によれば、エラー処理を開始可能であるエラー認識信号の各々に識別子が割当てられる。この識別子は、予め設定されたエラー処理機構のいずれが使用されるべきかを示す。よって、発生したエラーの各々に対して最適なエラー処理ルーチンの選択が可能となるので、コンピュータシステムの可用性を最大限に維持可能である。
【００１５】
エラー認識信号は、例えば、いわゆるインターラプトの形式でエラー処理を開始可能である。コンピュータシステム上でコンピュータプログラムの処理を監視するユニットに、インターラプトを用いてエラーの存在が伝達される。この場合、監視ユニットは、エラー処理の実行を促す。本発明によれば、エラー処理の実行のために複数のエラー処理ルーチンが提供される。エラー認識信号に対応づけられた識別子に応じて、エラー処理ルーチンが選択されて実行される。これが、エラー処理ルーチンの特に柔軟な選択を可能にする。特に、コンピュータシステムの可用性を最大化しうるエラー処理ルーチンが常に選択可能となる。
【００１６】
エラー認識信号は、内部信号でありうる。コンピュータシステムが例えば複数の計算ユニットを備え、ランタイムオブジェクトが少なくとも２つの計算ユニット上で並列的に実行されれば、エラー認識ユニットによって、少なくとも２つの計算ユニットで並列的に生じた結果の比較が実行可能となる。この場合、エラー認識ユニットは、結果が一致しない場合にエラー認識信号を生成する。３つ以上の計算ユニット上でランタイムオブジェクトが冗長的に実行され、ランタイムオブジェクトの実行の多くがエラーを伴わなければ、コンピュータプログラムの実行を続行し、エラーを伴うランタイムオブジェクトの実行を無視することが効果的となりうる。このために、エラー認識ユニットによって生成されたエラー認識信号に識別子が対応づけられ、その識別子がコンピュータシステムにエラー処理ルーチンの選択を促し、そのエラー処理ルーチンを用いて前述したエラー処理が可能となる。
【００１７】
望ましくは、エラー認識信号は、外部信号である。外部のエラー認識信号は、例えば通信システム（例えばバスシステム）に対応づけられたエラー認識ユニットによって生成可能である。この場合、エラー認識ユニットは、伝送エラーの存在もしくは通信システムの障害を検出し、生成されたエラー認識信号に、認識されたエラーを特徴づける識別子を付加し、または識別子を含むエラー認識信号を生成可能である。外部のエラー認識信号は、例えばメモリ素子によって生成され、いわゆるパリティエラーを記述可能である。エラーの種類に応じて、かつ外部のエラー認識信号の起源に応じて、エラー認識信号に他の識別子が対応づけ可能である。エラー処理ルーチンの選択は、エラー認識信号に対応づけられた識別子に応じて行われるので、エラー処理が特に柔軟に実行可能となる。特に、新たなソフトウェアコンポーネントもしくはハードウェアコンポーネントをプログラミングする時点、またはインストールする時点ですでに、コンピュータシステムが所定のエラーをどのように処理すべきかを決定可能である。
【００１８】
本発明に基づく方法の望ましい実施形態によれば、ランタイムオブジェクトおよび／またはランタイムオブジェクトの実行を特徴づける少なくとも１つの変数が検出される。この場合、エラー認識信号は、検出された変数に応じて生成される。この種の変数は、例えばランタイムオブジェクトに対応づけられた優先順位でありうる。よって、エラー処理が、付加的に、実行されたランタイムオブジェクトの優先順位に応じて実行可能となる。
【００１９】
望ましくは、検出された変数は、予め設定されたイベントまででさらに与えられる時間間隔を記述する。この種のイベントは、例えば、スケジューラによって行われる、処理すべきランタイムオブジェクトの交替であり、または、ランタイムオブジェクトによって計算されたデータが他のランタイムオブジェクトのために準備されるまでに与えられる時間間隔でありうる。
【００２０】
ランタイムオブジェクトの実行を特徴づける変数は、すでに行われた実行を示すこともできる。例えばランタイムオブジェクトのロード直後にエラーが生じれば、ランタイムオブジェクト全体を再びロードして実行することが可能である。しかし、ランタイムオブジェクトが与えられた処理時間のすでに終了直前にあり、または他のランタイムオブジェクトが至急処理されるべきであれば、その処理中にエラーが生じたランタイムオブジェクトを単純に終了させることができる。
【００２１】
ランタイムオブジェクトの処理（Abarbeitung）を特徴づける変数は、さらに、他のランタイムオブジェクトとのデータ交換、１つまたは複数の通信システムを介したデータの伝送、またはメモリアクセスがすでに行われたか、を記述可能である。この場合、検出された変数は、エラー認識信号を用いて伝送された識別子内に反映され、よってエラー処理ルーチンの選択に際して考慮可能である。
【００２２】
望ましくは本発明に基づく方法は、車両内に、特に車両制御装置内に、または安全上重要なシステム内、例えば航空機の制御に際して使用される。車両内もしくは安全上重要なシステム内では、発生したエラーを柔軟に処理可能であり、よってコンピュータシステムが特に安全に作動し、高い可用性を有することが特に重要となる。
【００２３】
本方法の望ましい実施形態によれば、予め設定可能なエラー処理ルーチン群内の少なくとも１つのエラー処理ルーチンが、次のエラー処理可能性のいずれかを実現する：
−動作を実行しない：発生したエラーが無視される。
−ランタイムオブジェクトの実行の中断：ランタイムオブジェクトの実行が中断され、例えば代りに他のランタイムオブジェクトが実行される。
−ランタイムオブジェクトの実行の中断およびランタイムオブジェクトの新たな起動の禁止：よって、実行中にエラーが生じたランタイムオブジェクトが再び実行されない。
−ランタイムオブジェクトの実行の繰返し。
−バックワードリカバリー：ランタイムオブジェクトの実行中にチェックポイントが設定され、エラーの発生に際して最後のチェックポイントへジャンプバックされる。
−フォワードリカバリー：ランタイムオブジェクトの実行が中断されて後続する他の時点で再び続行される。
−リセット：コンピュータシステム全体または部分システムが新たに開始される。
【００２４】
これらのエラー処理ルーチンが、発生したエラーの特に柔軟な処理を可能にする。
【００２５】
望ましくは、本発明に基づく方法は、過渡的なエラーの処理に用いられる。しかし、望ましくは、エラー処理ルーチンの選択は、認識されたエラーが過渡的なエラーおよび恒久的なエラーのいずれであるかに応じて実行される。
【００２６】
認識された恒久的なエラーは、例えば、ランタイムオブジェクトがもはや実行されず、または部分システムが恒久的に終了されることで処理可能である。対照的に、認識された過渡的なエラーは、例えば、単純に無視され、またはフォワードリカバリーを用いて処理可能である。
【００２７】
本発明に基づく方法の特に望ましい実施形態では、コンピュータシステムの少なくとも１つの計算ユニット上で駆動システムが実行される。この場合、エラー処理ルーチンの選択は、駆動システムによって実行される。これが、認識されたエラーの特に迅速かつ確実な処理を可能にする。というのは、駆動システムは、通常、発生したエラーの処理に必要とされるリソースへのアクセスを有するからである。例えば、駆動システムは、プロセッサ上でいずれのランタイムオブジェクトがいつ実行されるかを決定する、いわゆるスケジューラを備える。これが、駆動システムに、ランタイムオブジェクトを特に迅速に終了させ、新たに開始させ、またはランタイムオブジェクトの代りにエラー処理ルーチンを開始させることを可能にする。
【００２８】
コンピュータシステムが複数のコンポーネントを備え、かつコンポーネント、例えば計算ユニットの故障が認識されれば、故障したコンポーネントの終了、またはセルフテストの実行を行うエラー処理ルーチンは、駆動システムによって特に簡単に選択可能である。というのは駆動システムは、通常、個々のコンポーネントの管理を行い、またはコンポーネントを管理する機能ユニットへのアクセスを備えるからである。
【００２９】
課題は、冒頭に記載された種類のコンピュータシステムによって、エラーの発生に際してエラー認識ユニットによって生成されるエラー認識信号に識別子が対応づけられており、コンピュータシステムが、識別子に応じて、予め設定可能なエラー処理ルーチン群から１つの実行可能なエラー処理ルーチンを選択する手段を備えることによって解決される。
【００３０】
課題は、冒頭に記載された種類のエラー認識ユニットによって、エラー認識ユニットが、認識されたエラーの少なくとも１つの特性に応じてエラー認識信号を生成する手段を有しており、エラー認識信号には、予め設定可能なエラー処理ルーチン群から１つのエラー処理ルーチンを選択可能な識別子が対応づけ可能であることによって解決される。
【００３１】
望ましくは、認識されたエラーの少なくとも１つの特性が、認識されたエラーが過渡的なエラーおよび恒久的なエラーのいずれであるか、エラーを伴うランタイムオブジェクトおよびエラーを伴うソフトウェアコンポーネントのいずれによるものか、エラーを伴いハードウェアコンポーネントもしくはエラーを伴う部分システムに起因するものか、および／またはエラーの発生中にいずれのランタイムオブジェクトが実行されたか、を表す。
【００３２】
コンピュータシステム上では、通常、多数のコンピュータプログラムが並列的に、準並列的に、または逐次的に実行可能である。本発明に基づくコンピュータシステム上で実行されるコンピュータプログラムは、例えば、アプリケーションデータを処理する、いわゆるアプリケーションプログラムである。このコンピュータプログラムは、少なくとも１つのランタイムオブジェクトを備える。
【００３３】
本発明に基づく方法を少なくとも１つのコンピュータプログラムの形式で実現することが特に重要である。この場合、少なくとも１つのコンピュータプログラムは、コンピュータシステム上、特に計算ユニット上で実行可能であって、本発明に基づく方法を実行するためにプログラミングされている。この場合、本発明がコンピュータプログラムによって実行されるので、コンピュータプログラムは、コンピュータプログラムによる実行に適した方法と同様に、本発明を表す。コンピュータプログラムは、望ましくはコンピュータ読取可能なデータ媒体上に記憶されている。コンピュータ読取可能なデータ媒体として、例えばランダムアクセスメモリ、リードオンリーメモリ、フラッシュメモリ、デジタル多用途ディスクまたはコンパクトディスクの使用が可能である。
【００３４】
本発明に基づく方法を実施するコンピュータプログラムは、望ましくは駆動システムとして形成される。
【発明を実施するための最良の形態】
【００３５】
本発明の他の適用可能性および利点は、図面に示す実施例についての以下の説明から明らかにされる。
【００３６】
図１には、本発明に基づく方法の実施に適したコンピュータシステム１が図式的に示される。コンピュータシステム１は、２つの計算ユニット２、３を備える。計算ユニットは、例えば完全なプロセッサ（ＣＰＵ）でありうる（いわゆるデュアルコアアーキテクチャ）。デュアルコアアーキテクチャは、プロセスもしくはランタイムオブジェクトが２つの計算ユニット２、３上でほぼ同時に実行されるように、２つの計算ユニット２、３を冗長的に動作させることを可能にする。計算ユニット２、３は、算術論理ユニット、いわゆるＡＬＵ（Arithmetic Logical Unit）でありうる（デュアルＡＬＵアーキテクチャ）。
【００３７】
２つの計算ユニット２、３には、共通のプログラムメモリ４およびエラー認識ユニット５が対応づけられる。プログラムメモリ４内には、複数の実行可能なランタイムオブジェクトが格納される。エラー認識ユニット５は、例えば、プロセッサ２とプロセッサ３とにより計算された値の比較を可能にする比較器として形成される。
【００３８】
コンピュータシステム１の基本的な制御を行うために、コンピュータシステム１上で駆動システム６が実行される。駆動システム６は、スケジューラ７およびインターフェイス８を備える。スケジューラ７は、いずれのプロセスもしくはランタイムオブジェクトがいずれの計算ユニット２、３上でいつ実行されるかを決定することによって、計算ユニット２、３に与えられる計算時間を管理する。インターフェイス８は、エラー認識ユニット５が認識したエラーをエラー認識信号を用いて駆動システム６に報告することを可能にする。
【００３９】
駆動システム６は、メモリ領域９へのアクセスを有する。メモリ領域９は、エラー認識信号の各々について、エラー認識信号に対応づけられた１つもしくは複数の識別子を内容として含む。メモリ領域９とプログラムメモリ４とを同一のメモリ素子上に形成することも、また異なるメモリ素子上に形成することも可能である。１つもしくは複数のメモリ素子は、例えば計算ユニット２もしくは計算ユニット３に対応づけられた作業メモリまたはキャッシュでありうる。そして、メモリ領域９は、特に、コンピュータシステム１上で処理される前または処理中に駆動システムが記憶されるメモリ領域でもありうる。
【００４０】
コンピュータシステム１については、他の多数の形態が考えられる。例えば、コンピュータシステム１が計算ユニットを１つのみ備えることも可能である。この場合、ランタイムオブジェクトの処理に際するエラーは、例えばエラー認識ユニット５によって蓋然性検査を用いて認識可能である。
【００４１】
特に、同一のランタイムオブジェクトを計算ユニット２、３上で連続して何回も実行可能である。この場合、エラー認識ユニット５は、各々に生じた結果を比較し、結果が互いに異なる際に、ランタイムオブジェクト、またはランタイムオブジェクトが実行されたハードウェアコンポーネント、例えば計算ユニット２、３に関するエラーの存在を論理的に決定（schliessen）可能である。
【００４２】
さらに、コンピュータシステム１が３つ以上の計算ユニット２、３を備えることも考えられる。この場合、ランタイムオブジェクトは、例えば存在する３つの計算ユニット２、３上で冗長的に実行可能である。このようにして得られた結果の比較によって、エラー認識ユニット５がエラーの存在を認識可能である。
【００４３】
特に、コンピュータシステム１は、他のコンポーネントを備えることができる。例えば、コンピュータシステム１は、個々のコンポーネント間でのデータ交換のためにバスシステムを備えることができる。さらに、コンピュータシステム１は、他の独立した駆動システムを用いて制御される計算ユニットを備えることもできる。特に、コンピュータシステム１は、プログラムおよび／またはデータが記憶され、またはコンピュータシステム１の動作中に読出しおよび／または書込みが行われる、多くの異なるメモリ素子を有することができる。
【００４４】
図２には、本発明に基づく方法のフロー図が示される。方法は、ステップ１００で開始される。ステップ１０１では、スケジューラ７は、計算ユニット２、３に、ランタイムオブジェクトをプログラムメモリ４から読出して実行するように促す。
【００４５】
ステップ１０２では、ランタイムオブジェクトの処理に際してエラーの存在の有無が検査される。これは、例えば、計算ユニット２、３によって冗長的に計算された結果を比較するエラー認識ユニット５によって行われる。エラー認識のために、固定的に予め設定されたルーチンを用いてハードウェアの機能性を検査するハードウェアテストがさらに実行される。エラーが存在しなければ、ステップ１０１に戻って、ランタイムオブジェクトがさらに実行され、もしくは他のランタイムオブジェクトがロードされて計算ユニット２、３内で実行される。
【００４６】
一方、ステップ１０２でエラーが認識されれば、ステップ１０３でエラー認識ユニットによってエラー認識信号が生成される。
【００４７】
この場合、エラー認識ユニット５は、認識されたエラーに応じてエラー認識信号を生成する。例えば、ハードウェアエラーが認識された場合には、ソフトウェアエラーが認識された場合と異なるエラー認識信号が生成される。同様に、エラー認識ユニット５は、認識されたエラーが過渡的なエラーおよび恒久的なエラーのいずれであるかを区別可能である。さらに、エラーが発生した、またはエラーを伴うランタイムオブジェクトが実行された、ハードウェアコンポーネントに応じて、エラー信号が生成可能である。特に、安全上重要または時間上重要な環境で、エラーを伴うランタイムオブジェクトもしくはハードウェアコンポーネントが実行されたかに応じて、エラー認識信号が生成されることが考えられる。
【００４８】
ステップ１０３では、さらに、エラー認識信号がエラー認識ユニット５から、例えばインターフェイス８を介して駆動システム６に報告される。さらに、エラー認識信号がインターラプトの形式で計算ユニット２、３のいずれかに供給されることが考えられる。計算ユニット２、３は、エラー認識信号を受けて現在の処理を中断し、エラー認識信号が、例えばインターフェイス８を介して駆動システム６にさらに伝達されるようにする。
【００４９】
ステップ１０４では、エラー認識信号の識別子が確定される。このために、例えばメモリ領域９内にテーブルが格納可能であり、テーブル内にはエラー認識信号の各々に対応づけられた１つもしくは複数の識別子が記憶される。識別子は、例えば、取得されたエラー認識信号に応じて駆動システム６により選択されるべきエラー処理ルーチンを示す。
【００５０】
しかし、識別子は、計算ユニット２、３の各々に対応づけられたメモリ領域、例えばキャッシュまたはレジスタにも格納されるようにしてもよい。この場合、駆動システム６は、計算ユニット２、３の各々にエラー認識信号の識別子を要求可能である。
【００５１】
選択的なステップ１０５では、駆動システム６は、エラーを伴うランタイムオブジェクトもしくはハードウェアコンポーネントを確定する。この情報は、例えばスケジューラ７から取得可能である。
【００５２】
さらに、情報をエラー認識信号に直接的に含みうる(entnehmen)。これは、例えば、エラー認識ユニット５がエラーを伴うハードウェアコンポーネントまたはランタイムオブジェクトをすでに特定しており、かつエラー認識信号に対応づけられた識別子が特定されたコンポーネントに関する情報を提供可能なように、エラー認識信号がハードウェアコンポーネントに応じて生成される場合に可能となる。このために、例えば、エラー認識信号の各々に対して取得されたエラー認識信号を生成させることができる適切な識別子を用いて、メモリ領域９内に記憶されたテーブル内にエラーを伴うコンポーネントを表示可能である。この場合、取得されたエラー認識信号を用いて、エラーを伴うハードウェアコンポーネントもしくはランタイムオブジェクトを論理的に決定（geschlossen）可能である。
【００５３】
ステップ１０６では、エラー認識信号およびエラー認識信号に対応づけられた識別子に応じて、エラー処理ルーチンが選択される。この場合、エラー認識信号に対応づけられた識別子は、選択すべきエラー処理ルーチンおよびそれに伴って実行すべきエラー処理機構を一義的に決定可能である。例えば、識別子は、エラーを伴うランタイムオブジェクトが中断されるべきであり、再び起動されるべきではないことを決定可能である。識別子は、同様に、予め設定されたチェックポイントにジャンプバックされて、そこからランタイムオブジェクトが新たに実行されるべきである（バックワードリカバリー）ことを決定可能である。識別子は、さらに、フォワードリカバリーが実行されて、ランタイムオブジェクトの実行が繰り返されるべきであること、または更なるエラー処理が実行されるべきではないことを決定可能である。
【００５４】
識別子は、ハードウェアコンポーネント、例えば計算ユニット２、３またはバスシステムが新たに開始されるべきであること、セルフテストが実行されるべきであること、または該当するハードウェアコンポーネントもしくはコンピュータシステムの部分システムが終了されるべきであることも決定可能である。
【００５５】
特に、エラー認識ユニット５から駆動システム６に伝達されたエラー認識信号によって、発生したエラーの種類に関する情報を含む（entnehmen）ことが効果的である。この種類は、例えば、それが過渡的エラーであるか、または恒久的エラーであるかを示すことができる。
【００５６】
この場合、ランタイムオブジェクトに、例えば複数の識別子が対応づけ可能である。この場合、第１の識別子は、恒久的エラーの発生に際して実行すべきエラー処理ルーチンを記述可能である。一方、第２の識別子は、過渡的エラーの発生に際して実行すべきエラー処理ルーチンを記述可能である。これが結果として、さらに柔軟なエラー処理を可能にする。
【００５７】
特に、コンピュータシステム１がマルチプロセッサシステムとして、またはマルチＡＬＵシステムとして構成されている場合には、ランタイムオブジェクトが１つもしくは複数のプロセッサ上またはＡＬＵ上で実行されているかに応じて、およびエラーが１つもしくは複数の計算ユニット２、３で生じたかに応じて、エラー処理ルーチンを選択することが効果的でありうる。この情報は、例えばエラー認識信号に含みうる。この場合、エラー認識信号は、ランタイムオブジェクトが１つの計算ユニット２、３上でのみエラーを伴って実行された場合と、ランタイムオブジェクトが複数の計算ユニット２、３上でエラーを伴って実行された場合とで異なる識別子を備えうる。
【００５８】
ステップ１０７では、駆動システム６によって選択されたエラー処理ルーチンが実行されることでエラー処理が実行される。選択されたエラー処理ルーチンに応じて、駆動システムは、例えばスケジューラ７に、現在、計算ユニット２、３上で実行されているランタイムオブジェクトを中断し、計算された全ての値を棄却し、ランタイムオブジェクトを新たに開始させることを促すことが可能である。ステップ１０８では、本発明に基づく方法が終了する。
【００５９】
図３には、実行すべきエラー処理ルーチンの選択に際して他の変数が考慮される、本発明に基づく方法の他の実施形態がフロー図を用いて示される。
【００６０】
方法は、ステップ２００で開始される。ステップ２０１〜２０５は、図２に示されて説明されたステップ１０１〜１０５に相当する。
【００６１】
ステップ２０６では、ランタイムオブジェクトもしくはランタイムオブジェクトの実行を特徴づける変数が確定される。ランタイムオブジェクトを特徴づける変数は、例えばランタイムオブジェクトに対応づけられた安全上の重要性でありうる。ランタイムオブジェクトを特徴づける変数は、さらに、当該ランタイムオブジェクトによって計算された変数が必要とされるか、そして他のいずれのランタイムオブジェクトによって必要とされるか、または当該ランタイムオブジェクトによって計算された変数が他のランタイムオブジェクトに依存するか、そしていずれのランタイムオブジェクトに依存するかを記述可能である。よって、結果として、ランタイムオブジェクト相互の依存性を記述可能である。
【００６２】
さらに、ランタイムオブジェクトの実行を特徴づける変数は、エラーの発生時にランタイムオブジェクトによるメモリアクセスがすでに行われていたか、ランタイムオブジェクトのロード後に比較的すぐにエラーが生じたか、ランタイムオブジェクトによって計算すべき変数が他のランタイムオブジェクトによって差し迫って必要とされるか、および／またはランタイムオブジェクトの実行のためにさらに与えられる処理時間がどの程度であるかを記述可能である。
【００６３】
この種の変数は、エラー処理ルーチンの選択に際して特に効果的に考慮可能である。例えば、ランタイムオブジェクト全体を新たに実行するために、もはや十分な時間が与えられなければ、バックワードリカバリーまたはフォワードリカバリーを実行するようにできる。これは、さらに与えられる時間間隔を表す変数に応じて、エラー処理ルーチンの各々が選択されることによって実現される。
【００６４】
ステップ２０７では、恒久的エラーまたは過渡的エラーの区別が確定される。このために、所定のランタイムオブジェクトの実行に際してどの程度の頻度でエラーが生じるかを表す、例えばエラーカウンタを連動可能である。エラーは、特に頻繁にまたは常に生じるようであれば、恒久的エラーとして見なすことも可能である。
【００６５】
さらに、所定のハードウェアコンポーネントもしくはコンピュータシステム１の部分システム、従って例えば計算ユニット２、３またはバスシステムにエラーカウンタを対応づけることも可能である。例えば、コンピュータシステム１の計算ユニット２、３上のいずれかで特に複数のランタイムオブジェクトの実行がエラーを伴う場合、もしくはいずれかの実行が頻繁に実行不能となる場合には、恒久的エラー、例えばハードウェア障害が論理的に決定（geschlossen）可能である。
【００６６】
ステップ２０８では、エラー処理ルーチンが選択される。このために、ステップ２０５〜２０７で確定された変数、特にエラーを伴うエラー認識信号に対応づけられた１つもしくは複数の識別子、ランタイムオブジェクトまたはランタイムオブジェクトの実行を特徴づける１つもしくは複数の変数、および発生したエラーの種類が考慮される。
【００６７】
エラー処理ルーチンは、例えば駆動システム６によって選択される。選択は、前述した変数を用いてデシジョンツリーの形式で実行可能である。
【００６８】
ステップ２０９ではエラー処理が実行されて、ステップ２１０では本発明に基づく方法が終了する。
【００６９】
よって、本発明に基づく方法によれば、コンピュータシステム上にエラー認識ユニット５をプログラミングもしくは実装またはインストールする時点で、所定のエラーの発生に際していずれのエラー処理ルーチンが実行されるべきであるかを決定可能である。これが、特に柔軟で、認識されたエラーの種類に適合されたエラー処理を可能にする。この場合、本発明によれば、ランタイムオブジェクトに複数の識別子が対応づけ可能である。よって、エラー処理ルーチンの選択がさらに柔軟に構成可能となる。
【００７０】
望ましくは、エラーの種類（過渡的／恒久的）、ランタイムオブジェクト自体またはランタイムオブジェクトの実行を特徴づける変数を、エラー処理ルーチンの選択のために援用可能である。
【００７１】
さらに、エラー認識ユニット５によって確定された情報、例えばエラーの発生時にランタイムオブジェクトが実行されていた計算ユニット２、３の識別（Identitaet）を、エラー処理ルーチンの選択に際して考慮可能である。この場合、１つもしくは複数のハードウェアコンポーネントまたは１つもしくは複数の計算ユニット２、３に安全上の重要性を対応付けることが考えられる。特に安全上の重要性が高い計算ユニット２、３上でエラーが発生した場合には、安全上の重要性が低い計算ユニット２、３上でエラーが発生した場合と異なるエラー処理ルーチンが選択される。よって、コンピュータシステム１上でさらに柔軟なエラー処理が可能となる。
【００７２】
ステップ１０７もしくは２０９でエラー処理を実行中に、さらに、例えばエラー処理ルーチンによって促された、ランタイムオブジェクトの新たな実行、もしくは新たに開始されたハードウェアコンポーネントの新たな動作が再びエラーをもたらすかを検査可能である。この場合、新たなエラー処理ルーチンを、しかし今度は他のエラー処理ルーチンを選択するようにできる。例えば、この場合には、システム全体もしくは部分システムを終了するようにできる。
【００７３】
図２、３のフロー図を用いて説明した、本発明に基づく方法の実施形態の他に、他の実施形態も考えられる。特に、個々のステップの順序が変更可能であり、幾つかのステップが省略可能であり、または新たなステップが追加可能である。
【００７４】
例えば、エラー発生に関連するハードウェアコンポーネント、従って例えばバスシステム、メモリ素子または計算ユニット２、３のいずれかも、エラーの発生中または発生前に実行されたソフトウェアコンポーネント、従って例えば計算ユニット上で実行されるランタイムオブジェクトのいずれかも、選択もしくはエラー処理ルーチンの選択に際して明確に考慮する必要がない場合、ステップ１０５もしくは２０５が省略可能である。特に、発生されたエラー認識信号がハードウェアおよび／またはソフトウェアコンポーネントをすでに一義的に示す場合には、これが不要である。
【００７５】
本発明に基づく方法は、異なる方法で実現され、もしくはプログラミングされ、かつコンピュータシステム１上に実装可能である。この場合、特に、与えられたプログラミング環境、基礎となるコンピュータシステム１の特性、およびコンピュータシステム上で実行される駆動システム６が考慮される。
【００７６】
さらに、エラー認識信号、エラー認識信号に対応づけられた識別子、ハードウェアコンポーネントまたはソフトウェアコンポーネントを、異なる方法で記述可能である。例えばハードウェアコンポーネントおよびソフトウェアコンポーネントが英数字識別子、いわゆる文字列で表される。エラー認識信号に対応づけられた識別子は、例えば選択すべきエラー処理ルーチンに対応づけられたポインタ構造、いわゆるポインタによって実現可能である。これが、例えば、選択されたエラー処理ルーチンの特に簡単な呼出しを可能にする。この場合、他の情報、例えばエラーを伴うハードウェアコンポーネントまたはソフトウェアコンポーネントの識別を可能にする情報を、エラー処理ルーチンの呼出しに際して、いわゆる引数の形式でエラー処理ルーチンに引き渡すことが考えられる。
【図面の簡単な説明】
【００７７】
【図１】本発明に基づく方法を実行するためのコンピュータシステムのコンポーネントを示すブロック図である。
【図２】本発明に基づく方法の第１の実施形態を示すフロー図である。
【図３】本発明に基づく方法の第２の実施形態を示すフロー図である。
【符号の説明】
【００７８】
１    コンピュータシステム
２、３    計算ユニット
４    プログラムメモリ
５    エラー認識ユニット
６    駆動システム
７    スケジューラ
８    インターフェイス
９    メモリ領域
【図１】
2008513899.tif 000003
【図２】
2008513899.tif 000004
【図３】
2008513899.tif 000005
【国際調査報告】
2008513899.tif 000006
2008513899.tif 000007
2008513899.tif 000008
2008513899.tif 000009
2008513899.tif 000010
2008513899.tif 000011