(57)【要約】少なくとも２つの計算ユニットを備えるシステム内で少なくとも１つのデータ源からデータを分配するためのユニットおよび方法であって、システムの少なくとも２つの動作モードを切替自在な切替手段が設けられており、かつ、データ分配およびデータ源の選択の少なくともいずれかが動作モードに依存する。【選択図】図２
2008518308.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも２つの計算ユニットを備えるシステム内で少なくとも１つのデータ源からデータを分配するための方法であって、前記システムの少なくとも２つの動作モードを切替自在な切替手段が設けられており、かつ、前記データ分配および前記データ源の選択の少なくともいずれかが前記動作モードに依存することを特徴とする、データを分配するための方法。
【請求項２】
前記切替が制御信号、特に少なくとも１つの前記計算ユニットの前記動作モードに関するモード信号によって作動および／または通知されることを特徴とする、請求項１に記載の方法。
【請求項３】
前記制御信号が前記計算ユニットの外部で生成されることを特徴とする、請求項２に記載の方法。
【請求項４】
前記切替が指令、特に許容されない動作（IllOP）を記述する指令によって作動および／または通知されることを特徴とする、請求項１に記載の方法。
【請求項５】
前記指令が、前記切替手段、特にモード切替ユニットによって生成されることを特徴とする、請求項４に記載の方法。
【請求項６】
安全モード（Ｆモード）に相当する動作モードでは、前記２つの計算ユニットの入力データが一致について相互に比較されることを特徴とする、請求項１に記載の方法。
【請求項７】
安全モード（Ｆモード）に相当する動作モードでは、前記２つの計算ユニットの出力データが一致について相互に比較されることを特徴とする、請求項１に記載の方法。
【請求項８】
前記分配するべきデータが、少なくとも１つの他のコンポーネント、特に計算ユニットに伝達され、その場合には前記分配するべきデータが伝達される前にエラー検出符号により増加されることを特徴とする、請求項１に記載の方法。
【請求項９】
前記入力データが、少なくとも１つの他のコンポーネント、特に計算ユニットに伝達され、その場合には前記入力データが伝達される前にエラー検出符号により増加されることを特徴とする、請求項６に記載の方法。
【請求項１０】
前記出力データが、少なくとも１つの他のコンポーネントに伝達され、その場合には前記出力データが伝達される前にエラー検出符号により増加されることを特徴とする、請求項７に記載の方法。
【請求項１１】
一致しない場合に、エラー信号が出力されることを特徴とする、請求項６または７に記載の方法。
【請求項１２】
前記エラー検出符号に基づいてエラーが検出された場合に、エラー信号が出力されることを特徴とする、請求項８〜１０のいずれかに記載の方法。
【請求項１３】
前記エラー信号が安全モード（Ｆモード）でのみ出力されることを特徴とする、請求項１１または１２に記載の方法。
【請求項１４】
パフォーマンスモードと安全モードとが区別され、パフォーマンスモードでは前記２つの計算ユニットのデータの優先順位づけが行われ、データが前記優先順位付けに応じて順次に受取られ、および／または次に与えられることを特徴とする、請求項１に記載の方法。
【請求項１５】
少なくとも２つの計算ユニットを備えるシステム内で少なくとも１つのデータ源からデータを分配するためのユニットであって、前記システムの少なくとも２つの動作モードを切替自在な切替手段が設けられており、かつ、前記データ分配および前記データ源の選択の少なくともいずれかが前記動作モードに依存するように形成されていることを特徴とする、データ分配ユニット。
【請求項１６】
第１の動作モードが安全モードに相当し、安全モードでは前記２つの計算ユニットが同一のプログラムを処理し、かつ比較手段が設けられており、比較手段が前記同一のプログラムの処理に際して発生した状態の一致について比較することを特徴とする、請求項１５に記載のデータ分配ユニット。
【請求項１７】
安全モード（Ｆモード）に相当する動作モードで前記２つの計算ユニットの入力データが一致について相互に比較されるように、形成されていることを特徴とする、請求項１５に記載のデータ分配ユニット。
【請求項１８】
安全モード（Ｆモード）に相当する動作モードで前記２つの計算ユニットの出力データが一致について相互に比較されるように、形成されていることを特徴とする、請求項１５に記載のデータ分配ユニット。
【請求項１９】
前記分配するべきデータが、少なくとも１つの他のコンポーネント、特に計算装置に伝達され、その場合に前記分配するべきデータが伝達される前にエラー検出符号により増加されるように、形成されていることを特徴とする、請求項１５、１７および１８のいずれかに記載のデータ分配ユニット。
【請求項２０】
パフォーマンスモードでは前記２つの計算ユニットのデータの優先順位づけを行い、データを前記優先順位付けに応じて順次に受取り、および／または次に与えるように、形成されていることを特徴とする、請求項１５に記載のデータ分配ユニット。
【請求項２１】
遅延コンポーネントが設けられており、前記遅延コンポーネントは、各々の前記動作モードで前記２つの計算ユニットのクロックオフセットに応じて、先行するデータを前記クロックオフセット分だけ遅延させることを特徴とする、請求項１５に記載のデータ分配ユニット。
【請求項２２】
前記分配するべきデータをメモリから読出し、前記計算ユニットに分配するように、形成されていることを特徴とする、請求項１５に記載のデータ分配するユニット。
【請求項２３】
前記データ分配が状態オートマトンによって制御されるように、形成されていることを特徴とする、請求項１５に記載のデータ分配ユニット。
【請求項２４】
計算ユニットの各々に２つの前記状態オートマトンが設けられるように、形成されていることを特徴とする、請求項２３に記載のデータ分配するユニット。
【請求項２５】
同期された前記状態オートマトンと同期されていない前記状態オートマトンとが設けられるように、形成されていることを特徴とする、請求項２３に記載のデータ分配ユニット。
【請求項２６】
請求項１５〜２５のいずれかに記載のデータを分配するためのユニットを備えるシステム。
【請求項２７】
前記ユニットに対して外部の監視回路が設けられており、前記監視回路は、前記動作モードの意図された切替が行われない場合に、エラーを認識することを特徴とする、請求項２６に記載のシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
特に自動車分野または工業製品分野、従って例えば機械分野およびオートメーション分野のような技術的適用では、安全上重要な適用のために、マイクロプロセッサベースまたは計算機ベースの開ループ制御および閉ループ制御システム（Steuerungs- und Regelungssystem）がますます多用されている。この場合にダブル計算機システムまたはダブルプロセッサシステム（デュアルコア）は、特に車両内の例えばアンチブロッキングシステム、電子安定化プログラム（ＥＳＰ）、ドライブ−バイ−ワイヤもしくはステア−バイ−ワイヤおよびブレーキ−バイ−ワイヤ等のようなＸ−バイ−ワイヤ−システムにおいて、または他のネットワーク化されたシステム等において、安全上重要な適用のために今日普及している計算機システムである。将来の適用において高い安全性要求を満足させるために、特に、例えば計算機システムの半導体構造の小型化に際して生じる過渡的エラーに対処するために、強力なエラー認識機構およびエラー処理機構が必要とされる。この場合にコア自体、従ってプロセッサを保護することは比較的困難である。このための一つの解決策として、前述したように、エラー検出のためにダブル計算機システムまたはデュアルコアシステムが使用される。
【０００２】
少なくとも２つの統合された実行ユニットを備えるこの種のプロセッサユニットは、デュアルコアアーキテクチャまたはマルチコアアーキテクチャとして知られている。この種のデュアルコアアーキテクチャまたはマルチコアアーキテクチャは、現在の技術水準によれば、主として以下の２つの理由から提案される。
【０００３】
第１の理由は、２つの実行ユニットまたはコアが半導体モジュール上の２つの計算ユニットとみなされて取扱われることにより、出力向上、従ってパフォーマンス向上が実現されうる点にある。この設定では、２つの実行ユニットまたはコアは、異なるプログラムもしくはタスクを処理する。これによって出力向上が実現され、従ってこの設定は、出力モードまたはパフォーマンスモードと称される。
【０００４】
デュアルコアアーキテクチャまたはマルチコアアーキテクチャを実現する第２の理由は、２つの実行ユニットが冗長的に同一のプログラムを処理することによる安全性向上にある。２つの実行ユニットまたはＣＰＵ、従ってコアの処理結果が比較され、一致についての比較に際してエラーが認識されうる。以下では、この設定は、安全モードまたはセーフティモードまたはエラー認識モードとも称される。
【０００５】
よって、現在のところ、一方で、ハードウェアエラーを認識するために冗長的に機能するダブルプロセッサシステムまたはマルチプロセッサシステムがあり（デュアルコアまたはマスター−チェッカーシステムを参照）、他方で、そのプロセッサ上で異なるデータを処理するダブルプロセッサシステムまたはマルチプロセッサシステムがある。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ダブルプロセッサシステムまたはマルチプロセッサシステムにおいて、これら２つの動作モードを組合せる場合には（説明の便宜上、ここではダブルプロセッサシステムについてのみ説明するが、以下の発明はマルチプロセッサシステムについても全く同様に適用可能である。）、２つのプロセッサは、パフォーマンスモードでは異なるデータを取得する必要があり、エラー認識モードでは同一のデータを取得する必要がある。
【０００７】
本発明の課題は、少なくとも２つのプロセッサにモードに応じて指令／データを冗長的に、または異なる方法で提供し、特にパフォーマンスモードでメモリアクセス権を分配する、ユニットおよび方法を提供することにある。
【０００８】
この種のユニットは、今日までにまだ知られていない。この種のユニットは、ダブルプロセッサシステムの効果的な動作を可能にするために、安全およびパフォーマンスの２つのモードで動作を切替可能である。この場合、以下ではプロセッサについて説明するが、概念的にはコアもしくは計算ユニットも同様に含むものである。
【課題を解決するための手段】
【０００９】
よって、本発明は、少なくとも２つの計算ユニットを備えるシステム内で少なくとも１つのデータ源からデータを分配するためのユニットであって、その場合にシステムの少なくとも２つの動作モードを切替自在な切替手段（ModeSwitch）が設けられており、かつ、データ分配および／またはデータ源の選択が動作モードに依存するように形成されている。同様に、この種のユニットを備えるシステムが示される。
【００１０】
同様に、本発明は、少なくとも２つの計算ユニットを備えるシステム内で少なくとも１つのデータ源からデータを分配するための相応する方法であって、その場合にシステムの少なくとも２つの動作モードを切替自在な切替手段が設けられており、かつ、データ分配および／またはデータ源（特に指令メモリ、データメモリ、キャッシュ）の選択が動作モードに依存する。
【００１１】
この場合には、第１の動作モードが安全モードに相当し、その安全モードでは２つの計算ユニットが同一のプログラムおよび／またはデータを処理し、かつ比較手段が設けられており、その比較手段が同一のプログラムの処理に際して生じる状態の一致について比較する。
【００１２】
本発明に基づくユニットもしくは方法は、ダブルプロセッサシステムにおいて２つのモードの最適化された実装を可能にする。
【００１３】
２つのプロセッサがエラー認識モード（Ｆモード）で機能する場合には、２つのプロセッサが同一のデータ／指令を取得し、パフォーマンスモード（Ｐモード）で機能する場合には、各プロセッサがメモリにアクセスすることができる。そして、このユニットが、単一に備えられたメモリまたは周辺機器へのアクセスを管理する。
【００１４】
Ｆモードでは、ユニットは、プロセッサ（ここではマスター）のデータ／アドレスを引き継ぎ、メモリ、バス等のようなコンポーネントに伝達する。ここで、第２のプロセッサ（ここではスレーブ）が同じアクセスを行おうとする。データ分配ユニットは、これを第２のポートで受取るが、その照会を他のコンポーネントに伝達しない。データ分配ユニットは、マスターと同一のデータをスレーブに引き継ぎ、２つのプロセッサのデータを比較する。これらが異なっていれば、データ分配ユニット（ここではＤＶＥ）は、その旨をエラー信号によって通知する。よって、マスターのみがバス／メモリに対して作用し、スレーブが同一のデータを取得する（デュアルコアシステムの場合のような機能性）。
【００１５】
Ｐモードでは、２つのプロセッサが異なるプログラム部分を処理する。よって、メモリアクセスも異なる。よって、ＤＶＥは、プロセッサの要求を受けて、要求したプロセッサに結果の／要求されたデータを与える。２つのプロセッサが同時に同一のコンポーネントにアクセスしようとすると、一方のプロセッサは、他方が操作されるまで待機状態にされる。
【００１６】
２つのモードおよびそれに伴うデータ分配ユニットの異なる機能性の切替は、制御信号によって行われる。これは、２つのプロセッサの一方により、または外部で生成可能である。
【００１７】
切替が制御信号、特に少なくとも１つの計算ユニットの動作モードに関するモード信号によって作動および／または通知され、その場合に制御信号が、特に計算ユニットに関して外部で生成されるようにしてもよい。
【００１８】
さらに、切替が指令、特に許容されないアクション（IllOp）を記述する指令によって作動および／または通知されることが効果的であって、その場合に指令が切替手段、特にモード切替ユニットによって生成される。
【００１９】
２つの計算ユニットの入力データが、安全モード（Ｆモード）に相当する動作モードで一致について相互に比較され、および／または２つの計算ユニットの出力データも、安全モード（Ｆモード）に相当する動作モードで一致について相互に比較されるようにしてもよい。
【００２０】
分配するべきデータが、少なくとも１つの他のコンポーネント、特に計算ユニットに伝達され、その場合に分配するべきデータが伝達される前にエラー検出符号分だけ拡張されるようにしてもよい。同様に、入力データが、少なくとも１つの他のコンポーネント、特に計算ユニットに伝達され、その場合に入力データが伝達される前にエラー検出符号分だけ拡張される。同様に、出力データが、少なくとも１つの他のコンポーネントに伝達され、その場合に出力データが伝達される前にエラー検出符号分だけ拡張される。上記の場合には、エラー検出符号に基づいてエラーが検出された場合に、エラー信号が出力されるようにしてもよい。この場合にある実施形態では、エラー信号が安全モード（Ｆモード）でのみ出力される。
【００２１】
原則的に、パフォーマンスモードと安全モードとが区別され、パフォーマンスモードでは２つの計算ユニットのデータの優先順位付けが行われ、データが優先順位付けに応じて順次に受取られ、および／または次に与えられるようにしてもよい。
【００２２】
本発明によれば、遅延コンポーネントが設けられ、遅延コンポーネントは、各々の動作モードで２つの計算ユニットのクロックオフセットに応じて、先行するデータをクロックオフセット分だけ遅延させるようにしてもよい。
【００２３】
分配するべきデータをメモリから読出し、計算ユニットに分配するようにしてもよい。
【００２４】
この場合にデータ分配は、状態オートマトンによって制御され、その場合に計算ユニットの各々に２つの状態オートマトンが設けられるようにしてもよい。これらの状態オートマトンは、同期された状態オートマトンと同期されていない状態オートマトンとして形成されるようにしてもよい。
【００２５】
本発明によれば、かかる本発明に基づくユニットを備えるシステムが設けられており、その場合にさらに、ユニットに対して外部の監視回路が設けられており、監視回路は、動作モードの意図された切替が行われない場合に、エラーを認識するようにしてもよい。
【００２６】
ダブルプロセッサシステムが、Ｆモードではクロックオフセットを伴って、かつＰモードではクロックオフセットなしで動作する場合には、ＤＶＥユニットは、スレーブのためのデータを然るべく遅延させ、または、エラー認識のためにスレーブの出力データと比較可能となるまでマスターの出力データを記憶する。
【発明を実施するための最良の形態】
【００２７】
図１を用いて、クロックオフセットについて詳細に説明する。
【００２８】
図１は、第１の計算機１００、特にマスター計算機と、第２の計算機１０１、特にスレーブ計算機とを備えるダブル計算機システムを示している。この場合にシステム全体は、予め設定可能なクロックもしくは予め設定可能なクロックサイクル（clock cycle）ＣＬＫで動作する。計算機１００のクロック入力ＣＬＫ１および計算機１０１のクロック入力ＣＬＫ２を介して、システムにクロックが供給される。このダブル計算機システムでは、さらに、エラー認識のための特殊な特徴を有しており、すなわち、第１の計算機１００と第２の計算機１０１とがタイムオフセット、特に予め設定可能なタイムオフセットもしくは予め設定可能なクロックオフセットを伴って機能する。この場合に、タイムオフセットのために任意の時間を各々に予め設定可能であり、かつクロックサイクルのオフセットに関する任意のクロックも各々に予め設定可能である。これは、クロックサイクル（clock cycle）の整数倍のオフセットであっても、または例示するように、例えば１．５クロックサイクルのオフセットであってもよく、ここでは、第１の計算機１００が第２の計算機１０１よりも１．５クロックサイクル早く機能もしくは動作する。このオフセットによって、同一クロックエラー、いわゆるコモンモードエラーが、計算機またはプロセッサ、従ってデュアルコアシステムのコアに同様の障害を及ぼし、よって認識されないままとなることが回避可能となる。すなわち、この種の同一クロックエラーは、オフセットによってプログラムシーケンスの異なる時点で計算機に作用し、よって２つの計算機に関して異なる効果を及ぼし、それによってエラーが認識可能となる。クロックオフセットを伴わない同様のエラー効果は、場合によっては比較に際して認識不能となるが、これによって認識不能となることが回避される。タイムまたはクロックに関するオフセット（ここでは特に１．５クロックサイクル）をダブル計算機システムに導入するために、オフセットモジュール１１２〜１１５が実装される。
【００２９】
前述した同一クロックエラーを認識するために、このシステムは、例えば、予め設定されたタイムオフセットまたはクロックサイクルオフセット（ここでは特に１．５クロックサイクル）で機能するように設計されており、すなわち、一方の計算機、特に計算機１００がコンポーネント、特に外部コンポーネント１０３、１０４に直接的に応答し、第２の計算機１０１がそれに対して正確に１．５クロックサイクルの遅延を伴って機能する。この場合に所望の１と半分、従って１．５クロックサイクルの遅延を発生させるために、計算機１０１のクロック入力ＣＬＫ２に反転されたクロックが供給される。しかし、これによって、前述した計算機のアクセス、従ってそのデータもしくは指令もバスを介して前述したクロックサイクル（特にここでは１．５クロックサイクル）分だけ遅延される必要があり、そのために、前述したようなオフセットモジュールもしくは遅延モジュール１１２〜１１５が備えられている。２つの計算機またはプロセッサ１００、１０１の他に、コンポーネント１０３、１０４が備えられており、それらは、バス線１１６Ａ、１１６Ｂおよび１１６Ｃからなるバス１１６と、バス線１１７Ａおよび１１７Ｂからなるバス１１７とを介して、２つの計算機１００および１０１と接続されている。この場合にバス１１７は、指令バスであって、１１７Ａが指令アドレスバス、１１７Ｂが指令部分（データ）バスを示している。アドレスバス１１７Ａは、指令アドレス接続ＩＡ１（Instruction Address 1）を介して計算機１００と、指令アドレス接続ＩＡ２（Instruction Address 2）を介して計算機１０１と各々に接続されている。指令自体は、指令部分バス１１７Ｂを介して伝達され、その指令部分バスが指令接続Ｉ１（Instruction 1）を介して計算機１００と、指令接続Ｉ２（Instruction 2）を介して計算機１０１と接続されている。１１７Ａおよび１１７Ｂで構成される指令バス１１７には、コンポーネント１０３、例えば指令メモリ、特に安全な指令メモリ等が中間接続されている。特に指令メモリとしてのコンポーネントも、この例ではクロックＣＬＫで動作する。この他には、符号１１６でデータバスが示されており、これはデータアドレスバスまたはデータアドレス線１１６Ａとデータバスまたはデータ線１１６Ｂとを有している。この場合に１１６Ａ、従ってデータアドレス線は、データアドレス接続ＤＡ１（Data Address 1）を介して計算機１００と、データアドレス接続ＤＡ２（Data Address 2）を介して計算機１０１と各々に接続されている。同様に、データバスまたはデータ線１１６Ｂは、データ接続ＤＯ１（Data Out 1）およびデータ接続ＤＯ２（Data Out 2）を介して計算機１００および計算機１０１と各々に接続されている。さらに、データバス１１６には、データバス線１１６Ｃが含まれており、それはデータ接続ＤＩ１（Data In 1）およびデータ接続ＤＩ２（Data In 2）を介して計算機１００および計算機１０１と各々に接続されている。線１１６Ａ、１１６Ｂおよび１１６Ｃからなるデータバス１１６内には、コンポーネント１０４、例えばデータメモリ、特に安全なデータメモリ等が中間接続されている。コンポーネント１０４も、この例ではクロックＣＬＫで動作する。
【００３０】
この場合にコンポーネント１０３、１０４は、データバスおよび／または指令バスを介してダブル計算機システムの計算機と接続されて、ダブル計算機システムのデータおよび／または指令を介してのアクセスに応じて、書込み操作および／または読取り操作に関してエラーを伴うデータおよび／または指令を入力されまたは出力しうる任意のコンポーネントを代表している。エラー回避のために、特にエラー識別子生成器１０５、１０６および１０７が備えられており、それらは、例えば、パリティビットのようなエラー識別子、または、例えばエラー訂正符号、従ってＥＣＣ等のような他のエラー符号を生成する。この場合には、さらに、各々のエラー識別子、従って例えばパリティビットまたはＥＣＣのような他のエラー符号を検査するための適当なエラー識別子検査装置またはチェック装置１０８、１０９も備えられている。
【００３１】
ダブル計算機システムの冗長的な実行に関するデータおよび／または指令の比較は、図１に示すような比較器またはコンパレータ１１０、１１１で行われる。しかし、同期されていないダブルプロセッサシステムによって、もしくは同期されたダブルプロセッサシステムで同期化中のエラーによって、またはこの特殊例のように、エラー認識のために望まれるタイムオフセットもしくはクロックサイクルオフセット（特にここでは１．５クロックサイクル）によってもたらされる、タイムオフセット、特にクロックオフセットまたはクロックサイクルオフセットが計算機１００と１０１との間に存在する場合には、このタイムオフセットまたはクロックオフセット内で、計算機、ここでは特に計算機１００がコンポーネント、特に、例えばここでは特にメモリ１０３もしくは１０４のような外部コンポーネント、または他のノード（Teilnehmern）またはアクチュエータまたはセンサに関して、エラーを伴うデータおよび／または指令を書込みまたは読取る可能性がある。すなわち、計算機は、クロックオフセットによって、予め設定された読取りアクセスの代りに、誤って書込みアクセスを実行する場合もありうる。このような場合には、もちろん、特にいずれのデータおよび／または指令がまさに誤って変更されたかという明確な指示可能性なしに、システム全体にエラーが及ぼされ、それによってリカバリー問題も生じる。
【００３２】
この問題を解決するために、遅延ユニット１０２が図示のようにデータバスの線および／または指令バスに接続される。説明の便宜上から、データバスへの接続のみが示されている。指令バスに関しても、もちろん同様に可能であって、かつ考えられる。この遅延ユニット（Verzoegerunseinheit、Delay Unit）１０２は、アクセス、ここでは特にメモリアクセスを、可能とされるタイムオフセットまたはクロックオフセットが補償されるように遅延させ、特に、例えば比較器１１０、１１１を介したエラー認識に際しては、例えば、ダブル計算機システム内でエラー信号が生成され、従ってダブル計算機システム内でエラー認識が実行されるまでの間に亘って遅延させる。この場合には、例えば、書込み操作および読取り操作の遅延、書込み操作のみの遅延、または、余り望ましくはないが、読取り操作の遅延等のような種々の変形例が実装可能である。この場合に、エラーを伴う書込みを禁止するために、変更信号、特にエラー信号によって、遅延された書込み操作を読取り操作に変換可能である。
【００３３】
次に、図２を用いて、望ましくは、ＩｌｌＯＰＤｅｔｅｃｔによって切替意図を検出する装置（ＩｌｌＯＰ指令（IllOP＝Illegal Operation）が切替のために用いられるため）、モード切替ユニット、Ｉｒａｍ制御モジュールおよびＤｒａｍ制御モジュールで構成される、データ分配ユニット（ＤＶＥ：Datenverteilungseinheit）に関する実装例を説明する。
【００３４】
ＩｌｌＯｐＤｅｔｅｃｔ：２つのモード間の切替が切替検出（Switch-Detect）ユニットによって認識される。このユニットは、指令バス上でキャッシュとプロセッサとの間に配置されて、指令ＩｌｌＯｐがプロセッサにロードされるかを確認する。指令が検出されると、このイベントがモード切替（Mode Switch）ユニットに報告される。切替検出ユニットは、プロセッサの各々に個別に備えられている。切替検出ユニットは、エラー許容するように形成される必要はない。というのは、このユニットは二重化されており、よって冗長的に備えられているからである。他方で、このユニットがエラー許容するように、よって単一での実施も考えられるが、冗長的な実施の方が望ましい。
【００３５】
ＭｏｄｅＳｗｉｔｃｈ：モード間の切替は、切替検出ユニットによってトリガーされる。ロックモードからスプリットモードへの切替に際して、２つの切替検出ユニットが切替を検出する。というのは、ロックモードでは、２つのプロセッサが同一のプログラムコードを処理するからである。プロセッサ１の切替検出ユニットは、この切替をプロセッサ２の切替検出ユニットより１．５クロック早く認識する。モード切替ユニットは、待機信号を用いてプロセッサ１を２クロックのみ停止させる。プロセッサ２は、１．５クロック遅れて同様に停止されるが、０．５クロックのみ停止され、よってシステムクロックに同期化される。次に、状態信号が他のコンポーネントのためにスプリットに切替えられ、２つのプロセッサはさらに機能を続ける。よって、２つのプロセッサが異なるタスクを実行するために、それらはプログラムコード中で互いに分離される必要がある。これは、スプリットモードへの切替直後にプロセッサＩＤに対する読取りアクセスがなされることで行われる。この読取られたプロセッサＩＤは、２つのプロセッサの各々に関して異なっている。目標プロセッサＩＤが比較されると、次に、条件付分岐指令によって、該当するプロセッサが他のプログラム箇所に分岐されうる。スプリットモードからロックモードへの切替に際しては、１つのプロセッサもしくは２つのプロセッサの一方がまず切替に気づく。このプロセッサが、切替指令を含むプログラムコードを実行する。これが、切替検出ユニットによって確認されて、それがモード切替ユニットに通知される。モード切替ユニットが、該当するプロセッサを停止させて、第２のプロセッサにインターラプトによって同期化の意図を通知する。第２のプロセッサは、インターラプトを受けて、タスクを終了させるためのソフトウェアルーチンを実行可能である。そして、このプロセッサが同様に、切替指令があるプログラム箇所に分岐する。この切替検出ユニットが、同様にモード切替の意図をモード切替ユニットに通知する。次のシステムクロックの上昇端（steigenden Systemtaktflanke）で、プロセッサ１に対する待機信号が非能動化されて、１．５クロック遅れてプロセッサ２に対する待機信号が同様に非能動化される。そして、両者は再び１．５クロックのクロックオフセットを伴って同期して機能する。
【００３６】
システムがロックモードにある場合には、２つの切替検出ユニットは、スプリットモードへの切替を意図していることをモード切替ユニットに通知する必要がある。切替意図が一方のユニットのみから行われると、比較ユニットによりエラーが認識される。というのは、このユニットは、２つのプロセッサの他方より、停止されているプロセッサとは一致しないデータをさらに供給されているからである。
【００３７】
２つのプロセッサがスプリットモードにあり、かつ一方がロックモードに切替わらなければ、それが外部のウォッチドッグによって認識可能である。各プロセッサに関するトリガー信号により、ウォッチドッグは、待っているプロセッサからもはや報告がなされないことに気づく。プロセッサシステムのために１つのウォッチドッグ信号のみが存在する場合には、ウォッチドッグはロックモードでのみトリガーを許可される。よって、ウォッチドッグは、モード切替が行われなかったことを認識する。モード信号は、デュアルレール信号として存在する。この場合に”１０”がロックモードを、”０１”がスプリットモードを表す。”００”および”１１”では、エラーが発生している。
【００３８】
ＩｒａｍＣｏｎｔｒｏｌ：２つのプロセッサの指令メモリへのアクセスは、Ｉｒａｍ制御を介して制御される。Ｉｒａｍ制御は、安全に設計される必要がある。というのは、Ｉｒａｍ制御が単一障害点（Single Point of Failure）となるからである。Ｉｒａｍ制御は、プロセッサの各々について、クロック同期のiram1clkresetと非同期のreadiram1との２つの状態オートマトンからなる。安全上重要なモードでは、２つのプロセッサの状態オートマトンが相互に監視し合い、パフォーマンスモードでは別々に機能する。
【００３９】
２つのプロセッサのキャッシュのリロードは、同期のiramclkresetと非同期のreadiramとの２つの状態オートマトンによって制御される。これら２つの状態オートマトンによって、スプリットモードでのメモリアクセスも分配される。この場合にプロセッサ１は、より高い優先順位を有する。プロセッサ１によるメインメモリへのアクセスの後に、２つのプロセッサが再びメインメモリにアクセスしようとすると、プロセッサ２がメモリアクセスの許可を割当てられる。これら２つの状態オートマトンは、プロセッサの各々について実装されている。ロックモードでは、発生したエラーを認識可能とするために、オートマトンの出力信号が比較される。
【００４０】
ロックモードでキャッシュ２を更新するためのデータは、Ｉｒａｍ制御ユニット内で１．５クロック遅延される。
【００４１】
Ｓｙｓ制御のレジスタ０のビット５には、いずれのコアが問題であるかが符号化される。コア１であればビット値０であり、コア２であればビット値１である。このレジスタは、アドレス６５５２８を伴うメモリ領域に反映されている。
【００４２】
コア２によるメモリアクセスに際して、まず、計算機がいずれのモードにあるかが調べられる。計算機がロックモードにあれば、そのメモリアクセスが抑制される。この信号は、安全上重要であるためコモンレール信号として存在する。
【００４３】
プロセッサ１のプログラムカウンタは、ロックモードでプロセッサ２のプログラムカウンタと比較可能となるように１．５クロック遅延される。
【００４４】
スプリットモードでは、２つのプロセッサのキャッシュは、異なるようにリロードされうる。ロックモードへの切替に際して、２つのキャッシュは互いに干渉し合わない。よって、２つのプロセッサは、互いに分離して進行され、よって比較器がエラーを通知する。これを回避するために、Ｉｒａｍ制御内にフラグテーブルが構築されている。この中に、キャッシュ行（Cachezeile）がロックモードまたはスプリットモードのいずれで書込まれたかが登録される。ロックモードでは、キャッシュ行に該当する登録がキャッシュ行リロードに際して０に設定され、スプリットモードでは、一方のキャッシュのみによりキャッシュ行がキャッシュ更新される場合でも、１に設定される。プロセッサがロックモードでメモリアクセスを実行する場合には、このキャッシュ行がロックモードで更新されたか、すなわち２つのキャッシュ内で同一であるかが調べられる。スプリットモードでは、プロセッサは、フラグベクトルの状態にかかわらずに、常にキャッシュ行にアクセス可能である。このテーブルは、一度のみ存在すればよい。というのは、エラーに際しては、２つのプロセッサが互いに分離して進行され、よってこのエラーが比較器で確実に認識されるからである。中央のテーブルへのアクセス時間が比較的長いので、このテーブルが各キャッシュにコピーされてもよい。
【００４５】
ＤｒａｍＣｏｎｔｒｏｌ：このコンポーネントでは、アドレス信号、データ信号およびメモリ制御信号のために、プロセッサの各々によりパリティが形成される。
【００４６】
２つのプロセッサについて、メモリを遮断するためのプロセスがある。このプロセスは、安全に実装されている必要はない。というのは、ロックモードでは、エラーを伴うメモリアクセスが比較器によって認識され、スプリットモードでは、安全上重要なアプリケーションが実行されないからである。ここでは、一方のプロセッサが他方のプロセッサのためにメモリを遮断しようとしているかが調べられる。データメモリの遮断は、メモリアドレス＄ＦＢＦＦ＄＝６４５１１へのアクセスによって行われる。この信号は、呼出しの時点でプロセッサに待機指令が印加されている場合でも、正確に１クロックの長さで印加される必要がある。データメモリアクセスを管理するための状態オートマトンは、以下の２つのメイン状態からなる。
−プロセッサ状態Ｌｏｃｋ：２つのプロセッサがロックモードで機能する。すなわち、データメモリロッキングの機能が必要とされない。プロセッサ１がメモリアクセスを調整する。
−プロセッサ状態Ｓｐｌｉｔ：データメモリに対するアクセス競合の解決が必要であって、メモリ遮断を行う必要性がある。
【００４７】
スプリットモードでの状態は、さらに、アクセス競合を解決し、かつ各々の他方のプロセッサのためにデータメモリを遮断可能な以下の７つの状態に区分される。２つのプロセッサにより同時に１つのアクセスが意図される場合には、記載された順序が同時に優先順位を表している。
【００４８】
−Ｃｏｒｅ１/＿Ｌｏｃｋ：プロセッサ１がデータメモリを遮断している。この状態では、プロセッサ２がメモリにアクセスしようとすると、プロセッサ１がデータメモリを解放するまで、プロセッサ２は待機信号によって停止される。
−Ｃｏｒｅ２/＿Ｌｏｃｋ：前述と同じ状態で、プロセッサ２がデータメモリを遮断しており、プロセッサ１はデータメモリ操作に際して停止される。
−ｌｏｃｋ１/＿ｗａｉｔ：データメモリは、プロセッサ２と同様にプロセッサ１が自らのために予約しようとした際に、プロセッサ２によって遮断されている。よって、プロセッサ１は、次のメモリ遮断を予約する。
−ｎｅｘ：プロセッサ２について同様。データメモリは、プロセッサ１による遮断の試みの間に亘って遮断されている。プロセッサ２は、メモリの予約を受け付けられた。遮断を伴わない通常のメモリアクセスに際しては、ここでは、その前にプロセッサ１の順番であった場合に、プロセッサ２がプロセッサ１より前にアクセス可能である。
−プロセッサ１によるメモリアクセス：この場合にはメモリが遮断されていない。プロセッサ１は、データメモリへのアクセスを許可される。プロセッサ１は、メモリを遮断しようとする場合には、この状態で行う。
−プロセッサ２によるメモリアクセス：同クロック内でプロセッサ１はメモリにアクセスしようとせず、よってメモリはプロセッサ２のために解放されている。
−いずれのプロセッサも、データメモリにアクセスしようとしない。
【００４９】
ＤＶＥは、前述したように、切替意図の検出器（ＩｌｌＯＰＤｅｔｅｃｔ）、モード切替ユニット、Ｉｒａｍ制御およびＤｒａｍ制御から構成される。
【００５０】
本発明の本質は、前述したように、データ分配ユニットＤＶＥの一般的な機能性にある（各々のモードに応じた、異なるデータ分配および動作モードの選択）。
【００５１】
しかし、これらの他に、図示されているＤＶＥの特殊な実装もまた、冒頭で挙げた種類の課題を解決するものである。
【図面の簡単な説明】
【００５２】
【図１】第１の計算機と第２の計算機とを備えるダブル計算機システムを示す説明図である。
【図２】データ分配ユニット（ＤＶＥ）に関する実装例を示す説明図である。
【図１】
2008518308.tif 000003
【図２】
2008518308.tif 000004
【国際調査報告】
2008518308.tif 000005
2008518308.tif 000006
2008518308.tif 000007
2008518308.tif 000008
2008518308.tif 000009
2008518308.tif 000010