JPH05241962A - 再構成可能なキャッシュ・メモリ・システム - Google Patents

再構成可能なキャッシュ・メモリ・システム

Info

Publication number
JPH05241962A
JPH05241962A JP4307222A JP30722292A JPH05241962A JP H05241962 A JPH05241962 A JP H05241962A JP 4307222 A JP4307222 A JP 4307222A JP 30722292 A JP30722292 A JP 30722292A JP H05241962 A JPH05241962 A JP H05241962A
Authority
JP
Japan
Prior art keywords
cache
data
tag
cache memory
memory
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.)
Granted
Application number
JP4307222A
Other languages
English (en)
Other versions
JPH0778762B2 (ja
Inventor
William E Coyle
ウイリアム・エドワード・コイル
David W Nuechterlein
ダヴィッド・ウィリアム・ヌエチターレン
Kim E O'donnell
キム・エドワード・オドネル
Thomas A Sartorius
トーマス・アンドリュー・サートリアス
Kenneth D Schultz
ケネス・ダヴィッド・シュルツ
Emmy M Wolters
エミー・マリオン・ウォルターズ
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 JPH05241962A publication Critical patent/JPH05241962A/ja
Publication of JPH0778762B2 publication Critical patent/JPH0778762B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/601Reconfiguration of cache memory

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)

Abstract

(57)【要約】 【目的】データ処理システムでキャッシュ・メモリを再
構成する方法及び装置を提供することにある。 【構成】再構成可能なセット連想キャッシュ・メモリ
は、メイン・メモリ・アドレスのタグ・フィールドの所
定の数の最下位ビットとメイン・メモリ・アドレスのラ
イン・フィールドを有効に組合わせることにより、2
ウェイのセット連想キャッシュ・メモリから 2ウェイ
のセット連想キャッシュ・メモリに再構成することがで
きる。タグ・フィールドの最下位ビットと再構成指示と
を論理的に組合わせることにより有効な組合せが与えら
れる。その結果、キャッシュ・メモリ・アドレスと組合
わされたタグ・フィールドの (y-x)の最下位ビットを用
いてキャッシュ・メモリの (y-x+1)の異なる構成を得る
ことができる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はキャッシュ・メモリ、特
に異なる動作要求に適応する再構成可能なキャッシュ・
メモリに関する。
【0002】
【従来の技術】データ処理システムにおいてキャッシュ
・メモリはその中央処理装置(CPU)のメモリ・アクセ
ス時間を減らすために長いあいだ用いられている。一般
にキャッシュ・メモリは相対的に高速であり、プログラ
ム命令及び(又は)データの活動状態の部分が置かれて
いる相対的に小さな容量のメモリである。一般にキャッ
シュ・メモリはメイン・メモリよりも5倍乃至10倍速
くそして一般に前記CPU自身の速度に近い。最も頻繁
にアクセスされる命令及び(又は)データを高速のキャ
ッシュ・メモリに保持することにより、平均メモリ・ア
クセス時間はキャッシュのアクセス時間に近づく。
【0003】活動状態のプログラム命令及びデータは "
参照の局所性" として知られる現象を利用することによ
りキャッシュに保持することができる。参照の局所性の
現象は大抵のコンピュータ・プログラム命令処理が複数
のループによる順次形式で進行し、CPUは特定の局所
領域のメモリの中の命令のセットを反復して参照するこ
とを見分ける。従って、ループ及びサブルーチン命令を
取出すためのメモリの参照を局所化する傾向がある。同
様に、テーブル索引ルーチン又は他の反復ルーチンは一
般に小さな部分のメモリを反復して参照するので、デー
タのためのメモリ参照も局所化される傾向がある。
【0004】参照の局所性の現象のゆえに、現在処理中
のデータ及び(又は)命令のブロックをメイン・メモリ
から記憶するための小さくて高速のキャッシュ・メモリ
を設けることがある。このキャッシュはメイン・メモリ
のサイズの小さな部分にすぎないけれども、プログラム
の参照の局所性のために大部分のメモリ要求はキャッシ
ュ・メモリ内のデータ又は命令を見つける。相対的に小
さくかつ高速のキャッシュ・メモリと、相対的に大きく
かつ低速のメイン・メモリを有するCPUはメモリ・ア
クセス命令を処理するときキャッシュを検査する。もし
キャッシュ内で所望のワード(データ又はプログラム命
令)が見つかれば、そのワードはキャッシュから読取ら
れる。もしキャッシュ内で所望のワードが見つからなけ
れば、前記メイン・メモリはそのワードを読取るために
アクセスされ、そのワードを含むワードのブロックがメ
イン・メモリからキャッシュ・メモリに転送される。従
って、その後のメモリ参照では、参照の局所性のために
キャッシュ・メモリ内で所望のワードが見つかる見込み
がある。
【0005】多くの場合、キャッシュ・メモリのパフォ
ーマンスは "ヒット率" によって測定される。CPUが
メモリを参照し、キャッシュ内でワードが見つかると "
ヒット" がカウントされる。もしキャッシュ内でワード
が見つからなければ、それはメイン・メモリの中にあ
り、 "ミス" としてカウントされる。ヒット数と、CP
Uがメモリを参照した全回数(即ちヒット数+ミス数)
との比率がヒット率である。代表的なプログラムの実行
によって得られた実験データは、ミスの場合に通常のメ
モリ・アクセス時間に探索時間が加えられるのでヒット
又はミスを判定する探索時間を正当化するためには0.
9(90%)又はそれよりも高いヒット率が必要である
ことを示している。前記高いヒット率により、データ処
理システム全体のメモリ・アクセス時間はキャッシュ・
メモリのメモリ・アクセス時間に近づき、メイン・メモ
リのメモリ・アクセス時間を5倍乃至10倍又はそれよ
りも高速にすることができる。従って、データ処理シス
テムの平均メモリ・アクセス時間はキャッシュの使用に
よりかなり改善することができる。
【0006】一般にデータ処理システムは多くの独立し
たタスクを実行するのに用いられる。タスクが開始され
た当初は、処理される命令及び(又は)データがキャッ
シュ内で見つからないので、一般にキャッシュのヒット
率は低い。このようなキャッシュはコールド・キャッシ
ュとして知られている。そして、タスクの処理が続くに
つれて、要求される命令及び(又は)データはキャッシ
ュ内で次第により多く見つけることができる。そしてヒ
ット率が非常に高くなるのでキャッシュはウォーム・キ
ャッシュと呼ばれる。
【0007】多くのデータ処理システム構成は、ヒット
率を最大にするために、キャッシュの使用をシステム制
御できる。例えば、命令またはデータだけの記憶あるい
は命令およびデータの両者の記憶にキャッシュを用いる
ことができる。同様に、重ね書きを許可せずに、キャッ
シュの中の特定のライン又はページをロックするように
キャッシュを制御できる。データ処理システム構成にお
けるキャッシュ・メモリの設計及び動作は、文献 Chapt
er 12 of the textbook entitled "ComputerSystem Ar
chitecture" by Mano, Prentice-Hall, Inc. (Second E
dition, 1982)に詳細に記述されている。後で説明する
図1乃至図4はこの文献から作られている。
【0008】メイン・メモリのブロックをキャッシュ・
メモリに写像する種々の手法が知られている。典型的な
写像の形式は2ウェイ直接写像及び4ウェイ直接写像を
含む。写像の形式はキャッシュのパフォーマンスに大き
な影響を与えうる。
【0009】メイン・メモリ及びキャッシュ・アドレス
を写像する1つの方法は直接写像である。直接写像の例
を図1により説明する。図示の数値は8進表示である。
即ち、1つの8進数は3ビットを表わす。図1で、15
ビット(5個の8進数)のメイン・メモリ・アドレス
は、最下位の9ビット(3個の8進数)から成るインデ
ックス・フィールド及び残りの6ビット(2個の8進
数)から成るタグ・フィールドの2つのフィールドに分
割される。全15ビットのアドレス、即ちタグ・ビット
及びインデックス・ビットの組合わせがメイン・メモリ
をアクセスするために必要であるが、キャッシュ・メモ
リをアクセスするためには9ビットのインデックスだけ
が必要である。一般的な場合はキャッシュ・メモリに2
個のワードが与えられ、メイン・メモリに2個のワ
ードが与えられる。この場合、nビットのメイン・メモ
リ・アドレスは、kビットのインデックス・フィールド
及び(n−k)ビットのタグ・フィールドの2つのフィー
ルドに分割できる。直接写像キャッシュは、kビットの
インデックス・フィールドと、メイン・メモリをアクセ
スする(n−k)ビットのタグ・フィールドと、キャッシ
ュ・メモリをアクセスするkビットのインデックスとの
組合せによって形成されるnビット・アドレスを用い
る。
【0010】図2で、キャッシュに記憶された各ワード
はデータ・ワード及びそれに連結されたタグから成る。
プログラム命令、データ、又はプログラム命令及びデー
タの両者をキャッシュ・メモリに記憶できることが当業
者には理解されるであろう。説明を簡単にするために、
キャッシュにはデータが記憶されると仮定する。データ
及びそれに連結されたタグを記憶することにより新しい
データ・ワードがキャッシュに記憶される。この例で
は、12ビットのデータ・ワードは4個の8進数によっ
て表示され、連結された6ビットのタグは2個の8進数
によって表示される。キャッシュをアドレス指定するた
めのキャッシュ・メモリはメイン・メモリ・アドレスの
kビットのインデックス・フィールドを用いてアクセス
される。そしてメイン・メモリ・アドレスの(n−k)ビ
ットのタグ・フィールドは、kビットのキャッシュ・ア
ドレスにより識別されたキャッシュ・メモリ・ロケーシ
ョンに記憶されたワードと連結されたタグと比較され
る。もし2つのタグが一致すれば、ヒットが生じ、その
データ・ワードはキャッシュ内にある。2つのタグが一
致しない場合には、ミスが生じるので、所要のデータ・
ワードがメイン・メモリから読取られ、適切な置換アル
ゴリズムを用いて連結されたタグと一緒にキャッシュ・
メモリに記憶されねばならない。
【0011】図2では、直接写像の特定の例についても
説明する。アドレス、データ及びタグの値は8進数で表
示される。1220の値を有するワードはメイン・メモリ・
アドレス00000 に記憶されるとともに、キャッシュ・メ
モリのインデックス・アドレス000 にも記憶される。タ
グ00はデータ1220に連結されてキャッシュ・メモリに記
憶される。CPUはメイン・メモリ・アドレス02000 に
記憶されたデータのアクセスを要求し、メイン・メモリ
・アドレス02000 に対応するキャッシュ・メモリのイン
デックス・アドレス000 はキャッシュ・メモリをアクセ
スするのに用いられる。そしてキャッシュ・アドレス00
0 に記憶されたデータ・ワードに連結されたタグ00はメ
イン・メモリ・アドレス02000 のタグ02と比較される。
2つのタグは等しくないから、ミスが生じてメイン・メ
モリがアクセスされねばならない。そしてデータ・ワー
ド5670はメイン・メモリ・アドレス02000でCPUによりア
クセスされ、データ・ワード及び連結されたタグ、この
場合、キャッシュ・メモリで、適切な置換アルゴリズム
により選択されたキャッシュ・メモリ・アドレスにデー
タ5670及びタグ02が最終的に記憶される。
【0012】図3で、キャッシュ・メモリの完全な連想
写像について説明する。この連想写像に関する説明のた
めの数値は全て8進数で表示される。15ビットのCPU ア
ドレスが引数レジスタに記憶される。連想キャッシュ・
メモリはメイン・メモリ・アドレスとデータ・ワードを
どちらも記憶するので、メイン・メモリからのワードは
キャッシュ内の任意のロケーションに記憶できる。動作
中、15ビットのメイン・メモリ・アドレスは引数レジス
タにロードされ、連想キャッシュ・メモリに記憶された
メイン・メモリ・アドレスと引数レジスタの内容が比較
される。もし引数レジスタの内容がキャッシュ・メモリ
に記憶されたメイン・メモリ・アドレスの1つに等しけ
れば、キャッシュ・メモリに記憶された前記一致するメ
イン・メモリ・アドレスに連結された12ビット(4個の
8進数)のデータ・ワードがCPU によりアクセスされ処
理される。両者が一致しない、即ち前記比較でミスが起
きる場合には、メイン・メモリがアクセスされ、適切な
置換アルゴリズムを用いてメイン・メモリからのアドレ
ス/データの対が連想キャッシュ・メモリにロードされ
ねばならない。
【0013】図4で、キャッシュ・メモリのセット連想
写像を説明する。セット連想写像はキャッシュ・メモリ
で同じインデックス・アドレスに2つ以上のワードを記
憶することを可能にする。従って、キャッシュ・メモリ
・ワードの各々はメイン・メモリからの2つ以上のワー
ドを同じキャッシュ・アドレスに記憶する。キャッシュ
・メモリの同じインデックス・アドレスに記憶された別
個のデータ・ワードの各々はタグと連結される。キャッ
シュの1つのワードに記憶されたタグ/ワード対の数が
"セット" を構成する。2つのデータ・ワード及びそれ
らに連結されたタグ、即ち2つのタグ/ワードの対がキ
ャッシュの各インデックス・アドレスに記憶されるの
で、図4にはサイズ2のセットが示されている。
【0014】図4で、6ビットのタグ・フィールドの各
々が2個の8進数として表示され、12ビットのデータ・
ワードの各々が4個の8進数として表示される。18ビッ
トのタグ/データ対が2つある、即ちセットのサイズは
2であるから、図4の例は36ビットのキャッシュ・メモ
リ・ワードを有する。
【0015】キャッシュの1つのインデックス・アドレ
スに複数のキャッシュ・メモリ・ワードを置くことがで
きる。1つのキャッシュ・アドレスに複数のキャッシュ
・ワードを有するキャッシュ・メモリはマルチウェイ・
キャッシュと呼ばれる。従って、もし各キャッシュ・ア
ドレスに2つのキャッシュ・ワードがあれば、そのキャ
ッシュは2ウェイ連想キャッシュ・メモリである。
【0016】図4の例は2 = 512個のキャッシュ
・ワードをアドレス指定する9ビットのキャッシュ・ア
ドレスを与える。従って、キャッシュ・メモリのサイズ
は 512 x 36 である。各キャッシュ・ワードは2つのメ
イン・メモリ・ワードを含むから、このキャッシュはメ
イン・メモリから1024ワードを記憶する。一般に、
セット・サイズkを有するセット連想キャッシュはキャ
ッシュの各ワードにメイン・メモリのk個のワードを収
容する容量を有する。
【0017】図4に示すセット連想キャッシュ・メモリ
を実際の値を参照して説明する。メイン・メモリ・アド
レス01000 及び02000 に記憶されたワードはキャッシュ
・メモリ内のインデックス・アドレス000 に記憶され
る。同様に、メイン・メモリ・アドレス02777 及び0077
7 に記憶されたワードはキャッシュ・メモリ内のキャッ
シュ・アドレス777 に記憶される。従って、最下位の9
ビット、即ち3個の最下位の8進数はキャッシュ・メモ
リのインデックスである。より上位の次の2個の8進数
として表示された、より上位の次の6ビットはキャッシ
ュ・メモリに記憶される各データ・ワードに連結された
タグである。CPU はキャッシュ・メモリ・アドレスとし
てメイン・メモリ・アドレスのインデックス・フィール
ドを用いることによりメモリ参照を処理する。そしてメ
イン・メモリ・アドレスのタグ・フィールドは、連想キ
ャッシュ・メモリ内の特定のキャッシュ・アドレスに記
憶された各データ・ワードに連結された各タグと比較さ
れる。もし比較結果が一致であれば、即ちヒットが得ら
れれば、CPUはそのデータ・ワードを用いる。一致が
得られない、即ちミスが現われる場合は、メイン・メモ
リをアクセスするためにメイン・メモリ・アドレスが用
いられ、メイン・メモリからアクセスされたデータ・ワ
ードが適切な置換アルゴリズムを用いてキャッシュにロ
ードされる。
【0018】図5は4ウェイ・セット連想キャッシュを
示す。この場合、同じキャッシュ・アドレスを持つ4個
のキャッシュ・ワード、即ち4セットがある。各セット
は4ラインのセット・サイズであり、各キャッシュ・メ
モリ・ラインは4個の32ビットのメイン・メモリ・ワ
ードを記憶する。もう1つの例が図6に示される。この
場合、各セットが8のサイズを有する2ウェイ・セット
連想キャッシュが示される。図5に示す4ウェイ・セッ
ト連想キャッシュ及び図6に示す2ウェイ・セット連想
キャッシュの中のデータ・セルの各々は3状態ドライバ
(TSD)を有する。3状態ドライバはデータ・セルの出
力を高インピーダンス状態に維持するので、多くの出
力、即ちデータ・セルから共通バス・ラインへの直接配
線接続を可能にし、1つの出力、即ち1つのデータ・セ
ルだけが任意の所与の時点で共通バスにアクセスする。
3状態ドライバの動作は一般に当業者に知られている。
【0019】特定のアプリケーションのパフォーマンス
を増すために、直接の、2ウェイ及び4ウェイ写像を含
む異なるアプリケーションに異なる構成のキャッシュ・
メモリが用いられる。例えば、データ及び命令メモリ・
アクセス・パートナーの間に存在する相違は、より小さ
い、分割された(即ち命令及びデータ)キャッシュがよ
り高いヒット率を達成することを可能にする。また、2
ウェイ連想キャッシュはたいていは命令キャッシュに適
するが、4ウェイ連想キャッシュはたいていはデータ・
キャッシュのパフォーマンスを向上させる。
【0020】構成によっては、処理、例えば命令又はデ
ータのタイプにより他の構成よりもすぐれたパフォーマ
ンスを与えるけれども、最良のパフォーマンスを得るの
に必要な構成のタイプは処理されるアプリケーション・
コードによる。よって、キャッシュのサイズ/タイプ/
ウェイを再構成する最構成可能なキャッシュが必要であ
る。
【0021】キャッシュ・メモリを再構成するために多
くの手法が用いられた。例えば、米国特許第48538
46号は、単一のキャッシュ制御を、異なるプロセッサ
の別個のディレクトリ及び事前取出しを有する二重のチ
ャネルに仮想化するロジックを有するバス拡張装置を開
示している。前記特許は、ウェイの数が異なる、キャッ
シュ・メモリ内のセットの数のプログラマビリティを提
供するとともに、構成に基づいたキャッシュ・ディレク
トリ動作の変更を可能にする。キャッシュ・ディレクト
リの動作は、キャッシュを、1つよりも2つのプロセッ
サにサービスする2つのキャッシュに分割するように変
更される。また、前記特許は複数の同時比較を可能にし
かつアドレス・ビットの復号に基づいてセットの数を調
整する。前記特許はキャッシュのセット・サイズ及びセ
ットの数を1から63まで調整することができる。前記
特許はキャッシュ・メモリのセット・サイズ及びセット
の数の再構成を開示しているが、前記特許のキャッシュ
は実際には4ウェイ・セット連想のままである。
【0022】キャッシュ・メモリを構成するもう1つの
手法はヨーロツパ特許出願第325420号に開示され
ている。前記特許出願は、構成がキャッシュの任意選択
のビットのセッティングによる、マルチ構成可能なキャ
ッシュを開示している。マルチ構成可能なキャッシュは
データ・キャッシュ又は命令キャッシュとして用いると
ともに2ウェイ・セット連想メモリ又は直接写像された
キャッシュ・メモリとして構成することができる。第1
の構成ではプログラマブル・キャッシュ装置内の連結さ
れたメモリ・アレイを見つけるため、そして第2の構成
ではプログラマブル・キャッシュ装置の外部の連結され
たメモリ・アレイを見つけるために2つの異なる構成が
与えられる。
【0023】キャッシュ再構成に対する他のアプローチ
はメモリ・インターリービング及び(又は)セット・サ
イズ/ライン長変化に適応させる。例えば、米国特許第
4788656号はキャッシュ・メモリ及び前処理プロ
グラム(pre-processor) を開示している。この特許はラ
イン・サイズを16ビットから8ビットに動的に変える
能力を含むライン・サイズの再構成を提供するので、キ
ャッシュのサイズは2k又は4kのどちらでもよい。こ
のライン・サイズの再構成は8ビット幅の経路を有する
プロセッサ/メモリに適応する。この特許では、取得モ
ードと検索モードを見分けることにより8ビットのライ
ンから16ビットのラインに切替えるのに必要なメモリ
・インターリービングが行なわれる。モードが変えられ
ると、アドレス・ラインA1乃至A11はRAMアドレ
ス・ラインA0乃至A10に接続され、アドレス・ライ
ンA0はチップ・イネーブル・ラインに接続される。こ
れは取得モード中の2kバイト x 16ビットの空間か
ら、検索モード中の4kバイト x 8ビット空間への再
構成を可能にする。この場合、前に定義された16ビッ
ト・ワードの上位及び下位のバイトはインターリーブさ
れる。
【0024】米国特許第4430712号及び同第45
03501号はキャッシュのセット/ラインのサイズを
変えるための適応性のあるキャッシュ・メモリ空間定義
域分割を開示している。ライン・サイズとファイル・レ
コード・サイズを合わせるために可変セット・サイズ/
ライン長を有する直接写像キャッシュが提供される。こ
れは可変長ライン直接写像キャッシュを提供する。
【0025】メモリをインターリーブしライン・サイズ
を変えることによりマルチ構成可能なキャッシュ・メモ
リを取得する別の手法が米国特許第4195342号に
開示されている。この特許のマルチ構成可能なキャッシ
ュ・システムは、メモリから1アイテム又は2アイテム
を検索するために構成に基づいてキャッシュのライン・
サイズを変えるマルチ構成可能なキャッシュ記憶制御装
置を開示している。この方法は2ウェイ・セット連想キ
ャッシュをつくるメモリのインターリービングも可能に
する。
【0026】2ウェイでインターリーブされるセット連
想メモリをつくるために2つのメモリ部分をインターリ
ーブするメモリ・インターリービング手法が米国特許第
4736293号に開示されている。この特許はセット
連想キャッシュ・メモリの再構成可能性には取組まず、
むしろ慣習的なブロック・アプローチの代わりに微細な
インターリービング用いてセットを分割することにより
微細なインターリービングの効率を保持する機構を設け
る。この場合、セット・サイズに等しい連続するメモリ
のブロックがセットに割当てられる。
【0027】最後に、IBM Technical Disclosure Bulle
tin, Volume 23, No. 9, February1981 by Hrustich an
d Sitler にキャッシュ再構成を可能にする手法が開示
されている。この手法は、ハードウェア障害から回復す
るために、キャッシュ・メモリの連想性を動的に変え
ず、むしろアドレス・ラインを用いて分割可能なキャッ
シュを設ける。これは全キャッシュの一部分だけを用い
て行なわれ、一定のアドレス・ライン(A8,A9)が安
定した状態に保持される。キャッシュの一部分でハード
ウェア障害が検出される場合には、キャッシュの未使用
部分の使用を可能にするために、これらのアドレス・ラ
インが変更される。このタイプの再構成はキャッシュを
仮想部分に分割し1つの部分の使用だけを可能にする。
選択された部分が機能しないことが分かれば、異なる部
分が用いられる。前記手法で開示されたキャッシュ構成
は恒久的な8ウェイ連想キャッシュ・メモリを提供す
る。
【0028】前記調査によれば、従来の技術では、キャ
ッシュのマルチウェイ再構成可能性が連想性を変えるこ
とを可能にするためにセット連想キャッシュ・メモリを
分割する方法はまだ確立されていないことを示す。更
に、従来の技術では、キャッシュ・メモリを効率的に再
構成する方法又は装置が提案されていない。
【0029】
【発明が解決しようとする課題】本発明の第一の目的は
データ処理システムでキャッシュ・メモリを再構成する
方法及び装置を提供することにある。
【0030】本発明の第二の目的はデータ処理システム
でマルチウェイ・セット連想キャッシュ・メモリのウェ
イの数を再構成する方法及び装置を提供することにあ
る。
【0031】本発明の第三の目的はオーバーヘッドをほ
とんど用いずにデータ処理システムのマルチウェイ・セ
ット連想キャッシュ・メモリを効率的に再構成する方法
及び装置を提供することにある。
【0032】
【課題を解決するための手段】これら及び他の目的は本
発明に従ってキャッシュ内のインデックスに関する最下
位の少なくとも1つのタグ・ビットを用いてマルチウェ
イ連想キャッシュのウェイの数を再構成することにより
達成される。換言すれば、キャッシュは最大のウェイ
数、即ち最大のセット数に分割される。最下位の少なく
とも1つのタグ・ビットはライン・ビットと組合わされ
キャッシュ内のインデックスとして用いられる。従っ
て、複数の小さなキャッシュ、即ちセットは論理的に組
合わされ、下位のタグ・ビットを上位のライン・ビット
として扱うことにより数が少なく大きさが増したキャッ
シュになる。
【0033】本発明の1つの実施例では、マルチウェイ
連想キャッシュ・メモリ内の複数のキャッシュ・メモリ
・アドレスの各々に複数のデータ・エレメントが記憶さ
れる。マルチ・ビット・タグは各データ・エレメントと
連結される。タグ応答キャッシュ・メモリ・アドレッシ
ング制御装置は、キャッシュを再構成するためにキャッ
シュ・メモリ・アドレスに連結されたマルチ・ビット・
タグのうちの少なくとも1つのタグ・ビットに応答す
る。この制御装置は、マルチ・ビット・タグのうちの少
なくとも1つのタグ・ビットをキャッシュ・メモリ・ア
ドレスと組合わせることにより、所与のキャッシュ・メ
モリ・アドレスに記憶された複数のデータ・エレメント
から少なくとも1つのデータ・エレメントを選択する。
換言すれば、前記制御装置は、最下位のタグ・ビットに
基づいて、同じキャッシュ・メモリ・アドレスを有する
複数のセットの各々から、複数のデータ・ワードを持つ
1つのラインを選択する。この選択は論理的にマルチウ
ェイ連想キャッシュを組合わせて、サイズがより大き
く、ウェイの数がより少ない連想キャッシュにする。
【0034】再構成可能なウェイのマルチウェイ連想キ
ャッシュ・メモリを含むデータ処理システムは、データ
・アイテムが相対的に低速で記憶され検索されるメイン
・メモリを備える。データ処理システムは下位のメイン
・メモリ・アドレス・ビットに対応するマルチ・ビット
・アドレスを有するアドレス可能な連想キャッシュ・メ
モリも備える。上位のメイン・メモリ・アドレス・ビッ
トに対応する別個のマルチ・ビット・タグは、連想キャ
ッシュ・メモリでキャッシュ・メモリ・アドレスに記憶
された各キャッシュ・データ・ラインと連結される。タ
グ応答キャッシュ・メモリ・アドレス制御装置はキャッ
シュ・メモリ内のデータを再構成されたキャッシュ・メ
モリ・アドレスに記憶する。キャッシュ・メモリ・アド
レスは、下位のメイン・メモリ・アドレス・ビットを、
マルチ・ビット・タグの最下位の少なくとも1ビットと
組合わせることにより再構成される。
【0035】再構成可能なマルチウェイ制御装置は最小
限の追加回路で実現できるので、データ処理システムに
付加されるオーバーヘッドは最小である。特に、メイン
・メモリ・アドレスの最下位のタグ・ビットの少なくと
も1つ及び再構成指定に応答してディレクトリ(タグ)ア
レイの一部分を選択的に使用禁止する回路が設けられ
る。この回路はディレクトリ(タグ)アレイの一部分を選
択的に使用禁止するために1つのインバータ・ゲートと
第1のセットの2つのANDゲートとを含む。第1のセ
ットに接続された第2のセットの2つのANDゲートは
第1のセットのANDゲートでつくられた選択的ディレ
クトリ使用禁止回路の動作を選択的に阻止することによ
り、全ディレクトリ(タグ)アレイの動作を阻止する。特
に、ディレクトリ(タグ)アレイ内の所与のキャッシュ・
アドレスに記憶されたタグとメイン・メモリ・アドレス
のタグ・フィールドを比較するために比較ブロックが設
けられる。従って、再構成可能なウェイ、連想キャッシ
ュが効率的に提供される。
【0036】
【実施例】図7で、タグ応答キャッシュ・メモリ・アド
レス制御装置及び複数のウェイの連想キャッシュ・メモ
リを備えるデータ処理システムについて説明する。デー
タ処理システムの制御の下にタグ応答キャッシュ・メモ
リ・アドレス制御装置はマルチウェイ・セット連想キャ
ッシュのウェイの数を変えることができる。
【0037】図7に示すように、データ処理システム10
0はメイン・メモリ104及びマルチウェイ連想キャッシュ
・メモリ106と通信する中央処理装置(CPU) 102を備え
る。当業者は、CPU 102 が多重処理方式の複数のプロセ
ッサを備えうることを理解するであろう。多くの典型的
な実施例では、メイン・メモリ104 はダイナミック・ラ
ンダム・アクセス・メモリ(DRAM)を含み、キャッシュ・
メモリ106 はスタティック・ランダム・アクセス・メモ
リ(SRAM)を含む。当業者にはよく分かっているように、
一般にキャッシュ・メモリ106はメイン・メモリ104より
も小さいが、メイン・メモリ104よりも高速である。一
般にキャッシュ・メモリ106はバイト単位ではメイン・
メモリ104よりも高価である。
【0038】CPU 102 は演算論理装置とCPU 102 の構成
装置ならびに他の構成装置の間でデータを転送するため
の通信手段とを備えることも当業者には明らかである。
【0039】データ/命令ならびにタグは連想キャッシ
ュ・メモリ106 に記憶される。データ、プログラム命令
又はデータ及びプログラム命令はキャッシュ・メモリに
記憶できる。以下、キャッシュに記憶されたデータ及び
(又は)命令は "データ" と呼ぶ。データ及び連結され
たタグは単一の連想キャッシュ・メモリ又は別個のキャ
ッシュ・メモリのどちらかに記憶できる。どちらのキャ
ッシュ・メモリの構成も当業者にはよく知られている。
メイン・メモリのワードのアドレスはCPU 102で維持さ
れる。メイン・メモリ・アドレスはメイン・メモリに記
憶されたデータのロケーションを識別するメイン・メモ
リ・アドレス・レジスタ 112に又は他の既知のアドレス
を記憶する形式で維持することができる。
【0040】メイン・メモリ・アドレス・レジスタ112
に記憶されたメイン・メモリ・アドレスは幾つかの構成
要素に分割できる。一般に、下位のメイン・メモリ・ア
ドレス・ビットはキャッシュ・メモリ・アドレス、即ち
ラインに対応し、上位のメイン・メモリ・アドレス・ビ
ットは、メイン・メモリ・アドレスに記憶されたメイン
・メモリ・ワードと連結される、最終的には対応するキ
ャッシュ・メモリ・アドレスに記憶されたメイン・メモ
リ・ワードに連結されるタグに対応する。特に、メイン
・メモリ・アドレス・ビット28-31 は所与のキャッシュ
・メモリ・アドレスに記憶された多くのメイン・メモリ
・ワードの1つを識別する。メイン・メモリ・アドレス
・ビット21-27 はキャッシュ・メモリ内のラインをアク
セスするために用いられるキャッシュ・アドレスであ
る。メイン・メモリ・アドレス・ビット5-20は最終的に
メイン・メモリ・アドレス21-27 のキャッシュ・アドレ
スに記憶されるメイン・メモリ・ワードに対応するタグ
を表わす。最後に、最上位メイン・メモリ・アドレス・
ビット0-4 はキャッシュ可能か又はキャッシュ不可能か
を判定し、キャッシュ・アクセスを可能にするか又は使
用禁止にするように復号される。
【0041】連想キャッシュ・メモリをアクセスするた
めに、タグ応答キャッシュ・メモリ・アドレス制御装置
120は下位のメイン・メモリ・アドレス・ビット21-27、
即ちライン・フィールドをメイン・メモリ・アドレスの
タグ・フィールドの少なくとも1つの最下位ビットと組
合わせる。キャッシュがその最大のウェイで構成される
場合には、タグ・フィールドのビットはライン・フィー
ルドと組合わされない。本発明のタグ応答キャッシュ・
メモリ・アドレス制御装置120 によるこの組合せはキャ
ッシュ再構成を可能にし、1つの連想キャッシュ・メモ
リが、異なる方法で、より小さなサイズ、より多くのウ
ェイの連想キャッシュ・メモリから、より大きなサイ
ズ、より少ないウェイの連想キャッシュ・メモリに構成
されることを可能にする。
【0042】従って、本発明は、y>x として、2
ェイの連想性、即ち最大の連想性のキャッシュを構成す
ることにより、2ウェイから2ウェイまで連想性を変
更できるようにサポートする再構成可能な連想キャッシ
ュ・メモリを提供する。異なる構成の可能な数は(y-x+
1) に等しい。可能な構成の任意の1つを得るために連
想キャッシュ・メモリを再構成するのに必要なビットの
数は、整数に丸められたlog(y-x+1)で与えられる。更
に本発明は有効なアドレスのタグ・フィールドの(y-x)
個の最下位ビットを用いてキャッシュのアドレス指定を
限定する。この場合、前記タグ・フィールドはメイン・
メモリ・アドレス・ビット5-20である。キャッシュ・メ
モリ構成に関係なくマルチウェイ再構成可能なキャッシ
ュ・メモリをアクセスするために、これらのタグ・フィ
ールドの (y-x)個の最下位ビットは、メイン・メモリ・
アドレスのライン・フィールド、即ちキャッシュ・メモ
リ・アドレスと組合わされる。
【0043】ここで本発明の再構成可能な連想キャッシ
ュ・メモリの実施例について詳細に説明する。特に、連
想4ウェイ・キャッシュ・メモリとしての動作について
最初に説明し、続いて本発明のシステムの2ウェイ連想
キャッシュ・メモリとしての動作について説明し、最後
にキャッシュ・メモリを4ウェイから2ウェイに再構成
するための設計について説明する。
【0044】図8及び図9は、キャッシュ・アレイ20
0、ディレクトリ(タグ)アレイ210、タグ応答キャッシュ
・メモリ・アドレス制御装置 120、第1ステージ多重記
憶制御装置(multiplexor)230及び第2ステージ多重記憶
制御装置235 で構成される本発明のマルチウェイ連想キ
ャッシュ・メモリ106 を示す。キャッシュ・アレイ 200
は実際のディレクトリ又はプログラム命令を記憶でき
る。簡略化のために、キャッシュ・アレイ200の内容は
データであると仮定する。キャッシュ・アレイ200は各
行が4列から成る4行のアレイ、即ち4x4のアレイに
配列された16個のデータ・セルとして示される。デー
タ・セル 200a-200p の各々は128のワードを記憶するこ
とができ、各ワードの長さは32ビットである。従って、
各データ・セルは 128x1 セルである。各行のデータ・
セル、即ち "セット"として知られるデータ・セル200a-
d、200e-h、200i-l及び200m-p は128ラインのデータを
記憶し、各ラインは4ワードから成る。7ビット・アド
レスは各セットの所与のライン、即ちデータ・セルの行
をアクセスする。従って、1つの7ビット・アドレスは
キャッシュ・アレイ200 中の4セットの各々から1つの
データ・ラインを索引する。前述のように、各データ・
セルは3状態(tri-state) ドライバを備え、複数のデー
タ・セルを1つのデータ経路に連結することができる。
前述の数字は説明のために用いられているものであり、
任意のサイズ及び構成のキャッシュの使用が可能である
ことが当業者には理解されるであろう。
【0045】[4ウェイ連想キャッシュ・メモリ]図9
で、4ウェイ連想キャッシュ・メモリの動作を説明す
る。キャッシュ・アレイ200 はセットA、B、C及びD
の4つのセットから成り、各セットはデータ・セルの行
200a-d、200e-h、200i-l及び200m-pの1つにそれぞれ対
応する。動作中、32ビットのメイン・メモリ・アドレ
スのアドレス・ビット(ADDR)21-27 はセットA、B、C
及びDの各々のインデックスとして用いられ、4つのセ
ットの各々から、1つのライン、即ち4ワードをアクセ
スする。7ビット・インデックスは 2 = 128 の異な
るラインをアドレス指定することができる。特定のセッ
トに対応するデータ・セルからアクセスされたワードの
各々は同じデータ経路で出力される。前述のように、各
セットのデータ・セルが1つのデータ経路をアクセスで
きるように、各データ・セルに3状態ドライバが設けら
れる。従って、ADDR 21-27によりセットAの中のデータ
・セル200a-dからアクセスされた4つの32ビット・ワー
ドはデータ経路202aで転送される。同様に、セットBの
中のデータ・セル 200e-h からアクセスされた4つの3
2ビット・ワードはデータ経路202bで転送され、セット
Cの中のデータ・セル 200i-l からアクセスされた4つ
の32ビット・ワードはデータ経路202cで転送され、そし
てセットDの中のデータ・セル 200m-p からアクセスさ
れた4つの32ビット・ワードはデータ経路202dで転送
される。
【0046】セットA、B、C及びDの各々からアクセ
スされた4つのワードのラインは、入力ライン 231a-d
で第1ステージ選択装置(多重記憶制御装置)230 に入力
される(第1ステージ選択)。中央処理装置が処理中に所
望する特定のデータが現にキャッシュ・メモリに記憶さ
れていることを示す、タグの比較に基づいたヒットの結
果により選択ライン 232a-d が活動化される。任意の所
与の時点で4つの選択ライン 232a-d のうちの1つだけ
を活動化させることができる。しかしながら、もしヒッ
トが見つからなければ、所与の時点で4つの選択ライン
がどれも活動化されない。入力ライン 231a-d で入力さ
れたデータのラインの1つが選択ライン232a-d により
選択された結果として第1ステージ選択(MUX)装置230の
出力233が得られる。
【0047】第1ステージ選択装置230の出力233は4つ
のセットA、B、C及びDの1つからのデータのライン
である。このラインは4つの32ビット・ワードから成
る。この出力は第2ステージ選択(MUX)装置(多重記憶制
御装置)235に入力される。第2のステージ選択装置235
の出力は第2のステージ選択装置に入力された4つのワ
ードのラインから選択されるバイト又はワードである。
この選択は、バイトを選択するためにワード、即ちメイ
ン・メモリ・アドレスのアドレス・ビット(ADDR)28-31
を選択するために、アドレス・ビット(ADDR)28-29に接
続されている前記選択されたラインの結果である。換言
すれば、もし1つのバイトが要求されれば、第2ステー
ジ選択装置235 に入力されたデータのラインからバイト
を選択するために全4ビット、即ちADDR 28-31が用いら
れる。もし全32ビット・ワードが要求されれば、第2
のステージ選択装置235 に入力されたデータのラインか
ら1つのワードを選択するためにメイン・メモリ・アド
レスのADDR 28-29だけが用いられる。
【0048】図8で、タグ・アレイ210 の動作について
説明する。キャッシュ・アレイ 200でADDR 21-27によっ
て与えられたアドレスに記憶されたデータに連結された
タグはタグ・アレイ210 で同じADDR 21-27によって与え
られたアドレスに記憶される。説明を容易にするため
に、タグ・アレイ210 は2つのサブアレイ、即ち上部サ
ブアレイ210a-b及び下部サブアレイ210c-dに分割され
る。タグ・アレイは4つの部分、即ち第1、第2、第3
及び第4の部分を有する1つのアレイとして示されるこ
ともある。
【0049】図8に示す特定の構成では、タグ・アレイ
は2つのサブアレイ、即ち上部サブアレイ 210a-b 及び
下部サブアレイ210c-dに分割され、各サブアレイは左右
の部分に分割される。タグ・アレイ部分 210a、210b、2
10c 及び 210d の各々は、メイン・メモリ・アドレスの
アドレス・ビット5-20の16ビット・タグ、即ち特定のデ
ータ・エレメントのタグ・フィールドを記憶する。各タ
グ・アレイ部分 210a-210d は128タグを記憶できる。従
って、タグ・アレイ210a、210b、210c及び210dの部分に
記憶された各タグは、キャッシュ・アレイ200 の関連し
たセットA、B、C及びDの中の7ビット・アドレス(A
DDR21-27) により索引された同じアドレス・ロケーショ
ンに記憶された特定の4つのデータ・ワード、即ちライ
ンと連結される。例えば、タグ・アレイ210 の部分210a
でアドレス45に記憶された特定の16ビットは、キャッシ
ュ・アレイ200 でデータ・セル200a-d、即ちセットA
で、アドレス45に記憶された4つのデータ・ワード、即
ちラインと連結される。
【0050】タグ・アレイは状態ビット、即ち"汚染"ビ
ット、"有効"ビット及び"置換識別"ビットも含む。置換
識別ビットは所望の置換アルゴリズム、例えばLRU(最長
時間未使用)によって決まる。状態ビット動作は当業者
には知られているが、以下に簡単に説明する。有効ビッ
トは特定のタグに連結されたデータがそのタグに有効で
あるかどうかを示す。有効ビットはタグ・アレイ210 の
部分 210a-d の各々について維持される。汚染ビット
は、データが不良かかどうか、即ちメイン・メモリに記
憶されたデータを更新するためにキャッシュ・データの
値をメイン・メモリに再書込みする必要があるかどうか
を示す。最後に、メイン・メモリ内のワードがアクセス
されてキャッシュに移されるとき、キャッシュのロケー
ションを書込むべきかどうかを判定するために置換識別
ビットが用いられる。換言すれば、この"置換されるべ
き"フィールドは、キャッシュ・タグ・アレイの中のど
のフィールドが重ね書きされ、またデータのキャッシュ
・アレイの中のどのフィールドが重ね書きされるべきか
を制御する。状態ビットは、別個の状態アレイに維持し
かつタグ・アレイの部分として維持することができる。
状態ビットは、タグ・アレイからのタグと同じ時点でア
クセスされる。置換アルゴリズムによって決められた置
換識別ビットは、ミス、即ち全てのヒット・ビットと有
効なビットとの論理積(AND)が "0" に等しい場合に用
いられる。
【0051】図8のタグ・アレイで、タグ・アレイから
のタグの選択動作を説明する。図示のように、タグ・ア
レイから2対のタグ、即ちタグ・アレイの部分 210a-b
からの対とタグ・アレイの部分 210c-d からの対とがア
クセスされる。各対はメイン・メモリ・アドレスの ADD
R 21-27 によりアクセスされる。タグの各対の16ビット
・タグはタグ・アレイ部分 210a-d からそれ自身のデー
タ経路で別個に比較装置に転送される。タグ・アレイの
読取り又はアクセスの各々は、つねにタグ・アレイから
4つのタグの出力を生じる。比較ブロック220は4つの
比較装置 220a、220b、220c 及び 220dを含む。4つの
比較装置 220a-d の各々への入力はタグ・アレイ210 か
らの4つの16ビット・タグの1つ及びメイン・メモリ
・アドレスのADDR 5-20 からの16ビット・タグ・フィ
ールドである。各比較装置の出力は、タグ・アレイから
選択された特定のタグとメイン・メモリ・アドレスから
のタグとが等しいかどうか、即ちヒットが生じたかどう
かを表わす1つのビットである。4つの比較ロジック機
能からの1ビット出力の1つだけが "1" の値を持ちう
る。換言すれば、大抵は、比較ロジック機能220a-dの1
つだけがメイン・メモリ・アドレスのタグ・フィールド
(ADDR5-20)とタグ・アレイからのタグとの一致を生じ
る。アドレス比較ロジック機能の出力は1ビットであ
り、大抵は1ビット出力の1つだけが "1" に等しい、
即ち HIT(ヒット)=1である。
【0052】比較装置220a-dの4つの1ビット出力の各
々とそれらの特定の有効ビット(図示せず)との論理積
が、タグに連結されたデータが実際に有効かどうかを判
定するために行なわれる。4ヒット・ラインのうちの1
つだけが活動状態である、即ち"1"の値を持ちうる。4
ビット・ラインは、データのキャッシュ・アレイ 200の
4つのセットからアクセスされた4ラインのうちの1つ
を選択する第1ステージ選択装置230の選択ビットとし
て入力される。
【0053】タグ・アレイの上部サブアレイ 210a-b 及
び下部サブアレイ 210c-d の各々は書込みイネーブル・
ラインを有する。書込みイネーブル・ライン機能は後に
再構成制御装置を参照して説明する。
【0054】[2ウェイ連想キャッシュ・メモリ]2ウ
ェイ連想キャッシュが4セットよりもむしろ有効に2セ
ットを有する外は、2ウェイ連想キャッシュのキャッシ
ュ・アレイ200 は4ウェイ連想キャッシュと同じであ
る。2ウェイ連想キャッシュの2セットの各々は2行(r
ow) のデータ・セルを含む。従って、2ウェイ連想の場
合、データ・セル 200a-d で構成された第1の行はセッ
トA1であり、データ・セル 200i-l で構成された第3の
行はセットA2である。セットA1とセットA2の組合せがセ
ットAをつくる。データ・セル200e-hで構成された第2
の行はセットB1であり、データ・セル 200m-p で構成さ
れた第4の行はセットB2である。セットB1とセットB2の
組合せがセットBをつくる。よって、セットA及びセッ
トBの各々は128 x 1 ワードの8データ・セルを含む。
しかしながら、各セットは2行から成るので、各セット
には256 のラインがある。本発明は、各々の有効なセッ
ト即ちセットA及びBを、2つの物理的なセット、即ち
セットAを構成するセットA1及びA2、ならびにセットB
を構成するセットB1及びB2として扱う。よって、各セッ
トをアクセスするのに8ビット・アドレスよりはむしろ
7ビット・アドレスのみが要求される。従って、各々の
有効なセットは8データ・セル、即ち2行の4データ・
セルを含み、各々の有効なセットを2つの別々のセッ
ト、例えばセットA1及びA2として扱うことにより、2行
の 128ライン、即ち 2=256 をアクセスする8ビット
・アドレスを必要とするけれども、有効なセットをアク
セスする7ビット・アドレス、即ち 2=128 だけが必
要である。
【0055】前述のように4ウェイ連想キャッシュで
は、4つの物理的なセットA1、B1、A2及びB2の各々で1
つのラインのアドレス・ロケーションを選択するための
インデックスは32ビット・メイン・メモリ・アドレスの
ADDR 21-27である。ADDR 21-27はセットA1、B1、A2及び
B2の4つのセットの各々に与えられ、その結果、4つの
セットの各々から1つのラインが選択される。所与のセ
ットの中の各データ・セルからの出力は同じデータ経路
に転送される。従って、セットA1でデータ・セル200a-d
からADDR 21-27によってアクセスされた4つの32ビット
・ワード、即ちラインはデータ経路202aに転送される。
同様に、セットB1でデータ・セル200e-hからアクセスさ
れた4つの32ビット・ワードはデータ経路202bに転送さ
れ、セットA2でデータ・セル200i-lからアクセスされた
4つの32ビット・ワードはデータ経路202cに転送され、
そしてセットB2でデータ・セル200m-pからアクセスされ
た4つの32ビット・ワードはデータ経路202dに転送され
る。
【0056】セットA1、B1、A2及びB2の各々からアクセ
スされた4ワードのラインは第1ステージ多重記憶制御
装置230 への入力として入力ライン231a-dで入力され
る。第1ステージ選択装置230及び第2ステージ選択装
置235の動作の詳細は2ウェイ連想キャッシュと4ウェ
イ連想キャッシュでは同じであるので説明は省略する。
【0057】図8で、2ウェイ連想キャッシュのタグ・
アレイ210 の動作を説明する。2ウェイ連想キャッシュ
のタグ・アレイ210は、タグ・アレイ210の各部分がキャ
ッシュ・アレイ200 の1つのセットと連結される点で、
4ウェイ連想キャッシュと場合と同じように動作する。
タグ・アレイ210は、キャッシュ・アレイ200の中の所与
のロケーションに記憶されたデータに連結されるタグ
を、同じアドレス・ロケーションで維持する。図8に示
す特定の構成では、タグ・アレイ210 は2つのサブアレ
イ、即ち上部サブアレイ 210a-b 及び下部アレイ 210c-
d に分割され、各部分は右半部及び左半部に分割され
る。タグ・アレイの部分210a、210b、210c及び210dの各
々は特定のデータ・エレメントのメイン・メモリ・アド
レスのADDR 5-20である16ビット・タグを記憶する。タ
グ・アレイ部分210a-dの各々は128のタグを記憶するこ
とができる。従って、タグ・アレイ部分 210a、210b、2
10c 及び210dに記憶されたタグの各々は、キャッシュ・
アレイ200 の関連したセットA1、B1、A2及びB2の中の7
ビット・アドレスによって索引された同じアドレス・ロ
ケーションに記憶された特定の4データ・ワード、即ち
ラインと連結される。例えば、タグ・アレイ210 の部分
210aの中のロケーション45に記憶された特定の16ビット
・タグは、キャッシュ・アレイ200 のデータ・セル 200
a-d でセットA1のアドレス45に記憶された4データ・ワ
ード、即ちラインと連結される。
【0058】[タグ応答キャッシュ・メモリ・アドレス
制御装置]図8で、タグ応答キャッシュ・メモリ・アド
レス制御装置について説明する。以下、タグ応答キャッ
シュ・メモリ・アドレス制御装置120 はキャッシュ再構
成制御装置と呼ぶ。キャッシュ再構成制御装置120 は、
メイン・メモリ・アドレスのタグ・フィールド、即ちAD
DR 5-20 の少なくとも1つの最下位ビットを、メイン・
メモリ・アドレスのライン・ビット、即ちADDR 21-27と
組合わせることによりタグ・アレイを再構成し、再構成
可能な連想キャッシュ・メモリにする。それによって、
キャッシュ再構成制御装置はマルチウェイ連想キャッシ
ュ・メモリを、サイズがより大きく、より少ないウェイ
の連想キャッシュ・メモリ又はサイズがより小さく、よ
り多くのウェイの連想キャッシュ・メモリに変換するこ
とができる。動作中、キャッシュ再構成制御装置はメイ
ン・メモリ・アドレスのタグ・フィールドの少なくとも
1つの最下位ビットと再構成指示とを論理的に組合わせ
て、タグ・アレイの一部分を選択的に使用禁止すること
によりタグ・アレイの中の記憶を制御する。
【0059】タグ・アレイの中の記憶を制御するために
構成ラインを限定してタグ・フィールド(ADDR 5-20)の
最下位ビットをライン・フィールド(ADDR 21-27) と組
合わせるのに必要なメイン・メモリ・アドレスのタグ・
フィールドの最下位ビットの数は連想キャッシュ・メモ
リを構成できる最大及び最小のウェイのサイズの差で決
まる。詳しくは、タグ・フィールドの最下位ビットとし
て必要な数は2 乃至 2 のウェイの連想メモリの指
数による、即ち (y-x) で決まる。
【0060】2ウェイ連想キャッシュとして構成された
とき、キャッシュ再構成制御装置ロジックは、任意の所
与の時点で、上部サブウェイ、即ちタグ・アレイ部分21
0a-bの書込みイネーブル・ライン 327、又は下部サブウ
ェイ、即ちタグ・アレイ部分210c-dの書込みイネーブル
・ライン331 だけを活動化する。よって、一時点で、タ
グ・アレイの上部サブアレイ210a-b又は下部サブアレイ
210c-dだけが書込み可能である。4ウェイ・キャッシュ
では上部サブアレイ210a-b及び下部サブアレイ210c-dは
同時に書込み可能であるので、これは4ウェイ連想キャ
ッシュの書込みとは異なる。上部サブアレイ210a-b又は
下部サブアレイ210c-dの左の部分又は右の部分に新たな
タグを書込むべきかどうかを判定するために任意の数の
置換アルゴリズムを用いることができるタグ即ちディレ
クトリ・アレイを備える連想キャッシュ・メモリの技術
は当業者には分かっている。当業者に広く知られている
置換アルゴリズムはLRU(最長時間未使用)を含む。
【0061】本発明のキャッシュ再構成制御装置の設計
は、任意の所与の時点で2ウェイ構成のタグ・アレイの
上部サブアレイ210a-b又は下部サブアレイ210c-dの書込
みだけを可能にするから、書込まれないタグ・アレイの
当該部分から出力されたタグの対は、メイン・メモリ・
アドレスのタグ・フィールド、即ちADDR 5-20 の内容と
等しくはなりえない。換言すれば、2ウェイ構成では、
タグ・アレイに再書込みされなかったタグの対の2つの
タグの各々の比較装置220 の出力はヒット・ラインを非
活動状態にする、即ち HIT=0にする。
【0062】タグ・フィールドの最下位ビット、この場
合はADDR 20を、一般的な場合はADDR 20、19、18、等
を、タグ・アレイのどの部分を書込むべきかを決めるだ
けでなく、タグ・アレイに記憶されたタグの値の部分と
しても用いることにより、この結果が得られる。従っ
て、タグ・フィールドの最下位ビットは、比較装置220
でメイン・メモリ・アドレスからのタグ・フィールドと
の比較に大きな影響を与える。よって、2ウェイ連想キ
ャッシュの場合、再書込みされなかった即ち書込みイネ
ーブル・ラインが非活動状態である2つのタグ・アレイ
部分が、メイン・メモリ・アドレスのタグ・フィールド
の中の最下位ビットに等しいこれらの2つのタグ・アレ
イ部分に記憶されたタグの最下位ビットを持つことは決
してない。換言すれば、2ウェイ連想キャッシュに書込
まれない2つのタグのヒット・ラインは非活動状態であ
る、即ち HIT=0である。再構成制御装置、タグ・アレ
イ、及び2ウェイ連想キャッシュのキャッシュ・アレイ
の設計の結果として、タグ・アレイ部分210a-bからのタ
グ対、即ちタグ・セットA1、B1のタグ、又はタグ・アレ
イ部分210c-dからのタグ対、即ちタグ・セットA2、B2の
タグだけが HIT=1をもたらしうる。しかしながら、2
ウェイ連想と異なり、4つのタグ、即ちタグ・アレイ部
分210a-bのタグ対からのタグ、及びタグ・アレイ部分21
0c-dのタグ対からのタグのどれかが HIT=1をもたらし
うる。
【0063】キャッシュ再構成制御装置のロジック設計
の実施例について説明する。再構成ロジックは3つの入
力、即ちリロード321、構成322、及びメイン・メモリ・
アドレスのタグ・フィールド、即ちADDR 5-20 の少なく
とも1つの最下位ビットを有する。この実施例では、タ
グ・フィールドの1つの最下位ビット、即ちADDR 20だ
けが用いられる。説明を簡略化するために、この実施例
は2ウェイ連想メモリから4ウェイ連想メモリへ、即ち
2 から 2 への再構成を扱う。y-x=1であるから、
メイン・メモリ・アドレスのタグ・フィールドの1つの
最下位ビットだけが再構成ロジックのために必要であ
る。
【0064】一般に、再構成ロジックは最下位のタグ・
フィールド・ビットならびに最下位のタグ・フィールド
・ビットの反転を用いて2ウェイ連想キャッシュのタグ
・アレイ210 の上部又は下部の書込みイネーブル・ライ
ンだけを活動化する。この実施例では、キャッシュ・メ
モリを2ウェイ連想キャッシュ・メモリとして構成する
ために、構成ビットは0、即ち 構成=0 にセットされ
る。アドレス・ビット20が0に等しい、即ちADDR 20=
0であると仮定すると、インバータ・ゲート324はアド
レス・ビット20を "0" から "1" に反転させる。ORゲ
ート325 の入力は構成=0及び (反転された)ADDR 20=
1である。ORゲート325 の出力は "1" に等しい。そし
て、この出力はリロード321とともにANDゲート326 に入
力される。もしリロード=1である、即ちタグ・アレイ
をリロード又は更新すべきことを指示すれば、ANDゲー
ト326の出力は "1" に等しいので、タグ・アレイ210
の上部サブアレイ、即ちタグ・アレイ部分210a-bの書込
みイネーブル・ライン327 を活動化させる。換言すれ
ば、再構成ロジックはタグ・アレイの部分を選択的に使
用禁止にするために最下位のタグ・フィールドと再構成
指示を組合せ、そしてリロード指示はこのロジック組合
せの結果の動作を選択的に阻止する。
【0065】置換アルゴリズムが左半部、即ちタグ・ア
レイ部分210a又は右半部、即ちタグ・アレイ部分210bを
置換すべきかどうかを判定することは当業者には理解さ
れるであろう。LRU(最長時間未使用) を含む任意の数の
置換アルゴリズムを用いることができる。
【0066】メイン・メモリ・アドレスのタグ・フィー
ルドの最下位ビットADDR 20 がORゲート329の1つの入
力であり、構成322がORゲート329 のもう1つの入力で
ある。(2ウェイ連想メモリが選択されたことにより) A
DDR 20=0及び構成=0であるから、ORゲート329の出
力は "0" に等しい。ORゲート329の出力、即ち "0"
がANDゲート330の1つの入力であり、リロード321がAND
ゲート330 のもう1つの入力である。(ORゲート329の出
力=0) AND (リロード=1)の結果として ANDゲート33
0 の出力は "0" に等しい。従って、タグ・フィールド
の最下位ビット、即ちADDR 20 が "0" に等しいとき、
タグ・アレイ部分210c-dに接続された書込みイネーブル
・ライン331は活動状態ではない。
【0067】2ウェイ連想キャッシュ・メモリとして構
成を選択する、従って構成=0にセットするのに続い
て、メイン・メモリ・アドレスのタグ・フィールドの最
下位ビット、即ちADDR 20 =1と仮定する。インバータ
・ゲート324 はADDR 20 の値を反転させるので、ORゲー
ト325の第1の入力は "0" に等しい。構成322に結合さ
れるORゲート325の第2の入力も "0" に等しい。よっ
て、(反転された)ADDR 20及び構成=0であるから、OR
ゲート325の出力は"0"に等しい。ORゲート325の出力が
ANDゲート326の1つの入力に結合され、リロード321がA
NDゲート326 のもう1つの入力に結合される。ORゲート
325の出力に結合されたANDゲート326 の入力ラインは "
0" の値を有する限り、リロード321 が活動状態である
かどうかに関係なく、ANDゲート326の出力は "0" であ
る。よって、書込みイネーブル・ライン327は活動状態
ではないので、タグ・フィールドの最下位ビット、即ち
ADDR 20が "1" に等しいとき2ウェイ連想メモリのタ
グ・アレイ210a-bへの書込みは行なわれない。
【0068】同時に、ORゲート329の入力はADDR 20=1
と構成322=0である。(ADDR=1)AND (構成=0)=0
であるので 、ORゲート329の出力は "1" に等しい。OR
ゲート329の出力がANDゲート330の1つの入力に結合さ
れ、リロード321 がANDゲート330のもう1つの入力に結
合される。リロード321が活動状態である、即ちリロー
ド=1であるとき、ANDゲート330 の2つの入力は "1"
であるので、ANDゲート330の出力は "1" である。AND
ゲート330の出力は書込みイネーブル・ライン331に結合
されるから、書込みイネーブル・ライン331 は活動状態
であり、従って、タグ・アレイ部分210c-dは2ウェイ連
想キャッシュ・メモリに関して書込まれる。下部サブア
レイのタグ・アレイ部分210c又は210dを置換又は重ね書
きすべきかどうかを判定するためにLRU を含む任意の数
の置換アルゴリズムを用いうることが当業者には理解さ
れるであろう。よって、タグ・フィールドの最下位ビッ
トが"1" に等しい、即ちADDR 20=1であるとき、下部
サブアレイ210c-dが書込まれるが、上部サブアレイ210a
-bは書込まれない。
【0069】よって、"1"に等しい最下位ビットを有す
るタグだけがタグ・アレイ部分210c及び210dに書込ま
れ、"0"に等しい最下位ビットを有するタグだけがタグ
・アレイ部分210a及び210bに書込まれる。その結果、メ
イン・メモリ・アドレスのタグ・フィールドの最下位ビ
ットが "0" に等しいとき、タグ・アレイ部分210c及び
210dから選択された2つのタグは決して HIT=1をもた
らさず、タグ・アレイ部分210a又は210bからのタグだけ
がたぶん HIT=1をもたらしうる。同様に、メイン・メ
モリ・アドレスのタグ・フィールドの最下位ビットが "
1" に等しい限り、タグ・アレイ部分210a及び210bから
選択された2つのタグはヒットを生じない、即ち HIT=
0であり、タグ・アレイ部分210c及び210dから選択され
たタグだけがたぶんヒットを生じる、即ち HIT=1をも
たらす。
【0070】本発明の連想キャッシュ・メモリを4ウェ
イ連想キャッシュ・メモリとして再構成するには、構成
ビットが "1" にセットされる、即ち構成=1にセット
される。構成=1であるから、構成322は常に活動状態
である。よって、ORゲート325及びORゲート329 の出力
はどちらも "1" に等しい。更に、ORゲート325及び329
の出力はともにANDゲート326及び330 の1つの入力にそ
れぞれ結合されるから、ANDゲート326及び330の出力
は、リロード321が活動状態のときでも常に "1" に等
しい。従って、4ウェイ連想キャッシュ・メモリ構成が
要求されると、書込みイネーブル・ライン327及び331は
ともに活動状態になる、即ち構成=1にセットされる。
その結果、タグ・アレイ部分210a、210b、210c及び210d
のどれか1つにタグが記憶される。タグ・アレイ部分21
0a、210b、210c又は210dのうちの重ね書きされる特定の
部分は、前述のように当業者に知られている任意の数の
置換アルゴリズムによって決定される。その結果、4つ
のタグ・アレイ部分のどれかを任意の所定の時点で書込
みうるから、4ウェイ連想キャッシュが要求されると、
4つのタグ・アレイから選択された4つのタグ・アレイ
のどれか1つが HIT=1をもたらしうる。
【図面の簡単な説明】
【図1】メイン・メモリ及びキャッシュ・メモリを備え
る既知のデータ処理システムを示すブロック図である。
【図2】データ処理システムの既知の直接写像・キャッ
シュ構成を示すブロック図である。
【図3】データ処理システムの既知の連想写像キャッシ
ュ構成を示すブロック図である。
【図4】データ処理システムの既知のセット連想写像キ
ャッシュ構成を示すブロック図である。
【図5】既知の4ウェイ連想データ/命令キャッシュ・
メモリ・アレイを示すブロック図である。
【図6】既知の2ウェイ連想データ/命令キャッシュ・
メモリ・アレイを示すブロック図である。
【図7】本発明によるタグ応答キャッシュ・メモリ・ア
ドレス制御装置を備えるデータ処理システムを示す概要
ブロック図である。
【図8】図9と合わせて本発明によるタグ応答キャッシ
ュ・メモリ・アドレス制御装置及びマルチウェイ連想キ
ャッシュ・メモリの詳細なブロックを示す図である。
【図9】図8と合わせて本発明によるタグ応答キャッシ
ュ・メモリ・アドレス制御装置及びマルチウェイ連想キ
ャッシュ・メモリの詳細なブロックを示す図である。
【符号の説明】
100 データ処理システム 102 中央処理装置(CPU) 104 メイン・メモリ 106 マルチウェイ連想キャッシュ・メモリ 112 メイン・メモリ・アドレス・レジスタ 120 タグ応答キャッシュ・メモリ・アドレス制御
装置 200 キャッシュ・アレイ 202a データ経路 202b データ経路 202c データ経路 202d データ経路 210 ディレクトリ(タグ)アレイ 210a タグ・アレイ部分 210b タグ・アレイ部分 210c タグ・アレイ部分 210d タグ・アレイ部分 220 比較ブロック/比較装置 220a 比較装置/比較ロジック機能 220b 比較装置/比較ロジック機能 220c 比較装置/比較ロジック機能 220d 比較装置/比較ロジック機能 230 第1ステージ多重記憶制御装置/第1ステー
ジ選択装置 231a 入力ライン 231b 入力ライン 231c 入力ライン 231d 入力ライン 235 第2ステージ多重記憶制御装置/第2ステー
ジ選択装置 321 リロード 322 構成 324 インバータ・ゲート 325 ORゲート 326 ANDゲート 327 書込みイネーブル・ライン 329 ORゲート 330 ANDゲート
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ダヴィッド・ウィリアム・ヌエチターレン アメリカ合衆国27713、ノースカロライナ 州ダーラム、クイーンズバリー・サークル 1205 (72)発明者 キム・エドワード・オドネル アメリカ合衆国27614、ノースカロライナ 州ラレイ、ダンレイス・ドライブ 11309 (72)発明者 トーマス・アンドリュー・サートリアス アメリカ合衆国27615、ノースカロライナ 州ラレイ、アムバートン・コート 1405 (72)発明者 ケネス・ダヴィッド・シュルツ アメリカ合衆国27513、ノースカロライナ 州キャリー、エムパイヤー・サークル 104 (72)発明者 エミー・マリオン・ウォルターズ アメリカ合衆国27614、ノースカロライナ 州ラレイ、トロッテンハム 11701

Claims (13)

    【特許請求の範囲】
  1. 【請求項1】メイン・メモリ・アドレスの各々が複数の
    メイン・メモリ・アドレス・ビットで構成され、前記メ
    イン・メモリ・アドレスにデータを記憶するアドレス可
    能なメイン・メモリ手段と、 メイン・メモリからのデータを、所定の下位メイン・メ
    モリ・アドレス・ビットに対応するキャッシュ・メモリ
    ・アドレスに記憶し、かつ所定の上位メイン・メモリ・
    アドレス・ビットに対応するタグと各キャッシュ・メモ
    リ・アドレスに記憶されたデータとを連結するためのア
    ドレス可能な連想キャッシュ・メモリ手段と、 前記キャッシュ・メモリで、前記タグの少なくとも1つ
    の最下位ビットと組合わされ、前記所定の下位メイン・
    メモリ・アドレス・ビットに対応して再構成されたキャ
    ッシュ・メモリ・アドレスにデータを記憶するためのタ
    グ応答キャッシュ・メモリ再構成手段とを備え、 それによって再構成可能な連想キャッシュ・メモリが得
    られるデータ処理システム。
  2. 【請求項2】前記アドレス可能な連想キャッシュ・メモ
    リ手段は前記キャッシュ・メモリ・アドレスにデータを
    記憶するためのキャッシュ・データ・メモリ手段と各キ
    ャッシュ・メモリ・アドレスに記憶されたデータに連結
    された前記タグを記憶するためのディレクトリ・メモリ
    手段とを備える請求項1のデータ処理システム。
  3. 【請求項3】前記タグ応答キャッシュ・メモリ再構成手
    段はキャッシュ再構成指示を与える手段と、 前記タグの少なくとも1つの最下位ビット及び前記キャ
    ッシュ再構成指示を論理的に組合わせる手段とを備える
    請求項1のデータ処理システム。
  4. 【請求項4】複数のキャッシュ・メモリ・アドレスの各
    々で複数のデータ・エレメントを記憶するとともに検索
    し、かつ複数のタグ・ビットを有するタグと各データ・
    エレメントとを連結するためのマルチウェイ連想キャッ
    シュ・メモリ手段と、 キャッシュ・メモリ・アドレスと、データ・エレメント
    に連結されたタグの1つの少なくとも1ビットとに応答
    して、キャッシュ・メモリ・アドレスに記憶された複数
    のデータ・エレメントからの少なくとも1つのデータ・
    エレメントの記憶及び検索を制御し、それによって前記
    マルチウェイ連想キャッシュを論理的に組合わせて、サ
    イズがより大きく、より少ないウェイの連想キャッシュ
    にするためのキャッシュ再構成手段とを備える再構成可
    能なキャッシュ・メモリ・システム。
  5. 【請求項5】前記マルチウェイ連想キャッシュ・メモリ
    は複数のキャッシュ・メモリ・アドレスの各々で複数の
    データ・エレメントを記憶し検索するためのキャッシュ
    ・データ・メモリ手段と、 各データ・エレメントに連結されたタグを記憶し検索す
    るためのディレクトリ・メモリ手段とを備える請求項4
    の再構成可能なキャッシュ・メモリ・システム。
  6. 【請求項6】キャッシュ再構成指示を与える手段と、 前記データ・エレメントに連結されたタグの1つの少な
    くとも1ビットと前記キャッシュ再構成指示を論理的に
    組合わせる手段とを備える請求項4の再構成可能なキャ
    ッシュ・メモリ・システム。
  7. 【請求項7】データ処理システムと組合わされた請求項
    4の再構成可能なキャッシュ・メモリ・システム。
  8. 【請求項8】アドレス可能なメイン・メモリ手段とアド
    レス可能なキャッシュ・メモリ手段を持つデータ処理シ
    ステムでキャッシュ・メモリを再構成する方法であっ
    て、 前記メイン・メモリ手段で、データを、複数のメイン・
    メモリ・アドレス・ビットを個々に含むメイン・メモリ
    ・アドレスに記憶するステップと、 前記キャッシュ・メモリ手段で、メイン・メモリからの
    データを、所定の下位のメイン・メモリ・アドレス・ビ
    ットに対応するキャッシュ・メモリ・アドレスに記憶す
    るステップと、 所定の上位メイン・メモリ・アドレス・ビットに対応す
    るタグと各キャッシュ・メモリ・アドレスに記憶された
    データとを連結するステップと、 前記キャッシュ・メモリで、前記タグの最下位ビットの
    少なくとも1つと組合わされて前記所定の下位のメイン
    ・メモリ・アドレス・ビットに対応する前記再構成され
    たキャッシュ・メモリ・アドレスにデータを記憶するス
    テップとを含むキャッシュ・メモリ再構成方法。
  9. 【請求項9】前記キャッシュ・メモリ手段にデータを記
    憶する前記ステップは、キャッシュ・データ・メモリ手
    段にデータを記憶するステップを含み、かつ前記連結す
    るステップは前記ディレクトリ・メモリ手段に記憶され
    たデータに連結されたタグを記憶するステップを含む請
    求項8のキャッシュ・メモリ再構成方法。
  10. 【請求項10】前記キャッシュ・メモリで再構成された
    キャッシュ・メモリ・アドレスにデータを記憶する前記
    ステップはキャッシュ再構成指示を受け入れるステップ
    と、 前記タグの最下位ビットの少なくとも1つと前記キャッ
    シュ再構成指示を論理的に組合わせるステップとを含む
    請求項8のキャッシュ・メモリ再構成方法。
  11. 【請求項11】マルチウェイ連想キャッシュ・メモリ手
    段で複数のキャッシュ・メモリ・アドレスの各々に複数
    のデータ・エレメントを記憶し検索するステップと、 複数のタグ・ビットを有するタグと各データ・エレメン
    トとを連結するステップと、 キャッシュ・メモリ・アドレス、及びデータ・エレメン
    トに連結されたタグの1つの少なくとも1ビットに応答
    して、前記キャッシュ・メモリ・アドレスに記憶された
    複数のデータ・エレメントからの少なくとも1つのデー
    タ・エレメントの記憶及び検索を制御し、それによって
    前記マルチウェイ連想キャッシュを論理的に組合わせ
    て、サイズがより大きく、より少ないウェイの連想キャ
    ッシュにするステップとを含むキャッシュ・メモリ・シ
    ステムを再構成する方法。
  12. 【請求項12】前記記憶し検索するステップはキャッシ
    ュ・データ・メモリ手段に複数のデータ・エレメントを
    記憶し検索するステップを含み、かつ前記連結するステ
    ップはディレクトリ・メモリ手段で各データ・エレメン
    トに連結されたタグを記憶し検索するステップを含む請
    求項11のキャッシュ・メモリ・システムを再構成する
    方法。
  13. 【請求項13】前記制御するステップはキャッシュ再構
    成指示を受け入れるステップと、 データ・エレメントに連結されたタグの1つの前記少な
    くとも1ビットと前記キャッシュ再構成指示を論理的に
    組合わせるステップとを含む請求項11のキャッシュ・
    メモリ・システムを再構成する方法。
JP4307222A 1991-12-26 1992-11-17 再構成可能なキャッシュ・メモリ・システム、キャッシュ・メモリ・システムを再構成する方法及びデータ処理システム Expired - Lifetime JPH0778762B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/813,971 US5367653A (en) 1991-12-26 1991-12-26 Reconfigurable multi-way associative cache memory
US813971 1991-12-26

Publications (2)

Publication Number Publication Date
JPH05241962A true JPH05241962A (ja) 1993-09-21
JPH0778762B2 JPH0778762B2 (ja) 1995-08-23

Family

ID=25213891

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4307222A Expired - Lifetime JPH0778762B2 (ja) 1991-12-26 1992-11-17 再構成可能なキャッシュ・メモリ・システム、キャッシュ・メモリ・システムを再構成する方法及びデータ処理システム

Country Status (3)

Country Link
US (1) US5367653A (ja)
EP (1) EP0549508A1 (ja)
JP (1) JPH0778762B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006040176A (ja) * 2004-07-29 2006-02-09 Fujitsu Ltd キャッシュメモリ装置およびメモリ制御方法
US7120745B2 (en) 2002-07-05 2006-10-10 Fujitsu Limited Cache memory device and memory allocation method
JP2017503299A (ja) * 2014-12-14 2017-01-26 ヴィア アライアンス セミコンダクター カンパニー リミテッド モードに応じてセットの1つ又は複数を選択的に選択するように動的に構成可能であるマルチモード・セット・アソシエイティブ・キャッシュ・メモリ

