JP3669555B2 - 可変キャッシュ・サイズのための改良されたキャッシュ・ディレクトリ・アドレシング方法及び装置 - Google Patents

可変キャッシュ・サイズのための改良されたキャッシュ・ディレクトリ・アドレシング方法及び装置 Download PDF

Info

Publication number
JP3669555B2
JP3669555B2 JP06025599A JP6025599A JP3669555B2 JP 3669555 B2 JP3669555 B2 JP 3669555B2 JP 06025599 A JP06025599 A JP 06025599A JP 6025599 A JP6025599 A JP 6025599A JP 3669555 B2 JP3669555 B2 JP 3669555B2
Authority
JP
Japan
Prior art keywords
cache
address
cache directory
congruence class
selecting
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP06025599A
Other languages
English (en)
Other versions
JPH11338771A (ja
Inventor
ラビ・クマール・アリミリ
ジョン・スティーブン・ドットソン
ジェリー・ダン・ルイス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH11338771A publication Critical patent/JPH11338771A/ja
Application granted granted Critical
Publication of JP3669555B2 publication Critical patent/JP3669555B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、概していえば、データ処理システムにおけるアップグレード可能なキャッシュに関するものであり、詳しくいえば、アップグレード可能なキャッシュのためのキャッシュ・ディレクトリ・アドレシング方式に関するものである。更に詳しくいえば、本発明は、データ処理システムにおけるアップグレード可能なキャッシュのためのクリティカルなアドレス・パスにおける遅延を減少させるキャッシュ・ディレクトリ・アドレシング方式に関するものである。
【0002】
【従来の技術】
現在のデータ処理システムは、一般に、アクセス待ち時間を少なくすることに関連してシステム・メモリからプロセッサへのデータをステージ化するためにアップグレード可能なキャッシュを使用している。例えば、512KBにアップグレード可能な256KBキャッシュ、又は4MBにアップグレード可能な2MBキャッシュを持ったデータ処理システムが市販されることがある。その場合、そのアップグレード可能なキャッシュは、データ処理システムを購入するユーザに対して種々の価格−性能特性を提供する。複数のキャッシュ・サイズに対して共通のディレクトリ・サポートを受けるために、伝統的なシステムは、一般に、アップグレードする時にはセクタ・サイズを増加させる。従って、そのようなキャッシュ・アップグレードは、一般的には、キャッシュのサイズに従って種々のキャッシュ・ディレクトリ・アドレシング方式を選択することを可能にすることにより、データ処理システムにおいてサポートされる。それらの種々のキャッシュ・ディレクトリ・アドレシング方式は種々のキャッシュ・ライン長に依存するものであり、種々のアドレス・ビットを利用してキャッシュ・ラインを選択し、キャッシュ・ライン内アドレスとして働き、或いは、アドレス・タグとして働き得るものである。データ処理システムにおいてアップグレード可能なキャッシュをサポートするために現在利用されているタイプの伝統的なキャッシュ・ディレクトリ・アドレシング方式が図4に示される。
【0003】
図4は、1MBから2MBにアップグレード可能な2ウェイ・セット・アソシアティブ・キャッシュを使用する32ビット・データ処理システムのためのキャッシュ・ディレクトリ・アドレシング方式を示す。1MBキャッシュ・ディレクトリ・アドレシング構成は64バイトのキャッシュ・ラインを使用する。キャッシュ・ラインは、コヒーレンシ(一貫性)状態が規程するメモリのブロックであり、キャッシュ・ブロックとも呼ばれる。1MBキャッシュをアドレスする時、アドレスのビット26−31(6ビット)はキャッシュ・ライン内アドレスを指定し、そのアドレスのビット13−25(13ビット)はキャッシュ・ディレクトリ及びキャッシュ・メモリにおける2つのキャッシュ・ラインのセットに対するインデックスとして利用され、そのアドレスのビット0−12(13ビット)はその2つのキャッシュ・ラインのセットにおける特定のキャッシュ・ラインを識別するためにキャッシュ・ライン・アドレス・タグとして利用される。ビット13−25のインデックス・フィールドは、2つのキャッシュ・ラインのセットを含むキャッシュ・ディレクトリ及びキャッシュ・メモリにおける行又はコングルーエンス・クラスを指定し、ビット0−12のアドレス・タグ・フィールドは、指定されたコングルーエンス・クラスのメンバ(すなわち、2つキャッシュ・ラインのセットにおける特定のキャッシュ・ライン)を指定し、ビット26−31のキャッシュ・ライン内アドレス・フィールドは、指定されたコングルーエンス(congruence)・クラス・メンバ(キャッシュ・ライン)から特定のバイトが選択されることを可能にする。
【0004】
2MBキャッシュ・ディレクトリ・アドレシング構成は128バイトのキャッシュ・ラインを使用する。この場合、アドレスのビット25−31(7ビット)がキャッシュ・ライン内アドレスを決定し、そのアドレスのビット12−24(13ビット)がキャッシュ・ディレクトリ及びキャッシュ・メモリに対するインデックスとして利用され、そのアドレスのビット0−11(12ビット)がキャッシュ・ライン・アドレス・タグとして利用される。64バイトのキャッシュ・ラインのオリジナル・システムにおいて動作するためには、128バイトのキャッシュ・ラインは2つの64バイト・キャッシュ・ラインとしてセクタ化される。従って、キャッシュ・メモリ・サイズをアップグレードする時、更に大きいキャッシュ・ラインにおけるキャッシュ・ライン内アドレシングのために利用可能なビットの数を増加させるために、インデックス・フィールドはシフト・ダウンされる。
【0005】
上記のタイプの選択可能キャッシュ・ディレクトリ・アドレシング・システムを実装する方法に伴う1つの問題点は、現在のところ適切であるキャッシュ・メモリのサイズ次第では、種々のアドレス・ビットをインデックス・フィールドとして働かせるように選択する必要があるということから生じる。一般に、4つのキャッシュ・ラインから成る特定のセットを選択するためのインデックスとして利用されるように、13個のアドレス・ビット[13−25]又は[12−24]のどちらがキャッシュ・ディレクトリ又はキャッシュ・メモリに送られるかを選択するために、マルチプレクサ302が使用される。しかし、マルチプレクサ302は、アドレスのルックアップを始めるためにそのアドレスからインデックス・フィールドを得る場合、遅延をキャッシュ・ディレクトリ308に導入する。キャッシュ・メモリ306のアクセスは、インデックスされたキャッシュ・ラインをルックアップする場合にマルチプレクサ302により遅延が同様に導入される時にもクリティカルである。
【0006】
一般に、図4に示された機構において、3つのクリティカルなパスを識別することができる。すなわち、それらは、アドレス・バス入力 Add[13−25]又はAdd[12−24]からキャッシュ・メモリ306を介したキャッシュ・データ出力304へのパス、アドレス・バス・入力からキャッシュ・ディレクトリ308を介したキャッシュ・データ出力304へのバス、及びアドレス・バス入力からコンパレータ310の出力HIT_A及びHIT_Bにおける他のロジック(例えば、犠牲選択のためのロジック、又は再試行信号を駆動するためのロジック)へのパスである。これらのクリティカルなパスの各々はマルチプレクサ302並びに付随的遅延及びスペース要件を含む。更に、キャッシュ・ディレクトリ308及びコンパレータ310の間のマルチプレクサ312は、アドレス・ライン[12]がアドレス・タグ[12]又はそれ自身に匹敵するかどうかを決定するために必要とされる。これらのマルチプレクサ要件は、キャッシュにおけるプロセッサ・サイドのアドレス・フロー及びスヌープ・サイドのアドレス・フローの両方において必要である。適正なインデックス・フィールドを選択するためにアドレス・バス・ラインを多重化することは、アドレス・フローがアドレスをロードするためにキューをアドレスすること及び衝突検出をパイプライン化することも必要とされる。従って、データ処理システムにおいてアップグレード可能なキャッシュ・メモリを使用することは、アップグレードされ得ないキャッシュ・メモリよりもパフォーマンス・ペナルティを受ける。
【0007】
従って、クリティカルなアドレス・パスにおいて如何なるそれ以上のゲート遅延も含まない可変キャッシュ・サイズのためのキャッシュ・ディレクトリ・アドレシング方式を提供することが望ましいであろう。使用されるキャッシュ・メモリのサイズ次第で、種々なサイズのアドレス・タグが比較されることを、その利用されるキャッシュ・ディレクトリ・アドレシング方式が必要としない場合、それは更に有利なものとなろう。
【0008】
【発明が解決しようとする課題】
従って、本発明の1つの目的は、データ処理システムにおいて使用するための改良されたアップグレード可能なキャッシュを提供することにある。
【0009】
本発明のもう1つの目的は、アップグレード可能なキャッシュのための改良されたキャッシュ・ディレクトリ・アドレシング方式を提供することにある。
【0010】
本発明の更にもう1つの目的は、データ処理システムにおけるアップグレード可能なキャッシュのためのクリティカルなアドレス・パスにおける遅延を減少させるキャッシュ・ディレクトリ・アドレシング方式を提供することにある。
【0011】
本発明の更にもう1つの目的は、キャッシュをアップグレードする時、より多くの連想性(associativity)を通してシステム・パフォーマンスを更に改良することにある。
【0012】
【課題を解決するための手段】
上記の目的は、次に説明するようにして達成される。クリティカルなアドレス・パスにおける多重化を回避するために、キャッシュ・メモリのサイズに関係なくキャッシュ・ディレクトリ及びキャッシュ・メモリにおける行をインデックスするために、1つのアドレスからの同じフィールドが使用される。使用されるキャッシュ・メモリのサイズ次第で、キャッシュ・ディレクトリ及びキャッシュ・メモリにおける多重化の最終段階に対する「レイト・セレクト(late select)」として、種々のアドレス・ビット(Add[12]又はAdd[25]のような)が使用される。大きいキャッシュ・メモリ・サイズに対して小さいアドレス・タグ・フィールドが使用されるので、余分なアドレス・タグ・ビットがキャッシュ・ディレクトリにおいて論理的「1」に強制され、キャッシュ・ディレクトリの出力におけるアドレス・タグ・コンパレータによって論理的「1」に比較される。
【0013】
本発明の上記の及び更なる目的、特徴、及び利点は、以下の詳細に示された説明において明らかとなるであろう。
【0014】
【発明の実施の形態】
図面、特に、図1を参照すると、本発明の望ましい実施例によるマルチプロセッサ・データ処理システムが示される。データ処理システム100は、複数のプロセッサ102及び104を含む対称マルチプロセッサ(SMP)システムである。それらのプロセッサは、米国ニューヨーク州アーモンクにあるインターナショナル・ビジネス・マシーンズ・コーポレーション(IBM社)から入手可能なプロセッサのうちのPowerPC(IBM社の商標)ファミリの1つを含むことが望ましい。例示的な実施例では2つのプロセッサしか示されていないけれども、本発明に従って、マルチプロセッサ・データ処理システムにおいて更なるプロセッサが利用可能であることは当業者には明らかであろう。
【0015】
各プロセッサ102及び104は、それぞれ、レベル1(L1)データ・キャッシュ106及び108、並びに、L1命令キャッシュ110及び112を含んでいる。その例示的な実施例では命令キャッシュ及びデータ・キャッシュが分離したものとして示されているけれども、単一の一体化されたL1キャッシュが実装可能であることは当業者には明らかであろう。データ・アクセス待ち時間を最小にするために、レベル2(L2)キャッシュ114及び116並びにレベル3(L3)キャッシュ118及び119のような1つ又はそれ以上の更なるレベルのキャッシュ・メモリをデータ処理システム100において実装することも可能である。L2及びL3のような低いキャッシュ・レベルはL1キャッシュに対するデータをステージ化するために使用され、一般には、漸進的に大きい記憶容量を持つが、アクセス時間は長くなる。例えば、データ・キャッシュ106及び108並びに命令キャッシュ110及び112は、それぞれ、32KBの記憶容量及び約1−2プロセッサ・サイクルのアクセス待ち時間を持つことがある。L2キャッシュ114及び116は512KBの記憶容量を有するが、5プロセッサ・サイクルのアクセス待ち時間を持つことになろうし、一方、L3キャッシュ118及び119は4MBの記憶容量を有するが、15プロセッサ・サイクルよりも大きいアクセス待ち時間を持つことになろう。従って、L2キャッシュ114及び116並びにL3キャッシュ118及び119は、プロセッサ102及び104とシステム・メモリ120との間の中間記憶装置として働く。システム・メモリ120は、一般には、ずっと大きな記憶容量を有するが、50プロセッサ・サイクルより大きいアクセス待ち時間を持つことになろう。
【0016】
キャッシュ・ハイアラーキにおけるレベルの数及びデータ処理システム100において使用されるキャッシュ・ハイアラーキ構成の両方とも変更可能である。図示の例におけるL2キャッシュ114及び116は、それぞれのプロセッサ102及び104とシステム・メモリ120との間に(システム・バス122を介して)接続された専用のキャッシュである。L3キャッシュ118及び119は、L2キャッシュ114及び116と論理的に垂直なルックアサイド・キャッシュとして示される。その結果、データ又は命令はL2キャッシュ114及び116の1つ並びにL3キャッシュ118及び119の1つでルックアップされ得るが、データ又は命令は、それぞれのL2キャッシュ114又は116がミスヒットし、一方L3キャッシュ118又は119がヒットする場合、L3キャッシュ118又は119から検索されるだけであろう。示されたレベル及び構成の種々の変更が実施され得ることは当業者には明らかであろう。
【0017】
L2キャッシュ114及び116並びにL3キャッシュ118及び119はシステム・バス122を介してシステム・メモリ120に接続される。ディスプレイ(図示されてない)に対する接続を提供するグラフィックス・アダプタのようなメモリ・マップド・デバイス124及び入出力(I/O)バス・ブリッジ126もシステム・バス122に接続可能である。I/Oバス・ブリッジ126はシステム・バス122をI/Oバス128接続する。I/Oバス128はI/Oデバイス130及び不揮発性メモリ132に対する接続を提供し得るものである。従って、システム・バス122、I/Oブリッジ126、及びI/Oバス128は、付属のデバイスを結合する相互接続線を形成する。その相互接続線に対する別の実施方法が従来技術において知られている。
【0018】
I/Oデバイス130は、キーボード、マウス又はトラック・ボールのようなグラフィカル・ポインティング・デバイス、ディスプレイ、及びプリンタを含む一般的な周辺装置を含む。それらの周辺装置は通常のアダプタを介してI/Oバス128にインターフェースされる。不揮発性メモリ132はハードディスク・ドライブを含み得るし、システム100のオペレーションを制御するオペレーティング・システム及び他のソフトウエアを記憶する。それらのソフトウエアは、システム100がパワー・オンされることに応答して揮発性のシステム・メモリ120にロードされる。データ処理システム100が、シリアル及びパラレル・ポート、ネットワーク又は付属のデバイスへの接続線、システム・メモリ120へのアクセスを調整するメモリ・コントローラ等のような図1に示されてない多くの更なるコンポーネントを含み得ることは当業者には明らかであろう。そのような修正及び変更は本発明の精神及び技術的範囲にある。
【0019】
システム・バス122における代表的なコミュニケーション・トランザクションは、そのトランザクションのソースを表すソース・タグ及びアドレス及び(又は)データを含む。システム・バス122に接続された各デバイスはシステム・バス122におけるすべてのコミュニケーション・トランザクションをスヌープし、必要な時には他の受信者に対して意図されたコミュニケーション・トランザクションにおいて介入し、そのデバイスにおいて複写されているシステム・メモリのデータに対する変更を、実行可能で且つ適正である時に複製することが望ましい。
【0020】
図2を参照すると、本発明の望ましい実施例に従って、共通キャッシュ・ディレクトリ・アドレシング方式のためのキャッシュ構成の図が示される。図示のキャッシュ・ディレクトリ及びキャッシュ・メモリ構成は、L2キャッシュ114及び116並びにL3キャッシュ118及び119を含むアップグレード可能な図1に示された任意のキャッシュに対しても利用可能である。説明されるキャッシュ・ディレクトリ・アドレシング方式の例示的な実施例は、1MBから2MBにアップグレード可能な2ウェイ・セット・アソシアティブ・キャッシュに関するものである。しかし、本発明の共通キャッシュ・ディレクトリ・アドレシング方式は、データ処理システム記憶ハイアラーキのいずれのレベルにおいても任意の量の連想性を利用する任意のサイズのキャッシュに対して、適正な修正を行って実施され得るものである。
【0021】
図2に示された1MBの2ウェイ・セット・アソシアティブ・キャッシュのためのキャッシュ・ディレクトリ・アドレシング方式は64バイト・キャッシュ・ラインを使用する。この場合、アドレスのビット26−32(6ビット)はキャッシュ・ライン内アドレスを決定し、そのアドレスのビット13−24(12ビット)はキャッシュ・ディレクトリ及びキャッシュ・メモリにおける行に対するインデックスとして働き、そのアドレスのビット0−12(13ビット)はアドレス・タグとして利用され、ビット25は、更に詳細に後述するように、キャッシュ・メモリ及びキャッシュ・ディレクトリにおける同じ行からキャッシュ・ラインのセット及びそれらの対応するアドレス・タグを選択するために使用される。図2に示された2MBの2ウェイ・セット・アソシアティブ・キャッシュのためのキャッシュ・ディレクトリ・アドレシング方式は128バイトのキャッシュ・ラインを使用する。この場合、アドレスのビット25−31(7ビット)はキャッシュ・ライン内アドレスを決定し、そのアドレスのビット13−24(12ビット)はキャッシュ・ディレクトリ及びキャッシュ・メモリにおける行に対するインデックスとして働き、そのアドレスのビット0−11(12ビット)はアドレス・タグとして利用され、ビット12は、キャッシュ・メモリ及びキャッシュ・ディレクトリからキャッシュ・ラインのセット及びそれらの対応するアドレス・タグを選択する。
【0022】
キャッシュ・ディレクトリ202におけるアドレス・タグTAG_A及びTAG_Bは、キャッシュ・メモリ204における対応するデータDATA_A及びDATA_Bに対するアドレスのアドレス・タグ・フィールドを含む。そのアドレスのインデックス・フィールドに対応するアドレス・バス入力Add[13−24]は、キャッシュ・ディレクトリ202及びキャッシュ・メモリ204に対するインデックスとして利用される。このインデックス・フィールドはキャッシュ・ディレクトリ202及びキャッシュ・メモリ204からアドレス・タグ及びキャッシュ・ラインの2つのグループを選択するために使用される。その例示的実施例では、各グループは2つのアドレス・タグ及び2つのキャッシュ・ラインを含む。
【0023】
使用されるキャッシュのサイズ次第で、アドレス・バス入力Add[25]又はAdd[12]が、キャッシュ・ディレクトリ202及びキャッシュ・メモリ204からアドレス・タグ/キャッシュ・ラインのグループを選択するためにも使用される。アドレス・バス入力Add[25]又はAdd[12]は、アドレスのインデックス・フィールドAdd[13−24]に基づいて選択されたアドレス・タグ/キャッシュ・ラインの2つのグループのうちの1つを選択するために、キャッシュ・ディレクトリ202及びキャッシュ・メモリ204によって使用される。しかし、この機構は、キャッシュ・ディレクトリ202及びキャッシュ・メモリ204における多重化の最終段階において、既知の方法による「遅れ選択」として実施可能である。従って、Add[25]及びAdd[12]から1つのアドレス・バス入力を選択するために必要な多重化機能206が、インデックス・フィールドに基づいてキャッシュ・ディレクトリ及びメモリ・アクセスと平行して進行し得る。Add[25]又はAdd[12]の遅れアクセス機構は、キャッシュ・ディレクトリ202からコンパレータ208にTAG_A及びTAG_Bを送るために必要な待ち時間、又はアドレスを与えられた後にキャッシュ・メモリ204からDATA_A及びDATA_Bを送るために必要な待ち時間を増加させることはないであろう。
【0024】
キャッシュ・ディレクトリ202から選択されたアドレス・タグTAG_A及びTAG_Bは、与えられたアドレスのアドレス・タグ・フィールドと比較するためにコンパレータ208に送られる。選択されたキャッシュ・ディレクトリ・エントリにおけるTAG_A及びTAG_Bは与えられたアドレスのアドレス・タグ・フィールドに同時に比較され、そしてそれらが一致した結果として、対応するHIT_A又はHIT_B信号の活性化が生じる。小さい1MBキャッシュ・メモリが使用される時、アドレス・タグ・フィールドはビット[0−12]を含む。しかし、大きい2MBキャッシュ・メモリが使用されるべき時、アドレス・タグ・フィールドはビット[0−11]だけを含む。従って、与えられたアドレスのビット[12]がアドレス・タグTAG_A及びTAG_Bのビット[12]に比較されるか又はロジック「1」に比較されるかを制御するために、論理ゲート212が設けられる。
【0025】
2MBキャッシュ・メモリが使用される時、キャッシュ・ディレクトリ202に記憶されたアドレス・タグのビット[12]はいつも論理的「1」に書き込まれる。1MB_Mode制御信号が活性化される時(1MBキャッシュ・メモリが使用される時)、論理ゲート212は、与えられたアドレスのビット[12]をコンパレータ208に送り、TAG_A及びTAG_Bのビット[12]に比較させる。しかし、2MBキャッシュ・メモリが使用される時、論理ゲート212は、論理的「1」をその与えられたアドレスのビット[12]としてコンパレータ208に送り、論理的「1」にいつも書き込まれているTAG_A及びTAG_Bのビット[12]に比較させる。これは、キャッシュ・ディレクトリ202及びコンパレータ208の間のマルチプレクサを必要とすることなく、可変サイズのアドレス・タグ・フィールドが使用されることを可能にする。論理ゲート212はキャッシュ・ディレクトリ202のアクセスと平行して動作し、従って、クリティカルなアドレス・パスに如何なる待ち時間も加えない。
【0026】
インデックス・フィールドAdd[13−24]及びレイト・セレクトADD[25]又はADD[12]は、それらがキャッシュ・ディレクトリ202によって使用される態様と同じ態様でキャッシュ・メモリ204によっても使用され、アドレス・タグTAG_A及びTAG_Bにそれぞれ対応するDATA_A及びDATA_Bを選択する。コンパレータ出力信号HIT_A及びHIT_Bはマルチプレクサ210によって利用され、2つのキャッシュ・ラインDATA_A及びDATA_Bの1つをキャッシュ出力として既知の方法に従って選択する。信号HIT_A及びHIT_Bは、犠牲選択ロジックのような他とタイミング・クリティカルなロジック及び「再試行」、「共用」等のようなスヌープ応答を駆動するためのロジックによっても利用可能である。
【0027】
例示的な実施例は2ウェイ・セット・アソシアティブ・キャッシュ方式に関するものであるけれども、4ウェイ・セット・アソシアティブ方式のような他の変更も可能である。そのような実施例では、各々がアドレス・タグ又はキャッシュ・ラインを含んでいる4つのグループのアドレス・タグ/キャッシュ・ライン(コングルーエンス・クラス)を選択するために、インデックス・フィールドが使用可能である。そのアドレスの2ビットは、4つのアドレス・タグ及びキャッシュ・ラインの1グループをキャッシュ・ディレクトリの出力におけるコンパレータに及びキャッシュ・メモリの出力におけるマルチプレクサに送るためにレイト・セレクトとして使用可能である。
【0028】
図3を参照すると、本発明の望ましい実施例に従って、共通キャッシュ・ディレクトリ・アドレシング方式に対する別のキャッシュ構成の図が示される。このキャッシュ・ディレクトリ及びキャッシュ・メモリ構成は、L2キャッシュ114及び116並びにL3キャッシュ118及び119を含むアップグレード可能な図1に示されたいずれのキャッシュに対しても利用可能である。この別のキャッシュ・ディレクトリ・アドレシング方式の例示的な実施例は、4ウェイ・セット・アソシアティブの2MBキャッシュにアップグレード可能な2ウェイ・セット・アソシアティブの1MBキャッシュに関するものである。しかし、この本発明の別の共通キャッシュ・ディレクトリ・アドレシング方式は、データ処理システム記憶ハイアラーキのいずれのレベルにおけるいずれのサイズのキャッシュに対しても適切な修正によって実装可能である。
【0029】
この別の実施例では、キャッシュ・ディレクトリ222における行(コングルーエンス・クラス)は、1MBオペレーション時に2セットの2アドレス・タグとして論理的に扱われる4つのアドレス・タグTAG_A、TAG_B、TAG_C、及びTAG_Dを含んでいる。キャッシュ・メモリ224における行は、同様に、1MBオペレーション時に2セットの2キャッシュ・ラインとして論理的に扱われる4つのキャッシュ・ラインDATA_A、DATA_B、DATA_C、及びDATA_Dを含んでいる。与えられたアドレスからのインデックス・フィールドAdd[13−24]は、キャッシュ・ディレクトリ222及びキャッシュ・メモリ224における行を選択するために利用される。キャッシュ・ディレクトリ222の選択された行におけるアドレス・タグは、与えられたアドレスのアドレス・タグ・フィールドAdd[0−12]と比較するためにコンパレータ226に送られる。キャッシュ・メモリ224の選択された行におけるキャッシュ・ラインも、同様に、マルチプレクサ228に送られる。
【0030】
キャッシュ・ディレクトリ22の選択された行におけるアドレス・タグTAG_A、TAG_B、TAG_C、及びTAG_Dの13個のビットは、コンパレータ226によってその与えられたアドレスにおけるアドレス・タグ・フィールドAdd[0−12]の13個のビットに比較される。しかし、コンパレータ226は第14ビットと論理的「1」との比較も行う。
【0031】
上述のように、1MBオペレーション時に、選択されたキャッシュ・ディレクトリの行における4つのアドレス・タグは論理的に2セットの2アドレス・タグとして扱われ、2ウェイ・セット連想性を効果的に実装する。コンパレータ226による第14ビットの比較は2セットのうちの1つが選択されることを可能にする。1MBキャッシュ・メモリが使用される(信号1MB_Modeが活性化される)時、与えられたアドレスのインデックス・フィールドにおけるレイト・セレクトAdd[25]が、アドレス・タグのセットの1つを選択するために利用される。論理ゲート230a及び230bはAdd[25]を反転し、一方、論理ゲート230c及び230dはAdd[25]の状態を単に通過させるだけである。(論理ゲート230a−230dに対する他の入力、すなわち、反転した1MB_Mode信号は、1MBキャッシュが使用される時、いつも活性化されないであろう)。従って、論理ゲート230a−230dは,Add[25]及びそれの補数がコンパレータ226によって論理的「1」に同時に比較されることを可能にする。
【0032】
Add[25]の状態次第で、アドレス・タグTAG_A及びTAG_B又はTAG_C及びTAG_Dの一対だけが、コンパレータ226による一致が可能となるであろう。従って、Add[25]は、アドレス・タグの1つのグループを選択し且つコンパレータ226において他のグループを禁止するという効果を持つ。基本的には、この機構はディレクトリ及びキャッシュを2ウェイ・セット・アソシアティブとして扱う。コンパレータ226の出力、すなわち、信号HIT_A、HIT_B、HIT_C、及びHIT_Dは、選択された行からのキャッシュ・ラインをキャッシュ・データ出力として選択するためにマルチプレクサ228によって使用される。コンパレータ226の出力信号は、前述のように、他のロジックによっても使用可能である。
【0033】
示された別の実施例において2MBキャッシュが使用される時、1MB_Mode信号は活性化されず、論理ゲート230a−230dによって、第14ビット(これも、論理的「1」)として比較のためにコンパレータ226に送られる。従って、選択されたキャッシュ・ディレクトリ行における4つのアドレス・タグTAG_A、TAG_B、TAG_C、及びTAG_Dはすべて、その結果として、与えられたアドレスのアドレス・タグ・フィールドとの一致を生じさせることが可能である。キャッシュ・ラインのサイズを増加させることに加えて、アップグレードは連想性を4ウェイ・セット連想性にまで増加させる。コンパレータ226の出力信号は、キャッシュ・メモリ224の選択された行におけるキャッシュ・ラインを選択するためにマルチプレクサ228によって使用される。
【0034】
図3に示された例示的な実施例は2つのアドレス・タグの2つのグループ(2ウェイ・セット連想性)及び4つのアドレス・タグの1つのグループ(4ウェイ・セット連想性)に関するものであるけれども、本発明は他の構成においても使用可能である。例えば、別の実施例は、4つのアドレス・タグの4セット(4ウェイ・セット連想性)及び8個のアドレス・タグの2セット(8ウェイ・セット連想性)として実装可能である。
【0035】
本発明は、クリティカルなアドレス・ツー・ディレクトリのアドレス・パス及びアドレス・ツー・キャッシュのアドレス・パスからのアドレス・バス入力の多重化を排除する。更に、ディレクトリのクリティカルな出力(アドレス・タグ)は多重化を必要とせず、コンパレータに直接に送られる。これは、レイト・セレクト経由の「ヒット」ロジック及びキャッシュ・データ・パスをスピード・アップする。この別の実施例をアップグレードすることによって得られるアソシアティビティの増加は、ローディング及びスヌープ衝突比較のための内部キューへのアドレス・フローから多重化を除去するものなので、全体的なパフォーマンスを改良する。
【0036】
本発明では、キャッシュ・メモリのサイズに関係なく、キャッシュ・ディレクトリ及びメモリ行をインデックスするために、1つのアドレスからの同じフィールドが使用される。キャッシュが、例えば、1MBであるか又は2MBであるかに関係なく、コングルーエンス・クラスを選択するために、同じビット・セットが利用される。これは、アドレス・インデックス・フィールドをディレクトリ及びキャッシュ・アクセス機能に到達させるクリティカルなアドレス・パスにおける多重化及び関連の遅延を必要ないものにする。キャッシュ・ディレクトリ及びキャッシュ・メモリにおけるコングルーエンス・クラス(又は、行)は、論理的には複数のグループとして扱われる。各グループは複数のアドレス・タグ又はキャッシュ・ラインを含む。キャッシュ・メモリ・サイズに従って選択されたアドレス・ビットに基づいて、特定のコングルーエンス・クラスから1つのグループが選択される。しかし、この選択はディレクトリ及びキャッシュ・アクセスと平行して行われ、待ち時間を増加させない。アドレス・タグの選択されたグループのメンバはアドレスからのアドレス・タグ・フィールドと並列に比較され、キャッシュ・ラインの対応するグループにおける適正なキャッシュ・ラインの選択を可能にする。アドレス・タグをアドレス・タグ・フィールドに比較する場合、キャッシュ・メモリのサイズに関係なく、同じ数のビットが利用される。これは、比較プロセスのために必要なロジックの量を減少させる。
【0037】
アドレスされるキャッシュ・メモリ・サイズに対して、同じ連想性(すなわち、1グループ当たり同じ数のアドレス・タグ又はキャッシュ・ラインの場合、1行当たり同じ数のグループ)が使用可能であるか、又は、利用されるキャッシュ・メモリのサイズ次第で異なる連想性が使用可能である。従って、例えば、1MB/2MBキャッシュ・メモリに対して2ウェイ/4ウェイ・セット・アソシアティブ構成が利用され、一方、2MB/4MBキャッシュ・メモリに対して4ウェイ/8ウェイ・セット・アソシアティブ構成が利用される。
【0038】
本発明のキャッシュ・ディレクトリ・アドレシング方式は可変サイズのキャッシュに適用可能であり、従って、データ処理システムにおけるアップグレード可能なキャッシュをサポートする。キャッシュ・メモリのサイズに関係なくキャッシュ・ディレクトリ及びメモリをインデックスするためにアドレスからの同じフィールドが利用されるので、アップグレード可能なキャッシュをサポートするためには、クリティカルなアドレス・パスにおける多重化ロジックは必要ない。本発明のディレクトリ・アドレシング方式は、更なるオーバヘッドを被ることなく、対応するキャッシュ・ラインに対するアドレス・タグに関して既存のアドレシング方式よりも多くの連想性を得る。更に、本発明のキャッシュ・アドレシング方式は1:1アドレス・フローを作り、キャッシュ・ディレクトリの効率的な利用を提供する。本発明は、奇数/偶数ディレクトリ・パリティ機構と共に、又は冗長なプロセッサ・サイド及びスヌープ・サイドのキャッシュ・ディレクトリ構成と共に有利に使用可能である。
【0039】
本発明を望ましい実施例に関して詳しく示し、説明したけれども、本発明の精神及び技術的範囲を逸脱することなく形式及び細部における種々の変更を行い得ることは当業者には明らかであろう。
【0040】
まとめとして、本発明の構成に関して以下の事項を開示する。
【0041】
(1)可変サイズ・キャッシュのためのキャッシュ・ディレクトリをアドレスする方法にして、
アドレスからのインデックス・フィールドを利用してキャッシュ・ディレクトリにおけるコングルーエンス・クラスを選択するステップと、
前記アドレスからの少なくとも1つのビットを利用して、前記選択されたコングルーエンス・クラスにおけるm個のキャッシュ・ディレクトリ・エントリのn個のグループのうちの1つを選択するステップと、
前記キャッシュ・ディレクトリ・エントリの選択されたグループにおける各キャッシュ・ディレクトリ・エントリに前記アドレスからのアドレス・タグ・フィールドを比較するステップと、
前記キャッシュ・ディレクトリ・エントリの選択されたグループにおけるキャッシュ・ディレクトリ・エントリと前記アドレス・タグ・フィールドとの間の一致を識別することに応答して、該一致したキャッシュ・ディレクトリ・エントリと関連したキャッシュ・メモリの部分を選択するステップと、
を含む方法。
(2)前記アドレスからのインデックス・フィールドを利用してキャッシュ・ディレクトリにおけるコングルーエンス・クラスを選択するステップは、
前記アドレスからの同じインデックス・フィールドを利用して、前記キャッシュ・サイズに関係なくコングルーエンス・クラスを選択するステップ
を更に含む上記(1)に記載の方法。
(3)前記アドレスからのインデックス・フィールドを利用してキャッシュ・ディレクトリにおけるコングルーエンス・クラスを選択するステップは、
前記アドレスからのインデックス・フィールドを多重化することなく前記インデックス・フィールドを直接に利用するステップ
を更に含む上記(1)に記載の方法。
(4)前記選択されたコングルーエンス・クラスにおけるm個のキャッシュ・ディレクトリ・エントリのn個のグループのうちの1つを選択するステップは、
前記選択されたコングルーエンスからキャッシュ・ディレクトリ・エントリの2つのグループのうちの1つを選択するステップ
を更に含む上記(1)に記載の方法。
(5)前記選択されたコングルーエンス・クラスにおけるm個のキャッシュ・ディレクトリ・エントリのn個のグループのうちの1つを選択するステップは、
前記選択されたコングルーエンス・クラスから2つのキャッシュ・ディレクトリ・エントリのグループを選択するステップ
を更に含む上記(1)に記載の方法。
(6)前記選択されたコングルーエンス・クラスにおけるm個のキャッシュ・ディレクトリ・エントリのn個のグループのうちの1つを選択するステップは、
前記選択されたコングルーエンスからキャッシュ・ディレクトリ・エントリの4つのグループのうちの1つを選択するステップ
を更に含む上記(1)に記載の方法。
(7)前記選択されたコングルーエンス・クラスにおけるm個のキャッシュ・ディレクトリ・エントリのn個のグループのうちの1つを選択するステップは、
前記選択されたコングルーエンス・クラスから4つのキャッシュ・ディレクトリ・エントリのグループを選択するステップ
を更に含む上記(1)に記載の方法。
(8)前記選択されたコングルーエンス・クラスにおけるm個のキャッシュ・ディレクトリ・エントリのn個のグループのうちの1つを選択するステップは、
レイト・セレクトのための前記アドレスからのビットを利用するステップ
を更に含む上記(1)に記載の方法。
(9)前記選択されたコングルーエンス・クラスにおけるm個のキャッシュ・ディレクトリ・エントリのn個のグループのうちの1つを選択するステップは、
関連するキャッシュ・メモリが第1サイズを有する時、前記アドレスからの第1ビットを利用して、前記選択されたコングルーエンス・クラスにおけるキャッシュ・ディレクトリ・エントリのグループを選択するステップと、
前記関連するキャッシュ・メモリが第2サイズを有する時、前記アドレスからの第2ビットを利用して、前記選択されたコングルーエンス・クラスにおけるキャッシュ・ディレクトリ・エントリのグループを選択するステップと、
を更に含む上記(1)に記載の方法。
(10)前記キャッシュ・ディレクトリの各コングルーエンス・クラスを、各グループがm個のキャッシュ・ディレクトリ・エントリを含むキャッシュ・ディレクトリ・エントリのn個のグループに論理的に分割するステップと、
キャッシュ・メモリの各コングルーエンス・クラスをキャッシュ・ラインのn個のグループに論理的に分割するステップと、
を更に含み、キャッシュ・ラインの各グループはm個のキャッシュ・ラインを含み、前記キャッシュ・ディレクトリ内の同じコングルーエンス・クラスにおけるキャッシュ・ディレクトリ・エントリの対応するグループと関連づけられる、上記(1)に記載の方法。
(11)関連するキャッシュ・メモリが第1サイズを有する時、前記アドレスからの第1フィールドをキャッシュ・ライン内アドレスとして利用するステップと、
前記関連するキャッシュ・メモリが第2サイズを有する時、前記アドレスからの第2フィールドをキャッシュ・ライン内アドレスとして利用するステップと、
を更に含む上記(1)に記載の方法。
(12)可変サイズ・キャッシュのためのキャッシュ・ディレクトリ・アドレシング機構にして、
各々がm個のキャッシュ・ディレクトリ・エントリのn個のグループを含む複数のコングルーエンス・クラスを持つキャッシュ・ディレクトリと、
各々がm個のキャッシュ・ラインのn個のグループを含む複数のコングルーエンス・クラスを持つキャッシュ・メモリであって、1つのコングルーエンス・クラスにおけるキャッシュ・ラインの各グループが前記キャッシュ・ディレクトリの同じコングルーエンス・クラスにおけるキャッシュ・ディレクトリ・エントリの対応するグループと関連付けられる、キャッシュ・メモリと、
アドレスからのインデックス・フィールドを利用して前記キャッシュ・ディレクトリにおけるコングルーエンス・クラスを選択するディレクトリ・ルックアップと、
前記アドレスからの少なくとも1つのビットを利用して前記選択されたコングルーエンス・クラスにおけるディレクトリ・エントリの1つのグループを選択するレイト・セレクトと、
前記アドレスからのアドレス・タグ・フィールドをキャッシュ・ディレクトリ・エントリの前記選択されたグループにおける各キャッシュ・ディレクトリ・エントリに比較する少なくとも1つのコンパレータと、
前記キャッシュ・ディレクトリ・エントリの選択されたグループにおけるキャッシュ・ディレクトリ・エントリと前記アドレス・タグ・フィールドとの間の一致が識別されたことに応答して、一致したキャッシュ・ディレクトリ・エントリに対応する前記キャッシュ・メモリにおけるキャッシュ・ラインを選択するマルチプレクサと、
を含む機構。
(13)前記キャッシュ・ディレクトリは、更に、各コングルーエンス・クラスにおいてキャッシュ・ディレクトリ・エントリの2つのグループを含む、上記(12)に記載の機構。
(14)前記キャッシュ・ディレクトリは、更に、各コングルーエンス・クラスにおいて2つのキャッシュ・ディレクトリ・エントリのn個のグループを含む、上記(12)に記載の機構。
(15)前記キャッシュ・ディレクトリは、更に、各コングルーエンス・クラスにおいてキャッシュ・ディレクトリ・エントリの4つのグループを含む、上記(12)に記載の機構。
(16)前記キャッシュ・ディレクトリは、更に、各コングルーエンス・クラスにおいて4つのキャッシュ・ディレクトリ・エントリのn個のグループを含む、上記(12)に記載の機構。
(17)前記ディレクトリ・ルックアップは、更に、前記アドレスからの同じインデックス・フィールドを利用して、前記キャッシュ・メモリのサイズに関係なく前記キャッシュ・ディレクトリにおけるコングルーエンス・クラスを選択するディレクトリ・ルックアップを含む、上記(12)に記載の機構。
(18)前記レイト・セレクトは前記キャッシュ・ディレクトリの出力において前記少なくとも1つのコンパレータに接続される、上記(12)に記載の機構。
(19)前記レイト・セレクトは、前記キャッシュ・メモリが第1サイズを有する時、第1ビットを利用して前記選択されたコングルーエンス・クラスにおけるキャッシュ・ディレクトリ・エントリのグループを選択し、前記キャッシュ・メモリが第2サイズを有する時、第2ビットを利用して前記選択されたコングルーエンス・クラスにおけるキャッシュ・ディレクトリ・エントリのグループを選択する、上記(12)に記載の機構。
(20)前記レイト・セレクトは、前記アドレスのアドレス・タグ・フィールドからのビットを利用して前記選択されたコングルーエンス・クラスにおけるキャッシュ・ディレクトリ・エントリのグループを選択する、上記(12)に記載の機構。
【図面の簡単な説明】
【図1】本発明の望ましい実施例に従ってマルチプロセッサ・データ処理システムを示す。
【図2】本発明の望ましい実施例に従って共通キャッシュ・ディレクトリ・アドレシング方式ためのキャッシュ構成図を示す。
【図3】本発明の望ましい実施例に従って共通キャッシュ・ディレクトリ・アドレシング方式の別の実施例の図を示す。
【図4】従来技術のキャッシュ・ディレクトリ・アドレシング方式を示す。

Claims (20)

  1. 可変サイズ・キャッシュのためのキャッシュ・ディレクトリをアドレスする方法にして、
    アドレスからのインデックス・フィールドを利用してキャッシュ・ディレクトリにおけるコングルーエンス・クラスを選択するステップと、
    前記アドレスからの少なくとも1つのビットを利用して、前記選択されたコングルーエンス・クラスにおけるm個のキャッシュ・ディレクトリ・エントリのn個のグループのうちの1つを選択するステップと、
    前記キャッシュ・ディレクトリ・エントリの選択されたグループにおける各キャッシュ・ディレクトリ・エントリに前記アドレスからのアドレス・タグ・フィールドを比較するステップと、
    前記キャッシュ・ディレクトリ・エントリの選択されたグループにおけるキャッシュ・ディレクトリ・エントリと前記アドレス・タグ・フィールドとの間の一致を識別することに応答して、該一致したキャッシュ・ディレクトリ・エントリと関連したキャッシュ・メモリの部分を選択するステップと、
    を含む方法。
  2. 前記アドレスからのインデックス・フィールドを利用してキャッシュ・ディレクトリにおけるコングルーエンス・クラスを選択するステップは、
    前記アドレスからの同じインデックス・フィールドを利用して、前記キャッシュ・サイズに関係なくコングルーエンス・クラスを選択するステップ
    を更に含む請求項1に記載の方法。
  3. 前記アドレスからのインデックス・フィールドを利用してキャッシュ・ディレクトリにおけるコングルーエンス・クラスを選択するステップは、
    前記アドレスからのインデックス・フィールドを多重化することなく前記インデックス・フィールドを直接に利用するステップ
    を更に含む請求項1に記載の方法。
  4. 前記選択されたコングルーエンス・クラスにおけるm個のキャッシュ・ディレクトリ・エントリのn個のグループのうちの1つを選択するステップは、
    前記選択されたコングルーエンスからキャッシュ・ディレクトリ・エントリの2つのグループのうちの1つを選択するステップ
    を更に含む請求項1に記載の方法。
  5. 前記選択されたコングルーエンス・クラスにおけるm個のキャッシュ・ディレクトリ・エントリのn個のグループのうちの1つを選択するステップは、
    前記選択されたコングルーエンス・クラスから2つのキャッシュ・ディレクトリ・エントリのグループを選択するステップ
    を更に含む請求項1に記載の方法。
  6. 前記選択されたコングルーエンス・クラスにおけるm個のキャッシュ・ディレクトリ・エントリのn個のグループのうちの1つを選択するステップは、
    前記選択されたコングルーエンスからキャッシュ・ディレクトリ・エントリの4つのグループのうちの1つを選択するステップ
    を更に含む請求項1に記載の方法。
  7. 前記選択されたコングルーエンス・クラスにおけるm個のキャッシュ・ディレクトリ・エントリのn個のグループのうちの1つを選択するステップは、
    前記選択されたコングルーエンス・クラスから4つのキャッシュ・ディレクトリ・エントリのグループを選択するステップ
    を更に含む請求項1に記載の方法。
  8. 前記選択されたコングルーエンス・クラスにおけるm個のキャッシュ・ディレクトリ・エントリのn個のグループのうちの1つを選択するステップは、
    レイト・セレクトのための前記アドレスからのビットを利用するステップ
    を更に含む請求項1に記載の方法。
  9. 前記選択されたコングルーエンス・クラスにおけるm個のキャッシュ・ディレクトリ・エントリのn個のグループのうちの1つを選択するステップは、
    関連するキャッシュ・メモリが第1サイズを有する時、前記アドレスからの第1ビットを利用して、前記選択されたコングルーエンス・クラスにおけるキャッシュ・ディレクトリ・エントリのグループを選択するステップと、
    前記関連するキャッシュ・メモリが第2サイズを有する時、前記アドレスからの第2ビットを利用して、前記選択されたコングルーエンス・クラスにおけるキャッシュ・ディレクトリ・エントリのグループを選択するステップと、
    を更に含む請求項1に記載の方法。
  10. 前記キャッシュ・ディレクトリの各コングルーエンス・クラスを、各グループがm個のキャッシュ・ディレクトリ・エントリを含むキャッシュ・ディレクトリ・エントリのn個のグループに論理的に分割するステップと、
    キャッシュ・メモリの各コングルーエンス・クラスをキャッシュ・ラインのn個のグループに論理的に分割するステップと、
    を更に含み、キャッシュ・ラインの各グループはm個のキャッシュ・ラインを含み、前記キャッシュ・ディレクトリ内の同じコングルーエンス・クラスにおけるキャッシュ・ディレクトリ・エントリの対応するグループと関連づけられる、請求項1に記載の方法。
  11. 関連するキャッシュ・メモリが第1サイズを有する時、前記アドレスからの第1フィールドをキャッシュ・ライン内アドレスとして利用するステップと、
    前記関連するキャッシュ・メモリが第2サイズを有する時、前記アドレスからの第2フィールドをキャッシュ・ライン内アドレスとして利用するステップと、
    を更に含む請求項1に記載の方法。
  12. 可変サイズ・キャッシュのためのキャッシュ・ディレクトリ・アドレシング機構にして、
    各々がm個のキャッシュ・ディレクトリ・エントリのn個のグループを含む複数のコングルーエンス・クラスを持つキャッシュ・ディレクトリと、
    各々がm個のキャッシュ・ラインのn個のグループを含む複数のコングルーエンス・クラスを持つキャッシュ・メモリであって、1つのコングルーエンス・クラスにおけるキャッシュ・ラインの各グループが前記キャッシュ・ディレクトリの同じコングルーエンス・クラスにおけるキャッシュ・ディレクトリ・エントリの対応するグループと関連付けられる、キャッシュ・メモリと、
    アドレスからのインデックス・フィールドを利用して前記キャッシュ・ディレクトリにおけるコングルーエンス・クラスを選択するディレクトリ・ルックアップと、
    前記アドレスからの少なくとも1つのビットを利用して前記選択されたコングルーエンス・クラスにおけるディレクトリ・エントリの1つのグループを選択するレイト・セレクトと、
    前記アドレスからのアドレス・タグ・フィールドをキャッシュ・ディレクトリ・エントリの前記選択されたグループにおける各キャッシュ・ディレクトリ・エントリに比較する少なくとも1つのコンパレータと、
    前記キャッシュ・ディレクトリ・エントリの選択されたグループにおけるキャッシュ・ディレクトリ・エントリと前記アドレス・タグ・フィールドとの間の一致が識別されたことに応答して、一致したキャッシュ・ディレクトリ・エントリに対応する前記キャッシュ・メモリにおけるキャッシュ・ラインを選択するマルチプレクサと、
    を含む機構。
  13. 前記キャッシュ・ディレクトリは、更に、各コングルーエンス・クラスにおいてキャッシュ・ディレクトリ・エントリの2つのグループを含む、請求項12に記載の機構。
  14. 前記キャッシュ・ディレクトリは、更に、各コングルーエンス・クラスにおいて2つのキャッシュ・ディレクトリ・エントリのn個のグループを含む、請求項12に記載の機構。
  15. 前記キャッシュ・ディレクトリは、更に、各コングルーエンス・クラスにおいてキャッシュ・ディレクトリ・エントリの4つのグループを含む、請求項12に記載の機構。
  16. 前記キャッシュ・ディレクトリは、更に、各コングルーエンス・クラスにおいて4つのキャッシュ・ディレクトリ・エントリのn個のグループを含む、請求項12に記載の機構。
  17. 前記ディレクトリ・ルックアップは、更に、前記アドレスからの同じインデックス・フィールドを利用して、前記キャッシュ・メモリのサイズに関係なく前記キャッシュ・ディレクトリにおけるコングルーエンス・クラスを選択するディレクトリ・ルックアップを含む、請求項12に記載の機構。
  18. 前記レイト・セレクトは前記キャッシュ・ディレクトリの出力において前記少なくとも1つのコンパレータに接続される、請求項12に記載の機構。
  19. 前記レイト・セレクトは、前記キャッシュ・メモリが第1サイズを有する時、第1ビットを利用して前記選択されたコングルーエンス・クラスにおけるキャッシュ・ディレクトリ・エントリのグループを選択し、前記キャッシュ・メモリが第2サイズを有する時、第2ビットを利用して前記選択されたコングルーエンス・クラスにおけるキャッシュ・ディレクトリ・エントリのグループを選択する、請求項12に記載の機構。
  20. 前記レイト・セレクトは、前記アドレスのアドレス・タグ・フィールドからのビットを利用して前記選択されたコングルーエンス・クラスにおけるキャッシュ・ディレクトリ・エントリのグループを選択する、請求項12に記載の機構。
JP06025599A 1998-03-23 1999-03-08 可変キャッシュ・サイズのための改良されたキャッシュ・ディレクトリ・アドレシング方法及び装置 Expired - Fee Related JP3669555B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/046,016 US6157980A (en) 1998-03-23 1998-03-23 Cache directory addressing scheme for variable cache sizes
US09/046016 1998-03-23

Publications (2)

Publication Number Publication Date
JPH11338771A JPH11338771A (ja) 1999-12-10
JP3669555B2 true JP3669555B2 (ja) 2005-07-06

Family

ID=21941117

Family Applications (1)

Application Number Title Priority Date Filing Date
JP06025599A Expired - Fee Related JP3669555B2 (ja) 1998-03-23 1999-03-08 可変キャッシュ・サイズのための改良されたキャッシュ・ディレクトリ・アドレシング方法及び装置

Country Status (3)

Country Link
US (1) US6157980A (ja)
JP (1) JP3669555B2 (ja)
KR (1) KR100327934B1 (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6311253B1 (en) * 1999-06-21 2001-10-30 International Business Machines Corporation Methods for caching cache tags
JP2001184870A (ja) * 1999-12-27 2001-07-06 Mitsubishi Electric Corp 連想メモリ装置およびそれを用いた可変長符号復号装置
US7600058B1 (en) 2003-06-26 2009-10-06 Nvidia Corporation Bypass method for efficient DMA disk I/O
US8683132B1 (en) 2003-09-29 2014-03-25 Nvidia Corporation Memory controller for sequentially prefetching data for a processor of a computer system
US8356142B1 (en) * 2003-11-12 2013-01-15 Nvidia Corporation Memory controller for non-sequentially prefetching data for a processor of a computer system
US8700808B2 (en) * 2003-12-01 2014-04-15 Nvidia Corporation Hardware support system for accelerated disk I/O
US8356143B1 (en) 2004-10-22 2013-01-15 NVIDIA Corporatin Prefetch mechanism for bus master memory access
GB2433613B (en) * 2005-12-22 2010-10-20 Advanced Risc Mach Ltd Variable size cache memory support within an integrated circuit
US20070277025A1 (en) * 2006-05-25 2007-11-29 International Business Machines Corporation Method and system for preventing livelock due to competing updates of prediction information
US7716460B2 (en) * 2006-09-29 2010-05-11 Qualcomm Incorporated Effective use of a BHT in processor having variable length instruction set execution modes
US7797650B2 (en) 2007-09-11 2010-09-14 International Business Machines Corporation System and method for testing SLB and TLB cells during processor design verification and validation
US8006221B2 (en) * 2007-09-11 2011-08-23 International Business Machines Corporation System and method for testing multiple processor modes for processor design verification and validation
US8099559B2 (en) * 2007-09-11 2012-01-17 International Business Machines Corporation System and method for generating fast instruction and data interrupts for processor design verification and validation
US7992059B2 (en) 2007-09-11 2011-08-02 International Business Machines Corporation System and method for testing a large memory area during processor design verification and validation
US8019566B2 (en) * 2007-09-11 2011-09-13 International Business Machines Corporation System and method for efficiently testing cache congruence classes during processor design verification and validation
US20090070570A1 (en) * 2007-09-11 2009-03-12 Shubhodeep Roy Choudhury System and Method for Efficiently Handling Interrupts
US8356128B2 (en) * 2008-09-16 2013-01-15 Nvidia Corporation Method and system of reducing latencies associated with resource allocation by using multiple arbiters
US8370552B2 (en) * 2008-10-14 2013-02-05 Nvidia Corporation Priority based bus arbiters avoiding deadlock and starvation on buses that support retrying of transactions
US8698823B2 (en) 2009-04-08 2014-04-15 Nvidia Corporation System and method for deadlock-free pipelining
US8954672B2 (en) * 2012-03-12 2015-02-10 Advanced Micro Devices, Inc. System and method for cache organization in row-based memories
US9569385B2 (en) 2013-09-09 2017-02-14 Nvidia Corporation Memory transaction ordering
CN104657285B (zh) * 2013-11-16 2020-05-05 上海芯豪微电子有限公司 一种数据缓存系统和方法
KR101591583B1 (ko) * 2014-01-28 2016-02-04 한양대학교 산학협력단 캐싱 장치 및 방법

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01280850A (ja) * 1988-05-06 1989-11-13 Hitachi Ltd キヤツシユ装置およびそれを用いた情報処理装置
JPH04127339A (ja) * 1990-09-19 1992-04-28 Hitachi Ltd キヤツシユメモリシステム
JPH0512119A (ja) * 1991-07-04 1993-01-22 Nec Corp キヤツシユメモリ回路
KR960006484B1 (ko) * 1992-09-24 1996-05-16 마쯔시다 덴기 산교 가부시끼가이샤 캐쉬메모리장치
US5509135A (en) * 1992-09-25 1996-04-16 Digital Equipment Corporation Multi-index multi-way set-associative cache
US5450565A (en) * 1993-03-23 1995-09-12 Intel Corporation Circuit and method for selecting a set in a set associative cache
JPH0756815A (ja) * 1993-07-28 1995-03-03 Internatl Business Mach Corp <Ibm> キャッシュ動作方法及びキャッシュ
US5778428A (en) * 1995-12-22 1998-07-07 International Business Machines Corporation Programmable high performance mode for multi-way associative cache/memory designs
JPH1160298A (ja) * 1997-08-21 1999-03-02 Denki Kagaku Kogyo Kk セメント混和材及びセメント組成物

Also Published As

Publication number Publication date
KR19990077431A (ko) 1999-10-25
US6157980A (en) 2000-12-05
JPH11338771A (ja) 1999-12-10
KR100327934B1 (ko) 2002-03-14

Similar Documents

Publication Publication Date Title
JP3669555B2 (ja) 可変キャッシュ・サイズのための改良されたキャッシュ・ディレクトリ・アドレシング方法及び装置
US6192458B1 (en) High performance cache directory addressing scheme for variable cache sizes utilizing associativity
US7257673B2 (en) Ternary CAM with software programmable cache policies
US6594728B1 (en) Cache memory with dual-way arrays and multiplexed parallel output
US5826052A (en) Method and apparatus for concurrent access to multiple physical caches
EP0734553B1 (en) Split level cache
JP4082612B2 (ja) 複数のコヒーレンシ領域およびキャッシュ・パージのないコヒーレンシ領域間ソフトウェア・プロセス移行を備えるマルチプロセッサ・コンピュータ・システム
US5897655A (en) System and method for cache replacement within a cache set based on valid, modified or least recently used status in order of preference
EP0706133A2 (en) Method and system for concurrent access in a data cache array utilizing multiple match line selection paths
US20090083489A1 (en) L2 cache controller with slice directory and unified cache structure
US5765199A (en) Data processor with alocate bit and method of operation
US5668972A (en) Method and system for efficient miss sequence cache line allocation utilizing an allocation control cell state to enable a selected match line
JP2001195303A (ja) 機能が並列に分散された変換索引バッファ
KR19990072593A (ko) 캐시갱신프로토콜을이용한캐시할당해제방법및데이터처리시스템
US5161219A (en) Computer system with input/output cache
US6182201B1 (en) Demand-based issuance of cache operations to a system bus
JPH06318174A (ja) キャッシュ・メモリ・システム及び主メモリに記憶されているデータのサブセットをキャッシュする方法
US6240487B1 (en) Integrated cache buffers
JPH11328018A (ja) スヌ―プ・ポ―トを用いるプリフェッチ・キャッシュ問い合わせのための方法及びシステム
US5732405A (en) Method and apparatus for performing a cache operation in a data processing system
US5905999A (en) Cache sub-array arbitration
JPH10143431A (ja) マイクロプロセッサおよびコンピュータシステムにおけるデータのキャッシング方法
US6173371B1 (en) Demand-based issuance of cache operations to a processor bus
US6643742B1 (en) Method and system for efficient cache memory updating with a least recently used (LRU) protocol
US5953740A (en) Computer memory system having programmable operational characteristics based on characteristics of a central processor

Legal Events

Date Code Title Description
RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20050406

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050407

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080422

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090422

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees