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