(57)【要約】【解決手段】少なくとも２つの実行ユニットを有する計算機システムにおけるメモリアクセスを制御する方法であって、実行ユニット当たりバッファメモリ領域、特にキャッシュメモリ領域が設けられており、さらに切替え手段と比較手段が設けられており、その場合にパフォーマンスモードと比較モードの間で切り替えられる、メモリアクセスを制御する方法において、パフォーマンスモードにおいて、各実行ユニットがそれぞれ対応づけられたバッファメモリ領域へアクセスし、比較モードにおいては２つの実行ユニットが予め定めることのできるバッファメモリ領域へアクセスし、その場合にバッファメモリ領域が構成可能であることを特徴とする、少なくとも２つの実行ユニットを有する計算機システムにおけるメモリアクセスを制御する方法が提供される。【選択図】図６
2009508188.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも２つの実行ユニットを有する計算機システムにおけるメモリアクセスを制御する方法であって、実行ユニット当たりバッファメモリ領域、特にキャッシュメモリ領域が設けられており、さらに切替え手段と比較手段が設けられており、その場合にパフォーマンスモードと比較モードの間で切り替えられる、前記メモリアクセスを制御する方法において、
パフォーマンスモードにおいて、各実行ユニットがそれぞれ対応づけられたバッファメモリ領域へアクセスし、比較モードにおいては２つの実行ユニットが予め定めることのできるバッファメモリ領域へアクセスし、その場合にバッファメモリ領域が構成可能であることを特徴とする、少なくとも２つの実行ユニットを有する計算機システムにおけるメモリアクセスを制御する方法。
【請求項２】
比較モードにおいて２つの実行ユニットによってアクセスされるバッファメモリ領域が、パフォーマンスモードにおいて実行ユニットに対応づけられているバッファメモリ領域に相当することを特徴とする、請求項１に記載の方法。
【請求項３】
少なくとも１つのバッファメモリ領域、特に付加的なキャッシュメモリ領域が設けられており、比較モードにおいて２つの実行ユニットによって前記付加的なバッファメモリにアクセスされることを特徴とする、請求項１に記載の方法。
【請求項４】
少なくとも１つの付加的なバッファメモリ領域が設けられており、比較モードにおいて２つの実行ユニットがアクセスするバッファメモリ領域が、付加的なバッファメモリ領域と、パフォーマンスモードにおいて実行ユニットに対応づけられているバッファメモリ領域とから形成されていることを特徴とする、請求項１に記載の方法。
【請求項５】
付加的なバッファメモリ領域と、パフォーマンスモードにおいて実行ユニットに対応づけられ比較モードにおいては２つの実行ユニットによってアクセスされるバッファメモリ領域との間の大きさの比が構成可能であることを特徴とする、請求項４に記載の方法。
【請求項６】
比較モードにおいて、実行ユニットに対応づけられたバッファメモリは読取りアクセスのみが可能であることを特徴とする、請求項４に記載の方法。
【請求項７】
パフォーマンスモードにおいて、第１の実行ユニットに第１のバッファメモリ領域が対応づけられ、第２の実行ユニットには第２のバッファメモリ領域が対応づけられ、比較モードにおいては第１の実行ユニットに第３のバッファメモリ領域が対応づけられ、第２の実行ユニットに第４のバッファメモリ領域が対応づけられていることを特徴とする、請求項１に記載の方法。
【請求項８】
比較モードにおいて、２つの実行ユニットによって第３のバッファメモリ領域と第４のバッファメモリ領域とがアクセスされることを特徴とする、請求項７に記載の方法。
【請求項９】
比較モードにおいて、２つの実行ユニットによって４つすべてのバッファメモリ領域がアクセスされることを特徴とする、請求項７に記載の方法。
【請求項１０】
比較モードにおいて、第１のバッファメモリ領域と第２のバッファメモリ領域とは読取りアクセスのみが可能であることを特徴とする、請求項９に記載の方法。
【請求項１１】
第１のバッファメモリ領域と第３のバッファメモリ領域との間、および第２のバッファメモリ領域と第４のバッファメモリ領域との間の大きさの比が、それぞれ構成可能であることを特徴とする、請求項８または請求項１０に記載の方法。
【請求項１２】
少なくとも２つの実行ユニットを有する計算機システムにおけるメモリアクセスを制御する装置であって、その場合に実行ユニット当たりバッファメモリ領域、特にキャッシュメモリ領域が設けられており、さらに切替え手段と比較手段が設けられており、その場合にパフォーマンスモードと比較モードの間で切り替えられる前記メモリアクセスを制御する装置において、
パフォーマンスモードにおいて各実行ユニットが、それぞれ対応づけられたバッファメモリ領域へアクセスし、比較モードにおいては２つの実行ユニットが予め定めることのできるバッファメモリ領域へアクセスし、その場合にバッファメモリ領域が構成可能であることを特徴とする、メモリアクセスを制御する装置。
【請求項１３】
比較モードにおいて２つの実行ユニットによってアクセスされるバッファメモリ領域が、パフォーマンスモードにおいて実行ユニットに対応づけられているバッファメモリ領域に相当することを特徴とする、請求項１２に記載の装置。
【請求項１４】
少なくとも１つの付加的なバッファメモリ領域、特に付加的なキャッシュメモリ領域が設けられており、比較モードにおいて２つの実行ユニットによって前記付加的なバッファメモリ領域がアクセスされることを特徴とする、請求項１２に記載の装置。
【請求項１５】
少なくとも１つの付加的なバッファメモリ領域が設けられており、比較モードにおいて２つの実行ユニットがアクセスするバッファメモリ領域が、付加的なバッファメモリ領域と、パフォーマンスモードにおいて実行ユニットに対応づけられているバッファメモリ領域とから形成されていることを特徴とする、請求項１２に記載の装置。
【請求項１６】
付加的なバッファメモリ領域と、パフォーマンスモードにおいて実行ユニットに対応づけられ比較モードにおいて２つの実行ユニットによってアクセスされるバッファメモリ領域との間の大きさの比を構成する手段が設けられていることを特徴とする、請求項１５に記載の装置。
【請求項１７】
手段が設けられることにより、比較モードにおいて実行ユニットに対応づけられたバッファメモリ領域が読取りアクセスのみ可能であることを特徴とする、請求項１５に記載の装置。
【請求項１８】
手段が設けられることにより、パフォーマンスモードにおいては第１の実行ユニットに第１のバッファメモリ領域が対応づけられて、第２の実行ユニットには第２のバッファメモリ領域が対応づけられ、比較モードにおいては第１の実行ユニットに第３のバッファメモリ領域が対応づけられて、第２の実行ユニットには第４のバッファメモリ領域が対応づけられていることを特徴とする、請求項１２に記載の装置。
【請求項１９】
手段が設けられているので、比較モードにおいて２つの実行ユニットによって第３と第４のバッファメモリ領域にアクセスされることを特徴とする請求項１８に記載の装置。
【請求項２０】
手段が設けられることにより、比較モードにおいて２つの実行ユニットによって４つすべてのバッファメモリ領域がアクセスされることを特徴とする、請求項１８に記載の装置。
【請求項２１】
手段が設けられることにより、比較モードにおいて第１のバッファメモリ領域と第２のバッファメモリ領域とが読取りアクセスのみ可能であることを特徴とする、請求項２０に記載の装置。
【請求項２２】
手段が設けられることにより、第１のバッファメモリ領域と第３のバッファメモリ領域との間、および第２のバッファメモリ領域と第４のバッファメモリ領域との間の大きさの比がそれぞれ構成可能であることを特徴とする、請求項１９または請求項２１に記載の装置。
【請求項２３】
前記比較手段が、少なくとも１つの実行ユニットとバッファメモリの間に位置づけられていることを特徴とする、請求項１２に記載の装置。
【請求項２４】
バッファメモリが、少なくとも１つの実行ユニットと前記比較手段との間に位置づけられていることを特徴とする、請求項１２に記載の装置。
【請求項２５】
前記切替え手段と前記比較手段が、切替え・比較ユニットとして実現されていることを特徴とする、請求項１２と請求項２３、または請求項１２と請求項２４に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、独立請求項の上位概念に記載のマイクロプロセッサの少なくとも２つの実行ユニットの出力データを比較する方法および装置に関する。
【背景技術】
【０００２】
アルファ粒子または宇宙線によって引き起こされる過渡的エラーは、集積回路にとってますます問題となっている。集積回路の微細化、低下する電圧および高くなるクロック周波数によって、アルファ粒子または宇宙線によってもたらされる電圧ピークが集積回路内の論理値を歪曲する確率が増加する。その結果が、誤った計算結果となり得る。したがって安全上重要なシステムにおいては、この種のエラーは確実に検出されなければならない。
【０００３】
エレクトロニクスの誤機能が確実に検出されなければならない、例えば、自動車内のＡＢＳ制御システムのような安全上重要なシステムにおいて、この種のシステムのまさに該当する制御装置において、通常、エラー認識するために冗長性が設けられる。すなわち、たとえば、既知のＡＢＳシステムにおいては、それぞれ完全なマイクロコントローラが複製され、その場合に全ＡＢＳ機能が冗長に計算されて、一致について検査される。結果の矛盾が生じた場合には、ＡＢＳシステムはオフにされる。
【０００４】
少なくとも２つの内蔵された実行ユニットを有するこの種のプロセッサユニットは、デュアルコアアーキテクチャまたはマルチコアアーキテクチャとしても知られている。種々の実行ユニット（コア）が、冗長に、かつクロック同期で同一のプログラムセグメントを実行し、２つの実行ユニットの結果が比較されて、一致について比較する場合にエラーが認識される。
【０００５】
プロセッサは、指示とデータへのアクセスを加速するために、キャッシュを搭載している。これは、データ量が常に増大し、ますます高速に作業するプロセッサによりデータ処理の複雑性が増大する場合に必要である。キャッシュによって、大きい（メイン）メモリへの低速のアクセスが部分的に回避されて、したがってプロセッサはデータの準備を待たなくて済む。指令のためだけのキャッシュも、データのためだけのキャッシュも知られているが、データも指令も同一のキャッシュ内に格納される「ユニファイドキャッシュ（Unifide  Caches）」も知られている。複数のレベルのキャッシュ（階層段）を有するシステムも知られている。この種の多段のキャッシュは、段階を付けられたメモリ大きさと種々のレベルのキャッシュの様々な種類のアドレッシングストラテジーによってプロセッサと（メイン）メモリの間で速度の最適化を行うために、使用される。
【０００６】
キャッシュを使用する第２の理由は、マルチプロセッサシステム内でシステムバスまたはメモリバスへのアクセス競合を回避することである。そこでは、通常、各プロセッサにキャッシュが、あるいはマルチレベルキャッシュの場合にはそれに応じた数のキャッシュが搭載される。
【０００７】
切り替え可能なデュアルコアシステムにおけるキャッシュの既知の配置においては、２つのコアの各々が固定的に対応づけられたキャッシュを有しており、パフォーマンスモードにおいてコアがそのキャッシュにアクセスする。比較モードにおいては、２つのコアがそれらのそのときどきのキャッシュにアクセスする。比較モードにおいてデータがキャッシュに多重に記憶される（各実行ユニットについて別々に）という事実の他に、特に、パフォーマンスモードから比較モードへ切り替える場合の時間的手間が著しい。この切替えの際に、キャッシュの状態が統一されなければならない。それによって初めて、比較モードにおいて、比較に関与する実行ユニットの一方がキャッシュミス（要求されたデータがキャッシュ内に記憶されておらず、リロードされなければならない）を有し、他方がキャッシュヒット（要求されたデータがキャッシュ内に記憶されており、リロードする必要がない）を有する場合が生じないことが、保証される。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明の課題は、マルチプロセッサシステムにおいて、切り替え可能なマルチプロセッサシステム内でキャッシュを使用する場合にこれまで知られている方法の欠点を回避することである。その場合に欠点として、特に、キャッシュの既知の配置において、パフォーマンスモードから比較モードへ切り替える場合にこの配置が手間をかけて同期化されなければならないことが挙げられる。
【課題を解決するための手段】
【０００９】
パフォーマンスモードと比較モードのような、マルチプロセッサシステムの種々のモード間での切替え可能性のためには、各実行ユニットが専用のキャッシュを持たないと効果的である。というのは、特に比較モードへ切り替える場合に、時間をかけてキャッシュを統一しなければならないからである。提案されている構造においては、それをほぼ省くことができる。
【００１０】
さらに、種々のキャッシュが種々のモード（比較ないしパフォーマンス）のためにその大きさをモードの要請に適合させることができると効果的である。さらに、多くのモードにおいて、特にバスアクセス自体がキャッシュアクセスより実質的に低速でない場合にキャッシュが完全に省かれると効果的であり得る。
【００１１】
好ましくは、少なくとも２つの実行ユニットを有する計算機システムにおけるメモリアクセスを制御する方法が記載されており、その場合に実行ユニット当たりバッファメモリ領域、特にキャッシュメモリ領域が設けられており、さらに切替え手段と比較手段が設けられており、その場合にパフォーマンスモードと比較モードの間で切り替えられる。この装置は、パフォーマンスモードにおいて各実行ユニットがそれぞれ対応づけられたバッファメモリ領域へアクセスし、比較モードにおいては２つの実行ユニットが予め定めることのできるバッファメモリ領域へアクセスし、その場合にバッファメモリ領域が構成可能であることを特徴としている。
【００１２】
好ましくは、比較モードにおいて２つの実行ユニットによってアクセスされるバッファメモリ領域が、パフォーマンスモードにおいて実行ユニットに対応づけられているバッファメモリ領域に相当することを特徴とする方法が記載されている。
【００１３】
好ましくは、少なくとも１つの付加的なバッファメモリ領域、特に付加的なキャッシュメモリ領域が設けられており、比較モードにおいて２つの実行ユニットによってこの付加的なバッファメモリ領域にアクセスされることを特徴とする方法が記載されている。
【００１４】
好ましくは、少なくとも１つの付加的なバッファメモリ領域が設けられており、かつ、比較モードにおいて２つの実行ユニットがアクセスするバッファメモリ領域が、付加的なバッファメモリ領域と、パフォーマンスモードにおいて実行ユニットに対応づけられているバッファメモリ領域とから形成されていることを特徴とする方法が記載されている。
【００１５】
好ましくは、付加的なバッファメモリ領域と、パフォーマンスモードにおいて実行ユニットに対応づけられている比較モードにおいて２つの実行ユニットによってアクセスされるバッファメモリ領域との間の大きさの比が構成可能であることを特徴とする方法が記載されている。
【００１６】
好ましくは、比較モードにおいて、実行ユニットに対応づけられたバッファメモリ領域が読取りアクセスのみ可能であることを特徴とする方法が記載されている。
【００１７】
好ましくは、パフォーマンスモードにおいて第１の実行ユニットに第１のバッファメモリ領域が、第２の実行ユニットには第２のバッファメモリ領域が対応づけられており、比較モードにおいては第１の実行ユニットに第３のバッファメモリ領域が、そして第２の実行ユニットには第４のバッファメモリ領域が対応づけられていることを特徴とする方法が記載されている。
【００１８】
好ましくは、比較モードにおいて、２つの実行ユニットによって第３と第４のバッファメモリ領域がアクセスされることを特徴とする方法が記載されている。
【００１９】
好ましくは、比較モードにおいて２つの実行ユニットによって４つ全部のバッファメモリ領域がアクセスされることを特徴とする方法が記載されている。
【００２０】
好ましくは、比較モードにおいて第１と第２のバッファメモリ領域に読取りアクセスのみが可能であることを特徴とする方法が記載されている。
【００２１】
好ましくは、それぞれ第１と第３のバッファメモリ領域の間、および第２と第４のバッファメモリ領域の間の大きさの比が構成可能であることを特徴とする方法が記載されている。
【００２２】
好ましくは、少なくとも２つの実行ユニットを有する計算機システムにおけるメモリアクセスを制御する装置が設けられており、その場合に実行ユニット当たりバッファメモリ領域、特にキャッシュメモリ領域が設けられており、さらに切替え手段と比較手段が設けられており、その場合にパフォーマンスモードと比較モードの間で切り替えられる。この装置は、パフォーマンスモードにおいて各実行ユニットがそれぞれ対応づけられているバッファメモリ領域へアクセスし、比較モードにおいては２つの実行ユニットが予め定めることのできるバッファメモリ領域へアクセスし、その場合にバッファメモリ領域が構成可能であることを特徴としている。
【００２３】
好ましくは、比較モードにおいて２つの実行ユニットによってアクセスされるバッファメモリ領域が、パフォーマンスモードにおいて実行ユニットに対応づけられているバッファメモリ領域に相当することを特徴とする装置が設けられている。
【００２４】
好ましくは、少なくとも１つの付加的なバッファメモリ領域、特に付加的なキャッシュメモリ領域が設けられており、比較モードにおいて２つの実行ユニットによってこの付加的なバッファメモリ領域にアクセスされることを特徴とする装置が設けられている。
【００２５】
好ましくは、少なくとも１つの付加的なバッファメモリが設けられており、かつ、比較モードにおいて２つの実行ユニットがアクセスするバッファメモリ領域が、付加的なバッファメモリ領域と、パフォーマンスモードにおいて実行ユニットに対応づけられているバッファメモリ領域とから形成されていることを特徴とする装置が設けられている。
【００２６】
好ましくは、付加的なバッファメモリ領域と、パフォーマンスモードにおいて実行ユニットに対応づけられている比較モードにおいて２つの実行ユニットによりアクセスされるバッファメモリ領域との間の大きさの比を構成する手段が設けられていることを特徴とする装置が設けられている。
【００２７】
好ましくは、手段が設けられているので、比較モードにおいて、実行ユニットに対応づけられたバッファメモリ領域が読取りアクセスのみ可能であることを特徴とする装置が設けられている。
【００２８】
好ましくは、手段が設けられているので、パフォーマンスモードにおいて第１の実行ユニットに第１のバッファメモリ領域が、第２の実行ユニットには第２のバッファメモリ領域が対応づけられており、比較モードにおいては第１の実行ユニットに第３のバッファメモリ領域が、そして第２の実行ユニットには第４のバッファメモリ領域が対応づけられていることを特徴とする装置が設けられている。
【００２９】
好ましくは、手段が設けられているので、比較モードにおいて２つの実行ユニットによって第３と第４のバッファメモリ領域にアクセスされることを特徴とする装置が設けられている。
【００３０】
好ましくは、手段が設けられているので、比較モードにおいて２つの実行ユニットによって４つすべてのバッファメモリ領域にアクセスされることを特徴とする装置が設けられている。
【００３１】
好ましくは、手段が設けられているので、比較モードにおいて第１と第２のバッファメモリ領域に読取りアクセスのみが可能であることを特徴とする装置が設けられている。
【００３２】
好ましくは、手段が設けられているので、それぞれ第１と第３のバッファメモリ領域の間、および第２と第４のバッファメモリ領域の間の大きさの比が構成可能であることを特徴とする装置が設けられている。
【００３３】
好ましくは、比較手段が少なくとも１つの実行ユニットとバッファメモリの間に位置づけられていることを特徴とする装置が設けられている。
【００３４】
好ましくは、バッファメモリが少なくとも１つの実行ユニットと比較手段との間に位置づけられていることを特徴とする装置が設けられている。
【００３５】
好ましくは、切替え手段と比較手段が、切替えおよび比較手段として実現されていることを特徴とする装置が設けられている。
【００３６】
他の利点と好ましい形態が、請求項の特徴と明細書から明らかにされる。
【発明の効果】
【００３７】
マルチプロセッサシステムにおいて、切り替え可能なマルチプロセッサシステム内でキャッシュを使用する場合にこれまで知られている方法の欠点を回避することができる。
【発明を実施するための最良の形態】
【００３８】
実行ユニットは、以下において、プロセッサ／コア／ＣＰＵとも、ＦＰＵ（Floting  Point  Unit）、ＤＳＰ（Digitaler  Signalprozessor）、コプロセッサまたはＡＬＵ（Arithmetric  Logical  Unit）とも称することができる。
【００３９】
多くのマルチプロセッサシステムにおいて、キャッシュは、システムバスおよび／またはメモリバス上の競合を回避するためだけに用いられる。この場合において、１つの実行ユニットのみが存在する場合には、キャッシュは不要となる。というのは、メモリは、実行ユニットの読取り要請に応じるのに、十分高速だからである。
【００４０】
図１は、バスＣ１０を介してメモリへアクセスすることができる２つの実行ユニットＣ１１０ａ、Ｃ１１０ｂを備えたマルチプロセッサシステムＣ１００の第１の実施形態を示している。ユニットＣ１３０は、それぞれシステムＣ１００のモードにしたがって、バスＣ１０へどのようにアクセスするかを制御する。パフォーマンスモードにおいて、スイッチＣ１３１が閉成されており、スイッチＣ１３２は開放されている。したがって実行ユニットＣ１１０ｂは、キャッシュＣ１２０とバス接続端Ｃ１５０を介してバスＣ１０へアクセスする。実行ユニットＣ１１０ａは、接続端Ｃ１４０を介して直接バスＣ１０と接続されている。キャッシュＣ１２０が正しく寸法設計されている場合には、実行ユニットＣ１１０ｂのメモリアクセスは主としてキャッシュＣ１２０から操作されるので、バスＣ１０へのアクセスは希にしか必要とされない。実行ユニットＣ１１０ａのメモリアクセスは、常にバスＣ１０へのアクセスをもたらす。メモリアクセスがキャッシュＣ１２０によって操作できない場合にのみ、ユニットＣ１５０を介してバスへアクセスされる。同じ時間に、実行ユニットＣ１１０ａによって接続端Ｃ１４０を介してバスＣ１０へのアクセスが行われた場合に、バス競合が発生し、それはバスプロトコルによって解決されなければならない。キャッシュＣ１２０は、ソフトウェアにとっては見えないので、ユニットＣ１２０がバスＣ１０上で、実行ユニットＣ１１０ａが接続端Ｃ１４０を介してメモリ内の、キャッシュＣ１２０内にもあるデータを変更するかを詮索する（"Bus-Snooping"）と効果的である。そうである場合には、キャッシュＣ１２０内の該当するデータが新しいデータに代えられ、あるいは無効であるとマーキングされなければならない。
【００４１】
比較モードにおいては、スイッチＣ１３２が閉成されて、スイッチＣ１３１は開放されている。２つの実行ユニットは共通に、キャッシュＣ１２０を介してバスＣ１０へアクセスする。比較ユニットＣ１６０が２つの実行ユニットの出力信号を比較して異なる場合にエラー信号を生成する。選択的に比較ユニットＣ１６０をバス接続ユニットＣ１５０と接続して（図示せず）、２つのコアの出力信号が異なっている場合に、メモリアクセスを阻止することができる。パフォーマンスモードにおいては、ユニットＣ１６０は非能動化される。比較ユニットの非能動化は、種々の方法で実現することができる：ユニットＣ１６０による比較が実施されず、比較するための信号がユニットＣ１６０へ印加されないか、あるいは比較は行われるが結果が無視される。
【００４２】
本発明の実施形態が、図２にシステムＣ１００ｃで示されている。この実施形態において、図１に基づく部材は、同様に作用する。実行ユニットＣ１１０ａは、閉成されたスイッチＣ１３１を有するパフォーマンスモードにおいて、もちろん同様にキャッシュＣ１４０ａとバス接続端Ｃ１４０を介してバスＣ１０へアクセスする。比較モードにおいては、その場合には閉成されているスイッチＣ１３２を介してキャッシュ１２０が２つの実行ユニットＣ１１０ａ、Ｃ１１０ｂによって使用され、キャッシュＣ１４０ａはパフォーマンスモードにおいてのみ実行ユニットＣ１１０ａによって使用される。２つのキャッシュＣ１２０とキャッシュＣ１４０ａは、異なる大きさを有することができ、したがって種々のモードにおいて適合された課題のために最適化することができる。
【００４３】
図３には、本発明の他の実施形態が示されている。その場合にＣ１００ａは、マルチプロセッサシステムを示している。ここでは、パフォーマンスモードにおいてスイッチＣ１３３が開放され、スイッチＣ１３４が閉成されており、実行ユニットＣ１１０ｂはキャッシュＣ１２０とバス接続ユニットＣ１５０を介してバスＣ１０へアクセスする。他方の実行ユニットＣ１１０ａは、ユニットＣ１４０を介して直接バスＣ１０へアクセスする。それに対して比較モードにおいては、スイッチＣ１３３が閉成されて、スイッチＣ１３４が開放されており、２つの実行ユニットがＣ１４０を介して直接バスＣ１０へアクセスし、キャッシュＣ１２０は使用されない。比較ユニットＣ１６０が２つの実行ユニットの出力信号を比較して、異なっている場合にエラー信号を生成する。選択的にここでも、比較ユニットＣ１６０をバス接続ユニットＣ１４０と接続し（図示せず）、２つの実行ユニットの出力信号が異なっている場合に、メモリアクセスを阻止することができる。パフォーマンスモードにおいては、ユニットＣ１６０は非能動化されている。非能動化は、すでに説明した種々の方法で実現することができる。
【００４４】
マルチプロセッサシステムの他の形態において、同様にキャッシュは、メモリバスへのアクセス競合を回避するためだけに使用される。図４は、種々の方法でバスＣ１０を介してメモリへアクセスすることができる、２つの実行ユニットＣ２１０ａ、Ｃ２１０ｂを有するマルチプロセッサシステムＣ２００を示している。ユニットＣ２３０は、システムＣ２００のモードに応じて、バスＣ１０がどのようにアクセスされるか、を制御する。パフォーマンスモードにおいて、スイッチＣ２３１とスイッチＣ２３４が閉成され、スイッチＣ２３２とスイッチＣ２３３が開放されている。したがって実行ユニットＣ２１０ａは、バス接続端Ｃ２５０ａを有するキャッシュＣ２４０ａを介して、そして実行ユニットＣ２１０ｂはバス接続端Ｃ２５０ｂを有するキャッシュＣ２４０ｂを介してバスＣ１０へアクセスする。メモリアクセスが実行ユニットのそれぞれのキャッシュから操作できない場合に、バスＣ１０へのアクセスが行われなければならない。同じ時間に、他の実行ユニットによるバスＣ１０へのアクセスが行われた場合に、バス競合が生じ、それがバスプロトコルによって解決されなければならない。キャッシュＣ２４０ａとキャッシュＣ２４０ｂは、ソフトウェアにとっては見えないので、実行ユニットＣ２１０ａ、実行ユニットＣ２１０ｂによってそれぞれのキャッシュＣ２４０ａ、キャッシュＣ２４０ｂへ書き込まれるデータが、同様に即座にバスＣ１０へのそれぞれのバス接続端Ｃ２５０ａ、バス接続端Ｃ２５０ｂを介してメモリへ書き込まれる（"Write  through"ストラテジー）と、効果的である。
【００４５】
さらに、ユニットＣ２４０ａとキャッシュＣ２４０ｂが（バス接続端Ｃ２５０ａまたはバス接続端Ｃ２５０ｂを介して）バスＣ１０上で、実行ユニットＣ２１０ａがバス接続端Ｃ２５０ａを介して、または実行ユニットＣ２１０ｂがバス接続端Ｃ２５０ｂを介してメモリ内のそれぞれ他のキャッシュ内にもあるデータを変更したかを詮索する（"Bus-Snooping"）と効果的である。この場合においては、該当するデータが関連するキャッシュ内のデータに置き換えられ、あるいは無効であるとマーキングされなければならない。
【００４６】
比較モードにおいては、スイッチＣ２３２とスイッチＣ２３３が閉成されて、スイッチＣ２３１とスイッチＣ２３４は開放されている。２つの実行ユニットは、共通にバス接続ユニットＣ２６０を介してバスＣ１０へアクセスする。キャッシュ（キャッシュＣ２４０ａ、キャッシュＣ２４０ｂ）は使用されない。比較ユニットＣ２２０が２つの実行ユニットの出力信号を比較して、異なる場合にはエラー信号を生成する。選択的に、比較ユニットＣ２２０をバス接続ユニットＣ２６０と接続して（ここには図示されていない）、２つの実行ユニットの出力信号が異なっている場合に、メモリアクセスを阻止することができる。パフォーマンスモードにおいては、ユニットＣ２２０は非能動化されている。非能動化は、すでに説明した種々の方法で実現することができる。
【００４７】
図５は、マルチプロセッサシステムの他の実施形態Ｃ２００ａを示しており、この実施形態においては、図４に示す実施形態Ｃ２００に比較して比較モードのための付加的なキャッシュ２７０が挿入されている。図４に示されているコンポーネントと同様のコンポーネントは、図４を参照して説明したものと同様に作用する。このシステムにおいても、すべてのキャッシュのために"write  through"ストラテジーが使用され、すべてのキャッシュの内容が"Bus  snooping"によって矛盾なしに維持されると効果的である。
【００４８】
上述した図３と図５に基づく方法は、２つより多い実行ユニットに拡張することができる。この場合においては、実行ユニット当たり、パフォーマンスモードにおいて利用されるキャッシュユニットとバス接続ユニットが存在している。比較モードにおいてすべての実行ユニットはバス接続ユニットＣ２６０（選択的にキャッシュＣ２７０を有する）を介してバスＣ１０へアクセスする。
【００４９】
本発明の他の実施形態が、図６に示されている。ここでも、プロセッサユニットＣ３００は少なくとも２つの実行ユニットＣ３１０ａ、Ｃ３１０ｂからなり、それらがそれぞれキャッシュＣ３４０ａ、３４０ｂとバス接続端Ｃ３５０ａ、Ｃ３５０ｂを介し、バスＣ１０を介してメモリへアクセスする。パフォーマンスモードにおいては、ユニットＣ３３０内のスイッチＣ３３２が開放され、スイッチＣ３３１は閉成されている。実行ユニットＣ３１０ａは、このコンフィグレーションにおいてはキャッシュＣ３４０ａとバス接続端Ｃ３５０ａを介して、そして実行ユニットＣ３１０ｂはキャッシュＣ３４０ｂとバス接続端Ｃ３５０ｂを介して、バスＣ１０へアクセスする。
【００５０】
比較モードにおいて、切替えユニットＣ３３０内でスイッチＣ３３２は閉成され、スイッチＣ３３１は開放されている。２つの実行ユニットがキャッシュＣ３４０ａとバス接続端Ｃ３５０ａを介してバスＣ１０へアクセスする。ユニットＣ３４０ａ自体は、ここでも、キャッシングに使用される２つの別体のキャッシュメモリまたはキャッシュ領域Ｃ３４１、Ｃ３４２からなる。パフォーマンスモードにおいては、メモリ／領域Ｃ３４１のみが使用され、比較モードにおいてはメモリ／領域Ｃ３４１に加えてメモリ／領域Ｃ３４２がキャッシュのために使用される。比較ユニットＣ３２０が、比較モードにおいて２つの実行ユニットの出力信号を比較して、異なる場合にエラー信号を生成する。選択的に、ここでも比較ユニットＣ３２０をバス接続ユニットＣ３５０ａと接続して（ここには記入されていない）、比較モードにおいて２つのコアの出力信号が異なる場合に、メモリアクセスを阻止することもできる。パフォーマンスモードにおいては、比較ユニットＣ３２０は、図１に示す比較ユニットＣ１６０についてすでに説明したように、非能動化されている。
【００５１】
他の実施形態において、ユニットＣ３４０ａは、比較モードにおいてメモリＣ３４１とメモリＣ３４２が同様に一緒に利用されるが、比較モードにおいてメモリＣ３４２から内容のみを排除して、他の内容と入れ替えることができるように、構築することができる。
【００５２】
図６の形態においてすべての実施形態は、２つより多い実行ユニットに拡張することができる。この場合において、実行ユニット当たり、パフォーマンスモードで利用される、キャッシュユニットとバス接続ユニットが存在している。比較モードにおいて、すべての実行ユニットがキャッシュＣ３４０ａとバス接続ユニットＣ３５０ａを介してバスＣ１０へアクセスする。
【００５３】
本発明の他の可能な実施形態が、図７に示されている。ここでもプロセッサユニットＣ４００は少なくとも２つの実行ユニットＣ４１０ａ、Ｃ４１０ｂからなり、それらがそれぞれキャッシュＣ４４０ａ、４４０ｂとバスＣ１０へのバス接続端Ｃ４５０ａ、Ｃ４５０ｂを介して（メイン）メモリへアクセスする。
【００５４】
パフォーマンスモードにおいて、ユニットＣ４３０内のスイッチＣ４３２が開放し、スイッチＣ４３１は閉成されている。このコンフィグレーションにおいて、実行ユニットＣ４１０ａはキャッシュＣ４４０ａとバス接続端Ｃ４５０ａを介して、そして実行ユニットＣ４１０ｂはキャッシュＣ４４０ｂとバス接続端Ｃ４５０ｂを介してバスＣ１０へアクセスする。
【００５５】
比較モードにおいて、切替えユニットＣ４３０内でスイッチＣ４３２が閉成されており、スイッチＣ４３１は開放されている。２つの実行ユニットがキャッシュＣ４４０ａとバス接続端Ｃ４５０ａを介してバスＣ１０へアクセスする。ユニットＣ４４０ａ自体は、ここでも、キャッシングに使用される、２つの別体のキャッシュメモリまたは領域Ｃ４４１、Ｃ４４２からなる。パフォーマンスモードにおいては、メモリ／領域Ｃ４４１のみが使用され、比較モードにおいてはメモリ／領域Ｃ４４２がキャッシングのために使用される。２つのメモリ／領域Ｃ４４１＋Ｃ４４２の大きさの合計は一定であるが、メモリ／領域Ｃ４４１とメモリ／領域Ｃ４４２の間の比がユニットＣ４４３によって制御される。このユニットＣ４４３によって、駆動中に比の変更が可能である。
【００５６】
比較ユニットＣ４２０が、比較モードにおいて２つの実行ユニットの出力信号を比較して異なる場合にエラー信号を生成する。選択的にここでも比較ユニットＣ４２０をバス接続ユニットＣ４５０ａと接続して（ここには記入されていない）、比較モードにおいて２つのコアの出力信号が異なる場合にメモリアクセスを阻止することができる。パフォーマンスモードにおいては、ユニットＣ４２０は、図１の比較ユニットＣ１６０についてすでに説明したように、非能動化されている。
【００５７】
ユニットＣ４４０ａは、ユニットＣ４４３の機能を維持しながら、以下のように形成することができる：
１．比較モードにおいて、２つのメモリＣ４４１、Ｃ４４２がキャッシュのために使用される。
２．比較モードにおいて、２つのメモリＣ４４１、Ｃ４４２がキャッシュのために使用され、しかしその場合に比較モードにおいてはメモリＣ４４２から内容のみを排除して、他の内容と入れ替えることができる。
【００５８】
図７の形態におけるすべての実施形態は、２より多い実行ユニットに拡張することができる。この場合において、実行ユニット当たり、キャッシュユニットとバス接続ユニットが存在しており、それらがパフォーマンスモードで利用される。比較モードにおいては、すべての実行ユニットがキャッシュＣ４４０ａとバス接続ユニットＣ４５０ａを介してバスＣ１０にアクセスする。
【００５９】
図８には、他の可能な実施形態が示されている。プロセッサシステムＣ５００内に、少なくとも２つの実行ユニットＣ５１０ａ、Ｃ５１０ｂが存在している。２つの実行ユニットは、キャッシュユニットＣ５３０と接続されている。このユニットＣ５３０は、実行ユニット当たりバス接続ユニットＣ５５０ａ、Ｃ５５０ｂを有しており、それを介してメモリへのバスへアクセスすることができる。キャッシュユニットＣ５３０は、接続されている実行ユニット当たり２つのキャッシュメモリ（ここでは実行ユニットＣ５１０ａのためのＣ５３１とＣ５３３および実行ユニットＣ５１０ｂのためのＣ５３４とＣ５３６）を有している。これらのメモリペアの大きさの合計は一定であるが、駆動中にそれぞれユニット（Ｃ５３１、Ｃ５３３のためのＣ５３２およびＣ５３４、Ｃ５３６のためのＣ５３５）を介して比を変化させることができる。
【００６０】
パフォーマンスモードにおいて、実行ユニットのメモリアクセスは常に、実行ユニットに対応づけられているメモリペアによって「キャッシュされる」。その場合に２つのキャッシュメモリの一方のみが使用される（ここでは実行ユニットＣ５１０ａのためにＣ５３１、そして実行ユニットＣ５１０ｂのためにＣ５３４）。実行ユニットのメモリアクセスがキャッシュメモリから操作できない場合に、バスＣ１０への必要なバスアクセスは常に、実行ユニットに対応づけられているバス接続端を介して操作される（ここでは実行ユニットＣ５１０ａについてはバス接続ユニットＣ５５０ａ、そして実行ユニットＣ５１０ｂについてはバス接続ユニットＣ５５０ｂ）。同時に行われる、実行ユニットによるパフォーマンスモードにおけるアクセスは、バスＣ１０への同時アクセスによってバス競合が生じる場合は別にして、同時にユニットＣ５３０によって操作することもできる。
【００６１】
比較モードにおいて、実行ユニットのメモリアクセスは、パフォーマンスモードにおいては使用されない、キャッシュメモリ（ここではＣ５３３とＣ５３６）によって操作される。バスアクセスのためにどのバス接続端が使用されるか、は任意である。比較ユニットＣ５２０が、比較モードにおいてすべての実行ユニットの出力信号を比較して、異なる場合にエラー信号を生成する。選択的にここでも、比較ユニットＣ５２０をバス接続ユニットＣ５５０ａ、Ｃ５５０ｂと接続し（ここには記入されていない）、比較モードにおいて２つのコアの出力信号が異なる場合に、メモリアクセスを阻止することができる。パフォーマンスモードにおいては、ユニットＣ５２０は非能動化されている。非能動化は、図１の比較ユニットＣ１６０の場合と同様に行われる。
【００６２】
他の実施形態において、ユニットＣ５３０は、比較モードにおいてすべてのキャッシュメモリ（ここではＣ５３１、Ｃ５３３、Ｃ５３４、Ｃ５３６）が使用されるが、キャッシュメモリから、パフォーマンスモードにおいては使用されない内容のみが廃棄されて、入れ替えられるように、構築することができる。
【００６３】
ここに例示したすべての実装について、切替え・比較ユニットが常に実行ユニットとそれに対応づけられたキャッシュとの間に位置すると言える。比較モードにおいてキャッシュが使用される場合に、このキャッシュはＥＣＣまたはパリティによって安全保証されなければならず、それによってここでもエラーが認識される。付加的に、キャッシュのために"write  through"ストラテジーが使用され、キャッシュの内容が"Bus  snooping"によって矛盾なしに維持されると、効果的である。
【図面の簡単な説明】
【００６４】
【図１】本発明の実施形態に係る２つの実行ユニットを有し、その一方のみがパフォーマンスモードと比較モードにおいてキャッシュを介してバスＣ１０へアクセスするシステムＣ１００を示す説明図である。
【図２】本発明の実施形態に係る２つの実行ユニットを有し、その両方がパフォーマンスモードと比較モードにおいてキャッシュを介してバスＣ１０へアクセスするが、そのうちの一方だけが比較モードにおいて利用されるシステムＣ１００ｃを示す説明図である。
【図３】本発明の実施形態に係る２つの実行ユニットを有し、その一方のみがパフォーマンスモードにおいてキャッシュを介してバスＣ１０へアクセスするシステムＣ１００ａを示す説明図である。比較モードにおいてはキャッシュは使用されない。
【図４】本発明の実施形態に係る２つの実行ユニットを有し、その両方がパフォーマンスモードと比較モードにおいてキャッシュを介してバスＣ１０へアクセスするシステムＣ２００を示す説明図である。比較モードにおいては、バスへのアクセスは別体のバス接続ユニットを介して行われる。
【図５】本発明の実施形態に係る２つの実行ユニットを有し、その両方がパフォーマンスモードと比較モードにおいてキャッシュを介してバスＣ１０へアクセスするシステムＣ２００ａを示す説明図である。比較モードにおいては、バスへのアクセスは別体のキャッシュと別体のバス接続ユニットを介して行われる。
【図６】本発明の実施形態に係る２つの実行ユニットを有し、その両方がパフォーマンスモードと比較モードにおいてキャッシュを介してバスＣ１０へアクセスするが、比較モードにおいてはその一方のみが利用されるシステムＣ３００を示す説明図である。比較モードにおいて利用されるキャッシュは、システムＣ３００の実際のモードにしたがって、その課題のために内部で種々のメモリを利用する。
【図７】本発明の実施形態に係る２つの実行ユニットを有し、その両方がパフォーマンスモードと比較モードにおいてキャッシュを介してバスＣ１０へアクセスするが、比較モードにおいてはその一方のみが利用されるシステムＣ４００を示す説明図である。比較モードにおいて利用されるキャッシュは、システムＣ４００の実際のモードにしたがって、その課題のために内部で種々のメモリを利用する。この２つのメモリの互いに対する大きさの比は、別体のユニットによって制御される。
【図８】本発明の実施形態に係るキャッシュユニットを介してバスＣ２０へアクセスする、２つの実行ユニットを有するシステムＣ５００を示す説明図である。システムＣ５００のモードにしたがって実行ユニットのメモリアクセスが異なるように操作される。
【図１】
2009508188.tif 000003
【図２】
2009508188.tif 000004
【図３】
2009508188.tif 000005
【図４】
2009508188.tif 000006
【図５】
2009508188.tif 000007
【図６】
2009508188.tif 000008
【図７】
2009508188.tif 000009
【図８】
2009508188.tif 000010
【国際調査報告】
2009508188.tif 000011
2009508188.tif 000012
2009508188.tif 000013
2009508188.tif 000014
2009508188.tif 000015
2009508188.tif 000016