(57)【要約】データ処理システムは、クロック制御されて機能する演算ユニット（１）と、演算ユニットのためにクロック信号を供給するクロックジェネレータ（５）と、演算ユニット（１）の正常な機能を監視する監視ユニット（３）と、を備える。クロックジェネレータ（５）は、制御可能な周波数を伴うクロック信号を供給するように構成される。監視ユニット（３）は、演算ユニット（１）の異常な機能が検出された場合には、クロック信号の周波数を低下させるために、クロックジェネレータ（５）に機能的に接続される。【選択図】図１
2008518313.tif 000002
【特許請求の範囲】
【請求項１】
クロック制御されて機能する演算ユニット（１）と、前記演算ユニット（１）のためにクロック信号を供給するクロックジェネレータ（５）と、前記演算ユニット（１）の正常な機能を監視する監視ユニット（３）と、を備えるデータ処理システムにおいて、
前記クロックジェネレータ（５）が制御可能な周波数を伴う前記クロック信号を供給するように構成され、
前記監視ユニット（３）は、前記演算ユニット（１）の異常な機能が検出された場合には、前記クロック信号の周波数を低下させるために、前記クロックジェネレータ（５）に機能的に接続されることを特徴とするデータ処理システム。
【請求項２】
前記監視ユニット（３）は、ウォッチドッグユニットを備えており、前記ウォッチドッグユニットが、予め設定された期間内に前記演算ユニットからの機能信号が生じなかった場合には、前記演算ユニットの異常な機能を検出することを特徴とする、請求項１に記載のデータ処理システム。
【請求項３】
前記監視ユニット（３）は、実際のクロックレート（ｆnom）と前記実際のクロックレートから変更されたクロックレートとにより、前記演算ユニットによるテスト処理を実行させ、前記実際のクロックレートで実行された前記テスト処理の結果と前記変更されたクロックレートで実行された前記テスト処理の結果とが異なる場合には、前記演算ユニットの異常な機能を検出するように、構成されることを特徴とする、請求項１に記載のデータ処理システム。
【請求項４】
前記変更されたクロックレート（ｆnom＋Δ）が前記実際のクロックレート（ｆnom）より増加されたクロックレートであることを特徴とする、請求項３に記載のデータ処理システム。
【請求項５】
前記監視ユニット（３）がプログラム技術的に前記演算ユニット（１）に実装されることを特徴とする、請求項３または４に記載のデータ処理システム。
【請求項６】
第２の演算ユニット（１１）および前記監視ユニット（３、２０、２１）を備える前記データ処理システムは、前記２つの演算ユニット（１、１１）の前記処理結果を比較する手段（２０、２１）を備え、かつ前記結果が一致しない場合には、異常な機能を検出するように、構成されることを特徴とする、請求項１に記載のデータ処理システム。
【請求項７】
前記クロックジェネレータ（５）は、前記クロックレートを一時的に実際のクロックレートより増加させ（Ｓ４）、前記増加されたクロックレートで異常な機能が検出された場合には、前記クロックレートを前記実際のクロックレートより低下させる（Ｓ９）ように、構成されることを特徴とする、請求項６に記載のデータ処理システム。
【請求項８】
前記クロックレートが下限値より低下した場合には、警告信号を出力する手段を備えることを特徴とする、請求項１〜７に記載のデータ処理システム。
【請求項９】
前記演算ユニット（１）は、さらに、多数の機能を有するアプリケーションを実行するように構成されており、前記システムの前記実際のクロックレートに応じて、少なくとも１つの前記機能の実行が許可されまたは許可されないことを特徴とする、請求項１〜８に記載のデータ処理システム。
【請求項１０】
車両制御装置であることを特徴とする、請求項１〜９に記載のデータ処理システム。
【請求項１１】
特に請求項１〜１０に記載される、クロック制御されて機能する前記演算ユニット（１）を動作させる方法であって、前記演算ユニット（１）が高いクロックレートで正常な機能について検査され（Ｓ４−Ｓ７）、前記演算ユニットの異常な機能が検出された場合には、前記クロックレートが低下される（Ｓ９）、前記方法において、
前記検査が規則的に繰り返されることを特徴とする、クロック制御されて機能する演算ユニットを動作させる方法。
【請求項１２】
前記データ処理システムのスイッチオンおよび／またはスイッチオフの各々に際して、前記検査が行われることを特徴とする、請求項１１に記載の方法。
【請求項１３】
前記データ処理システムの動作中、前記検査が周期的に行われることを特徴とする、請求項１１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばマイクロプロセッサのような、クロック制御されて機能する演算ユニットと、演算ユニットのためにクロック信号を供給するクロックジェネレータと、演算ユニットの正常な機能を監視する監視ユニットとを備えるデータ処理システムに関する。
【０００２】
（背景技術）
「ウォッチドッグ」の名称でも知られる、この種の監視ユニットは、従来のように、演算ユニットの未定義の状態もしくはシステム崩壊を認識して、必要な場合には、定義された動作状態を再び形成するために、演算ユニットをリセットするために用いられる。この種のウォッチドッグは、リセットの間の演算ユニットの一時的な動作中断を許容しながら、例えば宇宙線または他の電離放射などの影響による情報損失に基づく、自然発生的な処理エラーから生じる可能性のある障害状態を除去することができる。処理中の再現可能なエラーをもたらす、回路技術的またはプログラム技術的な類のデータ処理システム上の構造欠陥は、いわゆるウォッチドッグによっては認識不能である。というのは、ウォッチドッグは、予測可能な方法でエラーをもたらす状況の発生を回避できないためである。
【０００３】
電子的なデータ処理システムで処理エラーをもたらす他の潜在的な原因は、ランタイム効果（runtime effect, Laufzeiteffekte）である。電子信号は、データ処理システムの半導体チップ上または複数のチップ間で所定の速度でのみ伝達されるので、システムが動作されるクロック周波数が高いほど、信号経路長が短縮され、かつ互いに正確に同調される必要がある。信号線の寄生キャパシタは、信号レベルの変化を遅延させる。この寄生キャパシタは製造によりばらつくので、通常、プロセッサの製造に際して、プロセッサが確実に機能する最大のクロック周波数が検査される。この周波数（安全マージンを差し引いて）では、プロセッサが解放（release, freigegeben）され、かつ解放された最大周波数とそれ以下のクロック周波数では、プロセッサが確実に動作しうることが前提となる。
【０００４】
すでに、ネットワークに依存しないアプリケーションのためのプロセッサを、利用率に応じて、各々に異なるクロック周波数で動作させることが提案されている。この対策の目的は、プロセッサの電力消費を最小限にすることである。この電力消費はクロック周波数に伴って線形的に増加するので、プロセッサの実際のタスク処理に必要とされるクロックレートを超えないクロックレートで、プロセッサを動作させることが望ましい。
【０００５】
電子的な構成素子の劣化現象が、データ処理システムにおける自然発生的な処理エラーの発生確率の増加をもたらすものと判断される。この増加は、例えば、回路が実装される半導体基板の境界面で、回路を損なう寄生キャパシタの変化をもたらす長期変化によって、説明される。回路素子内のドーピング材料の移動も、動作温度が高い際には排除できず、その場合には、その種の移動の影響は、半導体基板上に構成される構造が小さいほど大きくなる。よって、集積密度を向上させるという開発動向を考慮すれば、今後とも重要性が高まる、劣化に基づく信頼性の問題を考慮する必要がある。
【０００６】
（発明の利点）
請求項１に定義される本発明によれば、前述した問題にもかかわらず、長期的に高水準の動作安全性を保証し、それによって、特に、自然発生的な機能障害を可能な限り回避することが重要である安全上クリティカルなアプリケーションに良好に適した、データ処理システムが提供される。
【０００７】
この利点は、クロック制御されて機能する演算ユニットと、演算ユニットのためにクロック信号を供給するクロックジェネレータと、演算ユニットの正常な機能を監視する監視ユニットと、を備えるデータ処理システムにおいて、クロックジェネレータが制御可能な周波数を伴うクロック信号を供給するように構成され、監視ユニットは、演算ユニットの異常な機能が検出された場合には、クロック信号の周波数を低下させるために、クロックジェネレータに機能的に接続されることによって達成される。
【０００８】
前述された寄生キャパシタ、または場合によってはドーピング移動によってもたらされる、回路構成部の効率の低下が、データ処理システムで発生する自然発生的エラーの本質的な原因に関与していると推定される。この種のエラーが発生しクロックレートが低下した場合には、最適な条件下でシステムにより達成可能な計算容量の一部が放棄されるが、システムの全般的な信頼性は維持される。
【０００９】
クロックレートを低下させる場合には、データ処理システム上で実行されるアプリケーションであって、少なくとも最初に一時的に特定された高いクロックレートで達成されるシステムの計算出力を全て使用するアプリケーションを実行可能な状態に維持するために、アプリケーションは、望ましくは多数の機能に分割される必要があり、その場合には、異常の場合に省略可能であると判断される、少なくとも１つの機能の実行が、システムの実際のクロックレートに応じて、許可されまたは許可されないようにしてもよい。
【００１０】
監視ユニットは、それ自体が既知のウォッチドッグユニットを備えることができ、それは、予め設定された期間内に演算ユニットからの機能信号が生じなかった場合には、演算ユニットの異常な機能を検出するが、ウォッチドッグユニットは、機能信号が生じなかった場合には、従来方法のようにデータ処理システムをリセットせずに、単にクロック信号の周波数の低下を指示するようにしてもよい。
【００１１】
その代りに、またはそれと組合せて、監視ユニットは、実際のクロックレートと実際のクロックレートから変更されたクロックレートとにより、演算ユニットによるテスト処理を実行させ、実際のクロックレートで実行されたテスト処理の結果と変更されたクロックレートで実行されたテスト処理の結果とが異なる場合には、演算ユニットの正常な機能を検出するように、構成されるようにしてもよい。
【００１２】
変更されたクロックレートが実際のクロックレートより増加されたクロックレートであるようにしてもよい。これにより、それを越えると処理エラーが発生する限界クロック周波数が、実際のクロック周波数の水準まで低下する前に、自然発生的エラーをもたらすデータ処理システムの傾向が検出されうる。
【００１３】
テスト処理の実行を制御する監視ユニットが、簡単かつ安価に、プログラム技術的な方法で演算ユニットに実装されるようにしてもよい。
【００１４】
他の実施形態によれば、第２の演算ユニットおよび監視ユニットを備えるデータ処理システムは、２つの演算ユニットの処理結果を比較する手段を備え、かつ結果が一致しない場合には、異常な機能を検出するように、構成されるようにしてもよい。この場合、データ処理システムの信頼性を評価するためには、テスト処理が一度実施されれば十分である。
【００１５】
この実施形態でも、動作安全性を検査するために、クロック周波数を一時的に実際のクロック周波数より増加させ、増加されたクロック周波数で異常な機能が検出された場合には、クロック周波数を実際のクロック周波数より低下させるようにすれば、効果的である。
【００１６】
データ処理システムは、クロック周波数が下限値より低下した場合には、警告信号を出力する手段を備えるようにしてもよい。
【００１７】
データ処理システムが車両制御装置、特にエンジン制御装置であるようにしてもよい。
【００１８】
本発明の他の対象は、データ処理システム、特に前述した類のデータ処理システムでクロック制御されて機能する演算ユニットを動作させる方法に関するものであって、同方法において、演算ユニットが正常な機能について検査され、演算ユニットの異常な機能が検出された場合には、クロックレートが低下され、その場合に検査が規則的に繰り返される。規則的な検査は、特に、データ処理システムのスイッチオンおよび／またはスイッチオフの各々に際して行われるようにしてもよく、あるいはデータ処理システムの駆動中に周期的に行われるようにしてもよい。
【００１９】
（実施例の説明）
本発明の他の特徴と利点は、添付図面を参照して行う、以下の実施例の説明から明らかにされる。
【００２０】
図１に概念的に示されるデータ処理システムは、マイクロプロセッサ１、作業メモリ２および監視ユニット３を備えており、それらはデータおよびアドレスバス４を介して互いに、かつ場合によっては不図示の周辺ユニットと通信し、それら周辺ユニットがシステムの適用に応じて様々に異なることができ、例えばエンジン制御装置として適用される場合には、エンジンの動作パラメータを検出する様々なセンサおよびエンジンに関するそれらのまたは他のパラメータを調節するアクターを備えうる。システムは、さらに、クロックジェネレータ５を備えており、そのクロックジェネレータは、特定された周波数を伴うクロック信号を監視ユニット３によって制御線６を介して、マイクロプロセッサ１、作業メモリ２および監視ユニット３に供給する。
【００２１】
作業メモリ２は、マイクロプロセッサ１によって実行すべきアプリケーションおよびテスト処理のプログラム指令を有する。
【００２２】
マイクロプロセッサ１は、製造者によって機能−クロック周波数について特定されている。通常の動作状態では、監視ユニット３は、マイクロプロセッサ１がアプリケーションを実行する間に亘って、この特定されたクロック周波数を発生させるために、クロックジェネレータ５を動作させる。システムがオンにされると（システムがエンジン制御装置として機能する場合には、例えばイグニションキーを回転することによって）、マイクロプロセッサ１は、アプリケーションの開始前に初期化を実行し、そのシーケンスが図２を用いて説明される。第１のステップＳ１では、監視ユニット３が、クロックジェネレータのクロック周波数ｆをマイクロプロセッサ１のために特定された周波数ｆnomに設定する。マイクロプロセッサ１は、このクロック周波数で、すでに説明したテスト処理をステップＳ２で実行する。このテスト処理は、例えば、算術的または論理的な演算の結果とすることができ、その演算は作業メモリ２から読み出された定数で実行されるので、各実行に際しては、同一の結果が得られるはずである。テスト処理の最後のステップＳ３は、監視ユニット３に関連づけられたアドレスへの結果の書込みであるので、監視ユニットが結果Ｒnomを受信して一時的に記憶する。
【００２３】
次に、監視ユニット３がクロック周波数ｆをｆnom＋Δに増加させて（Ｓ４）、その増加された周波数でマイクロプロセッサ１にテスト処理を繰り返させる（Ｓ５）。そして、結果Ｒincが再び監視ユニット３に書込まれる（Ｓ６）。ステップＳ７では、監視ユニットが受信した２つの結果Ｒnom、Ｒincを比較する。２つの結果が一致した場合には、２つのクロック周波数ｆnomおよびｆnom＋Δで、プロセッサ１が正常に機能したことが推定される。この場合、ステップＳ８では、クロック周波数ｆがｆnomにリセットされて、マイクロプロセッサ１がアプリケーションの実行を開始する。
【００２４】
ステップＳ７で、２つの結果が一致しなかった場合には、それは、増加されたクロック周波数ｆnom＋Δでは、動作が確実ではないことを意味する。この動作が確実でない周波数からの安全マージンを維持するために、ステップＳ９では、新たに低下された動作周波数ｆ＝ｆnom−Δに調節される。ステップＳ１０では、マイクロプロセッサ１は、システムの製造者によって準備されて作業メモリ２に格納されているリストを用いて、アプリケーションの機能能力をその本質的な特徴部分で維持し、外的事象に対するアプリケーションの許容不能な応答時間の遅延を回避し、その機能を場合によっては遮断するために、低下されたクロックレートでは実行が阻止されるべき機能をアプリケーションが有しているか否か、を検査する。さらに、ステップＳ１０では、以下の条件の少なくとも１つが満たされる場合には、ユーザーへの警告表示が出力される：
ａ）クロック周波数が再びΔ低下すると、アプリケーションの少なくとも１つの機能の遮断が必要となる；
ｂ）ステップＳ９でのクロックレートの低下が機能の遮断をもたらす；
ｃ）アプリケーション上でクリティカルとはならない全ての機能がすでに遮断されているので、クロックレートのさらなる低下が他の機能の阻止によって吸収できず、システム全体の動作不能がもたらされる。
【００２５】
ステップＳ１〜Ｓ３と、Ｓ４〜Ｓ１０とは、必ずしも時間的に連続して実行される必要はない。すなわち、例えば、システムの一回目の動作開始の間にステップＳ１〜Ｓ３を一度だけ実行し、その結果Ｒnomを監視ユニット３に記憶することが考えられるので、システムの動作安全性に関する後続の検査をステップＳ４〜Ｓ１０の実行のみに限定しうる。
【００２６】
これは、動作安全性の検査がシステムの実行中に周期的に実行される場合には、特に効果的である。というのは、ステップＳ４〜Ｓ１０を実行するためには、図２に示す全てのステップを実行する場合と比べて、約半分の期間のみアプリケーションを中断すればよいためである。
【００２７】
図２に示す動作安全性の検査によって、アプリケーションの開始を遅延させないために、その検査をシステムの動作開始時ではなく、システムをオフする直前に実行することもでき、その場合には、前述した場合と全く同様に、ステップＳ９で場合によっては、後続のステップを繰り返す際には、新たに設定された動作周波数ｆが特定された周波数ｆnomとして使用される。
【００２８】
前述した２つのテスト処理の結果Ｒnom、Ｒincを比較する課題の他に、監視ユニット３は、既知の方法により、さらに、マイクロプロセッサ１の未定義の動作状態またはシステム崩壊を検出する課題も処理しうる。この目的のために、アプリケーションは、規則的な時間間隔でデッドマン信号の発生を指示するように、設計されており、それが監視ユニット３によって受信される。このデッドマン信号は、例えばマイクロプロセッサ１がテスト処理の結果を書込む、前述したアドレスへの読取りアクセスとしうる。このデッドマン信号は、監視ユニット３内でタイマーを各々にリセットし、そのタイマーの待ち時間は、２つのデッドマン信号の間の予め設定された時間間隔よりも長い。デッドマン信号が予め設定された時間間隔で受信される限り、タイマーが規則的にリセットされて満了できない。システム崩壊の結果、デッドマン信号が受信されず、タイマーが満了した場合には、監視ユニット３がリセット線８（図１）を介してマイクロプロセッサ１のリセットを作動させ、アプリケーションを新たに起動させるようにマイクロプロセッサに指示する。
【００２９】
図３は、２つのマイクロプロセッサ１、１１を備える、本発明に基づくデータ処理システムの第２の実施形態を示しており、それらのプロセッサはデータ／アドレスバス４、１４を介して各々に関連づけられた作業メモリ２、１２と、そして場合によっては不図示の周辺ユニットと通信する。この種の構造を有するデータ処理システムは、例えば、特に６本または多くのシリンダを有するエンジンのためのエンジン制御装置であり、そのエンジンでは、シリンダが２つのグループに分割され、それらのグループが２つのプロセッサ１、１１の一方によって各々に制御される。プロセッサ１、１１は、共通のクロックジェネレータ５からクロック線７を介してクロック信号を受信する。クロック信号の周波数は、同様に２つのプロセッサ１、１１に共通して関連づけられた監視ユニット３によって制御される。データ線およびアドレス線は、バス４、１４の全てのリード線がＸＯＲゲート２０のバンクに接続され、それらの出力は、同一のゲート２０の２つの入力に各々に接続される、バスの２本の相同のリード線の値が異なる場合に、「真」の値となる。ＸＯＲゲート２０の出力は、ＯＲゲート２１の入力に各々に接続されており、よって、その出力は、バス４、１４の２本の任意の相同のリード線の値が異なる場合には、常に「真」の値となる。
【００３０】
図１の実施形態と同様の機能を満たすリセット線８は、監視ユニット３とプロセッサ１、１１との間に設けられうる。
【００３１】
この実施形態により可能となる処理方法を、以下で同様に図２を用いて説明する。
【００３２】
第１の代替案によれば、ステップＳ４のように、監視ユニット３がクロック信号の周波数ｆを正常な動作時に実際に使用される周波数ｆnomより増加させるので、監視ユニット３が動作安全性の検査を開始し、マイクロプロセッサ１、１１によるテスト処理（Ｓ５）を実行させ、その結果はアプリケーションによって必要とされず、安全検査のために用いられる。この処理の間、図２のステップＳ７に従って、論理ゲート２０、２１がマイクロプロセッサ１、１１によって発生されるデータおよびアドレスを継続的に比較する。これらのデータおよびアドレスが全てのテスト処理の間で等しい場合には、２つのプロセッサ１、１１は確実に機能しており、ステップＳ８でクロック周波数がｆnomにリセットされる。しかし、データ値またはアドレスに相違が生じた場合には、方法はステップＳ９に分岐し、そこでクロック周波数が低下されて、ステップＳ１０では、すでに前述したように、アプリケーションプログラムの機能が遮断される必要があるか、そして場合によっては、該当する機能が検出され、また、場合によってはユーザーへの警告が出力される。
【００３３】
この実施形態によれば、テスト処理の最終結果のみならず、アクセスされたアドレスを含む全ての中間結果も比較されるので、テスト処理のプログラムステップの数が同一にもかかわらず、第１の実施形態よりも高い確率でエラーが検出される。
【００３４】
付加的に、図３のデータ処理システムは、例えば２つのプロセッサ１、１１について同一の初期化が実行される、アプリケーションの開始段階で、プロセッサ１、１１が正常なクロック周波数ｆnomで同時に同一の指令を実行した場合でも、プロセッサ１、１１のエラーを検出する可能性を提供する。このことが、全く時間ロスなしに、動作安全性の検査を可能にする。
【００３５】
プロセッサと監視ユニットとは、前述した例では別々のユニットとして説明される。しかし、無論、プロセッサによって読取られたデータ内のＥＣＣエラーまたはパリティエラーを認識するために、プロセッサ回路に集積されて固定的に配線されたエラー認識機能を有する、プロセッサも使用可能である。この種のプロセッサは、前述した説明の主旨において、プロセッサと監視ユニットとの組合せとして考えられる。
【図面の簡単な説明】
【００３６】
【図１】本発明に基づくデータ処理システムの第１の実施形態を示すブロック回路図である。
【図２】図１のデータ処理システムによって実行される動作方法を示すフローチャートである。
【図３】本発明に基づくデータ処理システムの第２の実施形態を示すブロック回路図である。
【符号の説明】
【００３７】
１、１１    演算ユニット
３    監視ユニット
５    クロックジェネレータ
２０    ＸＯＲゲート
２１    ＯＲゲート
【図１】
2008518313.tif 000003
【図２】
2008518313.tif 000004
【図３】
2008518313.tif 000005
【国際調査報告】
2008518313.tif 000006
2008518313.tif 000007
2008518313.tif 000008
2008518313.tif 000009
2008518313.tif 000010
2008518313.tif 000011