JPH08235060A - 複数のハッシュ関数を用いるキャッシュ・メモリ管理方法及びシステム - Google Patents

複数のハッシュ関数を用いるキャッシュ・メモリ管理方法及びシステム

Info

Publication number
JPH08235060A
JPH08235060A JP7311141A JP31114195A JPH08235060A JP H08235060 A JPH08235060 A JP H08235060A JP 7311141 A JP7311141 A JP 7311141A JP 31114195 A JP31114195 A JP 31114195A JP H08235060 A JPH08235060 A JP H08235060A
Authority
JP
Japan
Prior art keywords
tag
memory
memory address
data
address
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
JP7311141A
Other languages
English (en)
Other versions
JP3065518B2 (ja
Inventor
Breternitz Mauricio Jr
モーリシオ・ブレタニツ、ジュニア
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 JPH08235060A publication Critical patent/JPH08235060A/ja
Application granted granted Critical
Publication of JP3065518B2 publication Critical patent/JP3065518B2/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

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)【要約】 【課題】 キャッシュ・メモリ・システムにおいて要求
されたデータを効率的にロケーティングするための方法
及びシステムを提供する。 【解決手段】 データ処理システムにおいてタグ・メモ
リを第1及び第2のメモリ部分に分割する。要求された
データについてのアドレスがCPUにより発生される。
第1及び第2のタグ・メモリ・アドレスが同時に計算さ
れ、かつこれらは選択された対応するビット場所の値が
異なっている。選択されたビット場所の値に応答して、
第1のタグ・メモリ・アドレスが第1又は第2のタグ・
メモリ部分の一方に結合されると同時に、第2のタグ・
メモリ・アドレスが他方に結合される。双方のタグ・メ
モリ部分からタグ・データが呼び出される。CPUから
のメモリ・アドレスに応答して探索タグが発生される。
探索タグと双方の呼び出されたタグ・データとが同時に
比較される。いずれかの比較結果が適合すれば「ヒッ
ト」が標示され、これに応じて呼び出されたタグ・デー
タを用いてキャッシュ・メモリのデータ部分から要求さ
れたデータが呼び出される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、高性能のデータ処
理システムに関し、特に、キャッシュ・メモリ・システ
ムにおいて要求されたデータを効率的にロケーティング
(記憶場所の指定又は参照)するための方法及びシステ
ムに関する。さらに特定するならば、本発明は、キャッ
シュ・メモリ・システムにおいて要求されたデータをロ
ケーティングするために同時に複数のハッシュ関数を用
いる方法及びシステムに関する。
【0002】
【従来の技術】キャッシュ・メモリは、主メモリの最も
頻繁にアクセスされる部分を記憶するために用いられる
小容量で高速の冗長メモリである。キャッシュ・メモリ
は、システム性能を最適化するべく、相対的に低速で大
容量の主メモリがプロセッサ・サイクル時間内にCPU
に対してインタフェースできるようにするためのバッフ
ァ機能を備える。このようなシステム性能は、プロセッ
サ・サイクル時間に対するメモリ・アクセス時間の比で
計測することができる。キャッシュ・メモリは、「局所
参照」の原則を採っており、かつプロセッサ速度に近い
速度で動作するので、キャッシュ・メモリを利用するこ
とによりプログラミング・サイクル時間に対するメモリ
・アクセス時間の比を低減することができ、よってシス
テム全体の性能を向上させることができる。局所参照の
原則は、あるメモリ場所が他の場所よりも特に頻繁に参
照されるという所見に基づいている。主メモリの頻繁に
アクセスされる場所に置かれているデータをキャッシュ
・メモリへ複写することにより、システム性能を向上さ
せることができる。なぜなら、CPUが主メモリ内のデ
ータへのアクセスを待たなければならない場合が、低減
されるからである。
【0003】キャッシュ・メモリは、「連想記憶」すな
わち「内容アドレス記憶」である。その意味は、メモリ
場所のアドレスが、そのメモリ場所の内容と共に記憶さ
れるということである。キャッシュ・メモリ内の場所か
ら直接データを読み取るのではなく、キャッシュ・メモ
リは、アドレスを与えられ、そして要求されたデータで
あるか否かによらず、データを提供することによって応
答する。その後、キャッシュ・メモリは、「ヒット(hi
t)」を標示することにより正しいデータが提供されてい
ることを示す。正しいデータでない場合は、キャッシュ
・メモリは「ミス(miss)」を標示する。キャッシュ・メ
モリがミスを標示した場合は、要求されたデータを主メ
モリからあるいは仮想メモリ(すなわちハード・ディス
ク駆動装置)から取り出さなければならない。キャッシ
ュ・メモリ・システムの性能は、「ヒット率」により表
すことができ、これは、CPUがデータを要求する回数
に対する、要求されたデータがキャッシュ・メモリ内に
見出される回数の比である。このヒット率は、実行され
るプログラムには大きく影響されるが、主メモリの容量
に対するキャッシュ・メモリの容量の比にはほとんど無
関係である。
【0004】キャッシュ・メモリは、主メモリの一部の
複写を記憶するだけであるので、キャッシュ管理のため
の方策が必要となる。キャッシュ管理の方策は、局所性
の原理を利用する。キャッシュ・メモリ内へ複写するデ
ータを選択する際、空間的局所性が利用される。キャッ
シュ・メモリからデータを選択する際、時間的局所性が
利用される。キャッシュ・ミスが発生した場合、データ
処理システムのハードウェアは、要求されたデータを含
む大きな連続的なデータのブロックをキャッシュ・メモ
リ内に複写する。このような固定された大きさのメモリ
領域は、「キャッシュ・ライン」又は「キャッシュ・ブ
ロック」として知られており、1つのワードのように小
さい場合もあれば、数百バイト程の大きい場合もある。
【0005】キャッシュ・メモリは、しばしば2つの汎
用的なメモリを備える。1つはデータ・メモリとして、
他の1つはタグ・メモリとして知られている。データ・
メモリに格納される各キャッシュ・ラインのアドレス
は、他の情報(例えば、「状態」情報)と共にタグ・メ
モリに記憶される。データ・メモリに格納される各キャ
ッシュ・ラインは、そのキャッシュ・ラインの全アドレ
スを示すためにタグ・メモリ内に対応するワードを割当
てられる。
【0006】キャッシュ・メモリを連想記憶とする必要
があるために、その設計が複雑となる。データの内容に
よってメモリ内のデータをアドレス指定することは、そ
のアドレスによりデータをアドレス指定することよりも
本質的に複雑である。キャッシュ・メモリ内のデータを
アドレス指定する場合、待ち時間を少なくするために全
てのタグを同時に比較しなければならない。キャッシュ
の一例では、主メモリの場所をキャッシュ・メモリの場
所へマッピングすることによって、設計をより簡単にし
ている。このことは、キャッシュ・メモリ内のデータの
場所が、そのデータについての主メモリのアドレスの関
数として計算されることを意味する。このようなキャッ
シュ・メモリ内の場所を計算するための関数を、「ハッ
シュ関数」とも称する。通常、メモリアドレスの下位ビ
ットの数を、このようなハッシュ関数により選択するこ
とができる。
【0007】上記の「直接マッピング」方式のキャッシ
ュにおいては、各メモリ場所が、キャッシュ・メモリ内
の1つの場所へとマッピングされる。これによって、設
計上の多くの局面において単純化が実現される。なぜな
ら、メモリ・ラインがキャッシュ・メモリ内のいずれに
あるかを選択する必要がなく、また、新たなデータを記
憶する際にキャッシュ・メモリ内のどのラインを削除す
ることになるかを選択する必要がないからである。しか
しながら、2つのメモリ場所が交互にアクセスされてキ
ャッシュ・メモリ内の1つの領域を共有しなければなら
ないときには、直接マッピングによってキャッシュ・メ
モリの利用度が低下してしまう場合がある。これは、他
のキャッシュ・エントリが利用可能であるにも拘わら
ず、複数のメモリ参照が同じキャッシュ・エントリに対
して競合することを意味する。
【0008】キャッシュ・メモリを実施する別の方法
は、「セットアソシアティブ・キャッシュ」と呼ばれて
いる。セットアソシアティブ方式のキャッシュ・メモリ
は、2つのメモリ場所が交互にアクセスされ、直接マッ
ピングされたキャッシュ・メモリ内の単一のキャッシュ
・セルを共有しなければならないときに生じる問題を低
減させる。Mウェイ・セットアソシアティブ・キャッシ
ュは、主メモリの各場所をキャッシュ・メモリ内のM個
の場所のうちの1つへマッピングする。これにより、M
個の直接マッピングされたキャッシュからキャッシュ・
メモリを構成することができる。しかしながら、キャッ
シュ・メモリからデータを取り出す場合、各メモリ・ア
クセスについてM個のキャッシュを探索しなければなら
ず、ヒットした場合には適切なデータを選択して多重化
しなければならない。ミスが発生した場合は、新たなデ
ータがキャッシュ内に複写されると同時に、M個の可能
なラインのうちのいずれを削除するべきかを選択しなけ
ればならない。セットアソシアティブ・キャッシュには
このような別の煩雑さがあるので、通常は設計上のレベ
ル(すなわち、Mの数)が制限される。一般的にMが4
以下のときは、直接マッピング方式に比べてセットアソ
シアティブ方式が尚有利であるが、サイクル時間が遅く
なる。
【0009】セットアソシアティブ・キャッシュ方式に
おけるデータの探索は、主メモリのアドレスの関数とし
てメモり索引を計算することにより進められる。個のア
ドレスは、M個のメモリ・アレイの全てに対して適用さ
れ、要求されたデータがキャッシュ・メモリ内に存在す
るか否かを判断するためにタグが比較される。
【0010】ごく最近になって、「ハッシュ・リハッシ
ュ(hash-rehash)」と称される種類の直接マッピング方
式のキャッシュが開発された。ハッシュ・リハッシュ・
キャッシュは、2つのハッシュ関数を用いて所与のメモ
リ・アドレスに対してキャッシュ・エントリを選択する
正規の直接マッピング・キャッシュである。第1のハッ
シュ関数は、要求されたデータに対して第1のキャッシ
ュ・アドレスを計算するために用いられる。このような
第1のキャッシュ・アドレスが、要求されたデータを含
まない場合は、要求されたデータに対して別のキャッシ
ュ場所を計算するために第2のハッシュ関数が用いられ
る。このように、要求されたデータは、第1及び第2の
ハッシュ関数で決定されるキャッシュ・メモリ内の2つ
の場所に置かれている可能性がある。
【0011】ハッシュ・リハッシュ方式におけるキャッ
シュ探索は、1又は2のサイクルで行われる。第1のハ
ッシュ関数が、要求されたデータをキャッシュ内でロケ
ーティングする場合には、要求されたデータは1つのサ
イクルでロケーティングされる。第1のハッシュ関数を
用いてミスが発生した場合は、第2のハッシュ関数を用
いて、キャッシュ内の第2の場所にて要求されたデータ
をロケーティングする。第2の場所が、要求されたデー
タを含む場合は、キャッシュ探索に2つのサイクルを要
することになる。A. Seznecによる「A Case for Two-Wa
y Skewed-Associative」(1993年ワシントン州シア
トルにおける第20回コンピュータ・アーキテクチャに
関するACM-IEEE国際会議刊行)によれば、ハッシュ・リ
ハッシュ・キャッシュは、同じメモリ・サイズの4ウェ
イ・セットアソシアティブ・キャッシュのヒット率に匹
敵することが示された。ハッシュ・リハッシュ・キャッ
シュが、1アクセスにつき2サイクルを要する場合であ
っても、アクセス・タイムは同程度である。これは、ミ
スが比較的少ないためである。
【0012】従来技術の1つの問題点は、第1のハッシ
ュ関数の結果であるキャッシュ内の第1の場所が、第2
のハッシュ関数が要求されたデータについて第2の場所
を計算するに先立って先ず検査されることである。もし
第1のハッシュ関数により計算されたキャッシュ・アド
レスに要求されたデータが置かれていなければ、第2の
関数により計算されたキャッシュ・アドレスにその要求
されたデータが存在するか否かが検査される。前述のよ
うに、ハッシュ・リハッシュ・キャッシュ内で要求され
たデータを探索するプロセスは、メモリ要求あたり2つ
のサイクルを必要とする。従って、従来技術において
は、同じサイクル時間の間に2又はそれ以上のタグ・メ
モリヘのアクセスを可能とするようなハッシュ・リハッ
シュ・キャッシュを実現するという問題が残されてい
る。もし2又はそれ以上のハッシュ関数によるタグ・メ
モリ・アクセスの結果からタグ・データを検査すること
が、同じサイクル時間内で可能であるならば、直接マッ
ピング方式キャッシュの性能特性及びセットアソシアテ
ィブ方式キャッシュのより高いヒット率の双方が享受で
きる。
【0013】
【発明が解決しようとする課題】本発明の目的の1つ
は、高性能のデータ処理システムを提供することであ
る。
【0014】本発明の更なる目的は、キャッシュ・メモ
リ・システムにおいて要求されたデータを効率的にロケ
ーティングするための方法及びシステムを提供すること
である。
【0015】本発明の更なる目的は、キャッシュ・メモ
リ・システムにおいて要求されたデータをロケーティン
グするべく複数のハッシュ関数を同時に用いるための方
法及びシステムを提供することである。
【0016】
【課題を解決するための手段】上記の目的は、以下に記
載の通り達成される。データ処理システムにおいて、タ
グ・メモリが、第1のタグ・メモリ部分と第2のタグ・
メモリ部分とに分割される。次に、要求されたデータを
呼び出すためのアドレスが、CPUにより発生される。
その後、第1及び第2のタグ・メモリ・アドレスが同時
に計算され、そして第1及び第2のタグ・メモリ・アド
レスは、選択された対応するビット場所において互いに
異なる値のビットを有する。選択されたビット場所にお
けるビットの値に応じて、第1のタグ・メモリ・アドレ
スが、第1又は第2のタグ・メモリ部分のいずれか一方
に結合され、かつ同時に、第2のタグ・メモリ・アドレ
スが、他方のタグ・メモリ部分に結合される。次に、第
1及び第2のタグ・メモリ・アドレスを用いて、タグ・
データが双方のタグ・メモリ部分から同時に呼び出され
る。CPUからのメモリ・アドレスに応じて探索タグが
生成される。その後、探索タグと第1及び第2のタグ・
メモリ部分から呼び出されたタグ・データとが、同時に
比較される。いずれの比較結果も適合していれば、「ヒ
ット」が標示される。ヒットの標示に応答して、探索タ
グに適合する呼び出されたタグ・データを用いて、要求
されたデータがキャッシュ・メモリ・システムのデータ
部分から呼び出される。
【0017】本発明における上記の及び更なる目的、特
長、並びに有用性は、以降の記述により明らかとされる
であろう。
【0018】
【発明の実施の形態】図1は、プロセッサ22、キーボ
ード24、及び表示装置26を備えたデータ処理システ
ム20を示す図である。キーボード24は、ケーブル2
8を介してプロセッサ22へ接続されている。表示装置
26は、表示画面30を有し、陰極線管(CRT)、液
晶表示装置(LCD)、電子蛍光パネル等を用いて実現
できる。データ処理システム20は、トラック・ボー
ル、ジョイスティック、タッチ感知タブレット若しくは
画面、又は図1に示すようなマウス等のポインティング
装置32も備えている。ポインティング装置32は、表
示画面30上のポインタ又はカーソルを動かすために用
いられる。プロセッサ22は、1又は複数の周辺装置
(図示せず)へも接続されている。
【0019】データ処理システム設計分野の当業者であ
れば、表示装置26、キーボード24、及びポインティ
ング装置32が、各々、容易に入手可能な構成部品のい
ずれかを用いて実現できることは自明であろう。データ
処理システム20は、いわゆる「パーソナル・コンピュ
ータ」と称される、例えば、International BusinessMa
chines Corporation(IBM)により「PS/2」の商標で
製造及び販売されているパーソナル・コンピュータを用
いて実施できる。
【0020】図2は、図1のデータ処理システム20の
主な構成要素をより詳細に示したハイ・レベルのブロッ
ク図である。データ処理システム20は、CPU40内
で実行されるソフトウェアの形で、主として命令により
制御される。CPU40は、表示装置26へ接続されて
いる。表示装置26は、文字及びグラフィクスを表示
し、さらに可能であれば動くグラフィクスやビデオも表
示する。CPU40は、ユーザ入力装置42へも接続さ
れている。ユーザ入力装置42は、データ処理システム
のユーザから入力を受け取るために用いられる。ユーザ
入力装置42は、図1に示したキーボード24及びポイ
ンティング装置32を含む。
【0021】メモリ44及び直接アクセス記憶装置(D
ASD)46は、CPU40へ接続されており、アプリ
ケーション・プログラム(すなわち、ソフトウェア)及
びデータ・セットを記憶するために用いることができ
る。メモリ44は、キャッシュ・メモリ48及び主メモ
リ50を含む。キャッシュ・メモリ48は、CPU性能
を最適化するため、主メモリ50とCPU40との間で
バッファ機能を実行する。キャッシュ・メモリ48は、
通常、主メモリ50よりも遥かに小さくかつ高速であ
る。キャッシュ・メモリ48は、CPU40の1サイク
ル時間内にデータを呼び出せることが好ましい。キャッ
シュ・メモリ48は、主メモリ50の最も頻繁にアクセ
スされる部分の冗長複写を記憶するために用いられる。
【0022】周辺装置52もまた、データ処理システム
20に含めることができる。このような周辺装置として
は、ハード・ディスク駆動装置、テープ駆動装置、CD
−ROM、WORM駆動装置、通信装置、マルチメディ
ア・プレゼンテーション装置、検査設備、等々がある。
【0023】図3は、CPU40とキャッシュ・メモリ
48との間のインタフェースの部分を示したハイ・レベ
ルの概略図である。ブロック60に示す通り、メモリ・
アドレスが発生される。通常、このようなメモリ・アド
レスは、CPU40(図2参照)のような中央演算処理
装置により発生される。このようなメモリ・アドレス
は、主メモリからデータを呼び出してCPU40へ転送
するために主メモリ内のアドレスを特定する32ビット
の情報を含んでいる。しかしながら、データ処理システ
ム20においてキャッシュ・メモリが用いられる場合、
要求されたデータがキャッシュ・メモリ48内に存在す
るならば、そのデータはキャッシュ・メモリ48から呼
び出されることになる。要求されたデータがキャッシュ
・メモリ48内に記憶されているか否かを判断するため
に、キャッシュ・メモリ48のタグ・メモリ部分に対し
て問い合わせをしなければならない。これについては以
下に詳述する。
【0024】ブロック60において発生された主メモリ
・アドレスは、ハッシュ関数を実行するためにメモリ・
アドレス・バス62を介して2つの回路へ転送される。
第1のハッシュ関数はブロック64に示され、第2のハ
ッシュ関数はブロック66に示されている。第1のハッ
シュ関数及び第2のハッシュ関数は、メモリ・アドレス
60からの入力に基づいてキャッシュ・メモリ・システ
ムのタグ・メモリ部分内の場所のアドレスを計算するた
めに用いられる。
【0025】本発明の重要な態様によれば、2つのタグ
・メモリ・アドレスが、2つの異なるハッシュ関数によ
り同時に計算される。第1及び第2のハッシュ関数64
及び66は、各々、引き数として主メモリ・アドレス6
0を受け取り、「0」から「n−1」までの範囲のタグ
・メモリ・アドレスについての値を返す。ここで、n
は、キャッシュ・エントリの数である。第1のハッシュ
関数64及び第2のハッシュ関数66は、第1のハッシ
ュ関数64であるF1(v)がいずれかの引き数vに対
して値iを返し、第2のハッシュ関数66であるF2
(v)がいずれかの引き数vに対して値jを返し、そし
て所与のビット値に関してiとjとが常に異なるように
選ばれる。この例では、ビット10が、値iと値jとの
間で異なるビットとして選択されている。後述するよう
に、このようなiとjとの間で値が異なるようなビット
は、制御ビットとして用いることができる。
【0026】第1のハッシュ関数64の出力は、MUX
68及びMUX70で示される2個の2×1マルチプレ
クサへ接続される。同様に、第2のハッシュ関数66の
出力も、MUX68及びMUS70へ接続される。制御
ビット72は、第1及び第2のハッシュ関数64及び6
6の出力の値が異なるように選択されたビットである。
この制御ビット72は、MUX68及びMUX70の出
力を制御するための用いられられる。制御ビット72
は、直接マルチプレクサ68へ接続され、制御ビット7
2の補数は、MUX70へ接続される。この制御ビット
72を適用するので、MUX68及びMUX70は、決
して同じハッシュ関数を出力することはない。すなわ
ち、もしMUX68が第1のハッシュ関数64により計
算されたアドレスを出力するならば、MUX70は第2
のハッシュ関数66により計算されたアドレスを出力す
ることになる。そして、もしMUX68が第2のハッシ
ュ関数66により計算されたアドレスを出力するなら
ば、MUX70は第1のハッシュ関数64により計算さ
れたアドレスを出力することになる。
【0027】本発明の重要な態様によれば、タグ・メモ
リ74は、2又はそれ以上の部分へ分割される。この例
においては、上部タグ・メモリ76及び下部タグ・メモ
リ78と称され、示されている。MUX68の出力は、
上部タグ・メモリ76へ接続され、MUX70の出力
は、下部タグ・メモリ78へ接続されている。上部及び
下部のタグ・メモリ76及び78は、タグ94で示され
る「タグ」を記憶するために用いられる。このようなタ
グは、主メモリからキャッシュ・メモリのデータ部分の
場所へと複写されたデータの、主メモリ内でのアドレス
を部分的に識別するデータ・ビットを含む。キャッシュ
・メモリのデータ部分は、図3には示されていない。一
般的に、タグは、要求されたデータのアドレスの最上位
ビットの選択された数のビットからなる。
【0028】更なるデータ・ビットもまた、タグ・デー
タと関連させてタグ・メモリ74に記憶される。メモリ
場所90に示されるように、制御ビット91及び状態ビ
ット92が、タグ94とともに記憶される。制御ビット
91は、メモリ場所90に記憶されなければならない。
なぜなら、制御ビット91は、ヒットを検出するために
必要な情報を満たすからである。これについては後述す
る。公知のように、他の制御ビットもまた、タグ・メモ
リに記憶することができる。
【0029】上部タグ・メモリ76の出力は、比較回路
80へ接続される。制御ビット72及び探索タグ82も
また、比較回路80へ接続される。探索タグ82は、メ
モリ・アドレスの最上位ビットの選択された数のビット
からなる。比較回路80は、探索タグ82及び制御ビッ
ト72を、タグ94に記憶された制御ビット91を含む
上部タグ・メモリ76の出力に対して比較し、これらの
比較回路入力が同じであるか否かを判断するために用い
られる。もしこれらの比較回路入力が同じであれば、比
較回路80は、出力84で示すように、ヒットを標示す
る信号を出力する。
【0030】同様の方法で、下部タグ・メモリ78の出
力は、比較回路86へ接続される。比較回路86は、下
部タグ・メモリ78の出力を、探索タグ82及び制御ビ
ット72と比較し、両者の入力内容が同じであるという
判断に基づいて出力信号を発生する。もし比較回路86
へ入力する2つの入力内容が同じであれば、比較回路8
6は、出力88にてヒットを標示する。
【0031】図3に示したキャッシュ・メモリ・システ
ムのオペレーションは、CPU40からのデータ要求に
応答して、タグ・メモリ74内に情報を記憶することに
より開始される。タグ・データは、上部又は下部のタグ
・メモリ76又は78のいずれかの、第1又は第2のハ
ッシュ関数64又は66のいずれかにより計算される場
所に記憶することができる。タグ・データがタグ・メモ
リ74に記憶されるとき、制御ビット72は、メモリ場
所90に制御ビット91として示されるように、タグ・
データ94と共に記憶される。従ってこの例では、タグ
・データ94がメモリ場所90に記憶されたとき、制御
ビット91が制御ビット72の値を表す。メモリ場所9
0に記憶された他の情報として、状態ビット92を含め
てもよい。このような状態ビットは、有効性、パリテ
ィ、又はLRUビットを標示するビットである。
【0032】本発明によるキャッシュ・メモリの探索
は、ブロック60に示されるメモリ・アドレスの発生に
より開始される。その後、第1のハッシュ関数64及び
第2のハッシュ関数66が、同時に2つの異なるタグ・
メモリ・アドレスを計算し、これらは、タグ・メモリ7
4の2つの部分をアドレス指定するために用いられる。
制御ビット72は、メモリ・アドレス60に応答して発
生され、MUX68及びMUX70を制御するために用
いられる。この例では、制御ビット72は、ビット10
の値と同じになるように選択される。よって、ビット1
0が「1」に等しい場合は、MUX68は、上部タグ・
メモリ76への出力として第1のハッシュ関数64を選
択する。一方、MUX70では、制御ビット72がイン
バータ69により反転され、MUX70は第2のハッシ
ュ関数66を下部タグ・メモリ78へ出力することにな
る。その後、上部タグ・メモリ76及び下部タグ・メモ
リ78は、それぞれ比較回路80及び比較回路86によ
り比較されるタグ・データ(タグ・データが記憶された
ときに共に記憶された制御ビット91を含む)を出力す
る。
【0033】比較回路80及び86は、上部タグ・メモ
リ76及び下部タグ・メモリ78の出力(制御ビット9
1を含む)が、制御ビット72と共に探索タグ82と等
しいか否かを判断する。もし上部又は下部のタグ・メモ
リ76、78のいずれかの出力が、制御ビット72と共
に探索タグ82と等しいならば、比較回路80又は比較
回路86のいずれかが、出力84又は88にてヒットを
標示する。もし上部及び下部のタグ・メモリ76、78
によるタグ・データ出力が双方とも、制御ビット72と
共に探索タグ82と等しくなければ、出力84及び88
はミスを標示する。
【0034】図4は、本発明による第1及び第2のハッ
シュ関数のハイ・レベルの概略図である。図示の通り、
第1のハッシュ関数64及び第2のハッシュ関数66
は、双方ともメモリ・アドレス・バス62を介してメモ
リ・アドレス60を受け取る。メモリ・アドレス60
は、通常、32ビットからなる。第1のハッシュ関数6
4は、メモリ・アドレス60からビット8、9、及び1
1〜14を選択することによりタグ・メモリ・アドレス
100を計算する。ビット10は、この例では制御ビッ
ト72として用いるべく選択されているので、タグ・メ
モリ・アドレス100内には含まれない。
【0035】同様に、第2のハッシュ関数66もまた、
メモリ・アドレス60からビット8、9、及び11〜1
4を選択する。ビット10は、制御ビット72として用
いるべく選択されているので、タグ・メモリ・アドレス
100内には含まれない。第2のハッシュ関数66で
は、タグ・メモリ・アドレス102の中の選択されたビ
ットが、異なるタグ・メモリ・アドレス102を生成す
るべく反転されている。この例では、ビット13及びビ
ット14が、タグ・メモリ・アドレス102の計算にお
いて反転されている。第1及び第2のハッシュ関数64
及び66の双方が、CPU40(図2参照)のサイクル
時間に比べて短時間の間に計算されることは重要であ
る。従来のMウェイ・セットアソシアティブ・キャッシ
ュの有用性を維持するために、本発明における第1及び
第2のハッシュ関数64及び66は、速やかに計算され
なければならない。CPU40の1つのサイクル時間内
にハッシュ関数を計算することが望ましいが、従来のキ
ャッシュ・メモリ・システムに相当する計算時間であれ
ば許容できる。
【0036】図5は、本発明による方法及びシステムに
よって、要求されたデータについてキャッシュ・メモリ
を探索するプロセスを示したハイ・レベルの流れ図であ
る。当業者には自明であろうが、この流れ図に示された
機能は、通常、図示のように順次実行されるのではなく
実質的に同時に実行されるものである。このプロセスは
ブロック200で開始され、ブロック202へ進む。ブ
ロック202において、CPU40等の中央演算処理装
置を用いて、このCPUにより要求されるデータについ
てのメモリ・アドレスを発生する。メモリ・アドレスの
例が、メモリ・アドレス60であり、これは32ビット
を含む。その後ブロック204において、第1のハッシ
ュ関数を用いて第1のタグ・メモリ・アドレスを計算す
る。ブロック204でタグ・メモリ・アドレスを計算す
る一方、ブロック206において第2のハッシュ関数を
用いて第2のタグ・メモリ・アドレスを計算する。本発
明の重要な特徴として、第1及び第2のハッシュ関数
は、同時にタグ・メモリ・アドレスを計算し、しかもこ
れらのタグ・メモリ・アドレスは、少なくとも1ビット
は互いに異なっている。
【0037】次に、ブロック208において、制御ビッ
ト72(図3参照)等の制御ビットが「1」に等しいか
否かを判断する。制御ビットが「1」に等しければ、プ
ロセスは両タグ・メモリ・アドレスを同時に上部タグ・
メモリ及び下部タグ・メモリへ送る(すなわち、図3の
上部タグ・メモリ76及び下部タグ・メモリ78)。ブ
ロック210において、第1のタグ・メモリ・アドレス
を用いて上部タグ・メモリからタグ・データを呼び出
す。そして上部タグ・メモリへアクセスする一方、ブロ
ック212において第2のタグ・メモリを用いて下部タ
グ・メモリからタグ・データを呼び出す。上部又は下部
のタグ・メモリのいずれかから呼び出されたタグ・デー
タは、そのタグ・データが記憶されたときに記憶された
制御ビットを含む。このような制御ビットは、第1又は
第2のハッシュ関数のいずれかが、その特定のタグ・デ
ータについてのタグ・アドレスを計算するために用いら
れたことを示す。
【0038】上部及び下部のタグ・メモリからタグ・デ
ータが呼び出されたならば、ブロック214において、
上部タグ・メモリからのタグを探索タグと比較する。制
御ビット72はCPUにより発生されたメモリ・アドレ
スの一部であるので、制御ビット72は、ブロック21
4に表されるステップにおける探索タグの一部と考えら
れる。同様に、制御ビット91は、呼び出されたタグ・
データの一部と考えられ、従って、ブロック214に表
される比較の一部となる。ブロック214に示される比
較を実行する一方、ブロック216において下部タグ・
メモリからのタグを探索タグと比較する。ブロック21
6で表されるステップにおいて、探索タグは制御ビット
72を含み、呼び出されたタグ・データは制御ビット9
1を含む。
【0039】再びブロック208において、制御ビット
が「1」に等しくなければ、ブロック218において第
2のタグ・メモリ・アドレスを用いて上部タグ・メモリ
からタグ・データを呼び出す。第2のタグ・メモリ・ア
ドレスを用いて上部タグ・メモリがアドレス指定される
一方、ブロック220において第1のタグ・メモリ・ア
ドレスを用いて下部タグ・メモリからタグ・データを呼
び出す。前述の通り、上部又は下部のタグ・メモリのい
ずれかから呼び出されたタグ・データは、タグ・データ
と共に記憶された制御ビット91を含む。
【0040】上部及び下部の双方のタグ・メモリからタ
グ・データが呼び出された後、ブロック222において
上部タグ・メモリからのタグ・データを探索タグと比較
する。この比較ステップの間、ブロック224において
下部タグ・メモリからのタグ・データを探索タグと比較
する。前述の通り、探索タグは制御ビット72を含む。
【0041】上部及び下部の双方のタグ・メモリから全
てのタグ・データが呼び出され、探索タグと比較された
後、ブロック226において、上部又は下部タグ・メモ
リからのタグ・データが探索タグに適合するか否かが判
断される。タグ・データが探索タグと適合しなければ、
ブロック228において、キャッシュ・ミスを標示す
る。その後、ブロック230において、キャッシュ・メ
モリ内における要求されたデータ・エントリの探索を終
了する。
【0042】再びブロック226において、上部又は下
部のタグ・メモリからのタグが探索タグに適合するなら
ば、ブロック232において、キャッシュ・ヒットを標
示する。キャッシュ・ヒットを標示した後、ブロック2
34において、上部タグ・メモリからのタグが探索タグ
に適合するか否かを判断する。
【0043】上部タグ・メモリからのタグが探索タグに
適合していれば、その上部タグ・メモリからのタグに関
連するキャッシュのデータ部分のアドレスから要求され
たデータを呼び出す。上部タグ・メモリからのタグが探
索タグに適合しなければ、ブロック238において、下
部タグ・メモリからのタグに関連するキャッシュのデー
タ部分のアドレスから要求されたデータを呼び出す。上
部タグ・メモリ内のタグに関連するデータは、キャッシ
ュの上部データ部分から呼び出され、そして下部タグ・
メモリ内のタグに関連するデータは、キャッシュの下部
データ部分から呼び出されることが好ましい。その後、
ブロック230において、要求されたデータをキャッシ
ュ内で探索するプロセスが終了する。
【0044】以上においては、2つのタグ・メモリ部分
に対して2つのアドレスを発生する2つのハッシュ関数
のみに関して本発明を説明したが、更なるハッシュ関数
を用いることもでき、かつ、それらの更なるハッシュ関
数が、タグ・メモリの更なるセグメントをアドレス指定
するようにタグ・メモリ76をセグメントに分けること
ができることは自明であろう。
【0045】例えば、タグ・メモリ内のN個の部分をア
ドレス指定するためにN個のハッシュ関数を用いること
ができる。このようなN個のハッシュ関数は、各ハッシ
ュ関数が(log2N)個のビットだけ他の全ての関数
と異なるように選択するべきである。この(log
2N)個のビットは、後においてNウェイ・マルチプレ
クサがタグ・メモリのN個の部分の1つをアドレス指定
する際に、N個のタグ・メモリ・アドレスの1つを選択
するのを制御するために用いることができる。さらに、
この(log2N)個のビットは、キャッシュ・メモリ
・システムのタグ部分にタグ・データと共に記憶されな
ければならない。しかもタグ・データが探索タグと比較
されるときには、(log2N)個のビットが探索タグ
と共に含まれなければならない。
【0046】当業者であれば、本発明が、直接マッピン
グ方式キャッシュの速度を実現する一方、セットアソシ
アティブ・キャッシュとして利用可能なキャッシュ・メ
モリをより効率的に利用することにより、同一クラス内
でデータに対して1つ以上のメモリ場所を与えることが
できるキャッシュ・メモリの管理方法及びシステムを提
供することが理解できるであろう。さらに本発明は、ハ
ッシュ・リハッシュ直接マッピング方式のキャッシュよ
りも高速である。このように本発明は、直接マッピング
方式キャッシュの特性と、セットアソシアティブ方式キ
ャッシュのより高いヒット率特性とを双方とも実現する
ものである。
【0047】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0048】(1)データ処理システムにおけるキャッ
シュ・メモリ・システムを管理するための方法であっ
て、前記キャッシュ・メモリ・システムのタグ・メモリ
部分を、第1のタグ・メモリ部分と第2のタグ・メモリ
部分とに分割するステップと、要求されたデータを呼び
出すためのメモリ・アドレスを発生するステップと、前
記メモリ・アドレスの発生に応答して、各々複数のビッ
トをもつ第1のタグ・メモリ・アドレス及び第2のタグ
・メモリ・アドレスであって各々の中の対応するビット
場所における該複数のビットのうちの選択された1つの
値が、該第1のタグ・メモリ・アドレスと該第2のタグ
・メモリ・アドレスとで異なるように該第1及び該第2
のタグ・メモリ・アドレスを同時に計算するステップ
と、前記複数のビットの前記選択された1つの値に応じ
て、前記第1のタグ・メモリ・アドレスを前記第1又は
前記第2のタグ・メモリ部分の1つへ結合させると同時
に、前記第2のタグ・メモリアドレスを該第1又は該第
2のタグ・メモリ部分の他の1つへ結合させるステップ
と、前記第1のタグ・メモリ部分及び前記第2のタグ・
メモリ部分から同時にタグ・データを呼び出すステップ
と、前記メモリ・アドレスの発生に応答して、探索タグ
を発生するステップと、前記探索タグと前記第1のタグ
・メモリ部分からの前記呼び出されたタグ・データとを
比較すると同時に、前記探索タグと前記第2のタグ・メ
モリ部分からの前記呼び出されたタグ・データとを比較
し、そしていずれかの比較結果が適合していればヒット
を標示するステップと、前記ヒットの標示に応答して、
前記適合に係る前記呼び出されたタグ・データに関連す
る前記キャッシュ・メモリ・システムのデータ部分か
ら、前記要求されたデータを呼び出すステップとを含む
データ処理システムにおけるキャッシュ・メモリ・シス
テムの管理方法。 (2)前記メモリ・アドレスがアドレス・ビットを有
し、かつ該メモリ・アドレスの発生に応答して第1のタ
グ・メモリ・アドレスと第2のタグ・メモリ・アドレス
とを同時に計算するステップが、前記第1のタグ・メモ
リ・アドレスを生成するべく、前記メモリ・アドレスか
ら複数の前記アドレス・ビットを選択するステップと、
前記第2のタグ・メモリ・アドレスを生成するべく、前
記メモリ・アドレスからの前記複数の前記アドレス・ビ
ットの、選択された所定のビットを反転するステップと
を含む上記(1)記載のデータ処理システムにおけるキ
ャッシュ・メモリ・システムの管理方法。 (3)前記タグ・データが、前記複数のビットの前記選
択された1つの値に応答して前記タグ・データと共に選
択され記憶された制御ビットを含み、かつ前記第1及び
第2のタグ・メモリ部分からタグ・データを呼び出すス
テップが、前記タグ・データが前記記憶された制御ビッ
トを含む場合に該第1及び該第2のタグ・メモリ部分か
らタグ・データを呼び出すステップを含む上記(1)記
載のデータ処理システムにおけるキャッシュ・メモリ・
システムの管理方法。 (4)前記複数のビットの前記選択された1つの値に応
じて、前記第1のタグ・メモリ・アドレスを前記第1又
は前記第2のタグ・メモリ部分の1つへ結合させると同
時に、前記第2のタグ・メモリアドレスを該第1又は該
第2のタグ・メモリ部分の他の1つへ結合させるステッ
プが、前記第1のタグ・メモリ・アドレスを第1及び第
2のマルチプレクサの第1の入力へ結合し、前記第2の
タグ・メモリ・アドレスを該第1及び該第2のマルチプ
レクサの第2の入力へ結合するステップと、前記複数の
ビットの前記選択された1つが「1」に等しいことに応
答して、前記第1のマルチプレクサの出力にて前記第1
のタグ・メモリ・アドレスを出力し、前記第2のマルチ
プレクサの出力にて前記第2のタグ・メモリ・アドレス
を出力するステップと、前記複数のビットの前記選択さ
れた1つが「0」に等しいことに応答して、前記第1の
マルチプレクサの出力にて前記第2のタグ・メモリ・ア
ドレスを出力し、前記第2のマルチプレクサの出力にて
前記第1のタグ・メモリ・アドレスを出力するステップ
と、前記第1のマルチプレクサの前記出力を、前記第1
のタグ・メモリ部分へ結合させるステップと、前記第2
のマルチプレクサの前記出力を、前記第2のタグ・メモ
リ部分へ結合させるステップとを含む上記(1)記載の
データ処理システムにおけるキャッシュ・メモリ・シス
テムの管理方法。 (5)キャッシュ・メモリ・システムを管理するための
データ処理システムにおいて、第1のタグ・メモリ部分
と、第2のタグ・メモリ部分と、要求されたデータを呼
び出すためのメモリ・アドレスを発生する手段と、前記
メモリ・アドレスの発生に応答して、各々複数のビット
をもつ第1のタグ・メモリ・アドレス及び第2のタグ・
メモリ・アドレスであって各々の中の対応するビット場
所における該複数のビットのうちの選択された1つの値
が、該第1のタグ・メモリ・アドレスと該第2のタグ・
メモリ・アドレスとで異なるように該第1及び該第2の
タグ・メモリ・アドレスを同時に計算する手段と、前記
複数のビットの前記選択された1つの値に応じて、前記
第1のタグ・メモリ・アドレスを前記第1又は前記第2
のタグ・メモリ部分の1つへ結合させると同時に、前記
第2のタグ・メモリアドレスを該第1又は該第2のタグ
・メモリ部分の他の1つへ結合させる手段と、前記第1
のタグ・メモリ部分及び前記第2のタグ・メモリ部分か
ら同時にタグ・データを呼び出す手段と、前記メモリ・
アドレスの発生に応答して、探索タグを発生する手段
と、前記探索タグと前記第1のタグ・メモリ部分からの
前記呼び出されたタグ・データとを比較すると同時に、
前記探索タグと前記第2のタグ・メモリ部分からの前記
呼び出されたタグ・データとを比較し、そしていずれか
の比較結果が適合していればヒットを標示する手段と、
前記ヒットの標示に応答して、前記適合に係る前記呼び
出されたタグ・データに関連する前記キャッシュ・メモ
リ・システムのデータ部分から、前記要求されたデータ
を呼び出す手段とを有するキャッシュ・メモリ・システ
ムを管理するためのデータ処理システム。 (6)前記メモリ・アドレスがアドレス・ビットを有
し、かつ該メモリ・アドレスの発生に応答して第1のタ
グ・メモリ・アドレスと第2のタグ・メモリ・アドレス
とを同時に計算する手段が、前記第1のタグ・メモリ・
アドレスを生成するべく、前記メモリ・アドレスから複
数の前記アドレス・ビットを選択する手段と、前記第2
のタグ・メモリ・アドレスを生成するべく、前記メモリ
・アドレスからの前記複数の前記アドレス・ビットの、
選択された所定のビットを反転する手段とを有する上記
(5)記載のキャッシュ・メモリ・システムを管理する
ためのデータ処理システム。 (7)前記タグ・データが、前記複数のビットの前記選
択された1つの値に応答して前記タグ・データと共に選
択され記憶された制御ビットを含み、かつ前記第1及び
第2のタグ・メモリ部分からタグ・データを呼び出す手
段が、前記タグ・データが前記記憶された制御ビットを
含む場合に該第1及び該第2のタグ・メモリ部分からタ
グ・データを呼び出す手段を有する上記(5)記載のキ
ャッシュ・メモリ・システムを管理するためのデータ処
理システム。 (8)前記複数のビットの前記選択された1つの値に応
じて、前記第1のタグ・メモリ・アドレスを前記第1又
は前記第2のタグ・メモリ部分の1つへ結合させると同
時に、前記第2のタグ・メモリアドレスを該第1又は該
第2のタグ・メモリ部分の他の1つへ結合させる手段
が、前記第1のタグ・メモリ・アドレスを第1及び第2
のマルチプレクサの第1の入力へ結合し、前記第2のタ
グ・メモリ・アドレスを該第1及び該第2のマルチプレ
クサの第2の入力へ結合する手段と、前記複数のビット
の前記選択された1つが「1」に等しいことに応答し
て、前記第1のマルチプレクサの出力にて前記第1のタ
グ・メモリ・アドレスを出力し、前記第2のマルチプレ
クサの出力にて前記第2のタグ・メモリ・アドレスを出
力する手段と、前記複数のビットの前記選択された1つ
が「0」に等しいことに応答して、前記第1のマルチプ
レクサの出力にて前記第2のタグ・メモリ・アドレスを
出力し、前記第2のマルチプレクサの出力にて前記第1
のタグ・メモリ・アドレスを出力する手段と、前記第1
のマルチプレクサの前記出力を、前記第1のタグ・メモ
リ部分へ結合させる手段と、前記第2のマルチプレクサ
の前記出力を、前記第2のタグ・メモリ部分へ結合させ
る手段とを有する上記(5)記載のキャッシュ・メモリ
・システムを管理するためのデータ処理システム。 (9)データ処理システムにおけるキャッシュ・メモリ
・システムを管理するためのキャッシュ・メモリ管理シ
ステムであって、第1のタグ・メモリ部分及び第2のタ
グ・メモリ部分と、要求されたデータを呼び出すべくメ
モリ・アドレスを発生する手段と、前記メモリ・アドレ
ス発生手段へ結合されかつ第1のハッシュ関数を実行す
る第1のハッシュ関数回路と、前記メモリ・アドレス発
生手段へ結合されかつ第2のハッシュ関数を実行する第
2のハッシュ関数回路と、前記第1のハッシュ関数回路
及び前記第2のハッシュ関数回路へ結合される入力、並
びに前記第1のタグ・メモリ部分へ結合される出力を備
え、かつ第1のマルチプレクサ制御信号を受信するため
の制御入力を備える第1のマルチプレクサ回路と、前記
第1のハッシュ関数回路及び前記第2のハッシュ関数回
路へ結合される入力、並びに前記第2のタグ・メモリ部
分へ結合される出力を備え、かつ第2のマルチプレクサ
制御信号を受信するための制御入力を備える第2のマル
チプレクサ回路と、前記メモリ・アドレス発生手段及び
前記第1のタグ・メモリ部分へ結合される入力、並びに
これらの入力における値の適合を標示するための出力を
備える第1の比較回路と、前記メモリ・アドレス発生手
段及び前記第2のタグ・メモリ部分へ結合される入力、
並びにこれらの入力における値の適合を標示するための
出力を備える第2の比較回路とを有するキャッシュ・メ
モリ管理システム。
【図面の簡単な説明】
【図1】本発明の好適例を実施するために利用可能なデ
ータ処理システムを示す図である。
【図2】図1のデータ処理システムの主要な構成要素を
示した詳細なハイ・レベルのブロック図である。
【図3】本発明の方法及びシステムによって、CPUと
キャッシュ・メモリ・システムとの間をインタフェース
する部分を示したハイ・レベルの概略図である。
【図4】本発明の方法及びシステムによって、第1及び
第2のハッシュ関数のハイ・レベルの概略図である。
【図5】本発明の方法及びシステムによって、要求され
たデータについてキャッシュ・メモリを探索するプロセ
スを示したハイ・レベルの流れ図である。
【符号の説明】
20 データ処理システム 40 CPU 44 メモリ 46 直接アクセス記憶装置 48 キャッシュ・メモリ 50 主メモリ 52 周辺装置 60 メモリ・アドレス 64 第1のハッシュ関数 66 第2のハッシュ関数 68、70 マルチプレクサ 72 制御ビット 74 タグ・メモリ 76 上部タグ・メモリ 78 下部タグ・メモリ 80、86 比較回路 82 探索タグ 90 メモリ場所 91 制御ビット 92 状態ビット 94 タグ・データ

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】データ処理システムにおけるキャッシュ・
    メモリ・システムを管理するための方法であって、 前記キャッシュ・メモリ・システムのタグ・メモリ部分
    を、第1のタグ・メモリ部分と第2のタグ・メモリ部分
    とに分割するステップと、 要求されたデータを呼び出すためのメモリ・アドレスを
    発生するステップと、 前記メモリ・アドレスの発生に応答して、各々複数のビ
    ットをもつ第1のタグ・メモリ・アドレス及び第2のタ
    グ・メモリ・アドレスであって各々の中の対応するビッ
    ト場所における該複数のビットのうちの選択された1つ
    の値が、該第1のタグ・メモリ・アドレスと該第2のタ
    グ・メモリ・アドレスとで異なるように該第1及び該第
    2のタグ・メモリ・アドレスを同時に計算するステップ
    と、 前記複数のビットの前記選択された1つの値に応じて、
    前記第1のタグ・メモリ・アドレスを前記第1又は前記
    第2のタグ・メモリ部分の1つへ結合させると同時に、
    前記第2のタグ・メモリアドレスを該第1又は該第2の
    タグ・メモリ部分の他の1つへ結合させるステップと、 前記第1のタグ・メモリ部分及び前記第2のタグ・メモ
    リ部分から同時にタグ・データを呼び出すステップと、 前記メモリ・アドレスの発生に応答して、探索タグを発
    生するステップと、 前記探索タグと前記第1のタグ・メモリ部分からの前記
    呼び出されたタグ・データとを比較すると同時に、前記
    探索タグと前記第2のタグ・メモリ部分からの前記呼び
    出されたタグ・データとを比較し、そしていずれかの比
    較結果が適合していればヒットを標示するステップと、 前記ヒットの標示に応答して、前記適合に係る前記呼び
    出されたタグ・データに関連する前記キャッシュ・メモ
    リ・システムのデータ部分から、前記要求されたデータ
    を呼び出すステップとを含む データ処理システムにおけるキャッシュ・メモリ・シス
    テムの管理方法。
  2. 【請求項2】前記メモリ・アドレスがアドレス・ビット
    を有し、かつ該メモリ・アドレスの発生に応答して第1
    のタグ・メモリ・アドレスと第2のタグ・メモリ・アド
    レスとを同時に計算するステップが、 前記第1のタグ・メモリ・アドレスを生成するべく、前
    記メモリ・アドレスから複数の前記アドレス・ビットを
    選択するステップと、 前記第2のタグ・メモリ・アドレスを生成するべく、前
    記メモリ・アドレスからの前記複数の前記アドレス・ビ
    ットの、選択された所定のビットを反転するステップと
    を含む 請求項1記載のデータ処理システムにおけるキャッシュ
    ・メモリ・システムの管理方法。
  3. 【請求項3】前記タグ・データが、前記複数のビットの
    前記選択された1つの値に応答して前記タグ・データと
    共に選択され記憶された制御ビットを含み、かつ前記第
    1及び第2のタグ・メモリ部分からタグ・データを呼び
    出すステップが、前記タグ・データが前記記憶された制
    御ビットを含む場合に該第1及び該第2のタグ・メモリ
    部分からタグ・データを呼び出すステップを含む 請求項1記載のデータ処理システムにおけるキャッシュ
    ・メモリ・システムの管理方法。
  4. 【請求項4】前記複数のビットの前記選択された1つの
    値に応じて、前記第1のタグ・メモリ・アドレスを前記
    第1又は前記第2のタグ・メモリ部分の1つへ結合させ
    ると同時に、前記第2のタグ・メモリアドレスを該第1
    又は該第2のタグ・メモリ部分の他の1つへ結合させる
    ステップが、 前記第1のタグ・メモリ・アドレスを第1及び第2のマ
    ルチプレクサの第1の入力へ結合し、前記第2のタグ・
    メモリ・アドレスを該第1及び該第2のマルチプレクサ
    の第2の入力へ結合するステップと、 前記複数のビットの前記選択された1つが「1」に等し
    いことに応答して、前記第1のマルチプレクサの出力に
    て前記第1のタグ・メモリ・アドレスを出力し、前記第
    2のマルチプレクサの出力にて前記第2のタグ・メモリ
    ・アドレスを出力するステップと、 前記複数のビットの前記選択された1つが「0」に等し
    いことに応答して、前記第1のマルチプレクサの出力に
    て前記第2のタグ・メモリ・アドレスを出力し、前記第
    2のマルチプレクサの出力にて前記第1のタグ・メモリ
    ・アドレスを出力するステップと、 前記第1のマルチプレクサの前記出力を、前記第1のタ
    グ・メモリ部分へ結合させるステップと、 前記第2のマルチプレクサの前記出力を、前記第2のタ
    グ・メモリ部分へ結合させるステップとを含む 請求項1記載のデータ処理システムにおけるキャッシュ
    ・メモリ・システムの管理方法。
  5. 【請求項5】キャッシュ・メモリ・システムを管理する
    ためのデータ処理システムにおいて、 第1のタグ・メモリ部分と、 第2のタグ・メモリ部分と、 要求されたデータを呼び出すためのメモリ・アドレスを
    発生する手段と、 前記メモリ・アドレスの発生に応答して、各々複数のビ
    ットをもつ第1のタグ・メモリ・アドレス及び第2のタ
    グ・メモリ・アドレスであって各々の中の対応するビッ
    ト場所における該複数のビットのうちの選択された1つ
    の値が、該第1のタグ・メモリ・アドレスと該第2のタ
    グ・メモリ・アドレスとで異なるように該第1及び該第
    2のタグ・メモリ・アドレスを同時に計算する手段と、 前記複数のビットの前記選択された1つの値に応じて、
    前記第1のタグ・メモリ・アドレスを前記第1又は前記
    第2のタグ・メモリ部分の1つへ結合させると同時に、
    前記第2のタグ・メモリアドレスを該第1又は該第2の
    タグ・メモリ部分の他の1つへ結合させる手段と、 前記第1のタグ・メモリ部分及び前記第2のタグ・メモ
    リ部分から同時にタグ・データを呼び出す手段と、 前記メモリ・アドレスの発生に応答して、探索タグを発
    生する手段と、 前記探索タグと前記第1のタグ・メモリ部分からの前記
    呼び出されたタグ・データとを比較すると同時に、前記
    探索タグと前記第2のタグ・メモリ部分からの前記呼び
    出されたタグ・データとを比較し、そしていずれかの比
    較結果が適合していればヒットを標示する手段と、 前記ヒットの標示に応答して、前記適合に係る前記呼び
    出されたタグ・データに関連する前記キャッシュ・メモ
    リ・システムのデータ部分から、前記要求されたデータ
    を呼び出す手段とを有する キャッシュ・メモリ・システムを管理するデータ処理シ
    ステム。
  6. 【請求項6】前記メモリ・アドレスがアドレス・ビット
    を有し、かつ該メモリ・アドレスの発生に応答して第1
    のタグ・メモリ・アドレスと第2のタグ・メモリ・アド
    レスとを同時に計算する手段が、 前記第1のタグ・メモリ・アドレスを生成するべく、前
    記メモリ・アドレスから複数の前記アドレス・ビットを
    選択する手段と、 前記第2のタグ・メモリ・アドレスを生成するべく、前
    記メモリ・アドレスからの前記複数の前記アドレス・ビ
    ットの、選択された所定のビットを反転する手段とを有
    する 請求項5記載のキャッシュ・メモリ・システムを管理す
    るデータ処理システム。
  7. 【請求項7】前記タグ・データが、前記複数のビットの
    前記選択された1つの値に応答して前記タグ・データと
    共に選択され記憶された制御ビットを含み、かつ前記第
    1及び第2のタグ・メモリ部分からタグ・データを呼び
    出す手段が、前記タグ・データが前記記憶された制御ビ
    ットを含む場合に該第1及び該第2のタグ・メモリ部分
    からタグ・データを呼び出す手段を有する 請求項5記載のキャッシュ・メモリ・システムを管理す
    るためのデータ処理システム。
  8. 【請求項8】前記複数のビットの前記選択された1つの
    値に応じて、前記第1のタグ・メモリ・アドレスを前記
    第1又は前記第2のタグ・メモリ部分の1つへ結合させ
    ると同時に、前記第2のタグ・メモリアドレスを該第1
    又は該第2のタグ・メモリ部分の他の1つへ結合させる
    手段が、 前記第1のタグ・メモリ・アドレスを第1及び第2のマ
    ルチプレクサの第1の入力へ結合し、前記第2のタグ・
    メモリ・アドレスを該第1及び該第2のマルチプレクサ
    の第2の入力へ結合する手段と、 前記複数のビットの前記選択された1つが「1」に等し
    いことに応答して、前記第1のマルチプレクサの出力に
    て前記第1のタグ・メモリ・アドレスを出力し、前記第
    2のマルチプレクサの出力にて前記第2のタグ・メモリ
    ・アドレスを出力する手段と、 前記複数のビットの前記選択された1つが「0」に等し
    いことに応答して、前記第1のマルチプレクサの出力に
    て前記第2のタグ・メモリ・アドレスを出力し、前記第
    2のマルチプレクサの出力にて前記第1のタグ・メモリ
    ・アドレスを出力する手段と、 前記第1のマルチプレクサの前記出力を、前記第1のタ
    グ・メモリ部分へ結合させる手段と、 前記第2のマルチプレクサの前記出力を、前記第2のタ
    グ・メモリ部分へ結合させる手段とを有する 請求項5記載のキャッシュ・メモリ・システムを管理す
    るためのデータ処理システム。
  9. 【請求項9】データ処理システムにおけるキャッシュ・
    メモリ・システムを管理するためのキャッシュ・メモリ
    管理システムであって、 第1のタグ・メモリ部分及び第2のタグ・メモリ部分
    と、 要求されたデータを呼び出すべくメモリ・アドレスを発
    生する手段と、 前記メモリ・アドレス発生手段へ結合されかつ第1のハ
    ッシュ関数を実行する第1のハッシュ関数回路と、 前記メモリ・アドレス発生手段へ結合されかつ第2のハ
    ッシュ関数を実行する第2のハッシュ関数回路と、 前記第1のハッシュ関数回路及び前記第2のハッシュ関
    数回路へ結合される入力、並びに前記第1のタグ・メモ
    リ部分へ結合される出力を備え、かつ第1のマルチプレ
    クサ制御信号を受信するための制御入力を備える第1の
    マルチプレクサ回路と、 前記第1のハッシュ関数回路及び前記第2のハッシュ関
    数回路へ結合される入力、並びに前記第2のタグ・メモ
    リ部分へ結合される出力を備え、かつ第2のマルチプレ
    クサ制御信号を受信するための制御入力を備える第2の
    マルチプレクサ回路と、 前記メモリ・アドレス発生手段及び前記第1のタグ・メ
    モリ部分へ結合される入力、並びにこれらの入力におけ
    る値の適合を標示するための出力を備える第1の比較回
    路と、 前記メモリ・アドレス発生手段及び前記第2のタグ・メ
    モリ部分へ結合される入力、並びにこれらの入力におけ
    る値の適合を標示するための出力を備える第2の比較回
    路とを有する キャッシュ・メモリ管理システム。
