(57)【特許請求の範囲】
【請求項１】
可変サイズ・キャッシュのためのキャッシュ・ディレクトリをアドレスする方法にして、
アドレスからのインデックス・フィールドを利用してキャッシュ・ディレクトリにおけるコングルーエンス・クラスを選択するステップと、
前記アドレスからの少なくとも１つのビットを利用して、前記選択されたコングルーエンス・クラスにおけるｍ個のキャッシュ・ディレクトリ・エントリのｎ個のグループのうちの１つを選択するステップと、
前記キャッシュ・ディレクトリ・エントリの選択されたグループにおける各キャッシュ・ディレクトリ・エントリに前記アドレスからのアドレス・タグ・フィールドを比較するステップと、
前記キャッシュ・ディレクトリ・エントリの選択されたグループにおけるキャッシュ・ディレクトリ・エントリと前記アドレス・タグ・フィールドとの間の一致を識別することに応答して、該一致したキャッシュ・ディレクトリ・エントリと関連したキャッシュ・メモリの部分を選択するステップと、
を含む方法。
【請求項２】
前記アドレスからのインデックス・フィールドを利用してキャッシュ・ディレクトリにおけるコングルーエンス・クラスを選択するステップは、
前記アドレスからの同じインデックス・フィールドを利用して、前記キャッシュ・サイズに関係なくコングルーエンス・クラスを選択するステップ
を更に含む請求項１に記載の方法。
【請求項３】
前記アドレスからのインデックス・フィールドを利用してキャッシュ・ディレクトリにおけるコングルーエンス・クラスを選択するステップは、
前記アドレスからのインデックス・フィールドを多重化することなく前記インデックス・フィールドを直接に利用するステップ
を更に含む請求項１に記載の方法。
【請求項４】
前記選択されたコングルーエンス・クラスにおけるｍ個のキャッシュ・ディレクトリ・エントリのｎ個のグループのうちの１つを選択するステップは、
前記選択されたコングルーエンスからキャッシュ・ディレクトリ・エントリの２つのグループのうちの１つを選択するステップ
を更に含む請求項１に記載の方法。
【請求項５】
前記選択されたコングルーエンス・クラスにおけるｍ個のキャッシュ・ディレクトリ・エントリのｎ個のグループのうちの１つを選択するステップは、
前記選択されたコングルーエンス・クラスから２つのキャッシュ・ディレクトリ・エントリのグループを選択するステップ
を更に含む請求項１に記載の方法。
【請求項６】
前記選択されたコングルーエンス・クラスにおけるｍ個のキャッシュ・ディレクトリ・エントリのｎ個のグループのうちの１つを選択するステップは、
前記選択されたコングルーエンスからキャッシュ・ディレクトリ・エントリの４つのグループのうちの１つを選択するステップ
を更に含む請求項１に記載の方法。
【請求項７】
前記選択されたコングルーエンス・クラスにおけるｍ個のキャッシュ・ディレクトリ・エントリのｎ個のグループのうちの１つを選択するステップは、
前記選択されたコングルーエンス・クラスから４つのキャッシュ・ディレクトリ・エントリのグループを選択するステップ
を更に含む請求項１に記載の方法。
【請求項８】
前記選択されたコングルーエンス・クラスにおけるｍ個のキャッシュ・ディレクトリ・エントリのｎ個のグループのうちの１つを選択するステップは、
レイト・セレクトのための前記アドレスからのビットを利用するステップ
を更に含む請求項１に記載の方法。
【請求項９】
前記選択されたコングルーエンス・クラスにおけるｍ個のキャッシュ・ディレクトリ・エントリのｎ個のグループのうちの１つを選択するステップは、
関連するキャッシュ・メモリが第１サイズを有する時、前記アドレスからの第１ビットを利用して、前記選択されたコングルーエンス・クラスにおけるキャッシュ・ディレクトリ・エントリのグループを選択するステップと、
前記関連するキャッシュ・メモリが第２サイズを有する時、前記アドレスからの第２ビットを利用して、前記選択されたコングルーエンス・クラスにおけるキャッシュ・ディレクトリ・エントリのグループを選択するステップと、
を更に含む請求項１に記載の方法。
【請求項１０】
前記キャッシュ・ディレクトリの各コングルーエンス・クラスを、各グループがｍ個のキャッシュ・ディレクトリ・エントリを含むキャッシュ・ディレクトリ・エントリのｎ個のグループに論理的に分割するステップと、
キャッシュ・メモリの各コングルーエンス・クラスをキャッシュ・ラインのｎ個のグループに論理的に分割するステップと、
を更に含み、キャッシュ・ラインの各グループはｍ個のキャッシュ・ラインを含み、前記キャッシュ・ディレクトリ内の同じコングルーエンス・クラスにおけるキャッシュ・ディレクトリ・エントリの対応するグループと関連づけられる、請求項１に記載の方法。
【請求項１１】
関連するキャッシュ・メモリが第１サイズを有する時、前記アドレスからの第１フィールドをキャッシュ・ライン内アドレスとして利用するステップと、
前記関連するキャッシュ・メモリが第２サイズを有する時、前記アドレスからの第２フィールドをキャッシュ・ライン内アドレスとして利用するステップと、
を更に含む請求項１に記載の方法。
【請求項１２】
可変サイズ・キャッシュのためのキャッシュ・ディレクトリ・アドレシング機構にして、
各々がｍ個のキャッシュ・ディレクトリ・エントリのｎ個のグループを含む複数のコングルーエンス・クラスを持つキャッシュ・ディレクトリと、
各々がｍ個のキャッシュ・ラインのｎ個のグループを含む複数のコングルーエンス・クラスを持つキャッシュ・メモリであって、１つのコングルーエンス・クラスにおけるキャッシュ・ラインの各グループが前記キャッシュ・ディレクトリの同じコングルーエンス・クラスにおけるキャッシュ・ディレクトリ・エントリの対応するグループと関連付けられる、キャッシュ・メモリと、
アドレスからのインデックス・フィールドを利用して前記キャッシュ・ディレクトリにおけるコングルーエンス・クラスを選択するディレクトリ・ルックアップと、
前記アドレスからの少なくとも１つのビットを利用して前記選択されたコングルーエンス・クラスにおけるディレクトリ・エントリの１つのグループを選択するレイト・セレクトと、
前記アドレスからのアドレス・タグ・フィールドをキャッシュ・ディレクトリ・エントリの前記選択されたグループにおける各キャッシュ・ディレクトリ・エントリに比較する少なくとも１つのコンパレータと、
前記キャッシュ・ディレクトリ・エントリの選択されたグループにおけるキャッシュ・ディレクトリ・エントリと前記アドレス・タグ・フィールドとの間の一致が識別されたことに応答して、一致したキャッシュ・ディレクトリ・エントリに対応する前記キャッシュ・メモリにおけるキャッシュ・ラインを選択するマルチプレクサと、
を含む機構。
【請求項１３】
前記キャッシュ・ディレクトリは、更に、各コングルーエンス・クラスにおいてキャッシュ・ディレクトリ・エントリの２つのグループを含む、請求項１２に記載の機構。
【請求項１４】
前記キャッシュ・ディレクトリは、更に、各コングルーエンス・クラスにおいて２つのキャッシュ・ディレクトリ・エントリのｎ個のグループを含む、請求項１２に記載の機構。
【請求項１５】
前記キャッシュ・ディレクトリは、更に、各コングルーエンス・クラスにおいてキャッシュ・ディレクトリ・エントリの４つのグループを含む、請求項１２に記載の機構。
【請求項１６】
前記キャッシュ・ディレクトリは、更に、各コングルーエンス・クラスにおいて４つのキャッシュ・ディレクトリ・エントリのｎ個のグループを含む、請求項１２に記載の機構。
【請求項１７】
前記ディレクトリ・ルックアップは、更に、前記アドレスからの同じインデックス・フィールドを利用して、前記キャッシュ・メモリのサイズに関係なく前記キャッシュ・ディレクトリにおけるコングルーエンス・クラスを選択するディレクトリ・ルックアップを含む、請求項１２に記載の機構。
【請求項１８】
前記レイト・セレクトは前記キャッシュ・ディレクトリの出力において前記少なくとも１つのコンパレータに接続される、請求項１２に記載の機構。
【請求項１９】
前記レイト・セレクトは、前記キャッシュ・メモリが第１サイズを有する時、第１ビットを利用して前記選択されたコングルーエンス・クラスにおけるキャッシュ・ディレクトリ・エントリのグループを選択し、前記キャッシュ・メモリが第２サイズを有する時、第２ビットを利用して前記選択されたコングルーエンス・クラスにおけるキャッシュ・ディレクトリ・エントリのグループを選択する、請求項１２に記載の機構。
【請求項２０】
前記レイト・セレクトは、前記アドレスのアドレス・タグ・フィールドからのビットを利用して前記選択されたコングルーエンス・クラスにおけるキャッシュ・ディレクトリ・エントリのグループを選択する、請求項１２に記載の機構。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、概していえば、データ処理システムにおけるアップグレード可能なキャッシュに関するものであり、詳しくいえば、アップグレード可能なキャッシュのためのキャッシュ・ディレクトリ・アドレシング方式に関するものである。更に詳しくいえば、本発明は、データ処理システムにおけるアップグレード可能なキャッシュのためのクリティカルなアドレス・パスにおける遅延を減少させるキャッシュ・ディレクトリ・アドレシング方式に関するものである。
【０００２】
【従来の技術】
現在のデータ処理システムは、一般に、アクセス待ち時間を少なくすることに関連してシステム・メモリからプロセッサへのデータをステージ化するためにアップグレード可能なキャッシュを使用している。例えば、５１２ＫＢにアップグレード可能な２５６ＫＢキャッシュ、又は４ＭＢにアップグレード可能な２ＭＢキャッシュを持ったデータ処理システムが市販されることがある。その場合、そのアップグレード可能なキャッシュは、データ処理システムを購入するユーザに対して種々の価格−性能特性を提供する。複数のキャッシュ・サイズに対して共通のディレクトリ・サポートを受けるために、伝統的なシステムは、一般に、アップグレードする時にはセクタ・サイズを増加させる。従って、そのようなキャッシュ・アップグレードは、一般的には、キャッシュのサイズに従って種々のキャッシュ・ディレクトリ・アドレシング方式を選択することを可能にすることにより、データ処理システムにおいてサポートされる。それらの種々のキャッシュ・ディレクトリ・アドレシング方式は種々のキャッシュ・ライン長に依存するものであり、種々のアドレス・ビットを利用してキャッシュ・ラインを選択し、キャッシュ・ライン内アドレスとして働き、或いは、アドレス・タグとして働き得るものである。データ処理システムにおいてアップグレード可能なキャッシュをサポートするために現在利用されているタイプの伝統的なキャッシュ・ディレクトリ・アドレシング方式が図４に示される。
【０００３】
図４は、１ＭＢから２ＭＢにアップグレード可能な２ウェイ・セット・アソシアティブ・キャッシュを使用する３２ビット・データ処理システムのためのキャッシュ・ディレクトリ・アドレシング方式を示す。１ＭＢキャッシュ・ディレクトリ・アドレシング構成は６４バイトのキャッシュ・ラインを使用する。キャッシュ・ラインは、コヒーレンシ（一貫性）状態が規程するメモリのブロックであり、キャッシュ・ブロックとも呼ばれる。１ＭＢキャッシュをアドレスする時、アドレスのビット２６−３１（６ビット）はキャッシュ・ライン内アドレスを指定し、そのアドレスのビット１３−２５（１３ビット）はキャッシュ・ディレクトリ及びキャッシュ・メモリにおける２つのキャッシュ・ラインのセットに対するインデックスとして利用され、そのアドレスのビット０−１２（１３ビット）はその２つのキャッシュ・ラインのセットにおける特定のキャッシュ・ラインを識別するためにキャッシュ・ライン・アドレス・タグとして利用される。ビット１３−２５のインデックス・フィールドは、２つのキャッシュ・ラインのセットを含むキャッシュ・ディレクトリ及びキャッシュ・メモリにおける行又はコングルーエンス・クラスを指定し、ビット０−１２のアドレス・タグ・フィールドは、指定されたコングルーエンス・クラスのメンバ（すなわち、２つキャッシュ・ラインのセットにおける特定のキャッシュ・ライン）を指定し、ビット２６−３１のキャッシュ・ライン内アドレス・フィールドは、指定されたコングルーエンス（ｃｏｎｇｒｕｅｎｃｅ）・クラス・メンバ（キャッシュ・ライン）から特定のバイトが選択されることを可能にする。
【０００４】
２ＭＢキャッシュ・ディレクトリ・アドレシング構成は１２８バイトのキャッシュ・ラインを使用する。この場合、アドレスのビット２５−３１（７ビット）がキャッシュ・ライン内アドレスを決定し、そのアドレスのビット１２−２４（１３ビット）がキャッシュ・ディレクトリ及びキャッシュ・メモリに対するインデックスとして利用され、そのアドレスのビット０−１１（１２ビット）がキャッシュ・ライン・アドレス・タグとして利用される。６４バイトのキャッシュ・ラインのオリジナル・システムにおいて動作するためには、１２８バイトのキャッシュ・ラインは２つの６４バイト・キャッシュ・ラインとしてセクタ化される。従って、キャッシュ・メモリ・サイズをアップグレードする時、更に大きいキャッシュ・ラインにおけるキャッシュ・ライン内アドレシングのために利用可能なビットの数を増加させるために、インデックス・フィールドはシフト・ダウンされる。
【０００５】
上記のタイプの選択可能キャッシュ・ディレクトリ・アドレシング・システムを実装する方法に伴う１つの問題点は、現在のところ適切であるキャッシュ・メモリのサイズ次第では、種々のアドレス・ビットをインデックス・フィールドとして働かせるように選択する必要があるということから生じる。一般に、４つのキャッシュ・ラインから成る特定のセットを選択するためのインデックスとして利用されるように、１３個のアドレス・ビット［１３−２５］又は［１２−２４］のどちらがキャッシュ・ディレクトリ又はキャッシュ・メモリに送られるかを選択するために、マルチプレクサ３０２が使用される。しかし、マルチプレクサ３０２は、アドレスのルックアップを始めるためにそのアドレスからインデックス・フィールドを得る場合、遅延をキャッシュ・ディレクトリ３０８に導入する。キャッシュ・メモリ３０６のアクセスは、インデックスされたキャッシュ・ラインをルックアップする場合にマルチプレクサ３０２により遅延が同様に導入される時にもクリティカルである。
【０００６】
一般に、図４に示された機構において、３つのクリティカルなパスを識別することができる。すなわち、それらは、アドレス・バス入力 Ａｄｄ［１３−２５］又はＡｄｄ［１２−２４］からキャッシュ・メモリ３０６を介したキャッシュ・データ出力３０４へのパス、アドレス・バス・入力からキャッシュ・ディレクトリ３０８を介したキャッシュ・データ出力３０４へのバス、及びアドレス・バス入力からコンパレータ３１０の出力ＨＩＴ＿Ａ及びＨＩＴ＿Ｂにおける他のロジック（例えば、犠牲選択のためのロジック、又は再試行信号を駆動するためのロジック）へのパスである。これらのクリティカルなパスの各々はマルチプレクサ３０２並びに付随的遅延及びスペース要件を含む。更に、キャッシュ・ディレクトリ３０８及びコンパレータ３１０の間のマルチプレクサ３１２は、アドレス・ライン［１２］がアドレス・タグ［１２］又はそれ自身に匹敵するかどうかを決定するために必要とされる。これらのマルチプレクサ要件は、キャッシュにおけるプロセッサ・サイドのアドレス・フロー及びスヌープ・サイドのアドレス・フローの両方において必要である。適正なインデックス・フィールドを選択するためにアドレス・バス・ラインを多重化することは、アドレス・フローがアドレスをロードするためにキューをアドレスすること及び衝突検出をパイプライン化することも必要とされる。従って、データ処理システムにおいてアップグレード可能なキャッシュ・メモリを使用することは、アップグレードされ得ないキャッシュ・メモリよりもパフォーマンス・ペナルティを受ける。
【０００７】
従って、クリティカルなアドレス・パスにおいて如何なるそれ以上のゲート遅延も含まない可変キャッシュ・サイズのためのキャッシュ・ディレクトリ・アドレシング方式を提供することが望ましいであろう。使用されるキャッシュ・メモリのサイズ次第で、種々なサイズのアドレス・タグが比較されることを、その利用されるキャッシュ・ディレクトリ・アドレシング方式が必要としない場合、それは更に有利なものとなろう。
【０００８】
【発明が解決しようとする課題】
従って、本発明の１つの目的は、データ処理システムにおいて使用するための改良されたアップグレード可能なキャッシュを提供することにある。
【０００９】
本発明のもう１つの目的は、アップグレード可能なキャッシュのための改良されたキャッシュ・ディレクトリ・アドレシング方式を提供することにある。
【００１０】
本発明の更にもう１つの目的は、データ処理システムにおけるアップグレード可能なキャッシュのためのクリティカルなアドレス・パスにおける遅延を減少させるキャッシュ・ディレクトリ・アドレシング方式を提供することにある。
【００１１】
本発明の更にもう１つの目的は、キャッシュをアップグレードする時、より多くの連想性（ａｓｓｏｃｉａｔｉｖｉｔｙ）を通してシステム・パフォーマンスを更に改良することにある。
【００１２】
【課題を解決するための手段】
上記の目的は、次に説明するようにして達成される。クリティカルなアドレス・パスにおける多重化を回避するために、キャッシュ・メモリのサイズに関係なくキャッシュ・ディレクトリ及びキャッシュ・メモリにおける行をインデックスするために、１つのアドレスからの同じフィールドが使用される。使用されるキャッシュ・メモリのサイズ次第で、キャッシュ・ディレクトリ及びキャッシュ・メモリにおける多重化の最終段階に対する「レイト・セレクト（ｌａｔｅ  ｓｅｌｅｃｔ）」として、種々のアドレス・ビット（Ａｄｄ［１２］又はＡｄｄ［２５］のような）が使用される。大きいキャッシュ・メモリ・サイズに対して小さいアドレス・タグ・フィールドが使用されるので、余分なアドレス・タグ・ビットがキャッシュ・ディレクトリにおいて論理的「１」に強制され、キャッシュ・ディレクトリの出力におけるアドレス・タグ・コンパレータによって論理的「１」に比較される。
【００１３】
本発明の上記の及び更なる目的、特徴、及び利点は、以下の詳細に示された説明において明らかとなるであろう。
【００１４】
【発明の実施の形態】
図面、特に、図１を参照すると、本発明の望ましい実施例によるマルチプロセッサ・データ処理システムが示される。データ処理システム１００は、複数のプロセッサ１０２及び１０４を含む対称マルチプロセッサ（ＳＭＰ）システムである。それらのプロセッサは、米国ニューヨーク州アーモンクにあるインターナショナル・ビジネス・マシーンズ・コーポレーション（ＩＢＭ社）から入手可能なプロセッサのうちのＰｏｗｅｒＰＣ（ＩＢＭ社の商標）ファミリの１つを含むことが望ましい。例示的な実施例では２つのプロセッサしか示されていないけれども、本発明に従って、マルチプロセッサ・データ処理システムにおいて更なるプロセッサが利用可能であることは当業者には明らかであろう。
【００１５】
各プロセッサ１０２及び１０４は、それぞれ、レベル１（Ｌ１）データ・キャッシュ１０６及び１０８、並びに、Ｌ１命令キャッシュ１１０及び１１２を含んでいる。その例示的な実施例では命令キャッシュ及びデータ・キャッシュが分離したものとして示されているけれども、単一の一体化されたＬ１キャッシュが実装可能であることは当業者には明らかであろう。データ・アクセス待ち時間を最小にするために、レベル２（Ｌ２）キャッシュ１１４及び１１６並びにレベル３（Ｌ３）キャッシュ１１８及び１１９のような１つ又はそれ以上の更なるレベルのキャッシュ・メモリをデータ処理システム１００において実装することも可能である。Ｌ２及びＬ３のような低いキャッシュ・レベルはＬ１キャッシュに対するデータをステージ化するために使用され、一般には、漸進的に大きい記憶容量を持つが、アクセス時間は長くなる。例えば、データ・キャッシュ１０６及び１０８並びに命令キャッシュ１１０及び１１２は、それぞれ、３２ＫＢの記憶容量及び約１−２プロセッサ・サイクルのアクセス待ち時間を持つことがある。Ｌ２キャッシュ１１４及び１１６は５１２ＫＢの記憶容量を有するが、５プロセッサ・サイクルのアクセス待ち時間を持つことになろうし、一方、Ｌ３キャッシュ１１８及び１１９は４ＭＢの記憶容量を有するが、１５プロセッサ・サイクルよりも大きいアクセス待ち時間を持つことになろう。従って、Ｌ２キャッシュ１１４及び１１６並びにＬ３キャッシュ１１８及び１１９は、プロセッサ１０２及び１０４とシステム・メモリ１２０との間の中間記憶装置として働く。システム・メモリ１２０は、一般には、ずっと大きな記憶容量を有するが、５０プロセッサ・サイクルより大きいアクセス待ち時間を持つことになろう。
【００１６】
キャッシュ・ハイアラーキにおけるレベルの数及びデータ処理システム１００において使用されるキャッシュ・ハイアラーキ構成の両方とも変更可能である。図示の例におけるＬ２キャッシュ１１４及び１１６は、それぞれのプロセッサ１０２及び１０４とシステム・メモリ１２０との間に（システム・バス１２２を介して）接続された専用のキャッシュである。Ｌ３キャッシュ１１８及び１１９は、Ｌ２キャッシュ１１４及び１１６と論理的に垂直なルックアサイド・キャッシュとして示される。その結果、データ又は命令はＬ２キャッシュ１１４及び１１６の１つ並びにＬ３キャッシュ１１８及び１１９の１つでルックアップされ得るが、データ又は命令は、それぞれのＬ２キャッシュ１１４又は１１６がミスヒットし、一方Ｌ３キャッシュ１１８又は１１９がヒットする場合、Ｌ３キャッシュ１１８又は１１９から検索されるだけであろう。示されたレベル及び構成の種々の変更が実施され得ることは当業者には明らかであろう。
【００１７】
Ｌ２キャッシュ１１４及び１１６並びにＬ３キャッシュ１１８及び１１９はシステム・バス１２２を介してシステム・メモリ１２０に接続される。ディスプレイ（図示されてない）に対する接続を提供するグラフィックス・アダプタのようなメモリ・マップド・デバイス１２４及び入出力（Ｉ／Ｏ）バス・ブリッジ１２６もシステム・バス１２２に接続可能である。Ｉ／Ｏバス・ブリッジ１２６はシステム・バス１２２をＩ／Ｏバス１２８接続する。Ｉ／Ｏバス１２８はＩ／Ｏデバイス１３０及び不揮発性メモリ１３２に対する接続を提供し得るものである。従って、システム・バス１２２、Ｉ／Ｏブリッジ１２６、及びＩ／Ｏバス１２８は、付属のデバイスを結合する相互接続線を形成する。その相互接続線に対する別の実施方法が従来技術において知られている。
【００１８】
Ｉ／Ｏデバイス１３０は、キーボード、マウス又はトラック・ボールのようなグラフィカル・ポインティング・デバイス、ディスプレイ、及びプリンタを含む一般的な周辺装置を含む。それらの周辺装置は通常のアダプタを介してＩ／Ｏバス１２８にインターフェースされる。不揮発性メモリ１３２はハードディスク・ドライブを含み得るし、システム１００のオペレーションを制御するオペレーティング・システム及び他のソフトウエアを記憶する。それらのソフトウエアは、システム１００がパワー・オンされることに応答して揮発性のシステム・メモリ１２０にロードされる。データ処理システム１００が、シリアル及びパラレル・ポート、ネットワーク又は付属のデバイスへの接続線、システム・メモリ１２０へのアクセスを調整するメモリ・コントローラ等のような図１に示されてない多くの更なるコンポーネントを含み得ることは当業者には明らかであろう。そのような修正及び変更は本発明の精神及び技術的範囲にある。
【００１９】
システム・バス１２２における代表的なコミュニケーション・トランザクションは、そのトランザクションのソースを表すソース・タグ及びアドレス及び（又は）データを含む。システム・バス１２２に接続された各デバイスはシステム・バス１２２におけるすべてのコミュニケーション・トランザクションをスヌープし、必要な時には他の受信者に対して意図されたコミュニケーション・トランザクションにおいて介入し、そのデバイスにおいて複写されているシステム・メモリのデータに対する変更を、実行可能で且つ適正である時に複製することが望ましい。
【００２０】
図２を参照すると、本発明の望ましい実施例に従って、共通キャッシュ・ディレクトリ・アドレシング方式のためのキャッシュ構成の図が示される。図示のキャッシュ・ディレクトリ及びキャッシュ・メモリ構成は、Ｌ２キャッシュ１１４及び１１６並びにＬ３キャッシュ１１８及び１１９を含むアップグレード可能な図１に示された任意のキャッシュに対しても利用可能である。説明されるキャッシュ・ディレクトリ・アドレシング方式の例示的な実施例は、１ＭＢから２ＭＢにアップグレード可能な２ウェイ・セット・アソシアティブ・キャッシュに関するものである。しかし、本発明の共通キャッシュ・ディレクトリ・アドレシング方式は、データ処理システム記憶ハイアラーキのいずれのレベルにおいても任意の量の連想性を利用する任意のサイズのキャッシュに対して、適正な修正を行って実施され得るものである。
【００２１】
図２に示された１ＭＢの２ウェイ・セット・アソシアティブ・キャッシュのためのキャッシュ・ディレクトリ・アドレシング方式は６４バイト・キャッシュ・ラインを使用する。この場合、アドレスのビット２６−３２（６ビット）はキャッシュ・ライン内アドレスを決定し、そのアドレスのビット１３−２４（１２ビット）はキャッシュ・ディレクトリ及びキャッシュ・メモリにおける行に対するインデックスとして働き、そのアドレスのビット０−１２（１３ビット）はアドレス・タグとして利用され、ビット２５は、更に詳細に後述するように、キャッシュ・メモリ及びキャッシュ・ディレクトリにおける同じ行からキャッシュ・ラインのセット及びそれらの対応するアドレス・タグを選択するために使用される。図２に示された２ＭＢの２ウェイ・セット・アソシアティブ・キャッシュのためのキャッシュ・ディレクトリ・アドレシング方式は１２８バイトのキャッシュ・ラインを使用する。この場合、アドレスのビット２５−３１（７ビット）はキャッシュ・ライン内アドレスを決定し、そのアドレスのビット１３−２４（１２ビット）はキャッシュ・ディレクトリ及びキャッシュ・メモリにおける行に対するインデックスとして働き、そのアドレスのビット０−１１（１２ビット）はアドレス・タグとして利用され、ビット１２は、キャッシュ・メモリ及びキャッシュ・ディレクトリからキャッシュ・ラインのセット及びそれらの対応するアドレス・タグを選択する。
【００２２】
キャッシュ・ディレクトリ２０２におけるアドレス・タグＴＡＧ＿Ａ及びＴＡＧ＿Ｂは、キャッシュ・メモリ２０４における対応するデータＤＡＴＡ＿Ａ及びＤＡＴＡ＿Ｂに対するアドレスのアドレス・タグ・フィールドを含む。そのアドレスのインデックス・フィールドに対応するアドレス・バス入力Ａｄｄ［１３−２４］は、キャッシュ・ディレクトリ２０２及びキャッシュ・メモリ２０４に対するインデックスとして利用される。このインデックス・フィールドはキャッシュ・ディレクトリ２０２及びキャッシュ・メモリ２０４からアドレス・タグ及びキャッシュ・ラインの２つのグループを選択するために使用される。その例示的実施例では、各グループは２つのアドレス・タグ及び２つのキャッシュ・ラインを含む。
【００２３】
使用されるキャッシュのサイズ次第で、アドレス・バス入力Ａｄｄ［２５］又はＡｄｄ［１２］が、キャッシュ・ディレクトリ２０２及びキャッシュ・メモリ２０４からアドレス・タグ／キャッシュ・ラインのグループを選択するためにも使用される。アドレス・バス入力Ａｄｄ［２５］又はＡｄｄ［１２］は、アドレスのインデックス・フィールドＡｄｄ［１３−２４］に基づいて選択されたアドレス・タグ／キャッシュ・ラインの２つのグループのうちの１つを選択するために、キャッシュ・ディレクトリ２０２及びキャッシュ・メモリ２０４によって使用される。しかし、この機構は、キャッシュ・ディレクトリ２０２及びキャッシュ・メモリ２０４における多重化の最終段階において、既知の方法による「遅れ選択」として実施可能である。従って、Ａｄｄ［２５］及びＡｄｄ［１２］から１つのアドレス・バス入力を選択するために必要な多重化機能２０６が、インデックス・フィールドに基づいてキャッシュ・ディレクトリ及びメモリ・アクセスと平行して進行し得る。Ａｄｄ［２５］又はＡｄｄ［１２］の遅れアクセス機構は、キャッシュ・ディレクトリ２０２からコンパレータ２０８にＴＡＧ＿Ａ及びＴＡＧ＿Ｂを送るために必要な待ち時間、又はアドレスを与えられた後にキャッシュ・メモリ２０４からＤＡＴＡ＿Ａ及びＤＡＴＡ＿Ｂを送るために必要な待ち時間を増加させることはないであろう。
【００２４】
キャッシュ・ディレクトリ２０２から選択されたアドレス・タグＴＡＧ＿Ａ及びＴＡＧ＿Ｂは、与えられたアドレスのアドレス・タグ・フィールドと比較するためにコンパレータ２０８に送られる。選択されたキャッシュ・ディレクトリ・エントリにおけるＴＡＧ＿Ａ及びＴＡＧ＿Ｂは与えられたアドレスのアドレス・タグ・フィールドに同時に比較され、そしてそれらが一致した結果として、対応するＨＩＴ＿Ａ又はＨＩＴ＿Ｂ信号の活性化が生じる。小さい１ＭＢキャッシュ・メモリが使用される時、アドレス・タグ・フィールドはビット［０−１２］を含む。しかし、大きい２ＭＢキャッシュ・メモリが使用されるべき時、アドレス・タグ・フィールドはビット［０−１１］だけを含む。従って、与えられたアドレスのビット［１２］がアドレス・タグＴＡＧ＿Ａ及びＴＡＧ＿Ｂのビット［１２］に比較されるか又はロジック「１」に比較されるかを制御するために、論理ゲート２１２が設けられる。
【００２５】
２ＭＢキャッシュ・メモリが使用される時、キャッシュ・ディレクトリ２０２に記憶されたアドレス・タグのビット［１２］はいつも論理的「１」に書き込まれる。１ＭＢ＿Ｍｏｄｅ制御信号が活性化される時（１ＭＢキャッシュ・メモリが使用される時）、論理ゲート２１２は、与えられたアドレスのビット［１２］をコンパレータ２０８に送り、ＴＡＧ＿Ａ及びＴＡＧ＿Ｂのビット［１２］に比較させる。しかし、２ＭＢキャッシュ・メモリが使用される時、論理ゲート２１２は、論理的「１」をその与えられたアドレスのビット［１２］としてコンパレータ２０８に送り、論理的「１」にいつも書き込まれているＴＡＧ＿Ａ及びＴＡＧ＿Ｂのビット［１２］に比較させる。これは、キャッシュ・ディレクトリ２０２及びコンパレータ２０８の間のマルチプレクサを必要とすることなく、可変サイズのアドレス・タグ・フィールドが使用されることを可能にする。論理ゲート２１２はキャッシュ・ディレクトリ２０２のアクセスと平行して動作し、従って、クリティカルなアドレス・パスに如何なる待ち時間も加えない。
【００２６】
インデックス・フィールドＡｄｄ［１３−２４］及びレイト・セレクトＡＤＤ［２５］又はＡＤＤ［１２］は、それらがキャッシュ・ディレクトリ２０２によって使用される態様と同じ態様でキャッシュ・メモリ２０４によっても使用され、アドレス・タグＴＡＧ＿Ａ及びＴＡＧ＿Ｂにそれぞれ対応するＤＡＴＡ＿Ａ及びＤＡＴＡ＿Ｂを選択する。コンパレータ出力信号ＨＩＴ＿Ａ及びＨＩＴ＿Ｂはマルチプレクサ２１０によって利用され、２つのキャッシュ・ラインＤＡＴＡ＿Ａ及びＤＡＴＡ＿Ｂの１つをキャッシュ出力として既知の方法に従って選択する。信号ＨＩＴ＿Ａ及びＨＩＴ＿Ｂは、犠牲選択ロジックのような他とタイミング・クリティカルなロジック及び「再試行」、「共用」等のようなスヌープ応答を駆動するためのロジックによっても利用可能である。
【００２７】
例示的な実施例は２ウェイ・セット・アソシアティブ・キャッシュ方式に関するものであるけれども、４ウェイ・セット・アソシアティブ方式のような他の変更も可能である。そのような実施例では、各々がアドレス・タグ又はキャッシュ・ラインを含んでいる４つのグループのアドレス・タグ／キャッシュ・ライン（コングルーエンス・クラス）を選択するために、インデックス・フィールドが使用可能である。そのアドレスの２ビットは、４つのアドレス・タグ及びキャッシュ・ラインの１グループをキャッシュ・ディレクトリの出力におけるコンパレータに及びキャッシュ・メモリの出力におけるマルチプレクサに送るためにレイト・セレクトとして使用可能である。
【００２８】
図３を参照すると、本発明の望ましい実施例に従って、共通キャッシュ・ディレクトリ・アドレシング方式に対する別のキャッシュ構成の図が示される。このキャッシュ・ディレクトリ及びキャッシュ・メモリ構成は、Ｌ２キャッシュ１１４及び１１６並びにＬ３キャッシュ１１８及び１１９を含むアップグレード可能な図１に示されたいずれのキャッシュに対しても利用可能である。この別のキャッシュ・ディレクトリ・アドレシング方式の例示的な実施例は、４ウェイ・セット・アソシアティブの２ＭＢキャッシュにアップグレード可能な２ウェイ・セット・アソシアティブの１ＭＢキャッシュに関するものである。しかし、この本発明の別の共通キャッシュ・ディレクトリ・アドレシング方式は、データ処理システム記憶ハイアラーキのいずれのレベルにおけるいずれのサイズのキャッシュに対しても適切な修正によって実装可能である。
【００２９】
この別の実施例では、キャッシュ・ディレクトリ２２２における行（コングルーエンス・クラス）は、１ＭＢオペレーション時に２セットの２アドレス・タグとして論理的に扱われる４つのアドレス・タグＴＡＧ＿Ａ、ＴＡＧ＿Ｂ、ＴＡＧ＿Ｃ、及びＴＡＧ＿Ｄを含んでいる。キャッシュ・メモリ２２４における行は、同様に、１ＭＢオペレーション時に２セットの２キャッシュ・ラインとして論理的に扱われる４つのキャッシュ・ラインＤＡＴＡ＿Ａ、ＤＡＴＡ＿Ｂ、ＤＡＴＡ＿Ｃ、及びＤＡＴＡ＿Ｄを含んでいる。与えられたアドレスからのインデックス・フィールドＡｄｄ［１３−２４］は、キャッシュ・ディレクトリ２２２及びキャッシュ・メモリ２２４における行を選択するために利用される。キャッシュ・ディレクトリ２２２の選択された行におけるアドレス・タグは、与えられたアドレスのアドレス・タグ・フィールドＡｄｄ［０−１２］と比較するためにコンパレータ２２６に送られる。キャッシュ・メモリ２２４の選択された行におけるキャッシュ・ラインも、同様に、マルチプレクサ２２８に送られる。
【００３０】
キャッシュ・ディレクトリ２２の選択された行におけるアドレス・タグＴＡＧ＿Ａ、ＴＡＧ＿Ｂ、ＴＡＧ＿Ｃ、及びＴＡＧ＿Ｄの１３個のビットは、コンパレータ２２６によってその与えられたアドレスにおけるアドレス・タグ・フィールドＡｄｄ［０−１２］の１３個のビットに比較される。しかし、コンパレータ２２６は第１４ビットと論理的「１」との比較も行う。
【００３１】
上述のように、１ＭＢオペレーション時に、選択されたキャッシュ・ディレクトリの行における４つのアドレス・タグは論理的に２セットの２アドレス・タグとして扱われ、２ウェイ・セット連想性を効果的に実装する。コンパレータ２２６による第１４ビットの比較は２セットのうちの１つが選択されることを可能にする。１ＭＢキャッシュ・メモリが使用される（信号１ＭＢ＿Ｍｏｄｅが活性化される）時、与えられたアドレスのインデックス・フィールドにおけるレイト・セレクトＡｄｄ［２５］が、アドレス・タグのセットの１つを選択するために利用される。論理ゲート２３０ａ及び２３０ｂはＡｄｄ［２５］を反転し、一方、論理ゲート２３０ｃ及び２３０ｄはＡｄｄ［２５］の状態を単に通過させるだけである。（論理ゲート２３０ａ−２３０ｄに対する他の入力、すなわち、反転した１ＭＢ＿Ｍｏｄｅ信号は、１ＭＢキャッシュが使用される時、いつも活性化されないであろう）。従って、論理ゲート２３０ａ−２３０ｄは，Ａｄｄ［２５］及びそれの補数がコンパレータ２２６によって論理的「１」に同時に比較されることを可能にする。
【００３２】
Ａｄｄ［２５］の状態次第で、アドレス・タグＴＡＧ＿Ａ及びＴＡＧ＿Ｂ又はＴＡＧ＿Ｃ及びＴＡＧ＿Ｄの一対だけが、コンパレータ２２６による一致が可能となるであろう。従って、Ａｄｄ［２５］は、アドレス・タグの１つのグループを選択し且つコンパレータ２２６において他のグループを禁止するという効果を持つ。基本的には、この機構はディレクトリ及びキャッシュを２ウェイ・セット・アソシアティブとして扱う。コンパレータ２２６の出力、すなわち、信号ＨＩＴ＿Ａ、ＨＩＴ＿Ｂ、ＨＩＴ＿Ｃ、及びＨＩＴ＿Ｄは、選択された行からのキャッシュ・ラインをキャッシュ・データ出力として選択するためにマルチプレクサ２２８によって使用される。コンパレータ２２６の出力信号は、前述のように、他のロジックによっても使用可能である。
【００３３】
示された別の実施例において２ＭＢキャッシュが使用される時、１ＭＢ＿Ｍｏｄｅ信号は活性化されず、論理ゲート２３０ａ−２３０ｄによって、第１４ビット（これも、論理的「１」）として比較のためにコンパレータ２２６に送られる。従って、選択されたキャッシュ・ディレクトリ行における４つのアドレス・タグＴＡＧ＿Ａ、ＴＡＧ＿Ｂ、ＴＡＧ＿Ｃ、及びＴＡＧ＿Ｄはすべて、その結果として、与えられたアドレスのアドレス・タグ・フィールドとの一致を生じさせることが可能である。キャッシュ・ラインのサイズを増加させることに加えて、アップグレードは連想性を４ウェイ・セット連想性にまで増加させる。コンパレータ２２６の出力信号は、キャッシュ・メモリ２２４の選択された行におけるキャッシュ・ラインを選択するためにマルチプレクサ２２８によって使用される。
【００３４】
図３に示された例示的な実施例は２つのアドレス・タグの２つのグループ（２ウェイ・セット連想性）及び４つのアドレス・タグの１つのグループ（４ウェイ・セット連想性）に関するものであるけれども、本発明は他の構成においても使用可能である。例えば、別の実施例は、４つのアドレス・タグの４セット（４ウェイ・セット連想性）及び８個のアドレス・タグの２セット（８ウェイ・セット連想性）として実装可能である。
【００３５】
本発明は、クリティカルなアドレス・ツー・ディレクトリのアドレス・パス及びアドレス・ツー・キャッシュのアドレス・パスからのアドレス・バス入力の多重化を排除する。更に、ディレクトリのクリティカルな出力（アドレス・タグ）は多重化を必要とせず、コンパレータに直接に送られる。これは、レイト・セレクト経由の「ヒット」ロジック及びキャッシュ・データ・パスをスピード・アップする。この別の実施例をアップグレードすることによって得られるアソシアティビティの増加は、ローディング及びスヌープ衝突比較のための内部キューへのアドレス・フローから多重化を除去するものなので、全体的なパフォーマンスを改良する。
【００３６】
本発明では、キャッシュ・メモリのサイズに関係なく、キャッシュ・ディレクトリ及びメモリ行をインデックスするために、１つのアドレスからの同じフィールドが使用される。キャッシュが、例えば、１ＭＢであるか又は２ＭＢであるかに関係なく、コングルーエンス・クラスを選択するために、同じビット・セットが利用される。これは、アドレス・インデックス・フィールドをディレクトリ及びキャッシュ・アクセス機能に到達させるクリティカルなアドレス・パスにおける多重化及び関連の遅延を必要ないものにする。キャッシュ・ディレクトリ及びキャッシュ・メモリにおけるコングルーエンス・クラス（又は、行）は、論理的には複数のグループとして扱われる。各グループは複数のアドレス・タグ又はキャッシュ・ラインを含む。キャッシュ・メモリ・サイズに従って選択されたアドレス・ビットに基づいて、特定のコングルーエンス・クラスから１つのグループが選択される。しかし、この選択はディレクトリ及びキャッシュ・アクセスと平行して行われ、待ち時間を増加させない。アドレス・タグの選択されたグループのメンバはアドレスからのアドレス・タグ・フィールドと並列に比較され、キャッシュ・ラインの対応するグループにおける適正なキャッシュ・ラインの選択を可能にする。アドレス・タグをアドレス・タグ・フィールドに比較する場合、キャッシュ・メモリのサイズに関係なく、同じ数のビットが利用される。これは、比較プロセスのために必要なロジックの量を減少させる。
【００３７】
アドレスされるキャッシュ・メモリ・サイズに対して、同じ連想性（すなわち、１グループ当たり同じ数のアドレス・タグ又はキャッシュ・ラインの場合、１行当たり同じ数のグループ）が使用可能であるか、又は、利用されるキャッシュ・メモリのサイズ次第で異なる連想性が使用可能である。従って、例えば、１ＭＢ／２ＭＢキャッシュ・メモリに対して２ウェイ／４ウェイ・セット・アソシアティブ構成が利用され、一方、２ＭＢ／４ＭＢキャッシュ・メモリに対して４ウェイ／８ウェイ・セット・アソシアティブ構成が利用される。
【００３８】
本発明のキャッシュ・ディレクトリ・アドレシング方式は可変サイズのキャッシュに適用可能であり、従って、データ処理システムにおけるアップグレード可能なキャッシュをサポートする。キャッシュ・メモリのサイズに関係なくキャッシュ・ディレクトリ及びメモリをインデックスするためにアドレスからの同じフィールドが利用されるので、アップグレード可能なキャッシュをサポートするためには、クリティカルなアドレス・パスにおける多重化ロジックは必要ない。本発明のディレクトリ・アドレシング方式は、更なるオーバヘッドを被ることなく、対応するキャッシュ・ラインに対するアドレス・タグに関して既存のアドレシング方式よりも多くの連想性を得る。更に、本発明のキャッシュ・アドレシング方式は１：１アドレス・フローを作り、キャッシュ・ディレクトリの効率的な利用を提供する。本発明は、奇数／偶数ディレクトリ・パリティ機構と共に、又は冗長なプロセッサ・サイド及びスヌープ・サイドのキャッシュ・ディレクトリ構成と共に有利に使用可能である。
【００３９】
本発明を望ましい実施例に関して詳しく示し、説明したけれども、本発明の精神及び技術的範囲を逸脱することなく形式及び細部における種々の変更を行い得ることは当業者には明らかであろう。
【００４０】
まとめとして、本発明の構成に関して以下の事項を開示する。
【００４１】
（１）可変サイズ・キャッシュのためのキャッシュ・ディレクトリをアドレスする方法にして、
アドレスからのインデックス・フィールドを利用してキャッシュ・ディレクトリにおけるコングルーエンス・クラスを選択するステップと、
前記アドレスからの少なくとも１つのビットを利用して、前記選択されたコングルーエンス・クラスにおけるｍ個のキャッシュ・ディレクトリ・エントリのｎ個のグループのうちの１つを選択するステップと、
前記キャッシュ・ディレクトリ・エントリの選択されたグループにおける各キャッシュ・ディレクトリ・エントリに前記アドレスからのアドレス・タグ・フィールドを比較するステップと、
前記キャッシュ・ディレクトリ・エントリの選択されたグループにおけるキャッシュ・ディレクトリ・エントリと前記アドレス・タグ・フィールドとの間の一致を識別することに応答して、該一致したキャッシュ・ディレクトリ・エントリと関連したキャッシュ・メモリの部分を選択するステップと、
を含む方法。
（２）前記アドレスからのインデックス・フィールドを利用してキャッシュ・ディレクトリにおけるコングルーエンス・クラスを選択するステップは、
前記アドレスからの同じインデックス・フィールドを利用して、前記キャッシュ・サイズに関係なくコングルーエンス・クラスを選択するステップ
を更に含む上記（１）に記載の方法。
（３）前記アドレスからのインデックス・フィールドを利用してキャッシュ・ディレクトリにおけるコングルーエンス・クラスを選択するステップは、
前記アドレスからのインデックス・フィールドを多重化することなく前記インデックス・フィールドを直接に利用するステップ
を更に含む上記（１）に記載の方法。
（４）前記選択されたコングルーエンス・クラスにおけるｍ個のキャッシュ・ディレクトリ・エントリのｎ個のグループのうちの１つを選択するステップは、
前記選択されたコングルーエンスからキャッシュ・ディレクトリ・エントリの２つのグループのうちの１つを選択するステップ
を更に含む上記（１）に記載の方法。
（５）前記選択されたコングルーエンス・クラスにおけるｍ個のキャッシュ・ディレクトリ・エントリのｎ個のグループのうちの１つを選択するステップは、
前記選択されたコングルーエンス・クラスから２つのキャッシュ・ディレクトリ・エントリのグループを選択するステップ
を更に含む上記（１）に記載の方法。
（６）前記選択されたコングルーエンス・クラスにおけるｍ個のキャッシュ・ディレクトリ・エントリのｎ個のグループのうちの１つを選択するステップは、
前記選択されたコングルーエンスからキャッシュ・ディレクトリ・エントリの４つのグループのうちの１つを選択するステップ
を更に含む上記（１）に記載の方法。
（７）前記選択されたコングルーエンス・クラスにおけるｍ個のキャッシュ・ディレクトリ・エントリのｎ個のグループのうちの１つを選択するステップは、
前記選択されたコングルーエンス・クラスから４つのキャッシュ・ディレクトリ・エントリのグループを選択するステップ
を更に含む上記（１）に記載の方法。
（８）前記選択されたコングルーエンス・クラスにおけるｍ個のキャッシュ・ディレクトリ・エントリのｎ個のグループのうちの１つを選択するステップは、
レイト・セレクトのための前記アドレスからのビットを利用するステップ
を更に含む上記（１）に記載の方法。
（９）前記選択されたコングルーエンス・クラスにおけるｍ個のキャッシュ・ディレクトリ・エントリのｎ個のグループのうちの１つを選択するステップは、
関連するキャッシュ・メモリが第１サイズを有する時、前記アドレスからの第１ビットを利用して、前記選択されたコングルーエンス・クラスにおけるキャッシュ・ディレクトリ・エントリのグループを選択するステップと、
前記関連するキャッシュ・メモリが第２サイズを有する時、前記アドレスからの第２ビットを利用して、前記選択されたコングルーエンス・クラスにおけるキャッシュ・ディレクトリ・エントリのグループを選択するステップと、
を更に含む上記（１）に記載の方法。
（１０）前記キャッシュ・ディレクトリの各コングルーエンス・クラスを、各グループがｍ個のキャッシュ・ディレクトリ・エントリを含むキャッシュ・ディレクトリ・エントリのｎ個のグループに論理的に分割するステップと、
キャッシュ・メモリの各コングルーエンス・クラスをキャッシュ・ラインのｎ個のグループに論理的に分割するステップと、
を更に含み、キャッシュ・ラインの各グループはｍ個のキャッシュ・ラインを含み、前記キャッシュ・ディレクトリ内の同じコングルーエンス・クラスにおけるキャッシュ・ディレクトリ・エントリの対応するグループと関連づけられる、上記（１）に記載の方法。
（１１）関連するキャッシュ・メモリが第１サイズを有する時、前記アドレスからの第１フィールドをキャッシュ・ライン内アドレスとして利用するステップと、
前記関連するキャッシュ・メモリが第２サイズを有する時、前記アドレスからの第２フィールドをキャッシュ・ライン内アドレスとして利用するステップと、
を更に含む上記（１）に記載の方法。
（１２）可変サイズ・キャッシュのためのキャッシュ・ディレクトリ・アドレシング機構にして、
各々がｍ個のキャッシュ・ディレクトリ・エントリのｎ個のグループを含む複数のコングルーエンス・クラスを持つキャッシュ・ディレクトリと、
各々がｍ個のキャッシュ・ラインのｎ個のグループを含む複数のコングルーエンス・クラスを持つキャッシュ・メモリであって、１つのコングルーエンス・クラスにおけるキャッシュ・ラインの各グループが前記キャッシュ・ディレクトリの同じコングルーエンス・クラスにおけるキャッシュ・ディレクトリ・エントリの対応するグループと関連付けられる、キャッシュ・メモリと、
アドレスからのインデックス・フィールドを利用して前記キャッシュ・ディレクトリにおけるコングルーエンス・クラスを選択するディレクトリ・ルックアップと、
前記アドレスからの少なくとも１つのビットを利用して前記選択されたコングルーエンス・クラスにおけるディレクトリ・エントリの１つのグループを選択するレイト・セレクトと、
前記アドレスからのアドレス・タグ・フィールドをキャッシュ・ディレクトリ・エントリの前記選択されたグループにおける各キャッシュ・ディレクトリ・エントリに比較する少なくとも１つのコンパレータと、
前記キャッシュ・ディレクトリ・エントリの選択されたグループにおけるキャッシュ・ディレクトリ・エントリと前記アドレス・タグ・フィールドとの間の一致が識別されたことに応答して、一致したキャッシュ・ディレクトリ・エントリに対応する前記キャッシュ・メモリにおけるキャッシュ・ラインを選択するマルチプレクサと、
を含む機構。
（１３）前記キャッシュ・ディレクトリは、更に、各コングルーエンス・クラスにおいてキャッシュ・ディレクトリ・エントリの２つのグループを含む、上記（１２）に記載の機構。
（１４）前記キャッシュ・ディレクトリは、更に、各コングルーエンス・クラスにおいて２つのキャッシュ・ディレクトリ・エントリのｎ個のグループを含む、上記（１２）に記載の機構。
（１５）前記キャッシュ・ディレクトリは、更に、各コングルーエンス・クラスにおいてキャッシュ・ディレクトリ・エントリの４つのグループを含む、上記（１２）に記載の機構。
（１６）前記キャッシュ・ディレクトリは、更に、各コングルーエンス・クラスにおいて４つのキャッシュ・ディレクトリ・エントリのｎ個のグループを含む、上記（１２）に記載の機構。
（１７）前記ディレクトリ・ルックアップは、更に、前記アドレスからの同じインデックス・フィールドを利用して、前記キャッシュ・メモリのサイズに関係なく前記キャッシュ・ディレクトリにおけるコングルーエンス・クラスを選択するディレクトリ・ルックアップを含む、上記（１２）に記載の機構。
（１８）前記レイト・セレクトは前記キャッシュ・ディレクトリの出力において前記少なくとも１つのコンパレータに接続される、上記（１２）に記載の機構。
（１９）前記レイト・セレクトは、前記キャッシュ・メモリが第１サイズを有する時、第１ビットを利用して前記選択されたコングルーエンス・クラスにおけるキャッシュ・ディレクトリ・エントリのグループを選択し、前記キャッシュ・メモリが第２サイズを有する時、第２ビットを利用して前記選択されたコングルーエンス・クラスにおけるキャッシュ・ディレクトリ・エントリのグループを選択する、上記（１２）に記載の機構。
（２０）前記レイト・セレクトは、前記アドレスのアドレス・タグ・フィールドからのビットを利用して前記選択されたコングルーエンス・クラスにおけるキャッシュ・ディレクトリ・エントリのグループを選択する、上記（１２）に記載の機構。
【図面の簡単な説明】
【図１】本発明の望ましい実施例に従ってマルチプロセッサ・データ処理システムを示す。
【図２】本発明の望ましい実施例に従って共通キャッシュ・ディレクトリ・アドレシング方式ためのキャッシュ構成図を示す。
【図３】本発明の望ましい実施例に従って共通キャッシュ・ディレクトリ・アドレシング方式の別の実施例の図を示す。
【図４】従来技術のキャッシュ・ディレクトリ・アドレシング方式を示す。
【図１】
0003669555.tif 000002
【図２】
0003669555.tif 000003
【図３】
0003669555.tif 000004
【図４】
0003669555.tif 000005