(57)【要約】少なくとも２つの実施ユニットを有する計算機システムにおける切替え方法および装置であって、その場合に切替え手段が設けられており、その切替え手段は、これら実施ユニットが少なくとも２つの駆動モードの間で切り替るように形成されており、その場合に第１の駆動モードは比較モードに相当し、第２の駆動モードはパフォーマンスモードに相当する、前記方法および装置は、インターラプトコントローラが設けられており、さらに少なくとも３つのメモリ領域が設けられており、その場合にメモリ領域へのアクセスが、少なくとも１つの第１の実施ユニットに第１のメモリ領域が対応づけられ、少なくとも１つの第２の実施ユニットには第２のメモリ領域が対応づけられ、少なくとも１つの第３のメモリ領域が少なくとも２つの実施ユニットに対応づけることができるように、行われることを特徴としている。
2008518338.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも２つの実施ユニットを有する計算機システムにおいて切り替える方法であって、その場合に切替え手段が設けられており、前記切替え手段はこれら実施ユニットが少なくとも２つの駆動モード間で切り替るように形成されており、その場合に第１の駆動モードが比較モードに相当し、第２の駆動モードがパフォーマンスモードに相当する、前記方法において、
インターラプトコントローラが設けられており、さらに少なくとも３つのメモリ領域が設けられており、その場合にメモリ領域へのアクセスは、少なくとも１つの第１の実施ユニットに第１のメモリ領域が対応づけられ、少なくとも１つの第２の実施ユニットに第２のメモリ領域が対応づけられ、少なくとも１つの第３のメモリ領域が少なくとも２つの実施ユニットに対応づけ可能であるように、行われることを特徴とする、少なくとも２つの実施ユニットを有する計算機システムにおいて切り替える方法。
【請求項２】
パフォーマンスモードにおいて、各実施ユニットにそれぞれメモリ領域が対応づけられており、その場合にメモリ領域に正確に１つのインターラプトコントローラが対応づけられていることを特徴とする請求項１に記載の方法。
【請求項３】
パフォーマンスモードにおいて、各実施ユニットにそれぞれメモリ領域が対応づけられており、その場合にすべてのメモリ領域に正確に１つのインターラプトコントローラが対応づけられていることを特徴とする請求項１と２のいずれか１項に記載の方法。
【請求項４】
すべてのインターラプト源がインターラプトコントローラに対応づけられていることを特徴とする請求項１から３のいずれか１項に記載の方法。
【請求項５】
パフォーマンスモードにおいて、少なくとも１つの第１の実施ユニットに第１のメモリ領域が対応づけられ、少なくとも１つの第２の実施ユニットに第２のメモリ領域が対応づけられていることを特徴とする請求項１から４のいずれか１項に記載の方法。
【請求項６】
比較モードにおいて、少なくとも１つの第３のメモリ領域が、少なくとも２つの実施ユニットに対応づけられていることを特徴とする請求項１から５のいずれか１項に記載の方法。
【請求項７】
パフォーマンスモードにおいて、各実施ユニットにメモリ領域が対応づけられる対応づけのみがアクティブであることを特徴とする請求項１から６のいずれか１項に記載の方法。
【請求項８】
比較モードにおいて、少なくとも２つのメモリ領域に少なくとも第３のメモリ領域が対応づけられる対応づけのみがアクティブであることを特徴とする請求項１から７のいずれか１項に記載の方法。
【請求項９】
各モードにおいて、対応づけの正確に１つの型のみが、各実施ユニットにアクティブな対応づけの１つによって対応づけられた正確に１つのメモリ領域を与えるようにアクティブであることを特徴とする請求項１から８のいずれか１項に記載の方法。
【請求項１０】
比較からパフォーマンスモードへ切り替える場合に、アクティブな対応づけの型が交替することを特徴とする請求項１から９のいずれか１項に記載の方法。
【請求項１１】
対応づけられたメモリ領域の記述が、各モードにおいて許されていないことを特徴とする請求項１から１０のいずれか１項に記載の方法。
【請求項１２】
対応づけられたメモリ領域の記述が、対応づけがアクティブであるモードにおいてのみ、許されていることを特徴とする請求項１から１１のいずれか１項に記載の方法。
【請求項１３】
少なくとも２つの実施ユニットを有する計算機システムにおいて切り替える装置であって、その場合に切替え手段が設けられており、前記切替え手段は、これら実施ユニットが少なくとも２つの駆動モードの間で切り替るように形成されており、その場合に第１の駆動モードが比較モードに相当し、第２の駆動モードがパフォーマンスモードに相当する、前記装置において、
インターラプトコントローラが含まれており、前記インターラプトコントローラに少なくとも３つのメモリ領域が対応づけられており、その場合に少なくとも１つの第１のメモリ領域が少なくとも１の第１の実施ユニットに対応づけられ、第２のメモリ領域が少なくとも１つの第２の実施ユニットに対応づけられており、少なくとも１つの第３のメモリ領域が少なくとも２つの実施ユニットに対応づけ可能であることを特徴とする、少なくとも２つの実施ユニットを有する計算機システムにおいて切り替える装置。
【請求項１４】
パフォーマンスモードにおいて、各実施ユニットにそれぞれメモリ領域が対応づけられており、その場合に正確に１つのインターラプトコントローラが設けられていることを特徴とする請求項１３に記載の装置。
【請求項１５】
すべてのインターラプト源がインターラプトコントローラに対応づけられていることを特徴とする請求項１３または１４に記載の方法。
【請求項１６】
パフォーマンスモードにおいて、少なくとも１つの第１の実施ユニットに第１のメモリ領域が対応づけられており、かつ少なくとも１つの第２の実施ユニットに第２のメモリ領域が対応づけられていることを特徴とする請求項１３から１５のいずれかに記載の装置。
【請求項１７】
比較モードにおいて、少なくとも１つの第３のメモリ領域が、少なくとも２つの実施ユニットに対応づけられていることを特徴とする請求項１３から１６のいずれかに記載の装置。
【請求項１８】
メモリ領域が、インターラプトコントローラ内に配置されていることを特徴とする請求項１３から１７のいずれかに記載の装置。
【請求項１９】
パフォーマンスモードにおいて、各実施ユニットにメモリ領域が対応づけられている対応づけのみがアクティブであることを特徴とする請求項１３から１８のいずれかに記載の装置。
【請求項２０】
パフォーマンスモードにおいて、各実施ユニットにメモリ領域が対応づけられている対応づけのみがアクティブであることを特徴とする請求項１３から１９のいずれかに記載の装置。
【請求項２１】
比較モードにおいて、少なくとも２つの実施ユニットに少なくとも第３のメモリ領域が対応づけられている対応づけのみがアクティブであることを特徴とする請求項１３から２０のいずれかに記載の装置。
【請求項２２】
各モードにおいて、対応づけの正確に１つの型のみが、各実施ユニットにアクティブな対応づけの１つによって対応づけられた正確に１つのメモリ領域を与えるように、アクティブであることを特徴とする請求項１３から２１のいずれかに記載の装置。
【請求項２３】
比較モードからパフォーマンスモードへ切り替える場合に、アクティブな対応づけの型が交替することを特徴とする請求項１３から２２のいずれかに記載の装置。
【請求項２４】
比較モードからパフォーマンスモードへ切り替える場合に、アクティブな対応づけの型の交替が、スイッチの操作によって行われることを特徴とする請求項１２から２３のいずれかに記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、少なくとも２つの実施ユニットを有する計算機システムにおける切替え方法および装置に関する。
【背景技術】
【０００２】
アルファ粒子または宇宙線によって引き起こされる過渡的エラーが、集積された半導体回路にとってますます問題となって来ている。減少する構造幅、低下する電圧および高くなるクロック周波数によって、アルファ粒子または宇宙線によって引き起こされる電圧ピークが集積回路内の論理値を歪曲する確率が増大している。結果として、誤った計算結果がもたらされるおそれがある。従って、特に自動車内の、安全上重要なシステム内では、この種のエラーは確実に検出されなければならない。たとえば、自動車内のＡＢＳシステムのような、エレクトロニクスのエラー機能が確実に検出されなければならない安全上重要なシステムにおいては、この種のシステムの然るべき制御装置では、通常、エラーを認識のために冗長性が使用される。すなわち、たとえば、既知のＡＢＳシステムにおいては、それぞれ完全なマイクロコントローラが二重にされており、その場合にＡＢＳ機能全体が冗長に計算されて、一致について検査される。結果の矛盾が発生した場合に、ＡＢＳシステムはオフにされる。
マイクロコントローラの重要なコンポーネントは、一方では、メモリモジュール（たとえばＲＡＭ、ＲＯＭ、キャッシュ）、コアおよび入出力インターフェイス、いわゆる周辺機器（たとえばＡ／Ｄ変換器、ＣＡＮインターフェイス）である。メモリ素子は検査コード（パリティまたはＥＣＣ）によって効果的に監視することができ、周辺機器はしばしばアプリケーション固有にセンサ信号パスまたはアクター信号パスの一部として監視されるので、それ以上の冗長性の考えは、マイクロコントローラのコアをただ二重にすることである。
２つの内蔵されたコアを有するこの種のマイクロコントローラは、デュアルコアアーキテクチャとしても知られている。２つのコアは、同じプログラムセグメントを冗長かつクロック同期（ロックステップモード）で実施し、２つのコアの結果が比較され、一致を比較した場合に、エラーが認識される。デュアルコアシステムのこの設定は、比較モードとも称される。
デュアルコアアーキテクチャは、他の適用においてはパワーを向上させるため、従ってパフォーマンスを向上させるためにも使用される。２つのコアは、異なるプログラム、プログラムセグメントおよび指令を実施し、それによってパワーの向上が得られ、従ってデュアルコアシステムのこの設定は、パフォーマンスモードと称することもできる。このシステムは、対称のマルチプロセッサシステム（ＳＭＰ）とも称される。
システムの拡張は、特殊なアドレスへのアクセスと特殊化されたハードウェア装置による、これら２つのモード間のソフトウェアによる切替えである。比較モードにおいては、コアの出力信号が互いに比較される。パフォーマンスモードにおいては、２つのコアは新芽トリックなマルチプロセッサシステム（ＳＭＰ）として働き、異なるプログラム、プログラムセグメントまたは指令を実施する。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
この種のシステムを使用する場合に、切り替える場合にインターラプト源の切替えも行われなければならないという問題が生じる。従って本発明の課題は、インターラプト源の最適な切替えを可能にする、方法と手段を提供することである。
【課題を解決するための手段】
【０００４】
好ましくは、少なくとも２つの実施ユニットを有する計算機システムにおいて切り替える方法が使用され、その場合に切替え手段が含まれており、その切替え手段は、これら実施ユニットが少なくとも２つの駆動モード間で切り替るように、形成されており、その場合に第１の駆動モードは比較モードに相当し、第２の駆動モードはパフォーマンスモードに相当する、前記方法は、インターラプトコントローラが設けられており、かつさらに少なくとも３つのメモリ領域が設けられており、その場合にメモリ領域へのアクセスが、少なくとも１つの第１の実施ユニットに第１のメモリ領域が対応づけられ、少なくとも１つの第２のメモリ領域に第２のメモリ領域が対応づけられており、少なくとも１つの第３のメモリ領域が少なくとも２つの実施ユニットに対応づけ可能であるように行われることを特徴としている。
【０００５】
好ましくは、パフォーマンスモードにおいて各実施ユニットにそれぞれメモリ領域が対応づけられており、その場合にメモリ領域に正確に１つのインターラプトコントローラが対応づけられている、方法が使用される。
【０００６】
好ましくは、パフォーマンスモードにおいて各実施ユニットにそれぞれメモリ領域が対応づけられており、その場合にすべてのメモリ領域に正確に１つのインターラプトコントローラが対応づけられている、方法が使用される。
【０００７】
好ましくは、すべてのインターラプト源がインターラプトコントローラに対応づけられている、方法が使用される。
【０００８】
好ましくは、パフォーマンスモードにおいて、少なくとも１つの第１の実施ユニットに第１のメモリ領域が対応づけられ、少なくとも１つの第２の実施ユニットに第２のメモリ領域が対応づけられている方法が使用される。
【０００９】
好ましくは、比較モードにおいて、少なくとも１つの第３のメモリ領域が少なくとも２つの実施ユニットに対応づけられている方法が使用される。
【００１０】
好ましくは、パフォーマンスモードにおいて、各実施ユニットにメモリ領域が対応づけられている、対応づけのみがアクティブである方法が使用される。
【００１１】
好ましくは、比較モードにおいて、少なくとも２つの実施ユニットに少なくとも第３のメモリ領域が対応づけられている、対応づけのみがアクティブである方法が使用される。
【００１２】
好ましくは、各モードにおいて、対応づけの正確に１つの型のみが、各実施ユニットにアクティブな対応づけの１つによって対応づけられた正確に１つのメモリ領域を与えるように、アクティブである方法が使用される。
【００１３】
好ましくは、比較からパフォーマンスモードへ切り替える場合に、アクティブな対応付けが交替する方法が使用される。
【００１４】
好ましくは、少なくとも２つの実施ユニットを有する計算機システムにおいて切り替える装置が使用され、その場合に切替え手段が含まれており、その切替え手段は、これら実施ユニットが少なくとも２つの駆動モードの間で切り替るように、形成されており、その場合に第１の駆動モードが比較モードに相当し、第２の駆動モードがパフォーマンスモードに相当する、前記装置は、インターラプトコントローラが含まれており、そのインターラプトコントローラに少なくとも３つのメモリ領域が対応づけられており、その場合に少なくとも１つの第１のメモリ領域が少なくとも１つの第１の実施ユニットに対応づけられ、第２のメモリ領域が少なくとも１つの第２の実施ユニットに対応づけられており、かつ少なくとも１つの第３のメモリ領域が少なくとも２つの実施ユニットに対応づけ可能であることを特徴としている。
【００１５】
好ましくは、パフォーマンスモードにおいて、各実施ユニットにそれぞれメモリ領域が対応づけられており、その場合に正確に１つのインターラプトコントローラが設けられている装置が使用される。
【００１６】
好ましくは、インターラプト源がインターラプトコントローラに対応づけられている装置が使用される。
【００１７】
好ましくは、パフォーマンスモードにおいて、少なくとも１つの第１の実施ユニットに第１のメモリ領域が対応づけられ、少なくとも１つの第２の実施ユニットに第２のメモリ領域が対応づけられている装置が使用される。
【００１８】
好ましくは、比較モードにおいて、少なくとも１つの第３のメモリ領域が少なくとも２つの実施ユニットに対応づけられている装置が使用される。
【００１９】
好ましくは、メモリ領域がインターラプトコントローラ内に配置されている装置が使用される。
【００２０】
好ましくは、パフォーマンスモードにおいて、各実施ユニットにメモリ領域が対応づけられている、対応づけのみがアクティブである装置が使用される。
【００２１】
好ましくは、パフォーマンスモードにおいて、各実施ユニットにメモリ領域が対応づけられている、対応づけのみがアクティブである装置が使用される。
【００２２】
好ましくは、比較モードにおいて、少なくとも２つの実施ユニットに少なくとも第３のメモリ領域が対応づけられている対応づけのみがアクティブである装置が使用される。
【００２３】
好ましくは、各モードにおいて、対応づけの正確に１つの型のみが、各実施ユニットにアクティブな対応づけの１つによって対応づけられた、正確に１つのメモリ領域を与えるようにアクティブである装置が使用される。
【００２４】
好ましくは、比較モードからパフォーマンスモードへ切り替える場合に、アクティブな対応づけの型が交替する装置が使用される。
【００２５】
好ましくは、比較モードからパフォーマンスモードへ切り替える場合に、アクティブな対応づけの交替がスイッチの操作によって行われる装置が使用される。
【００２６】
好ましくは、対応づけられたメモリ領域の記述が、各モード内で許されていない装置が使用される。
【００２７】
好ましくは、対応づけられたメモリ領域の記述が、対応づけがアクティブであるモードにおいてのみ許されている装置が使用される。
【００２８】
他の利点と好ましい形態が、請求項の特徴および明細書から明らかにされる。
【発明の効果】
【００２９】
以上説明したように本発明によれば、インターラプト源の最適な切替えを可能にする、方法と手段を提供することができる。
【発明を実施するための最良の形態】
【００３０】
以下においては、プロセッサ、コア、ＣＰＵ、ＦＰＵ（Floating Point Unit）、ＤＳＰ（Digitaler Signalprozessor）、コプロセッサあるいはＡＬＵ（Arithmetic Logical Unit）も、実施ユニットと称することができる。
図１には、２つの実施ユニットＧ１０ａ、Ｇ１０ｂ、比較ユニットＧ２０、切替えユニットＧ５０および切替え意図認識ユニットＧ４０を有するマルチプロセッサシステムＧ６０が示されている。
【００３１】
本発明は、少なくとも２つの実施ユニットＧ１０ａ、Ｇ１０ｂ、比較ユニットＧ２０、切替えユニットＧ５０および切替え意図認識ユニットＧ４０を有する、図１、図２、図３に示すマルチプロセッサシステムＧ６０に関する。切替えユニットＧ５０は、少なくとも２つのシステムインターフェイスＧ３０ａ、Ｇ３０ｂへの、少なくとも２つの出力を有している。これらのインターフェイスを介して、レジスタ、メモリまたは、デジタル出力、Ｄ／Ａ変換器、通信コントローラのような周辺機器を駆動することができる。このマルチプロセッサシステムは、少なくとも２つの駆動モード、比較モード（ＶＭ）およびパフォーマンスモード（ＰＭ）で駆動することができる。
【００３２】
パフォーマンスモードにおいては、異なる実施ユニット内で異なる指令、プログラムセグメントまたはプログラムが並列に実施される。この駆動モードにおいては、比較ユニットＧ２０は、非アクティブにされている。切替えユニットＧ５０は、この駆動モードにおいては、各実施ユニットＧ１０ａ、Ｇ１０ｂがシステムインターフェイスＧ３０ａ、Ｇ３０ｂと接続されるように、構成されている。その場合に実施ユニットＧ１０ａがシステムインターフェイスＧ３０ａと、そして実施ユニットＧ１０ｂがシステムインターフェイスＧ３０ｂと接続されている。
【００３３】
比較モードにおいては、２つの実施ユニットＧ１０ａ、Ｇ１０ｂ内で同一または同種の指令、プログラムセグメントまたはプログラムが処理される。これらの指令はクロック同期で処理される方が好ましいが、非同期の、あるいは定められたクロックオフセットを有する処理も考えられる。実施ユニットＧ１０ａ、Ｇ１０ｂの出力信号が、比較ユニットＧ２０内で比較される。異なる場合には、エラーが認識されて、それに応じた措置を講じることができる。この措置は、エラー信号を作動させ、エラー処理を導入し、スイッチを操作し、あるいはこれらと他の考えられる措置との組み合わせであることができる。切替えユニットＧ５０は、この変形例においては、１つの信号のみがシステムインターフェイスＧ３０ａ、Ｇ３０ｂと接続されるように、構成されている。他のコンフィグレーションにおいては、切替えユニットが比較され、従って同一の信号がシステムインターフェイスＧ３０ａ、Ｇ３０ｂと接続されることのみをもたらす。
【００３４】
切替え意図認識ユニットＧ４０は、そのときアクティブなモードに関係なく、他のモードへの切り替え意図を検出する。
【００３５】
図２には、２つの実施ユニットＧ１０ａ、Ｇ１０ｂ、比較ユニットＧ２０と切替えユニットＧ５０からなる、組み合わされた比較・切替えユニットＧ７０および切替え意図認識ユニットＧ４０を有するマルチプロセッサシステムＧ６０が示されている。
【００３６】
上述した状況の実施形態において、切替えユニットＧ５０と比較ユニットＧ２０を、図２に示すように、共通の切替え・比較ユニット（ＵＶＥ）Ｇ７０にまとめることができる。その場合にこの共通のコンポーネントＧ７０は、個別コンポーネントＧ５０、Ｇ２０の課題を引き受ける。図１５、図１６、図１７、図１８および図１９に、ＵＶＥＧ７０の実施変形例が示されている。
【００３７】
図３に示すような、他の実施形態においては、切替え意図認識ユニットＧ４０、比較ユニットＧ２０および切替えユニットＧ５０を、共通のコンポーネントＧ８０にまとめることができる。図には示されていない、他の実施形態においては、切替え意図認識ユニットＧ４０と比較ユニットＧ２０を共通のコンポーネントにまとめることができる。同様に、切替え意図認識ユニットＧ４０を切替えユニットＧ５０と共通のコンポーネントにまとめることが、考えられる。
【００３８】
以下の文章においては、異なる記載がない場合に、切替え意図認識ユニットＧ４０と、組み合わされた切替え・比較ユニットＧ７０が存在すると考える。
【００３９】
切替え・比較コンポーネントの一般的なケースが、２つより多い実施ニットを使用することについても、図２０に示されている。考慮すべきｎ個の実施ユニットから、ｎ個の信号Ｎ１４０、…、Ｎ１４ｎが切替え・比較ユニットＮ１００へ供給される。同ユニットは、これらの入力信号からｎ個までの出力信号Ｎ１６０、…、Ｎ１６ｎを発生させることができる。最も簡単な場合、「純粋なパフォーマンスモード」において、すべての信号Ｎ１４ｉが対応する出力信号Ｎ１６ｉへ導かれる。逆の限界の場合、「純粋な比較モード」においては、すべての信号Ｎ１４０、…、Ｎ１４ｎは、出力信号の正確に１つのＮ１６ｉへ案内される。
【００４０】
この図において、どのようにして種々の考えられるモードが生じることができるか、が示されている。そのために、この図には、切替え論理Ｎ１１０の論理的なコンポーネントが含まれている。このコンポーネントは、専用のコンポーネントとして存在する必要はない。重要なことは、上述した機能がシステム内で実現されていることである。切替え論理Ｎ１１０は、まず、そもそもいくつの出力信号が存在するか、を検出する。さらに切替え論理は、どの入力信号がどの出力信号に寄与するか、を検出する。その場合に１つの入力信号は、正確に１つの出力信号に寄与することができる。従って数学的な形式で異なるように表現すると、切替え論理によって、集合｛Ｎ１４０、…、Ｎ１４ｎ｝の各エレメントに量｛Ｎ１６０、…、Ｎ１６ｎ｝のエレメントを対応づける関数が定められる。
【００４１】
その後、処理論理Ｎ１２０が、出力Ｎ１６ｉの各々について、どのような形式で入力がこの出力信号に寄与するか、を決定する。このコンポーネントも、専用のコンポーネントとして設けられる必要はない。ここでも重要なことは、上述した機能がシステム内で実現されることである。例として種々の変形可能性を説明するために、普遍性を制限することなしに、出力Ｎ１６０が信号Ｎ１４１、…Ｎ１４ｍによって発生される、と仮定する。ｍ＝１の場合には、これは、単純に信号のスルー接続に相当し、ｍ＝２の場合には、たとえば図１３、図１４の比較器内に記載されているように、信号Ｎ１４１、Ｎ１４２が比較される。この比較は、同期または非同期で実施することができ、ビットからビットへ、あるいは有意のビットで、あるいはまた許容帯域をもって、実施することができる。
ｍ＞＝３の場合には、複数の可能性がある。
第１の可能性は、すべての信号を比較し、少なくとも２つの異なる値が存在する場合に、エラーを検出することにあり、そのエラーを選択的に信号で知らせることができる。
第２の可能性は、ｍからｋの選択を行うことにある（ｋ＞ｍ／２）。これは、比較器を使用することによって実現することができる。選択的に、信号の１つが異なっていると認識された場合に、エラー信号を発生させることができる。３つすべての信号が異なっている場合には、場合によってはそれとは異なる信号を発生させることができる。
第３の可能性は、これらの値をアルゴリズムへ供給することにある。これは、たとえば、平均値、中央値の形成、あるいはエラー許容のアルゴリズム（ＦＴＡ）の使用であることができる。この種のＦＴＡは、入力値の極値を捨て去り、残りの値にわたってある種の平均を行うことに基づいている。この平均は、残りの値の全量にわたって、あるいは好ましくはＨＷ内において容易に形成すべき部分量にわたって行うことができる。この場合には、値を実際に比較することは、必ずしも必要ではない。平均値形成の場合には、加算と割り算のみを行えばよく、ＦＴＭ、ＦＴＡまたはメディアンは、部分的な分類を必要とする。場合によっては、ここで極値が十分に大きい場合には、選択的にエラー信号を出力することもできる。
【００４２】
複数の信号を１つの信号に処理するための、上述したこれらの可能性は、短くするために、比較操作と称する。
従って処理論理の課題は、各出力信号について、−それに伴って付属の入力信号についても−比較操作の正確な形を定めることである。切替え論理Ｎ１１０（すなわち上述した機能）と処理論理（すなわち出力信号当たり、すなわち関数値当たりの比較操作の決定）の情報の組み合わせがモード情報であって、それがモードを決定する。この情報は、一般的な場合において、もちろん多値であり、すなわち１つの論理値を示すだけではない。すべての論理的に考えられるモードが、与えられている実装内で有意ではなく、好ましくは許されるモードの数が制限される。強調すべきことは、実施ユニットが２つだけの場合（１つの比較モードだけが生じる）、情報全体を１つの論理値だけに凝縮できることである。
パフォーマンスモードから比較モードへの切替えは、一般的な場合において、パフォーマンスモードにおいては異なる出力へマッピングされる実施ユニットが、比較モードにおいては同一の出力へマッピングされることによって、特徴づけられる。好ましくは、これは、実施ユニットの部分システムが存在し、その部分システムにおいてパフォーマンスモードでは、部分システム内で考慮されるすべての入力信号Ｎ１４ｉが、直接対応する出力信号Ｎ１６ｉへ接続され、比較モードでは、すべてが１つの出力へマッピングされることによって、特徴づけられる。代替的に、この種の切替えを、組み合わせを変化させることによって、実現することもできる。これは、一般的な場合において、本発明の与えられた形態において、許されるモードの量を１つのパフォーマンスモードと１つの比較モードに制限することはできるが、１つのパフォーマンスモードと１つの比較モードを問題にしないことによって、説明される。しかし常に、パフォーマンスモードから比較モードへの（かつその逆の）切替えを問題にすることができる。
これらのモードの間で、ソフトウェアを介して制御することにより、駆動を動的に切り替えることができる。その場合に切替えは、特殊な切替え機能、特殊なインストラクションシーケンス、明確に示されるインストラクションの実施を介して作動されるか、あるいはマルチプロセッサシステムの実施ユニットの少なくとも１つによる所定のアドレスへのアクセスによって作動される。
【００４３】
エラー回路論理Ｎ１３０は、たとえば比較器によって生成されたエラー信号を収集し、選択的に、これをたとえばスイッチを介して遮断することによって、出力Ｎ１６ｉをパッシブに切り替えることができる。
【００４４】
しかし、以下の例は、大体において、多くのコンセプトをより簡単に表す、２つの実施ユニットの場合に向けられている。
【００４５】
モード間の切替えは、種々の方法によってコード化することができる。１つの可能な方法において、特殊な切替え指令が使用され、その切替え指令が切替え意図認識ユニットＧ４０によって検出される。切替えをコード化する他の方法は、特殊なメモリ領域へのアクセスによって定義され、そのアクセスをここでも切替え意図認識ユニットＧ４０が検出する。他の方法は、切替え意図認識ユニットＧ４０内で、切替えを知らせる、外部の信号を評価することである。以下においては、プロセッサのすでにある指令セット内の利用されないビットコンビネーションを用いる方法が説明される。この方法の特別な利点は、すでにある開発環境（アッセンブラ、コンパイラ、リンカー、デバッガ）をさらに使用できることである。
【００４６】
図４には、２つの実施ユニットＧ２１０ａ、Ｇ２１０ｂと切替え・比較ユニットＧ２６０を有するマルチプロセッサシステムＧ２００が示されている。比較モードとパフォーマンスモード（およびその逆）の間で切り替えるために、少なくとも２つの実施ユニットＧ２１０ａ、Ｇ２１０ｂの、アッセンブラ内で定義されないビットコンビネーションが利用される。この意味における定義されない、あるいは未定義のビットコンビネーションとは、指令セットの記述内で未定義またはイリーガルとして記述される、すべてのビットコンビネーションである。これは、たとえばイリーガルオペランド、イリーガルインストラクション、イリーガルオペレーションである。これら未定義のビットコンビネーションの一般的な特徴は、この種のビットコンビネーションを実施した場合に、ノーマルな実施ユニットはエラー信号を発生するか、定義されない行動を示すことである。従ってこれらのビットコンビネーションは、通常のプログラムのセマンティクスを表すために、必要とされない。
【００４７】
従ってソフトウェア開発のために、シングルプロセッサシステムのために存在するような、従来の開発環境を利用することができる。これは、たとえば、マクロ「ＳＷＩＴＣＨ  ＭＯＤＥ  ＴＯ  ＰＭ」とマクロ「ＳＷＩＴＣＨ  ＭＯＤＥ  ＴＯ  ＶＭ」を定義し、それをコード内の適切な箇所で上述した主旨において未定義のビットコンビネーション内へ挿入することによって、実現することができる。
【００４８】
その場合に、このコンビネーションの使用は、一般的な「ＳＷＩＴＣＨ」マクロとして定義される。その場合にこれは、その時のモードに従ってそれぞれ他のモードへの切替えをもたらす。システム内に２つより多い異なるモードが存在している場合に、この方法を使用するためには、もっと多くのこの種のコンビネーションが存在していなければならず、その場合に好ましくは、切替えのためにモード当たり１つを使用することができる。
【００４９】
本発明によれば、切替え意図は、指令セット内の未定義のビットコンビネーションによってコード化される。これは、実施ユニットＧ２１０ａ、Ｇ２１０ｂの内部で通常の方法で処理されてはならない。この理由から、それに応じたビットコンビネーションを認識して、それを以降の処理のためにニュートラルなビットコンビネーションに入れ替える、付加的なパイプライン段階（ＲＥＰＬＡＣＥ段階）Ｇ２３０ａ、Ｇ２３０ｂが提案される。そのために好ましくは、「ＮＯＰ」（No Operation）指令が利用される。ＮＯＰ指令は、実施ユニットの内部状態をインストラクションポインタに至るまで変化させないことを、特徴としている。その場合にＲＥＰＬＡＣＥ段Ｇ２３０ａ、Ｇ２３０ｂは、通常、第１段階、ＦＥＴＣＨ段階Ｇ２２０ａ、Ｇ２２０ｂの後ろかつ残りのパイプライン段階Ｇ２４０ａ、Ｇ２４０ｂ、ここでは１つのユニットにまとめられている、アッセンブラ内では未定義のビットコンビネーションの前に挿入される。
【００５０】
本発明によれば、切替え意図を認識するユニットＧ４０は、パイプラインユニットＧ２１５ａ、Ｇ２１５ｂ内の特殊なパイプライン段階Ｇ２３０ａ、Ｇ２３０ｂとして実装され、それは、切り替えるための該当するビットコンビネーションが認識された場合に、処理モードの切替えが実施されることを別体の切替え・比較ユニットＧ２６０へ知らせる、付加的な信号Ｇ２５０ａ、Ｇ２５０ｂを発生させる。
【００５１】
ＲＥＰ段階Ｇ２３０ａ、Ｇ２３０ｂは、好ましくは、実施ユニットＧ２１０ａ、Ｇ２０１ｂのパイプライン段階Ｇ２１５ａ、Ｇ２１５ｂ内のＦＥＴ段階Ｇ２２０ａ、Ｇ２２０ｂと残りのパイプライン段階Ｇ２４０ａ、２４０ｂの間に配置されている。その場合にＲＥＰ段階Ｇ２３０ａ、Ｇ２３０ｂは、然るべきビットコンビネーションを認識して、この場合にＮＯＰ指令を残りの段階Ｇ２４０ａ、Ｇ２４０ｂへ伝える。同時に、それぞれの信号Ｇ２５０ａ、Ｇ２５０ｂが能動化される。他のすべての場合においては、ＲＥＰ段階Ｇ２３０ａ、Ｇ２３０ｂはニュートラルに行動し、すなわち、他のすべての指令は変更されずに残りの段階Ｇ２４０ａ、Ｇ２４０ｂへ伝えられる。
【００５２】
図５には、特殊なパイプライン段階Ｇ２３０ａ、Ｇ２３０ｂの内部で特殊な未定義のビットコンビネーションをＮＯＰまたは他のニュートラルなビットコンビネーションと交換する方法がフローチャートで示されている。ＦＥＴＣＨ段階Ｇ３００内で、指令すなわちビットコンビネーションがメモリから取り出される。その後ブロックＧ３１０において、取り出したビットコンビネーションが、切替えをコード化する、特殊なビットコンビネーションに相当するか、が判断される。否定の場合には、次のステップＧ３２０において、ビットコンビネーションが変更されずに残りのパイプライン段階Ｇ３４０へさらに処理するために引き渡される。ステップＧ３１０において、切替えをコード化する特殊なビットコンビネーションが認識された場合には、ステップＧ３３０においてこれがＮＯＰビットコンビネーションに代えられて、それがその後さらに処理するために他のパイプライン段階Ｇ３４０へ引き渡される。好ましい実施形態においては、ブロックＧ３１０、Ｇ３２０、Ｇ３３０は、本発明に基づくＲＥＰＬＡＣＥ段階Ｇ２３０ａ、Ｇ２３０ｂの機能性を示し、その場合にこれらは他の機能性を含むこともできる。
【００５３】
図６には、２つの実施ユニットＨ２１０ａ、Ｈ２１０ｂと切替え・比較ユニットＨ２６０を有するマルチプロセッサシステムＨ２００が示されている。コンポーネントＨ２２０ａ、Ｈ２２０ｂ、Ｈ２４０ａ、Ｈ２４０ｂは、Ｇ２２０ａ、Ｇ２２０ｂ、Ｇ２４０ａ、Ｇ２４０ｂと同じ意味を有している。ここに特殊なパイプライン段階Ｈ２３０ａ、Ｈ２３０ｂで記載される、切替え意図認識ユニットＧ４０の代替的な形態において、同ユニットは、切替えを知らせる信号Ｈ２５０ａ、Ｈ２５０ｂの他に、他の信号も有している。パフォーマンスモードから比較モードへ交替する場合に実施ユニットＨ２１０ａ、Ｈ２１０ｂを同期させることができるようにするために、実施ユニットＨ２１０ａ、Ｈ２１０ｂのパイプラインユニットＨ２１５ａ、Ｈ２１５ｂはそれぞれ信号入力Ｈ２８０ａ、Ｈ２８０ｂを有しており、その信号入力によって処理を停止させることができる。この信号は、切替え・比較ユニットＨ２６０によって、最初に切替え指令を認識し、従って信号Ｈ２５０ａ、Ｈ２５０ｂを能動化したパイプラインユニットＨ２１５ａまたはＨ２１５ｂのためにセットされる。実施ユニットＨ２１０ａ、Ｈ２１０ｂの２つのパイプラインユニットＨ２１５ａ、Ｈ２１５ｂが切替え指令を認識して、ソフトウェアあるいは他のハードウェア措置によってその内部の状態を同期化した場合に初めて、この信号Ｈ２８０ａ、Ｈ２８０ｂが再び撤回される。比較モードからパフォーマンスモードへ交替する場合には、同期化が必要とされないので、Ｈ２８０ａ、Ｈ２８０ｂは不要である。
【００５４】
ここに記載された提案のための前提は、各実施ユニットがその個別のナンバーまたはユニットＩＤを求めることができる、ユニット（ＩＤユニットと称される）または方法である。２つの実施ユニットを有するシステムにおいては、たとえば一方の実施ユニットは自らのためにナンバー０を、他方はナンバー１を求めることができる。２つより多い実施ユニットを有するシステムにおいては、ナンバーはそれに応じて与えられ、あるいは求められる。このＩＤは、比較モードとパフォーマンスモードを区別せず、実施ユニットを一義的に表す。ＩＤユニットは、それぞれの実施ユニット内に含めることができ、たとえばプロセッサステータスレジスタ内にビットまたはビットコンビネーションとして、あるいは専用のレジスタとして、あるいはまた個々のビットとして、または実施ユニットに対して外部のユニットとして実装され、照会に応じて該当するＩＤを供給する。
【００５５】
実施ユニットが切替え意図に応じてパフォーマンスモードへの切替えを実施した後に、比較ユニットはもはやアクティブではないが、実施ユニットはまだ同一の指令を実施する。これは、プログラム内で実施作業が次のステップにおいて作業し、ないしは目下作業している箇所を示す、インストラクションポインタが、切替えに影響を受けないことによるものである。実施ユニットが次に異なるＳＷモジュールを実施することができるようにするためには、実施ユニットのプログラムシーケンスが分離されなければならない。従ってこの事実に従って、インストラクションポインタは、パフォーマンスモードにおいては通常様々な値を有する。というのは、それぞれ本発明に従って独立した指令、プログラムセグメントまたはプログラムが処理されるからである。プログラムフローの分離は、ここで説明する提案においては、それぞれの実施ユニットナンバーを求めることによって行われる。それぞれ実施ユニットがどのＩＤを有しているかに従って、実施ユニットは所定のソフトウェアモジュールを実施する。各実施ユニットは個別のナンバーまたはＩＤを有しているので、それによって関与する実施ユニットのプログラムフローを確実に分離することができる。
【００５６】
図７には、２つの実施ユニットを有するマルチプロセッサシステム内で比較モードからパフォーマンスモードへ交替する際にユニットＩＤを用いてプログラムフローをどのように分離することができるか、という方法がフローチャートで示されている。比較モードからパフォーマンスモードへの切替えＧ５００を実施した後に、２つの実施ユニットによるユニットＩＤまたは実施ユニットナンバーの照会Ｇ５１０が行われる。その場合に本発明によれば、実施ユニット０は実施ユニットナンバー０を得て、実施ユニット１は実施ユニットナンバー１を得る。Ｇ５１０において、求められた実施ユニットナンバーとナンバー０との比較が行われる。それらが等しい場合には、ステップＧ５２０において、この比較について肯定された実施ユニットが、実施ユニット０のためのコードで進む。この比較について肯定されなかった実施ユニットは、Ｇ５３０においてナンバー１との比較を続行する。この比較が肯定された場合に、Ｇ５４０において実施ユニット１のためのコードで続行される。従ってこの比較が肯定されなかった場合には、それに応じた実施ユニットについて、０および１と等しくない実施ユニットナンバーが求められる。これは、エラーである場合を示し、Ｇ５５０へ進む。
【００５７】
図８には、３つの実施ユニットのための可能な方法が説明されている。Ｈ５００で比較モードからパフォーマンスモードへの切替えを実施した後に、実施ユニットによりユニットＩＤまたは実施ユニットナンバーの照会Ｈ５１０が行われる。その場合に本発明によれば、たとえば、実施ユニット０は実施ユニットナンバー０を得て、実施ユニット１は実施ユニットナンバー１を得て、そして実施ユニット２は実施ユニットナンバー２を得る。Ｈ５１０において、求められた実施ユニットナンバーとナンバー０との比較が行われる。それらが等しい場合には、ステップＨ５２０において、この比較が肯定された実施ユニットが、実施ユニット０のためのコードを続行する。この比較が肯定されなかった実施ユニットは、Ｈ５３０においてナンバー１との比較を実施する。この比較が肯定された実施ユニット内では、Ｈ５４０において実施ユニット１のためのコードが実施される。この比較が肯定されなかった実施ユニットは、Ｈ５３５でナンバー２との比較を続行する。この比較が肯定された実施ユニットは、Ｈ５３６で実施ユニット２のためのコードを続行する。従って、この比較が肯定されない場合には、それに応じた実施ユニットについては、０、１および２に等しくない実施ユニットナンバーが求められる。これは、エラーである場合を示し、Ｈ５５０へ進む。ナンバーと比較する代りに、求められた実施ユニットナンバーを、直接ジャンプテーブルへのインデックスとして使用することもできる。
【００５８】
この説明に従って、この方法を３つより多い実施ユニットを有するマルチプロセッサシステムにも適用することができる。
【００５９】
パフォーマンスモードから比較モードへ切り替える場合には、複数の事柄に注意しなければならない。パフォーマンスモードから比較モードへ切り替える場合には、実施ユニットの内部の状態が切替え後に同種であることが保証されなければならず、そうでない場合には比較モードにおいて、異なるスタート状態が異なる出力をもたらす場合に、場合によってはエラーが認識されてしまう。これは、ハードウェアを介して、ソフトウェアを介して、ファームウェアを介して、あるいはこれら３つのすべての組み合わせにおいて、実施することができる。そのための前提は、比較モードへの切替え後に、すべての実施ユニットが同一または同種の指令、プログラムまたはプログラムセグメントを実施することである。以下において、比較モードが、同一の指令が処理されて、ビットにおいて正確な比較が実施されることによって特徴づけられる場合に適用することのできる、同期化方法を説明する。
【００６０】
図９には、パフォーマンスモードから比較モードへ切り替える場合に実施ユニットを同期させる方法がフローチャートで示されている。ステップＧ６００において、好ましくはすべてのインターラプトが阻止される。これは、インターラプトコントローラが比較モードのためにそれに応じて再プログラミングされなければならないために重要であるだけではない。ソフトウェアによって実施ユニットの内部の状態も一致されなければならない。しかし比較モードへの切替えの準備の間にインターラプトが作動された場合には、もはや一致は容易には可能でなくなる。
【００６１】
ステップＧ６１０：２つの実施ユニットが別々のキャッシュを有している場合には、比較モードにおいてあるアドレスについて、一方の実施ユニットについてキャッシュヒットが生じ、他方の実施ユニットについてはキャッシュミスが生じるのを防止するために、切替え前にキャッシュの内容も一致されなければならない。これが、キャッシュハードウェアによって自動的に実施されない場合には、これは、たとえば、すべてのキャッシュラインを無効とマーキングすることによってもたらされる。１つまたは複数のキャッシュが完全に無効になるまでの間、待機しなければならない。これは、必要な場合には、プログラムコード内の待機ループによって保証される。これは、他の手段によって達成することも可能であって、重要なことは、このステップ後にキャッシュが同一の状態にあることである。
【００６２】
ステップＧ６２０において、実施ユニットの書込みバッファが空にされ、それによって切替え後に、さらにパフォーマンスモードからもたらされる、実施ユニットの能動化が行われないようにする。
【００６３】
ステップＧ６３０において、実施ユニットのパイプライン段階の状態が同期化される。そのために、たとえば切替えシーケンス／切替え指令の前に適当な数のＮＯＰ（No Operation）指令が実施される。ＮＯＰ指令の数は、パイプライン段階の数に従って定められ、従ってそれぞれのアーキテクチャに依存する。どの指令がＮＯＰ指令として適しているかは、同様にアーキテクチャに依存している。その場合に実施ユニットがインストラクションキャッシュを有している場合には、この指令シーケンスがキャッシュラインの境界に整合されていること（アライメント）が、保証されなければならない。インストラクションキャッシュは、これらのＮＯＰの実施前に無効としてマークされているので、これらのＮＯＰは最初にキャッシュへロードされなければならない。この指令シーケンスがキャッシュライン境界で開始される場合には、切り替えるための指令が行われる前に、メモリ（たとえばＲＡＭ／ＲＯＭ／フラッシュ）からキャッシュへのデータ転送が終了している。これも、ＮＯＰの必要な数を定める場合に考慮されなければならない。
【００６４】
ステップＧ６４０において、比較モードへ切り替えるための指令ステップが、実際に実施される。
【００６５】
ステップＧ６５０において、各実施ユニットのそれぞれのレジスタファイルの内容が一致される。そのために、レジスタには切替えの前または後に、同一の内容がロードされる。その場合に重要なことは、切替え後に実施ユニット内のレジスタの内容が、レジスタ内容が外部へ転送されて、それによって比較ユニットにより比較される前に、同一であることである。
【００６６】
ステップＧ６６０において、インターラプトコントローラが再プログラミングされるので、互いに接続されているすべての実施ユニットにおいて外部のインターラプト信号が同一のインターラプトを作動させる。
【００６７】
ステップＧ６７０において、インターラプトが再び許可される。
【００６８】
プログラムシーケンスによって、いつ比較モードへ切り替えられるべきかが一義的でない場合に、関与する実施ユニットは意図される切替えについて知らされなければならない。そのために好ましくは、それぞれの実施ユニットに属するインターラプトコントローラ内で、たとえばＳＷを介してインターラプトが開始される。その場合にインターラプト処理は、互いに接続するための上述したシーケンスの実施を促す。
【００６９】
図１０には、パフォーマンスモードと比較モード（およびその逆）の間の切替えを表す、状態オートマトンが示されている。「パワーオン」またはリセット（ソフトウェアまたはハードウェア）によってもたらされる、システムスタートの際に、システムは遷移Ｇ８００を介して状態Ｇ７００へ遷移される。一般的に言えることは、システムは、リセットを作動させることができる、未定義の事象の後に、常に状態Ｇ７００で作動し始めることである。リセットを作動させることができる事象の例は、外部の信号、電圧供給における問題、あるいはそれ以降の作業をもはや無意味なものにする、内部のエラー事象である。従って、パフォーマンスモードにおいて処理される、切替え・比較ユニットＧ７０とそしてまたマルチプロセッサシステムＧ６０の状態Ｇ７００は、システムのデフォルト状態である。この種の未定義の状態をとる、すべての場合において、デフォルト状態Ｇ７００が取られる。その場合に状態Ｇ７００のこのデフォルト位置は、ハードウェア措置によって保証される。たとえば、システム状態ないし切替え・比較ユニットＧ６０の状態は、レジスタ内、レジスタ内のビット内、レジスタ内のビットコンビネーションによって、あるいはフリップフロップによって、コード化することができる。
その場合にハードウェアを介して、リセットまたはパワーオン後に常に状態Ｇ７００がとられることが保証される。これは、たとえばリセット信号または「パワーオン」信号がフリップフロップまたはレジスタのリセット入力またはセット入力へ案内されることによって保証される。
【００７０】
状態Ｇ７００において、システムはパフォーマンスモードで作動する。従って実施ユニットＧ１０ａ、Ｇ１０ｂは、異なる指令、プログラムまたはプログラムセグメントを処理する。切替え意図は、たとえば、実施ユニットＧ１０ａ、Ｇ１０ｂが特殊な切替え指令を実施することによって、認識することができる。他の可能性は、特殊なメモリアドレスへのアクセスによって、内部の信号によって、あるいはまた外部の信号によって、認識することである。切替え意図が存在しない間、マルチプロセッサシステムＧ６０とそれに伴って切替え・比較ユニットＧ７０も状態Ｇ７００に留まる。以下においては、この特殊なシステムにおいて切替え意図を特徴づけるような特徴を有する切替え条件の認識を、切替え意図と称する。
状態Ｇ７００に留まることは、遷移Ｇ８００を介して示される。実施ユニットＧ１０ａによって切替え意図が認識された場合に、遷移Ｇ８２０を介して切替え・比較ユニットＧ７０が状態Ｇ７１０へ遷移される。従って状態Ｇ７１０は、実施ユニットＧ１０ａが切替え意図を認識して、実施ユニットＧ１０ｂも同様に切替え意図を認識するまで待機する状況を示している。そうならない間、切替え・比較ユニットＧ７０は状態Ｇ７１０に留まり、それが遷移Ｇ８３０で示されている。
遷移Ｇ８４０は、状態Ｇ７１０において実施ユニットＧ１０ｂが同様に切替え意図を認識した場合に、行われる。従って切替え・比較ユニットＧ７０は、状態Ｇ７３０をとる。この状態は、２つの実施ユニットＧ１０ａ、Ｇ１０ｂが切替え意図を認識した状況を示している。状態Ｇ７３０において、同期化方法が行われ、それによって２つの実施ユニットＧ１０ａ、Ｇ１０ｂが互いに対して同期され、それによってその後比較モードで作動することができる。このプロセスの間、切替え・比較ユニットＧ７０は状態Ｇ７３０内に留まり、それが遷移Ｇ８９０で示されている。
状態Ｇ７００において、まず実施ユニットＧ１０ｂによって切替え意図が認識された場合には、遷移Ｇ８６０を介して状態Ｇ７２０へ切り替えられる。従って状態Ｇ７２０は、実施ユニットＧ１０ｂが切替え意図を認識して、実施ユニットＧ１０ａが同様に切替え意図を認識するまで待機する状況を表している。これが起こらない間、切替え・比較ユニットＧ７０は状態Ｇ７２０に留まり、それが遷移Ｇ８７０で示されている。遷移Ｇ８８０は、状態Ｇ７２０において実施ユニットＧ１０ａが同様に切替え意図を認識した場合に行われる。従って切替え・比較ユニットは、状態Ｇ７３０をとる。
【００７１】
状態Ｇ７００において、２つの実施ユニットＧ１０ａ、Ｇ１０ｂが同時に切替え意図を認識した場合には、即座に状態Ｇ７３０へ遷移する。この場合が、遷移Ｇ８５０を表している。
切替え・比較ユニットＧ７０が状態Ｇ７３０にある場合に、２つの実施ユニットＧ１０ａ、Ｇ１０ｂは切替え意図を認識している。この状態において、実施ユニットＧ１０ａ、Ｇ１０ｂの内部状態は、この同期化プロセスの終了後に比較モードで作動するために、同期化される。この同期化作業の終了後に、遷移Ｇ９００が行われる。この遷移は、同期化の終了を表している。状態Ｇ７４０において、実施ユニットＧ１０ａ、Ｇ１０ｂは比較モードで作動する。同期化作業の終了は、実施ユニットＧ１０ａ、Ｇ１０ｂ自体によって信号化することができる。これは、２つの実施ユニットＧ１０ａ、Ｇ１０ｂが、比較モードで作業する準備ができていることを、信号化した場合に遷移Ｇ９００が行われることを意味している。終了は、固定的に調節された時間を介して信号化することもできる。これは、切替え・比較ユニットＧ７０内で、状態Ｇ７３０にどのくらいの長さ留まるかが固定的にコード化されていることを意味している。この時間は、２つの実施ユニットＧ１０ａ、Ｇ１０ｂがその同期化作業を確実に終了しているように調節される。その場合に、この時間の経過後に、遷移Ｇ９００が開始される。他の変形例においては、切替え・比較ユニットＧ７０が実施ユニットＧ１０ａ、Ｇ１０ｂの状態を監視して、２つの実施ユニットＧ１０ａ、Ｇ１０ｂがその同期化作業を終了した場合に、自分で認識することができる。その場合に、認識後に、移行Ｇ９００が導入される。
【００７２】
切替え意図が認識されない間、遷移Ｇ９１０で示すように、マルチプロセッサシステムＧ６０は比較モードに留まる。状態Ｇ７４０において、切替え意図が認識された場合に、切替え・比較ユニットは遷移Ｇ９２０を介して状態Ｇ７００へ遷移される。すでに説明したように、システムは状態Ｇ７００において、パフォーマンスモードで作業する。その場合に、状態Ｇ７４０から状態Ｇ７００へ遷移する際のプログラムフローの分離は、上述した方法で実施することができる。
【００７３】
図１１には、２つの実施ユニットＧ４１０ａ、Ｇ４１０ｂと２つのインターラプトコントローラＧ４２０ａ、Ｇ４２０ｂおよびその中に含まれるインターラプトマスキングレジスタＧ４３０ａ、Ｇ４３０ｂ並びに種々のインターラプト源Ｇ４４０ａからＧ４４０ｎを有するマルチプロセッサシステムＧ４００が示されている。さらに、特殊なインターラプトマスキングレジスタＧ４６０を有する切替え・比較ユニットＧ４５０が示されている。
【００７４】
好ましくは、各実施ユニットＧ４１０ａ、Ｇ４１０ｂは、パフォーマンスモードにおいて同時に２つのインターラプトを処理することができるようにするために、専用のインターラプトコントローラＧ４２０ａ、Ｇ４２０ｂを有している。これは特に、システムパフォーマンスにおいてインターラプト処理がボトルネックとなるようなシステムにおいて効果的である。その場合にインターラプト源Ｇ４４０ａからＧ４４０ｎは、好ましくは２つのインターラプトコントローラＧ４２０ａ、Ｇ４２０ｂにそれぞれ等しく接続されている。この接続方法は、他の措置なしで２つの実施ユニットＧ４１０ａ、Ｇ４１０ｂにおいて同じインターラプトが作動されることをもたらす。パフォーマンスモードにおいては、インターラプトコントローラＧ４２０ａ、Ｇ４２０ｂは、該当するインターラプト源Ｇ４４０ａからＧ４４０ｎがそれぞれ適用に応じて異なる実施ユニットＧ４１０ａ、Ｇ４１０ｂへ適切に分割されるように、プログラミングされる。これは、インターラプトマスキングレジスタＧ４３０ａ、Ｇ４３０ｂの適切なプログラミングによって行われる。マスキングレジスタは、各インターラプト源Ｇ４４０ａからＧ４４０ｎのために、レジスタ内に１ビットを設けている。このビットがセットされている場合に、インターラプトは阻止され、従って接続されている実施ユニットＧ４１０ａ、Ｇ４１０ｂへは伝えられない。好ましくは、パフォーマンスモードにおいて、与えられているインターラプト源Ｇ４４０ａからＧ４４０ｎが正確に１つの実施ユニットＧ４１０ａまたはＧ４１０ｂによって処理される。好ましくは、これは、少なくともインターラプト源の幾つかについて当てはまる。それによって、インターラプトネスティング（第１のインターラプト処理が第２のインターラプト処理によって中断される）またはインターラプトペンディング（第２の処理は、第１の処理が終了するまで、保留される）が行われることなしに、複数のインターラプト源Ｇ４４０ａからＧ４４０ｎを同時に処理することができる。
【００７５】
比較モードにおいては、インターラプトコントローラＧ４２０ａ、Ｇ４２０ｂがすべての実施ユニットＧ４１０ａ、Ｇ４１０ｂにおいて同時に同一のインターラプトを作動させることが、保証されなければならず、そうでない場合には比較モードにおいて、それに応じてエラーが認識されてしまう。これは、パフォーマンスモードから比較モードへ切り替える際の同期化相において、インターラプトマスキングレジスタＧ４３０ａ、Ｇ４３０ｂが同一であることが保証されなければならないことを意味している。この同期化が、図９のステップＧ６６０に記載されている。この同期化は、２つのインターラプトマスキングレジスタＧ４３０ａ、Ｇ４３０ｂが然るべく同一の値でプログラミングされることにより、ソフトウェアを介して実施することができる。切替えプロセスを促進するために、特殊なレジスタＧ４６０を使用することが提案される。ある実施形態においては、このレジスタＧ４６０は切替え・比較ユニットＧ４６０内に配置されているが、切替え意図認識Ｇ４０内、組み合わされた切替え意図認識内、比較器内、切替えユニットＧ８０内およびすべての組み合わせ内に含めることもできる。同様に、このレジスタをこれら３つのコンポーネントの外部の他の適切な箇所に配置することも、考えられる。レジスタＧ４６０は、比較モードにおいて有効になる、インターラプトマスキングを有している。切替え・比較ユニットＧ４５０は、切替え意図認識Ｇ４０から、パフォーマンスモードから比較モードへ切り替えるための信号を受け取る。ステップＧ６００においてインターラプトが阻止することができた後に、インターラプトコントローラＧ４２０ａ、Ｇ４２０ｂのインターラプトマスキングレジスタＧ４３０ａ、Ｇ４３０ｂが再プログラミングされる。これは、切替え信号が得られ、かつインターラプトコントローラＧ４２０ａ、Ｇ４２０ｂが遮断された後に、ハードウェアを介して切替え・比較ユニットＧ４５０によって残りの同期化ステップに対して並列に実施される。好ましくはインターラプトマスキングレジスタＧ４３０ａ、Ｇ４３０ｂは比較モードにおいて個々に再プログラミングされるのではなく、常に中央のレジスタＧ４６０が再プログラミングされる。これが、その後ハードウェアを介して同期されて２つのインターラプトマスキングレジスタＧ４３０ａ、Ｇ４３０ｂへ伝達される。ここでインターラプトマスキングレジスタについて説明された方法は、同様に、インターラプトコントローラ内に配置されているすべてのインターラプトステータスレジスタに移し替えることができる。もちろん、レジスタＧ４６０の代りに他のメモリ媒体を使用することも考えられ、そのメモリ媒体からできるだけ迅速にインターラプトマスキングレジスタＧ４３０ａ、Ｇ４３０ｂへ転送することができる。
【００７６】
図１２には、２つの実施ユニットＧ１０１０ａ、Ｇ１０１０ｂ、切替え・比較ユニットＧ１０２０および３つの異なるレジスタセットＧ１０４０ａ、Ｇ１０４０ｂ、Ｇ１０５０を備えたインターラプトコントローラＧ１０３０を有するマルチプロセッサシステムＧ１０００が示されている。上述した解決の代替案として、図１２に示すような、特殊なインターラプトコントローラＧ１０３０が提案される。これは、２つの実施ユニットＧ１０１０ａ、Ｇ１０１０ｂと、比較モードとパフォーマンスモードとの間で切り替えることのできる切替え・比較ユニットＧ１０１０を有する例で示されている、マルチプロセッサシステムＧ１０００内で使用される。その場合にパフォーマンスモードにおいては、レジスタセットＧ１０４０ａ、Ｇ１０４０ｂが使用される。この場合において、インターラプトコントローラＧ１０３０は、２つのインターラプトコントローラＧ４２０ａ、Ｇ４２０ｂと全く同様に作動する。この行動が、図１１に示され、かつ説明されている。その場合にレジスタセットＧ１０４０ａが実施ユニットＧ１０１０ａに対応づけられ、レジスタセットＧ１０４０ｂは実施ユニットＧ１０１０ｂに対応づけられている。インターラプト源Ｇ１０６０ａからＧ１０６０ｎは、マスキングを介して実施ユニットＧ１０１０ａ、Ｇ１０１０ｂへ適切に分配される。パフォーマンスモードから比較モードへ切り替える場合に、切替え・比較ユニットＧ１０２０は信号Ｇ１０７０を発生する。この信号がインターラプトコントローラＧ１０３０に、比較モードへ切り替えること、ないしはシステムがこの時点から比較モードで作動することを伝える。その後、インターラプトコントローラＧ１０３０は、レジスタセットＧ１０５０を使用する。それによって、２つの実施ユニットＧ１０１０ａ、Ｇ１０１０ｂにおいて同一のインターラプト信号が発生することが保証される。切替え・比較ユニットＧ１０２０が再び信号Ｇ１０７０を介してインターラプトコントローラＧ１０３０へ伝達する、比較モードからパフォーマンスモードへの切替えによって、再びレジスタセットＧ１０４０ａ、Ｇ１０４０ｂへ切り替えられる。それによって好ましくは、パフォーマンスモードにおいてはレジスタセットＧ１０４０ａ、Ｇ１０４０ｂへの書込みのみが許され、比較モードのために保留されているレジスタセットＧ１０５０への書込みはハードウェアを介して禁止されることによって、該当するレジスタセットの保護も達成することができる。同じことが他の方向においても可能であって、比較モードにおいてはレジスタセットＧ１０５０への書込みのみが許されており、レジスタセットＧ１０４０ａ、Ｇ１０４０ｂへの書込みは禁止される。
【００７７】
図１３には、比較器Ｍ５００、Ｇ２０の最も簡単な形式が示されている。パフォーマンスモードと比較モードの間の切替えを行う、少なくとも２つの実施ユニットＧ１０ａ、Ｇ１０ｂを備えたマルチプロセッサシステムＧ６０内の主要なコンポーネントは、比較器Ｍ５００である。その比較器の最も簡単な形式が、図１３に示されている。比較器Ｍ５００は、２つの入力信号Ｍ５１０とＭ５１１を受け取ることができる。比較器は、それらを同一性について、ここに示す文脈においては、好ましくはビット単位の同一性の意味において、比較する。同一である場合には、入力信号Ｍ５１０、Ｍ５１１の値が出力信号Ｍ５２０へ出力され、エラー信号Ｍ５３０はアクティブにならず、すなわち「良好」状態が知らされる。比較器が非同一性を検出した場合には、エラー信号Ｍ５３０が能動化される。その場合に信号Ｍ５２０は、選択的に非能動化することができる。これは、エラーが該当するシステムから出て行かない（"fault containment"）、という利点を有している。すなわち、実施ユニットの外部にある他のコンポーネントが、潜在的にエラーのある信号によって損なわれない。しかし、信号Ｍ５２０を非能動化する必要のないシステムもある。これは、たとえば、システム平面上でフェイルサイレンス（Fail-silence）のみが要求される場合である。その場合に、エラー信号は、たとえば外部へ案内することができる。
【００７８】
この基本システムに基づいて、多数の実施形態が考えられる。まず、コンポーネントＭ５００を、いわゆるＴＳＣコンポーネント（totally self checking）として形成することができる。この場合においてエラー信号Ｍ５３０は、少なくとも２本の導線（"dual
rail"）上で外部へ案内され、内部のデザインおよびエラー発見措置によって、比較コンポーネントの各可能なエラー場合においてこの信号が正しく、あるいは認識可能に正しくなく存在することが、保証される。その場合にデュアルレール信号は、２本の導線を介してバイナリ信号を、好ましくはエラーのない場合において２本の導線が互いに反転されているように、提供する。本発明に基づくシステムの利用における好ましい変形例は、この種のＴＳＣ比較器を使用することである。
それに対して実施形態の第２のクラスは、２つの入力Ｍ５１０、Ｍ５１１（ないしＭ６１０、Ｍ６１１）がどの程度の同期性を持たなければならないかについて、区別することができる。可能な実施形態は、クロック単位の同期性を特徴としており、すなわちデータの比較はクロックで実施することができる。
【００７９】
簡単な変更は、入力の間の位相オフセットが固定されている場合に、該当する信号を半整数または整数のクロック周期だけ遅延させる、同期した遅延素子が使用されることによって、生じる。この種の位相オフセットは、コモンコーズエラー（common cause Fehler）、すなわち複数の処理ユニットに同時かつ同種に影響を与える可能性のあるエラー原因を回避するために役立つ。
【００８０】
従って図１４は、他の実施形態を示している。コンポーネントと信号Ｍ６００、Ｍ６１０、Ｍ６１１、Ｍ６２０、Ｍ６３０は、図１３の対応するコンポーネントおよび信号Ｍ５００、Ｍ５１０、Ｍ５１１、Ｍ５２０、Ｍ５３０と同一の意味を有している。従って図１４においては、これらのコンポーネントの他に、時間的に早い入力を位相オフセットだけ遅延させる、コンポーネントＭ６４０が挿入されている。好ましくはこの遅延素子は、それを比較モードにおいてだけ使用するために、比較器内に収容されている。その代りに、あるいはそれに加えて、純粋なクロックオフセットまたは位相オフセットとしては現れない、この種の非同期性を同様に許容することができるようにするために、中間バッファＭ６５０、Ｍ６５１を入力チェーン内へ挿入することができる。好ましくはこれらの中間バッファは、ＦＩＦＯメモリ（first-in, first out）として設計される。この種のメモリは、入力と出力とを有し、複数のメモリワードを記憶することができる。入ってくるメモリワードは、新しいメモリワードが到着した場合に、その位置をシフトされる。最後の位置（バッファの深さ）の後に、それが「メモリから」押し出される。この種のバッファが存在する場合には、バッファの最大の深さまで非同期性も許容することができる。この場合には、バッファがオーバーフローした場合にも、エラー信号が出力されなければならない。
【００８１】
さらに、比較器の実施形態において、信号Ｍ５２０（またはＭ６２０）がどのように生成されるかに従って区別することができる。好ましい実施形態は、入力信号Ｍ５１０、Ｍ５１１（ないしＭ６１０、Ｍ６１１）を出力へ送り、接続をスイッチによって中断可能に形成することである。この実施形態の特別な利点は、パフォーマンスモードと可能な種々の比較モードとの間で切り替えるために、同一のスイッチを使用できることである。代替的に、信号を比較器内部の中間バッファから生成することもできる。
【００８２】
実施形態の最後のクラスは、比較器に幾つの入力が存在しているか、そしてどのように比較器が反応すべきか、に従って区別することができる。入力が３つの場合に、多数決、３つの信号すべての比較あるいは２つの信号だけの比較を行うことができる。入力が４つ以上の場合には、それに応じた数の実施形態が考えられる。可能な実施形態の詳細な説明は、図２０の説明に含まれている。
【００８３】
実施形態の正確な選択は、好ましくはシステム全体の種々の駆動モードと結合される。すなわち、複数の異なるパフォーマンスモードまたは比較モードが存在する場合に、これらが好ましくは比較器のそれに応じたモードと結合される。
【００８４】
本発明の幾つかの箇所において、比較器またはより一般的な評価／処理／分類素子を非作動あるいはパッシブにすることが必要であり、あるいは好ましい（以下においては簡単にするために、常に比較器と称する）。そのために多数の可能性がある。１つには、比較器に、比較器を能動化し、あるいは非能動化する信号を案内することができる。そのために比較器内に、それを実施することができる、付加的な論理が挿入される。第２の可能性は、比較器に比較すべきデータを供給しないことである。第３の可能性は、システム平面上で比較器のエラー信号を無視することである。さらに、エラー信号自体を遮断することができる。すべての可能性に共通なのは、システム内で、潜在的に比較される２つまたはそれより多いデータが異なっていることが、何の役割も果たさないことである。そうである場合に、比較器はパッシブであり、あるいは非能動化されたとみなされる。
【００８５】
以下において、比較器と組み合わされた切替え器、すなわち切替え・比較ユニットＧ７０の実装を考える。この実装は、これが実施ユニットＧ１０ａ、Ｇ１０ｂと共にチップの内部に形成される場合に、特に効果的である。
【００８６】
コンポーネントである比較器と切替え器をまとめることによって、チップ内部に実装する場合に極めて小さいハードウェアオーバーヘッドしか生じない。従って実装の好ましい変形例は、これら２つのコンポーネントを１つのコンポーネントにまとめることである。これは、少なくとも入力信号（出力実施ユニット１、出力実施ユニット２）、少なくとも出力信号（出力１、出力２）、論理出力信号「出力全体」（物理的に出力１または出力２と一致することができる）および比較器を有するコンポーネントである。このコンポーネントは、モードを切り替え、パフォーマンスモードにおいてすべての信号を通過させ、比較モードにおいては複数の信号を比較して、場合によっては通過させる能力を有している。付加的に、さらに他の入力および出力信号も効果的である：検出されたエラーを知らせるエラー信号、このコンポーネントがあるモードを知らせるモード信号およびコンポーネントから、あるいはコンポーネントへの制御信号。
【００８７】
好ましい実施例において、２つまたはそれより多い実施ユニットがパフォーマンスモードにおいてマスターとしてプロセッサ内部のバスに接続されている。比較ユニットは非能動化されており、あるいはまた、考えられる比較モードの１つにおいて実施ユニットの行動が異なっている場合に発生するエラー信号がマスキングされている。これは、切替え・比較ユニットがソフトウェアにとって透明であることを意味している。考察される比較モードにおいて、比較すべき物理的な実施ユニットが論理的な実施ユニットとしてバスで処理され、すなわちマスターのみがバスに現れる。比較器のエラー信号は、能動化されている。そのために切替え・比較ユニットは、１つの実施ユニットを除いてすべての実施ユニットを、スイッチを介してプロセッサ内部のバスから分離し、１つの論理的な実施ユニットの入力を複製し、これを比較モードに関与するすべての実施ユニットに提供する。バスへ書き込む際に、出力が比較ユニット内で比較されて、等しい場合にはこのデータが設けられているアクセスを介してバスへ書き込まれる。
【００８８】
図１５と図１６には、好ましいコンポーネントＭ７００（切替え・比較ユニットＧ７０に相当）の原理的な行動が記載されている。簡単にするために、この図は、２つの実施ユニットについてだけ示されている。その場合に図１５はコンポーネントのステータスを比較モードにおいて、図１６はパフォーマンスモードにおいて示している。これらのモードにおける種々のスイッチ位置が、Ｍ７００によって駆動Ｍ７６０により実現される。２つの実施ユニットＭ７３０、Ｍ７３１は、まず、パフォーマンスモードにおいて、図１６に示すように、スイッチＭ７５０、Ｍ７５１が閉成されている場合に、データおよびアドレスバスＭ７１０へ書き込むことができる。万一、書込み競合が起きた場合は、バスプロトコルを介して、あるいは他の記入されていないコンポーネントによって解決されることが、前提である。比較モードにおいては、少なくとも論理的な視点から、行動が異なる。その場合に図１５に示すように、スイッチＭ７５０、Ｍ７５１は開放されており、従って直接のアクセス可能性は中断されている。その場合に図１６とは異なり、図１５においては、もちろんスイッチＭ７５２、Ｍ７５３は閉成されている。実施ユニットＭ７３０、Ｍ７３１の信号Ｍ７４０、Ｍ７４１が、比較コンポーネントＭ７２０へ案内される。この比較コンポーネントは、少なくとも図１３に示すように構成されているが、図１４に示すように拡張を有することもできる。しかし、比較コンポーネントＭ７２０のエラー信号または他の信号の表示は、図１５と図１６内では省かれている。２つの信号が一致した場合には、スイッチＭ７５４が閉成されて、その後２つの一致する信号の１つがアドレス／データバスＭ７１０へ伝えられる。要するにそのためには、切替え・比較ユニットＭ７００がスイッチＭ７５０−Ｍ７５４を調節できることが必要である。それぞれのスイッチ位置は、モードおよびエラー認識に依存している。これをもって、スイッチＭ７５４が常に閉鎖されており、かつエラー信号によって適切なシステムリアクションが発生される変形例も、これをもってカバーされる。
【００８９】
図１７には、切替え・比較ユニットの変形例が図示されている。２つだけの実施ユニットＧ１０ａ、Ｇ１０ｂを有する簡単なシステムについてもすでに、切替え・比較ユニットの実装の多数の変形例が存在する。比較器内でバッファが使用されない場合に特に好ましい他の変形例が、図１７に示されている。図１５、図１６におけるものと同様に、実施ユニットの信号Ｍ８４０、Ｍ８４１がある。実施ユニットは、この図には示されていない。本発明に基づくコンポーネントＭ８００内には、コンポーネントのモードを設定するモード論理Ｍ８１０が設けられている。パフォーマンスモードにおいてモード論理がスイッチＭ８３１を閉成し、比較モードにおいてはそれを開放する。さらに、モード論理は比較器Ｍ８２０へモード信号を出力する。この比較器は、この実装においては常に比較するが、スイッチＭ８３０を駆動するために、比較の結果とモード信号とを利用する。パフォーマンスモードにおいては、スイッチは常に閉成されているが、比較モードにおいては、エラーが存在しない場合に常に閉成される。もちろん、一度エラーが検出された場合には、それに応じたリセットが来るまで、スイッチはさらに開放したままにすることができる。
【００９０】
図１８には、切替え・比較ユニットの他の実施形態が示されている。この代替案は、より多くのスイッチを有するが、その代わりに比較器はパフォーマンスモードにおいてインアクティブであり、従ってより簡単に非同期を扱うことができる。ここでも実施ユニットの２つの信号Ｍ９４０、Ｍ９４１がある。ここでも実施ユニットは、この図では示されていない。本発明に基づくコンポーネントＭ９００内に、コンポーネントのモードを設定するモード論理Ｍ９１０が設けられている。モード論理は、パフォーマンスモードにおいてスイッチＭ９３１を閉成し、スイッチＭ９３２、Ｍ９３３を開放する。それによってこのモードにおいては、比較コンポーネントＭ９２０へデータが供給されない。これが、非同期の場合により長いバッファ時間を許し、ないしは実装においてより少ないバッファ深さを許す。パフォーマンスモードにおいて、スイッチＭ９３０は常に閉成されている。比較モードにおいては、コンポーネントＭ９１０がスイッチＭ９３２、Ｍ９３３を閉成し、スイッチＭ９３１の開放によりバスへの直接的なアクセスを中断する。選択的に、モード論理Ｍ９１０が比較器Ｍ９２０にモードを伝えることができる。比較モードにおいて、エラーのない場合にスイッチＭ９３０は閉成されている。エラー場合において、比較コンポーネントＭ９２０は、スイッチＭ９３０の開放によってバスへの信号Ｍ９４０の伝達を遮断する。
【００９１】
上述した図面においては、モードまたはエラー信号を外部へ案内することが、容易に可能である。さらに、特に内部のモード状態を生成するために、他の信号がコンポーネントへ導くことが、問題なく可能である。
【００９２】
従って要約すると、これらのコンポーネントの好ましい実装は、出力信号をバス（たとえば、アドレス／データバス）へ書き込むことができる、複数の処理ユニットが設けられていることによって、特徴づけられる。重要なことは、コンポーネントが実施ユニットの出力信号の少なくとも２つを処理する（たとえば比較し、場合によっては評価し、あるいは分類する）ことができること、およびコンポーネントが、直接的なバスアクセスの少なくとも１つを遮断する、少なくとも１つのスイッチを調節できることである。これは特に、実施ユニットが計算機コアである場合に、有用である。さらに、調節可能なスイッチの状態が計算ユニットの駆動モードを特徴づけると、効果的である。
【００９３】
システム特性、特に可能な比較モードは、コンポーネントが信号をアドレス−データバス上へ与えることができる場合に、特に良好に変換される。好ましくは、これは実施ユニットの１つのものの出力信号の１つを通過接続することである。代替的に、これは、種々の実施ユニットの種々の出力信号の処理から生じることができる。
【００９４】
例えば、既に図１７、図１８についての説明において明らかにされたように、システム内で、かつ−それぞれコンポーネントへの分割に応じて−コンポーネントのいずれかにおいて、モード情報を識別することができる。このモード情報は、それぞれ実装後に、特に明確に部分コンポーネント内に存在することができる。好ましい実装において、この信号は、コンポーネントから導出して、システムの他の部分へ提供することもできる。
【００９５】
一般的な場合において、本発明に基づく行動を、図２１において説明する。信号およびコンポーネントＮ１００、Ｎ１１０、Ｎ１２０、Ｎ１３０、Ｎ１４０、Ｎ１４１、Ｎ１４２、Ｎ１４３、Ｎ１４ｎ、Ｎ１６０、Ｎ１６１、Ｎ１６２、Ｎ１６３、Ｎ１６ｎは、図２０におけるものと同一の意味を有している。さらにこの図には、モード信号Ｎ１５０とエラー信号Ｎ１７０が記入されている。選択的なエラー信号は、エラー信号を収集するエラー回路論理Ｎ１３０によって生成されて、個別エラー信号を直接伝えるか、あるいはその中に含まれるエラー情報を束ねる。モード信号Ｍ１５０は選択的であって、これらのコンポーネントの外部でそれを使用することが、多くの箇所で効果的である。切替え論理Ｎ１１０（すなわち図２０の説明に記載された機能）と処理論理（すなわち出力信号当たり、すなわち関数値当たりの比較操作の決定）の情報の組み合わせがモード情報であって、これがモードを決定する。この情報は、一般な場合において、もちろん多値であり、すなわち１つの論理ビットを介しては表示できない。論理的に考えられるすべてのモードが、与えられた実装内で重要ではなく、好ましくは許されるモードの数を制限することができる。その場合にモード信号は、重要なモード情報を外部へもたらす。ＨＷ実装は、好ましくは、外部の可視のモード信号を構成できるように、表される。好ましくは同様に、処理論理と切替え論理も構成可能に形成することができる。好ましくはこれらの構成（コンフィグレーション）は、互いに合わせられている。代替的に、モード信号の変化のみを、あるいは補足的に、外部へ出力することができる。これは特に、ダブルコンフィグレーションにおいて利点を有する。
【００９６】
好ましくは、このモード信号は安全確保される。たとえば図１７に示す実装に基づく、ダブルシステム内の実装が、図１９に示されている。そこでは、信号Ｍ８５０が切替え・比較ユニットから導出される。この情報は、ダブルシステム内で、論理的に１ビットを介して表示可能である。その場合に安全確保は、好ましくは、デュアルレール信号を介して表すことができる。同様に、一般的な場合において信号を、選択的に反転される二重化を介して安全確保することができる。代替的にパリティを生成することができ、それは好ましくは内部で固有安全に生成され、あるいはＣＲＣ（cyclic redundancy check）またはＥＣＣ（error correcting code）を使用することができる。
【００９７】
モード信号は、コンポーネントの外部で使用することができる。まず、駆動システムの自己監視に使用することができる。これは、ＳＷの観点から、切替えに責任を有し、常に、システムがどのモードにあるか、そしてシステムがこのモードへ移行することも、知っていなければならない。従ってこの信号の検査を、安全確保に使用することができる。これは、まず、直接行うことができる。しかしまた代替的な可能性は、タイマーまたは他の「独立した」ユニットを介して駆動システムにおける照会をこの信号によって蓋然化することである。
【００９８】
一般に、この信号を選択的に、μＣ（または一般的な計算ユニット）の内部のデータシンク内で使用することもできる。たとえば、ＭＰＵ（memory protection unit）を、所定のモードにおいてのみ所定のメモリアクセス（所定の実施ユニットによる）を許すようにプログラミングすることができる。その場合にＭＰＵは、たとえば所定のプログラム部分について所定のアドレス空間へのアクセスを禁止することによって、データ／バスアドレスへの許可されたアクセスのみが実施されることを保証することができるユニットである。ＭＰＵにモード信号を供給し、このＭＰＵを然るべく構成かつプログラミングし、このコンフィグレーションデータおよびモード信号を評価することによって、付加的な安全確保を行うことができる。場合によってはそれが、モード信号がすでに検査のための十分な情報である場合に、プログラミングを簡単にする。その場合には、μＣの初期化時間のために準静的なプログラミングで十分である。同様なことが、周辺ユニットについても言える。ここでも、所定のモードにおいてだけ該当する周辺ユニットへのアクセスが許されるアプリケーションがある。周辺素子へモード信号を案内し、周辺素子をそれに応じて構成およびプログラミングし、コンフィグレーションデータとモード信号を評価することによって、付加的な安全確保を行うことができる。場合によってはそれが、モード信号がすでに検査のための十分な情報である場合に、プログラミングを簡単にする。その場合には、μＣの初期化時間のために、準静的なプログラミングで十分である。同様に、この信号の評価を、インターラプトコントローラにおいても使用することができる。その場合にこの種の監視は、安全コンセプトの基本または重要な構成部分を形成する。適切な実施形態とＳＷ構造化によって、考察されるアプリケーションにおける全エラークラスのための安全コンセプトを、このモード信号上に構築することが可能である。これは特に、適切な形式のモード信号が、上述したように、自己安全である場合に、効果的である。この場合において、考察されるコンポーネントが、モード信号と自らへのアクセスとの間の不一致を検出した場合に、エラー信号を送信し、あるいは、遮断パスを操作する能力を有する場合に、さらに効果的である。
【００９９】
他の主要な使用目的は、計算ユニットの外部でモード信号を評価することである。直接的な適用は、デクリメントするウォッチドッグにおける評価である。この種の「ウォッチドッグ」は、少なくとも１つの（カウンタ）レジスタからなり、それをマイクロプロセッサによって整数値にセットすることができる。このレジスタのセット後に、「ウォッチドッグ」が自立的に固定の周期でレジスタの値をデクリメントする。レジスタの値がゼロになり、あるいはオーバーフローが生じた場合に、「ウォッチドッグ」がエラー信号を生成する。エラー信号が生成されないようにする場合には、マイクロプロセッサはレジスタの値を正しい時期に再びリセットしなければならない。それによって（限界内で）、マイクロプロセッサがソフトウェアを正しく実施しているか、を検査することができる。マイクロプロセッサがソフトウェアをもはや正しく実施しない場合には、この場合において「ウォッチドッグ」ももはや正しく操作されず、従って「ウォッチドッグ」からエラー信号が生成された、と見なされる。ハードウェアとデータ構造の完全性は、比較モードにおいて確実に認識することができるが、そのためには、マイクロプロセッサが規則的に再びこの比較モードへ戻されることが保証されなければならない。従って、ここに記載された「ウォッチドッグ」の課題は、定められた期間内にもはやリセットされなかった場合にだけでなく、マイクロプロセッサが定められた期間内にもはや定められた比較モードへ戻されない場合にも、エラー信号を発生させることである。たとえば、「ウォッチドッグ」は、モード信号が計算ユニットの定められた比較モードを表示した場合にのみ、リセットすることができる。それによって、計算ユニットが規則的にこのモードへ戻されることが保証される。その代りに、あるいはそれに加えて、「ウォッチドッグ」のレジスタ内の値は、マイクロプロセッサにおいて所定のインターラプト信号が作動された場合に初めて、デクリメントされる。そのためには、μＣの外部のインターラプト信号がウォッチドッグにも結合されなければならない。ウォッチドッグ内には、どのインターラプトがμＣを定められた比較モードへ切り替えるかが記憶されている。ウォッチドッグは、この種のインターラプトが来るとすぐに、「引き上げられ」て、正しいモード信号の存在によってリセットされる。
【０１００】
極めて一般的に、特に安全コンセプトに適用する場合に、μＣ外部のソース内のモード信号を評価することが、有用である。本発明において説明されるような、計算機上のソフトウェアの正しい遂行の安全確保における重要な点は、種々の許されるモード間の正しい交替である。まず、交替可能性自体が検査されなければならず、好ましくはさらに正しい交替も検査される。上述したように、特殊なモードが規則的にとられるかどうかに注目することもできる。この種の方法は、モード信号自体が自己安全に形成されている場合には常に、特に効果的である。
１つの可能性は、モード信号をＡＳＩＣあるいは他のμＣへ導くことである。これはタイマーと単純な論理を介してこの信号を用いて、少なくとも以下の点を検査することができる：
【０１０１】
・計算ユニットが十分頻繁に（たとえば遅くとも１０００μｓ毎に）１つまたは複数の定められたモードになるか？
・モードへ変化する場合に、常に所定の信号が出力されるか？
・計算ユニットが規則的にモードから出るか？
・モードの順序の所定の単純なパターンが有効か？
・一般的な時間パターンが有効か（たとえば、平均してモード１において＜７０％およびモード２において＜５０％）
・場合によっては付加的な信号の使用により補完される、モード信号の論理的、時間的特性の何らかの組み合わせ。
【０１０２】
その場合に、図２２に、さらに進んだ提案のための基礎構成が記載されている。この種のパートナーＡＳＩＣまたはμＣと、本発明を使用する、考察される計算ユニットとの間で、特殊な質問−応答−プレイが実施される。Ｎ３００は、この種のモード信号を送信することのできる計算ユニットである。これはたとえば、複数の実施ユニットと、このモード信号を生成することができる他のコンポーネントとを有するμＣであることができる。たとえば、この他のコンポーネントは、図１９〜図２１に示すように実現することができる。Ｎ３００は、この信号Ｎ３１０をパートナー（たとえば他の計算ユニット、他のμＣまたはＡＳＩＣ）Ｎ３３０へ与える。このパートナーは、信号Ｎ３２０を介してＮ３００へ質問をし、Ｎ３００はＮ３２１を介してそれに応答しなければならない。この種の質問は、計算課題であることができ、その正しい結果がＮ３２１を介してＮ３００から定められたタイムインターバル内に提供される。Ｎ３３０は、Ｎ３００から独立して、この結果の正しさを検査することができる。たとえば、結果がＮ３３０内に記憶され、あるいはＮ３３０自体がそれを計算して解くことができる。正しくない値が検出された場合には、エラーが認識される。提案された質問−応答−通信の特殊性は、応答に対して並列にモード信号が観察されることである。好ましくは、質問はＮ３３０による応答のために、これが所定のモードをとらなければならないように、設定される。それによって、すべてのモード交替が機能し得ること、およびプログラムシーケンス内に設けられているモード交替も実施されることを、確実に検査することができる。これは、特にシステムの初期化においても、また駆動中においても、安全コンセプトの重要なモジュールとして用いることができる。
【０１０３】
このアイデアの他の適用は、アクター駆動におけるモード信号の評価である。自動車領域における多くの適用において、今日では、いわゆるインテリジェントアクターへの傾向がある。これは、アクター操作コマンドを受信して、この操作コマンドが実施されるようにアクターを駆動するのに十分な、最小限のエレクトロニクス範囲を有するアクターである。
【０１０４】
基本アイデアが図２３に示されている。本発明を使用する計算ユニットＮ４００が、（インテリジェントな）アクターまたはアクター駆動Ｎ４３０へ接続Ｎ４２０を介して操作指令を出力する。計算ユニットは、並行して接続Ｎ４１０を介してこのアクターにモード信号を与える。アクターＮ４３０は、モード信号を用いて、駆動が許されるかどうかを検査して、選択的に信号Ｎ４４０を介してエラーステータスを返す。駆動にエラーがある場合に、アクターはシステム内でクリティカルでないフェイルサイレンス状態をとる。
【図面の簡単な説明】
【０１０５】
【図１】２つの実施ユニットＧ１０ａ、Ｇ１０ｂ、比較ユニットＧ２０、切替えユニットＧ５０および切替え意図を認識するユニットＧ４０を有するマルチプロセッサシステムＧ６０を示している。
【図２】２つの実施ユニットＧ１０ａ、Ｇ１０ｂ、比較ユニットＧ２０と切替えユニットＧ５０からなる、組み合わされた比較および切替えユニットＧ７０および切替え意図を認識するユニットＧ４０を有するマルチプロセッサシステムＧ６０を示している。
【図３】２つの実施ユニットＧ１０ａ、Ｇ１０ｂ、比較ユニットＧ２０と切替えユニットＧ５０からなる、組み合わされた比較および切替えユニットＧ８０および切替え意図を認識するユニットＧ４０を有するマルチプロセッサシステムＧ６０を示している。
【図４】２つの実施ユニットＧ２１０ａ、Ｇ２１０ｂ、切替え・比較ユニットＧ２６０を有するマルチプロセッサシステムＧ２００を示している。
【図５】特殊なパイプライン段Ｇ２３０ａ、Ｇ２３０ｂの内部で特殊な未定義のビットコンビネーションをＮＯＰまたは他のニュートラルなビットコンビネーションと交換する方法を説明するフローチャートである。
【図６】２つの実施ユニットＨ２１０ａ、Ｈ２１０ｂと切替え・比較ユニットＨ２６０を有するマルチプロセッサシステムＨ２００を示している。
【図７】２つの実施ユニットを有するマルチプロセッサシステム内で、比較モードからパフォーマンスモードへ切り替える場合に、どのようにしてユニットＩＤを用いてプログラムフローを分離することができるか、を示す方法のフローチャートである。
【図８】３つの実施ユニットを有するマルチプロセッサシステム内で、比較モードからパフォーマンスモードへ切り替える場合に、どのようにしてユニットＩＤを用いてプログラムフローを分離することができるか、を示す方法のフローチャートである。
【図９】パフォーマンスモードから比較ユニットへ切り替える場合に実施ユニットを同期させる方法を示すフローチャートである。
【図１０】パフォーマンスと比較モードの間の切替えを示す、状態自動機を示している。
【図１１】２つの実施ユニットと２つのインターラプトコントローラＧ４２０ａ、Ｇ４２０ｂを有するマルチプロセッサシステムＧ４００を、その中に含まれるインターラプトマスキングレジスタＧ４３０ａ、Ｇ４３０ｂおよび種々のインターラプト源Ｇ４４０ａからＧ４４０ｎと共に示している。
【図１２】２つの実施ユニット、切替え・比較ユニット並びに３つのレジスタセットを備えたインターラプトコントローラを有するマルチプロセッサシステムを示している。
【図１３】比較器の最も単純な形式を示している。
【図１４】位相オフセットを補償するためのユニットを有する比較器を示している。
【図１５】比較モードにおける好ましいコンポーネントＭ７００（切替え・比較ユニット）の原理的な行動を説明している。
【図１６】パフォーマンスモードにおける好ましいコンポーネントＭ７００（切替え・比較ユニット）の原理的な行動を説明している。
【図１７】切替え・比較ユニットの実施形態を示している。
【図１８】切替え・比較ユニットの他の実施形態を示している。
【図１９】モード信号を発生させる、切替え・比較ユニットを示している。
【図２０】切替え・比較ユニットの一般的な表示である。
【図２１】一般的なモードと一般的なエラー信号を発生させる、切替え・比較ユニットの一般的な表示である。
【図２２】外部のユニットとの質問応答通信を示している。
【図２３】インテリジェントアクターを有する通信を示している。
【図１】
2008518338.tif 000003
【図２】
2008518338.tif 000004
【図３】
2008518338.tif 000005
【図４】
2008518338.tif 000006
【図５】
2008518338.tif 000007
【図６】
2008518338.tif 000008
【図７】
2008518338.tif 000009
【図８】
2008518338.tif 000010
【図９】
2008518338.tif 000011
【図１０】
2008518338.tif 000012
【図１１】
2008518338.tif 000013
【図１２】
2008518338.tif 000014
【図１３】
2008518338.tif 000015
【図１４】
2008518338.tif 000016
【図１５】
2008518338.tif 000017
【図１６】
2008518338.tif 000018
【図１７】
2008518338.tif 000019
【図１８】
2008518338.tif 000020
【図１９】
2008518338.tif 000021
【図２０】
2008518338.tif 000022
【図２１】
2008518338.tif 000023
【図２２】
2008518338.tif 000024
【図２３】
2008518338.tif 000025
【国際調査報告】
2008518338.tif 000026
2008518338.tif 000027
2008518338.tif 000028
2008518338.tif 000029