Families Citing this family (74)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2688612A1 (fr) * 1992-03-13 1993-09-17 Inst Nat Rech Inf Automat Dispositif d'antememoire.
GB2271202B (en) * 1992-10-01 1995-12-13 Digital Equipment Int Dynamic non-coherent cache memory resizing mechanism
GB2273179A (en) * 1992-12-02 1994-06-08 Ibm Cache indexing in interative processes.
US5465342A (en) * 1992-12-22 1995-11-07 International Business Machines Corporation Dynamically adaptive set associativity for cache memories
US5539894A (en) * 1993-04-20 1996-07-23 Sun Microsystems, Inc. Method and apparatus for optimizing a sector cache tag, block and sub-block structure base on main memory size
US5572700A (en) * 1993-04-30 1996-11-05 Intel Corporation Cache access controller and method for permitting caching of information in selected cache lines
US5778424A (en) * 1993-04-30 1998-07-07 Avsys Corporation Distributed placement, variable-size cache architecture
EP0624844A2 (en) * 1993-05-11 1994-11-17 International Business Machines Corporation Fully integrated cache architecture
US20030061545A1 (en) * 1994-09-30 2003-03-27 Chandrashekhar S. Patwardhan Method and apparatus for providing test mode access to an instruction cache and microcode rom
US6509927B1 (en) * 1994-12-16 2003-01-21 Hyundai Electronics America Inc. Programmably addressable image sensor
US6223255B1 (en) * 1995-02-03 2001-04-24 Lucent Technologies Microprocessor with an instruction level reconfigurable n-way cache
US5694567A (en) * 1995-02-09 1997-12-02 Integrated Device Technology, Inc. Direct-mapped cache with cache locking allowing expanded contiguous memory storage by swapping one or more tag bits with one or more index bits
US6119213A (en) * 1995-06-07 2000-09-12 Discovision Associates Method for addressing data having variable data width using a fixed number of bits for address and width defining fields
US5649153A (en) * 1995-06-19 1997-07-15 International Business Machines Corporation Aggressive adaption algorithm for selective record caching
JPH0944404A (ja) * 1995-07-26 1997-02-14 Fujitsu Ltd キャッシュメモリ装置の製造方法及びキャッシュメモリ装置
US6006310A (en) * 1995-09-20 1999-12-21 Micron Electronics, Inc. Single memory device that functions as a multi-way set associative cache memory
US6098150A (en) * 1995-11-17 2000-08-01 Sun Microsystems, Inc. Method and apparatus for fetching information from a cache memory
US5845317A (en) * 1995-11-17 1998-12-01 Micron Technology, Inc. Multi-way cache expansion circuit architecture
US5857214A (en) * 1995-12-18 1999-01-05 Advanced Micro Devices, Inc. Microprocessor with a fixed cache size selected from a predesigned set of sizes
US5778428A (en) * 1995-12-22 1998-07-07 International Business Machines Corporation Programmable high performance mode for multi-way associative cache/memory designs
US5666513A (en) * 1996-01-05 1997-09-09 Unisys Corporation Automatic reconfiguration of multiple-way cache system allowing uninterrupted continuing processor operation
KR100188012B1 (ko) * 1996-01-12 1999-06-01 윤종용 캐시 메모리의 사용 모드 설정 장치
US5809562A (en) * 1996-05-20 1998-09-15 Integrated Device Technology, Inc. Cache array select logic allowing cache array size to differ from physical page size
US5809548A (en) * 1996-08-30 1998-09-15 International Business Machines Corporation System and method for zeroing pages with cache line invalidate instructions in an LRU system having data cache with time tags
US5913228A (en) * 1997-03-12 1999-06-15 Vlsi Technology, Inc. Method and apparatus for caching discontiguous address spaces with short cache tags
US5974507A (en) * 1997-04-14 1999-10-26 International Business Machines Corporation Optimizing a cache eviction mechanism by selectively introducing different levels of randomness into a replacement algorithm
US5978888A (en) * 1997-04-14 1999-11-02 International Business Machines Corporation Hardware-managed programmable associativity caching mechanism monitoring cache misses to selectively implement multiple associativity levels
US6026470A (en) * 1997-04-14 2000-02-15 International Business Machines Corporation Software-managed programmable associativity caching mechanism monitoring cache misses to selectively implement multiple associativity levels
US6058456A (en) * 1997-04-14 2000-05-02 International Business Machines Corporation Software-managed programmable unified/split caching mechanism for instructions and data
KR100479623B1 (ko) * 1997-04-15 2005-07-07 엘지전자 주식회사 캐시태그메모리및그구동시스템
US6678790B1 (en) * 1997-06-09 2004-01-13 Hewlett-Packard Development Company, L.P. Microprocessor chip having a memory that is reconfigurable to function as on-chip main memory or an on-chip cache
US6070228A (en) * 1997-09-30 2000-05-30 International Business Machines Corp. Multimedia data storage system and method for operating a media server as a cache device and controlling a volume of data in the media server based on user-defined parameters
US6098152A (en) * 1997-10-17 2000-08-01 International Business Machines Corporation Method and apparatus for miss sequence cache block replacement utilizing a most recently used state
US6192458B1 (en) * 1998-03-23 2001-02-20 International Business Machines Corporation High performance cache directory addressing scheme for variable cache sizes utilizing associativity
US6233655B1 (en) * 1998-04-30 2001-05-15 International Business Machines Corporation Method for Quad-word Storing into 2-way interleaved L1 cache
US6549903B1 (en) * 1999-02-17 2003-04-15 Elbrus International Limited Integrity of tagged data
US6560677B1 (en) 1999-05-04 2003-05-06 International Business Machines Corporation Methods, cache memories, systems and computer program products for storing transient, normal, and locked entries in an associative cache memory
US6321321B1 (en) * 1999-06-21 2001-11-20 Vlsi Technology, Inc. Set-associative cache-management method with parallel and single-set sequential reads
US6629207B1 (en) * 1999-10-01 2003-09-30 Hitachi, Ltd. Method for loading instructions or data into a locked way of a cache memory
US6412038B1 (en) 2000-02-14 2002-06-25 Intel Corporation Integral modular cache for a processor
KR100373849B1 (ko) * 2000-03-13 2003-02-26 삼성전자주식회사 어소시어티브 캐시 메모리
US6859399B1 (en) 2000-05-17 2005-02-22 Marvell International, Ltd. Memory architecture and system and multiport interface protocol
US6748492B1 (en) * 2000-08-07 2004-06-08 Broadcom Corporation Deterministic setting of replacement policy in a cache through way selection
US6684298B1 (en) 2000-11-09 2004-01-27 University Of Rochester Dynamic reconfigurable memory hierarchy
US6889307B1 (en) 2001-11-16 2005-05-03 Matrix Semiconductor, Inc. Integrated circuit incorporating dual organization memory array
US7406579B2 (en) * 2002-12-17 2008-07-29 International Business Machines Corporation Selectively changeable line width memory
EP1573553B1 (en) * 2002-12-17 2016-04-27 International Business Machines Corporation Selectively changeable line width memory
US7133997B2 (en) * 2003-12-22 2006-11-07 Intel Corporation Configurable cache
US7237067B2 (en) * 2004-04-22 2007-06-26 Hewlett-Packard Development Company, L.P. Managing a multi-way associative cache
US7543113B2 (en) * 2004-07-02 2009-06-02 Hewlett-Packard Development Company, L.P. Cache memory system and method capable of adaptively accommodating various memory line sizes
US7469332B2 (en) * 2005-03-02 2008-12-23 International Business Machines Corporation Systems and methods for adaptively mapping an instruction cache
US8140833B2 (en) * 2005-10-07 2012-03-20 International Business Machines Corporation Implementing polymorphic branch history table reconfiguration
US20070083712A1 (en) * 2005-10-07 2007-04-12 International Business Machines Corporation Method, apparatus, and computer program product for implementing polymorphic reconfiguration of a cache size
US20070083711A1 (en) * 2005-10-07 2007-04-12 International Business Machines Corporation Reconfiguring caches to support metadata for polymorphism
CN101292229B (zh) * 2005-12-28 2012-05-30 富士通株式会社 用于控制存储器的方法和设备
US7467280B2 (en) * 2006-07-05 2008-12-16 International Business Machines Corporation Method for reconfiguring cache memory based on at least analysis of heat generated during runtime, at least by associating an access bit with a cache line and associating a granularity bit with a cache line in level-2 cache
US8022960B2 (en) * 2007-02-22 2011-09-20 Qualcomm Incorporated Dynamic configurable texture cache for multi-texturing
US20090006756A1 (en) * 2007-06-29 2009-01-01 Donley Greggory D Cache memory having configurable associativity
CN103380417B (zh) * 2011-02-18 2016-08-17 英特尔公司(特拉华州公司) 用于从存储器请求所存储的数据的方法及系统
CN103246542B (zh) 2012-02-01 2017-11-14 中兴通讯股份有限公司 智能缓存及智能终端
US9087561B2 (en) * 2012-12-21 2015-07-21 Advanced Micro Devices, Inc. Hybrid cache
US9779025B2 (en) 2014-06-02 2017-10-03 Micron Technology, Inc. Cache architecture for comparing data
WO2016097795A1 (en) * 2014-12-14 2016-06-23 Via Alliance Semiconductor Co., Ltd. Multi-mode set associative cache memory dynamically configurable to selectively allocate into all or subset or tis ways depending on mode
US10698827B2 (en) 2014-12-14 2020-06-30 Via Alliance Semiconductor Co., Ltd. Dynamic cache replacement way selection based on address tag bits
TWI514148B (zh) * 2015-03-16 2015-12-21 Univ Nat Sun Yat Sen 快取記憶體
US11237758B2 (en) * 2016-08-06 2022-02-01 Wolley Inc. Apparatus and method of wear leveling for storage class memory using address cache
US10817309B2 (en) 2017-08-03 2020-10-27 Next Silicon Ltd Runtime optimization of configurable hardware
EP3662376B1 (en) 2017-08-03 2023-04-05 Next Silicon Ltd Reconfigurable cache architecture and methods for cache coherency
WO2019055675A1 (en) 2017-09-13 2019-03-21 Next Silicon, Ltd. DATA ARCHITECTURE WITH DIRECTED AND INTERCONNECTED GRID
GB2570299B (en) * 2018-01-17 2020-04-08 Advanced Risc Mach Ltd Increasing effective cache associativity
US10846235B2 (en) 2018-04-28 2020-11-24 International Business Machines Corporation Integrated circuit and data processing system supporting attachment of a real address-agnostic accelerator
US11269526B2 (en) 2020-04-23 2022-03-08 Next Silicon Ltd Interconnected memory grid with bypassable units
US12046324B2 (en) 2021-08-11 2024-07-23 Stmicroelectronics International N.V. Modular memory architecture with gated sub-array operation dependent on stored data content
US12040013B2 (en) 2021-08-11 2024-07-16 Stmicroelectronics International N.V. Static random access memory supporting a single clock cycle read-modify-write operation

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5014195A (en) * 1990-05-10 1991-05-07 Digital Equipment Corporation, Inc. Configurable set associative cache with decoded data element enable lines

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4195342A (en) * 1977-12-22 1980-03-25 Honeywell Information Systems Inc. Multi-configurable cache store system
US4430712A (en) * 1981-11-27 1984-02-07 Storage Technology Corporation Adaptive domain partitioning of cache memory space
US4503501A (en) * 1981-11-27 1985-03-05 Storage Technology Corporation Adaptive domain partitioning of cache memory space
US4736293A (en) * 1984-04-11 1988-04-05 American Telephone And Telegraph Company, At&T Bell Laboratories Interleaved set-associative memory
US4788656A (en) * 1984-05-25 1988-11-29 The Johns Hopkins University Cache memory and pre-processor
US4853846A (en) * 1986-07-29 1989-08-01 Intel Corporation Bus expander with logic for virtualizing single cache control into dual channels with separate directories and prefetch for different processors
JPH0673114B2 (ja) * 1987-03-31 1994-09-14 日本電気株式会社 キヤツシユ制御装置
US5025366A (en) * 1988-01-20 1991-06-18 Advanced Micro Devices, Inc. Organization of an integrated cache unit for flexible usage in cache system design

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5014195A (en) * 1990-05-10 1991-05-07 Digital Equipment Corporation, Inc. Configurable set associative cache with decoded data element enable lines

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7120745B2 (en) 2002-07-05 2006-10-10 Fujitsu Limited Cache memory device and memory allocation method
JP2006040176A (ja) * 2004-07-29 2006-02-09 Fujitsu Ltd キャッシュメモリ装置およびメモリ制御方法
EP1622030A3 (en) * 2004-07-29 2007-12-05 Fujitsu Limited Cache memory and method of controlling memory
US7636811B2 (en) 2004-07-29 2009-12-22 Fujitsu Limited Cache memory and method of controlling memory
JP4669244B2 (ja) * 2004-07-29 2011-04-13 富士通株式会社 キャッシュメモリ装置およびメモリ制御方法
JP2017503299A (ja) * 2014-12-14 2017-01-26 ヴィア アライアンス セミコンダクター カンパニー リミテッド モードに応じてセットの1つ又は複数を選択的に選択するように動的に構成可能であるマルチモード・セット・アソシエイティブ・キャッシュ・メモリ

