(57)【要約】本発明は、少なくとも２つの命令実行部と、少なくともデータ及び／または命令のための第１記憶装置または記憶領域とを備えたコンピュータシステムにおいて、データ及び／または命令を格納する装置及び方法であって、切り替え手段が設けられ、少なくとも２つの駆動モード間で切り替えられており、比較手段が設けられ、第１駆動モードがコンペアモードに、第２駆動モードがパフォーマンスモードに相当する装置及び方法において、装置に第２記憶装置または記憶領域が含まれており、装置はキャシュメモリシステムとして構成され、少なくとも２つの異なるポートが備えられており、１つのポートは第１命令実行部と直接接続されており、第２ポートと少なくとも第２命令実行部のとの間に第3装置が含まれており、第３装置は、前記第２命令実行部による前記第２記憶装置または記憶領域へのアクセスが前記第３装置を経由して行われるように、構成されていることを特徴とする、少なくとも２つの命令実行部とデータ及び／または命令のための少なくとも第１記憶装置または記憶領域とを備えたコンピュータシステムにおいて、データ及び／または命令を格納する装置及び方法に関する。
2009505178.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも２つの命令実行部と、少なくともデータ及び／または命令のための第１記憶装置または記憶領域とを備えるコンピュータシステムにおけるデータ及び／または命令を格納する装置であって、切り替え手段が設けられ、少なくとも２つの駆動モード間で切り替えが行われ、比較手段が設けられ、第１駆動モードがコンペアモードに、第２駆動モードがパフォーマンスモードに相当する装置において、
前記装置において、第２記憶装置または記憶領域が含まれ、前記装置は、キャシュメモリシステムとして構成され、少なくとも２つの異なるポートが備えられ、１つのポートは第１命令実行部と直接接続され、第２ポートと少なくとも第２命令実行部のとの間に第３装置が含まれており、前記第３装置は、前記第２命令実行部による前記第２記憶装置または記憶領域へのアクセスが前記第３装置を経由して行われるように構成されることを特徴とする、少なくとも２つの命令実行部とデータ及び／または命令のための少なくとも第１記憶装置または記憶領域とを備えるコンピュータシステムにおけるデータ及び／または命令を格納する装置。
【請求項２】
前記切り替え手段及び／または比較手段には、少なくとも１つの記憶手段が設けられ、切り替えは、記憶手段内の少なくとも１ビットによって行われることを特徴とする、請求項１に記載の装置。
【請求項３】
切り替えは、少なくとも１つの、前記コンピュータシステムへの外部または内部信号によって行われることを特徴とする、請求項１に記載の装置。
【請求項４】
前記パフォーマンスモードにおいて、直接接続された命令実行部の前記第３装置は、接続されたポートを経由する前記第２記憶装置への読出し及び書き込みアクセスを保障することを特徴とする、請求項１に記載の装置。
【請求項５】
前記キャッシュメモリシステムに少なくとも１つのカウンタがあり、前記カウンタは、比較に関するデータが前記第１命令実行部によって前記キャッシュメモリシステムの第１ポートを経由して格納される度に、増分または減分されることを特徴とする、請求項１に記載の装置。
【請求項６】
前記カウンタは、対応する接続されたポートにおいて前記コンペアモードに切り替えられる際にカウンタ値を出力し、前記カウンタ値は第３ユニットに格納されることを特徴とする、請求項５に記載の装置。
【請求項７】
第２カウンタが前記第３装置内に設けられ、前記カウンタのカウンタ値は、前記第３ユニットの前記第２カウンタを設定するために使用されることを特徴とする、請求項５に記載の装置。
【請求項８】
少なくとも２つの命令実行部と少なくともデータ及び／または命令のための第１記憶装置または記憶領域とを備えたコンピュータシステムにおいてデータ及び／または命令を格納する方法であって、切り替え手段が設けられ、少なくとも２つの駆動モード間で切り替えが行われ、比較手段が設けられ、第１駆動モードがコンペアモードに、第２駆動モードがパフォーマンスモードに相当する方法において、
第２記憶装置または記憶領域が設けられ、前記第２記憶装置または記憶領域はキャッシュメモリシステムに含まれ、少なくとも２つの異なるポートが備えられ、第１命令実行部は、第１ポートを経由して前記第２記憶装置または記憶領域に直接アクセスし、第２命令実行部は、第３装置を経由して前記第２記憶装置または記憶領域へアクセスすることを特徴とする、少なくとも２つの命令実行部と少なくともデータ及び／または命令のための第１記憶装置または記憶領域とを備えるコンピュータシステムにおけるデータ及び／または命令を格納する方法。
【請求項９】
前記第３装置は記憶手段を含み、前記記憶手段には、接続された命令実行部の(von)データ及び／または信号が格納されることが可能であり、第３ユニットは、前記接続された命令実行部の状態に依存せずに、データを前記第２記憶装置または記憶手段と交換できることを特徴とする、請求項８に記載の方法。
【請求項１０】
前記第３装置は、データ及び／またはアドレス及び／または制御信号を第２命令実行部から獲得し、次いで前記第２記憶装置または記憶領域の対応するデータに読出しまたは書き込みアクセスすることを特徴とする、請求項８に記載の方法。
【請求項１１】
前記キャッシュメモリシステムが、データの存在について決定し、データが存在しない場合に信号を前記第３装置に送信することを特徴とする、請求項８に記載の方法。
【請求項１２】
前記第３ユニット内のデータ及び／または命令の有効性が検査され、有効な場合に次に伝送されることを特徴とする、請求項８に記載の方法。
【請求項１３】
前記有効性は、データ及び／または命令と共に格納された追加情報に基づいて検査されることを特徴とする、請求項１２に記載の方法。
【請求項１４】
前記コンペアモードへの切り替えと共に、同期信号が関連する命令実行部に発信されることを特徴とする、請求項８に記載の方法。
【請求項１５】
比較を行い、比較されるデータが不一致の際に、エラーが信号で通知されることを特徴とする、請求項８に記載の方法。
【請求項１６】
多数決判定を行い、多数決判定されるデータの少なくとも１つのデータが不一致の際に、状態及び／またはエラーが信号で通知されることを特徴とする、請求項８に記載の方法。
【請求項１７】
前記キャッシュメモリシステム内にカウンタが設けられ、前記カウンタは、対応する接続されたポートにおいて前記コンペアモードに切り替えられる際にカウンタ値を出力し、前記カウンタ値は、前記第３ユニットに格納されることを特徴とする、請求項８に記載の方法。
【請求項１８】
第２カウンタが前記第３装置内に設けられ、前記カウンタのカウンタ値は、前記第３ユニットの第２カウンタを設定するために利用されることを特徴とする、請求項１７に記載の方法。
【請求項１９】
前記キャッシュメモリシステムに設けられているカウンタが、１つのポートに割り当てられ、各ポートに接続された処理装置において前記コンペアモードが起動される際に、固定値に設定されることを特徴とする、請求項１７に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、高速の緩衝記憶装置（キャッシュ）を備えたマイクロプロセッサシステムに関し、この関連において、デュアルポート・キャッシュ（ｄｕａｌ  ｐｏｒｔ  ｃａｃｈｅ）について、及び特に、択一的に互いに独立して機能する、または同一のタスクを処理する少なくとも２つの命令実行部を備えるデータ処理システムで利用するための、デュアルポート・キャッシュの利用について記載する。
【背景技術】
【０００２】
（独国特許出願公開第１０３３２７００号公報等に記載されているように）複数の命令実行部（コア、プロセッサ）が、様々な形式で、すなわち、様々な駆動モードで協働するマルチプロセッサ・アーキテクチャにおいて、少なくとも２つの異なるモードの切り替えが命令によって行われることが可能でなければならない。また、同一のタスクを処理する場合は、生成されたデータを互いに比較することが可能でなければならない。
【０００３】
プロセッサには、命令及びデータへのアクセスを加速させるために、キャッシュが設けられている。これは、データ量が常に増加し、その一方で常に高速化されて稼動するプロセッサによるデータ処理がますます複雑になっている状況においては必要不可欠である。キャッシュによって、容量が大きい（主）記憶装置へのゆっくりしたアクセスが部分的に回避され、プロセッサは、データが提供されるまで待つ必要がない。命令専用のキャッシュ、及びデータ専用のキャッシュが知られているが、データも命令も同一のキャッシュに格納されるユニファイド・キャッシュ（Ｕｎｉｆｉｅｄ  Ｃａｃｈｅ）も公知である。また、複数のレベル（階層レベル）のキャッシュを含むシステムも知られている。このような多層（構造）のキャッシュは、レベル分けされた記憶容量、及び様々な階層レベルにおけるキャッシュの様々な形式のアドレス指定ストラテジーによって、プロセッサと（主）記憶装置との間の速度を最適に調整するために組み込まれる。マルチプロセッサシステムにおいては、通常、各プロセッサに１つのキャッシュ、またはマルチレベルキャッシュ（Ｍｕｌｔｉ−Ｌｅｂｅｌ  Ｃａｃｈｅ）の場合は、それに対応して複数のキャッシュが設けられている。さらに、米国特許第４３４５３０９号公報に記載されているように、様々なプロセッサによってアドレス指定可能な、（内部に）複数のキャッシュが存在するシステムが知られている。
【０００４】
本願を除いた上記のようなシステムにおいて、生成されたデータを比較するユニット（コンパレータ（Ｖｅｒｇｌｅｉｃｈｅｒ））が、可能な実施形態において、キャッシュに従って配置されている。そのため、データはキャッシュから主記憶装置へのライトバック（書き戻し、Ｒｕｅｃｋｓｃｈｒｅｉｂｅｎ）の際に始めて比較されることが可能であり、従ってデータの有効性に関する評価が遅延する可能性がある。一方、コンパレータが命令実行部とキャッシュとの間に配置される場合、命令実行部とキャッシュとの間のデータ転送が、信号の比較的高い電気的負荷によって遅くなる。
【０００５】
本発明の課題は、データ比較が、キャッシュへの格納とほぼ同時に、主記憶装置への応答時点に依存せずに行われることを確証することにある。その際、少なくとも１つの命令実行部とキャッシュとの間のデータ転送が、比較的高い電気的負荷によって阻止されるべきではない。
【発明の開示】
【課題を解決するための手段】
【０００６】
デュアルポート・キャッシュメモリ（Ｄｕａｌ  Ｐｏｒｔ  Ｃａｃｈｅ−Ｓｐｅｉｃｈｅｒ）の実現は、ハードウェアのコストが高いため、１つまたは複数の命令実行部（シングルコアまたはマルチコア）を備えた従来のプロセッサシステムにおいては進歩性がない。（独国特許出願公開第１０３３２７００  号広報等に記載されているように）複数の命令実行部（コア、プロセッサ）が様々な形式で、すなわち、様々な駆動モードで協働するマルチプロセッサ・アーキテクチャの場合、デュアルポート・キャッシュ・アーキテクチャは有利に投入される。複数のキャッシュを備えたマルチプロセッサシステムに対する重要な利点は、マルチプロセッサシステムの駆動モードを切り替える際に、キャッシュの内容がクリアされるか、または無効にされる必要がないことにある。すなわち、データは一度だけ格納され、従って切り替え後も（データの）整合性がある。
【０００７】
従って、少なくとも１つの命令実行部について、キャッシュとの直接的な接続によって、データ速度が速いこの高速領域においてデータ転送が妨害されずに行われ、それにもかかわらず、キャッシュでのデータ格納の直後に比較が遅延なく行われる実施形態には利点があるであろう。その際、比較のためデータがリードバック（ｚｕｒｕｅｃｋｌｅｓｅｎ）される先となるキャッシュの、第２ポートが使用される。
【０００８】
複数の駆動モードを備えたマルチプロセッサシステムにおけるデュアルポート・キャッシュには、データ／命令が複数回キャッシュに呼び出されたり、また場合によっては、処理されたりする必要がない、という利点がある。さらに、このデータまたは命令が複数の命令実行部に利用されるとしても、１つの記憶セル（Ｓｐｅｉｃｈｅｒｐｌａｔｚ）しか、データ／命令単位でハードウェアに基づき提供される必要がない。さらに、データは、マルチプロセッサシステムの様々な駆動モードにおいて、データがどのモードで処理されたのか、または呼び出されたのかということまで区別される必要がない。特別な利点として、キャッシュは、駆動モードの切り替えの際に、クリアされる必要がない。デュアルポート・キャッシュの場合、２つのプロセッサが、同時に同一のデータ／命令に読み出しアクセスすることが可能である。さらに、特別な利点として、「ライトスルー」（ｗｒｉｔｅ  ｔｈｒｏｕｇｈ）モードの代わりに、「ライトバック」（ｗｒｉｔｅ  ｂａｃｋ）モードが、キャッシュのために投入される。この方法によって、（主）記憶装置は常に更新される必要がなく、キャッシュでデータが上書きされた際にはじめて更新される。その際、２つのプロセッサのためのキャッシュは、同一のソース（発生源）のデータを伝達しているので、整合性の問題は発生しない。さらに、比較は主記憶装置へのライトバック（Ｒｕｅｃｋｓｃｈｒｅｉｂｅｎ）に依存せずに行われるので、データの比較時点も、整合性の問題に関係しない。
【０００９】
非対称なデュアルポート構造の利点は、ここで本発明に基づき提案されているように、特に、少なくとも１つの命令実行部のためのキャッシュへのデータの書き込みが阻止されず、その一方、キャッシュのデータが主記憶装置に書き込まれるまで比較を待つ必要がない、という点にある。従って、キャッシュ内のブロックが、他のブロックによって置き換えられた場合（「ライトバック」モード）、データは最初にブロック単位で主記憶装置へライトバックされる（ｚｕｒｕｅｃｋｓｃｈｒｅｉｂｅｎ）。そのため、キャッシュと主記憶装置との間のバスにおけるデータ速度は、キャッシュ内のデータの更新ごとに主記憶装置の対応するデータも同時に変更される「ライトスルー」モードに比べて遅い。その際、更新は、ブロックごとではなく、変更されたデータのみが並行して主記憶装置に伝送される。それにもかかわらず、バスにも書き込み命令が出されるため、主記憶装置へのバス負荷が（データ転送の意味で）より大きい。
【００１０】
「ライトバック」モードにおいて、命令実行部は、キャッシュのデータが使用可能である限り、キャッシュとのみ協働する。そのため、命令実行部によるキャッシュへの書き込みの際には、ブロックのデータがもはや主記憶装置と一致しないことを示すダーティビット（Ｄｉｒｔｙ  Ｂｉｔ）が設定される。関与している命令実行部が共通のキャッシュと協働する限り、主記憶装置のデータは、関連するブロックがキャッシュに残っている限り更新される必要がない。さらに、命令実行部のデータの整合性が損なわれることなく、複数のデータワードが複数回変更されることも可能である。
【００１１】
好ましくは、少なくとも２つの命令実行部と少なくともデータ及び／または命令のための第１記憶装置または記憶領域とを備えるコンピュータシステムにおけるデータ及び／または命令を格納する装置であって、切り替え手段（Ｕｍｓｃｈａｌｔｍｉｔｔｅｌ）が設けられ、少なくとも２つの駆動モード間で切り替えが行われ、比較手段が設けられ、第１駆動モードがコンペアモードに、第２駆動モードがパフォーマンスモードに相当する装置において、上記装置において、第２記憶装置または記憶領域が含まれ、上記装置は、キャシュメモリシステム（Ｃａｃｈｅｓｐｅｉｃｈｅｒｓｙｓｔｅｍ）として構成され、少なくとも２つの異なる（ｇｅｔｒｅｎｎｔ）ポートが備えられ、１つの（第１）ポートは第１命令実行部と直接接続され、第２ポートと少なくとも第２命令実行部のとの間に第３装置が含まれており、上記第３装置は、上記第２命令実行部による上記第２記憶装置または上記記憶領域へのアクセスが上記第３装置を経由して行われるように構成される（ａｕｓｇｅｓｔａｌｔｅｎ）ことを特徴としている。
【００１２】
さらに好ましくは、上記装置は、上記切り替え手段及び／または比較手段に少なくとも１つの記憶手段（Ｓｐｅｉｃｈｅｒｍｉｔｔｅｌ）が設けられており、切り替えは、（複数の）記憶手段内の少なくとも１ビットによって行われることを特徴としている。
【００１３】
さらに好ましくは、上記装置は、切り替えが、少なくとも１つの、上記コンピュータシステムへの外部または内部信号によって行われることを特徴としている。
【００１４】
さらに好ましくは、上記装置は、上記パフォーマンスモードにおいて、直接接続された命令実行部の上記第３装置が、接続されたポートを経由する上記第２記憶装置への読出し及び書き込みアクセスを保障することを特徴としている。
【００１５】
さらに好ましくは、上記装置は、上記キャッシュメモリシステムに少なくとも１つのカウンタがあり、上記カウンタは、上記第１命令実行部によって、比較に関するデータが、上記キャッシュメモリシステム（ｄｉｅｓｅｒ  Ｓｐｅｉｃｈｅｒ）の第１ポートを経由して格納される度に、増分（ｉｎｋｒｅｍｅｎｔｉｅｒｅｎ）または減分（ｄｅｋｒｅｍｅｎｔｉｅｒｅｎ）されることを特徴としている。
【００１６】
さらに好ましくは、上記装置は、上記カウンタが、対応する接続されたポートにおいて上記コンペアモードに切り替えられる際にカウンタ値を出力し、上記カウンタ値が第３ユニット（ｄｉｅ  ｄｒｉｔｔｅ  Ｅｉｎｈｅｉｔ）に格納されることを特徴としている。
【００１７】
さらに好ましくは、上記装置は、第２カウンタが上記第３装置内に設けられ、上記カウンタのカウンタ値が、上記第３ユニットの上記第２カウンタを設定するために使用されることを特徴としている。
【００１８】
好ましくは、少なくとも２つの命令実行部とデータ及び／または命令のための少なくとも第１記憶装置または記憶領域とを備えたコンピュータシステムにおいてデータ及び／または命令を格納する方法であって、切り替え手段が設けられ、少なくとも２つの駆動モード間で切り替えが行われ、比較手段が設けられ、第１駆動モードがコンペアモードに、第２駆動モードがパフォーマンスモードに相当する方法において、第２記憶装置または記憶領域が設けられ、上記第２記憶装置または記憶領域はキャッシュメモリシステムに含まれ、少なくとも２つの異なるポートが備えられており、第１命令実行部は第１ポートを経由して上記第２記憶装置または記憶領域に直接アクセスし、第２命令実行部は第３装置を経由して上記第２記憶装置または記憶領域へアクセスすることを特徴としている。
【００１９】
好ましくは、上記方法は、上記第３装置が記憶手段を含み、上記記憶手段において、接続された命令実行部のデータ及び／または信号が格納されることが可能であり、第３ユニットが、上記接続された命令実行部の状態に依存せずに、データを上記第２記憶装置または記憶手段と交換できることを特徴としている。
【００２０】
好ましくは、上記方法は、上記第３装置が、データ及び／またはアドレス及び／または制御信号を第２命令実行部（Ｖｅｒａｒｂｅｉｔｕｎｇｓｅｉｎｒｉｃｈｔｕｎｇ）から獲得し（ｅｒｈａｌｔｅｎ）、次いで上記第２記憶装置または記憶領域の対応するデータに読出しまたは書き込みアクセスすることを特徴としている。
【００２１】
好ましくは、上記方法は、上記キャッシュメモリシステムが、データの存在（Ｖｏｒｈａｎｄｅｎｓｅｉｎ）について決定し、データが存在しない場合に信号を上記第３装置に送信することを特徴としている。
【００２２】
好ましくは、上記方法は、上記第３ユニット内のデータ及び／または命令の有効性が検査され、有効な場合に次に伝送されることを特徴としている。
【００２３】
好ましくは、上記方法は、有効性が、データ及び／または命令と共に格納された追加情報に基づいて検査されることを特徴としている。
【００２４】
好ましくは、上記方法は、上記コンペアモードへの切り替えと共に、同期信号が関連する命令実行部に発信されることを特徴としている。
【００２５】
好ましくは、上記方法は、比較を行い、比較されるデータが不一致（Ａｂｗｅｉｃｈｕｎｇ）の際に、エラーが信号で通知されることを特徴としている。
【００２６】
好ましくは、上記方法は、多数決判定（Ｖｏｔｉｎｇ）を行い、多数決判定されるデータの少なくとも１つのデータが不一致の際に、状態及び／またはエラーが信号で通知されることを特徴としている。
【００２７】
好ましくは、上記方法は、上記キャッシュメモリシステム内にカウンタが設けられ、上記カウンタが、対応する接続されたポートにおいて上記コンペアもモードに切り替えられる際にカウンタ値を出力し、上記カウンタ値が上記第３ユニットに格納されることを特徴としている。
【００２８】
好ましくは、上記方法は、第２カウンタが上記第３装置内に設けられ、上記カウンタのカウンタ値が、上記第３ユニットの第２カウンタを設定するために利用されることを特徴としている。
【００２９】
好ましくは、上記方法は、上記キャッシュメモリシステムに設けられているカウンタが、１つのポートに割り当てられ、各ポートに接続された処理装置において上記コンペアモードが起動される際に、固定値に設定されることを特徴としている。
【００３０】
本発明の更なる別の利点や有利な実施形態は、特許請求の範囲に記載の請求項の構成要件及び明細書から明らかとなるであろう。
【発明を実施するための最良の形態】
【００３１】
以下、プロセッサ、コア、ＣＰＵ、ＦＰＵ（浮動小数点演算装置）（Ｆｌｏａｔｉｎｇ  Ｐｏｉｎｔ  Ｕｎｉｔ）、ＤＳＰ（デジタルシグナルプロセッサ）（Ｄｉｇｉｔａｌｅｒ  Ｓｉｎｇａｌｐｒｏｚｅｓｓｏｒ）、コアプロセッサ、ＡＬＵ（演算論理装置）（Ａｒｉｔｈｍｅｔｉｃ  Ｌｏｇｉｃａｌ  Ｕｎｉｔ）を命令実行部と総称する。
【００３２】
図１に基づくデュアルポート・キャッシュ２００は、その本質的な部分がデュアルポートＲＡＭ（ｄｐＲＡＭ２３０）で構成されている。このｄｐＲＡＭ２３０は、特に、２つの互いに独立したアドレスデコーダ（Ａｄｒｅｓｓｄｅｃｏｄｅｒ）と、２つのデータ書き込み／読み出しステップと、単一の記憶セルマトリックス（Ｓｐｅｉｃｈｅｒｚｅｌｌｅｎ−Ｍａｔｒｉｘ）とは違って二重化されたワード及びビット線（Ｗｏｒｔ−ｕｎｄ  Ｂｉｔｌｅｉｔｕｎｇ）とが設けられている。従って、少なくとも、ｄｐＲＡＭの任意の記憶セル（Ｓｐｅｉｃｈｅｒｚｅｌｌｅ）のための読み出しプロセスが、２つのポートから同時に行われる。（しかし語義に従えば、すべてのアクセス構成要素が二重化されておらず、従ってｄｐＲＡＭが、同時に２つのポートを介してのみ、アクセス可能である場合、配列（Ａｎｏｒｄｎｕｎｇ）もこれに該当する。）従って、デュアルポートＲＡＭは、２つのポート２３１及び２３２を備えたすべてのＲＡＭとして理解される。その際、２つのポート２３１及び２３２は、読み出しまたは書き込みのための構成の実行のために、このポートがどのくらい時間を必要とするか、すなわち、要求された読み出しまたは書き込みプロセスが、場合によっては構成との相互作用で他方のポートによって終了されるまで、どのくらい時間が掛かるかということが考慮されることなく、互いに独立して使用される。ｄｐＲＡＭの２つのポートは、信号２０１または２０２を介して、装置２１０または２２０と接続されている。装置２１０または２２０は、独立した命令実行部２１５及び２２５からアクセスしてくるアドレス、データ及び制御信号２１１または２２１の検査を実行し、任意にアドレスを変換する。データは、読み出しの際ポートに従って、信号２０１を介して、装置２１０によって制御信号２１１に出力される、もしくは信号２０２を介して、装置２２０によって制御信号２２１に出力される、または、それぞれ逆方向に、命令実行部からキャシュメモリへ書き込まれる。ｄｐＲＡＭの２つのポートは、信号２０１及び２０２を介して、信号２４１と接続されたバスアクセス制御２４０と接続されている。信号２４１は、ここでは図示されていない（主）記憶装置への接続、または次ステップのキャッシュへの接続を形成している。
【００３３】
図２には、ユニット２１０、２２０及び２５０が詳細に示されている。デュアルポート・キャッシュへのアクセスの際に、信号２１１及び２２１に含まれる、命令実行部２１５及び２２５のアドレス２１２及び２２２が、装置２５０のアドレスコンパレータ２５１において互いに比較され、同様に信号２１１及び２２１で伝達された制御信号と共に、整合性（Ｖｅｒｔｒａｅｇｌｉｃｈｋｅｉｔ）が検査される。衝突（Ｋｏｎｆｌｉｋｔｅ）の際は、信号２１３または２２３に含まれる制御信号を利用して、デュアルポートＲＡＭ２３０へのアクセスが阻止される。このような衝突として、２つの命令実行部が同一のアドレスに書き込もうとしている、または、他方の命令実行部が同一のアドレスから読み出そうとしている間に、一方の命令実行部が同一のアドレスに書き込もうとするケースが挙げられるであろう。
【００３４】
キャッシュは、部分的にまたは完全に連想的に実現されることが可能である。すなわちデータは、キャッシュの複数のまたは全く任意の箇所に格納されることが可能である。さらに、ｄｐＲＡＭへのアクセスを可能にするため、所望のデータ／命令にアクセスする際のアドレスが求められなければならない。アドレス指定モードに従って、キャッシュ内のデータの検索先となる、１つまたは複数のブロックアドレスが選択される。これらブロックはすべて読み出され、キャッシュ内のデータと一緒に格納された識別子が、インデックスアドレス（オリジナルアドレスの構成要素）と比較される。一致の際は、同様にキャッシュ内の各ブロックに格納された制御ビット（有効ビット（Ｖａｌｉｄ−Ｂｉｔ）、ダーティビット及びプロセスＩＤ等）を利用して有効性が追加的に検査された後に、有効性を示すキャッシュヒット信号（Ｃａｃｈｅ  Ｈｉｔ  Ｓｉｇｎａｌ）が生成される。
【００３５】
アドレス変換のため、特に、テーブル（Ｔａｂｅｌｌｅ）が導入される。テーブルは、図２に示される記憶ユニット２１４または２２４（レジスタまたはＲＡＭ、ＴＡＧ−ＲＡＭとも呼ばれる）に配置され、ユニット２１０または２２０内に設けられている。このテーブルは、アドレス変換ユニット（Ａｄｒｅｓｓｔｒａｎｓｆｏｒｍａｔｉｏｎｓｅｉｎｈｅｉｔ）であり、仮想アドレスを物理アドレスに変換するだけではなく、ダイレクトマップ・キャッシュ（ｄｉｒｅｃｔ−ｍａｐｐｅｄ  Ｃａｃｈｅ）の場合は、正確な（一義的な）キャッシュ・アクセスアドレスを伝達する。すなわち、複数の連想キャッシュ構造の際には、複数のブロックが呼び出される。また、完全な連想キャッシュの場合、キャッシュの全ブロックが読み出され、比較されなければならない。このようなアドレス変換ユニットは、例えば米国特許第４６６９０４３号公報に記載されている。
【００３６】
例えば、上記のテーブルでは、ブロックの各アドレスまたはアドレスグループと、ｄｐＲＡＭのアクセスアドレスとが対応している。図３に示されるアドレス指定形式において、さらに、キャッシュのブロック容量に応じて、最上位のアドレスビット（インデックスアドレス）が、テーブルのアドレスとして使用され、その内容はｄｐＲＡＭのアクセスアドレスである（図３）。その際、キャッシュのアドレスが読み出しアクセスされる場合、キャッシュミス（Ｃａｃｈｅ  Ｍｉｓｓ）（キャッシュに必要なデータが無いこと）の際にメモリから一緒にキャッシュへ呼び出される複数のバイトを、ブロック（Ｂｌｏｃｋ）と呼ぶ。このようなブロック転送は、複数の構成要素でのハードウェアの実現に従って、時間的に連続して行われるか、または並行して実行される。
【００３７】
バイトまたはワード単位でのキャッシュへのアクセスのために、ブロックのための最上位のアドレスビットがテーブルによって変換され、残りの（下位の）アドレスビットは変更されずに引き継がれる。
【００３８】
書き込みプロセスのため、例えば、２つのポートの１つに、より高いプライオリティが与えられる。すなわち、同時に２つのポートによって書き込まれることが阻止される。優先順位が高いポートが書き込み動作を実行してはじめて、他方のポートは書き込んでもよい。場合によっては、１つのプロセッサだけが、対応する割り当てられたメモリ領域の書き込み（アクセス）権を持つ。同様に、記憶セルへの任意の書き込み動作の際に、同一の記憶セルがその都度他方のポートから読み出されることが阻止される。または、読み出しを要求するプロセッサが書き込み動作の終了まで停止されることによって、読み出し動作が遅延される。さらに、図２に示される全アドレスビットのアドレスコンパレータ（２５１）は、対応するアービタ（Ａｒｂｉｔｅｒ）２５２を備えている。アービタ２５２は、プロセッサの制御信号も評価し、この書き込みプロセスを制御する出力信号２１３及び２２３を形成する。出力信号２１３及び２２３は、有利な実施形態において、その都度３つの信号状態、すなわち、選択（Ｓｅｌｅｃｔ）、待機（ｗａｉｔ）及びイコール（ｅｑｕａｌ）の状態になることが可能である。純粋な命令キャッシュのために、書き込みアクセスは必要ではない。すなわち、この場合、出力信号２１３及び２２３の信号状態が「イコール」であれば十分である。
【００３９】
キャッシュミスの際、データまたは命令は、バスシステムを介してプログラムまたはデータメモリから呼び出されなければならない。呼び出されたデータは、次いで命令実行部へ伝達され、並行して、識別子及び制御ビットと共にキャッシュに書き込まれる。この場合も、アドレスコンパレータは、ヒット（Ｈｉｔ）がなくても、イコール信号（２１３及び２２３の構成要素または状態）がアドレスコンパレータによって表示される場合、メモリからのデータの再呼び出しを阻止する。イコール信号は、常に記憶装置の全ブロックが呼び出されるため、双方からの読み出しの際に最上位アドレスビットによってのみ形成される。ブロックがキャッシュで格納されてはじめて、待機している命令実行部はキャッシュにアクセスできる。
【００４０】
更なる別の有利な実施形態において、２つの異なる、データ及び命令のためのデュアルポート・キャッシュが設けられている。命令のためのデュアルポート・キャッシュでは、書き込みプロセスは設けられていない。この場合、アドレスコンパレータは、常に最上位のビットの一致（Ｇｌｅｉｃｈｈｅｉｔ）のみを検査しており、対応する制御信号「イコール」を信号２１３及び２２３内に提供する。
【００４１】
更なる別の実施形態において、双方のポートからの同時の読み出しアクセスは、要求されたデータが、同時アクセスを可能にする異なる（別々の）アドレス領域にある場合に、無制限に行われる。従って、ハードウェア実現の際に記憶装置内の全アクセス構造（Ｚｕｇｒｉｆｆ−Ｍｅｃｈａｎｉｓｍｕｓ）が二重化される必要がないので、コストが節約される。例えば、キャッシュは、複数の互いに独立して駆動されるサブ記憶領域（Ｔｅｉｌｓｐｅｉｃｈｅｒｂｅｒｅｉｃｈ）に実現されることが可能である。各サブ記憶領域は、選択信号（ｓｅｌｅｃｔ−Ｓｉｇｎａｌ）を介して、ポート実行のみを可能にする。図４には、このような記憶装置２３０が示されており、２つのサブ記憶領域２３５及び２３６を含んでいる。ここで示される実施形態において、アドレスビットＡｉから、２つの選択信号Ｅ０とＥ１が、Ａｉ＝０の際はＥ０＝１、Ｅ１＝０に、またＡｉ＝１の際はＥ０＝０、Ｅ１＝１となるように形成される。信号２３３及び２３４には、２つの選択信号と下位のアドレスビットＡｉ−１・・・Ａ０が含まれている。
【００４２】
４つのサブ記憶装置を備えた更なる別の実施形態において、各サブ記憶装置が一義的に１つの特定のアドレス領域を供給する（ｂｅｄｉｅｎｅｎ）ため、４つの選択信号が２つのアドレスビットから生成される。従って、例えば、４つのサブ記憶領域は、４つの選択信号Ｅ０〜Ｅ３が図Ｔ１（表１）に基づく２進値に対応して生成されることによって、２つのアドレスビットＡｉ＋１及びＡｉによって呼び出されることが可能である。
【００４３】
図５には、図４で示されるサブ記憶装置２３５及び２３６のための実施形態が示されている。サブ記憶装置２６０は、この特別な実施形態において、シングルポート（Ｓｉｎｇｌｅ  Ｐｏｒｔ）ＲＡＭ２８０として実現されており、そのアドレス、データ及び制御信号は、要求に応じて切り替えられる。切り替えは、制御回路（Ｓｔｅｕｅｒｓｃｈａｌｔｕｎｇ）２７０によって、マルチプレクサ（Ｍｕｌｔｉｐｌｅｘｅｒ）２７５を利用して、対応するポートからの制御信号及び他の制御信号２９０１または２９０２（読み出し、書き込み等）に従って行われる。これらの信号は、データ及びアドレスと一緒に信号２３３及び２３４に含まれており、信号５２８１及び５２８２を介して、マルチプレクサ２７５に伝達される。マルチプレクサ２７５は、制御回路２７０の決定に基づき、出力信号２７０１に応じて、５２８１または５２８２を信号２８０１と接続する。この実施形態において、一般論に限定することなく、キャッシュへの直接的なアドレス指定に基づいている（ダイレクトマップ方式：ｄｉｒｅｃｔ−ｍａｐｐｅｄ）。多重連想キャッシュ構造（ｍｅｈｒｆａｃｈ−ａｓｓｏｚｉａｔｉｖｅ  Ｃａｃｈｅｏｒｇａｎｉｓａｔｉｏｎ）の際には、ユニット２７５において有効性に関する比較が行われ、キャッシュヒット信号がポートに伝達される。または、全データがポート５３３１及び信号２３３を介してポート２３１へ、もしくは、ポート５３３２及び信号２３４を介してポート２３２へ伝達され、そこで有効性が検査される。
【００４４】
その際、制御回路は、信号５２８１または５２８２を、さらに、シングルポートＲＡＭ２８０への信号２８０１に切り替えることが可能であり、データ及び（シングルポートＲＡＭ）２８０の他の信号を逆方向に伝達することも可能である。これは、有効な制御信号、信号２３３及び２３４、及び／または、ポートがこれらの信号を介して読み出しまたは書き込み動作を記憶装置２８０によってうながす順序、に従って行われる。信号２３３及び２３４で、読み出しまたは書き込み信号が同時にアクティブになった場合、予め定義されたポートが最初に利用される。その後、この優先的なポートは、読み出しまたは書き込み信号がアクティブでない場合は、２８０１と接続されたままの状態にされる。優先的なポートは、任意で、動的にプロセッサシステムによって設定されることが可能であるが、特に、その際プロセッサシステムの状態情報に従って設定される。
【００４５】
シングルポートＲＡＭを備えたこの配列は、並行アクセスが可能なデュアルポートＲＡＭより安価である。しかし、同時に１つのサブ記憶装置に（読み出し）アクセスされた場合、少なくとも１つの命令実行部の実行が遅延する。適用（Ａｎｗｅｎｄｕｎｇ）に応じて、ＲＡＭサブ領域を、様々な命令実行部の命令シーケンス及びデータアクセスの形成と同時に同一のＲＡＭサブ領域への同時アクセスが可能な限り少なく行われるように、様々に分割することが可能である。この構成は、２つ以上のプロセッサによるアクセス（が可能なよう）に拡張されることも可能である。同様に、アドレス、データ及び制御信号の切り替えが、複数のマルチプレクサを介して、ステップごとに連続して設けられる場合（図６及び図７）、マルチポートＲＡＭも実現可能である。
【００４６】
図６には、このようなマルチポートＲＡＭ２９０が示されている。マルチポートＲＡＭ２９０では、ポート入力信号２６１〜２６７が、復号化装置３３１〜３３７において、信号２９１〜２９７へと復号化される。この複合化によって、２８１、２８２〜２８８内の個々のＲＡＭへのアクセスのための選択信号が生成される。図７には、サブ記憶装置２８ｘ（２８１・・・２８８）のための実施形態が詳細に示されている。サブ記憶装置では、制御装置３７０の第１ステップにおいて、制御信号２９１〜２９８からの選択信号及び制御信号３９０１〜３９０８が、出力信号３７０１〜３７０７へと加工される。この出力信号は、それぞれマルチプレクサ３７５を駆動する。マルチプレクサ３７５は、信号値に従って、バス３８１または３８２〜３８７または３８８を信号４８１〜４８８と接続する。更なる別のステップにおいて、類似した制御装置３７０及びマルチプレクサ３７５は、最後のステップにおいて制御装置のための信号５９０１及び５９０２が使用されるまで、適切に駆動される。その後、出力信号５７０１は、５８１または５８２を、シングルポートＲＡＭと接続されている６８１と接続する。
【００４７】
図５に示されるマルチプレクサ２７５とは反対に、図７におけるマルチプレクサ３７５は、アドレス及びデータ及び制御（に関する）信号の他に、３８１〜３８８に含まれている、次ステップの制御信号も接続する。さらに、マルチプレクサ３７５内に、多重連想アドレス指定方式の際にサブ領域から読み出されたデータの有効性を求める、比較ユニットが含まれることが可能である。
【００４８】
更なる別の有利な実施形態において、ＲＡＭ領域から様々な命令実行部への切り替えが、１つのまたは複数のシステム状態または構成に関連付けられることが可能である。従って、図８には、構成可能なデュアルポート・キャッシュの例が示されている。さらに、システムまたは構成信号１０００が、２つのポートそれぞれの入力信号の復号化において使用される。図Ｔ２（表２）は、Ｍとして示されている信号１０００に従った復号化の変更の可能性を示している。Ｍ＝０の場合、例えば、２つのポートが全キャッシュへのアクセスを行う、コンペアモードになっている。しかし、Ｍ＝１である場合（パフォーマンスモード等）、各ポートは、半分のキャッシュへのアクセス（権）のみ有するが、制限されずに（他のポートの動作の影響を受けずに）この領域（半分のキャッシュ）にアクセスすることが可能である。パフォーマンスモードにおいて、アドレスビットＡｉは、（ダイレクトマップモードの）キャッシュのアドレス指定に利用されるのではなく、アドレス指定においてアドレスビットと異なるデータは、キャッシュの同一箇所に格納される。キャッシュの内容を読み出す際にはじめて、識別子を用いて、検索されているデータが関連しており、これに応じてキャッシュヒット信号が生成されるかどうかが明らかになる。対応するコンパレータがどこに配列されているかに従って、識別子及び制御ビットを含むデータが、信号２９１〜２９７を介して、ポート３３１〜３３７へ出力される。さらに、信号２６１〜２６７が出力される。同様に、パフォーマンスモード（Ｍ＝１）において、ポート１のみが全キャッシュへのアクセス権を持つ。この更なる別の実施形態は、図Ｔ３（表３）に示されている。利用者は、複数の構成信号によって、キャッシュを任意で他の形式で分割することが可能である。これによって、比較的大きなキャッシュ領域において、ヒット率（Ｈｉｔ−Ｒａｔｅ）が一度高められ、それに伴い主記憶装置からデータを呼び出す必要性が低減される。一方、様々なポートを介して可能な限り別々の独立したキャッシュ領域がアクセスされた場合、様々な命令実行部は（アクセスが）阻止されない。この条件は利用のために設けられたプログラムに依存するので、利用に従って更なる別の構成が可能である場合に利点がある。一方、システム状態（コンペアモード／パフォーマンスモード）を切り替えた際に直接、キャッシュはモード信号１０００によって自動的に切り替えられる。
【００４９】
このモードまたは構成信号に従ってポートを切り替える可能性は、図９のマルチポート・キャッシュ２９０において広げられる。その際、ポート３３１〜３３７は、モードまたは構成信号を用いて、様々なサブＲＡＭ領域２８１〜２８８を制御する。この制御は、これに対応してポートで生成された、信号２９１〜２９７に含まれている選択信号によって保障される。
【００５０】
図１０には、多重連想キャッシュが存在する、更なる別の実施形態が示されている。多重連想キャッシュにおいて、各サブ記憶装置２８１〜２８８から、データが、識別子及び制御ビットと共にリードバック（ｚｕｒｕｅｃｋｌｅｓｅｎ）される。比較装置２８１１〜２８１７、２８２１〜２８２７、・・・２８８１〜２８８７において有効性が検査され、検査結果に従って、信号２９１０、２９２０・・・２９７０のデータが、有効信号と共に次に転送される。その際、択一的に、モードまたは構成信号による切り替えが、すでに図９で示し解説したのと同様に可能である。ポート３３１０、３３２０、・・・３３７０において、有効性信号及び場合によってはモード及び構成信号１０００が評価され、対応する有効なデータが、キャッシュヒット信号またはキャッシュミス信号と共に信号２６１０、２６２０、・・・２６７０へ転送される。
【００５１】
図Ｂ１には、２つの命令実行部を備えた非対称なシステム構造のためにデュアルポート・キャッシュを利用する、構造が示されている。その際、Ｂ１１０及びＢ１１１は、独自のデータ／アドレス及び制御信号Ｂ１２０またはＢ１２１を有する２つの命令実行部である。Ｂ１００は、切り替え及び比較ユニット（ＵＶＥ：Ｕｍｓｃｈａｌｔ−  ｕｎｄ  Ｖｅｒｇｌｅｉｃｈｅｉｈｈｅｉｔ）である。
【００５２】
図Ｂ２には、２つ命令実行部Ｂ１０及びＢ１１と接続して利用する際の、切り替え及び比較ユニットの基本機能が示されている。データ、制御及びアドレス信号Ｂ２０またはＢ２１等の、命令実行部Ｂ１０及びＢ１１の様々な出力信号は、切り替えユニットと接続されている。
【００５３】
さらに、少なくとも１つの同期信号が、すなわち本発明の一実施形態に基づく構成において、２つの出力信号Ｂ４０及びＢ４１が存在する。出力信号Ｂ４０及びＢ４１は、それぞれ比較ユニットと接続されている。
【００５４】
切り替えユニットは、少なくとも１つの制御レジスタＢ１５を含んでいる。制御装置レジスタは、少なくとも１つの、二進信号（Ｂｉｔ）Ｂ１６のためのメモリ要素を有している。その際、二進信号Ｂ１６は、比較ユニットのモードを切り替える。このビットＢ１６は、２つの値０及び１を獲得することが可能であり、命令実行部の信号Ｂ２０もしくはＢ２１によって、または切り替え装置の内部プロセスによって、設定されるか、またはリセットされる。
【００５５】
永続的にコンペアモードに調整される場合、切り替えユニットと、それに伴って制御レジスタＢ１５及び切り替えビットＢ１６とを省略することが可能である。その際、切り替え及び比較ユニットは、永続的に比較ユニットとなり、信号Ｂ１０１は常に１である。従って、図Ｂ３及びＢ４に示される状態が存在しない。従って以下のすべての考察においては、ビットＢ１６が設定されており、信号Ｂ１０１＝１であるものと仮定する。
【００５６】
このビットＢ１６が１に設定される場合、切り替えユニットはコンペアモードで駆動する。このモードにおいて、Ｂ２０のアクセスする全データ信号は、特定の設定可能な、信号Ｂ２０及びＢ２１の制御及び／またはアドレス信号の比較条件が満たされている限り、Ｂ２１のデータ信号と比較される。制御及び／またはアドレス信号は、データの有効性及びアクセスするデータの比較の予定について信号で知らせる。
【００５７】
この比較条件が、２つの信号Ｂ２０及びＢ２１で同時に満たされている場合、これらの信号のデータが直接比較され、不一致の際にエラー信号Ｂ１７が設定される。信号Ｂ２０またはＢ２１のどちらかの比較条件のみが満たされている場合、対応する同期信号Ｂ４０またはＢ４１が設定される。この信号は、対応する命令実行部Ｂ１０またはＢ１１において、処理を停止させる。さらに、対応する、それ以前に互いに比較されなかった信号を続けて切り替えること（Ｗｅｉｔｅｒｓｃｈａｌｔｕｎｇ）を阻止する。信号Ｂ４０またはＢ４１は、対応するその都度の他方の命令実行部Ｂ２１またはＢ２０の比較条件が満たされている限り、設定されたままである。この場合、比較が行われ、対応する同期信号がリセットされる。
【００５８】
上記のように比較されるデータが同時に提供されない場合に、２つの命令実行部による比較を保障するためには、対応する命令実行部のデータ及び比較条件を、対応する同期信号Ｂ４０またはＢ４１がリセットされるまで、対応する値に設定し続ける必要がある。または、最初に提供されたデータは、比較が行われるまで切り替えユニットで格納されなければならない。
【００５９】
どの命令実行部が最初にデータを提供するかに従って、独自のプログラムまたは工程を更に実行する命令実行部は、他方の命令実行部が対応する比較データを提供する限り、待機しなければならない。
【００６０】
図Ｂ２に基づく切り替えユニットの特別な実施形態において、信号Ｂ４０またはＢ４１の１つを省略することが可能である。すなわち、信号が付属している命令実行部が、他方の実行命令部より早く比較データを提供しないことが常に保障されている場合、信号Ｂ４０またはＢ４１は省略される。Ｂ１６が設定されていない場合、同期信号Ｂ４０及びＢ４１並びにエラー信号Ｂ１７は、常に０に設定される。その際比較は行われず、双方の命令実行部は、互いに独立してパフォーマンスモードで駆動する。
【００６１】
パフォーマンスモードにおいて、図Ｂ１に基づく２つの命令実行部は独立して、プログラム、プログラム部分またはプログラムセグメントを処理する。命令実行部Ｂ１１１は、Ｂ１２１を介して、キャッシュＢ１０５へアクセスし、キャッシュは、Ｂ１６１を介して、主記憶装置または他の記憶装置と接続する。命令実行部Ｂ１１０は、特に（制御信号Ｂ１０１によってパフォーマンスモードでは非アクティブに調整される）装置１０６を介して、同様にデュアルポート・キャッシュにアクセスし、その際このキャッシュの第２ポートを利用する（図Ｂ３参照）。切り替え及び比較ユニット（ＵＶＥ）Ｂ１００は、非アクティブである。すなわち、データは比較されない（Ｂ１６が設定されない）。更なる別の実施形態において、命令実行部Ｂ１１０によるキャッシュを介したアクセスのために、しかしここでの更なる別の実施形態においては、Ｂ１６０を介した主記憶装置または他の記憶装置への直接的なアクセスが設けられている（図Ｂ４参照）。しかし、この更なる別の実施形態には、キャッシュのデータにもはや整合性がないという短所がある。従って、対応するブロックは、キャッシュで有効ビットをリセットすることによって無効にされなければならない。すなわち対応するブロックは、処理ユニット（Ｂｅａｒｂｅｉｔｕｎｇｓｅｉｎｈｅｉｔ）Ｂ１１０自体によって、または、バスＢ１６１を監視し、キャッシュに設けられているブロックが書き込まれるかどうかを検出するキャッシュによって自発的に、無効にされなければならない。このプロセスは、バス監視（ｂｕｓ  ｓｎｏｏｐｉｎｇ）と呼ばれている。これに対して、図Ｂ３の更なる別の実施形態は、コストがより安価なため利点がある。
【００６２】
図Ｂ１に基づく構造のコンペアモードは、図Ｂ５において詳細に示されている。ＵＶＥＢ１００においてＢ１６が設定されることによってコンペアモードが駆動されると、双方の命令実行部は同一のプログラムの実行を開始する。このプログラムは、場合によっては双方の命令実行部において様々に実行される。すなわち、比較されるデータを生成する、様々なアルゴリズム及び／または命令が利用される。命令実行部Ｂ１１０は、互いに比較されるべきデータを、対応する識別子と一緒に切り替えまたは比較装置（ＵＶＥ）Ｂ１００に出力する。
【００６３】
この動作は、読み出し要求ユニットＢ１０６における制御信号（書き込み等）の格納を促す。場合によっては、識別子（状態またはプロセス情報、処理周期）が記憶要素Ｂ１０６１へ、さらに識別子に付属するアドレスが記憶要素Ｂ１０６２へ追加的に格納される。従って、ユニットＢ１０６は、制御ユニットＢ１０６４のＢ１０６１から生成された制御信号（読み出し等）と、Ｂ１０２１内の識別子と、Ｂ１０６２によって出力されたデュアルポート・キャッシュＢ１０５へのアドレス信号Ｂ１０２２とを用いて、読み出しプロセスを開始する。比較を目的とするキャッシュでの読み出しプロセスにおいては、常に、キャッシュに直接接続された命令実行部が既にデータをキャッシュに書き込み済みであることが前提である。このことは、命令実行部がコンペアモードへの切り替えと共に、適切に時間を合わせてプログラム処理を開始することよって保障される（以下、同期に関する段落を参照）。コンペアモードにおいて、比較されるデータがまだキャッシュで使用可能ではない場合（キャッシュミス）、キャッシュは、まだこのデータを主記憶装置で要求してはならず、データが直接キャッシュと接続されている命令実行部によって書き込まれキャッシュに存在するまで、読み出しアクセスを繰り返さなければならない。データが許容された時間領域で、または特定の試行回数（内）で処理されなかった際は、時間監視（ｚｅｉｔｌｉｓｃｈｅ  Ｕｅｂｅｒｗａｃｈｕｎｇ）または失敗した試行を数えるカウンタが、エラー信号を生成する。
【００６４】
それに伴って受信されたデータ値は、Ｂ１０２３を介してＢ１０６３に書き込まれる。データの有効性は、受信された制御信号Ｂ１０２４に表示される（キャッシュヒット信号及び有効ビットの評価、有効な際にデータ、アドレス及び適切な制御信号がＢ１００３、Ｂ１００２及びＢ１００１を介して、比較のためにＢ１００に提供される）。その際、読み出し要求ユニットＢ１０６では、キャッシュのデータと共に送り戻された識別子（制御ビット）が現在処理中の（ａｋｔｕｅｌｌ）識別子と比較される。識別子が不一致の場合、キャッシュ内の同一のアドレスへの読み出しプロセスが新たに開始される。データは、識別子が有効な際にはじめて、場合によっては追加的な識別子としても利用可能なアドレスと共に、比較のための適切な制御信号Ｂ１００１を用いて使用される。比較値が利用できるまで（または、信号Ｂ１２０がＢ１００内に一時的に格納されない際は、場合によっては比較が終了するまで）、命令実行部Ｂ１１０は、制御信号Ｂ１４０（待機（ｗａｉｔ）、割り込み等）を介して停止される。従って、Ｂ１１０の比較データがまだ信号Ｂ１２０に存在することが保障される。信号Ｂ１２０がＢ１００に含まれている先入れ先出し（ＦＩＦＯ）で格納される場合、命令実行部Ｂ１１０は、ＦＩＦＯの容量が完全に一杯になるまで停止される必要はない。その際、複数のデータワードを格納でき、最初に格納されたデータも最初に再度出力する記憶装置ユニットを、ＦＩＦＯ（ｆｉｒｓｔ  ｉｎ  ｆｉｒｓｔ  ｏｕｔ；先入れ先出し）と呼ぶ。
【００６５】
２つの命令実行部の同期は、命令実行部Ｂ１１１が比較データを識別子（アドレス及び追加的なビット、有効ビット、ダーティビット、プロセスＩＤ等）と共にキャッシュに格納し、比較の前に有効性が適切に検査されることによって行われる。さらに、格納されたアドレスデータ及び有効ビットが、キャッシュヒット信号の生成のために利用される。ダーティビットは、キャッシュの関連するブロックのデータが変更され、（データが）まだ主記憶装置にライトバック（ｚｕｒｕｃｋｇｅｓｃｈｒｉｅｂｅｎ）されていないかということのみを表示する。その際、プロセスＩＤは、有効なデータがＢ１１１によってキャッシュに新たに書き込まれる度に変更される、プログラム実行の識別子である。従って、プロセスＩＤが、例えばコンペアモードの開始と共に特定の値に設定され、公知の方法で変更される、例えば増分される場合に、データの現実性（Ａｋｔｕａｌｉｔａｅｔ）が検査される。
【００６６】
図Ｔ４（表４）には、キャッシュの内部構造が示されている。各行は、データブロックに相当する。
【００６７】
アドレス日（Ａｄｒｅｓｓ−Ｔａｇ）は、アドレスの構成要素である。ブロックへのアクセスに関連し、実際のアクセスの際にはアドレスインデックスと比較される。有効な有効ビット（制御ビットの構成要素）と一致する際は、キャッシュヒット信号が生成される。データブロックは、若干数のビットから複数キロバイトまでのデータを含むことが可能である。図Ｔ５（表５）には、制御ビットの一例が示されている。
【００６８】
例えば、プロセスＩＤの増分を保障するため、キャッシュＢ１０５に、カウンタＢ１０５９が設けられている（図Ｂ６）。カウンタＢ１０５９は、コンペアモード（Ｂ１０１＝１）の開始と共に信号Ｂ１０２１及び１０２２を介して、定義された値に設定される。この値は、第１コンペアモードが開始した場合、例えば、１６進値０ｘ００００であることが可能である。このカウンタは、継続的に、Ｂ１１１によって比較に関連するデータが書き込まれる度に増分されることが可能である。その際、比較に関連する（ｖｅｒｇｌｅｉｃｈｓｒｅｌｅｖａｎｔ）とは、アドレス及び／または他の制御信号を用いて、データが比較のために設けられているかどうかを設定できるということである。
【００６９】
キャッシュの各データと共にプロセスＩＤとしてのカウンタ値を格納した場合、データの状態（Ｄａｔｅｎｓｔａｎｄ）に一義的にラベル付けされる（ｋｅｎｎｚｅｉｃｈｎｅｎ）。ユニットＢ１０６の同種のカウンタＢ１０６９を用いて、対応するデータがすでにキャッシュに存在するかが、簡単な比較によって決定される。さらに、カウンタＢ１０６９は、Ｂ１０１（コンペアモード）の作動と共に、カウンタＢ１０５９と同様に、特に同一の開始値に設定され、Ｂ１１０による関連するデータの各書き込み信号と共に増分される。読み出されたブロック内のプロセスＩＤビットが、Ｂ１０６９のカウンタ値と同じ値である、またはカウンタ値より高い場合、データは有効である。その際、ブロックにも複数回、様々なデータが書き込まれる可能性があるため、カウンタ値が比較的高い可能性がある。カウンタは、新たなサイクルの開始と共に、リセットされる必要がある。その際、新サイクルにおいて、まだ比較されていないデータが上書きされないように阻止されなければならない。
【００７０】
カウンタの更なる別の実施形態は、下位アドレスビット（図３に基づくブロックアドレス指定に関連しないアドレスビット０、・・・、ｋ−１）をプロセスＩＤの構成要素として格納することである。その一方、他のプロセスＩＤビットは、サイクルにラベル付けする（ｋｅｎｎｚｅｉｃｈｎｅｎ）。ワード幅が１バイトより大きい場合、対応する下位の（ｎｉｅｄｅｒｗｅｒｔｉｇｓｔｅｒ）ビットが省略される。従って、ブロック内のどのワードが最新で書き込まれたのかを検出することが可能である。さらに、プログラムシーケンス（Ｐｒｏｇｒａｍｍａｂｌａｕｆ）において、例えば、データは常に連続するアドレスと共に書き込まれる。または、時系列に沿って連続する（ｌｉｎｅａｒ  ｆｏｒｔｌａｕｆｅｎｄ）プログラムを実行する際に、変換表を用いて、Ｂ１１１によって最新に書き込まれた値をＢ１１０の現在の（ａｋｔｕａｌｌ）比較値に、一義的に対応させることが可能である。
【００７１】
更なる可能性は、カウンタ状態を、プロセスＩＤとしてデータブロックと共にキャッシュに格納するのではなく、Ｂ１０６による読み出しアクセスの度に、目下のカウンタ状態を、制御信号Ｂ１０６４を介してＢ１０６へ伝達することにある。プロセスＩＤとして、進行中のサイクルのみが、これに対応して若干のメモリビット内に格納される。キャッシュのデータブロックは、今日では通常６４キロバイトまで含むことが可能なので、記憶容量は本質的には低減されない。例えば、１６個の追加的なプロセスＩＤビットの（データブロック内での占有率）は、０、００３１％未満である。
【００７２】
カウンタＢ１０５９及びＢ１０６９を利用しない同期の更なる別の実施形態は、コンペアモードを要求するため、制御信号Ｂ１４１（割り込み等）を命令実行部Ｂ１１１へ送信することにある。命令実行部Ｂ１１１は、公知の最大周期（ｍａｘｉｍａｌｅ  Ｚｅｉｔｓｐａｎｎｅ）Ｔの後に、コンペアモードでのプログラム実行を開始する。命令実行部Ｂ１１０は、適切に初期化され、コンペアモードを準備すると同時に、最大周期Ｔ遅れて開始される。従って、デュアルポート・キャッシュＢ１０６内の比較データは、常に、命令実行部Ｂ１１０が対応するデータを出力する前に、準備が出来ていることが保障される。その際、値Ｔにおいて、場合によっては、データが多様に計算されることも考慮される。すなわち、（計算の）多様性によって、命令実行部Ｂ１１０内（で消費される）よりも長い、命令実行部Ｂ１１１内で消費される時間（Ｚｅｉｔｄａｕｅｒ）が、Ｔに追加されることが考慮される。
【００７３】
比較データの現実性がどのように防護されるかということと無関係に、命令実行部Ｂ１１１は、データが例えば周期的に更新される場合、まだ比較されていないデータを上書きすることが阻止される。更に、ビットＢ１６のリセットは、例えば、命令実行部Ｂ１１１への制御信号Ｂ１４１のリセットも促すことが可能である。Ｂ１４１が設定されている限り、データの周期的な更新の際に、命令実行部Ｂ１１１は、最新サイクルのデータを上書きすることが阻止される。その際、命令実行部Ｂ１１１は、待機ループ（Ｗａｒｔｅｓｃｈｌｅｉｆｅ）に入る、またはデータの比較が無くてもよい動作を実行する。Ｂ１４１のリセットと共に、ユニットＢ１０６から比較のための更なるデータが要求されておらず、それまでの比較動作が終了していることが、信号で知らされる。Ｂ１４１が新たに設定されない限り、命令実行部Ｂ１１１はパフォーマンスモードで駆動する。従って、キャッシュのデータの上書きが再び可能であるが、Ｂ１４１の再活性化の後にようやく、再度コンペアモードが開始される。
【００７４】
更なる別の実施形態において、信号Ｂ１４１は、割り込みによって比較モードを準備するために、常に短時間アクティブになる。その際、Ｂ１４１が再び短時間設定され、それに伴って開始された割り込みによって、比較データを新たに提供する関連するプログラム箇所にジャンプする（ｓｐｒｉｎｇｅｎ）まで、データの上書きが阻止される。
【００７５】
比較開始後に、命令実行部Ｂ１１１によって比較データが準備されるまでの時間（Ｚｅｉｔｄａｕｅｒ）が、命令実行部Ｂ１１０のデータとのデータ比較に必要とされる時間より常に長く、Ｂ１１１のデータが常に少なくとも同時にまたはＢ１１０のデータより早く準備されており、Ｂ１１０のデータをＢ１００内の単一の記憶装置またはＦＩＦＯに一時格納することによって、命令実行部Ｂ１１０が信号Ｂ１４０によって同期を目的として停止される必要がないことが適切な処理によって保障される場合、全ての同期処理（Ｓｙｎｃｈｒｏｎｉｓａｔｉｏｎｓｍａｓｓｎａｈｍｅ）が省略されることが可能である。ここで提案される方法に関して、各適用（Ａｎｗｅｎｄｕｎｇ）について、その都度必要な処理が行われる。
【００７６】
更なる別の有利な実施形態において、デュアルポート・キャッシュは、必ずしもデュアルポートＲＡＭで実現される必要はなく、シングルポートＲＡＭＢ１０５６が利用される（図Ｂ７参照）。アクセス制御Ｂ１０５７によって、２つのポートは、順々に要求に従い、利用される。しかし、その際常に、信号Ｂ１０５８を介するＲＡＭへのアクセスのみが、双方のポートを使用する。従って、アクセスが衝突した際に、Ｂ１０６によるリードバック（Ｒｕｃｋｌｅｓｅｎ）が、場合によって１または複数クロック、追加的に遅らされることが可能であるが、データはいずれにせよ２つの命令実行部によって非同期に伝達されるので、様々な利用において短所にはならない。重要なのは、命令実行部Ｂ１１１はより高い優先順位が与えられているので、アクセス時に阻止されないということである。さらに、上記の遅延が発生しうるとしても、全体のバランスから、第２ポートに十分なアクセスの可能性（チャンス）が提供されることが、重要である。この実施形態の利点は、第２ポートのためのハードウェアが明らかに節約されることにある。図Ｂ７で信号Ｂ１０５８が、直接信号Ｂ１２１と接続されており、Ｂ１０５７もＢ１０２も省略されている限りにおいて、従来技術に従った通常のシングルポートキャッシュが設けられている。シーケンス制御Ｂ１０５７による拡張及びそれに伴う可能なＢ１０２の接続は、真に並列なデュアルポートＲＡＭを組み込むより、明らかに追加コストが少ない。
【００７７】
ユニットＢ１０６は、独立したユニットである必要はなく、ＵＶＥＢ１００に統合されることが可能である、または、キャッシュまたは命令実行部と共にチップに統合されることが可能である。
【００７８】
図６に基づく２つ以上のポートを備えたキャッシュ、すなわち、マルチポート・キャッシュＢ２０５が使用される場合、図８に対応して、２つ以上のプロセッサが、データをコンペアモードで比較する、または多数決判定することが可能である。すなわち、多数決によって、有効な値を決定することが可能である。各追加的な命令実行部Ｂ１１２、・・・のために、追加的な読み出し要求ユニットＢ１０７、・・・が図Ｂ８に基づいて設けられ、従ってＵＶＥＢ２００は、それに対応する数の入力を有していなければならない。コンペアまたは多数決判定（Ｖｏｔｉｎｇ）モードにおいて、キャッシュに直接接続された命令実行部は、比較または多数決判定のためのデータを、直接キャッシュに書き込む。残りの命令実行部Ｂ１１０、Ｂ１１２、・・・のうち、最初に比較／多数判定のためのデータを準備する命令実行部（ｄｉｅｊｅｎｉｇｅ）は、接続された読み出し要求ユニットＢ１０６、Ｂ１０７・・・を介して、またキャッシュＢ２０５の接続されたポートを介して、対応するデータを要求する。さらに、この状態を他の命令実行部及びＵＶＥへ、信号Ｂ８１０５を用いて伝達する。Ｂ１０２、Ｂ１０４、・・・を介して、キャッシュによってデータが準備された後、データは、ＵＶＥＢ２００のＢ８１０５を介して、比較のために準備される。関係する（ｂｅｔｅｉｌｉｇｔｅ）全ての命令実行部に、対応するデータが提供された場合、比較／多数決が行われる。場合によっては、他の命令実行部は、このデータの準備が整う時点まで、制御信号Ｂ１４０、Ｂ１４２．・・・を介して停止されなければならない。その際、時間監視（Ｚｅｉｔｕｅｂｅｒｗａｃｈｕｎｇ）によって、許容されたタイムスロット（Ｚｅｉｔｆｅｎｓｔｅｒ）内に比較が行われるか、またはエラーが信号で知らされることが保障される。
【００７９】
ＲＡＭ記憶装置の代わりに、本発明の一実施形態に基づく構成は、ＭＲＡＭ、ＦＥＲＡＭ等の、更なる別の記憶技術も備えることが可能である。
【図面の簡単な説明】
【００８０】
【図１】データ及び／または命令のためのデュアルポート・キャッシュを示している。
【図２】デュアルポート・キャッシュの詳細を示している。
【図３】２１４または２２４の変換表（Ｔｒａｎｓｆｏｒｍａｔｉｏｎｓｔａｂｅｌｌｅ）である。
【図４】ｄｐＲＡＭの２つのサブ領域への分割を示している。２つのサブ領域は、互いに独立して駆動され、各ポートのそれぞれ２つの別々の選択信号によって、アクセス時に制御される。
【図Ｔ１】復号化を利用した、２つのアドレスビットからの４つの選択信号の生成を示している。
【図５】ポートの切り替えを利用した、シングルポートＲＡＭでのデュアルポートＲＡＭ領域の実現を示している。
【図６】ｐ個のポートを有するマルチプルポートＲＡＭの、並行処理される複数のサブアドレス領域への分割を示している。
【図７】ポートの切り替えを利用した、シングルポートＲＡＭでのマルチポートＲＡＭ領域の実現を示している。
【図８】システム状態または構成に従った、ポートのためのＲＡＭ領域の分割を示している。
【図Ｔ２】システム状態または構成信号を考慮した、各ポートでのアドレスビットからのそれぞれ２つの選択信号の生成を示している。
【図Ｔ３】更なる別の実施形態における、システム状態または構成信号を考慮した、各ポートでのアドレスビットからのそれぞれ２つの選択信号の生成を示している。
【図９】システム状態または構成に従った、対応する選択信号の生成によるマルチポートＲＡＭの領域の分割を示している。
【図１０】マルチポートＲＡＭの、多重連想アクセスを伴う領域の分割を示している。
【図Ｂ１】デュアルポート・キャッシュを備えた非対称なＤＣＳＬアーキテクチャの原則を示している。
【図Ｂ２】２つの命令実行部のための切り替え及び比較ユニットの原則を示している。
【図Ｂ３】非アクティブ状態にある読み出し要求ユニットＢ１０６を示している。
【図Ｂ４】比較ビットが設定されていない場合の、キャッシュを利用せずに切り替え及び比較ユニットを介した、命令実行部による記憶装置への択一的なアクセスを示している。
【図Ｂ５】比較ビットが設定され、データが命令実行部Ｂ１１０から出力される場合の、ユニットによるキャッシュへの読み出し要求を示している。
【図Ｔ４】キャッシュの構造を示している。
【図Ｔ５】制御ビットの可能な構造を説明している。
【図Ｂ７】シングルポートＲＡＭを利用したデュアルポート・キャッシュ及びアクセス制御を示している。
【図Ｂ８】複数のモードとマルチポート・キャッシュに切り替え可能な、非対称なデータ処理ユニットの基本構造を示している。
【図１】
2009505178.tif 000003
【図２】
2009505178.tif 000004
【図３】
2009505178.tif 000005
【図４】
2009505178.tif 000006
【図５】
2009505178.tif 000007
【図６】
2009505178.tif 000008
【図７】
2009505178.tif 000009
【図８】
2009505178.tif 000010
【図９】
2009505178.tif 000011
【図１０】
2009505178.tif 000012
【図Ｂ１】
2009505178.tif 000013
【図Ｂ２】
2009505178.tif 000014
【図Ｂ３】
2009505178.tif 000015
【図Ｂ４】
2009505178.tif 000016
【図Ｂ５】
2009505178.tif 000017
【図Ｂ６】
2009505178.tif 000018
【図Ｂ７】
2009505178.tif 000019
【図Ｂ８】
2009505178.tif 000020
【図Ｔ１】
2009505178.tif 000021
【図Ｔ２】
2009505178.tif 000022
【図Ｔ３】
2009505178.tif 000023
【図Ｔ４】
2009505178.tif 000024
【図Ｔ５】
2009505178.tif 000025
【国際調査報告】
2009505178.tif 000026
2009505178.tif 000027
2009505178.tif 000028
2009505178.tif 000029
2009505178.tif 000030
2009505178.tif 000031