(57)【要約】一時記憶装置、特にキャッシュが設けられ、さらに、切換手段と比較手段とが設けられ、パフォーマンスモードと比較モードとの間で切り換え可能な、少なくとも２つの命令実行ユニットを有するコンピュータシステムにおいて記憶装置へのアクセスを制御する方法および装置であり、比較モードにおいて命令実行ユニットは一時記憶装置へアクセスせず、パフォーマンスモードにおいて少なくとも１つの命令実行ユニットが一時記憶装置へアクセスすることを特徴とする。【選択図】図３
2009505177.tif 000002
【特許請求の範囲】
【請求項１】
一時記憶装置、特にキャッシュが設けられ、さらに、切換手段と比較手段とが設けられ、パフォーマンスモードと比較モードとの間で切り換え可能な、少なくとも２つの命令実行ユニットを有するコンピュータシステムにおいて記憶装置へのアクセスを制御する方法であって、
前記比較モードでは、命令実行ユニットは前記一時記憶装置へアクセスせず、前記パフォーマンスモードでは、少なくとも１つの命令実行ユニットが前記一時記憶装置へアクセスすることを特徴とする、方法。
【請求項２】
前記比較モードでは、前記一時記憶装置と接続された命令実行ユニットの前記一時記憶装置との接続がスイッチ手段によって切断されることを特徴とする、請求項１に記載の方法。
【請求項３】
前記比較モードでは、前記比較手段は情報が一致しているかどうかを比較し、一致していない場合はエラーと判定し、エラーの場合は前記一時記憶装置に相当しない記憶装置へのアクセスを阻止することを特徴とする、請求項１に記載の方法。
【請求項４】
前記比較モードでは、前記比較手段は情報が一致しているかどうかを比較し、一致していない場合はエラーと判定し、エラーの場合は前記一時記憶装置に相当しない記憶装置内の情報を無効にするか、またはブロックすることを特徴とする、請求項１に記載の方法。
【請求項５】
前記比較モードでは、前記比較手段は情報が一致しているかどうかを比較し、一致していない場合はエラーと判定し、エラーの場合は前記コンピュータシステムを新たに起動または再起動することを特徴とする、請求項１に記載の方法。
【請求項６】
前記比較モードでは、前記比較手段は情報が一致しているかどうかを比較し、一致していない場合はエラーと判定し、エラーの場合は少なくとも１つの命令実行ユニットを新たに起動または再起動することを特徴とする、請求項１に記載の方法。
【請求項７】
一時記憶装置、特にキャッシュが設けられ、さらに、切換手段と比較手段とが設けられ、パフォーマンスモードと比較モードとの間で切り換え可能な、少なくとも２つの命令実行ユニットを有するコンピュータシステムにおいて記憶装置へのアクセスを制御する装置であって、
前記比較モードでは命令実行ユニットは前記一時記憶装置へアクセスせず、パフォーマンスモードでは少なくとも１つの命令実行ユニットが前記一時記憶装置へアクセスする手段を備えることを特徴とする、装置。
【請求項８】
前記手段は、前記一時記憶装置への命令実行ユニットのアクセスを阻止するか、または可能にするスイッチ手段として形成されることを特徴とする、請求項７に記載の装置。
【請求項９】
前記比較手段は、前記比較モードで情報が一致しているかどうかを比較し、一致していない場合はエラーと判定し、エラーの場合は前記一時記憶装置に相当しない記憶装置へのアクセスを阻止することを特徴とする、請求項７に記載の装置。
【請求項１０】
前記比較手段は、前記比較モードで情報が一致しているかどうかを比較し、一致していない場合はエラーと判定し、エラーの場合は前記一時記憶装置に相当しない記憶装置内の情報を無効にするか、またはブロックすることを特徴とする、請求項７に記載の装置。
【請求項１１】
前記比較手段は、少なくとも１つの命令実行ユニットと前記一時記憶装置との間に配置されることを特徴とする、請求項７に記載の装置。
【請求項１２】
前記一時記憶装置は、少なくとも１つの命令実行ユニットと前記比較手段との間に配置されることを特徴とする、請求項７に記載の装置。
【請求項１３】
前記切換手段および前記比較手段は、切換ユニットおよび比較ユニットとして実現されることを特徴とする、請求項７および１１、あるいは７および１２に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、独立請求項の上位概念に基づいてマイクロプロセッサにおける少なくとも２つの命令実行ユニットの出力データを比較する方法および装置に関する。
【従来技術】
【０００２】
アルファ粒子または宇宙線によって引き起こされる一時的エラーは、半導体集積回路の大きな問題となっている。構造幅が狭小になり、駆動電圧が低下し、クロック周波数が高くなるにつれ、アルファ粒子または宇宙線に起因するピーク電圧により、集積回路内で論理値の誤りが発生する確率が高まっている。その結果、誤った演算結果が生じる可能性がある。そのため、安全性に関わるシステムにおいては、このようなエラーを確実に検出しなければならない。
【０００３】
車両のアンチロック・ブレーキ・システム（ＡＢＳ）のように、電子装置の機能不全を確実に検出する必要がある安全性に関わるシステムにおいては、通常、システムの対応する制御装置自体に予めエラー検出のためのリダンダンシーが設けられている。例えば、上記ＡＢＳシステムにおいては全マイクロコントローラが二重化されており、ＡＢＳ機能全体が冗長性を持って計算され、それらの結果が一致するかどうかがチェックされる。演算結果が不一致の場合には、ＡＢＳシステムは停止される。
【０００４】
少なくとも２つの命令実行ユニットが組み込まれたこのようなプロセッサユニットは、デュアルコアまたはマルチコアアーキテクチャとしても知られている。異なった命令実行ユニット（コア）が同じプログラムセグメントを冗長に、かつクロック同期で実行し、２つの命令実行ユニットの結果が比較され、一致しているかどうかの比較においてエラーが検知される。
【０００５】
プロセッサはキャッシュを備えており、命令およびデータへのアクセスが加速される。このことはデータ量が増加し続け、データ処理が複雑になるほどプロセッサの動作が高速化する状況においては必要なことである。キャッシュによって大容量の（主）メモリへの低速のアクセスが部分的に回避され、これによりプロセッサがデータの準備を待つ必要がなくなる。命令専用キャッシュおよびデータ専用キャッシュが知られているが、データと命令とが同一のキャッシュに格納される「統合キャッシュ」も知られている。また、複数レベル（階層）のキャッシュを有するシステムも公知である。このような多階層のキャッシュは、メモリサイズを等級分けし、種々のレベルにおいて異なった種類のアドレシング方式を用いてプロセッサと（主）メモリとの速度を最適に適合させるために用いられる。
【０００６】
キャッシュを用いる第２の理由は、マルチプロセッサシステムにおけるシステムバスまたはメモリバスのアクセスコンフリクトを回避することにある。このため、各プロセッサにキャッシュを搭載したり、または、マルチレベルキャッシュの場合は対応した複数のキャッシュを搭載したりすることが一般的である。
【０００７】
切り換え可能なデュアルコアシステムにおける公知のキャッシュ構成では、２つのコアの各々が、パフォーマンスモードでコアがアクセスするために用いる専用のキャッシュを有する。比較モードでは、両コアがそれぞれのキャッシュにアクセスする。比較モードでは１つのデータが（命令実行ユニットごとに別々に）数回格納されるという事実と並んで、特に、パフォーマンスモードから比較モードに切り換える場合にかなりの時間を要する。この切り換え時にはキャッシュの状態を適応させなければならない。これを行わないと、比較モードにおいて比較に関わった命令実行ユニットの１つがキャッシュミス（要求されたデータがキャッシュに格納されておらず、補充されなければならない）を有し、別の命令実行ユニットがキャッシュヒット（要求されたデータがキャッシュに格納されており、補充しなくてよい）を有するというようなケースが発生しないことが保証されない。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明の課題は、マルチプロセッサシステムにおいて、切り換え可能なマルチプロセッサシステムにおいてキャッシュを用いる従来の公知の方法の不利な点を回避することにある。この場合の不利な点とは、特に、公知のキャッシュの構成ではパフォーマンスモードから比較モードに切り換える場合にキャッシュを同期化しなければならないことである。
【課題を解決するための手段】
【０００９】
マルチプロセッサシステムのパフォーマンスモードおよび比較モードといった異なったモード間での切り換えを可能にするために、命令実行ユニットの各々が固有のキャッシュを有しない方がよい。なぜなら、特に、比較モードに切り換える場合に、時間がかかるキャッシュの適応を行わなければならないからである。提示する構造によれば、これを大幅に省略することができる。
【００１０】
さらに、異なったモード（比較またはパフォーマンス）のための異なったキャッシュをそのサイズも含めてモードの要求に適合させることができることが望ましい。さらに、モードによってはキャッシュが全く用いられないことは、特に、バスアクセス自体の速度がキャッシュアクセスの速度と特に違わない場合に有利となる。
【００１１】
本発明の利点として、一時記憶装置、特にキャッシュが設けられ、さらに、切換手段と比較手段とが設けられ、パフォーマンスモードと比較モードとの間で切り換え可能な、少なくとも２つの命令実行ユニットを有するコンピュータシステムにおいて記憶装置へのアクセスを制御する方法であって、比較モードでは命令実行ユニットは一時記憶装置へアクセスせず、パフォーマンスモードでは少なくとも１つの命令実行ユニットが一時記憶装置へアクセスすることが記載される。
【００１２】
本発明の利点として、比較モードでは、一時記憶装置と接続された命令実行ユニットの一時記憶装置との接続がスイッチ手段によって切断されることを特徴とする方法が記載される。
【００１３】
本発明の利点として、比較モードでは、比較手段は情報が一致しているかどうかを比較し、一致していない場合はエラーと判定し、エラーの場合は一時記憶装置に相当しない記憶装置へのアクセスを阻止することを特徴とする方法が記載される。
【００１４】
本発明の利点として、比較モードでは、比較手段は情報が一致しているかどうかを比較し、一致していない場合はエラーと判定し、エラーの場合は一時記憶装置に相当しない記憶装置内の情報を無効にするか、またはブロックすることを特徴とする方法が記載される。
【００１５】
本発明の利点として、比較モードでは、比較手段は情報が一致しているかどうかを比較し、一致していない場合はエラーと判定し、エラーの場合はコンピュータシステムを新たに起動する、または再起動することを特徴とする方法が記載される。
【００１６】
本発明の利点として、比較モードでは、比較手段は情報が一致しているかどうかを比較し、一致しない場合はエラーと判定し、エラーの場合は少なくとも１つの命令実行ユニットを新たに起動する、または再起動することを特徴とする方法が記載される。
【００１７】
本発明の利点として、一時記憶装置、特にキャッシュが設けられ、さらに、切換手段と比較手段とが設けられ、この場合、パフォーマンスモードと比較モードとの間で切り換え可能な、少なくとも２つの命令実行ユニットを有するコンピュータシステムにおいてメモリアクセスを制御する装置であって、一時記憶装置へは、比較モードでは命令実行ユニットはアクセスせず、パフォーマンスモードでは少なくとも１つの命令実行ユニットがアクセスする手段を備えることを特徴とする装置が含まれる。
【００１８】
本発明の利点として、上記手段は、一時記憶装置への命令実行ユニットのアクセスを阻止するか、または可能にするスイッチ手段として形成されることを特徴とする装置が含まれる。
【００１９】
本発明の利点として、比較手段は、比較モードで情報が一致しているかどうかを比較し、一致していない場合はエラーと判定し、エラーの場合は一時記憶装置に相当しない記憶装置へのアクセスを阻止することを特徴とする装置が含まれる。
【００２０】
本発明の利点として、比較手段は、比較モードで情報が一致しているかどうかを比較し、一致しない場合はエラーと判定し、エラーの場合は一時記憶装置に相当しない記憶装置内の情報を無効にするか、またはブロックすることを特徴とする装置が含まれる。
【００２１】
本発明の利点として、比較手段が少なくとも１つの命令実行ユニットと一時記憶装置との間に配置されることを特徴とする装置が含まれる。
【００２２】
本発明の利点として、一時記憶装置が少なくとも１つの命令実行ユニットと比較手段との間に配置されることを特徴とする装置が含まれる。
【００２３】
本発明の利点として、切換手段と比較手段とが切換ユニットおよび比較ユニットとして実現されることを特徴とする装置が含まれる。
【００２４】
さらなる有利な点および有利な実施形態は、請求項および明細書の特徴から明らかである。
【実施例の説明】
【００２５】
以下において、命令実行ユニットをプロセッサ／コア／ＣＰＵおよびＦＰＵ（浮動小数点ユニット：Ｆｌｏａｔｉｎｇ  Ｐｏｉｎｔ  Ｕｎｉｔ）、ＤＳＰ（デジタルシグナルプロセッサ：Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）、コプロセッサまたはＡＬＩＵ（算術論理演算ユニット：Ａｒｉｔｈｍｅｔｉｃ  ｌｏｇｉｃａｌ  Ｕｎｉｔ）と呼ぶことができる。
【００２６】
ほとんどのマルチプロセッサシステムにおいて、キャッシュは、システムバスおよび／またはメモリバスのコンフリクトを回避するためだけに用いられている。命令実行ユニットが１つしかない場合には、キャッシュは必要とされないであろう。なぜなら、記憶装置の速さは、命令実行ユニットの読み出し要求に応じるために十分な速さだからである。
【００２７】
図１は、２つの命令実行ユニットＣ１１０ａ、Ｃ１１０ｂを有するマルチプロセッサシステムＣ１００の第１の実施形態を示す。このマルチプロセッサシステムＣ１００は、バスＣ１０を介して記憶装置にアクセスすることができる。ユニットＣ１３０は、システムＣ１００のモードに応じてバスＣ１０へのアクセスの仕方を調整する。パフォーマンスモードではスイッチＣ１３１が閉じ、スイッチＣ１３２は開かれる。したがって命令実行ユニットＣ１１０ｂは、キャッシュＣ１２０とバス端子Ｃ１５０とを介してバスＣ１０にアクセスする。命令実行ユニットＣ１１０ａは、端子Ｃ１４０を介してバスＣ１０と直接接続される。キャッシュＣ１２０が適切な大きさであれば、命令実行ユニットＣ１１０ｂの記憶装置へのアクセスは主にＣ１２０によって提供されるので、バスＣ１０へのアクセスが必要となることはまれである。命令実行ユニットＣ１１０ａの記憶装置へのアクセスは、常にバスＣ１０へのアクセスを伴う。記憶装置へのアクセスがキャッシュＣ１２０によって提供できない場合のみユニットＣ１５０を介してバスにアクセスされる。同時に、命令実行ユニットＣ１１０ａによるバスＣ１０へのアクセスがＣ１４０を介して行われた場合、バスコンフリクトが生じるが、このバスコンフリクトはバスプロトコルによって解決されなければならない。キャッシュＣ１２０はソフトウェアからは不可視であるので、命令実行ユニットＣ１１０ａがＣ１４０を介してキャッシュＣ１２０にも存在する記憶装置内のデータを変更するかどうかを知るために、ユニットＣ１２０がバスＣ１０を監視（「バススヌーピング（Ｂａｓ−Ｓｎｏｏｐｉｎｇ）」）するのがよい。記憶装置内のデータが変更される場合、Ｃ１２０内の対応するデータを新しいデータと置換するか、または無効の印を付けなければならない。
【００２８】
比較モードでは、スイッチＣ１３２が閉じ、スイッチＣ１３１は開いている。両命令実行ユニットは、共にキャッシュＣ１２０を介してバスＣ１０にアクセスする。比較ユニットＣ１６０は両命令実行ユニットの出力信号を比較して、異なる場合はエラー信号を生成する。選択的に、比較ユニットＣ１６０をバス端子ユニットＣ１５０と接続させてもよく（図示せず）、両コアの出力信号が異なる場合は書き込みアクセスを阻止することができる。パフォーマンスモードでは、ユニットＣ１６０が非アクティブ化される。比較ユニットの非アクティブ化は種々の方法で実現できる：ユニットＣ１６０による比較が行われず、比較のための信号がユニットＣ１６０に印加されないか、または、比較は行われるがその結果が無視されるなどである。
【００２９】
本発明の一実施形態をシステムＣ１００ｃに関する図２に示す。この実施形態において、図１にて示した素子は同じ態様で動作する。命令実行ユニットＣ１００ａは、パフォーマンスモードでスイッチＣ１３１が閉じるが、同様にキャッシュＣ１４０ａとバス端子Ｃ１４０とを介してバスＣ１０にアクセスする。比較モードでは、キャッシュＣ１２０は、閉じたスイッチＣ１３２を介して２つの命令実行ユニットＣ１１０ａ、１１０ｂによって用いられ、Ｃ１４０ａはパフォーマンスモードでのみＣ１１０ａによって用いられる。両キャッシュＣ１２０、Ｃ１４０ａのサイズが異なる可能性があるが、それに応じて、異なったモードに適合されたタスクのために最適化することができる。
【００３０】
図３は、本発明のさらなる実施形態を示す。ここでＣ１００ａはマルチプロセッサシステムを表す。この場合、パフォーマンスモードではスイッチＣ１３３が開き、スイッチＣ１３４は閉じられ、命令実行ユニットＣ１１０ｂは、キャッシュＣ１２０とバス端子ユニットＣ１５０とを介してバスＣ１０にアクセスする。別の命令実行ユニットＣ１１０ａは、ユニットＣ１４０を介してバスＣ１０に直接アクセスする。これに対して比較モードでは、スイッチＣ１３３が閉じ、Ｃ１３４が開いており、両命令実行ユニットがＣ１４０を介してバスＣ１０に直接アクセスし、キャッシュＣ１２０は用いられない。比較ユニットＣ１６０は両命令実行ユニットの出力信号を比較して、異なる場合はエラー信号を生成する。ここでもまた選択的に比較ユニットＣ１６０をバス端子ユニットＣ１４０と接続してもよく（図示せず）、両命令実行ユニットの出力信号が異なる場合は書き込みアクセスを阻止することができる。パフォーマンスモードでは、ユニットＣ１６０が非アクティブ化される。非アクティブ化は、上述の種々の方法で実現できる。
【００３１】
マルチプロセッサシステムのさらなる実施形態でも同様に、キャッシュは、メモリバスでのアクセスコンフリクトを回避するためだけに用いられる。図４は、異なった態様でバスＣ１０を介して記憶装置にアクセスすることができる２つの命令実行ユニットＣ２１０ａ、Ｃ２１０ｂを有するマルチプロセッサシステムＣ２００を示す。ユニットＣ２３０は、システムＣ２００のモードに応じてバスＣ１０へのアクセスの仕方を調整する。パフォーマンスモードでは、スイッチＣ２３１およびＣ２３４が閉じ、スイッチＣ２３２およびＣ２３３は開かれる。したがって、命令実行ユニットＣ２１０ａはキャッシュＣ２４０ａとバス端子Ｃ２５０ａとを介して、そして、命令実行ユニットＣ２１０ｂは、キャッシュ２４０ｂとバス端子Ｃ２５０ｂとを介してバスＣ１０にアクセスする。命令実行ユニットのそれぞれのキャッシュからの記憶装置へのアクセスを提供できない場合にのみバスＣ１０へのアクセスを行えばよい。別の命令実行ユニットによるバスＣ１０へのアクセスが同時に行われた場合、バスコンフリクトが生じ、このバスコンフリクトは、バスプロトコルによって解決されなければならない。キャッシュＣ２４０ａおよびＣ２４０ｂはソフトウェアからは不可視であるので、命令実行ユニットＣ２１０ａ、Ｃ２１０ｂによってそれぞれのキャッシュｃ２４０ａ、Ｃ２４０ｂに書き込まれるデータも同様に、すぐにそれぞれのバス端子Ｃ２５０ａ、Ｃ２５０ｂを介してバスＣ１０に到達して記憶装置に書き込まれる（「ライトスルー（Ｗｒｉｔｅ  ｔｈｒｏｕｇｈ）」方式）のがよい。
【００３２】
さらに、命令実行ユニットＣ２１０ａがＣ２５０ａを介して、またはＣ２１０ｂがＣ２５０ｂを介して、それぞれ別のキャッシュにも存在するメモリ内のデータを変更するかどうかを知るために、ユニットＣ２４０ａ、ｃ２４０ｂが（Ｃ２５０ａまたはＣ２５０ｂを介して）バスＣ１０を監視（「バススヌーピング」）するのがよい。データを変更する場合、対応するデータが当該キャッシュ内の新しいデータと置換されるか、または、無効の印を付けなければならない。
【００３３】
比較モードでは、スイッチＣ２３２およびＣ２３３が閉じ、スイッチＣ２３１およびＣ２３４が開いている。両命令実行ユニットは共にＣ２６０を介してバスＣ１０にアクセスする。キャッシュ（Ｃ２４０ａ、Ｃ２４０ｂ）は使用されない。比較ユニットＣ２２０は両命令実行ユニットの出力信号を比較して、異なる場合はエラー信号を生成する。選択的に、比較ユニットＣ２２０をバス端子ユニットＣ２６０と接続してもよく（図示せず）、両命令実行ユニットの出力信号が異なる場合は書き込みアクセスを阻止することができる。パフォーマンスモードでは、ユニットＣ２２０は非アクティブ化される。非アクティブ化は、上述の種々の方法で実現できる。
【００３４】
図５は、マルチプロセッサのさらなる実施形態Ｃ２００ａを示す。ここでは、図４に示した実施形態Ｃ２００とは異なり、比較モードに付加的キャッシュ２７０が挿入される。図４より既知の構成要素は上述の態様と同様に動作する。このシステムにおいても、すべてのキャッシュに対して「ライトスルー」方式が用いられ、すべてのキャッシュの内容が「バススヌーピング」によって安定的に保持されるのがよい。
【００３５】
ここで、図４および図５ですでに記載した変形例は、２つ以上の命令実行ユニットに拡大される。この場合、命令実行ユニットあたり１つのキャッシュユニットと１つのバス端子ユニットとが存在し、これらはパフォーマンスモードで利用される。比較モードでは、すべての命令実行ユニットがバス端子ユニットＣ２６０（選択的にキャッシュＣ２７０を用いる）を介してバスＣ１０にアクセスする。
【００３６】
本発明のさらなる実施形態を図６に示す。ここでもプロセッサユニットＣ３００は、少なくとも２つの命令実行ユニットＣ３１０ａ、Ｃ３１０ｂからなり、これらはそれぞれキャッシュＣ３４０ａ、３４０ｂとバス端子Ｃ３５０ａ、Ｃ３５０ｂとを介してさらにバスＣ１０を介してメモリにアクセスする。パフォーマンスモードでは、ユニットＣ３３０におけるスイッチＣ３３２が開き、スイッチＣ３３１は閉じられる。この構成において命令実行ユニットＣ３１０ａは、キャッシュＣ３４０ａとバス端子Ｃ３５０ａとを介し、命令実行ユニットＣ３１０ｂは、キャッシュ３４０ｂとバス端子Ｃ３５０ｂとを介してバスＣ１０にアクセスする。
【００３７】
比較モードでは、切換ユニットＣ３３０においてスイッチＣ３３２が閉じ、スイッチＣ３３１が開いている。ここで両命令実行ユニットは、キャッシュＣ３４０ａとバス端子Ｃ３５０ａとを介してバスＣ１０にアクセスする。ユニットＣ３４０ａ自体は、キャッシングのために用いられる２つの別個のキャッシュメモリまたはキャッシュ領域Ｃ３４１、Ｃ３４２からなる。パフォーマンスモードでは、メモリ／領域Ｃ３４１のみが使用されるが、比較モードでは、メモリ／領域Ｃ３４１に加えてメモリ／領域Ｃ３４２がキャッシングに使用される。比較ユニットＣ３２０は、比較モードにおいて両命令実行ユニットの出力信号を比較して、異なる場合はエラー信号を生成する。ここでもまた選択的に比較ユニットＣ３２０をバス端子ユニットＣ３５０ａと接続してもよく（図示せず）、比較モードにおいて両コアの出力信号が異なる場合は書き込みアクセスを阻止することができる。パフォーマンスモードでは、図１に示した比較ユニットＣ１６０に関してすでに述べたように、比較ユニットＣ３２０は非アクティブ化される。
【００３８】
さらなる実施形態において、ユニットＣ３４０ａの構造を、比較モードではメモリＣ３４１およびＣ３４２が一緒に用いられるが、比較モードでメモリＣ３４２から内容のみを排除して、別の内容と置換できるようにすることができる。
【００３９】
図６の形態のすべての実施形態は、２つ以上の命令実行ユニットに拡大される。この場合、命令実行ユニットあたり１つのキャッシュユニットと１つのバス端子ユニットとが存在し、これらはパフォーマンスモードで利用される。比較モードでは、すべての命令実行ユニットがキャッシュＣ３４０ａとバス端子ユニットＣ３５０ａとを介してバスＣ１０にアクセスする。
【００４０】
本発明のさらなる可能な実施形態を図７に示す。ここでもプロセッサユニットＣ４００は、少なくとも２つの命令実行ユニットＣ４１０ａ、Ｃ４１０ｂからなり、これらは、キャッシュ（Ｃ４４０ａ、Ｃ４４０ｂ）とバス端子（Ｃ４５０ａ、Ｃ４５０ｂ）とを介してバスＣ１０に到達して（主）記憶装置にアクセスする。
【００４１】
パフォーマンスモードでは、ユニットＣ４３０においてスイッチＣ４３２が開き、スイッチＣ４３１が閉じられる。この構成では、命令実行ユニットＣ４１０ａは、キャッシュＣ４４０ａとバス端子Ｃ４５０ａとを介して、命令実行ユニットＣ４１０ｂは、キャッシュＣ４４０ｂとバス端子Ｃ４５０ｂとを介してバスＣ１０にアクセスする。
【００４２】
比較モードでは、切換ユニットＣ４３０においてスイッチＣ４３２が閉じ、スイッチＣ４３１は開いている。ここで両命令実行ユニットがキャッシュＣ４４０ａとバス端子Ｃ４５０とを介してバスＣ１０にアクセスする。ここでもまたユニットＣ４４０ａ自体は、キャッシングのために使用される２つの別個のキャッシュメモリまたは領域Ｃ４４１、Ｃ４４２からなる。パフォーマンスモードではメモリ／領域Ｃ４４１のみが用いられるが、比較モードではメモリ／領域Ｃ４４２がキャッシングに使用される。両メモリ／領域Ｃ４４１、Ｃ４４２のサイズの和は一定であるが、Ｃ４４１とＣ４４２とのサイズの比率はユニットＣ４４３によって制御される。このユニットＣ４４３によって動作中に比率を変更することが可能である。
【００４３】
比較ユニットＣ４２０は、比較モードにおいて両命令実行ユニットの出力信号を比較し、異なる場合はエラー信号を生成する。ここでもまた選択的に、比較ユニットＣ４２０をバス端子ユニットＣ４５０ａと接続してもよく（図示せず）、両コアの出力信号が異なる場合は書き込みアクセスを阻止することができる。パフォーマンスモードでは、図１の比較ユニットＣ１６０に関してすでに述べたように、ユニットＣ４２０が非アクティブ化される。
【００４４】
次にユニットＣ４４３の機能を保持しながらユニットＣ４４０ａを以下のように実行することができる：
１．比較モードにおいて、両メモリＣ４４１、Ｃ４４２をキャッシュのために用いる。
２．比較モードにおいて、両メモリＣ４４１、Ｃ４４２をキャッシュのために用いるが、この場合、比較モードにおいてメモリＣ４４２から内容のみを排除し、別の内容と置換することができる。
【００４５】
図７の構成のすべての実施形態は、２つ以上の命令実行ユニットに拡大される。この場合、命令実行ユニットあたり１つのキャッシュユニットと１つのバス端子ユニットとが存在し、これらはパフォーマンスモードで利用される。比較モードでは、すべての命令実行ユニットがキャッシュＣ４４０ａとバス端子ユニットＣ４５０ａとを介してバスＣ１０にアクセスする。
【００４６】
図８は、さらなる可能な実施形態を示す。プロセッサシステムＣ５００において、少なくとも２つの命令実行ユニットＣ５１０ａおよびＣ５１０ｂが存在する。両命令実行ユニットは、キャッシュユニットＣ５３０と接続される。このユニットＣ５３０は、命令実行ユニットのバス端子ユニットＣ５５０ａ、Ｃ５５０ｂを有し、これらを介してバスＣ１０へ、そして記憶装置にアクセスすることができる。キャッシュユニットＣ５３０は、接続された命令実行ユニット１つあたり２つのキャッシュメモリ（ここではＣ５１０ａはＣ５３１およびＣ５３３を、Ｃ５１０ｂはＣ５３４およびＣ５３６を）を有する。これらのメモリペアのサイズの和は一定であるが、比率は、それぞれ１つのユニット（Ｃ５３１、Ｃ５３３にはＣ５３２を、Ｃ５３４、Ｃ５３６にはＣ５３５）を介して動作中に変更することができる。
【００４７】
パフォーマンスモードでは、命令実行ユニットの記憶装置へのアクセスは、命令実行ユニットに付随するメモリペアによって常に「キャッシュされる」。この場合、両キャッシュメモリのうちの１つのみが（ここではＣ５１０ａにはＣ５３１が、Ｃ５１０ｂにはＣ５３４が）用いられる。命令実行ユニットの記憶装置へのアクセスがキャッシュメモリから提供することができない場合、Ｃ１０への必要なバスアクセスは、常に、命令実行ユニットに付随するバス端子を（ここではＣ５１０ａについてはＣ５５０ａを、Ｃ５１０ｂについてはＣ５５０ｂを）介して行われる。パフォーマンスモードでの命令実行ユニットによるアクセスは同時に行われ、Ｃ１０への同時のアクセスによってバスコンフリクトが発生した場合を除いて、同時にユニットＣ５３０によっても提供され得る。
【００４８】
比較モードでは、命令実行ユニットの記憶装置へのアクセスがパフォーマンスモードで用いられないキャッシュメモリ（ここではＣ５３３およびＣ５３６）によって提供される。バスアクセスのためにどのバス端子を用いるかは任意である。比較ユニットＣ５２０は、比較モードにおいてすべての命令実行ユニットの出力信号を比較して、異なる場合はエラー信号を生成する。ここでもまた選択的に、比較ユニットＣ５２０をバス端子ユニットＣ５５０ａ、Ｃ５５０ｂと接続してもよく（図示せず）、比較モードにおいて両コアの出力信号が異なる場合は書き込みアクセスを阻止することができる。パフォーマンスモードでは、ユニットＣ５２０は非アクティブ化される。非アクティブ化は、図１の比較ユニットＣ１６０の場合のように行うことができる。
【００４９】
さらなる実施形態において、ユニットＣ５３０の構造を、比較モードでは全キャッシュメモリ（ここでは、Ｃ５３１、Ｃ５３３、Ｃ５３４、Ｃ５３６）が用いられるが、パフォーマンスモードで用いられないキャッシュメモリから内容のみを排除して置換できるようにすることができる。
【００５０】
上記の例示的実装のすべてについて該当することは、切換ユニットおよび比較ユニットが、常に命令実行ユニットとこれに付随するキャッシュとの間に位置することである。比較モードでキャッシュが用いられる場合、このキャッシュをＥＣＣまたはパリティで保護してここでもエラーが検知されるようにしなければならない。さらに、キャッシュに「ライトスルー」方式が用いられ、キャッシュの内容が「バススヌーピング」によって安定的に保持されるのがよい。
【図面の簡単な説明】
【００５１】
【図１】パフォーマンスモードおよび比較モードにおいて２つのうちの１つのみがキャッシュを介してバスＣ１０にアクセスする、２つの命令実行ユニットを有するシステムＣ１００を示す。
【図２】パフォーマンスモードおよび比較モードにおいて２つともキャッシュを介してバスＣ１０にアクセスするが、２つのうちの１つのみが比較モードで利用される、２つの命令実行ユニットを有するシステムＣ１００を示す。
【図３】パフォーマンスモードにおいて２つのうちの１つのみがキャッシュを介してバスＣ１０にアクセスする、２つの命令実行ユニットを有するシステムＣ１００を示す。比較モードではキャッシュは用いられない。
【図４】パフォーマンスモードおよび比較モードにおいて２つともキャッシュを介してバスＣ１０にアクセスする、２つの命令実行ユニットを有するシステムＣ２００を示す。比較モードでは別々のバス端子ユニットを介したバスへのアクセスは行われない。
【図５】２つのうちの両方がパフォーマンスモードおよび比較モードにおいてキャッシュを介してバスＣ１０にアクセスする、２つの命令実行ユニットを有するシステムＣ２００aを示す。比較モードでは、別々のキャッシュおよび別々のバス端子ユニットを介したバスへのアクセスは行われない。
【図６】パフォーマンスモードおよび比較モードにおいて２つともキャッシュを介してバスＣ１０にアクセスするが、２つのうちの１つのみが比較モードで利用される、２つの命令実行ユニットを有するシステムＣ３００を示す。比較モードで利用されたキャッシュは、そのタスクのためにシステムＣ３００の実モードに応じて内部の異なったメモリを利用する。
【図７】パフォーマンスモードおよび比較モードにおいて２つともキャッシュを介してバスＣ１０にアクセスするが、２つのうちの１つのみが比較モードで利用される、２つの命令実行ユニットを有するシステムＣ４００を示す。比較モードで利用されたキャッシュは、そのタスクのためにシステムＣ４００の実モードに応じて内部の異なったメモリを利用する。これらの両メモリのサイズの比率は、別個のユニットによって制御される。
【図８】キャッシュユニットを介してバスＣ１０にアクセスする２つの命令実行ユニットを有するシステムＣ５００を示す。システムＣ５００のモードに応じて命令実行ユニットのメモリアクセスの仕方が異なる。
【図１】
2009505177.tif 000003
【図２】
2009505177.tif 000004
【図３】
2009505177.tif 000005
【図４】
2009505177.tif 000006
【図５】
2009505177.tif 000007
【図６】
2009505177.tif 000008
【図７】
2009505177.tif 000009
【図８】
2009505177.tif 000010
【国際調査報告】
2009505177.tif 000011
2009505177.tif 000012
2009505177.tif 000013
2009505177.tif 000014
2009505177.tif 000015
2009505177.tif 000016