(57)【要約】２つの冗長に駆動可能なマイクロプロセッサ・コア（１１０，２１０；１２０，２２０）と、２つのマイクロプロセッサ・コアの下流に設けられた比較ユニット（１３０、２３０）とを備えたプログラム制御型ユニットを駆動させる方法であって、冗長化された駆動のために、２つのマイクロプロセッサ・コアに異なる内容の作業レジスタ（１１２、２１２；１２２、２２２）がそれぞれ設けられ、比較ユニットが差異を信号で知らせるかどうかを検査するために、作業レジスタの内容が下流の比較ユニット（１３０、２３０）に供給される、２つの冗長に駆動可能なマイクロプロセッサ・コア（１１０，２１０；１２０，２２０）と２つのマイクロプロセッサ・コアの下流に設けられた比較ユニット（１３０、２３０）とを備えたプログラム制御型ユニットを駆動させる方法が提供される。【選択図】図１
2009516276.tif 000002
【特許請求の範囲】
【請求項１】
２つの冗長に駆動可能なマイクロプロセッサ・コア（１１０，２１０；１２０，２２０）と、前記２つのマイクロプロセッサ・コアの下流に設けられた比較ユニット（１３０、２３０）とを備えたプログラム制御型ユニットを駆動させる方法であって：
冗長化された駆動のために、前記２つのマイクロプロセッサ・コアに異なる内容の作業レジスタ（１１２、２１２；１２２、２２２）がそれぞれ設けられ、前記比較ユニットが差異を信号で知らせるかどうかを検査するために、前記作業レジスタの内容が前記下流の比較ユニット（１３０、２３０）に供給されることを特徴とする、２つの冗長に駆動可能なマイクロプロセッサ・コア（１１０，２１０；１２０，２２０）と前記２つのマイクロプロセッサ・コアの下流に設けられた比較ユニット（１３０、２３０）とを備えたプログラム制御型ユニットを駆動させる方法。
【請求項２】
異なる内容のレジスタ（１１１、１２１）が、前記２つのマイクロプロセッサ・コアにそれぞれ設けられており、そのとき、前記作業レジスタ（１１２、１２２）それぞれの内容は、異なるレジスタ（１１２、１２１）の内容の処理または複写によって形成されることを特徴とする、請求項１に記載の方法。
【請求項３】
前記作業レジスタ（２１２、２２２）それぞれの内容は、異なる内容の定義されたアドレスに対する各アクセスによって伝達されることを特徴とする、請求項１に記載の方法。
【請求項４】
前記異なる内容のアドレスは、前記比較ユニット（２３０）内に存在するレジスタ（２３１、２３２）に属することを特徴とする、請求項３に記載の方法。
【請求項５】
前記２つの作業レジスタの内容は、変更後に前記作業レジスタの内容が異なったまま保持されるように変更されることを特徴とする、請求項１〜請求項４のいずれかに記載の方法。
【請求項６】
前記作業レジスタの内容は、前記レジスタに同一の論理演算を適用することによって変更されることを特徴とする、請求項５に記載の方法。
【請求項７】
さらなる別の比較ユニットが、命令またはデータの読出しアクセスのために設けられており、そのとき、前記２つのマルチプロセッサ・コアに伝達された命令またはデータは、前記読出しアクセスのための比較ユニットが差異を信号で知らせるかどうかを検査するために、プログラムジャンプによって変更されることを特徴とする、請求項１〜請求項６のいずれかに記載の方法。
【請求項８】
２つの冗長に駆動可能なマイクロプロセッサ・コア（１１０、２１０；１２０、２２０）と前記２つのマイクロプロセッサ・コアの下流に設けられた比較ユニット（１３０、２３０）とを備えたプログラム制御型ユニットであって：
冗長化された駆動のために、前記２つのマイクロプロセッサ・コアに異なる内容の作業レジスタ（１１２、２１２；１２２、２２２）がそれぞれ設けられており、そのとき、前記比較ユニットが差異を信号で知らせるかどうかを検査するために、前記作業レジスタの内容を前記下流の比較ユニット（１３０，２３０）に供給するための手段が設けられていることを特徴とする、２つの冗長に駆動可能なマイクロプロセッサ・コア（１１０、２１０；１２０、２２０）と前記２つのマイクロプロセッサ・コアの下流に設けられた比較ユニット（１３０、２３０）とを備えたプログラム制御型ユニット。
【請求項９】
異なるレジスタ（１１１、１２１）の内容の処理によって各作業レジスタ（１１２、１２２）の内容を形成するために、前記２つのマイクロプロセッサ・コア（１１０、１２０）に異なる内容のレジスタ（１１１、１２１）がそれぞれ設けられていることを特徴とする、請求項８に記載のプログラム制御型ユニット。
【請求項１０】
前記比較装置（２３０）には、異なる内容の２つのレジスタ（２３１、２３２）が設けられており、そのとき、前記２つのレジスタの内容が対応する特定のアドレスへのアクセスによって、前記マイクロプロセッサ・コア（２１０、２２０）の前記作業レジスタ（２１２、２２２）に読み込まれることを特徴とする、請求項８に記載のプログラム制御型ユニット。
【請求項１１】
前記２つの作業レジスタの各内容を変更するために手段が設けられており、そのとき、前記２つの作業レジスタの各内容の変更の後にも、レジスタの内容が互いに異なっていることを特徴とする、請求項８〜請求項１０のいずれかに記載のプログラム制御型ユニット。
【請求項１２】
さらなる別の比較ユニットが命令またはデータの読出しアクセスのために設けられており、前記読出しアクセスのための比較ユニットが差異を信号で知らせるかどうかを検査するために、命令またはデータをプログラムジャンプによって変更するための手段が設けられていることを特徴とする、請求項８〜請求項１１のいずれかに記載のプログラム制御型ユニット。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、冗長に駆動可能な２つのマイクロプロセッサ・コア（Mikroprozessorkern）を備えたプログラム駆動型ユニット、およびこのような（冗長に駆動可能な２つのマイクロプロセッサ・コアを備えたプログラム駆動型）ユニットの駆動方法に関する。
【０００２】
この種のプログラム制御型ユニットは、例えば、マイクロプロセッサ（Mikroprozessor）、マイクロコントローラ（Mikrokontroller）、信号処理プロセッサ（Signalprozessor）等として構成されている。マイクロコントローラまたはマイクロプロセッサは、マイクロコントローラ・コアまたはマイクロプロセッサ・コア、すなわちコアと、１つまたは複数の記憶装置（プログラム記憶装置（Programmspeicher）、データ記憶装置（Datenspeicher）等）と、周辺コンポーネント（Peripheriekomponent）（発振器（Oszillator）、入力／出力ポート、タイマ（Timer）、Ａ／Ｄ変換器（AD-Wandler）、Ｄ／Ａ変換器（DA-Wandler）、通信インタフェース（Kommunikationsschnittstelle））と、割込みシステム（Interrupt-System）とを含んでいる。これら構成要素は、共にチップ上で統合されており、１つまたは複数のバス（内部または外部データ／アドレスバス）を介して、互いに接続されている。このようなプログラム制御型ユニットの構成（Aufbau）および機能形態（Funktionsweise）は広く周知されているので、ここでは詳細に取り上げない。
【０００３】
マイクロコントローラ・コアは、モジュールのマイクロコントローラ構想（Mikrokontrollerkonzept）という意味において、オンチップ統合型中央処理ユニット（On-Chip  intetrierte  zentrale  Steuereinheit）（ＣＰＵ）である。マイクロコントローラ・コアは、本質的に、多少とも複雑な制御装置と、複数のレジスタ（Register）（データレジスタ、アドレスレジスタ）と、バス制御ユニット（Bussteuereinheit）と、本来のデータを処理する演算ユニットとを含んでいる。演算ユニットに伝達される入力データ（オペランド（Operand））、および演算ユニットによる演算の結果は、処理の前または処理の後に、特に格納のために設けられたレジスタまたは記憶場所（Speicherstelle）に格納されることが可能である。オペランドの処理およびオペランドの設定（Anlegen）の際にも、演算結果に不利に作用しうるエラー（Fehler）が発生する可能性がある。入力側で結合された（eingekoppelt）オペランドの改変（Verfalschung）は、例えば、各入力データを表すポテンシャル（Potential）が、設定されているより高いまたは低いことによって起こりうる。特定の閾値を上回るまたは下回る場合、論理ステータス（logischer  Zustand）を表すポテンシャルは、本来設定と異なる論理ステータスである可能性がある。したがって、例えば、論理的「１」は、論理的「０」に変更される可能性があるので、演算結果は、著しく改変(verfalschen)される可能性がある。一方、当然のことながら、演算ユニットによる誤った計算は、このような演算結果の改変につながる可能性がある。
【背景技術】
【０００４】
上記の理由から、近代的なマイクロプロセッサシステムは、エラー検出（Fehlererkennung）またはエラー除去（Fehlerbeseitigung）のためのシステムが備えられている。エラー検出またはエラー除去のためのシステムによって、エラーの発生が識別され、表示されることが可能である（故障識別；Failure  Identification）。または、システムの機能にしたがって、発生するエラー（故障）の場合のための予防措置をとることが可能である。エラーを検出するために、冗長化されたハードウェアが利用されるが、その際１つのマイクロプロセッサ・コアの代わりに、２つのマイクロプロセッサ・コアと、２つのマイクロプロセッサ・コアの下流に設けられた比較ユニットとが利用されることが可能である。この種の二重プロセッサシステム（Zweiprozessorsystem）(デュアルコア)の場合、同一の入力データでの、上述の比較ユニットを用いる冗長化された駆動において、両コアの演算結果が不一致の際に比較ユニットによってエラー信号（Fehlersignal）が生成されることが可能である。このようなコンピュータシステムは、例えば、国際公開第０１／４６８０６号パンフレットにおいて開示されている。
【０００５】
本件出願人による独国特許出願公開１０３１７６５０号明細書において、エラー検出システムを備えたマイクロコントローラおよびその駆動方法が開示されている。マイクロコントローラは、単一のマイクロコントローラ・コア（Core）を有しており、さらにマイクロコントローラ・コアは、データ処理のための２つの演算ユニット（ＡＬＵ＝論理演算ユニット）を有している。したがって、ここでは、マイクロコントローラ・コア全体が冗長化されて実現されていない。したがって、必要なチップ面積（Chipflache）は、大幅に縮小されることが可能である。エラー検出は、検査駆動（Testbetrieb）では、同一の命令またはデータが並行して２つの演算ユニットに結合される（koppeln）ことによって、行われる。入力側では、２つの演算ユニットに結合されたデータの検査合計（Prufsumme）が形成される。各検査合計は、対応するレジスタに格納された検査合計と比較され、改変（Verfalschung）の際データは訂正され、再度結合される（einkoppeln）。マイクロコントローラの２つの実行または演算ユニットは、その都度演算結果を生成する。演算結果は、同一の（gleich）結合されたデータの場合一致しなければならない。演算結果データおよび／または演算結果の解読（Codierung）（ＥＣＣ（誤り訂正符号）−検査合計）は、比較ユニットにおいて互いに比較される。一致の場合には許可信号（Freigabesignal）が生成され、不一致の場合には命令実行部内でのエラー、または演算結果の解読エラーが推測されうる。一時的または恒久的なランタイム・エラー（Laufzeitfehler）が検出される可能性がある。
【０００６】
本件出願人による独国特許出願公開１０３１７６５１号明細書において、ＡＢＳ（アンチロック・ブレーキ・システム）、ＥＳＰ（電子制御式車両安全性制御プログラム）、操縦およびシャーシ制御（Lenk-  und  Fahrwerkregelung）等の、安全性に関わる車両システムのために２進法のデータワードを比較する方法および装置が開示されている。ここでは、デュアルコア・プロセッサ（Dual-Core-Rechner）、すなわち、２つのＣＰＵ（中央演算ユニット）を備えたマイクロコントローラに基づいている。ＣＰＵでは、全機能が冗長に計算され、各出力値が互いに比較される。出力値が不一致の場合、エラーに対応してシステムが反応する。その際、システムの非作動も起こりうる。状況に適したエラー処理を実現するために、上記の明細書において、出力値のデータワードの高位（hoherwertig）ビットを、下位（niederwertig）ビットとは別に、互いに比較することが提案される。したがって、値がさほど高くない下位ビットが不一致の場合、対応するエラー処理が行われる。その際、例えば、負の比較演算結果の代わりに、代替値（Ersatzwert）が転送される。代替値によって、データワードの高位ビットが一致する場合に、全体で（insgesamt）、演算結果全体（Gesamtergebnis）が正になる。
【０００７】
本発明は、２つのプロセッサシステム（デュアル・コア）に基づくが、２つの演算ユニットを備えた単一のマイクロコントローラ・コアを有するプロセッサシステムも含まれるべきである（独国特許出願公開１０３１７６５０号明細書参照）。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上記で取り上げられた二重プロセッサシステムに共通する問題は、出力データの比較ユニットが、単一障害点（Single  Point  of  Failure）となりうるという点にある。異常な（エラーがある）（fehlerhaft）比較ユニットによって、コアまたは演算ユニットが正常に機能しているにも関わらず、エラーが表示される。さらに悪い場合には、比較ユニットが信号の差異を知らせないため、異常に機能しているコアまたは演算ユニットが異常な比較ユニットに基づいて検出されない。
【０００９】
従来では、データパスが比較ユニットの入力部で切断され、データが外部に伝達される（anlegen）ことによって、比較ユニットが検査される。択一的に、比較ユニットは、セルフテストを行うように構成される（auslegen）ことも可能である（ＴＳＣチェッカ（TSC-Checker：Totally  Self-Checker；トータルセルフチェッカ）が、ハードウェア・コストが高くなる。比較要素（Vergleicher）の前段に設けられる、検査目的に異なるデータを入力する切替え装置（Umschalter）もそれ自体が単一障害点となりうるので、回避されるべきである。したがって、例えば、フォールバック（Zuruckschaltung）が正確に機能することを保障する、という問題が存在する。
【００１０】
したがって、プロセッサのデータパスの切り替えを行わずに、上記の比較ユニットを簡単に検査するという必要性が生じる。
【課題を解決するための手段】
【００１１】
特許請求の範囲に記載の請求項１に基づく２つの冗長に駆動可能なマイクロプロセッサ・コアを備えたプログラム制御型ユニットを駆動させるための本発明に基づく方法、および特許請求の範囲に記載の請求項８に基づく対応するプログラム駆動型ユニットは、公知の解決策のアプローチに対し、チップ面積を増大することなく、簡略化して比較装置の検査を行うという点で有利である。
【００１２】
本発明は、２つの冗長に駆動可能なマイクロプロセッサ・コアと、２つのコアの下流に設けられた比較ユニットとを備えるプログラム駆動型ユニットに基づいている。本発明に基づいて、冗長化された駆動のために、２つのコアに、異なる内容の作業レジスタ（Arbeitsregister）がそれぞれ設けられている。この異なる内容のレジスタが、二重プロセッサシステムにおける唯一の差異である。レジスタ内容は、比較ユニットが差異を信号で知らせるかどうかを検査するために、比較ユニットに供給される。実際には、レジスタ内容は、読み込み（ロード）・格納動作（Load-Store-Operation）によって、データパスに供給される。レジスタ内容が異なるので、比較ユニットは、自己が正常に稼動している限り、遅くとも記憶装置へ値を書き戻す（Zuruckschreiben）際に、差異を信号で知らせる必要がある。
【００１３】
本発明によって、チップ内での場所（面積）を増大することなく、簡単な方法で、可能な単一障害点としての比較ユニットが検査されることが可能である。
【００１４】
異なる内容のレジスタが、２つのマイクロプロセッサ・コアにそれぞれ設けられることは有利である。その際、各作業レジスタの内容は、異なるレジスタの内容の処理または複写によって形成される。この場合、２つの異なるレジスタがマイクロプロセッサ・コアに設けられる。その際、比較ユニットを検査するために、両コアは、例えば、ロックモード（Lock-Modus）でプログラムを実行する。プログラムは、最初に、異なるレジスタの内容を各作業レジスタに複写する。引き続き、各作業レジスタの内容が、比較ユニットを介して、例えば記憶装置に書き込まれる。比較ユニットが正確に稼動している場合、作業レジスタの内容とレジスタの内容が異なるので、（比較ユニットは）エラー信号を生成する。上記の複写過程（Kopiervorgang）の代わりに、各作業レジスタの内容が、異なるレジスタの内容の別の処理によっても形成されることが可能である。
【００１５】
標準プロセッサに変更が施されるべきではない場合、標準プロセッサがアドレス領域の定義されたアドレスにアクセスする際に、マイクロプロセッサ・コアに異なる値のデータを伝達することは有利である。この場合、各作業レジスタの内容が、異なる内容の定義されたアドレスへの各アクセスによって伝達される。異なる内容の定義されたアドレスは、例えば、比較ユニット内に存在するレジスタに属していることが可能である。
【００１６】
既存のレジスタが、冗長に駆動可能なマイクロプロセッサ・コアにおいて本発明のために利用されることが可能であることが、有利な点として挙げられる。第１駆動形態では互いに独立して、第２駆動形態では冗長に駆動されることが可能なデュアルコア・プロセッサ（デュアルコア／分割（Split）／ログ（Log）・プロセッサ）の場合、異なる駆動において、どのＣＰＵでソフトウェアが正に実行されるのかについて、ソフトウェアが確定する（ermitteln）ことを可能にするレジスタが通常存在する。冗長化された駆動への切り替えの際に、レジスタ内容は保持されたままであり、したがって（レジスタ内容は）異なっている。
【００１７】
可能な限り完全なエラー検出を保障できるように、両作業レジスタの内容を変更することは有利である。（内容の）変更後、内容は異なったままである。さらに、作業レジスタの内容は、特に、両レジスタに同一の論理演算（logische  Verknupfung）を適用することによって、変更されることが可能である。両プロセッサにおいて同一である任意の別を用いた演算（Verknupfung）よって、いかなるビットパターン（Bitmuster）およびいかなるビットパターンの差異も、両マイクロプロセッサ・コアで生成されることが可能になる。したがって、比較ユニットの完全な検査が可能である。発生するエラーには、縮退故障（Stuck-At-Fehler）および連結障害（Kopplungsfehler）も含まれる。縮退故障の場合、電圧レベル(Spannungspegel)が既に下がっている、または上がっているはずであるにも関わらず、回路（Leitung）が高いまたは低い電圧レベルに維持される。この故障は、恒久的にまたは一時的に（特定の期間）発生する可能性がある。連結障害とは、並列回路（parallele  Leitung）に電圧レベルが飛び移ること（Uberspringen）を意味している。全エラーに対し信頼性が高い検査を行うために、（「１」および「０」の異なる数（Anzahl）を用いた）順列（Permutation）が必要である。コア１のレジスタ内容が例えば「０００１」で、コア２のレジスタ内容が「００１０」である場合、論理演算「ＡＮＤ０００１」によって、コア１のレジスタ内容が「０００１」に、コア２のレジスタ内容が「００００」に設定されることが可能である。一方、コア２のレジスタ内容の論理演算は、演算子（Operator）「ＮＯＴ」によって、コア１のためのレジスタ内容が「１１１０」またはコア２のためのレジスタ内容が「１１１１」となる。
【００１８】
したがって、当業者には、任意のレジスタ内容が創出（herstellen）可能であることが明らかである。
【００１９】
さらなる別の比較ユニットを、命令またはデータの読出しアクセスのために設けることは有効である。その際、この種の比較ユニットも単一障害点である。このような比較ユニットの検査のため、読出しアクセスのための比較ユニットが差異を信号で知らせるかどうかを検査するために、両マイクロプロセッサに伝達される命令またはデータが、プログラムジャンプ（Programmverzweigung）によって変更される。このようなジャンプ動作によって、例えば、コア１に伝達された命令が、コア２に関しては他の箇所に設定される。したがって、読出しアクセスのための比較ユニットは、正常駆動の際に、両コアに異なる命令が伝達されることを確定できなければならない。
【００２０】
本発明に関する上記の実施は、同一の方法において、（本発明で）クレームされる（beansprucht）、２つの冗長に駆動可能なマイクロプロセッサおよび、２つのマイクロプロセッサの下流に設けられた比較ユニットを備えたプログラム駆動型ユニットに有効である。重複を避けるために、上記の記載が参照されるものとする。さらに、本発明の特徴（Merkmal）は、（本発明で）示される（angeben）組み合わせのみならず、他の組み合わせまたは単独でも利用可能であることが強調される。
【発明を実施するための最良の形態】
【００２１】
図１には、本発明の可能な実施形態が示されている。全体システム１００は、異なる内容のレジスタ１１１または１２１をそれぞれ備えた２つのプロセッサ（コア）１１０および１２０を有している。両プロセッサは、比較ユニット１３０と接続されており、比較ユニット１３０はさらにインタフェース１４０を介して、記憶装置または（図示されていない）周辺装置等の残りのコンピュータユニット（Rechnereinheit）と接続されている。実施（形態）（Ausfuhrung）にしたがって、比較ユニットは、プロセッサの書き込み動作、または書込みおよび読出し動作の同一性（Gleichheit）を比較する。
【００２２】
比較ユニット１３０を検査するために、両プロセッサはロックモードでプログラムを実行する。プログラムは、最初にレジスタ１１１または１２１を作業レジスタ１１２または１２２に複写する。引き続き、この作業レジスタの内容が、比較ユニット１３０およびインタフェース１４０を介して記憶装置に書き込まれる。比較ユニット１３０が正確に稼動している場合、レジスタ１１１の内容とレジスタ１２１の内容も異なっているので、比較ユニットはエラー信号を生成する。比較ユニット１３０の完全な検査のために、作業レジスタへの複写の後で、レジスタ１１１またはレジスタ１２１の値が以前（直近の値）と同様に（wie  zuvor）書き込まれること、例えば、論理演算の適用（Anwendung）によって操作されることが可能である。読出し動作も比較ユニット１３０によって比較される場合、検査は、プログム制御フローの分岐（Verzweigung  des  Programmkontrollflusses）によって行われる。
【００２３】
図２には、本発明の他の実施形態が示されている。全体システム２００は、それぞれ作業レジスタ２１２または２２２を備えた２つのプロセッサ（コア）２１０および２２０を有している。システム１００に対し、プロセッサは同一に構成されており、異なる内容のレジスタを有しない。両プロセッサは、比較ユニット２３０と接続されており、比較ユニット２３０はさらに、インタフェース２４０を介して、記憶装置または（図示されていない）周辺装置等の残りのコンピュータユニットと接続されている。比較ユニット２３０は、２つのレジスタ２３１および２３２を有している。２つのレジスタ２３１または２３２の内容は異なっている。プロセッサは、アドレス領域の定義されたアドレスにアクセスすることによって、これらのレジスタの内容を複写する（ロードする）ことが可能である。比較ユニットは、このアドレスへのアクセスを検出し、プロセッサ２１０のためにはレジスタ２３１の内容を、プロセッサ２２０のためにはレジスタ２３２の内容を伝達する。この場合、アクセスは、インタフェース２４０に伝えられない。実施（形態）にしたがって、比較ユニットは、プロセッサの書込み動作、または書込みおよび読出し動作の同一性を比較する。残りの検査工程は、上述の実施形態と同一である。
【図面の簡単な説明】
【００２４】
【図１】本発明の第１実施形態が図式的に示されている。
【図２】本発明の他の実施形態が図式的に示されている。
【図１】
2009516276.tif 000003
【図２】
2009516276.tif 000004
【国際調査報告】
2009516276.tif 000005
2009516276.tif 000006
2009516276.tif 000007
2009516276.tif 000008