(57)【要約】比較ユニットにおいてデータの比較が行われ、かつ、各実行ユニットが入力データを処理して出力データを生成する、少なくとも２つの実行ユニットを有するコンピュータシステムにおいてデータを比較する方法であって、一実行ユニットは、次の出力データが前記少なくとも２つの実行ユニットの出力データと比較されるべきことを前記比較ユニットにプリセットし、それに応じて前記少なくとも２つの出力データの比較が行われることを特徴とする。【選択図】図１
2009505185.tif 000002
【特許請求の範囲】
【請求項１】
比較ユニットにおいてデータの比較が行われ、かつ、各実行ユニットが入力データを処理して出力データを生成する、少なくとも２つの実行ユニットを有するコンピュータシステムにおいてデータを比較する方法であって、
一の前記実行ユニットは、次の出力データが少なくとも他の前記実行ユニットの出力データと比較されるべきことを前記比較ユニットにプリセットし、それに応じて前記少なくとも２つの出力データの比較が行われることを特徴とする、方法。
【請求項２】
前記少なくとも２つの実行ユニットは、互いに独立して入力データを処理することを特徴とする、請求項１に記載の方法。
【請求項３】
前記次の出力データが比較されるべきとするプリセットは、比較信号によって行われることを特徴とする、請求項１に記載の方法。
【請求項４】
前記比較信号と前記比較されるべき出力データとは、互いに一意に割り当てることができるように出力されることを特徴とする、請求項３に記載の方法。
【請求項５】
前記比較されるべきデータには、比較をトリガするための識別子が割り当てられることを特徴とする、請求項４に記載の方法。
【請求項６】
出力データが比較されるべき全ての実行ユニットは、前記比較ユニットにこのことを信号で知らせることを特徴とする、請求項１に記載の方法。
【請求項７】
前記比較されるべき出力データは、少なくとも１つのバッファメモリを介してプリセット可能な順序でバッファリングされることを特徴とする、請求項１に記載の方法。
【請求項８】
比較ユニットにおいてデータの比較が行われ、かつ、各実行ユニットが入力データを処理して出力データを生成する、少なくとも２つの実行ユニットと１つの比較ユニットとを有するコンピュータシステムにおいてデータを比較するデバイスであって、
一の前記実行ユニットは、次の出力データが少なくとも他の前記実行ユニットの出力データと比較されるべきことを前記比較ユニットにプリセットし、それに応じて前記少なくとも２つの出力データの比較が行われることを特徴とする、デバイス。
【請求項９】
前記デバイスには、データがプリセット可能な順序でバッファリングされ、次に前記比較ユニットに供給され得るように形成された少なくとも１つのバッファメモリが設けられることを特徴とする、請求項９に記載の装置。
【請求項１０】
前記バッファメモリは、ＦＩＦＯメモリであることを特徴とする、請求項１０に記載のデバイス。
【請求項１１】
請求項９に記載のデバイスを有する、コンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、独立請求項の前提部に記載されるマイクロプロセッサの少なくとも２つの実行ユニットの出力データ同士を比較する方法および装置に関する。
【背景技術】
【０００２】
集積回路においてアルファ粒子または宇宙線によって引き起こされる一過性エラーの問題が多発している。構造幅の微細化、低電圧化、およびクロック周波数の増大により、アルファ粒子または宇宙線によって発生するピーク電圧が集積回路で論理値を反転させる確率が高くなっている。その結果、計算結果に誤りが生じる可能性がある。したがって、特に安全システムでは、このようなエラーを確実に検出しなければならない。
【０００３】
通常、電子機器の誤動作を確実に検出しなければならない自動車のＡＢＳ制御システム等の安全システムでは、システムの対応する制御デバイスにおいて冗長を用いてエラーを検知する。例えば公知のＡＢＳシステムでは、それぞれの場合について、マイクロコントローラ全体が二重化されており、その場合、全ＡＢＳ機能の計算が冗長に行われ、一致しているかどうか検査される。結果に不一致が生じた場合、ＡＢＳシステムはスイッチオフされる。
【０００４】
少なくとも２つの実行ユニットが集積されたこのようなプロセッサユニットは、デュアルコアまたはマルチコアアーキテクチャとしても知られている。いくつかの実行ユニット（コア）が同じプログラムセグメントを冗長に、かつクロック同期で実行し、２つの実行ユニットの結果が比較され、一致しているかどうかの比較時にエラーが検知される。
【発明の開示】
【０００５】
現在のデュアルコアプロセッサを比較モードで動作させる場合、出力信号をクロックごとに比較できるようにするために、複数のコアまたは実行ユニットが略同一でなければならない。しかしセキュリティの観点では、種々異なった実行ユニットが用いられるならば有利でもある。しかしながら実行ユニットが種々異なっている場合、これらの実行ユニットの出力信号をクロックごとに比較することはできなくなる。
【０００６】
そこで、本発明の課題は、種々異なった実行ユニットの出力信号を比較することである。
本明細書中で提示する発明は、制御信号を導入することによってこの問題を解決する。
実行ユニットは、この制御信号とともに出力されたデータが別の実行ユニットのデータと比較されるべきであることを、この制御信号によって比較ユニットに知らせる。これにより、種々異なった実行ユニットと種々異なったソフトウェアとを用いることができる。
【０００７】
この際、比較されるべきデータとそのフォーマットだけが比較可能であればよい。比較されるべきデータを比較ユニットに伝送する順序もまた同一でなければならないかどうかは、本発明のそれぞれの実装例に応じて異なる。
【０００８】
有利にも、実行ユニットは、次の出力データが少なくとも第２の実行ユニットの出力データと比較されるべきであることを比較ユニットにプリセットし、それに応じて、少なくとも２つの出力データの比較が行われる。
【０００９】
有用にも、少なくとも２つの実行ユニットは、互いに独立して入力データを処理する。
【００１０】
有利にも、次の出力データが比較されるべきとするプリセットが比較信号によって行われる。
【００１１】
有利にも、比較信号と比較されるべき出力データとは互いに一意に割り当てられるように出力される。
【００１２】
有用にも、比較されるべきデータには、比較をトリガするための（開始させるための）識別子が割り当てられる。
【００１３】
有利にも、出力データが比較されるべきすべての実行ユニットは、比較ユニットにこのこと（出力データが比較されるべきこと）を信号で知らせる。
【００１４】
有用にも、比較されるべき出力データは、少なくとも１つのバッファメモリを介してプリセット可能な順序でバッファリングされる。
【００１５】
有利にも、一実行ユニットは、次の出力データが少なくとも２つの実行ユニットの出力データと比較されるべきことを比較ユニットにプリセットし、それに応じて少なくとも２つの出力データの比較が行われる。
【００１６】
有利にも、データがプリセット可能な順序でバッファリングされ、次に比較ユニットに供給され得るように形成された少なくとも１つのバッファメモリがデバイスに設けられる。
【００１７】
有利にも、バッファメモリはＦＩＦＯメモリである。
【００１８】
有利にも、このことは、装置およびこの装置を備えるコンピュータシステムで具現化される。
【００１９】
さらなる利点および有利な実施形態は、請求項の特徴と明細書とから明らかである。
【発明を実施するための最良の形態】
【００２０】
以下において、実行ユニットは、プロセッサ／コア／ＣＰＵ、およびＦＰＵ（Ｆｌｏａｔｉｎｇ  Ｐｏｉｎｔ  Ｕｎｉｔ：浮動小数点ユニット）、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｅｒ：デジタル信号プロセッサ）、コプロセッサまたはＡＬＵ（Ａｒｉｔｈｍｅｔｉｃ  ｌｏｇｉｃａｌ  Ｕｎｉｔ：算術論理ユニット）であり得る。
【００２１】
本発明は、図１に示す、少なくとも２つの実行ユニットＧ１０ａ、Ｇ１０ｂと比較ユニットＧ２０とを有するマルチプロセッサシステムＧ６０に関する。
【００２２】
実行ユニットＧ１０ａ、Ｇ１０ｂの各々は、対応するシステムインターフェースＧ３０ａ、Ｇ３０ｂへの少なくとも１つの出力を有する。これらのインターフェースを介してレジスタ、メモリ、または、デジタル出力、デジタル・アナログコンバータ、通信コントローラといった周辺機器を制御することができる。
【００２３】
実行ユニットＧ１０ａ、Ｇ１０ｂの出力信号は、比較ユニットＧ２０で比較されうる。出力信号が一致しない場合には、エラーであると判定されて、これに応じた対処を施すことができる。比較の対象となるのは、実行ユニットの出力データおよび／またはアドレスである。
【００２４】
さらなる制御信号を比較することができる。以下において、比較されるべく選択された出力信号とは別に、別のデータと比較されるべきデータについて言及する。
【００２５】
図１は、２つの実行ユニットＧ１０ａ、Ｇ１０ｂを有するマルチプロセッサシステムＧ６０の可能な実装を示す。
【００２６】
比較ユニットＧ２０は、実行ユニットＧ１０ａ、Ｇ１０ｂの制御信号Ｇ５０ａ、Ｇ５０ｂによってアクティブ化される。実行ユニットＧ１０ａ、Ｇ１０ｂは、データを比較せずにシステムインターフェースＧ３０ａもしくはＧ３０ｂに転送しようとする場合、信号Ｇ５０ａ、Ｇ５０ｂを埋め込まず（出力せず）にデータを転送する。これにより比較ユニットＧ２０は、このデータにはかかわらない（このデータを比較しない）。実行ユニットＧ１０ａ、Ｇ１０ｂがシステムインターフェースＧ３０ａもしくはＧ３０ｂにデータを転送しようとし、かつ、そのデータが別の実行ユニットＧ１０ａ、Ｇ１０ｂの対応するデータと比較されるべき場合、システムインターフェースにデータ転送するために必要な実行ユニットの出力信号に加えて、Ｇ１０ａでは信号Ｇ５０ａが、Ｇ１０ｂではＧ５０ｂが生成されて比較ユニットＧ２０に送られる。この信号Ｇ５０ａは実行ユニットＣ１０ａによって生成され、同様に、Ｇ５０ｂは実行ユニットＧ１０ｂによって生成される。そして、この信号Ｇ５０ａ、Ｇ５０ｂにより、システムインターフェースに伝送されるデータが、これと関連し選択的に付加されるアドレスとともに、それぞれ別の実行ユニットの対応するデータと比較されるべきであることを比較ユニットＧ２０に知らせる。
【００２７】
比較は、別の実行ユニットが、同様にそのシステムインターフェースにデータを伝送し、そして、同様に信号によって、比較が行われるべきことを比較ユニットＧ２０に知らせた場合に、行われる。比較のために用いられるＧ１０ａの信号Ｇ５０ａおよびＧ１０ｂの信号Ｇ５０ｂは、実行ユニットによってデータの伝送と必ずしも同時に生成される必要はないが、これによってデータ（アドレスを含む）に信号を一意に割り当てることができる。
比較ユニットＧ２０は、信号Ｇ７０ａ、Ｇ７０ｂを介して、必要に応じて実行ユニットを一時的に停止させることができる。この場合、実行ユニットＧ１０ａは信号Ｇ７０ａを介して停止され、実行ユニットＧ１０ｂは信号Ｇ７０ｂを介して停止される。実行ユニットは、対応する信号Ｇ７０ａ、Ｇ７０ｂが比較ユニットから再び取り戻されるまで（出力されなくなるまで）停止された状態である。
【００２８】
図２に示される第１の実施形態は、比較ユニットＧ２０の可能な実装を説明する。
比較ユニットＧ２０は、その内部に、接続された実行ユニットごとに１つのキュー（ｑｕｅｕｅ：待ち行列）を具備している。これらのキューはＦＩＦＯ方式（Ｆｉｒｓｔ  ｉｎ  Ｆｉｒｓｔ  ｏｕｔ：先入れ先出し方式）に従って構成される。これは、図２に示す実装例における実行ユニットＧ１０ａのキューＧ２１ａと、実行ユニットＧ１０ｂのキューＧ２１ｂである。１つのキューは、ｎ個のエントリを有するが、少なくとも１つを有していればよい。
【００２９】
データが比較されるべきことを一実行ユニットが信号で知らせた場合、このデータは、キューのエントリに格納される。キューにエントリの空きがなくなってしまった場合、キューに再びエントリの空きができるまで、図１に示すように、関連する実行ユニットが信号Ｇ７０ａもしくはＧ７０ｂを介して停止される。あるいは、実行ユニットがすでに一杯のキューにさらなるデータを入れようとした場合、比較ユニットＧ２０はエラー信号を生成することができる。
【００３０】
Ｇ２０のすべてのキュー（ここではＧ２１ａおよびＧ２１ｂ）において少なくとも１つのエントリが存在する場合、ＦＩＦＯ方式に基づいてそれぞれ最初の、したがって時間的にみて最も古いエントリどうしがユニットＧ２２を介して比較される。比較したデータが異なる場合はエラー信号が生成され、その後、これらのエントリはキューから削除され、すなわち、キューから廃棄される。データが同じである場合もまた、これらのデータはキューから削除される。あるいは、３つ以上のキューにおいて多数決が取られる（Ｖｏｔｉｎｇ）。
【００３１】
これらの実施形態に共通する特徴は、比較されるべきデータを正しい順序でキューに振り分けるためには、接続されたすべての実行ユニットによってデータが同一の順序で送達されなければならないことである。すなわち、どのデータとどのデータを比較するかは、キューにおけるこれらのデータの位置のみによって決まる。比較されるのは常に、キューにおける最も前の、または最も古いエントリである。
【００３２】
比較ユニットＧ２０のさらなる実施形態を図３に示す。
ここで比較ユニットはＧ２００と称される。比較ユニットＧ２００は、接続された実行ユニットごとの、比較されるべきデータが格納されたリストＧ２１０ａ、Ｇ２１０ｂを有する。リストＧ２１０ａ、２１０ｂに加えて、さらなるリストＧ２１１ａ、Ｇ２１１ｂが存在し、これらのリストにはリストＧ２１０ａ、Ｇ２１０Ｂの各データに対して１つの一意的なＩＤが格納されている。
【００３３】
リストが一杯である場合、関連するそれぞれの比較ユニットは、図１に示すように信号Ｇ７０ａもしくはＧ７０ｂを介して停止されるか、あるいは、実行ユニットがすでに一杯のリストにさらなるデータを入れようとした場合はエラー信号がトリガされる。
すべてのリストＧ２１０ａ、Ｇ２１０ｂに、これと関連するリストＧ２１１ａ、Ｇ２１１ｂと同一のＩＤを有するデータが存在するならばデータの比較が行われる。データが比較され、異なる場合はエラー信号が生成される。同じである場合、これらのデータは接続されたシステムインターフェースＧ３０ａ、Ｇ３０ｂに伝送されるか、あるいは、比較ユニットにシステムインターフェースが付随する場合はＧ３２に伝送される。比較の後、その結果とは関係なく、リストＧ２１０ａ、２１０ｂからデータが、リストＧ２１１ａ、Ｇ２１１ｂから関連するＩＤが廃棄される。これに代えて、３つ以上のリストが存在する場合は多数決が取られ得る。
【００３４】
これらの実装例の特徴は、比較されるべきデータが接続されたすべての実行ユニットによって同一の順序で比較ユニットＧ２０に送達される必要がないということである。両リストＧ２１０ａ、Ｇ２１０ｂにおいてデータが存在し、かつＩＤリストに少なくとも２つの同じＩＤが存在するならばデータは比較される。
【図面の簡単な説明】
【００３５】
【図１】２つの実行ユニットＧ１０ａ、Ｇ１０ｂと、比較ユニットＧ２０とを有するマルチプロセッサシステムＧ６０を示す。
【図２】２つのキューＧ２１ａ、Ｇ２１ｂを有する比較ユニットＧ２０の実施形態を示す。
【図３】それぞれ２つのリストＧ２１０ａ、Ｇ２１１ａ、およびＧ２１０ｂ、Ｇ２１１ｂを有する比較ユニットＧ２００の実施形態を示す。
【図１】
2009505185.tif 000003
【図２】
2009505185.tif 000004
【図３】
2009505185.tif 000005
【国際調査報告】
2009505185.tif 000006
2009505185.tif 000007
2009505185.tif 000008
2009505185.tif 000009
2009505185.tif 000010
2009505185.tif 000011