(57)【要約】少なくとも２つの処理ユニットと、データまたは指令の少なくともいずれかのための少なくとも１つの第１のメモリもしくはメモリ領域とを有する計算機システム内でデータまたは指令の少なくともいずれかを記憶する装置および方法であって、装置には、少なくとも２つの駆動モードの間を切替える切替手段、および比較手段が設けられており、第１の駆動モードが比較モードに相当し、第２の駆動モードがパフォーマンスモードに相当する。ここで、装置内には、第２のメモリもしくはメモリ領域が設けられており、装置がキャッシュメモリシステムとして形成され、かつ少なくとも２つの分離されたポートを備えており、第２のメモリもしくはメモリ領域の同一または異なるメモリセルに対して、少なくとも２つの処理ユニットがポートを介してアクセスし、第１のメモリシステムからのデータまたは指令の少なくともいずれかがブロック単位で一時的に記憶される。【選択図】図１
2009505181.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも２つの処理ユニットと、データまたは指令の少なくともいずれかのための少なくとも１つの第１のメモリもしくはメモリ領域とを有する計算機システム内で、データまたは指令の少なくともいずれかを記憶する方法であって、少なくとも２つの駆動モードの間を切替える切替手段、および比較手段が設けられており、第１の駆動モードが比較モードに相当し、第２の駆動モードがパフォーマンスモードに相当する、前記方法において、
装置内に第２のメモリもしくはメモリ領域が設けられており、前記装置がキャッシュメモリシステムとして形成され、かつ少なくとも２つの分離されたポートを備えており、前記第２のメモリもしくはメモリ領域の同一または異なるメモリセルに対して、前記少なくとも２つの処理ユニットが前記ポートを介してアクセスし、前記第１のメモリシステムからの前記データまたは指令の少なくともいずれかがブロック単位で一時的に記憶されることを特徴とする、計算機システム内でデータまたは指令の少なくともいずれかを記憶する方法。
【請求項２】
前記第２のメモリもしくはメモリ領域が、相互に依存せずに読取りまたは書込み可能な、少なくとも２つのアドレス領域に分割されていることを特徴とする、請求項１に記載の方法。
【請求項３】
イネーブル信号を生成するアドレスデコーダが設けられており、前記イネーブル信号は、複数のポートによる１つのアドレス領域への同時アクセスに際して、１つのポートのみによるアクセスを可能にし、少なくとも１つの他のポートによるアクセスを禁止し、または特にウェイト信号により遅らせることを特徴とする、請求項２に記載の方法。
【請求項４】
２つより多いポート、および選択装置が設けられており、相互に依存しないアドレス領域へのアクセスを複数の段階を有する前記選択装置を介して行うために、前記イネーブル信号が前記段階を介して伝達されることを特徴とする、請求項１に記載の方法。
【請求項５】
前記少なくとも２つのポートのアクセス可能性を切替える、少なくとも１つのモード信号が存在することを特徴とする、請求項２〜４のいずれかに記載の方法。
【請求項６】
前記少なくとも２つのポートのアクセス可能性を切替える、少なくとも１つのコンフィグレーション信号が存在することを特徴とする、請求項２〜４のいずれかに記載の方法。
【請求項７】
２つの処理ユニットが読取りアクセスを設定することを特徴とする、請求項１に記載の方法。
【請求項８】
２つの処理ユニットによる前記読取りアクセスの設定に際して、前記データまたは指令の少なくともいずれかに対応づけられた識別子またはアクセスアドレスが比較されて、前記識別子またはアクセスアドレスが一致する場合にのみ、前記キャッシュへの読取りアクセスが通過接続されることを特徴とする、請求項７に記載の方法。
【請求項９】
前記読取りアクセスの設定に際して、２つの処理ユニットが前記キャッシュメモリシステムにアクセスすることを特徴とする、請求項１に記載の方法。
【請求項１０】
２つの処理ユニットによる読取りアクセスに際して読取られるデータまたは指令の少なくともいずれかが比較されて、前記読取られるデータまたは指令の少なくともいずれかが一致しない場合に、信号、特にエラー信号が生成されることを特徴とする、請求項９に記載の方法。
【請求項１１】
前記第２のメモリもしくはメモリ領域への書込みアクセスに際して、書込まれるデータまたは指令の少なくともいずれかが比較されて、前記書込まれるデータまたは指令の少なくともいずれかが一致する場合にのみ、前記書込まれるデータまたは指令の少なくともいずれかが書込まれることを特徴とする、請求項１に記載の方法。
【請求項１２】
書込みアクセスに際して、前記データまたは指令の少なくともいずれかが比較されるまで、前記処理ユニットが停止されることを特徴とする、請求項１１に記載の方法。
【請求項１３】
前記データまたは指令の少なくともいずれかがバッファメモリもしくはバッファメモリ領域に書込まれ、比較が成功した場合にのみ、前記第２のメモリもしくはメモリ領域へ引継がれることを特徴とする、請求項１１に記載の方法。
【請求項１４】
前記第２のメモリもしくはメモリ領域への書込みアクセスに際して、書込まれるデータまたは指令の少なくともいずれかが１つの処理ユニットのみにより書込まれ、並列して実行される比較により互いに異なっている場合に、書込まれたデータまたは指令が遮断され、または無効として定義されることを特徴とする、請求項１に記載の方法。
【請求項１５】
前記遮断または無効定義が、少なくとも１つのビットのセットまたはリセットにより行われることを特徴とする、請求項１４に記載の方法。
【請求項１６】
前記遮断または無効定義が、他の、特に古いデータまたは指令の少なくともいずれかによる上書きにより行われることを特徴とする、請求項１４に記載の方法。
【請求項１７】
前記遮断または無効定義が、前記第２のメモリもしくはメモリ領域の内容テーブルの適切な記入事項の削除により行われることを特徴とする、請求項１４に記載の方法。
【請求項１８】
少なくとも２つの処理ユニットと、データまたは指令の少なくともいずれかのための少なくとも１つの第１のメモリもしくはメモリ領域とを有する計算機システム内でデータまたは指令の少なくともいずれかを記憶する装置であって、少なくとも２つの駆動モードの間を切替える切替手段、および比較手段が設けられており、第１の駆動モードが比較モードに相当し、第２の駆動モードがパフォーマンスモードに相当する、前記装置において、
前記装置内に第２のメモリもしくはメモリ領域が設けられており、前記装置がキャッシュメモリシステムとして形成され、かつ少なくとも２つの分離されたポートを備えており、前記第２のメモリもしくはメモリ領域の同一または異なるメモリセルに対して、前記少なくとも２つの処理ユニットが前記ポートを介してアクセスし、前記第１のメモリシステムからの前記データまたは指令の少なくともいずれかがブロック単位で一時的に記憶されることを特徴とする、計算機システム内でデータまたは指令の少なくともいずれかを記憶する装置。
【請求項１９】
キャッシュメモリシステム内に、データと指令とが分離して格納され、データメモリもしくはデータメモリ領域と、指令メモリもしくは指令メモリ領域とが設けられていることを特徴とする、請求項１８に記載の装置。
【請求項２０】
前記第２のメモリもしくはメモリ領域が、相互に依存せずに読取りまたは書込み可能な、少なくとも２つのアドレス領域に分割されていることを特徴とする、請求項１８に記載の装置。
【請求項２１】
イネーブル信号を生成するアドレスデコーダが設けられており、前記イネーブル信号は、複数のポートによる１つのアドレス領域への同時アクセスに際して、１つのポートのみによるアクセスを可能にし、少なくとも１つの他のポートによるアクセスを禁止し、または特にウェイト信号により遅らせることを特徴とする、請求項１８に記載の装置。
【請求項２２】
２つより多いポート、および選択装置が設けられており、相互に依存しないアドレス領域へのアクセスを複数の段階を有する前記選択装置を介して行なうために、前記イネーブル信号が前記段階を介して伝達されることを特徴とする、請求項１８に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、高速のバッファメモリ（キャッシュ）を有するマイクロプロセッサシステムに関するものであって、この文脈においてデュアルポートコアについて説明する。
【背景技術】
【０００２】
従来技術から、少なくとも２つの統合されたコア（ＣＰＵ）を有するマイクロコントローラが知られている。このマイクロコントローラは、デュアルコアまたはマルチコアシステムの名称でも知られている。その場合に少なくとも２つのコアが冗長に、かつクロック同期で同一のプログラム、プログラムセグメントまたは指令を実行し、２つのコアの結果が比較されて、一致について比較されることでエラーが認識される。以下において、マルチコアシステムの当該コンフィグレーションは、比較モードと称される。
【０００３】
デュアルコアまたはマルチコアアーキテクチャは、他の適用において、パフォーマンス向上のためにも使用される。２つのコアが、異なるプログラム、プログラムセグメントおよび指令を実行し、それによってパワー向上が得られ、従ってマルチコアシステムの当該コンフィグレーションは、パワーモードまたはパフォーマンスモードと称される。このシステムは、対称のマルチプロセッサシステム（ＳＭＰ）とも称される。
【０００４】
このシステムの拡張は、切替えによって達成することができ、マルチプロセッサシステムの適用目的に応じて、このシステムを比較モードにおいて、またはパフォーマンスモードにおいて駆動することができる。比較モードにおいては、コアの出力信号が比較される。差がある場合に、エラー信号が出力される。パフォーマンスモードにおいては、２つのコアが対称のマルチプロセッサシステム（ＳＭＰ）として作業し、異なるプログラム、プログラムセグメントまたは指令を実行する。比較ユニットは、このモードにおいてはアクティブではない。この拡張は、全てのプログラムセグメントが安全上重要ではなく、これらのためには存在するコンポーネントをエラー検出のためではなく、パフォーマンス向上のために使用することができるという仮定に基づいている。
【０００５】
少なくとも２つの実行ユニットを有する、この種のマルチプロセッサシステムのこれら２つのモードの間で、ソフトウェア制御を介して、駆動を動的に切替えることができる。
【０００６】
マイクロプロセッサには、所定のクロック周波数以上において指示およびデータへのアクセスを高速化するために、高速のバッファメモリ（キャッシュ）が搭載される。これは、一方でデータ量がますます増加するとともに、他方で作業がますます高速化されるプロセッサにおいて、データ処理の複雑性が増加する場合に必要とされる。キャッシュは、メモリユニットへの高速アクセスを可能にし、かつ空間的にプロセッサの近傍に取り付けられているメモリ技術において実現されている。キャッシュ内には、メインメモリからデータおよび／または指令の一部が一時的に記憶されている。キャッシュメモリの使用によって、大きな（メイン）メモリへの低速アクセスが部分的に回避または低減されて、プロセッサはメインメモリにより低速処理されるデータのために待機する必要がなくなる。指令専用のキャッシュ、およびデータ専用のキャッシュが知られているが、データおよび指示を同じキャッシュ内に格納する「ユニファイドキャッシュ（Unified Caches）」も知られている。複数レベル（階層ステップ）のキャッシュを有するシステムも知られている。この種の多段キャッシュは、階層化されたメモリサイズおよび様々なアドレス指定ストラテジーによって、プロセッサと（メイン）メモリとの間で速度を最適に適合するために使用される。
【発明の開示】
【０００７】
従来技術から知られているマルチプロセッサシステムにおいては、各プロセッサにキャッシュを搭載し、またはマルチレベルキャッシュの場合には、それに応じた数で階層的に分割されたキャッシュを搭載することが一般的である。プロセッサがそれぞれ固定的に対応づけられたキャッシュを有し、さらにプロセッサシステムの種々の駆動モードが切替え可能であって、そこで異なるプログラム、プログラムセグメントまたは指令を処理し（パフォーマンスモード）、または同一のプログラム、プログラムセグメントまたは指令を処理して結果を比較する（比較モード）ためには、駆動モードの切替えに際して各コントローラの並列したキャッシュ内のデータまたは指令が消去されなければならず、またはキャッシュへのロードに際してそれぞれの駆動モードの該当する情報が設けられなければならず、それが好ましくはデータとともに格納される。
【０００８】
本発明の目的は、キャッシュサイズを最適化し、かつパフォーマンスモードと比較モードとの間の切替プロセスを高速化する方法および装置を提供することにある。
【０００９】
（発明の利点）
駆動中に異なる駆動モードを切替可能なマルチプロセッサシステムにおいて、１つの共通の（場合によっては階層化された）キャッシュが存在していると特に効果的である。各データまたは各指令がキャッシュに一度のみ格納され、かつキャッシュへの同時アクセスが可能となる。
【００１０】
複数の駆動モードを有するマルチプロセッサシステムにおいて、デュアルポートキャッシュの使用によって以下の利点が生じる。
【００１１】
データ／指令は、異なる実行ユニットおよび／または異なる駆動モードのために何度もキャッシュへロードされて、かつ場合によっては管理（pflegen）される必要がない。
【００１２】
データまたは指令が複数の実行ユニットにおいて、および／または、複数の駆動モードにおいて使用される場合でも、ハードウェア的には、データおよび／または指令毎に単一のメモリ領域のみを準備するだけでよい。
【００１３】
キャッシュ内のデータおよび／または指令は、マルチプロセッサシステムの異なる駆動モードにおいて使用されるか否かで区別される必要がない。
【００１４】
キャッシュ内のデータおよび／または指令は、マルチプロセッサシステムのいずれの駆動モードにおいて処理されるか、および／または、いずれの駆動モードにおいてキャッシュにロードされ、もしくは書込まれたか、および／または、いずれのコアから要請され、もしくは書込まれたかで区別される必要がない。
【００１５】
キャッシュは、駆動モードの切替えに際して、消去される必要がなく、従ってキャッシュ内容を頻繁にロードする必要がなく、メインメモリへのアクセスが低減する。よってより多くのキャッシュを有するシステムに比較して、切替えを高速化することができる。
【００１６】
２つのプロセッサは、キャッシュ内の同一のデータおよび／または指令に対して同時に読取りアクセスすることができる。
【００１７】
ライトスルーモードの代わりに、キャッシュのためにライトバックモードを使用することができ、このモードは特に書込みに際して時間的に有利である。これは、キャッシュ内のデータの上書きに際して初めて、（メイン）メモリの更新が必要とされるからである。２つのプロセッサのためにキャッシュが同一のソースからデータを供給するので、一貫性の問題が生じない。
【００１８】
好ましくは、少なくとも２つの処理ユニットと、データまたは指令の少なくともいずれかのための少なくとも１つの第１のメモリもしくはメモリ領域とを有する計算機システム内で、データまたは指令の少なくともいずれかを記憶する方法が提供される。この場合に、少なくとも２つの駆動モード（Betriebsmodi）の間を切替える切替手段、および比較手段が設けられており、第１の駆動モードが比較モードに相当し、第２の駆動モードがパフォーマンスモードに相当する。この方法は、（計算機システム内でデータまたは指令の少なくともいずれかを記憶する）装置内に第２のメモリもしくはメモリ領域が設けられており、装置がキャッシュメモリシステムとして形成され、かつ少なくとも２つの分離されたポートを備えており、第２のメモリもしくはメモリ領域の同一または異なるメモリセルに対して、少なくとも２つの処理ユニットがポートを介してアクセスし、第１のメモリシステムからのデータまたは指令の少なくともいずれかがブロック単位で一時的に記憶される。
【００１９】
好ましくは、第２のメモリもしくはメモリ領域が、相互に依存せずに読取りまたは書込み可能な、少なくとも２つのアドレス領域に分割されている。
【００２０】
好ましくは、イネーブル信号を生成するアドレスデコーダが設けられており、イネーブル信号は、複数のポートによる１つのアドレス領域への同時アクセスに際して、１つのポートのみによるアクセスを可能にし、少なくとも１つの他のポートによるアクセスを禁止し、または特にウェイト信号により遅らせる。
【００２１】
好ましくは、２つより多いポート、および選択装置が設けられており、相互に依存しないアドレス領域へのアクセスを複数の段階を有する選択装置を介して行うために、イネーブル信号が段階を介して伝達される。
【００２２】
好ましくは、少なくとも２つのポートのアクセス可能性を切替える、少なくとも１つのモード信号が存在する。
【００２３】
好ましくは、少なくとも２つのポートのアクセス可能性を切替える、少なくとも１つのコンフィグレーション信号が存在する。好ましくは、２つの処理ユニットが読取りアクセスを設定する（vorgeben）。
【００２４】
好ましくは、２つの処理ユニットによる読取りアクセスの設定（Vorgabe）に際して、データまたは指令の少なくともいずれかに対応づけられた識別子またはアクセスアドレスが比較されて、識別子またはアクセスアドレスが一致する場合にのみ、キャッシュへの読取りアクセスが通過接続される。
【００２５】
好ましくは、読取りアクセスの設定に際して、２つの処理ユニットがキャッシュメモリシステムにアクセスする。
【００２６】
好ましくは、２つの処理ユニットによる読取りアクセスに際して読取られるデータまたは指令の少なくともいずれかが比較されて、読取られるデータまたは指令の少なくともいずれかが一致しない場合に、信号、特にエラー信号が生成される。
【００２７】
好ましくは、第２のメモリもしくはメモリ領域への書込みアクセスに際して、書込まれるデータまたは指令の少なくともいずれかが比較されて、書込まれるデータまたは指令の少なくともいずれかが一致する場合にのみ、書込まれるデータまたは指令の少なくともいずれかが書込まれる。好ましくは、書込みアクセスに際して、データまたは指令の少なくともいずれかが比較されるまで、処理ユニットが停止される。
【００２８】
好ましくは、データまたは指令の少なくともいずれかがバッファメモリもしくはバッファメモリ領域に書込まれ、比較が成功した後に初めて、第２のメモリもしくはメモリ領域へ引継がれる。好ましくは、第２のメモリもしくはメモリ領域への書込みアクセスに際して、書込まれるデータまたは指令の少なくともいずれかが１つの処理ユニットのみにより書込まれ、並列して実行される比較により互いに異なっている場合に、書込まれたデータまたは指令が遮断（sperren）され、または無効として定義（erklaeren）される。
【００２９】
好ましくは、遮断または無効定義が、少なくとも１つのビットのセットまたはリセットにより行われる。
【００３０】
好ましくは、遮断または無効定義が、他の、特に古いデータまたは指令の少なくともいずれかの上書きにより行われる。
【００３１】
好ましくは、遮断または無効定義が、第２のメモリもしくはメモリ領域の内容テーブル（Inhaltstabelle）の適切な記入事項（Eintragung）の削除（Streichen）により行われる。
【００３２】
好ましくは、少なくとも２つの処理ユニットと、データまたは指令の少なくともいずれかのための少なくとも１つの第１のメモリもしくはメモリ領域とを有する計算機システム内でデータまたは指令の少なくともいずれかを記憶する装置が提供される。この場合に、少なくとも２つの駆動モードの間を切替える切替手段、および比較手段が設けられており、第１の駆動モードが比較モードに相当し、第２の駆動モードがパフォーマンスモードに相当する、本装置は、装置内に第２のメモリもしくはメモリ領域が設けられており、装置がキャッシュメモリシステムとして形成され、かつ少なくとも２つの分離されたポートを備えており、第２のメモリもしくはメモリ領域の同一または異なるメモリセルに対して、少なくとも２つの処理ユニットがポートを介してアクセスし、第１のメモリシステムからのデータまたは指令の少なくともいずれかがブロック単位で一時的に記憶される。
【００３３】
好ましくは、キャッシュシステム内に、データと指令とが分離して格納され、データメモリもしくはデータメモリ領域と、指令メモリもしくは指令メモリ領域とが設けられている。好ましくは、第２のメモリもしくはメモリ領域が、相互に依存せずに読取りまたは書込み可能な、少なくとも２つのアドレス領域に分割されている。
【００３４】
好ましくは、イネーブル信号を生成するアドレスデコーダが設けられており、イネーブル信号は、複数のポートによる１つのアドレス領域への同時アクセスに際して、１つのポートのみによるアクセスを可能にし、少なくとも１つの他のポートによるアクセスを禁止し、または特にウェイト信号により遅らせる。
【００３５】
好ましくは、２つより多いポート、および選択装置が設けられており、相互に依存しないアドレス領域へのアクセスを複数の段階を有する選択装置を介して行うために、イネーブル信号が段階を介して伝達される。
【００３６】
他の利点および好ましい実施形態が、請求項の記載および明細書から明らかにされる。
【発明を実施するための最良の形態】
【００３７】
（実施例の説明）
以下においては、プロセッサ、コア、ＣＰＵ、ＦＰＵ（Floating Point Unit）、ＤＳＰ（Digital Signal Processor）、コプロセッサ、またはＡＬＵ（Arithmetic logical Unit）も実行ユニットとして称される。
【００３８】
本発明は、図１に示す、少なくとも２つの実行ユニット（Ｗ１１０ａ、Ｗ１１０ｂ）、比較ユニット（Ｗ１２０）および切替ユニット（Ｗ１５０）を有するマルチプロセッサシステム（Ｗ１００）に関する。実行ユニットは、信号線またはバス（Ｗ１１２ａ、Ｗ１１２ｂ）を介して比較ユニット（Ｗ１２０）および切替ユニット（Ｗ１５０）と各々に接続されている。切替ユニット（Ｗ１５０）は、２つのシステムインターフェイス（Ｗ１３０ａ、Ｗ１３０ｂ）への少なくとも２つの出力を有している。これらのインターフェイスを介して、メモリ、またはデジタル出力、Ｄ／Ａ変換器、通信コントローラのような周辺機器を駆動することができる。その場合に実行ユニットは、プロセッサ、コア、ＣＰＵ、ＦＰＵ（Floating Point Unit）、ＤＳＰ（Digital Signal Processor）、コプロセッサ、またはＡＬＵ（Arithmetic logical Unit）としても実現することができる。
【００３９】
このマルチプロセッサシステムは、少なくとも２つの駆動モード、比較モードＶＭおよびパフォーマンスモードＰＭで駆動することができる。
【００４０】
パフォーマンスモードＰＭにおいては、異なる実行ユニットにより異なる指令、プログラムセグメントまたはプログラムが並列に実行される。この駆動モードにおいて、比較ユニットは非能動化されている。この駆動モードにおいて、切替ユニット（Ｗ１５０）は、各駆動モードにおいて、各実行ユニットがシステムインターフェイス（Ｗ１３０ａ、Ｗ１３０ｂ）のいずれかと排他的に接続されるように構成されている。システムインターフェイスを介して、実行ユニットの結果をメモリ（Ｗ１７０）へ書込み、または周辺モジュール（Ｗ１８０、Ｗ１９０）へ出力することができる。周辺モジュールは、例えばＡ／Ｄ変換器、または通信システム（例えば、ＳＰＩ、ＬＩＮ、ＣＡＮ、ＦｌｅｘＲａｙ）の通信コントローラであることができる。
【００４１】
比較ユニットを非能動化するために、複数の可能性が存在する。第１の可能性は、比較器に（例えば接続Ｗ１２５を介して）信号を案内し、この信号によって比較器を能動化し、または非能動化することである。そのために比較器内には、それを実行することを可能にする付加的なロジックが設けられている。第２の可能性は、比較されるデータを比較器へ供給しないことである。第３の可能性は、システムレベルで比較器のエラー信号（Ｗ１５５）を無視することである。さらに、エラー信号自体を遮断することもできる。全ての可能性に共通することは、潜在的に比較される２つ以上のデータが異なっている場合に、それがシステムに何らの作用も及ぼさない状態を生じさせることである。この状態が比較器内の手段、または入力信号もしくは出力信号によって達成された場合に、比較器はパッシブまたは非能動化されていると称される。
【００４２】
比較モードＶＭにおいては、２つの実行ユニット（Ｗ１１０ａ、Ｗ１１０ｂ）により同一または同種の指令、プログラムセグメントまたはプログラムが処理される。信号線もしくはバス（Ｗ１１２ａ、Ｗ１１２ｂ）を介して実行ユニットの出力信号が比較ユニット（Ｗ１２０）および切替ユニット（Ｗ１５０）へ案内される。比較ユニットにおいて、２つのデータが一致について調べられる。比較が行われた後に、一致した結果の１つをシステムインターフェイスの１つへ出力可能であるか、または認識された結果の矛盾に基づいて信号を遮断すべきかが、状態信号（Ｗ１２５）を介して切替ユニットに伝えられる。この場合には、比較ユニットから選択的なエラー信号（Ｗ１５５）を出力することができる。このエラー信号は、比較ユニットの代わりに、切替ユニットから出力することもできる（Ｗ１５６）。比較ユニット（Ｗ１２０）および切替ユニット（Ｗ１５０）は、切替および比較ユニット（Ｗ５２０）に一体化することもできる。
【００４３】
（２つより多い実行ユニットにも適用可能な）一般的な切替および比較コンポーネントが図１２に示されている。考慮すべきｎまでの実行ユニットから、ｎまでの入力信号Ｎ１４０、…、Ｎ１４ｎが切替および比較コンポーネントＷ５２０へ入力されている。このコンポーネントは、これらの入力信号からｎまでの出力信号Ｎ１６０、…Ｎ１６ｎを生成することができる。最も単純な場合、「純粋なパフォーマンスモード」において、全ての入力信号Ｎ１４ｉが対応する出力信号Ｎ１６ｉへ案内される。対照的に、「純粋な比較モード」において、全ての入力信号Ｎ１４０、…Ｎ１４ｎが、出力信号Ｎ１６ｉの１つに案内される。
【００４４】
ｎまでの実行ユニット（ｎ＞２）を有するシステムにおいて、２つより多い駆動モードが考えられる。図１２には、種々の考えられるモードがどのようにして生じるかが示されている。そのために、図１２には切替ロジックＮ１１０が論理コンポーネントとして設けられている。切替ロジックＮ１１０は、まず、出力信号の数を定める。さらに、切替ロジックＮ１１０は、いずれの入力信号がいずれの出力信号に寄与するかを定める。その場合に１つの入力信号が１つの出力信号に寄与することができる。従って数学的な形式で表現すると、切替ロジックによって、集合｛Ｎ１４０、…、Ｎ１４ｎ｝の各々の要素に集合｛Ｎ１６０、…、Ｎ１６ｎ｝の要素を対応づける関数が定められる。
【００４５】
その後、処理ユニットＮ１２０は、入力信号が出力信号Ｎ１６ｉの各々に寄与する形式を定める。例えば、種々の可能性を記述するために、普遍性を損なうことなしに、出力信号Ｎ１６０が入力信号Ｎ１４１、…、Ｎ１４ｍによって生成されると仮定する。ｍ＝１の場合には、これは単純に信号の通過接続に相当し、ｍ＝２の場合には、入力信号Ｎ１４１、Ｎ１４２が比較される。この比較は、同期または非同期で実行することができ、ビット単位で、もしくは有意のビットについてのみ、または許容範囲を伴って実行することができる。
【００４６】
切替および比較ユニット（Ｗ５２０）のコンフィグレーションは、システムコンポーネントの優先順位に従ってマルチプロセッサシステムの駆動モードに依存しており、またはそれを定める。駆動モードに関する情報の一貫性をシステム内で保証し、それを場合によっては外部ユニットへ伝えるために、駆動モードに関する情報をシステムコンポーネントの１つにより識別して１つまたは複数の信号により提供することが効果的である。
【００４７】
好ましい実施形態において、この信号を切替および比較ユニット内で生成して、モード信号Ｎ１５０としてシステムの他の部分へ提供することができる。さらに、図１２には、エラー信号Ｎ１７０が示されている。選択的なエラー信号は、エラー信号を集めるエラーロジックＮ１３０によって生成されて、単独のエラー信号をそのまま次へ伝えるものであり、またはその中に含まれるエラー情報を束ねるものである。モード信号Ｎ１５０は、選択的な信号であって、これらのコンポーネントの外部で効果的に使用することができる。切替ロジックＮ１１０（前述した関数（Funktion））および処理ロジック（出力信号毎、つまり関数値（Funktionwert）毎の比較操作の決定）の情報の組合せは、モード情報であって、それがマルチプロセッサシステムの駆動モードを決定し、または反映する（widerspiegeln）。一般的な場合において、この情報は、多値であり、１つの論理ビットのみにより表現することができない。与えられた実装において、全ての論理的に想定されるモードが重要な訳ではなく、好ましくは許容されるモードの数が制限される。その場合にモード信号は、重要なモード情報を外部へもたらす。ＨＷ実装は、好ましくは、外部で見えるモード信号を形成可能なように構成されている。好ましくは、処理ロジックおよび切替ロジックも同様に形成可能なように構成されている。好ましくは、これらのコンフィグレーションは互いに調和されている。代替的に、モード信号の変化のみを外部へ出力し、またはそれを補足的に外部へ出力することができる。これは、特にデュアルコンフィグレーションにおいて利点を有している。
【００４８】
請求項１に記載される特徴に基づいて、本発明においては、少なくとも２つの実行ユニットを有するマルチプロセッサシステム内でデュアルポートキャッシュメモリを使用することが提案される。この種のコンフィグレーションは、マルチプロセッサシステムが少なくとも２つの駆動モード、例えば前述した比較モードとパフォーマンスモードとの間で切替可能である場合に、特に効果的である。
【００４９】
図２には、デュアルポートＲＡＭ（ｄｐＲＡＭ、２３０）、バスアクセスコントローラ２４０、および、特にアドレスデコーダを含むユニット２５０を主要な構成とするデュアルポートキャッシュ２００が示されている。ｄｐＲＡＭ２３０は、好ましくは、２つの相互に依存しないアドレスデコーダ、２つのデータ書込み／読取り段、および（シングルのメモリセルマトリクスと異なり）二重化されたワード線およびビット線を有しているので、ｄｐＲＡＭの任意のメモリセルに対して少なくとも読取りプロセスを２つのポートから同時に行うことができる。（しかし、このような構成には、本質的な意味において、全てのアクセスエレメントが二重化されておらず、ｄｐＲＡＭ自体が条件を満たす場合にのみ２つのポートを介して同時にアクセス可能である構成も含まれる）。従ってデュアルポートＲＡＭとは、ポートからの読取りまたは書込みの要請を処理するために必要とされる時間、つまり要請された読取りまたは書込みの要請を（場合によっては他のポートからの要請との相互作用により）処理するために必要とされる時間を考慮せずに、相互に依存せずに使用可能な２つのポート２３１、２３２を有するＲＡＭである。ｄｐＲＡＭの２つのポートは、互いに独立した実行ユニット２１５、２２５から信号２０１または２０２により伝達されるアドレス、データおよび制御信号２１１または２２１を検査し、かつ選択的にアドレスを変換する装置２１０または２２０と接続されている。その場合に実行ユニット２１５、２２５は、前述した実行例において、図１の実行ユニットＷ１１０ａ、Ｗ１１０ｂに相当する。データは、キャッシュメモリからの読取りに際して、各ポートに応じて、２０１により２１０を介して２１１へ、もしくは２０２により２２０を介して２２１へ出力され、または反対方向に実行ユニットからキャッシュメモリへ書込まれる。ｄｐＲＡＭの２つのポートは、信号２０１、２０２によりバスアクセスコントローラ２４０と接続されており、それが、不図示の（メイン）メモリへの接続、または後段のキャッシュへの接続を形成する信号２４１と接続されている。
【００５０】
図３には、ユニット２１０、２２０および２５０がより詳細に示されている。デュアルポートキャッシュへアクセスする場合に、信号２１１、２２１に含まれる処理ユニット２１５、２２５のアドレス２１２、２２２が装置２５０のアドレス比較器２５１により互いに比較されて、２１１、２２１に含まれる制御信号と併せて一貫性について検査される。競合が生じる場合には、信号２１３または２２３に含まれる制御信号を用いてデュアルポートＲＡＭ２３０へのアクセスが阻止される。この種の競合は、２つの実行ユニットが同一アドレスへの書込みを試みること、または他方のユニットが同一アドレスからの読取りを試みている最中に書込みを試みることにより生じる。
【００５１】
キャッシュは、一部または全体を連結して形成可能であり、つまりデータをキャッシュの複数の部分または任意の部分に格納することができる。ｄｐＲＡＭへのアクセスを可能にするために、まず、所望のデータ／指令へのアクセスを可能にするアドレスが求められなければならない。アドレス指定モードに応じて、１つまたは複数のブロックアドレスが選択され、そのブロックアドレスにおいて、実行ユニットによってアドレスされた、キャッシュ内のデータが探索される。これら全てのブロックが読取られて、キャッシュ内にデータとともに格納されている識別子がインデックスアドレス（オリジナルアドレスの一部）と比較される。一致を確認し、かつ同様に各ブロックのためにキャッシュ内に格納されている制御ビット（例えば、バリッドビット、ダーティビットおよびプロセスＩＤ）を用いて有効性を付加的に検査した後に、データの有効性を表示するキャッシュヒット信号が生成される。
【００５２】
アドレス変換のために、好ましくは、図３に示すメモリユニット２１４または２２４（レジスタまたはＲＡＭ、ＴＡＧ−ＲＡＭとも称する）に配置され、かつユニット２１０または２２０内に存在するテーブルが使用される。テーブルは、アドレス変換ユニットであって、バーチャルアドレスを物理的アドレスに変換するとともに、ダイレクトマッピングキャッシュの場合には、正確な（一義的な）キャッシュアクセスアドレスを提供する。多重連結（mehrfach associative）のキャッシュの場合には複数のブロックが照会され、完全連結（vollstaendig assoziative）のキャッシュの場合にはキャッシュの全てのブロックが読取られて、比較されなければならない。この種のアドレス変換ユニットは、例えば米国特許公報４６６９０４３に記載されている。
【００５３】
例えば、前述したテーブルには、各アドレスまたはブロックのアドレスグループについて、ｄｐＲＡＭのアクセスアドレスが格納されている。そのために、図４に示すようなアドレス指定においては、キャッシュのブロックサイズに従ってテーブルのための有意のアドレスビット（Index-Address）がアドレスとして使用され、内容がｄｐＲＡＭのアクセスアドレスとなる。その場合にブロックとは、ある領域のアドレスへのアクセスに際して、キャッシュミス（キャッシュ内に必要なデータが存在しない）が生じた場合に（メイン）メモリからキャッシュへ移されるバイトの数である。
【００５４】
キャッシュへのバイト単位またはワード単位でのアクセスのために、ブロックにとって有意のアドレスビットがテーブルにより変換されて、残りの（低価値の）アドレスビットが変更されずに引継がれる。
【００５５】
書込みプロセスのために、例えば２つのポートの１つに高位の優先順位が割当てられることで、２つのポートからの同時書込みが防止される。この優先順位付けは、動的に、例えばマルチプロセッサシステムの切替および比較ユニットによって、またはアドレス指定されたメモリ領域に従って行うこともできる。優先ポートによる書込みアクセスの実行後に初めて、他のポートが書込み可能となる。場合によっては１つのプロセッサのみが、然るべく対応づけられたメモリ領域へのアクセス権を有する。同様に、メモリセルへの任意の書込み操作において、他のポートによる同一メモリセルからの読取りを阻止することができ、または読取りを試みるプロセッサを書込み操作の終了まで停止させることにより読取り操作を遅らせることができる。そのために図３に示すように、然るべきアービター２５２を有する、全てのアドレスビットのアドレス比較器（２５１）が設けられており、それがプロセッサの制御信号も評価して、この処理（Ablaeufe）を制御する出力信号２１３、２２３を生成する。出力２１３、２２３は、好ましい実施形態において、それぞれ３つの信号状態：イネーブル、ウェイト、イコールをとることができる。純粋な指示キャッシュについては、メモリアクセスが不要である。この場合に出力信号２１３、２２３については、信号状態「イコール」で十分である。
【００５６】
キャッシュミスの場合において、データまたは指令はバスシステムを介してプログラムメモリまたはデータメモリからロードされなければならない。ロードされたデータは、このデータを要求した実行ユニットへ伝達されて、識別子および制御ビットと併せてキャッシュへパラレルに書込まれる。ここでも、ヒットが存在しないが、アドレス比較器からイコール信号（２１３、２２３の構成部分または状態）が提示された場合には、アドレス比較器がメモリからのデータの再ロードを阻止する。イコール信号は、２つのポートから読取る場合に、有意のアドレスのみにより生成される。これは、ブロック全体がメモリからロードされるためである。待機中の実行ユニットは、キャッシュ内にブロックが記憶されている場合に初めて、キャッシュへアクセスすることができる。
【００５７】
他の好ましい実施形態においては、データ用と指令／指示用として異なるデュアルポートキャッシュが設けられ、その場合に指示キャッシュ内では通常の書込みプロセスが行われない。この場合において、アドレス比較器は、有意のアドレスビットの同一性のみを検査し、それに応じた制御信号「イコール」を信号２１３、２２３内に準備する。
【００５８】
他の実施例においては、２つのポートから内部メモリへの同時読取りアクセスは、要請されたデータが、同時アクセスを可能にする異なるアドレス領域内に存在する場合にのみ制限されずに機能する。それによって、ハードウェアの実現に際して、全てのアクセス機構をメモリ内で二重化する必要がないので、複雑性を低減することができる。例えば、キャッシュは、相互に依存せずに駆動可能な複数の部分メモリ領域内で実現することができる。各部分メモリは、イネーブル信号により１つのポートによる処理のみを可能にする。図５には、２つの部分メモリ領域２３５、２３６を有する、この種のメモリ２３０が示されている。図示の実施例において、Ａ１＝０の場合にはＥ０＝１、Ｅ１＝０と見なされ、Ａ１＝１の場合にはＥ０＝０、Ｅ１＝１と見なされるように、アドレスビットＡから２つのイネーブル信号Ｅ０、Ｅ１が生成される。この場合において、信号２３３、２３４には、２つのイネーブル信号、および低価値のアドレスビットＡｉ−１…Ａ０が含まれている。
【００５９】
４つの部分メモリを有する他の実施例については、２つのアドレスビットから４つのイネーブル信号を生成することができる。これは、各部分メモリが一義的に所定のアドレス領域を操作するからである。つまり、例えば、表１に示す２値性に従って４つのイネーブル信号Ｅ０〜Ｅ３が生成されることにより、２つのアドレスビットＡｉ＋１、Ａｉにより４つの部分メモリ領域を参照することができる。
【００６０】
図６には、図５に示す部分メモリ２３５、２３６の実施例が示されている。部分メモリ２６０は、この特別な形態においてシングルポートＲＡＭ２８０として形成されており、そのアドレス、データおよび制御信号がそれぞれ要請に応じて切替えられる。切替えは、制御回路２７０によりマルチプレクサ２７５を用いて、該当するポートからのイネーブル信号および他の制御信号２９０１、２９０２（例えば、リード、ライト）に従って行われる。これらの信号は、データおよびアドレスとともに信号２３３、２３４に含まれており、５２８１または５２８２によりマルチプレクサ２７５へ案内され、そのマルチプレクサが制御回路２７０の決定に応じて、出力信号２７０１に従って５２８１または５２８２を信号２８０１と結合する。この例においては、普遍性を制限することなしに、キャッシュのダイレクトアドレス指定（direct-mapped）を前提としている。多重連結キャッシュの場合には、さらにユニット２７５により有効性について比較してキャッシュヒット信号をポートへ伝えなければならず、または全てのデータがポート５３３１および信号２３３により２３１へ伝えられ、またはポート５３３２および信号２３４により２３２へ伝えられて、有効性が検査されなければならない。
【００６１】
その場合に制御回路は、信号５２８１または５２８２を２８０１によりシングルポートＲＡＭ２８０へ伝え、反対方向でデータおよび他の信号を２８０から伝えることができる。これは、有効なイネーブル信号および信号２３３、２３４、および／または、これらの信号によりポートがメモリ２８０に読取りまたは書込み操作を行わせる順序に応じて、行われる。信号２３３、２３４内で読取り信号および書込み信号が同時にアクティブである場合には、予め定められたポートがまず操作される。この優先ポートは、読取り信号または書込み信号がアクティブでない場合にも、２８０１と結合された状態にある。代替的にプロセッサシステムに応じて、好ましくはプロセッサシステムの状態情報に応じて、優先ポートを動的に決定することもできる。
【００６２】
シングルポートＲＡＭを有する本構成は、パラレルのアクセス可能性を有するデュアルポートＲＡＭよりも経済的であるが、部分メモリ領域が同時アクセス（読取りアクセスの場合でも）された場合には、少なくとも１つの実行ユニットの作業が遅れてしまう。よって、指令処理の構成とともに、異なる実行ユニットによるデータアクセスが可能な限り同一の部分メモリ領域に対して同時に行われないように、適用に応じて、ＲＡＭの部分領域を分割することができる。この構成は、２つより多い実行ユニットからのアクセスに拡張することもできる。同様に、アドレス、データおよび制御信号の切替えが複数のマルチプレクサにより段階的に行われる場合には、マルチポートＲＡＭも実現可能である（図７）。
【００６３】
この種のマルチポートＲＡＭ２９０が、図７に示されている。そこではポート入力信号２６１、２６２、…２６７がデコーディング装置３３１、３３２、…３３７により信号２９１、２９２、…２９７にデコードされる。このデコーディングが、２８１、２８２、２８８内の各ＲＡＭへアクセスするためのイネーブル信号を発生させる。図７ａには、部分メモリ２８ｘ（２８１…２８８）の実施例が示されている。そこでは、制御装置３７０の第１段において、制御信号２９１、２９２…２９８に含まれるイネーブル信号、および制御信号３９０１、３９０２、…３９０８が出力信号３７０１、…３７０７により処理される。これらの出力信号がマルチプレクサ３７５を駆動し、マルチプレクサは、各信号値に応じて、バス３８１…３８７または３８２…３８８と信号４８１…４８８との接続を形成する。他の段においても同様に、制御装置３７０およびマルチプレクサ３７５が、最終段まで同様に切替えられて、信号５９０１、５９０２が制御装置のために使用される。その後、出力信号５７０１は、５８１または５８２を、シングルポートＲＡＭ２８０に接続されている６８１と接続する。
【００６４】
図６のマルチプレクサ２７５と異なり、図７ａのマルチプレクサ３７５は、アドレス信号、データ信号および制御信号の他に、３８１、３８２…３８８内に含まれる後段のイネーブル信号も結合する。さらに、３７５に比較装置を含めることができ、多重連結のアドレス方式である場合に、その比較装置が部分領域から読取ったデータの有効性を求める。
【００６５】
デュアルポートキャッシュメモリの他の好ましい実施例において、種々の実行ユニットへのＲＡＭメモリの対応づけを、１つもしくは複数のシステム状態またはコンフィグレーションに依存させることができる。そのために図８には、コンフィグレーション可能なデュアルポートキャッシュの例が示されている。そのために、２つのポートの各々のために入力信号をデコーディングする場合に、モード信号またはコンフィグレーション信号１０００が使用される。このコンフィグレーション信号は、図１２のモード信号Ｎ１５０に相当し、もしくはモード信号Ｎ１５０の一部を含み、またはＮ１５０とマルチプロセッサシステムの他の情報との組合せから生成される。表２には、Ｍとして表される信号１０００に応じたデコーディングの変化の可能性が示されている。Ｍ＝０の場合には、例えば比較モードであり、２つのポートは、キャッシュ全体へのアクセスを有する。しかし、Ｍ＝１の場合には、例えばパフォーマンスモードであり、各ポートは、キャッシュの半分のみへアクセスを有するが、該当する領域に対しては制限なしに（他のポートによる能動化に依存せずに）アクセスすることができる。このモードにおいては、アドレスビットＡｉがキャッシュのアドレス指定に使用されず（direct-mapped modeにおいて）、このビット内のみでのアドレス指定で区別されるデータが、キャッシュの同一箇所に格納される。キャッシュ内容を読取る際に初めて、それが探していたデータであるかを識別子を用いて見いだすことができ、それに応じてキャッシュヒット信号が生成される。対応する比較器の配置に応じて、識別子および制御ビットを含むデータが、信号２９１、２９２、…２９７によりポート３３１、３３２、…３３７へ、そして信号２６１、２６２、…２６７により出力される。同様に、パフォーマンスモードおいて（Ｍ＝１）、ポート１にのみ全キャッシュへのアクセスを許可することもできる。表３には、この他の実施形態が示されている。ユーザは、複数のコンフィグレーション信号に応じて、キャッシュを他の方法に従って任意に分割することもできる。これにより、キャッシュ領域が大きくなった場合に、一方で、より高いヒット率をもたらし、従ってメインメモリからのデータ呼出しの必要性が低減する。他方で、種々のポートにより相互に依存しないキャッシュ領域のみが可能な限りアクセスされる場合には、種々の実行ユニットが相互に干渉しない。２つの条件が適用のプログラムに依存しているので、適用に応じて他のコンフィグレーションの可能性が存在することが効果的である。他方で、システム状態が変化する場合（比較モード／パフォーマンスモード）には、モード信号１０００によりキャッシュを直接切替えることができる。
【００６６】
モード信号またはコンフィグレーション信号に従ってポートを切替える可能性は、図９においてマルチポートキャッシュ２９０に拡張される。その場合に３３１、３３２、…３３７は、このモード信号またはコンフィグレーション信号を用いて種々の部分ＲＡＭ領域２８１、２８３、…２８８の接続を制御するポートである。この制御は、それに応じてポート内で生成され、信号２９１、２９２、…２９７に含まれる選択信号により保証される。
【００６７】
２つより多い駆動モードを有するマルチプロセッサシステムにおいて、このモード信号に従ってキャッシュメモリの２つより多いコンフィグレーションを可能にする場合には、２値のモード信号１０００で十分である。この場合において、モード信号を多値で生成し、または図８〜１０に示していない他のモード信号２０００を導入することが効果的である。
【００６８】
図１０には、多重連結されたキャッシュが存在し、各部分メモリ２８１、２８２、…２８８からデータが識別子および制御ビットとともに読戻される場合の実施例が示されている。その場合に比較装置２８１１、２８１２、…２８１７、２８２２、…２８２７、…２８８１、２８８２、…２８８７により有効性が検査されて、それに応じて、データが信号２９１０、２９２０、…２９７０によりバリッド信号とともに次へ伝えられる。その場合には、選択的に、すでに図９を用いて説明した場合と同様に、モード信号またはコンフィグレーション信号による切替えが可能である。ポート３３１０、３３２０、…３３７０において、バリッド信号と、場合によってはモード信号またはコンフィグレーション信号１０００とが評価されて、それに応じて、バリッド信号がキャッシュヒット信号またはキャッシュミス信号とともに信号２６０１、２６０２、…２６０７へ伝えられる。
【００６９】
デュアルポートキャッシュメモリによる本発明に基づく構成は、ＲＡＭメモリの代わりに、ＭＲＡＭ、ＦＥＲＡＭなどの他のメモリ技術でも実現することができる。
【００７０】
図１１には、２つの実行ユニット（Ｗ５１０ａ、Ｗ５１０ｂ）、切替および比較ユニット（Ｗ５２０）、およびデュアルポートキャッシュメモリ（Ｗ５５０）を有するマルチプロセッサシステム（Ｗ５００）が示されている。比較モードにおいてエラーが発生している場合には、信号線Ｗ５１８を介して比較ユニット（Ｗ５２０）が通知する。実行ユニットは、信号線またはバス（Ｗ５１２ａ、Ｗ５１２ｂ）を介して切替および比較ユニット（Ｗ５２０）と各々に接続されており、同ユニット自体は、デュアルポートキャッシュメモリへの接続（Ｗ５１３ａ、Ｗ５１３ｂ）、および２つのシステムインターフェイス（Ｗ５３５、Ｗ５４５）への接続（Ｗ５１４ａ、Ｗ５１４ｂ）を有している。その場合に信号（Ｗ５１２ａ、Ｗ５１２ｂ）は、図２の信号２１１、２２１に相当し、同一または同様の範囲のデータを有している。デュアルポートキャッシュメモリ（Ｗ５５０）は、接続２４１および選択的なメモリインターフェイス（Ｗ５３０）を介して、（メイン）メモリシステム（Ｗ５７０）に接続されている。システムインターフェイス（Ｗ５３５、Ｗ５４５）を介して、例えばコプロセッサまたはタイマーユニットのようなプロセッサシステム（Ｗ５８０）などの他のユニット、およびデジタル出力、Ｄ／Ａ変換器および通信コントローラのような周辺機器（Ｗ５９０）を駆動することができる。その場合に実行ユニットは、プロセッサ、コア、ＣＰＵ、ＦＰＵ（Floating Point Unit）、ＤＳＰ（Digital Signal Processor）、コプロセッサ、またはＡＬＵ（Arithmetic logical Unit）としても実現することができる。
【００７１】
図１１ａには、システムインターフェイス（Ｗ５３５、Ｗ５４５）、接続線（Ｗ５１４ａ、Ｗ５１４ｂ）およびユニットＷ５８０、Ｗ５９０の表示を省略することにより、図１１のマルチプロセッサシステム（Ｗ５００）が簡略化して示されている。
【００７２】
このマルチプロセッサシステムは、少なくとも２つの駆動モード、比較モードＶＭおよびパフォーマンスモードＰＭで駆動することができる。
【００７３】
パフォーマンスモードＰＭにおいては、異なる実行ユニットにおいて異なる指令、プログラムセグメントまたはプログラムがパラレルに実行される。図１３には、パフォーマンスモードにおけるキャッシュメモリへの書込みアクセスおよび読取りアクセスについて、切替および比較ユニット（Ｗ５２０）による切替え状態が示されている。この駆動モードにおいては、切替および比較装置（Ｗ５２０）の比較器（Ｗ５２２）が非能動化されており、データが比較されない。比較ユニットを非能動化するための可能性は、複数存在する。第１の可能性は、この比較器を能動化し、または非能動化する信号を比較器に供給することである。そのために、比較器内には、それを実行可能な付加的なロジックが設けられる。第２の可能性は、図１３に示すように、比較されるデータを比較器に供給しないことである。第３の可能性は、システムレベルで比較器の状態信号またはエラー信号（図１４に示すＷ５１８）を無視することである。さらに、エラー信号自体を遮断することもできる。全ての可能性に共通することは、潜在的に比較される２つ以上のデータが異なる場合に、システムに何らの作用を及ぼさない状態を発生させることである。この状態が比較器内の手段、または入力信号もしくは出力信号により達成された場合に、比較器はパッシブまたは非能動化されていると称される。
【００７４】
パフォーマンスモードにおいて、各実行ユニットは、デュアルポートキャッシュメモリ（Ｗ５５０）のポートに接続されている。これは、図１３に示す実施例において、切替および比較装置（Ｗ５２０）のスイッチ（Ｗ５２５）を、信号５１２ａが直接信号５１３ａに接続され、信号５１２ｂが直接信号５１３ｂに接続されるように構成することにより達成される。これにより、デュアルポートキャッシュの任意のメモリセルへの読取りプロセス、特に同一メモリセルへの読取りアクセスを、２つの実行ユニットにより同時に行うことができる。
【００７５】
デュアルポートキャッシュメモリの同一メモリセルまたは同一キャッシュメモリへブロック単位で書込む場合には、同一メモリブロックへの同時書込みプロセスが不可能となる。書込みプロセスにおいては、デュアルポートキャッシュメモリの２つのポートのいずれかに、従って実行ユニットのいずれかに、より高い優先順位が割当てられ、つまり、２つの実行ユニットからの同一メモリセルまたは同一メモリブロックへの同時書込みが阻止される。この優先順位は、例えばマルチプロセッサシステムの切替および比較ユニットによって、またはアドレス指定されたメモリ領域に従って、動的に決定することができる。優先されるポートが書込み操作を実行した後に初めて、他のポートが書込むことができる。
【００７６】
アクセス競合、例えば、２つの実行ユニットからの同一メモリセルまたは同一メモリブロックへの同時書込みアクセスは、以下のようにして解決することができる。デュアルポートキャッシュへアクセスする場合に、図３に示すように、信号２１１、２２１（図１１の信号５１２ａ、５１２ｂに相当する）に含まれる、処理ユニット２１５、２２５のアドレス２１２、２２２が、装置２５０のアドレス比較器２５１により比較されて、信号２１１、２２１により同様に伝達される制御信号とともに一貫性について検査される。これらのアドレスが同一であって、アドレスの少なくとも１つへ書込みアクセスが試みられている場合には、競合が生じる。競合が生じる場合には、信号２１３または２２３に含まれる制御信号を用いて、少なくとも１つのポートによるデュアルポートＲＡＭ２３０へのアクセスが阻止される。
【００７７】
キャッシュミスの場合、つまり第１の実行ユニットがキャッシュメモリへ読取りアクセスした際に、要求されたデータまたは指令がキャッシュメモリに含まれていない場合には、データまたは指令は、バスシステムを介してプログラムメモリまたはデータメモリ、例えばメインメモリ（図１１のＷ５７０）からロードされなければならない。ロードされたデータは、このデータを要請した実行ユニットへ供給されて、識別子および制御ビットとともにキャッシュへパラレルに書込まれる。メインメモリからキャッシュメモリへのメモリブロック転送中に、例えば、第２の実行ユニットにより同一メモリブロックのアドレスが指定された場合には、これがアドレス比較器によって認識されて、このアドレス比較器は、このメモリブロックのメインメモリからの再転送を阻止する。
【００７８】
図１１、１１ａに示すように、切替および比較ユニット（Ｗ５２０）は、好ましくは実行ユニット（Ｗ５１０ａ、Ｗ５１０ｂ）とデュアルポートキャッシュメモリＷ５５０との間に配置されている。これにより、比較モードにおいては、以下で説明するように、実行ユニットによって、デュアルポートキャッシュへの複数形式の効果的なアクセスが可能となる。
【００７９】
比較モードにおいて、各実行ユニットは、信号接続Ｗ５１２ａ、Ｗ５１２ｂを介して、切替および比較ユニット（Ｗ５２０）に、さらに、図１５、１６に示す場合には、比較器（Ｗ５２２）に接続されている。
【００８０】
図１４、１５には、比較モードにおける２つの形式の読取りアクセスについて、切替および比較ユニット（Ｗ５２０）による切替え状態が示されている。図１４に示す第１の形式においては、スイッチ（Ｗ５２５）がパフォーマンスモードの場合と同じ位置にあり、つまり各実行ユニット（Ｗ５１０ａ、Ｗ５１０ｂ）がデュアルポートキャッシュメモリ（Ｗ５５０）のポートに接続されている。比較モードにおいて、２つの実行ユニットは、同一のプログラム、プログラムセグメントまたは指令を処理するので、同一のメモリアドレスにアクセスする。まず、比較器（Ｗ５２２）によりアドレスが検査されて、一致した場合に初めてアドレスが出力される。さらに、代替的または付加的に、キャッシュメモリの種々のポートにより読取られたメモリセルの情報を比較器（Ｗ５２２）により検査することができる。従って、デュアルポートキャッシュメモリのアドレス指定ロジック内、およびキャッシュと比較器との間における伝達路内のエラーも発見することができる。比較器は、比較／エラー信号（Ｗ５１８）により比較結果を表す情報を実行ユニットへ知らせることができる。この実施形態については、２つのポートにより同一メモリセルへの同時読取りアクセスが可能な、例えば図３に示すような、デュアルポートキャッシュメモリの構成が必要となる。
【００８１】
図１５に示す比較モードの他の実施形態においては、スイッチＷ５２６が他の切替え位置にある。この実施形態においては、接続Ｗ５１３ａを介してのみデュアルポートキャッシュメモリがアクセスされる。このアクセスは、信号接続Ｗ５１２ａ、Ｗ５１２ｂを介して比較器へ案内されるアクセスアドレスが同一である場合にのみ行われる。比較器によりアドレスの不一致が認識された場合には、メモリアクセスは、信号Ｗ５１７および遅延および遮断（Verzoegerungs- und Unterbrechungs）ユニットＷ５１９により阻止することができる。
【００８２】
図１６には、比較モードにおけるデュアルポートキャッシュメモリへの書込みアクセスについて、切替および比較ユニット（Ｗ５２０）による切替状態が示されている。その場合に、信号接続Ｗ５１２ａ、Ｗ５１２ｂを介して比較器へ案内されるアクセスアドレスおよび書込むべきデータが比較される。一致した場合には、一方の実行ユニットのデータ、図示の実施例においては接続Ｗ５１２ａを介して得られたデータのみが、接続（Ｗ５１３ａ）およびポートによりデュアルポートキャッシュメモリへ書込まれる。接続Ｗ５１２ａ、Ｗ５１２ｂを介して得られたアドレスおよび／またはデータが不一致の場合には、第１の実施例においては、キャッシュメモリへのアクセスは、信号Ｗ５１７、および遅延および遮断ユニットＷ５１９により阻止される。これは、有効または適正なデータのみがキャッシュへ書込まれるという利点を有しているが、比較の終了後に初めてキャッシュへの書込みアクセスが実行可能となることにより実行ユニットの処理が場合によっては遅れるという欠点も有している。スイッチＷ５２７は、信号接続Ｗ５１２ｂが比較器Ｗ５２２のみへ伝達されることを保証する。
【００８３】
図１７に示す第２の実施例において、信号接続Ｗ５１２ａ、Ｗ５１２ｂを介して比較器へ案内されたアクセスアドレスおよび書込まれるデータが比較されて、接続（例えばＷ５１２ａ）を介して得られたデータがバッファメモリＷ５２９へ同時に書込まれる。比較結果を表す情報が信号Ｗ５１７によりバッファメモリ５２９に提供される。接続Ｗ５１２ａ、Ｗ５１２ｂを介して得られたアドレスおよび／またはデータが一致した場合に、バッファメモリに記憶されている情報が、接続（例えばＷ５１３ａ）およびポートを介してデュアルポートキャッシュメモリへ書込まれる。一方、比較器が不一致を認識した場合には、バッファメモリ内のデータに対する書込みアクセスが許可されず、好ましくは消去（loeschen）される。これにより、有効または適正なデータのみがキャッシュへ書込まれるが、実行ユニットの処理が遅れないという利点が得られる。
【００８４】
比較モードにおける書込みアクセスについての他の実施例においては、２つの実行ユニットのいずれかがデータをキャッシュメモリへ書込む。接続Ｗ５１２ａ、Ｗ５１２ｂを介して得られた、２つの実行ユニットのアドレスおよび／またはデータの比較は、書込みと並列して、またはキャッシュへのデータ書込み後に行われる。比較器が不一致を認識した場合には、キャッシュ内に書込まれたデータは、その後に無効であると定義される。さらに、キャッシュメモリには、比較結果を表す情報が比較／エラー信号（図１１ａ、図１４−１７のＷ５１８、または図１２のＮ１７０）により切替および比較ユニットから提供される。その場合にすでに書込まれているデータは、キャッシュメモリの状態レジスタまたは制御レジスタ内のビットをセットすることによって、またはヒットテーブルからの情報を消去することによって、無効であると定義され、または、古いデータがキャッシュメモリ内またはシステム内にまだ存在している場合には、それらに代えられる。この実施例の利点は、実行ユニットの処理がアドレスおよび／またはデータの比較により遅れず、かつ切替および比較ユニット内にバッファメモリが必要とされないことにある。
【００８５】
マルチプロセッサシステムの他の実施形態において、データ用および指令／指示用として２つの異なるデュアルポートキャッシュが設けられており、その場合に指示キャッシュ内では、通常、書込みプロセスが行われない。図１８には、２つの異なるデュアルポートキャッシュメモリＷ５５０ｃ、Ｗ５５０ｄを有するマルチプロセッサシステム（Ｗ５０１）が示されている。その場合に、例えば、Ｗ５５０ｃは、実行ユニット（Ｗ５１０ａ、Ｗ５１０ｂ）がＷ５１３ａｃまたはＷ５１３ｂｃを介して読取りアクセスのみ可能な指示キャッシュであり、Ｗ５５０ｄは、実行ユニットがＷ５１３ａｄまたはＷ５１３ｂｄを介して読取りおよび書込みアクセス可能なデータキャッシュである。各キャッシュは、信号接続２４１ｃおよびメモリアクセスユニットＷ５３０ｃ、または信号接続２４１ｄおよびメモリアクセスユニットＷ５３０ｄを介して、（メイン）メモリへのアクセスを各々に有している。図１８には、図１１ａに示したようなマルチプロセッサシステム（Ｗ５０１）が簡略化されて示されている。図１１に示すシステムインターフェイス（Ｗ５３５、Ｗ５４５）、接続（Ｗ５１４ａ、Ｗ５１４ｂ）、ユニットＷ５８０、Ｗ５９０、およびメモリシステムＷ５７０は、全体として、または部分的に、図１８に示すマルチプロセッサシステム（Ｗ５０１）に含めることができる。
【００８６】
前述した実施例においては、２つの実行ユニット、２つの駆動モード、およびデュアルポートキャッシュメモリを有するマルチプロセッサシステムが説明されている。本発明の特徴的な構成は、２つより多い実行ユニットを有するマルチプロセッサシステムにも同様に適用することができる。その場合に変更は、主として、切替および比較ユニット内で必要とされる。その場合にデュアルポートキャッシュは、例えば、図９、１０に示す実施例において説明したように、マルチポートキャッシュに拡張することができる。マルチプロセッサシステムにおける実行ユニットの数、マルチポートキャッシュの数、キャッシュメモリの部分メモリ領域の数は、同一である必要はない。
【図面の簡単な説明】
【００８７】
【図１】２つの実行ユニット、実行ユニットのデータを比較する手段、およびマルチプロセッサシステムの少なくとも２つの駆動モードの間を切替える手段を有するマルチプロセッサシステムを示す説明図である。
【図２】内部のデュアルポートメモリ、実行ユニットを各々に接続するための２つのポート、およびマルチプロセッサシステムのデータバス／アドレスバスへのインターフェイスを有する、データ用および／または指令用のデュアルポートキャッシュを示す説明図である。
【図３】デュアルポートキャッシュを他の詳細とともに示す説明図である。
【図４】デュアルポートキャッシュ内でアドレスを変換するための装置および方法を示す説明図である。
【図５】内部のデュアルポートメモリを相互に依存せずに駆動可能であり、かつ各ポートからの２つの異なるイネーブル信号により制御可能な、２つの部分領域に分割することを示す説明図である。
【図６】ポート切替えを用いてシングルポートメモリによりデュアルポートメモリ領域を実現することを示す説明図である。
【図７】マルチポートメモリを並列して駆動可能な複数の部分アドレス領域１…ｑに分割することを示す説明図である。
【図７ａ】ポート切替えを用いてシングルポートメモリによりマルチポートメモリ領域を実現することを示す説明図である。
【図８】システム状態またはコンフィグレーションに従ってポートのためにＲＡＭ領域を分割することを示す説明図である。
【図９】然るべきイネーブル信号を生成することによりシステム状態またはコンフィグレーションに従ってマルチポートＲＡＭを領域分割することを示す説明図である。
【図１０】マルチポートＲＡＭを複数の多重連結アクセスを有する領域に分割することを示す説明図である。
【図１１】２つの実行ユニットと、好ましくは対称的に構成されたデュアルコアキャッシュとを有するマルチプロセッサシステムを示す説明図である。
【図１１ａ】２つの実行ユニットと、好ましくは対称的に構成されたデュアルコアキャッシュとを有するマルチプロセッサシステムを示す説明図である。
【図１２】一般的な切替および比較ユニットを示す説明図である。
【図１３】パフォーマンスモードにおけるキャッシュメモリへの書込みアクセスおよび読取りアクセスについて、切替および比較ユニットによる切替え状態を示す説明図である。
【図１４】比較モードの第１の形式における読取りアクセスについて、切替および比較ユニットによる切替え状態を示す説明図である。
【図１５】比較モードの第２の形式における読取りアクセスについて、切替および比較ユニットによる切替え状態を示す説明図である。
【図１６】比較モードにおけるデュアルポートキャッシュメモリへの書込みアクセスについて、切替および比較ユニットによる切替状態を示す説明図である。
【図１７】比較モードにおけるキャッシュメモリへの書込みアクセスについて、バッファ装置を有する切替および比較ユニットによる切替状態を示す説明図である。
【図１８】２つの実行ユニットと、データ用および指令用に分離されたデュアルポートキャッシュメモリとを有するマルチプロセッサシステムを示す説明図である。
【図１９】アドレスビットおよびイネーブル信号の関係を示す表（表１）である。
【図２０】コンフィグレーション信号、アドレスビットおよびイネーブル信号の関係を示す表（表２）である。
【図２１】コンフィグレーション信号、アドレスビットおよびイネーブル信号の関係を示す表（表３）である。
【図１】
2009505181.tif 000003
【図２】
2009505181.tif 000004
【図３】
2009505181.tif 000005
【図４】
2009505181.tif 000006
【図５】
2009505181.tif 000007
【図６】
2009505181.tif 000008
【図７】
2009505181.tif 000009
【図７ａ】
2009505181.tif 000010
【図８】
2009505181.tif 000011
【図９】
2009505181.tif 000012
【図１０】
2009505181.tif 000013
【図１１】
2009505181.tif 000014
【図１１ａ】
2009505181.tif 000015
【図１２】
2009505181.tif 000016
【図１３】
2009505181.tif 000017
【図１４】
2009505181.tif 000018
【図１５】
2009505181.tif 000019
【図１６】
2009505181.tif 000020
【図１７】
2009505181.tif 000021
【図１８】
2009505181.tif 000022
【図１９】
2009505181.tif 000023
【図２０】
2009505181.tif 000024
【図２１】
2009505181.tif 000025
【国際調査報告】
2009505181.tif 000026
2009505181.tif 000027
2009505181.tif 000028
2009505181.tif 000029
2009505181.tif 000030
2009505181.tif 000031