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