(57)【要約】  本発明は、少なくとも２つの実行ユニットを備えたコンピュータシステムの制御方法および制御装置に関する。この場合、少なくとも２つの動作モード間で切り替えが行われ、第１の動作モードは比較モードに対応し、第２の動作モードはパフォーマンスモードに対応する。本発明の特徴によれば、複数のランタイムオブジェクトから成る少なくとも１つの集合が定義されており、この識別子はランタイムオブジェクトに対し少なくとも２つの動作モードを割り当てる。
2009506407.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも２つの動作モード間で切り替えが行われ、第１の動作モードは比較モードに対応し、第２の動作モードはパフォーマンスモードに対応する、
少なくとも２つの実行ユニットを備えたコンピュータシステムの制御方法において、
複数のランタイムオブジェクトから成る少なくとも１つの集合が定義されており、
該定義された集合における各ランタイムオブジェクトに対し少なくとも１つの特別な識別子が割り当てられており、
該識別子は前記ランタイムオブジェクトに対し少なくとも前記２つの動作モードを割り当てることを特徴とする、
コンピュータシステムの制御方法。
【請求項２】
請求項１記載の方法において、
前記識別子は、ランタイムオブジェクトが該識別子に従ってまえもって設定可能なまたはまえもって設定された時点では実行されないとき、前記動作モードが該時点では切り替えられないように用いられることを特徴とする方法。
【請求項３】
請求項１または２記載の方法において、
前記識別子は、ランタイムオブジェクトがそれぞれ異なる時点においてそれぞれ異なる動作モードで実行されるように用いられることを特徴とする方法。
【請求項４】
請求項１または２記載の方法において、
前記識別子は、ランタイムオブジェクトが交互にそれぞれ異なる動作モードで実行されるように用いられることを特徴とする方法。
【請求項５】
請求項１から３のいずれか１項記載の方法において、
前記識別子には、１つのランタイムオブジェクトが複数の動作モードのうち１つの動作モードにおいて最大で何回アクティブ状態になった後に、該ランタイムオブジェクトを別の動作モードで実行すべきかに関する情報が含まれていることを特徴とする方法。
【請求項６】
請求項１から３のいずれか１項記載の方法において、
前記識別子には、１つのランタイムオブジェクトがまえもって設定可能な動作モードにおいて何回アクティブ状態になった後に、該ランタイムオブジェクトを少なくとも１回まえもって設定可能な比較モードで実行すべきかに関する情報が含まれていることを特徴とする方法。
【請求項７】
請求項１から３のいずれか１項記載の方法において、
前記識別子には、１つのランタイムオブジェクトが複数の動作モードのうち１つの動作モードにおいて少なくとも何回アクティブ状態になった後に、該ランタイムオブジェクトを別の動作モードで実行すべきかに関する情報が含まれていることを特徴とする方法。
【請求項８】
請求項１から７のいずれか１項記載の方法において、
１つのランタイムオブジェクトをまえもって設定可能なまたはまえもって定められた時点で実行させる動作モードを指定するために、該ランタイムオブジェクトが以前にどの動作モードで実行されたのかに関する情報が用いられることを特徴とする方法。
【請求項９】
請求項８記載の方法において、
前記情報のうち少なくとも一部分がインクリメントまたはデクリメントされることを特徴とする方法。
【請求項１０】
請求項１から９のいずれか１項記載の方法において、
１つのランタイムオブジェクトをまえもって設定可能なまたはまえもって定められた時点で実行させる動作モードを指定するために、コンピュータシステムがどの動作モードにおかれているのかに関する情報が用いられることを特徴とする方法。
【請求項１１】
請求項１から１０のいずれか１項記載の方法において、
１つのランタイムオブジェクトをまえもって設定可能なまたはまえもって定められた時点で実行させる動作モードを指定するために、コンピュータシステムは該コンピュータシステムがどの動作モードにおかれているのかに関する情報を利用することを特徴とする方法。
【請求項１２】
請求項１から１１のいずれか１項記載の方法において、
１つのランタイムオブジェクトをまえもって設定可能なまたはまえもって定められた時点で実行させる動作モードを指定するために、コンピュータシステムがどのフォールバックレベルにあるのかに関する情報が用いられることを特徴とする方法。
【請求項１３】
請求項１から１２のいずれか１項記載の方法において、
１つのランタイムオブジェクトをまえもって設定可能なまたはまえもって定められた時点で実行させる動作モードを指定するために、コンピュータシステムが初期化状態にあるか否かに関する情報が用いられることを特徴とする方法。
【請求項１４】
請求項１から１３のいずれか１項記載の方法において、
１つのランタイムオブジェクトをまえもって設定可能なまたはまえもって定められた時点で実行させる動作モードを指定するために、コンピュータシステムがテストフェーズにあるか否かに関する情報が用いられることを特徴とする方法。
【請求項１５】
切替手段と比較手段が設けられており、少なくとも２つの動作モード間で切り替えが行われ、第１の動作モードは比較モードに対応し、第２の動作モードはパフォーマンスモードに対応する、
少なくとも２つの実行ユニットを備えたコンピュータシステムの制御装置において、
記憶手段が設けられており、該記憶手段には、複数のランタイムオブジェクトから成る定義された集合に対して識別子が格納されており、該識別子により、前記定義された集合における各ランタイムオブジェクトに対し少なくとも２つの動作モードが割り当てられることを特徴とする、
コンピュータシステムの制御装置。
【請求項１６】
請求項１５記載の装置において、
前記識別子は、ランタイムオブジェクトが該識別子に従ってまえもって設定可能なまたはまえもって設定された時点では実行されないとき、前記動作モードが該時点では切り替えられないように用いられることを特徴とする装置。
【請求項１７】
請求項１５または１６記載の装置において、
前記識別子は、ランタイムオブジェクトがそれぞれ異なる時点においてそれぞれ異なる動作モードで実行されるように用いられることを特徴とする装置。
【請求項１８】
請求項１５または１６記載の装置において、
前記識別子は、ランタイムオブジェクトが交互にそれぞれ異なる動作モードで実行されるように用いられることを特徴とする装置。
【請求項１９】
請求項１５から１８のいずれか１項記載の装置において、
前記識別子には、１つのランタイムオブジェクトが複数の動作モードのうち１つの動作モードにおいて最大で何回アクティブ状態になった後に、該ランタイムオブジェクトを別の動作モードで実行すべきかに関する情報が含まれていることを特徴とする装置。
【請求項２０】
請求項１５から１８のいずれか１項記載の装置において、
前記識別子には、１つのランタイムオブジェクトがまえもって設定可能な動作モードにおいて何回アクティブ状態になった後に、該ランタイムオブジェクトを少なくとも１回まえもって設定可能な比較モードで実行すべきかに関する情報が含まれていることを特徴とする装置。
【請求項２１】
請求項１５から１８のいずれか１項記載の装置において、
前記識別子には、１つのランタイムオブジェクトが複数の動作モードのうち１つの動作モードにおいて少なくとも何回アクティブ状態になった後に、該ランタイムオブジェクトを別の動作モードで実行すべきかに関する情報が含まれていることを特徴とする装置。
【請求項２２】
請求項１５から２１のいずれか１項記載の装置において、
１つのランタイムオブジェクトをまえもって設定可能なまたはまえもって定められた時点で実行させる動作モードを指定するために、該ランタイムオブジェクトが以前にどの動作モードで実行されたのかに関する情報が用いられることを特徴とする装置。
【請求項２３】
請求項２２記載の装置において、
前記情報のうち少なくとも一部分がカウンタ手段により実装されていることを特徴とする装置。
【請求項２４】
請求項１５から２３のいずれか１項記載の装置において、
切替手段および／または比較手段が設けられており、該切替手段および／または比較手段は、動作モードの切り替えを前記識別子および設定可能な他の条件に依存して実行することを特徴とする装置。
【請求項２５】
請求項１５から２４のいずれか１項記載の装置を備えたコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
従来技術
埋め込みシステムたとえば自動車技術またはオートメーション技術の分野では、マイクロコンピュータハードウェアにおけるエラーが場合によっては安全にとって重要な結果を招く可能性のある適用事例が存在する。そのような結果を回避する目的で、あるいは深刻な影響を回避する目的で、エラーを検出する監視措置が適用される。この種の監視がほぼ持続的に必要とされる適用事例もあるし、他の適用事例では規則的に（たとえば周期的に）あるいは特定の要求に応じてコンピュータまたは他のコンポーネントも依然として適正に機能しているか否かをチェックする監視機能がある。
【０００２】
本発明はDE10332700A1と関連している。この文献には、プロセッサユニットを２つの動作モード間で切り替えるための方法および装置について記載されている。プロセッサユニットは少なくとも２つの実行ユニットを有しており、それぞれ異なる動作モードの目的は、プロセッサユニットを少なくともいわゆるパフォーマンスモードでもいわゆる比較モード（ＶＭ）でも駆動できるようにすることである。パフォーマンスモード中、たとえば２つの実行ユニットにおいてそれぞれ異なるプログラムが実行される。これに対して比較モード中は、双方の実行ユニットにおいて同一のプログラムが実行され、双方の実行ユニットにおける結果が互いに比較され、相違があればエラー信号がトリガされる。
【０００３】
基本的に計算パフォーマンスの点から有利であるのは、できるかぎり多くのタスクをできるかぎり高性能なモード（パフォーマンスモードで）実行させることである。これに対して、安全上重要な適用事例ではエラー識別を良好に行いながらほぼすべてのタスクが計算されるようにすべきである。したがってこの種の適用事例に関する従来技術においては、パフォーマンスモードにおける計算パフォーマンスの大部分を利用するのは困難であるかまたは不可能である。
【０００４】
また、エラー識別に対し比較的複雑な要求を課す適用事例もある。たとえば制御技術における多くの適用事例の場合、きわめて短期間しか作用しない障害は適用事例自体によっては許容されるものであり、つまりは一時的なエラーについては多くの個所ではエラー識別要求がない。これに対し、持続的なエラーについてはそのような要求がある。ただし従来技術においては、このような要求の対立を最適なコストで解消するために一般的に利用できる手段は存在しない。
【０００５】
それぞれ異なる動作モード（パフォーマンスモード、比較モード）間の切り替えに必要とされる時間は無視できない。著しく頻繁に切り替えが行われる場合、このようなオーバヘッドは重要である。スケジューリングの問題にあたり最適なストラテジをとれるようにする目的で、アプリケーションソフトウェアの視点から、短期間タスクの頻繁な切り替えを行わせることも重要である。
【０００６】
発明の利点
したがって本発明の課題は、考察するタイムインターバルにおいて切り替え頻度を少なくし、ひいては計算時間を他のタスクに多く配分できるようにすることである。本発明によって、実行すべきモード間の切り替え回数を最適化できるようにし、これにより計算時間が節約されるようにしたい。
【０００７】
さらに本発明の課題は、１つのモードの潜在的なパフォーマンス利得をできるかぎり利用し尽くすようにし、つまりはできるかぎり多くの計算能力をパフォーマンスモードにおいて利用できるようにすることである。本発明のさらに別の課題は、エラー識別に対する要求が主として持続的なエラーのエラー識別にある一方、一時的なエラーについてはエラー識別を必要としないＳＷタスク（切替タスク）のために、適切かつ要求に即したインプリメンテーションが得られるようにすることである。
【０００８】
有利には本発明は、少なくとも２つの実行ユニットを備えたコンピュータシステムの制御方法に関する。この場合、少なくとも２つの動作モード間で切り替えが行われ、第１の動作モードは比較モードに対応し、第２の動作モードはパフォーマンスモードに対応する、本発明の特徴によれば、複数のランタイムオブジェクトから成る少なくとも１つの集合が定義されており、定義されたこの集合における各ランタイムオブジェクトに対し少なくとも１つの特別な識別子が割り当てられており、この識別子はランタイムオブジェクトに対し少なくとも２つの動作モードを割り当てる。
【０００９】
有利には本発明によれば、識別子は以下のようにして用いられる。すなわちこの場合、ランタイムオブジェクトがこの識別子に従ってまえもって設定可能なまたはまえもって設定された時点では実行されないとき、動作モードはこの時点では切り替えられないようにする。
【００１０】
有利には本発明によれば、識別子は以下のようにして用いられる。すなわちこの場合、ランタイムオブジェクトがそれぞれ異なる時点においてそれぞれ異なる動作モードで実行されるようにする。
【００１１】
有利には本発明によれば、識別子は以下のようにして用いられる。すなわちこの場合、ランタイムオブジェクトが交互にそれぞれ異なる動作モードで実行されるようにする。
【００１２】
有利には本発明によれば上述の識別子には、１つのランタイムオブジェクトが複数の動作モードのうち１つの動作モードにおいて最大で何回アクティブ状態になった後に、このランタイムオブジェクトを別の動作モードで実行すべきかに関する情報が含まれている。
【００１３】
有利には本発明によれば上述の識別子には、１つのランタイムオブジェクトがまえもって設定可能な動作モードにおいて何回アクティブ状態になった後に、このランタイムオブジェクトを少なくとも１回まえもって設定可能な比較モードで実行すべきかに関する情報が含まれている。
【００１４】
有利には本発明によれば上述の識別子には、１つのランタイムオブジェクトが複数の動作モードのうち１つの動作モードにおいて少なくとも何回アクティブ状態になった後に、このランタイムオブジェクトを別の動作モードで実行すべきかに関する情報が含まれている。
【００１５】
有利には本発明による方法によれば、１つのランタイムオブジェクトをまえもって設定可能なまたはまえもって定められた時点で実行させる動作モードを指定するために、このランタイムオブジェクトが以前にどの動作モードで実行されたのかに関する情報が用いられる。
【００１６】
有利には本発明による方法によれば、上述の情報のうち少なくとも一部分がインクリメントまたはデクリメントされる。
【００１７】
有利には本発明による方法によれば、１つのランタイムオブジェクトをまえもって設定可能なまたはまえもって定められた時点で実行させる動作モードを指定するために、コンピュータシステムがどの動作モードにあるのかに関する情報が用いられる。
【００１８】
有利には本発明による方法によれば、コンピュータシステムは、１つのランタイムオブジェクトをまえもって設定可能なまたはまえもって定められた時点で実行させる動作モードを指定するために、コンピュータシステムがどの動作モードにあるのかに関する情報を用いる。
【００１９】
有利には本発明による方法によれば、１つのランタイムオブジェクトをまえもって設定可能なまたはまえもって定められた時点で実行させる動作モードを指定するために、コンピュータシステムがどのフォールバックレベルにあるのかに関する情報が用いられる。
【００２０】
有利には本発明による方法によれば、１つのランタイムオブジェクトをまえもって設定可能なまたはまえもって定められた時点で実行させる動作モードを指定するために、コンピュータシステムが初期化状態にあるか否かに関する情報が用いられる。有利には本発明による方法によれば、１つのランタイムオブジェクトをまえもって設定可能なまたはまえもって定められた時点で実行させる動作モードを指定するために、コンピュータシステムがテストフェーズにあるか否かに関する情報が用いられる。
【００２１】
有利には本発明は、少なくとも２つの実行ユニットを備えたコンピュータシステムの制御装置に関する。この場合、切替手段と比較手段が設けられており、少なくとも２つの動作モード間で切り替えが行われ、第１の動作モードは比較モードに対応し、第２の動作モードはパフォーマンスモードに対応する。本発明の特徴によれば、この制御装置には記憶手段が設けられており、この記憶手段には、複数のランタイムオブジェクトから成る定義された集合に対して識別子が格納されており、この識別子により、定義された集合における各ランタイムオブジェクトに対し少なくとも２つの動作モードが割り当てられる。
【００２２】
有利には本発明による装置は、識別子が以下のように用いられるように構成されている。すなわちこの場合、ランタイムオブジェクトがこの識別子に従ってまえもって設定可能なまたはまえもって設定された時点では実行されないとき、動作モードがこの時点では切り替えられないようにする。
【００２３】
有利には本発明による装置は、識別子が以下のように用いられるように構成されている。すなわちこの場合、ランタイムオブジェクトがそれぞれ異なる時点においてそれぞれ異なる動作モードで実行されるようにする。
【００２４】
有利には本発明による装置は、識別子が以下のように用いられるように構成されている。すなわちこの場合、ランタイムオブジェクトが交互にそれぞれ異なる動作モードで実行されるようにする。
【００２５】
有利には本発明による装置は以下のように構成されている。すなわちこの場合、識別子には、１つのランタイムオブジェクトが複数の動作モードのうち１つの動作モードにおいて最大で何回アクティブ状態になった後に、このランタイムオブジェクトを別の動作モードで実行すべきかに関する情報が含まれている。
【００２６】
有利には本発明による装置は以下のように構成されている。すなわちこの場合、識別子には、１つのランタイムオブジェクトがまえもって設定可能な動作モードにおいて何回アクティブ状態になった後に、このランタイムオブジェクトを少なくとも１回まえもって設定可能な比較モードで実行すべきかに関する情報が含まれている。
【００２７】
有利には本発明による装置は以下のように構成されている。すなわちこの場合、識別子には、１つのランタイムオブジェクトが複数の動作モードのうち１つの動作モードにおいて少なくとも何回アクティブ状態になった後に、このランタイムオブジェクトを別の動作モードで実行すべきかに関する情報が含まれている。
【００２８】
有利には本発明による装置は以下のように構成されている。すなわちこの場合、１つのランタイムオブジェクトをまえもって設定可能なまたはまえもって定められた時点で実行させる動作モードを指定するために、このランタイムオブジェクトが以前にどの動作モードで実行されたのかに関する情報が用いられる。
【００２９】
有利には本発明による装置によれば、上述の情報のうち少なくとも一部分がカウンタ手段により実装されている。
【００３０】
有利には本発明による装置によれば、切替手段および／または比較手段が設けられており、この切替手段および／または比較手段は、動作モードの切り替えを上述の識別子および設定可能な他の条件に依存して実行することができる。
【００３１】
有利には上述の装置はコンピュータシステムに含まれている。
【００３２】
そのほかの利点および有利な実施形態については、各請求項に記載の特徴ならびに以下の説明に示されている。
【００３３】
図１は、切替および比較ユニットを一般化して示す図である。
【００３４】
図２には、ランタイムオブジェクトが特別な識別子を取得しているケースにおけるモードの配分に関するシーケンスが示されている。この特別な識別子が意味するのは、プロセッサシステムがおかれているモードは、この特別な識別子をもつランタイムオブジェクトに対し計算時間が割り当てられる場合には変更されない、ということである。
【００３５】
図３には、ランタイムオブジェクトを交互に複数のモードで実行すべきことを指定する特別な識別子をランタイムオブジェクトが取得しているケースについて、モードの配分に関するシーケンスが示されている。
【００３６】
図４には、特定のシステムモードをもつモードの配分の結合におけるシーケンスが示されている。
【００３７】
図５には、２つの実行ユニットを備えたマルチプロセッサシステムが示されている。
【００３８】
実施例の説明
以下では実行ユニットをプロセッサ／コア／ＣＰＵとも、ＦＰＵ（浮動小数点演算装置）、ＤＳＰ（ディジタルシグナルプロセッサ）、コプロセッサまたはＡＬＵ（演算論理装置）とも称する。
【００３９】
本発明は、図５に示したマイクロプロセッサＷ１００に関する。このマイクロプロセッサは、少なくとも２つの実行ユニットＷ１１０ａ、Ｗ１１０ｂ、比較ユニットＷ１２０ならびに切替ユニットＷ１５０を備えている。この図を参照しながら、２プロセッサシステムに基づき切替可能なマルチプロセッサの原理について説明する。その後、図１を参照しながら、２つよりも多くの実行ユニットのための切替および比較ユニットの一般的な事例について説明する。ここで本発明は、２つまたはそれよりも多くの実行ユニットを備えた一般的な事例に常に係わるものである。図５の実行ユニットは、それぞれオプションのバッファメモリＷ１１１ａ，Ｗ１１１ｂを介して比較ユニットＷ１２０および切替ユニットＷ１５０と接続されている。切替ユニットＷ１５０は、２つのシステムインタフェースＷ１３０ａ，Ｗ１３０ｂへの少なくとも２つの出力側を有している。これらのインタフェースを介して、レジスタ、メモリまたはディジタル出力側、ディジタル／アナログ変換器、通信コントローラといった周辺機器を駆動制御することができる。これらのマルチプロセッサシステムを少なくとも２つの動作モードすなわち比較モードＶＭとパフォーマンスモードで駆動することができる。パフォーマンスモードＰＭ中、それぞれ異なる実行ユニットにおいてそれぞれ異なる命令、プログラムセグメントまたはプログラムがパラレルに実行される。この動作モード中、比較ユニットは非アクティブ状態にされる。切替ユニットＷ１５０はこの動作モード中、各実行ユニットがオプションのバッファメモリを介してシステムタフェースＷ１３０ａ，Ｗ１３０ｂの１つと接続されるようコンフィギュレーションされる。システムインタフェースを介して実行ユニットの結果をメモリＷ１７０に書き込むことができ、あるいは周辺コンポーネントＷ１８０，Ｗ１９０に出力することができる。周辺コンポーネントをたとえばアナログ／ディジタル変換器または通信システムの通信コントローラ（たとえばＳＰＩ，ＬＩＮ，ＣＡＮ，ＦｌｅｘＲａｙ）とすることができる。比較ユニットを非アクティブにするために複数の可能性がある。１つの可能性として、比較器に対し、これをアクティブ化または非アクティブ化する信号を供給することができる。この目的で比較器に付加的なロジックを挿入することができ、これによって上述のことを実行することができる。別の可能性は、比較すべきデータを比較器に供給しないことである。第３の可能性は、システムレベルで比較器のエラー信号を無視することである。さらにエラー信号自体を遮断することもできる。すべてのやり方に共通するのは、場合によっては比較される２つまたはそれよりも多くのデータがそれぞれ異なる場合に問題とはならない状態をシステムにおいて作り出すことである。この状態が比較器における措置あるいはその入力信号または出力信号によって達成されるならば、比較器はパッシブまたは非アクティブであると呼ばれる。比較モードＶＭ中、両方の実行ユニットにおいて同じまたは同種の命令、プログラムセグメントまたはプログラムが処理される。オプションのバッファメモリＷ１１１ａ，Ｗ１１１ｂを介して、実行ユニットの出力信号は比較ユニットＷ１２０および切替ユニットＷ１５０へ供給される。比較ユニットにおいて、双方のデータが一致しているか否かチェックされる。比較が行われた後、切替ユニットへステータス信号Ｗ１２５を介して、一致した結果のうちの１つをシステムフェースへ送出してよいか、あるいは結果に不一致が認められたことから信号を阻止しなければならないかを通知する。このケースでは、比較ユニットからオプションのエラー信号Ｗ１５５を送出することができる。このエラー信号を、比較ユニットではなく切替ユニットから送出することができる（Ｗ１５６）。この場合、切り替えを特別な切替命令、特別な命令シーケンス、明示的に表された命令を介してトリガすることができるし、あるいはマルチプロセッサシステムにおける複数の実行ユニットのうち少なくとも１つによる特定のメモリアドレスへのアクセスによってトリガすることができる。
【００４０】
まずはじめに図１には切替および比較ユニットについて、有利にはそれらをどのように利用すべきかについて、一般化して示す。考慮すべきｎ個の実行ユニットからｎ個の信号Ｎ１４０〜Ｎ１４ｎが、切替および比較コンポーネントＮ１００に到来する。この切替および比較コンポーネントＮ１００は、これらの入力信号からｎ個までの出力信号Ｎ１６０〜Ｎ１６ｎを生成することができる。最も簡単なケースすなわち「純粋なパフォーマンスモード」では、すべての信号Ｎ１４ｉが対応する出力信号Ｎ１６ｉとなる。これとは反対の極端なケース、すなわち「純粋な比較モード」では、全ての信号Ｎ１４０〜Ｎ１４ｉが出力信号Ｎ１６ｉの内の１つにのみ誘導される。
【００４１】
図１には、考えられる種々のモードをどのようにして生じさせることができるかが示されている。このため図面１においては、切替ロジックＮ１１０の論理コンポーネントが含まれている。この切替ロジックは先ず、そもそも出力信号が幾つ存在するかを確定する。さらに切替ロジックＮ１１０は、入力信号の内のどの入力信号が出力信号の内のどの出力信号に寄与するかを確定する。ここでは１つの入力信号がちょうど１つの出力信号に寄与することができる。つまり数学的に別の形で表すと、量｛Ｎ１４０〜Ｎ１４ｎ｝の各要素に量｛Ｎ１６０〜Ｎ１６ｎ｝の１つの要素を対応付ける関数が切替ロジックによって定義されている。
【００４２】
この場合、処理ロジックＮ１２０は出力側Ｎ１６ｉの各々に対し、どのかたちで入力側がこの出力信号に寄与するかを決定する。例示的に種々の変形形態を説明するために、一般性を制限することなく、出力側Ｎ１６０が信号Ｎ１４１〜Ｎ１４ｍによって形成されるものとする。ｍ＝１であればこのことは単に信号のスルーコネクションに相当し、ｍ＝２であれば信号Ｎ１４１，Ｎ１４２が比較される。この比較を同期または非同期に実施することができ、さらにこの比較をビットごとにまたは最上位ビットに対してのみ実施することができるし、あるいは許容範囲を用いて実施することもできる。
【００４３】
ｍ≧３である場合には、それよりも多くのオプションがある。１つめのオプションによれば、すべての信号を比較し、少なくとも２つの異なる値が存在する場合にはエラーを検出し、このエラーを選択的にシグナリングすることができる。２つめのオプションによれば、ｍ個からｋ個の選択が行われる（ｋ＞ｍ／２）。このことは比較の利用により実現可能である。選択的に、信号のうちの１つが偏差があるとして識別されると、エラー信号を発生させることができる。３つのすべての信号が異なっている場合には、考えられる種々のエラー信号を形成することができる。３つめのオプションによれば、これらの値が１つのアルゴリズムに供給される。このアルゴリズムをたとえば平均値やメディアン値の形成、あるいはフォールトトレランスアルゴリズム（ＦＴＡ）の使用とすることができる。上述のようなＦＴＡは、入力値の極値を取り除き、残りの値に対し一種の平均値形成を行うことに基づくものである。この平均値形成を残りの値の集合すべてについて行うこともできるし、あるいは有利にはハードウェアＨＷにおいて容易に形成できる部分集合について行うことができる。この場合には、必ずしも値を実際に比較しなくてもよい。平均値形成であればたとえば加算と除算のみでよく、ＦＴＭ，ＦＴＡまたはメディアンであれば部分的なソートが必要である。この場合も必要に応じて、極値が相当に大きい場合には選択的にエラー信号を送出することができる。
【００４４】
複数の信号を処理して１つの信号を生成する上述の様々なオプションを略して比較演算と称する。
【００４５】
したがって処理ロジックの役割は、出力信号各々に対する比較演算の詳細な構造、つまりは対応する入力信号に対する比較演算の詳細な構造を決定することである。切替ロジックＮ１１０の情報（すなわち上述の関数）と処理ロジックの情報（すなわち出力信号つまり関数値ごとの比較演算の決定）との組み合わせがモード情報であり、この情報によってモードが確定される。この情報は一般的な事例では当然ながら多値であり、つまり１つの論理ビットだけでは表現できない。論理的に考えられるすべてのモードがある１つの定められた実現形態において有意であるのではなく、有利には許容されるモードの数が制限される。ここで強調しておくと、実行ユニットが２つしかない場合であれば実行ユニットには、すべての情報をただ１つの論理ビットに集約可能な１つの比較モードだけしか存在しない。
【００４６】
一般的な事例ではパフォーマンスモードから比較モードへの切り替えの特徴は、パフォーマンスモードではそれぞれ異なる出力側にマッピングされる実行ユニットが比較モードでは同じ出力側にマッピングされることである。このことは有利には、実行ユニットの部分システムが存在し、この部分システムにおいて考慮されるべき全ての入力信号Ｎ１４ｉがパフォーマンスモードにおいては対応する出力信号Ｎ１６ｉに直接的に切り替えられ、他方比較モードにおいては全ての入力信号が１つの出力側にマッピングされることによって実現されている。択一的に、このような切り替えをペアリングの変更によっても実現可能である。つまり本発明による１つの実施形態として、許容されるモードの量をそれが該当するよう制限できるにもかかわらず、一般的なケースにおいてはパフォーマンスモードおよび比較モードについて論じることはできない。しかしながらパフォーマンスモードから比較モードへの切り替え（またその逆の切り替え）については常に論じることができる。
【００４７】
これらのモードをソフトウェアを介する制御により動的に動作中に切り替えることができる。切り替えはたとえば特別な切替命令、特別な命令シーケンス、明示的に表される命令の実行を介してトリガされるかまたは、マルチプロセッサシステムにおける実行ユニットのうち少なくとも１つによる特定のアドレスへのアクセスによってトリガされる。
【００４８】
まずはじめに、基本的な着想について説明する。プロセッサの種々のモード間の切り替えをコーディネートするためのアプローチは、種々のソフトウェアモジュールをランタイムオブジェクトにグルーピングすることであり、それに対しオペレーションシステムにより計算時間が与えられる。これらのランタイムオブジェクトの各々はとりわけ、このランタイムオブジェクトをどのモードで実行すべきかに関する識別子を受け取る。このランタイムオブジェクトに対しオペレーションシステムにより計算時間が割り当てられると、同時に要求に応じてオペレーションシステムがモード交換を行わせる。
【００４９】
本発明の重要な基本着想は、ランタイムオブジェクトに特別な識別子を割り当て可能なことである。この特別な識別子は、プロセッサシステムが所定の時点でおかれているモードは、この識別子をもつランタイムオブジェクトにこの時点で計算時間が割り当てられる場合には交換されない、ということを意味する。ランタイムオブジェクトは、目下アクティブであるこのモード中に実行される。
【００５０】
本発明のさらに別の重要な基本思想は、ランタイムオブジェクトを交互にそれぞれ異なるモードで実行すべきことを指定する特別な識別子をランタイムオブジェクトに割り当て可能なことである。オプションとして、いくつのアクティブ化の後に一方のモードから他方のモードへ、およびどのモードへ交換すべきかを表すことができる。
【００５１】
さらに別の実施形態によれば、１つのモードにおいて少なくともｎ個の実行後、少なくとも１回（ｍ回）別のモードでランタイムオブジェクトが実行されることを指定する特別な識別子を、ランタイムオブジェクトが取得する。
【００５２】
これらの可能性を組み合わせることもできる。
【００５３】
ランタイムオブジェクトは、特定のシステムフォールバックレベルにおいてのみ所定の比較モードにおいてランタイムオブジェクトが実行される特別な識別子を取得する。この場合、システムフォールバックは、システム全体における特別なモードを表す。
【００５４】
ランタイムオブジェクトは、初期化中のみ所定の比較モードにおいてランタイムオブジェクトが実行される特別な識別子を取得する。
【００５５】
ランタイムオブジェクトは動作中、特定のテストフェーズの間所定の比較モードにおいてランタイムオブジェクトが実行される特別な識別子を取得する。このテストフェーズをたとえば周期的に（たとえば１０ｍｓ間隔で）あるいは要求に応じて行わせることができる。
【００５６】
有利にはこれらの識別子は記憶装置に格納される。
【００５７】
次に、これまで挙げた着想について図面を参照しながら詳しく説明する。
【００５８】
図２には、ランタイムオブジェクトが特別な識別子を取得しているケースに関するシーケンスが示されている。この特別な識別子が意味するのは、プロセッサシステムが所定の時点でおかれているモードは、この特別な識別子をもつランタイムオブジェクトに対しこの時点で計算時間が割り当てられる場合には変更されない、ということである。つまりランタイムオブジェクトは、目下アクティブであるこのモード中に実行される。
【００５９】
ステップＯ２００において任意のランタイムオブジェクトが実行される。ステップＯ２１０においてスケジューラが呼び出され、このスケジューラは、次の計算時間として割り当てを受けたランタイムオブジェクトを突き止める。次のステップＯ２２０において、ランタイムオブジェクトが上述の特別なタイプの識別子を有しているか否かが調べられる。そのような識別子を有しているならば、ステップＯ２３０においてランタイムオブジェクトに対し計算時間が割り当てられる。ランタイムオブジェクトがこのような特別なタイプの識別子を有していないならば、ステップＯ２４０においてプロセッサシステムのモードがランタイムオブジェクトの識別子に応じて変更され、ついでステップＯ２３０においてそのランタイムオブジェクトに対し計算時間が割り当てられる。
【００６０】
さらに別の実施形態によれば、１つのモードにおいて少なくともｎ個の実行後、少なくとも１回（ｍ回）別のモードでランタイムオブジェクトが実行されることを指定する特別な識別子を、ランタイムオブジェクトが取得する。これらの実施形態を互いに組み合わせてもよいし、あるいは図２に記載された方法と組み合わせてもよい。
【００６１】
図３には、上述の着想による別の実施形態が示されている。１つの実施形態によれば、ランタイムオブジェクトを交互にそれぞれ異なるモードで実行すべきことを指定する特別な識別子をランタイムオブジェクトが取得する。オプションとして、いくつのアクティブ化の後に一方のモードから他方のモードへ、およびどのモードへ交換すべきかを表すことができる。
【００６２】
はじめにステップＯ３００において、１つの任意のランタイムオブジェクトが実行される。ステップＯ３１０においてスケジューラが呼び出され、このスケジューラは、次の計算時間として割り当てを受けたランタイムオブジェクトを突き止める。ステップＯ３１５において、そのランタイムオブジェクトがどのタイプの識別子を有しているのかが突き止められる。ランタイムオブジェクトが上述の特別なタイプの識別子を有しているならば、ステップＯ３２０においてこのランタイムオブジェクトの先行の実行に関する情報が調べられる。１つの有利な実装形態によれば、これは１つまたは複数のカウンタステータスとして、さらにオプションとして対応するモード情報と結合されて、格納されている。カウンタステータスに関する実装の可能性として、この種の実行オブジェクトに対して許可されたモード各々について１つのカウンタがその実行オブジェクトに割り当てられ、このカウンタはその実行オブジェクトがこのモードで何度実行されたのかを計数する。オプションとして、上述のカウンタをリセットさせることができ、これは時間に従いまたは他の条件によってトリガされる。この実装形態が有利となるのは、ランタイムオブジェクトに対したとえば、モード１においてｎ個の実行ｎ１を実行すべきであり、モード２においてはｎ２を、モード３においてはｎ３を．．．という具合に実行すべきことを保証しなければならない場合である。有利にはｎ個の実行後に１つのカウンタリセットを行わせることができる。カウンタステータスに関する別の実装形態によれば、カウンタステータスだけが格納される。このことは、許可されたモードが２つしか存在しない場合に格別有利である。このようにした場合にはカウンタはたとえば、モード１においてランタイムオブジェクトが何回実行されたのかを計数する。択一的にこのカウンタは、最後に使われたモードにおいてランタイムオブジェクトが何回実行されたのかを計数する。
【００６３】
ステップＯ３３０において、これらの情報から次に使用すべきモードが求められる。カウンタに関する情報ならびにそれらに属するモード情報が実装されている場合、次に許可されているモードを確定するために用いることのできる数多くのアルゴリズムが存在する。第１の実施形態によれば、まずはじめにモード１において１つの周期内で行うべきすべての実行が実施され、ついでモード２においてすべての実行が実施される、という具合に構成されている。第２の実施形態によれば、常に周期的に交換が行われる。第３の実施形態によれば、モードのデフォルト配分に対し相対的に、それまでの実行の枠内で最も低い配分を有していたモードが選択される。第４の実施形態によれば、現在のモード情報がいっしょに算入され、有利には目下使用されるモードが選択される。
【００６４】
最後のステップＯ３３５において、実行に関する情報たとえばカウンタステータスに関する情報が更新される。
【００６５】
ついでステップ０３４０において、プロセッサシステムにおけるランタイムオブジェクトに必要とされる適切なモードが設定され、その後、ステップＯ３５０において、必要とされる計算リソースがライムタイムオブジェクトに割り当てられる。
【００６６】
ステップＯ３１５において、ランタイムオブジェクトが特別な識別子を有していないことが求められると、ステップＯ３６０において、そのオブジェクトに必要とされるモードが求められ、ステップＯ３４０が続く。
【００６７】
ここで述べる方法によれば、たとえば２つのモードだけが考えられるケースでは、所定のランタイムオブジェクトをたとえば１０回のうち９回パフォーマンスモードで実行させることができ、１回だけ比較モードで実行させることができる。これによりまずはパフォーマンスモードが最適に利用される。他方、これによって、要求に即したランタイムオブジェクトの実装が可能となる。殊にこれによって、持続的なエラーと一時的なエラーのエラー検出を区別することができ、実装によって、主として持続的なエラーについてはエラー検出ストラテジを利用することができる一方、一時的なエラーについてはロバストネスストラテジまたはフォールトトレランスストラテジを利用することができる。
【００６８】
図４には、この着想が特定のシステムモードとともに描かれている。基本的な着想によればランタイムオブジェクトは、特定のシステム条件のもとでは指示されたモードでランタイムオブジェクトが実行されることを定めた特別な識別子を取得する。たとえばシステムフォールバックレベルにおいては常に、特別な比較モードが実行されることになる。同様のことは初期化あるいは特別なテストフェーズについてもあてはまり、このようなテストフェーズはたとえば周期的に（たとえば１０ｍｓ間隔で）あるいは要求に応じて行われる。
【００６９】
はじめにステップＯ４００において、１つの任意のランタイムオブジェクトが実行される。ステップＯ４１０においてスケジューラが呼び出され、このスケジューラは、次の計算時間として割り当てを受けたランタイムオブジェクトを突き止める。これに応じてステップ０４２０において、そのランタイムオブジェクトが特別な識別子を有しているか否か、および特別な条件のうちの１つが生じているか否か、についてチェックされる。既述のようにこれらを、たとえば初期化、フォールバックレベルまたはテストフェーズに基づくものとすることができる。この特別な条件が存在しているならば、ステップＯ４３０においてそのために設けられているモードがプロセッサシステムにおいてセットされる。そのような条件が存在していないならば、ステップＯ４４０においてデフォルトモードが選択されるかまたは、図３を参照しながら説明したアルゴリズムが適用される。ついで両方のケースともに、ステップＯ４５０においてランタイムオブジェクトに対し計算時間が割り当てられる。
【図面の簡単な説明】
【００７０】
【図１】切替および比較ユニットを一般化して示す図
【図２】ランタイムオブジェクトが特別な識別子を取得しているケースにおけるモードの配分に関するシーケンスを示す図
【図３】ランタイムオブジェクトを交互に複数のモードで実行すべきことを指定する特別な識別子をランタイムオブジェクトが取得しているケースについて、モードの配分に関するシーケンスを示す図
【図４】特定のシステムモードをもつモードの配分の結合におけるシーケンスを示す図
【図５】２つの実行ユニットを備えたマルチプロセッサシステムを示す図
【図１】
2009506407.tif 000003
【図２】
2009506407.tif 000004
【図３】
2009506407.tif 000005
【図４】
2009506407.tif 000006
【図５】
2009506407.tif 000007
【国際調査報告】
2009506407.tif 000008
2009506407.tif 000009
2009506407.tif 000010
2009506407.tif 000011