(57)【要約】少なくとも２つのレジスタ付き処理ユニット（１０１、１０２）を有するシステム（１００、４００）においてエラーを除去する装置（１２０）が記載される。その際、レジスタはデータを保持するために構成されている。装置は、レジスタに格納されるデータの比較によって、不一致と、不一致に基づいてエラーとが特定可能であるように設けられている比較手段（１２６）を有している。さらに、少なくとも１つのシャドウレジスタ（１２１、１２２）は、レジスタのデータに該当するデータが内部に格納可能であるように設けられており、エラーの特定の際に少なくとも１つのシャドウレジスタ（１２１、１２２）のデータに基づいて、少なくとも１つのレジスタで正常なデータを復旧するための手段が設けられている。本装置によって、マルチコアプロセッサ（１００）の信頼性が改善される。
2009516277.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも２つのレジスタ付き処理ユニット（１０１、１０２）を有するシステム（１００、４００）においてエラーを除去する装置（１２０）であって、その際前記レジスタはデータを保持するために構成されており、前記レジスタに格納されるデータの比較によって、不一致と、前記不一致に基づいたエラーとが特定可能であるように設けられた比較装置を備える、エラーを除去する装置において、
レジスタのデータに該当するデータが内部に格納可能であるように設けられた少なくとも１つのシャドウレジスタ（１２１、１２２）と、エラーの特定の際に前記少なくとも１つのシャドウレジスタ（１２１、１２２）のデータに基づいて少なくとも１つのレジスタにエラーの無いデータを復旧するための手段と、を含むこと特徴とする、少なくとも２つのレジスタ付き処理ユニット（１０１、１０２）を有するシステム（１００、４００）においてエラーを除去するための装置（１２０）。
【請求項２】
プロセッサ状態語（ＰＳＷ）（１２２）およびレジスタファイル（１２１）および／または命令アドレスを保持する、少なくとも１つのシャドウレジスタを特徴とする、請求項１に記載の装置（１２０）。
【請求項３】
少なくとも１つのシャドウレジスタ（１２１、１２２）が、少なくとも１つの処理ユニット（１０１、１０２）の記憶領域内に重ね合わせ可能であることを特徴とする、請求項１または請求項２のいずれかに記載の装置（１２０）。
【請求項４】
少なくとも２つのレジスタ付き処理ユニット（１０１、１０２）を有する、前記少なくとも１つのシャドウレジスタ（１２１、１２２）に関するアドレス・書き込み信号を取得するための前記システム（１００、４００）の、命令記憶装置（１３０）の命令を実行するための命令実行部（１２３）をさらに含むことを特徴とする、請求項１〜請求項３のいずれかに記載の装置（１２０）。
【請求項５】
レジスタのデータに該当するデータがレジスタのデータそのものであり、エラーの特定の際に前記少なくとも１つのシャドウレジスタ（１２１、１２２）のデータに基づいて少なくとも１つのレジスタにエラーのないデータを復旧するための前記手段が、前記少なくとも１つのシャドウレジスタ（１２１、１２２）のデータを少なくとも１つのレジスタに伝送するために、構成されていることを特徴とする、請求項１〜請求項４に記載の装置（１２０）。
【請求項６】
レジスタのデータに該当するデータが検査合計であることを特徴とする、請求項１〜請求項４のいずれかに記載の装置（１２０）。
【請求項７】
請求項１〜請求項６のいずれかに記載の装置（１２０）を備えることを特徴とする、少なくとも２つの処理ユニット（１０１、１０２）を備えたプロセッサ（１００、４００）。
【請求項８】
セーフティモードとパフォーマンスモードとを切り替えるための切り替え手段（４０７）であって、その際前記少なくとも２つの処理ユニット（１０１，１０２）が前記セーフティモードでは同一のプログラムを実行し、前記パフォーマンスモードでは異なるプログラムを実行する、セーフティモードとパフォーマンスモードとを切り替えるための切り替え手段（４０７）を備えることを特徴とする、請求項７に記載のプロセッサ（１００、４００）。
【請求項９】
キャッシュメモリ（４０２、４０３）を消去するための手段を備えること特徴とする、請求項７または請求項８に記載のプロセッサ（１００、４００）。
【請求項１０】
少なくとも２つのクロック発振器（２０３，２０４，２０５）が設けられていることを特徴とする、請求項７〜請求項９のいずれかに記載のプロセッサ（１００、４００）。
【請求項１１】
各前記処理ユニット（１０１、１０２）ためのクロック発振器（２０３、２０４）と、前記装置（１２０）のためのクロック発振器（２０５）とが正確に設けられていることを特徴とする、請求項１０に記載のプロセッサ（１００、４００）。
【請求項１２】
少なくとも２つのレジスタ付き処理ユニット（１０１、１０２）を有するシステム（１００、４００）においてエラーを除去する方法であって、データは前記レジスタで格納されており、その際前記データが比較され、不一致の際にエラーが特定される、エラーを除去する方法において、
少なくとも１つのシャドウレジスタ（１２１、１２２）が、レジスタのデータに該当するデータを保持するために設けられており、エラーの特定の際に、前記少なくとも１つのシャドウレジスタ（１２１、１２２）のデータに基づいて、少なくとも１つのレジスタでエラーがないデータが復旧されることを特徴とする、少なくとも２つのレジスタ付き処理ユニット（１０１、１０２）を有するシステム（１００、４００）においてエラーを除去する方法。
【請求項１３】
前記少なくとも１つのシャドウレジスタに、プロセッサ状態語（ＰＳＷ）（１２２）およびレジスタファイル（１２１）および／または命令アドレスが格納されることを特徴とする、請求項１２に記載の方法。
【請求項１４】
少なくとも１つのシャドウレジスタ（１２１、１２２）が、少なくとも１つの処理ユニット（１０１、１０２）の記憶領域に重ね合わせられることを特徴とする、請求項１２または請求項１３に記載の方法。
【請求項１５】
少なくとも２つのレジスタ付き処理ユニット（１０１、１０２）を有する前記システム（１００、４００）の命令記憶装置（１３０）の命令が実行され、その際前記少なくとも１つのシャドウレジスタ（１２１、１２２）に関するアドレス・書き込み信号を取得することを特徴とする、請求項１２〜請求項１４のいずれかに記載の方法。
【請求項１６】
前記少なくとも１つのシャドウレジスタ（１２１、１２２）に、前記シャドウレジスタ（１２１、１２２）のデータの正確性を確定するためのパリティが割り当てられることを特徴とする、請求項１２〜請求項１５のいずれかに記載の方法。
【請求項１７】
レジスタのデータに該当するデータが、レジスタのデータそのものであり、少なくとも１つのレジスタのエラーのないデータが、前記少なくとも１つのシャドウレジスタ（１２１、１２２）のデータを前記少なくとも１つのレジスタへ伝送することによって、復旧されることを特徴とする、請求項１２〜請求項１６のいずれかに記載の方法。
【請求項１８】
レジスタのデータに該当するデータが検査合計であることを特徴とする、請求項１２〜請求項１６のいずれかに記載の方法。
【請求項１９】
少なくとも２つのレジスタのデータと、少なくとも１つのシャドウレジスタ（１２１、１２２）のデータとが比較され、基本的に一致するデータが、エラーがないとして確定されることを特徴とする、請求項１２〜請求項１８のいずれかに記載の方法。
【請求項２０】
セーフティモードとパフォーマンスモードとが切り替えられ、その際前記セーフティモードでは請求項１２〜１９のいずれかに記載の方法が実行され、前記パフォーマンスモードでは前記少なくとも２つの命令実行部が異なるプログラムを実行することを特徴とする、請求項１２〜請求項１９のいずれかに記載の方法。
【請求項２１】
請求項１〜請求項６のいずれかに記載の装置、または請求項７〜請求項１１のいずれかに記載のプロセッサを備えることを特徴とする、車両のための制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、少なくとも２つのレジスタ付き処理ユニットもしくはＣＰＵを有するシステムまたはプロセッサにおいてエラーを除去する装置および方法、ならびに特許請求の範囲に記載の独立請求項の上部概念に基づく対応するプロセッサに関する。
【背景技術】
【０００２】
半導体の構造幅が矮小になるにつれて、宇宙線等に起因する一過性の、すなわち一時的なプロセッサエラーの増加が見込まれる。今日すでに、電磁放射線、またはプロセッサの供給ラインへのノイズの混入に起因する一時的なエラーも発生している。
【０００３】
従来技術において、プロセッサ内のエラーは、追加的な監視装置または冗長なプロセッサもしくはデュアルコア・プロセッサの使用によって検出される。
【０００４】
このようなデュアルコア・プロセッサまたはプロセッサシステムは、並行してまたは時刻をずらして同一のプログラムを実行する２つの処理ユニット、特に、２つのＣＰＵ（マスタおよびチェッカ）から構成されている。両ＣＰＵ（Central Processing Unit）は、クロック同期で、すなわち並行して（ロックステップ（Lockstep）またはコモンモード（Common Mode）で）、または数クロックずれて稼動する。両ＣＰＵは、同一の入力データを受信し、同一のプログラムを実行する。しかし、デュアルコアの出力は最終的にマスタによって駆動される。各クロックサイクルにおいて、マスタの出力がチェッカの出力と比較され、比較によって検査される。両ＣＰＵの出力値が一致しない場合、両ＣＰＵのうちの少なくとも１つがエラーのある状態にあることを意味している。
【０００５】
デュアルコア・プロセッサの例示的構造において、比較装置は、両コアの出力（命令アドレス、データ出力（Ｄａｔａ  Ｏｕｔ）、制御信号)を比較する（全比較が並行して行われる）。
ａ：命令アドレス（命令アドレスの検査が行われない場合、マスタは気付かずに誤った命令をアドレス指定し、誤った命令は検出されずに両プロセッサで実行される可能性がある。）
ｂ：データ出力（Ｄａｔａ  Ｏｕｔ）
ｃ：データアドレス
ｄ：書込み許可（Ｗｒｉｔｅ  Ｅｎａｂｌｅ）または読出し許可（Ｒｅａｄ  Ｅｎａｂｌｅ）等の制御信号
信号ｂ〜ｄは、データ記憶装置または外部モジュールを制御する役目を果たす。
【０００６】
可能なエラーは、外部に信号で知らされ、標準的な場合は関連する制御装置が非作動される。このような処理手順は、一時的エラーが予想通り増加した場合、制御装置がさらに頻繁に作動しなくなる原因になる。一時的なエラーの場合、プロセッサのハードウェアの技術的な破損は存在しないので、可能な限り早く再びプロセッサを使用に指示することが有益である。その際、システムが作動されなくなったり、または再起動が行われたりする必要はない。
【０００７】
マスタ／チェッカ駆動で機能するプロセッサに関する、一時的なエラーを除去し、その際プロセッサの完全な再起動を防止する方法は、単一で（のみ）見出される。
【０００８】
Jiri Gaisler
著の文献「Concurrent error-detection and modular
fault-tolerance in a 32-bit processing core for embedded space flight
applications」、Twenty-Fourth International Symposium on
Fault-Tolerant Computing、１２８〜１３０ページ、１９９４年６月において、統合型エラー検出および復旧装置（パリティチェックおよび自動的な命令反復等）を備えたプロセッサが開示されている。この装置は、マスタ／チェッカ駆動で機能することが可能である。マスタまたはチェッカの内部エラー検出装置は、常にプロセッサの局部で（のみ）復旧動作を開始する。従って、両プロセッサは互いの同期性を失い、出力の比較の実行はもはや不可能である。両プロセッサを再び同期させる（唯一の）可能性は、ミッションが重大ではない段階である間に、両プロセッサを再起動させることである。
【０００９】
さらに、Yuval
Tamir and Marc Tremblay 著の文献「High-performance
fault-tolerant vlsi systems using micro rollback」、IEEE Transactions on Computers, ３９巻、５４８〜５５４ページ、１９９０年において、「マイクロ・ロールバック」（Micro Rollback）という名称の方法が開示されている。マイクロ・ロールバックによって、任意の超ＬＳＩ（超大規模集積回路）システム（VLSI-System）の完全な状態が、特定のタクト数だけロールバックされることが可能である。そのために、全レジスタおよびレジスタファイル全体が、追加的なＦＩＦＯ（先入れ先出し）バッファによって拡張される。この方法において、新しい値は、本来のレジスタに直接書き込まれるのではなく、最初にバッファに格納され、値の検査の後にレジスタに伝送される。プロセッサ状態全体をロールバックさせるため、全ＦＩＦＯバッファの内容が、無効としてマークされる。システムが、ｋクロックまでロールバックされることが可能である必要がある場合、各レジスタのために、k個のバッファが必要である。
【００１０】
従って、背景技術で紹介されたこのプロセッサには、復旧が常にプロセッサの局部で（のみ）行われるため、復旧動作によってプロセッサの同期性が失われるという欠点がある。記載される方法（マイクロ・ロールバック）の基本理念は、エラーの際に整合性を保ってシステム状態全体をロールバックさせることが可能であるように、ロールバック機能に依存せずにシステムの各構成要素を拡張することである。ロールバックによって常にシステム状態全体が整合性を保ってロールバックされるので、個々の構成要素（レジスタ、レジスタファイル等）の互いの構成固有の関連は、ここでは考慮する必要がない。この方法の短所は、ソフトウェア・オーバーヘッドが大きいことである。ソフトウェア・オーバーヘッドは、システム容量（プロセッサのパイプラインレベルの数等）に比例して増大する。
【００１１】
出願人による独国未公開特許出願第１０２００４０５８２８８．２号明細書には、２つの処理ユニットを備えたプロセッサにおいてエラーを除去する方法および装置、ならびに対応するプロセッサが示されている。その際、レジスタが設けられており、レジスタ内に命令および／または命令に割り当てられた情報が格納可能であり。その際命令は冗長に両処理ユニットで実行される。さらに、比較装置等の比較手段が含まれている。比較手段は、命令および／または割り当てられた情報の比較によって、不一致と、不一致によってエラーとが検出されるように、形成されている。その際、プロセッサのレジスタを第１レジスタおよび第２レジスタへ分割することが構想されており、その際第１レジスタは、第１レジスタからプロセッサの設定可能な状態と第２レジスタの内容とが導出可能であるように、形成されている。その際、ロールバックするための手段としてバッファが含まれている。バッファは、少なくとも１つの命令および／または情報が第１レジスタでロールバックされ、再実行されるおよび／または復旧されるように構成されている。
【発明の開示】
【発明が解決しようとする課題】
【００１２】
上記に提案された措置において、多くの場合、プロセッサの構成の徹底的な変更が必要であり、従来のプロセッサが使用不可能であるという問題が発生する。
【００１３】
従って、システムまたはプロセッサの再起動せずに、同時に高価なハードウェアのコストを回避しながら、エラー、特に一時的なエラーを除去するという問題が生じる。
【００１４】
従って、本発明に基づいて、特許請求の範囲に記載の独立請求項の構成要件を備えた方法および装置、ならびに対応するプロセッサが示される。有利な実施形態は、特許請求の範囲に記載の従属請求項の主題である。
【課題を解決するための手段】
【００１５】
シャドウレジスタは、原レジスタと同様に、常に同一のデータが書き込まれる追加的なレジスタ（複写、冗長なレジスタ）が関わっている。原レジスタにエラーがある場合には、シャドウレジスタに切り替えられる、または、シャドウレジスタのデータが原レジスタに伝送される。強制的ではないが、ＣＰＵの全レジスタの集合が２つの部分集合、すなわち「基本的レジスタ」（“Essential Register”）と「導出可能なレジスタ」（”Derivable
Register”）とに分割されることが提供される。基本的レジスタは、基本的レジスタから導出可能なレジスタの内容が導出可能であるように、形成されている。本発明の本質的な長所は、プロセッサへの本質的な介入が必要ない点にある。すなわち、外部へ数本の導線を接続するだけで充分である。従って、新しいプロセッサまたはシステムを開発および製造する必要なく、本発明に基づく解決が実現されることが可能である。従って、コストおよび時間が基本的に節約される。さらに、本発明に基づく解決は、アプリケーション、すなわちソフトウェアに依存しない。特に、ロールバックポイントを定義する必要はない。エラーの除去はハードウェアレベルで実行されるので、ソフトウェア調整が必要ではない。追加的に、本発明に基づく解決によって復旧が加速されることが可能である。従来技術において通常数千または数万クロック必要であるのが一般的なタスクの反復およびリセットのために、本発明の解決においては数百クロックのみ必要である。この（復旧に必要な）時間は、主として、シャドウレジスタの容量および処理ユニットのデータ記憶装置への書込みアクセスの待ち時間によって決定される。
【００１６】
エラーの場合、シャドウレジスタの内容が、処理ユニットによって内部レジスタへ読み込まれるので、整合性のあるプロセッサ状態が形成される。その際、全処理ユニットのレジスタは、シャドウレジスタから充填されることが可能である。しかし、一方の処理ユニットのレジスタをシャドウレジスタから充填し、他方の処理ユニットのレジスタを第１ＣＰＵのレジスタから充填することも可能である。本発明に基づく装置は、割り当てられているシステムの統合された構成要素であることが可能である、すなわち、例えばデュアルコア・プロセッサに統合されて構成されることが可能である。さらに、システムに追加される個別の構成要素として構成されることも可能である。本発明は、特に、車両内の制御装置のために利用されることが可能であるが、この種の利用に制限されない。
【００１７】
本発明に基づく解決の好適な実施形態に関する以下の明細書において、明示的に異なって記載されていない限り、方法および装置（復旧方法および復旧装置）が関わっている。
【００１８】
本発明の利点として、本発明において、プロセッサまたはプログラム・状態語（ＰＳＷ）、レジスタファイルおよび／または命令アドレスに関するシャドウレジスタが設けられている。レジスタファイル、レジスタバンクまたはレジスタ領域は、レジスタの集合である。本発明の利点として、処理ユニットの（基本的）レジスタをミラーするために充分なシャドウバッファが設けられている。シャドウレジスタには、少なくとも２つの処理ユニットのレジスタの内容が書き込まれる。または、一般的にはレジスタの内容もしくはデータに該当するデータが書き込まれる。従って、エラーの場合、シャドウレジスタの内容から、処理ユニットの正常な状態、特に直近のエラーのない状態が復旧される。好適な実施形態において、少なくとも１つのシャドウレジスタには、レジスタファイルおよびＰＳＷに関する、少なくとも２つの処理ユニットのために設けられたデータが書き込まれる。書込み過程は、特にこのデータの比較の後に、不一致、すなわちエラーが特定されなかった場合に（のみ）行われる。シャドウレジスタへの書込み前の、処理ユニットに付属するレジスタの比較によって、シャドウレジスタにエラーがないデータが書き込まれることが保障される。シャドウレジスタに関するデータは、特に、ライトバック・バス等の関連する信号を接続することによって、処理ユニットから取得することが可能である。そのためには、ごくわずかな構成またはハートウェア変更（のみ）が必要である。
【００１９】
本発明に基づく解決の好適な実施形態において、少なくとも１つのシャドウレジスタを少なくとも１つの処理ユニットの記憶領域に重ね合わせることが可能である。この方法において、シャドウレジスタは、少なくとも１つの処理ユニットによって、迅速かつ容易に読み出されることが可能である。
【００２０】
本発明の利点として、本発明に基づく方法において、少なくとも２つのレジスタ付き処理ユニットを有するシステムの命令記憶装置の命令が実行される。その際、少なくとも１つのシャドウレジスタに関するアドレス・書き込み信号が獲得される。その際、特に、本発明に基づく解決のために設けられた命令デコーダが、命令記憶装置の命令を解読し、少なくとも１つのシャドウレジスタのためにアドレス・書き込み信号を生成する。この情報、すなわちアドレス・書き込み信号が、少なくとも２つの処理ユニットから接続され、互いに比較され、少なくとも１つのシャドウレジスタの制御のために使用される場合、この種に構成された命令デコーダは省略されることも可能である。
【００２１】
本発明の利点として、少なくとも１つのシャドウレジスタに、シャドウレジスタ内のデータの正確性を確定するためのパリティが割り当てられる。従って、簡単な方法で、シャドウレジスタにエラーのあるデータが存在しないことが保障されることが可能である。しかし、レジスタファイルと、それに伴いシャドウレジスタファイルとが定期的に完全に新たに書き込まれることが、ソフトウェアに基づいて保障される場合、シャドウレジスタファイルに発生しているエラーは上書きされるので、これ（パリティの割り当て）は必要ではない。少なくとも１つの処理ユニットにおけるシャドウレジスタデータの伝送の前に、設定されたパリティによって正確性が検査されることが可能である。シャドウレジスタのデータがもはや正確ではない場合、システムの再起動が有利なこともある。シャドウレジスタはエラーの場合にのみ読込みアクセスされるので（エラーの場合とは、シャドウレジスタではなく、ＣＰＵ内のエラーを意味している）、シャドウレジスタの完全な再書込みも同様に可能である。
【００２２】
本発明に基づく解決の好適な実施形態において、レジスタのデータに該当するデータは、特にエラーがない、レジスタのデータそのものである。その際、少なくとも１つのレジスタのエラーがないデータは、シャドウレジスタのデータを少なくとも１つのレジスタに伝送によって、復旧される。この場合、シャドウレジスタは、最新のエラーがない状態で、処理ユニットのレジスタのデータを獲得する。従って、エラーの場合、エラーがない状態は、このデータの交換または伝送によって復旧されることが可能である。
【００２３】
同様に、特に、レジスタのエラーがないデータに該当するデータが、検査合計であることが構想可能である。検査合計は、特に、パリティ、ＣＲＣ（巡回冗長検査）であることが可能である。この場合、シャドウレジスタのデータ記憶装置の要求は、有利であり、少なくとも１つの処理ユニットのレジスタの容量より小さい。この方法で、シャドウレジスタ内の記憶場所が節約される、またはシャドウレジスタの記憶装置のメモリがより小さく見積もられることが可能である。少なくとも１つの処理ユニットのレジスタ内でエラーがないデータを復旧するために、従来技術で公知のように、最初に、検査合計から完全なデータが復旧される必要がある。パリティのみがシャドウレジスタに格納される場合、少なくとも２つのＣＰＵが設けられる。エラーの場合、両ＣＰＵのレジスタのパリティは、シャドウパリティと比較される。この３重の比較によって、どのＣＰＵにエラーがあるのかを確定することが可能である。さらに、ＣＰＵのエラーのあるレジスタ内容が、稼動しているＣＰＵのレジスタ内容と置き換えられる。
【００２４】
本発明に基づく方法の好適な実施形態に基づいて、少なくとも２つのレジスタのデータと少なくとも１つのシャドウレジスタのデータとが比較され、基本的に一致するデータはエラーがないと確定される。この方法は、多数決方法と称することができる。その際、少なくとも３つのレジスタ（処理ユニットの少なくとも２つのレジスタ、および少なくとも１つのシャドウレジスタ）のデータが比較され、大部分一致するデータはエラーがないと確定される。この方法は有利であり、処理ユニットのレジスタの正確性の検査が行われる前に、処理速度を向上させるために上記少なくとも１つのシャドウレジスタが既に書き込まれる場合に特に利用されることが可能である。
【００２５】
エラーの場合、処理ユニットのレジスタ内のデータの再書込みの代わりに、シャドウレジスタの重ね合わせまたは別種の切り替えも可能であることが言及される。
【００２６】
本発明に基づくプロセッサは、少なくとも２つのレジスタ付き処理ユニットと、少なくとも１つの本発明に基づく装置を有している。従って、少なくとも２つのレジスタ付き処理ユニットを有するプロセッサ、特にデュアルコア・プロセッサの駆動は、一時的エラーが容易かつ迅速に除去可能であるので、改善されることが可能である。
【００２７】
好適な実施形態において、プロセッサは、セーフティモードとパフォーマンスモードとを切り替えるための切り替え手段を有している。その際、少なくとも２つの処理ユニットは、セーフティモードでは同一のプログラムを実行し、パフォーマンスモードでは異なるプログラムを実行する。異なるプログラムとは、特にプログラムの異なる構成要素としても理解されるべきである（並行処理、対称型マルチプロセッサシステム（ＳＭＰ等）。その際、少なくとも２つの処理ユニットは、本願で何度も記載されているように、双方のモードにおいてクロックをずらして、または、クロックを同期して駆動する。本質的に、復旧の仕組みと再構成の仕組みとの組み合わせである。この組み合わせは、２つの方法の利用を可能にし、組み込まれるシステムの信頼性と性能との間に、より大きなゆとりをもたらす。モード間で切り替えるために、モード信号を提供するモード切り替えモジュールが設けられることが可能である。復旧の利用はセーフティモードでのみ可能なので、コア・モード信号が復旧装置に伝達される必要がある。例えば車両において、異なるタスクがプロセッサによって実行される。すなわち、快適性機能（空調制御等）と、信頼性への要求度が高い様々な安全機能（エンジン制御およびＥＳＰ（電子制御式車両安定性制御プログラム）を参照）とが存在する。これら異なるアプリケーションが中央制御装置で実行される場合、プログラムコードは３つのクラスに分類されることが可能である。
−恒常的および一時的エラーがオンラインで検出される必要があるプログラムコード（ＥＳＰまたはx-by-wire の適用等）
−利用されるハードウェアが、定期的に恒常的なエラーに関して検査される必要があるプログラムコード（エンジン制御、スライディングサンルーフ制御等）
−安全性に関わらないプログラムコード（空調制御等）
【００２８】
従って、２つのモード、セーフティモードとパフォーマンスモードの間で切り替えられるように、本発明に基づくプロセッサを拡張することは有利である。両プロセッサは、セーフティモードでは同一のプログラムコードを、クロックをずらしても実行し、パフォーマンスモードでは異なるタスクを実行する。検査されたハードウェアで駆動されなければならないアプリケーションの場合、これは、セーフティモードとパフォーマンスモードで交互に行われることが可能である。その際、セーフティモードのハードウェアは、両プロセッサの冗長度によって検査される。従って、ソフトウェアは、パフォーマンスモードでは検査されたハードウェアで駆動される。ソフトウェアが、どのぐらいの頻度で、どのモードで駆動される必要があるか、という割合は、エラー検出に要する時間、すなわち、アプリケーションによる損害を被ることをなく、エラーが最大どのぐらい期間作用してもよいかということに依存する。
【００２９】
本発明に基づくプロセッサの好適な実施形態において、キャッシュメモリを消去（フラッシュ）するための手段が設けられている。従って、簡単な方法で、パフォーマンスモードのデータの残りが復旧装置に引き継がれることが防止されることが可能である。
【００３０】
本発明に基づくプロセッサにおいて、適切に、少なくとも２つのクロック発振器が設けられている。
【００３１】
さらに、本発明に基づくプロセッサにおいて、各処理ユニットのためのクロック発振器と、装置のためのクロック発振器が、厳密に設けられていることは適切である。
【００３２】
この２つの実施形態によって、処理ユニットおよびシャドウレジスタを同期または非同期に制御するための多様で、有利な可能性が明らかとなろう。
【００３３】
本発明に基づく方法の好適な実施形態に従って、セーフティモードとパフォーマンスモードが切り替えられる。その際、セーフティモードではエラーを除去するための本発明に基づく方法が実行され、パフォーマンスモードでは、少なくとも２つの処理ユニットが、異なるプログラムもしくはプログラム部分またはタスクを実行する。モード間は、特に、モード選択信号を介して切り替えられることが可能である。
【００３４】
本発明に基づく、車両のための制御装置は、本発明に基づく装置またはプロセッサを有している。従って、車両の制御装置は、信頼性と性能の両面で改善されることが可能である。
【００３５】
本発明の更なる利点および実施形態は、明細書および添付の図から明らかとなろう。
【００３６】
上記で挙げた、および以下に記載される特徴は、その都度示される組み合わせのみならず、別の組み合わせまたは単独でも、本発明の範囲から逸脱することなく、利用可能である。
【発明を実施するための最良の形態】
【００３７】
図１には、本発明に基づく装置（復旧装置）１２０の好適な実施形態に掛かるデュアルコア・プロセッサシステム１００が示されている。さらに、システムは、命令記憶装置（Instruction Memory）１３０およびデータ記憶装置（Data Memory）１４０を備えている。
【００３８】
デュアルコア・プロセッサシステム１００は、２つの処理ユニット（ＣＰＵ、Ｃｏｒｅ）、すなわち、プログラムを並行して処理するマスタ１０１およびチェッカ１０２を有している。周辺装置（アプリケーションシステム）へのデータ出力は、マスタとチェッカのデータが一致した場合にのみ行われる。本実施形態において、復旧装置は外部に設けられている。すなわち、コアに統合されていない。従って、特に、特定の内部信号の接続に至るまで、ＣＰＵ１０１、１０２に変更を施す必要がない点で有利である。復旧装置の内部構造は、図２および図３でより詳細に記載されている。
【００３９】
システムの命令記憶装置１３０は、Read-Only Memory（ＲＯＭ）とも称される読出し専用記憶装置として実現されている。命令記憶装置１３０には、接続１１０を介して、命令に関するアドレス（命令アドレス（instruction address））が伝達される。接続１１０を介して命令アドレスが割り当てられた後、命令記憶装置１３０は、接続１１１を介して、対応する命令を送り返す。命令は、両ＣＰＵ１０１および１０２に供給される。命令記憶装置１３０は、記載される実施形態において標準的に実現されている。命令記憶装置１３０は、復旧装置１２０の組み込みによって変更されない。図３で詳細に示されるように、マスタ１０１のアドレス（のみ）が命令記憶装置１３０に伝達される。一方、チェッカ１０２のアドレスは、比較装置（comp）１２６ａに伝達される。比較装置１２６ａは、マスタおよびチェッカのアドレスまたはアドレスパリティが一致しない場合にエラー信号（Error）を生成する。パリティは、パリティ生成装置（parity generator）１２６ｂによって生成され、パリティチェック（parity check）１２６ｃによって検査される。このパリティ生成装置／チェッカは、記憶装置を介する単一障害点パスを防護する役目を果たす。
【００４０】
システムのデータ記憶装置１４０は、Random-Access-Memory（ＲＡＭ）とも称される書込み・読出し記憶装置として実現されている。データ記憶装置１４０には、接続（データアドレス Data Adress/データ出力
Data Out）１１２を介して、アドレスおよびデータが供給される。さらに、データ記憶装置１４０は、接続１１３を介して、対応するデータをＣＰＵに出力する（データ入力
Data In）。図３でより明確に分かるように、マスタとチェッカのデータアドレスおよびデータの出力線が関わっている。ここでは、データ記憶装置１４０、および復旧装置１２０に含まれるシャドウレジスタファイル１２１に関するアドレスおよびデータが出力される。マスタおよびチェッカのデータ入力線１１３において、通常、外部データ記憶装置の内容が伝送される。比較装置１２６aを介して、マスタとチェッカとの不一致（Error）が検出された場合、エラー信号（Interrupt In）の発信の後に、対応する線１１７において、外部レジスタファイル１２１および外部ＰＳＷレジスタ１２２（図３）のバックアップされた内容がマスタおよびチェッカへ伝送される。ＣＰＵ内部で、線１１３および１１７の入力をライトバック・バス上に設定するまたはマッピングすることが提供される。データ記憶装置１４０も、標準的に実現されており、復旧装置の組み込みによって変更されない。図３でより詳細に分かるように、マスタのアドレスおよびデータのみがデータ記憶装置１４０に伝達される。一方、チェッカのアドレスおよびデータは、比較装置１２６ａにのみ伝達される。比較装置１２６ａは、マスタおよびチェッカのアドレスもしくはデータ、またはアドレスパリティまたはデータ・パリティが一致しない場合にエラー信号を生成する。パリティは、パリティ生成装置１２６ｂによって生成され、パリティチェッカ１２６ｃによって検査される。このパリティ生成装置／チェッカは、記憶装置を介する単一障害点パスを防護する役目を果たす。
【００４１】
データ記憶装置および命令記憶装置は、システムの弱点、すなわち、システム内でそれぞれ１つ（だけ）存在する、単一障害点（single point of failure）である。従って、例えば、ＥＣＣ（誤り訂正符号）（error correcting code）またはその他の従来技術で公知の方法によって、両記憶装置を防護することが提供される（セーフメモリ）。
【００４２】
ライトバック・バス、すなわち内部バスは、線１１４を介して復旧装置１２０に接続される。ライトバック・バスにおいて、ＡＬＵ（論理演算ユニット）またはデータＲＡＭ等の異なるプロセッサユニットによって、演算結果またはデータがＣＰＵの内部レジスタファイルに書き込まれる。
【００４３】
さらに、線１１５（PSW Out）を介して、マスタ１０１およびチェッカ１０２のその都度のプログラムまたはプロセッサ状態語が出力される。プロセッサ状態語は、プログラム・シーケンスでの命令実行の結果についての情報を与える。例えば、演算動作の結果が０または負であるかどうか（ゼロフラグ
Zero Flag）、または、オーバーフローが発生しているかどうか（キャリーフラグ Carry Flag）等について、符号化されてフラグ（ＰＷＳの対応するビット）に記録される。さらに、ＰＳＷは、ＣＰＵの割込み状態（Interrupt-Status）についての情報を含んでいる。プロセッサ状態語の情報または復旧によって、中止された箇所でプログラムが正確に続行されることが可能である。
【００４４】
マスタおよびチェッカに接続される接続１１６（割込み入力 Interrupt In）を介して、目下駆動しているプログラムのプログラム中断が実行されることが可能である。特に、割り込み線は、ＰＳＷおよびレジスタファイルデータを外部復旧モジュール１２０からロードし、ロードしたＰＳＷおよびレジスタファイルデータの、場合によっては誤ったデータを正しいデータと置き換えるよう、両ＣＰＵ１０１および１０２に促すために利用される。線１１６の源は、図２および図３では、比較装置１２６または１２６ａ（comp）によって生成されるエラー出力（Error Out）信号に相当する。
【００４５】
図２では、図１の復旧装置１２０の内部構成が図式的に示されている。参照しやすいように、本ブロック図において両ＣＰＵ間のクロックのずれは省略されている。しかし、クロックのずれが設定されていることも可能である、と理解されるべきである。復旧装置は、シャドウレジスタとしてレジスタファイル１２１およびＰＳＷレジスタ１２２を有している。
【００４６】
レジスタファイル１２１は、少なくともマスタ１０１もしくはチェッカ１０２と同数のレジスタ、または少なくとも関連するアプリケーションを復旧するために必要な数のレジスタを含んでいる（基本的レジスタ
Essential Register）。書き込むために、命令デコーダ１２３によって自動的にアドレス指定される。読み出すために、マスタの線１１２を介して（Data Address／Data Out）アドレス指定される。駆動の場合には、データが、線１１５を介してライトバック・バスから書き込まれ、エラーの場合には、線１１７を介して、レジスタファイルの出力Data OutからＣＰＵの入力Data Inに読み込まれる。択一的に、データは、マスタのData Outからも書き込まれることが可能である。これは、紹介される復旧装置には必要ないが、特記すべきハードウェア・オーバーヘッドでもない。さらに、異なる形態においても（追加的な記憶装置等）シャドウレジスタを利用する可能性を提供する。シャドウレジスタの読み出しを可能にするために、特に、シャドウレジスタが記憶アドレス領域に重ね合わせられる。その後、簡単な書込みまたは読出し動作によって、シャドウレジスタはアクセスされることが可能である。本実施形態において、処理ユニットまたはＣＰＵ１０１、１０２によって、エラーの場合に（のみ）、シャドウレジスタは読出し（の形式でのみ）アクセスされる。すなわち、書込みアクセスは本発明に基づく装置の好適な実施形態で設けられている命令デコーダ１２３によって実行される。
【００４７】
ＰＷＳレジスタ１２２は、マスタおよびチェッカの信号PSW Outの比較がエラーを示さない場合に、線１１５を介して、マスタ１０１の信号PSW
Outによって書き込まれる。択一的に、ＰＳＷレジスタは、マスタの信号Data Address／Data Outによってアドレス指定され、マスタの信号Data Outによって書き込まれる。この処理方法は、可能な拡張に有効である。ＰＳＷは、PSW Outを介して読み出され、レジスタファイル１２１のData Outと共に、線１１７へ提供される。線１１７は、図１に示されるように、マスタおよびチェッカのData Inと接続されている。その際、同様にエラーの場合にのみアクセスされる。
【００４８】
復旧装置１２０の内部では、エラーのあるデータがシャドウレジスタに格納されないことを保障するために、線１１６が、図１に記載されるように、復旧装置の比較装置／パリティユニット１２６から書き込まれ、レジスタファイル１２１およびＰＳＷレジスタ１２２に接続される。図３に示されるように、比較装置／パリティユニット１２６は、最低限見積もって、少なくとも１つの比較装置１２６ａから構成される。特に、少なくとも１つのパリティ生成装置１２６ｂおよび／または少なくとも１つのパリティチェッカ１２６ｃが追加して設けられる。エラーが比較装置／パリティユニット１２６で検出された場合、（エラーがあるとして検出された）目下のデータワードは、シャドウレジスタへの書込みが禁止される。プロセッサ・コア内での割り込みルーチンの開始に数クロックサイクル掛かった後に、シャドウレジスタが対応して設けられている場合、示される接続によって書込みが防止される。
【００４９】
比較装置／パリティユニット１２６は、特に以下の機能を具現するために、全比較およびパリティ回路を含んでいる。
−マスタおよびチェッカのライトバック・バスの比較装置。データは線１１４を解して供給される。一時的に、ライトバック・バスが、比較を不可能にする「ハイ・インピーダンス」に切り替えられた後に、この比較装置に、デコーダの信号Write Enableも供給される必要がある。
−マスタの信号Instruction Addressのためのパリティ生成装置、およびマスタおよびチェッカのInstruction Addressのための比較装置。データは線１１０を介して供給される。
−マスタの信号Data AddressおよびData Outのためのパリティ生成装置、およびマスタおよびチェッカの信号Data AddressおよびData Outのための比較装置。データは線１１２を介して供給される。
−マスタおよびチェッカのための信号PSW Outのための比較装置。データは線１１５を介して供給される。
【００５０】
エラーが確定される場合、本実施形態において、割り込みルーチンがＣＰＵ内で開始される。割り込みルーチンによって、シャドウレジスタ１２１、１２２のデータが両ＣＰＵ１０１、１０２のレジスタに伝送される。例えば、ＰＳＷがＣＰＵ内に書き込まれることが不可能な場合、ＰＳＷまたはＰＳＷのビットが、対応するソフトウェア・ルーチンによって、割込みルーチン内に設定されることが可能である。（例えば、オーバーフロー・フラグが設定される必要がある場合、オーバーフローによる追加が実行されることが可能である。）その後、両ＣＰＵ１０１、１０２は正しいレジスタの内容によって続けて駆動することが可能である。
【００５１】
記載される実施形態において、本発明の一実施形態に基づく装置１２０は、レジスタファイルに書き込む命令を検出するために、命令デコーダ１２３も有している。命令デコーダは、この命令のために、レジスタファイルのアドレス指定されるレジスタに関するアドレス・書き込み信号（Write-Signal）を生成する。デコーダは、入力では１クロックずれた命令を獲得し、出力ではレジスタファイル１２１に関するアドレス・書き込み信号を出力する。１クロック分、クロックをずらすために、ユニット１２４が設けられている。
【００５２】
比較の後に、信号Instruction Addressが、更なる別のクロック遅延ユニット１２５によって、２クロック遅れてレジスタファイル１２１に接続される。（図３で詳細に示されているように、割り込みの場合、ジャンプの場合と異なる、別のパイプラインレベルの命令アドレスが防護される必要があるので、命令アドレスは、更にもう１クロック遅れてレジスタファイルに接続される。その際、プロセッサ固有の、復旧装置とは直接関連しない細部が関わっている。）レジスタファイルは、ジャンプ命令の際に目下の命令アドレスを保存する。命令アドレスは、プロセッサ内部でパイプラインによって接続される。ジャンプアドレスは、ＣＰＵの更なる別のバスを接続することによっても獲得可能である。しかし、記載される外部の接続によって、コアへの介入が最低限に抑えられることができる。
【００５３】
接続１１６を介して、信号Error Outがマスタおよびチェッカの入力Interrupt Inに提供される。復旧装置１２０の比較装置／パリティユニット１２６がマスタとチェッカとの間の不一致を確定した場合、Error Outはアクティブになる。
【００５４】
図３には、図１のデュアルコア・プロセッサシステムの内部構成が図式的に示されている。参照しやすいように、このブロック図においても、両ＣＰＵ間のクロックのずれは省略されている。図３において、マスタ１０１とチェッカ１０２は離れて個別に示されている。従って、同様に線１１０〜１１７は離れて個別に示される。線１１２は、二重化されて実現されている。すなわち、線１１２は、Data AddressおよびData Outの両信号を表している。
【００５５】
マスタ・コアとチェッカ・コアの間には、復旧装置のユニット、すなわち、レジスタファイル１２１、ＰＳＷレジスタ１２２、デコーダ１２３、クロック遅延ユニット１２４、１２５、比較装置／パリティユニット１２６、ならびに命令記憶装置１３０およびデータ記憶装置１４０が示されている。比較装置／パリティユニット１２６の下位ユニット１２６ａ、１２６ｂ、１２６ｃは、図では物理的に離れている。
【００５６】
図４には、本発明に基づく装置の好適な実施形態が利用可能なデュアルコア・プロセッサシステムが図式的に示されている。このブロック図は、パフォーマンスモードとセーフティモードとの間で切り替えられることが可能な、再構成可能なシステムを示している。
【００５７】
高い演算性能または安全性への要求を満たすために、再構成可能な二重プロセッサシステムは、駆動中に２つのモード間で切り替え可能である必要がある。安全性に関わるプログラムコードの実行が利用されるセーフティモードにおいて、システムは従来のマスタ／チェッカモードで駆動する。その際、本発明に基づく装置の実施形態が利用される。
【００５８】
パフォーマンスモードにおいて、システムは二重プロセッサシステムと同様に駆動し、特に、従来の２重プロセッサシステムの性能を有している。
【００５９】
両モード間での切り替えは、駆動システムによって、特別な命令、すなわちモード切り替え命令を通して行われる。この命令は、特に、プロセッサの外部で、プロセッサ外部のユニットによって検出され、プロセッサに転送される前に非演算命令に変換される。従って、両プロセッサの命令デコーダへの介入が防止される。
【００６０】
セーフティモードにおいて、システムは、図１〜図３に対応して駆動する。その際、両コアは、同一のプログラムを実行する。多くの構成要素が簡単に設けられているので（バス、クロック線および供給電圧等）、これら構成要素は特別に防護される必要がある。ＥＭＣ（電磁環境適合性）等の一般的な原因によるエラー、または供給電圧でのピーク電圧からシステムを追加的に防護するために、両プロセッサはセーフティモードで、クロックをずらして駆動することが可能である。
【００６１】
パフォーマンスモードにおいて、ＣＰＵは、異なるプログラムもしくはプログラム部分またはタスクを実行し、単一のＣＰＵとして、より高い性能および演算能力を獲得する。各ＣＰＵは、命令記憶装置、データ記憶装置および周辺装置を駆動することが可能である。従って、これらの構成要素およびＣＰＵのクロックは、パフォーマンスモードでは一致している必要がある。セーフティモードからパフォーマンスモードへの切り替えの際にＣＰＵのクロック切り変えが行われない場合、クロックはパフォーマンスモードにおいて、周辺装置にアクセスする度に、データを獲得するまで待ち状態を挿入しなければならないことが予想される。従って性能が非常に下がるので、このＣＰＵのクロックは、パフォーマンスモードのために、マスタクロックの位相の極性に切り替えられる。さらに、クロックのずれは、パフォーマンスモードでは修正される必要がある。
【００６２】
これで両ＣＰＵは周辺装置にアクセスできるので、パフォーマンスモードでは、特別なユニット（命令ＲＡＭ制御ユニット、データＲＡＭ制御ユニット）によるアクセスが管理される必要がある。クロックごとの命令記憶装置への記憶装置アクセスは両ＣＰＵによって行われることが可能なので、命令記憶装置が性能を制限する要因にならないように、この（記憶装置）アクセスは、ＣＰＵごとに各命令キャッシュによって分離される必要がある。記載される実現において、キャッシュ・コントローラ（Cache-Controller）は、４個の命令のバーストアクセスによって、命令記憶装置へアクセスする。しかし、例えば車両に適用した場合、各１０番目の命令がデータ記憶装置アクセスなので、両ＣＰＵによるデータ記憶装置へのデータアクセスをキャッシュによって分離する必要はない。この（命令の）割り当てが変更される場合、ＣＰＵごとにデータキャッシュが設けられることが可能である。総括すると、復旧機能を有するシステムの、パフォーマンス機能に対応するための拡張が関わっている。
【００６３】
・モード切り替え
セーフティモードでは、両ＣＰＵは同一の命令を実行し、同一に動作する。さらに、両ＣＰＵの内部状態、すなわちレジスタ内および命令キャッシュ内のデータは同一である必要がある。しかし、パフォーマンスモードでは、両ＣＰＵは異なる命令を実行するので、内部のプロセッサ状態も異なっている。従って、両ＣＰＵ内および命令キャッシュ内のデータは、パフォーマンスモードからセーフティモードへの切り替えの前に同期される必要がある。
【００６４】
切り替え可能な二重プロセッサシステムをモード切り替えするための重要な前提は、駆動システムが２つの同種のＣＰＵを区別できることにある。さらに、各ＣＰＵは、割り当てられたＩＤを有する必要がある。そのため（ＣＰＵを区別するため）には、１ビットで十分である。このビットはセーフティモードでは検査されることが禁止されている。ビットの検査が禁止されていない場合、比較装置がエラーを信号で知らせることが予想される。
【００６５】
さらに、二重プロセッサシステムの両モード間での切り替えのために、命令が必要である。命令の呼び出しによって、モード切り替えが開始される。パフォーマンスモードからセーフティモードへの切り替えは、特に、両ＣＰＵのためのタイムテーブル（Time Table）に格納される。多くの場合、ＣＰＵは、最初にモード切り替えを開始する。ＣＰＵはモード切り替えを開始し、同時に、割込みによって、第２ＣＰＵもモードを切り替える必要があることを第２ＣＰＵに知らせる。
【００６６】
追加的に、各CPUがパフォーマンスモードでは少なくとも２回、データ記憶装置へのアトミックなアクセスを実行できることが保障される必要がある。この中断不可能な記憶装置アクセスは、両プロセッサの共通に利用されるデータを同期させるために、またはクロック同期のために必要不可欠である。
【００６７】
パフォーマンスモードにおいてデータの整合性を保障するために、ＣＰＵが、データ記憶装置の値を読出し、他方のＣＰＵに割り込まれずにこの値を変更して返答できる必要がある。これは、特に、特定の記憶領域がアクセスされ次第、待ちコマンドの設定によって、他方のＣＰＵのデータ記憶装置アクセスを防止することによって保障される。ＣＰＵは、予約されたアドレスへの更なる別のデータ記憶装置アクセスによって、データ記憶装置を再び他方のＣＰＵのために開放することが可能である。他方のＣＰＵの記憶装置アクセスを防止するという可能性によって、共通に利用される記憶装置へのデータアクセスを可能にするために、ソフトウェアにおいて、技術が実現されることが可能である。または、ＣＰＵは、タスク実行の際に、「セマフォ」(“Semaphore”)によって互いに同期をとることが可能である（セーフティモードへ切り替える際の同期と取り違えてはならない。）
【００６８】
従って、両モード間を切り替えるための切り替え手段は、モード切り替えユニット４０７として構成されている。復旧装置の使用は、セーフティモードでのみ構想されている。従って、復旧装置に、モード切り替えユニットが出力するコア・モード信号を伝達することは有利である。従って、厳密には、復旧装置は、コア・モード信号によって作動および非作動可能に構成されることが可能である。その際、電圧消費を低減させるために、パフォーマンスモードでは、例えば、信号Clock Enable（クロック許可）によって、復旧装置を完全に非作動させることも構想可能である。
【００６９】
図４には、本発明に基づく装置の好適な実施形態を構想することが可能な、デュアルコア・プロセッサシステム４００が示されている。システムは、２つのＣＰＵ、マスタ１０１およびチェッカ１０２、命令記憶装置１３０およびデータ記憶装置１４０を有している。記憶装置は二重化されておらず、上記のように、セーフメモリとして実現されている。記憶装置は、二重化されて実現されることも可能である。
【００７０】
符号４０１は、命令記憶装置・制御ユニット（ＩＣＵ）を示している。ＩＣＵは、両ＣＰＵ１０１、１０２による共通の命令記憶装置１３０への全アクセスを管理する。セーフティモードでは、マスタ１０１のみがキャッシュミスの場合に命令記憶装置の命令を要求してもよい。その後、ＩＣＵは命令をリロードするだけではなく、キャッシュセルを連続してリロードするために、特にバーストアクセスを実行する。その際、マスタ１０１の命令キャッシュ４０２は、命令を直接獲得する。一方、チェッカ１０２の命令キャッシュ４０３は、設定されたクロック分ずれて、命令を獲得する。
【００７１】
パフォーマンスモードでは、両ＣＰＵは、同時に命令記憶装置１３０に命令を要求することが可能なので、ＩＣＵユニット４０１は、アクセスの優先順位を決定する必要がある。通常、マスタはチェッカよりも優先順位が高い。しかし、最悪の場合チェッカを完全に非作動させないために、マスタがクロックサイクルにおいて先に命令記憶装置１３０へアクセスした場合、チェッカはマスタより優先順位が高い。
【００７２】
符号４０４は、データ記憶装置・制御ユニット（ＤＣＵ）を示している。ＤＣＵ４０４は、両ＣＰＵによるデータ記憶装置１４０および周辺装置へのアクセスを管理する。追加的に、ＤＣＵ４０４は、個別のプロセッサ識別ビットを提供する必要がある。プロセッサ識別ビットに基づいて、パフォーマンスモードでは、両ＣＰＵは、駆動システムによって区別されることが可能である。プロセッサ識別ビットは、特定の記憶装置アドレスへの読出しアクセスによって読み出されることが可能である。両ＣＰＵのためのアドレスが同一である間に、例えば、マスタは値０を、チェッカは値１を獲得する。ＣＰＵが２つ以上設けられている場合、対応して、複数のビットが利用される必要がある。
【００７３】
セーフティモードでは、データ記憶装置および周辺装置への全アクセスがマスタによって実行される。一方、チェッカの問い合わせは、エラー検出に必要な比較のためのみに利用される。読み出されたデータは直接マスタに伝達され、場合によっては、１、５クロック等の設定されたクロックのずれでチェッカに伝達される。
【００７４】
パフォーマンスモードでは、ＤＣＵ４０４は、両ＣＰＵによるデータ記憶装置１４０および周辺装置への同時アクセスを開始する必要がある。基本的に、ＩＣＵ４０１の場合と同様の優先順位がつけられる。追加的に、（ＭＥＳＩプロトコルと同じように）他方のＣＰＵに対するデータ記憶装置のロックを可能にするために、セマフォ機構が実現されている。すなわち、ＣＰＵは、データ記憶装置をロックすることが可能なので、データ記憶装置への排他的なアクセス権を有している。この（一方のＣＰＵが排他的アクセス権を持つ）期間、他方のＣＰＵのアクセスは、第１ＣＰＵが再び記憶装置を開放するまで、ＤＣＵによってロックされる。ロックと開放は、特定の記憶アドレス（この実現においてはＦＢＦＦ＝６４５５１）への読出しアクセスによって行われる。ＤＣＵはこの読出しアクセスを検出することが可能である。優先順位の決定は、データ記憶装置の場合と同様に行われる。両ＣＰＵが同時にロックを希望した場合、マスタが最初に排他的なアクセス権を獲得する。記憶装置ロックの仕組みは、標準プロセッサが利用できるように、ＤＣＵ内で実現される。
【００７５】
記憶装置ロック（の仕組み）の機能は、６つの状態から構成される。
−corel_access：マスタによる記憶装置アクセス。マスタが記憶装置をロックしたい場合、マスタはこの状態において、記憶装置をロックすることが可能である。
−core2_access：チェッカによる記憶装置アクセス。チェッカが記憶装置をロックしたい場合、チェッカはこの状態において、記憶装置をロックすることが可能である。
−core1_locked：マスタ１は、データ記憶装置をロックしている。マスタは、データ記憶装置および周辺装置への排他的アクセス権を有している。この状態においてチェッカが記憶装置にアクセスしたい場合、マスタがデータ記憶装置を再び開放するまで、チェッカは信号wait2によって止められる。
−core2_locked：チェッカは、独自のために排他的にデータ記憶装置を予約している。マスタは、データ記憶装置操作の際に、信号wait1によって止められる。
−lock1_wait：データ記憶装置は、マスタが同様に独自のためにデータ記憶装置を予約しようとした時に、チェッカによってロックされた。従って、マスタは、次の記憶装置のロックのために予約されている。
−lock2_wait：データ記憶装置は、マスタによってロックされた。チェッカは記憶装置を予約する。
【００７６】
符号４０５および４０６は、モード切り替え検出ユニットを示している。モード切り替え検出ユニットは、それぞれ、命令キャッシュ４０２または４０３とＣＰＵとの間に存在し、命令バスを監視している。モード切り替え検出ユニットがモード切り替え命令に気づき次第、これをモード切り替えユニット４０７に通知する。この機能は、両プロセッサの命令デコーダによっても行われることが可能であることが予想される。しかし、標準プロセッサは内部を変更せずに利用されるべきなので、この機能は外部で実現される。命令が命令装置から読み出され次第、命令が検出されることは、好ましくない。プログラム・シーケンスにおいて先にジャンプ命令が存在する場合に、切り替え命令は、本来パイプライン上でジャンプに基づいて消去されるにもかかわらず、アクティブである。従って、システムは、誤ってモードを切り替えることが予想される。しかしこの問題は、モード切り換え命令の前にジャンプ命令が来ないように、コンパイラによって命令の順序が並べ替えられることによって解決されることが可能である。ジャンプ命令とモード切り換え命令との間の必要な間隔は、使用されるＣＰＵのパイプラインレベルの数に依存する。
【００７７】
上記のように、モード切り換えはソフトウェアによって行われる。その際必要なハードウェアのサポートは、モード切り換えユニット４０７において実現されている。以下のプログラムの抜粋は、例えば、セーフティモードからパフォーマンスモードへの切り換えを表している。
ＬＤＳ      ｒ１、２４８
ＬＤＨ      ｒ１、２５５    （１）
ＭＯＤＥ−ＳＷＩＴＣＨ      （２）
ＬＤＷ      ｒ２、ｒ１      （３）
ＢＴＥＳＴ  ｒ２、５        （４）
ＪＭＰＩ＿ＣＴ              （５）
【００７８】
行（１）では、レジスタｒ１に、ＤＣＵによるプロセッサＩｄビットの出力先にあたるアドレスがロードされる。次の（２）で、命令mode switchが実行される。本実施形態において、両プロセッサは、セーフティモードにおいて１、５クロック分だけクロックをずらして駆動するので、マスタのモード切り換え検出ユニットは、最初に切り換え命令を検出する。モード切り換え検出ユニットは、信号core_signalによって、切り換え命令を検出したことをモード切り換えユニットに通知する。その結果、モード切り換えユニットは、信号wait1でチェッカを止める。１，５クロック遅れて、チェッカのモード切り換え検出ユニットは、同様に切り換え命令を検出する。引き続き、モード切り換えユニットは、両ＣＰＵの位相に関するクロック信号を同期させるためにチェッカを０，５クロックの間止める。最後に、モード信号がセーフティモードからパフォーマンスモードに切り替えられ、待ち信号（wait-Signal）がクリアされる。両ＣＰＵは、同一のタクト信号で続けて駆動する。ステップ（３）において、両ＣＰＵは、ＤＣＵから独自のプロセッサ識別ビットをロードする。その後、（４）において、ビットが１または０に設定されているかどうかが検査され、チェッカのCore-Id-Bitが１なので、チェッカの限定的なジャンプが実行される（５）。マスタは、ジャンプを実行せず、Core-Id-Bitが０なので、そのままのプログラム位置で続けて駆動する。従って、両ＣＰＵのプログラム・シーケンスは、所望のように異なっている。パフォーマンスモードからセーフティモードへの切り替えの際に、最初に、復旧装置がコア・モード信号を介して作動される。続いて、データの残りが復旧装置に引き継がれることを防止するために、キャッシュがクリア（フラッシュ）される。その後、ソフトウェア・ルーチンを介して、両プロセッサのレジスタ内容が調整され、同時に復旧装置のシャドウレジスタも書き込まれる。従って、キャッシュのフラッシュに至るまで、復旧装置に関するソフトウェア調整は必要ない。個々のプロセッサの間、および特定の入力信号の前にレジスタレベルを組み込むことによって、クロックをずらしてプロセッサを駆動することが可能である。従って、一般的な原因によるエラーが防止される。
【００７９】
追加的に、図５によって解説されるように、複数のクロック発振器（Clock）（クォーツ）が個々のプロセッサのために利用されることが可能である。図５ａおよび図５ｂは、まとめて図５と総称される。図５ａには、３つのクロック発振器の例、図５ｂには２つのクロック発振器の例が示されている。図５には、参照しやすいように、レジスタファイル１２１に関する構成のみ示されている。ＰＳＷレジスタに関する構成は、レジスタファイル１２１に関する構成と同じである。
【００８０】
上述のように、マスタ１０１およびチェッカ１０２によって、線１１０，１１２、１１４および１１５を介して、復旧装置１２０のデータが供給される。図５に基づく実施形態において、マスタ１０１およびチェッカ１０２のために個別のクロック発振器２０３および２０４が設けられる。これらのクロック発振器は、コアに統合されて構成されていることも構想可能である。この場合、クロック発振器信号（ｃｌｋ）が接続される必要がある。両プロセッサは、もはや同期に駆動していない。従って、復旧装置への書込みの際に、両ＣＰＵが互いに別々に駆動しすぎない（すなわち、クロックのずれが大きくなり過ぎてはならない）ように配慮することが必要である。そのために、特に、コア・クロック発振器２０３、２０４によって駆動されるＦＩＦＯバッファレベル（先入れ先出し First In First Out ）２０１、２０２が、受け取った信号をバッファする比較装置／パリティユニット１２６の前に組み込まれる。ＣＰＵ１０１、１０２が過度に別々に駆動し次第、他方のＣＰＵより早いＣＰＵが、再びクロック同期で駆動するまで、wait信号等を介して止められることが可能である。
【００８１】
図５ａに基づく実施形態において、シャドウレジスタファイル１２1およびＰＳＷレジスタ１２２（図示されていない）は、個別のクロック発振器２０５によってクロックが送られる。
【００８２】
図５ｂに基づく実施形態において、シャドウレジスタファイル１２1およびＰＳＷレジスタ１２２（図示されていない）は、コア・クロック発振器２０３、２０４によってクロックされる。この場合、レジスタファイルは非同期に書き込まれる必要がある。その際、書込み過程は、比較装置／パリティユニット１２６を介して制御される。比較装置／パリティユニット１２６は、２つの新しい一致するデータワードが割り当てられる度に書込み信号を削除する。データワードが一致しない場合、比較装置／パリティユニットは、線１１６を介してエラー信号を生成する。シャドウレジスタファイル１２１への読出しアクセスは、この場合も同期に、個々のコア１０１、１０２のクロック発振器２０３、２０４を介して行われる。
【００８３】
上述のように記載される本発明に基づく方法の好適な実施形態は、具体例として理解されるべきである。この他にも、本発明に枠組みから外れることなく、更なる別の解決（方法）が専門家のために構想可能である。
【図面の簡単な説明】
【００８４】
【図１】本発明に基づく装置の好適な実施形態を備えたデュアルコア・プロセッサシステムのブロック図を示している。
【図２】図１の本発明の装置の好適な実施形態が図式的に示されている。
【図３】図１のデュアルコア・プロセッサシステムが図式的に示されている。
【図４】本発明に基づく方法の好適な実施形態が構想可能なデュアルコア・プロセッサシステムのブロック図を示している。
【図５】図４に基づく特にデュアルコア・プロセッサシステムのために構想可能な、本発明に基づく装置の好適な実施形態のブロック図の抜粋を示している。
【図１】
2009516277.tif 000003
【図２】
2009516277.tif 000004
【図３】
2009516277.tif 000005
【図４】
2009516277.tif 000006
【図５ａ】
2009516277.tif 000007
【図５ｂ】
2009516277.tif 000008
【国際調査報告】
2009516277.tif 000009
2009516277.tif 000010
2009516277.tif 000011
2009516277.tif 000012
2009516277.tif 000013
2009516277.tif 000014