JP7311141A 1994-12-09 1995-11-29 複数のハッシュ関数を用いるキャッシュ・メモリ管理方法及びシステム Expired - Lifetime JP3065518B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/353,005 US5659699A (en) 1994-12-09 1994-12-09 Method and system for managing cache memory utilizing multiple hash functions
US353005 1999-07-13

Publications (2)

Publication Number Publication Date
JPH08235060A true JPH08235060A (ja) 1996-09-13
JP3065518B2 JP3065518B2 (ja) 2000-07-17

Family

ID=23387347

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7311141A Expired - Lifetime JP3065518B2 (ja) 1994-12-09 1995-11-29 複数のハッシュ関数を用いるキャッシュ・メモリ管理方法及びシステム

Country Status (2)

Country Link
US (1) US5659699A (ja)
JP (1) JP3065518B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9984176B2 (en) 2014-12-19 2018-05-29 International Business Machines Corporation Hash value capable of generating one or more hash functions
CN113448996A (zh) * 2021-06-11 2021-09-28 成都三零嘉微电子有限公司 一种IPSec安全策略数据库高速查找方法

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5933860A (en) * 1995-02-10 1999-08-03 Digital Equipment Corporation Multiprobe instruction cache with instruction-based probe hint generation and training whereby the cache bank or way to be accessed next is predicted
JPH08263376A (ja) * 1995-03-22 1996-10-11 Nec Ibaraki Ltd キャッシュ制御装置
US5893146A (en) * 1995-08-31 1999-04-06 Advanced Micro Design, Inc. Cache structure having a reduced tag comparison to enable data transfer from said cache
US5778430A (en) * 1996-04-19 1998-07-07 Eccs, Inc. Method and apparatus for computer disk cache management
US5893163A (en) * 1997-12-17 1999-04-06 International Business Machines Corporation Method and system for allocating data among cache memories within a symmetric multiprocessor data-processing system
US6690380B1 (en) * 1999-12-27 2004-02-10 Microsoft Corporation Graphics geometry cache
US6734867B1 (en) * 2000-06-28 2004-05-11 Micron Technology, Inc. Cache invalidation method and apparatus for a graphics processing system
US6742105B1 (en) * 2000-12-22 2004-05-25 Silicon Access Networks Method and system for range matching
KR100445630B1 (ko) * 2001-02-13 2004-08-25 삼성전자주식회사 저전력 캐쉬 메모리 및 그것의 히트/미스 판정 방법
US7020657B2 (en) * 2001-09-27 2006-03-28 International Business Machines Corporation Scalable hardware scheduler time based calendar search algorithm
US20100161901A9 (en) * 2005-04-14 2010-06-24 Arm Limited Correction of incorrect cache accesses
US20060274787A1 (en) * 2005-06-07 2006-12-07 Fong Pong Adaptive cache design for MPT/MTT tables and TCP context
US20060277352A1 (en) * 2005-06-07 2006-12-07 Fong Pong Method and system for supporting large caches with split and canonicalization tags
US20070028051A1 (en) * 2005-08-01 2007-02-01 Arm Limited Time and power reduction in cache accesses
US20100169578A1 (en) * 2008-12-31 2010-07-01 Texas Instruments Incorporated Cache tag memory
US9367454B2 (en) * 2013-08-15 2016-06-14 Applied Micro Circuits Corporation Address index recovery using hash-based exclusive or

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5261064A (en) * 1989-10-03 1993-11-09 Advanced Micro Devices, Inc. Burst access memory
US5509135A (en) * 1992-09-25 1996-04-16 Digital Equipment Corporation Multi-index multi-way set-associative cache

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9984176B2 (en) 2014-12-19 2018-05-29 International Business Machines Corporation Hash value capable of generating one or more hash functions
CN113448996A (zh) * 2021-06-11 2021-09-28 成都三零嘉微电子有限公司 一种IPSec安全策略数据库高速查找方法
CN113448996B (zh) * 2021-06-11 2022-09-09 成都三零嘉微电子有限公司 一种IPSec安全策略数据库高速查找方法