Also Published As

Publication number Publication date
EP0549508A1 (en) 1993-06-30
US5367653A (en) 1994-11-22
JPH0778762B2 (ja) 1995-08-23

Similar Documents

Publication Publication Date Title
JPH05241962A (ja) 再構成可能なキャッシュ・メモリ・システム
US6327642B1 (en) Parallel access virtual channel memory system
US5640534A (en) Method and system for concurrent access in a data cache array utilizing multiple match line selection paths
JP3169155B2 (ja) 情報をキャッシュするための回路
US5091851A (en) Fast multiple-word accesses from a multi-way set-associative cache memory
US6138209A (en) Data processing system and multi-way set associative cache utilizing class predict data structure and method thereof
EP0042000B1 (en) Cache memory in which the data block size is variable
US6708254B2 (en) Parallel access virtual channel memory system
US5668972A (en) Method and system for efficient miss sequence cache line allocation utilizing an allocation control cell state to enable a selected match line
US5805855A (en) Data cache array having multiple content addressable fields per cache line
US20070260818A1 (en) Power-performance modulation in caches using a smart least recently used scheme
EP1532531A1 (en) Method and apparatus for multithreaded cache with simplified implementation of cache replacement policy
JP2001184263A (ja) 旧キャッシュラインを無効化および除去する装置
US7406579B2 (en) Selectively changeable line width memory
US5761714A (en) Single-cycle multi-accessible interleaved cache
US6202128B1 (en) Method and system for pre-fetch cache interrogation using snoop port
US5890221A (en) Method and system for offset miss sequence handling in a data cache array having multiple content addressable field per cache line utilizing an MRU bit
EP1573553B1 (en) Selectively changeable line width memory
EP0474356A1 (en) Cache memory and operating method
US5749092A (en) Method and apparatus for using a direct memory access unit and a data cache unit in a microprocessor
US7146457B2 (en) Content addressable memory selectively addressable in a physical address mode and a virtual address mode
US7039751B2 (en) Programmable cache system
US20040030835A1 (en) Efficient cache organization for way-associativity and high refill and copy-back bandwidth
JPH06348596A (ja) キャッシュ・メモリ・システム並びにキャッシュ・メモリ・アクセス方法及びシステム
WO1995022791A2 (en) Method and apparatus for single cycle cache access on double word boundary cross