Also Published As

Publication number Publication date
JP3065518B2 (ja) 2000-07-17
US5659699A (en) 1997-08-19

Similar Documents

Publication Publication Date Title
JP3065518B2 (ja) 複数のハッシュ関数を用いるキャッシュ・メモリ管理方法及びシステム
US5353426A (en) Cache miss buffer adapted to satisfy read requests to portions of a cache fill in progress without waiting for the cache fill to complete
US5586283A (en) Method and apparatus for the reduction of tablewalk latencies in a translation look aside buffer
US5235697A (en) Set prediction cache memory system using bits of the main memory address
US6912623B2 (en) Method and apparatus for multithreaded cache with simplified implementation of cache replacement policy
US5751990A (en) Abridged virtual address cache directory
KR102290464B1 (ko) 시스템 온 칩 및 그것의 주소 변환 방법
US10083126B2 (en) Apparatus and method for avoiding conflicting entries in a storage structure
US5548739A (en) Method and apparatus for rapidly retrieving data from a physically addressed data storage structure using address page crossing predictive annotations
JP2003067357A (ja) 不均一メモリ・アクセス(numa)データ処理システムおよびその操作方法
US6463507B1 (en) Layered local cache with lower level cache updating upper and lower level cache directories
JPH07506921A (ja) コンピュータ・システムにおける主記憶装置のアクセス時間とキャッシュ・メモリのサイズを最小限にするためのキャッシュへの先取り
JP3449487B2 (ja) 変換索引緩衝機構
KR100285533B1 (ko) 라이트 드루 가상 캐시메모리, 에일리어스 어드레싱 및 캐시플러시
EP0543991A1 (en) Improving computer performance by simulated cache associativity
US5897651A (en) Information handling system including a direct access set associative cache and method for accessing same
US6418513B1 (en) Queue-less and state-less layered local data cache mechanism
US7356650B1 (en) Cache apparatus and method for accesses lacking locality
US6405285B1 (en) Layered local cache mechanism with split register load bus and cache load bus
JP2788836B2 (ja) ディジタルコンピュータシステム
US7246202B2 (en) Cache controller, cache control method, and computer system
EP0519685A1 (en) Address translation
JP2006018841A (ja) さまざまなメモリラインサイズに適応的に対応可能なキャッシュメモリシステムおよび方法
EP2562652B1 (en) System and method for locking data in a cache memory
US9507729B2 (en) Method and processor for reducing code and latency of TLB maintenance operations in a configurable processor