JP2001243116A - 書込みのみで最長時間未使用ビットを更新するためのシステム - Google Patents

書込みのみで最長時間未使用ビットを更新するためのシステム

Info

Publication number
JP2001243116A
JP2001243116A JP2001035386A JP2001035386A JP2001243116A JP 2001243116 A JP2001243116 A JP 2001243116A JP 2001035386 A JP2001035386 A JP 2001035386A JP 2001035386 A JP2001035386 A JP 2001035386A JP 2001243116 A JP2001243116 A JP 2001243116A
Authority
JP
Japan
Prior art keywords
lru
bits
recently used
ways
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.)
Pending
Application number
JP2001035386A
Other languages
English (en)
Inventor
Stephen R Undy
ステファン・アール・アンディ
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.)
HP Inc
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JP2001243116A publication Critical patent/JP2001243116A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】キャッシュメモリシステムにおいて最長時間未使用テ゛ータを更
新するための効率的な方法及び装置を提供する。 【解決手段】キャッシュされたテ゛ータのセット(303)における複数
のウェイ(305)のアクセスの時間的順序を追跡するための装置及
び方法を開示する。セット内のウェイがアクセスされたことが示さ
れると、本発明の最長時間未使用(LRU)ヒ゛ット更新メカニス゛ム
(101)は、アクセスされたウェイのアクセスの時間的順序を表すLRUヒ
゛ットの特定のヒ゛ットのみを選択する。本発明の原理に従う
最長時間未使用(LRU)ヒ゛ット更新メカニス゛ム(101)は、LRUヒ゛ッ
トの特定のヒ゛ットが格納されている選択されたメモリ位置に対
してのみ新しい値を書き込むことができ、これによっ
て、LRUアレイメモリ(102)からLRUヒ゛ットの現在の値を読み出す
ことを必要とせずに、新たに検出されたキャッシュアクセスを考
慮してLRUヒ゛ットを更新することができる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、コンピュータプロ
セッサおよびメモリシステムに関する。特に、本発明
は、キャッシュメモリにおけるページ置換方式に関す
る。
【0002】
【従来の技術】今日、プロセッサはますます強力かつ高
速になっている。そのため、メモリアクセス時間が、典
型的には数10ナノ秒であっても、最高速度で実行中の
プロセッサには障害となっている。プロセッサの一般的
なCPU時間は、命令を実行するために使用されるクロ
ックサイクルとメモリアクセスのために使用されるクロ
ックサイクルとの合計である。最近のプロセッサは命令
実行時間が非常に改良されているが、手ごろな価格のメ
モリ装置のアクセス時間は、同様には改良されていな
い。
【0003】現代のコンピュータシステムでは、メモリ
アクセス時間の上述したボトルネックの影響を最小化す
るために、メモリ装置のアクセス速度の改善によらず
に、改良されたメモリアクセス方法および/またはプロ
セッサ/メモリインタフェースアーキテクチャが採用さ
れている。
【0004】たとえば、プロセッサ/メモリアーキテク
チャには、複数の記憶場所および大きいデータのセグメ
ントに対する並列アクセスを可能にするために、多数の
メモリバンクにわたって連続したデータセグメントが格
納される、メモリインタリービング方式を利用するもの
がある。他の一般的なメモリアクセス時間を向上させる
方法は、メモリキャッシングである。キャッシングは、
メモリ装置の容量および速度の正反対の特徴を利用す
る。すなわち、大きい(すなわち記憶容量が大きい)メ
モリは、概して小さいメモリより低速である。また、低
速なメモリほどコストがかからないため、より高価で小
さくかつ高速なメモリよりも大容量記憶装置の一部とし
ての使用に適している。
【0005】キャッシングシステムでは、メモリは、異
なるスピード、サイズおよびコストの階層的な順序で配
置されている。たとえば、小さく高速なメモリは、通常
キャッシュメモリとよばれるが、プロセッサとより大き
く低速なメインメモリとの間に配置される。一般に、シ
ステムにおいて最終的に2レベルのキャッシュメモリと
なるように、キャッシュメモリ内でも階層的分割がなさ
れる。この層状のキャッシュシステムにおいて、一般に
レベル1またはL1と呼ばれる、キャッシュメモリの2
レベルのうちの小さく高速な方は、プロセッサチップ自
体に組込まれた小容量のメモリとすることができる。第
2レベルまたはL2キャッシュは、一般に、プロセッサ
の外部の大容量のメモリである。
【0006】キャッシュメモリは、メインメモリに格納
されたデータの小さいサブセットを保持する。プロセッ
サは、特定のアプリケーションに対して個々の命令を実
行するために、メインメモリのデータのうち所定の小容
量のデータのみを必要とする。メモリのサブセットは、
即時の関連性、たとえば、近い将来使用される可能性が
高いといったことに基づいて選択される。これは、大規
模な探索プロジェクトを実行するために、図書館の大量
に収集された本の中から一度にわずか数冊の本を借りる
ことに非常に似ている。一度に数冊の本のみが借りられ
た場合に探索が有効で効率的でさえあるのと同様に、一
度にデータのわずかな部分が選択されキャッシュメモリ
に格納された場合、アプリケーションプログラムの処理
は効率的である。
【0007】キャッシュコントローラは、システムのア
ドレスライン(またはバス)を監視(すなわち「スヌー
プ」)し、プロセッサによってメモリアクセスが行われ
る時はいつでも、プロセッサによってアクセスされてい
るアドレスをキャッシュメモリに格納されている小容量
のデータのアドレスと比較する。プロセッサが必要とす
るデータがキャッシュメモリに見つかった場合、「キャ
ッシュヒット」が発生したと言われ、高速なキャッシュ
メモリが所望のデータをプロセッサに供給する。これ
は、借りられたわずかな数の本から必要な情報を見つけ
ることに類似している。プロセッサに必要な情報がキャ
ッシュメモリに格納されていない場合、「キャッシュミ
ス」が発生したと言われ、低速なメインメモリに対する
アクセスが行われなければならない。これは、図書館の
他の場所に向かうことに類似している。従って、L2キ
ャッシュメモリにおけるキャッシュミスは、より低速な
メインメモリへのアクセスを必要とし、わずかに低速な
L2キャッシュメモリに対する後続するアクセスのみを
必要とするL1キャッシュメモリでのキャッシュミスよ
りも有害なものである。
【0008】明らかに、目的は、キャッシュヒットを増
加させること(すなわち、キャッシュミスを減少させる
こと)である。一般に、この目的は、いわゆる「局所
性」理論に従うことによって達成される。この理論によ
れば、時間的局所性は、特定の情報が使用された場合に
同じ情報が再度使用される可能性が高いという一般原理
に基づいている。このため、プロセッサによって一度ア
クセスされたデータは、プロセッサによる引き続いて行
われる参照の間、より高速なアクセスを提供するため
に、キャッシュメモリに入れられる。空間的局所性理論
として知られる第2の局所性理論によれば、情報がプロ
セッサによってアクセスされると、アドレスがアクセス
された情報に近い情報は、同様にアクセスされる傾向に
ある。このように、一度アクセスされたデータのみがキ
ャッシュメモリに格納されるのではなく、一度アクセス
されたデータを含む付近のデータのブロックがキャッシ
ュメモリに入れられる。
【0009】プロセッサによるメモリアクセス毎に、こ
れら局所性理論が使用されることにより、キャッシュメ
モリにいずれのデータの新しいページ(複数のページの
場合もあり)が格納されるかが判断される。新たなペー
ジは、たとえば、FIFO、擬似乱数、ラウンドロビ
ン、ノット−ユースト−リセントリー(not-used-recen
tly)または最長時間未使用法(LRU、または最低使
用頻度法)など、コンピュータシステムのデザイナまた
は設計者に周知のブロック(またはページ)置換方式を
使用して、キャッシュメモリ内の現存するデータのペー
ジに取って代る。
【0010】最も一般的に使用されており、最適である
と考えられているキャッシュページ置換方法は、最長時
間未使用法(LRU)であり、これはコンピュータシス
テム技術分野の当業者には周知である。名前が示すよう
に、LRU方法は、キャッシュメモリのデータブロック
各々がプロセッサによってアクセスされた時間的順序を
追跡することと、最も長い間使用されていないデータブ
ロック(すなわち、上述した時間的局所性理論に従え
ば、近い将来アクセスされる可能性が最も低いもの)を
新たなデータに置換えることと、を含む。
【0011】しかしながら、メモリ/プロセッサインタ
フェースアーキテクチャにおいてキャッシュメモリを使
用することにより、メモリアクセス時間のボトルネック
の発生を防止すること、及び、より高速で実行すること
ができるプロセッサのスローダウンを防止することにお
いて大きく改善されるが、上述した従来のキャッシュシ
ステムには、後述する重大な欠点がある。
【0012】LRUページ置換方式を実現する従来のキ
ャッシュシステムでは、データブロックが最後にアクセ
スされた順序は、多数のビットを保持することによって
追跡される。これらのビットは、LRUビットと呼ば
れ、キャッシュメモリ内に現在格納されているページの
順序付けを示すビットパターンである。たとえば、一般
的なキャッシュメモリは図3に示すように構成されてい
る。この場合、キャッシュメモリ301は、その内容
が、セット303a〜303kと呼ばれる複数の行とウ
ェイ305A〜305Dと呼ばれる複数の列とで構成さ
れている。最も長い時間使用されていないアレイ302
(このアレイを、同じキャッシュメモリ301内か、ま
たはキャッシュメモリコントローラ(図示せず)によっ
てアクセス可能な別個のメモリに格納することができ
る)は、LRUビットの複数のライン(すなわち、ライ
ン0〜k−1)を含むことができる。各ライン、たとえ
ば第nライン(i=n)は、Mビットの2進数からな
り、それらのビットパターンは、複数のセットのうちの
1つ(たとえば、セットn)に対応するウェイの間の時
間的順序を完全に示す。
【0013】ウェイ、たとえばウェイ305Bは、キャ
ッシュメモリに対し読出しおよび書込みがなされるデー
タの最小単位であり得る。このため、キャッシュメモリ
からの複数のウェイの任意の1つに対するいかなるアク
セスも、LRUビットの更新を必要とする。
【0014】N個のウェイを有するセットに対する順序
付けの可能性には、N!(N階乗)の順列がある。N!
の可能性があるために、所与のセットに対応するLRU
ビット、たとえばセットnに対応するLRUアレイ
(n,j)は、Mビット長(M=log2N!)でなけ
ればならない。たとえば、N=4である場合、4!(す
なわち、24)の順序付けの可能性がある。したがっ
て、LRUビットは、少なくとも5ビット長でなければ
ならない。N=6に対し、各セットのLRUビットは、
最小値として10ビット長でなければならない。
【0015】キャッシュメモリからのウェイのアクセス
後、アクセスされたセットに対応するLRUビットの上
記Mビットは、読出され、変更され、再書込みされなけ
ればならない。たとえば、図4に示すように、従来のL
RUアレイおよびそれの更新メカニズムは、読出しポー
ト407と書込みポート408とを有するLRUアレイ
メモリ401を備える。ウェイがキャッシュメモリ(図
示せず)からアクセスされると、アクセスされたウェイ
が属するセットのアドレスが、アドレスバス402を介
して読出しポート407のアドレス入力に供給され、そ
れによって読出し動作が開始される。読出しポート40
7は、Mビットバス406上にそのセットに対応するL
RUビットを出力することによって応答する。
【0016】LRUビットは、アクセスされたウェイの
セットアドレスと識別とがそれぞれアドレスパイプライ
ン404とウェイパイプライン410とに供給されるこ
とと同期して、LRUビットパイプライン414の入力
に供給される。変更動作中、変更動作ユニット412
は、現在のLRUビットと現在アクセスされているウェ
イの識別とをバス415、411からそれぞれ受取り、
その受取った情報を用いてキャッシュアクセスを反映す
るLRUビットの新たなパターンを決定する。
【0017】変更動作には、特に、たとえば、取り出さ
れた現在のLRUビットから現在(すなわち、現在のキ
ャッシュアクセスより前の)時間的順序を決定するこ
と、あるとすれば時間的順序のいかなる変化が新たなキ
ャッシュアクセスの結果として発生したかを決定するこ
とと、時間的順序の変化に対応してLRUビットを変化
させることと、が含まれる。このため、新たなLRUビ
ットは、セットにおけるウェイの(新たなキャッシュア
クセスを考慮した)新たな順序を表すパターンを有する
新たなMビット長ワードからなり、以前のLRUビット
と同じ場合もあればそうでない場合もある。
【0018】最後に、書込み動作中、変更動作ユニット
412は、書込みポート408のデータイン入力に新た
に決定されたLRUビットを供給することにより、書込
みポート408のアドレス入力へ入力されるセットアド
レスに対応する、LRUアレイメモリ401の記憶場所
へ書込みを行う。
【0019】
【発明が解決しようとする課題】上述した従来からのL
RUビット更新プロセスは、LRUビットのうちのMビ
ット(すなわち、log2N!ビット)のそれぞれが、
記憶域から読出され、変更され、記憶域に再書込みされ
ることを必要とするが、この場合、読出し/変更/書込
みステップの各々の間に遅延、及び生じる可能性がある
動作エラーの原因が付加される。また、LRUビットを
適正に更新するために、読出し、変更および書込みステ
ップは正確なタイミングシーケンスで実行されなければ
ならないが、このためには、複雑な回路が適切なタイミ
ングを確実に取ることが必要である。したがって、上述
した従来のLRUビット更新メカニズムは、低速で効率
が悪く、実施するには複雑である。
【0020】更に、キャッシュメモリがパイプラインを
満たすためにアクセスされる場合、LRUビットは、キ
ャッシュアクセスと同期してパイプライン化された方法
で更新されなければならない。キャッシュアクセスと結
果として起こるLRUビットの更新との同期を維持する
ために、LRUビットの読出しおよび書込み動作は、同
じパイプライン化されたクロックサイクル中にタンデム
(直列)に実行されなければならない。したがって、上
述した従来のパイプラインアーキテクチャのキャッシュ
システムにおいて、たとえばマルチポートRAMなど少
なくとも2つのポートを有するメモリ装置は、一般的
に、LRUビットを格納し、LRUビットの同時の読出
しおよび書込みを可能にすることが要求される。
【0021】したがって、キャッシュメモリシステムに
おいて最長時間未使用情報を更新するためのより効率的
な方法および装置が必要とされている。各キャッシュア
クセス後にLRUビットを更新するために必要なオペレ
ーション(動作)の数を最小化することが必要とされて
いる。
【0022】更に、キャッシュメモリシステムにおいて
最長時間未使用情報を更新するためのより効率的かつ高
速な方法および装置が必要とされている。マルチポート
メモリにおいて最長時間未使用情報の格納を必要としな
いLRUビット更新方法が必要とされている。
【0023】
【課題を解決するための手段】本発明の原理によれば、
キャッシュされたデータのセットにおける複数のウェイ
のアクセスの時間的順序を追跡するための方法および装
置は、各々が複数のウェイのうちの予め決められた2つ
のウェイ間のアクセスの順序を表す、複数の最長時間未
使用ビットを提供するためのステップおよび手段と、そ
のセットにおける複数のウェイのうちの第1のウェイの
アクセスを検出するためのステップおよび手段と、最長
時間未使用ビットのサブセットを選択するためのステッ
プおよび手段であって、前記サブセットは、複数のウェ
イのうちの第1のウェイと複数のウェイのうちの他のウ
ェイとの間のアクセスの順序を表す複数の最長時間未使
用ビットのうちのいくつかを含むことからなるステップ
および手段と、そのセットに関連する複数の最長時間未
使用ビットのサブセットに書込むことにより、複数のウ
ェイのうちの第1のウェイの検出されたアクセスに応答
して時間的順序を更新するためのステップおよび手段、
からなる。
【0024】更に、本発明の原理によれば、キャッシュ
されたデータのセットにおける複数のウェイのアクセス
の時間的順序を追跡するための装置は、各々が複数のウ
ェイのうちの予め決められた2つのウェイ間のアクセス
の順序を表す複数の最長時間未使用ビットを格納するメ
モリと、複数のウェイのうちの第1のウェイの検出され
たアクセスに応答してメモリの選択された記憶場所に書
込むよう適応された変更動作ユニットであって、その選
択された記憶場所が、複数の最長時間未使用ビットのサ
ブセットの記憶場所に対応し、そのサブセットが、複数
のウェイのうちの第1のウェイと複数のウェイのうちの
他のウェイとの間のアクセスの順序を表す複数の最長時
間未使用ビットのうちのいくつかから構成されることか
らなる、変更動作ユニット、を備える。
【0025】本発明の特徴および利点は、図面を参照し
て行う以下の説明から当業者には明らかとなろう。
【0026】
【発明の実施の形態】簡単にするためおよび例示の目的
のために、特にキャッシュメモリにおいて1セットのデ
ータに4つのウェイがある一例を用いて、本発明の典型
的な実施の形態を主に参照することにより、本発明の原
理を説明する。しかしながら、当業者には、任意の数の
セットのうちの1つのセットに任意の数のウェイを有す
るキャッシュメモリシステムに対して、同じ原理を適用
することができ、かつ実施することができるというこ
と、及び、本発明の真の思想および範囲から逸脱するこ
とのないかかる変更範囲内で、そのような任意の変形態
様を実施できるということが容易に理解されよう。
【0027】本発明の原理によるLRUビット更新メカ
ニズムの典型的な実施の形態を、図1に示す。図1に
は、LRUビットのアレイ、たとえば図3のLRUアレ
イ(i,j)302を格納するLRUアレイメモリ10
2が示されている。また、LRUアレイメモリ102
は、アドレスバス103を介してアクセスされているセ
ットのアドレスを受取るアドレス入力と、変更動作ユニ
ット101からMビットLRUビットとMビット書込み
イネーブル信号とをそれぞれ受取る書込みデータ入力お
よび書込みイネーブル入力を備える。変更動作ユニット
101は、入力ライン104を介してアクセスされたウ
ェイの識別(たとえば、アドレス)を受取る。
【0028】本発明の原理によるキャッシュされたデー
タの各セットのLRUビット(たとえば、図3のLRU
アレイ(n,j)304)は、Mビットからなる。ここ
で、整数Mは(N/2)(N−1)、すなわち(N割る
2)×(N引く1)であり、Nはセット内のウェイの合
計数を表す整数である。
【0029】たとえば、あるセットに4つのウェイがあ
る(すなわち、N=4)場合、本発明によるLRUビッ
トは、合計6ビット(すなわち、M=6)からなる。N
=6の場合、Mは15ビットに等しい。小さい値のNに
対し、本発明のLRUビット更新システムが必要とする
LRUビットの合計数は、N=4およびN=6に対しそ
れぞれ5ビットおよび10ビットを必要とする上述した
従来のシステムによって要求されるビットの最少の数よ
り、それほど多くはない。
【0030】本発明の原理によれば、LRUビットは、
LRUビットの各ビットがセットにおける2つの特定の
ウェイの間の時間的順序関係を表すようにして符号化さ
れるが、これは利点である。たとえば、ウェイ0とウェ
イ1との間の時間的関係は、1つのLRUビット、たと
えば図3のLRU(n,0)によって表すことができ
る。すなわち、LRU(n,0)が0である場合、ウェ
イ0はウェイ1より最近アクセスされたものである(ま
た、LRU(n,0)=1は、ウェイ1がウェイ0より
最近アクセスされたものであることを示す)。このよう
に、合計Nのウェイを含むセットの場合、セットの各ウ
ェイと同じセットの他のウェイとの時間的順序関係を完
全に記述するためには、N−1ビットのみが必要であ
る。
【0031】具体的には、本発明の1実施の形態によれ
ば、Nウェイからなるセットに対し、LRUビットは、
以下のように汎用符号化方式によって符号化される。
【0032】合計N−1のビットを使用して、ウェイ0
とそのセットにおける残り、すなわちウェイ1〜N−1
との間の時間的順序関係を表す。更に、本発明のLRU
符号化は、合計N−2のビットを使用して、ウェイ1と
ウェイ2〜N−1との間の時間的順序を表し、合計N−
3ビットを使用して、ウェイ2とウェイ3〜N−1との
間の時間的順序を表し、以下同様である。符号化は、1
ビットを使用してウェイN−2とN−1との間の関係を
表す。
【0033】たとえば、N=4の場合(例示のためであ
って限定するわけではない)、セット303nに対応す
るLRUビット、すなわちLRU(n,j)304は、
6ビット、すなわちLRU(n,0)〜LRU(n,
5)からなり、以下の表1に示すように符号化すること
ができる。ここで、記号「>」は、後のアクセスを示す
ための略記表記として使用している。すなわち、「ウェ
イ0>ウェイ1」は、ウェイ0が、ウェイ1がアクセス
されたよりも時間的に後に(すなわち、より最近)アク
セスされたことを意味する。
【0034】
【表1】
【0035】上記表1からわかるように、6つのLRU
ビット、すなわちLRU(n,0)〜LRU(n,5)
は、セット内の各ウェイ間のアクセスの時間的順序を互
いに完全に記述する。
【0036】図2に、本発明のLRUビット更新システ
ム100の動作を示す。具体的には、図2には、本発明
の原理による最長時間未使用(LRU)ビット更新方法
の典型的なフローチャートが示されている。ステップ2
01において、キャッシュされたデータ、たとえば図3
のキャッシュメモリ301に格納されたデータのいずれ
かのウェイがアクセスされると、LRUビット更新シス
テム100は、行われているアクセスを検出する。検出
は、たとえば、任意のアクセスに対してシステムバス
(図示せず)を「スヌープ」するキャッシュコントロー
ラ(図示せず)から、アクセスされたウェイの有効なア
ドレスを受取ることによって、行うことができる。
【0037】アクセスが検出されると、ステップ202
において、LRUビット更新システム100は、たとえ
ば、キャッシュコントローラから受取ったアクセスされ
たウェイのアドレスを検査することにより、アクセスさ
れている特定のウェイの識別を検査して、アクセスされ
た特定のセットに対応するLRUビットのサブセットを
決定する。サブセットは、上述したようにアクセスされ
ている特定のウェイの時間的順序を、そのセットにおけ
る他のウェイに関して記述するために必要なN−1ビッ
トからなる。
【0038】たとえば、上記N=4の例では、上記表1
から、セット内の4つのウェイの各々がそのそれぞれの
時間的順序情報を完全に記述するために6LRUビット
のうちの3つのみが必要である、ということが分かる。
具体的には、ウェイ0の時間的順序情報を記述するため
に、LRU(0)、LRU(1)およびLRU(2)の
みが必要である。ウェイ1に対しては、LRU(0)、
LRU(3)およびLRU(4)のみが必要である。ウ
ェイ2に対しては、LRU(1)、LRU(3)および
LRU(5)のみが必要である。最後に、ウェイ3の時
間的順序情報を記述するために、LRU(2)、LRU
(4)およびLRU(5)のみが必要である。
【0039】本発明の好ましい実施の形態では、変更動
作ユニット101は、Mビットワードからなる書込みイ
ネーブル信号を生成する。イネーブル信号の各ビット
は、LRUビットのそれぞれのビットに対応する。図1
に示すように、Mビット書込みイネーブル信号を制御バ
ス106を介してLRUアレイメモリ102に与えて、
LRUビットの各々に対して書込み動作を実行すること
ができる。イネーブル信号ビットの各々は、LRUビッ
トの選択されたビットに対する書込み動作が可能になる
よう、互いに無関係に0または1にセットすることがで
きる。
【0040】たとえば、上記N=4の場合、以下の表2
に示すように書込みイネーブル信号が定義される。この
場合、書込みイネーブル(j)は、LRU(n,j)に
対する書込み動作に対応する(すなわち、イネーブル
(動作可能)およびディスエーブル(動作不能)にす
る)。たとえば、書込みイネーブル(0)は、LRU
(n,0)をイネーブルおよびディスエーブルにする。
【0041】
【表2】
【0042】当業者には、たとえば、上記表2に類似す
る表からのルックアップ動作によるか、または上記表2
から容易に生成することができる真理値表を実現する組
合せ論理回路を提供することにより、上記イネーブル信
号を生成することができる、ということが容易に認識さ
れよう。
【0043】検出されたキャッシュアクセスを考慮する
と、アクセスされたウェイとそのセットの残りのウェイ
との間の関係を完全に記述するために特定のN−1ビッ
トのみが必要であるということ、及び、アクセスされた
ウェイがそのセットにおける任意の他のウェイより後に
アクセスされたということを反映するようそれらN−1
ビットを変更しなければならないということ、を認識す
ることによりLRUビットのうちの選択されたビットに
書込まれる実際の値を決定することができる。したがっ
て、N=4の例の場合は、上記表1の符号化方式に従っ
て、ウェイの各々のアクセスに対応するLRUビットの
各々に書込まれる新たな値を、以下の表3のようにまと
めることができる。ここで、「x」はドントケア(どち
らでもよい)状態を示す。
【0044】
【表3】
【0045】なお、たとえば、上記表3に類似する表か
らのルックアップ動作により、あるいは上記表3から容
易に生成することができる真理値表を実現する組合せ論
理回路を提供することにより、上記値を生成することが
できるということは、当業者には明らかであろう。
【0046】ステップ203中、変更動作ユニット10
1は、上記表2によって与えられる書込みイネーブル信
号を生成し、上記表3に従って決定されるLRUビット
の更新値を、LRUアレイメモリ102の書込みイネー
ブル入力(制御バス)106と書込みデータ入力105
にそれぞれ供給する。アクセスされたセット(すなわ
ち、アクセスされたウェイが属しているセット)のアド
レスは、LRUアレイメモリ102のアドレス入力に与
えられる。したがって、ステップ203において、アク
セスされたセットおよびアクセスされたウェイ104に
関連するそれらLRUビットは、LRUアレイメモリ1
02に書込まれる。
【0047】たとえば、セットn 303nのウェイ0
305Aがアクセスされた場合、LRU(0)、LRU
(1)およびLRU(2)に値000が書込まれ、他の
LRUビット、すなわちLRU(3)、LRU(4)お
よびLRU(5)は変更されないままである。本発明の
重要な利点は、LRUビットの上記選択的書込みが、L
RUアレイメモリ102からのLRUビットの読出しを
必要としない、ということである。
【0048】LRUアレイメモリ102からMビットL
RUビットのいずれも読出す必要なく、N−1ビットの
書込みにより、キャッシュされたデータのセットの新た
な時間的順序を完全に記述するために、LRUビット
(Mビットすべて)が更新される、ということがわか
る。
【0049】ステップ204で、キャッシュメモリに新
たなデータのブロックを格納する場合、N−1ビットを
同時に検査することにより、本発明の原理に従って、符
号化され最新のもので維持されているLRUビットを用
いて、置換されるべき現存のデータのセットから最長時
間未使用のウェイを効率的かつ正確に決定することがで
きる。
【0050】たとえば、N=4の場合、以下の表4は、
セットの最長時間未使用のウェイを決定するための真理
値表を定義している。表の「x」は、「ドントケア」状
態、すなわちそのビット値を無視してよいことを示す。
【0051】
【表4】
【0052】なお、たとえば、上記表4と類似する表か
らのルックアップ動作により、または上記表4から容易
に生成することができる真理値法を実現する論理回路を
提供することにより、上記決定を行うことができる、と
いうことは当業者には容易に理解されよう。
【0053】最後に、ステップ205において、新たな
データが書込まれるべき記憶場所として上記のように決
定された最長時間未使用のウェイを使用することによ
り、新たなデータブロックがキャッシュメモリに書込ま
れる。
【0054】このように、この典型的な実施の形態で
は、LRUビットの以前の値を読出す必要なく、書込み
動作のみでLRU情報を更新することができる。
【0055】本発明をその典型的な実施の形態に関連し
て説明したが、当業者は、本発明の真の思想および範囲
から逸脱することなく、記述された本発明の実施の形態
に対し種々の変更を行うことができよう。本明細書で使
用した用語および記述は、例示のためにのみ示したもの
であり、それに限定するものではない。特に、本発明の
方法を例をもって説明したが、方法のステップは、例示
したものと異なる順序で実行することも、あるいは同時
に実行することもできる。当業者には、特許請求の範囲
に規定されている本発明の思想および範囲内において、
及び、それらの等価物に対して、これらおよび他の変形
が可能であるということが理解されよう。
【0056】以下においては、本発明の種々の構成要件
の組み合わせからなる例示的な実施態様を示す。 1.キャッシュされたデータのセット(303)におけ
る複数のウェイ(305)のアクセスの時間的順序を表
す複数の最長時間未使用ビット(304)を、前記複数
のウェイ(305)のうちの第1のウェイの検出された
アクセスに応答して更新する方法であって、前記複数の
最長時間未使用ビット(304)の各々が、前記複数の
ウェイ(305)の予め決められた対の間のアクセスの
順序を表しており、前記複数の最長時間未使用ビットの
サブセットを選択するステップ(202)であって、該
サブセットは、前記複数のウェイのうちの前記第1のウ
ェイと前記複数のウェイのうちの他のウェイとの間の前
記アクセスの順序を表す、前記複数の最長時間未使用ビ
ットの特定のビットからなるものである、ステップと、
前記選択されたサブセットを書込むことにより前記時間
的順序を更新するステップ(203)からなる、方法。 2.複数の書込みイネーブル(106)を提供するステ
ップであって、前記複数の書込みイネーブル(106)
の各々が、前記複数の最長時間未使用ビット(304)
の対応するビットに対して書込み動作の実行を可能にす
る、ステップを更に含む、上項1の複数の最長時間未使
用ビット(304)を更新する方法。 3.前記複数のウェイ(305)の各々に対し前記複数
の書込みイネーブル(106)の各々の状態を定義する
ルックアップテーブルを提供するステップを更に含む、
上項2の複数の最長時間未使用ビット(304)を更新
する方法。 4.前記複数の最長時間未使用ビット(304)が、合
計Mビットであって、M=(N/2)(N−1)であ
り、ここで、Nは前記キャッシュされたデータのセット
におけるウェイの合計数を表す整数である、上項1の複
数の最長時間未使用ビット(304)を更新する方法。 5.前記サブセットが、前記複数の最長時間未使用ビッ
ト(304)のうちのN−1ビットを含み、ここで、N
は前記キャッシュされたデータのセットにおけるウェイ
の合計数を表す整数である、上項1の複数の最長時間未
使用ビット(304)を更新する方法。 6.キャッシュされたデータのセットにおける複数のウ
ェイのアクセスの時間的順序を追跡するための装置であ
って、複数の最長時間未使用ビット(304)を格納す
るためのメモリ(102)であって、該複数の最長時間
未使用ビット(304)の各々が、前記複数のウェイ
(305)のうちの予め決められた2つウェイの間のア
クセスの順序を表すことからなる、メモリと、前記複数
のウェイのうちの第1のウェイの検出されたアクセスに
応答して、前記メモリの選択された記憶場所に書込むよ
う適応された変更動作ユニット(101)であって、前
記選択された記憶場所が、前記複数の最長時間未使用ビ
ット(304)のサブセットの記憶場所に対応し、前記
サブセットが、前記複数のウェイのうちの前記第1のウ
ェイと前記複数のウェイのうちの他のウェイとの間の前
記アクセスの順序を表す前記複数の最長時間未使用ビッ
ト(304)のうちのいくつかから構成されていること
からなる、変更動作ユニットを備える装置。 7.キャッシュされたデータのセット(303)におけ
る複数のウェイ(305)のアクセスの時間的順序を表
す複数の最長時間未使用ビット(304)を、前記複数
のウェイ(305)のうちの第1のウェイの検出された
アクセスに応答して更新するための装置であって、前記
複数の最長時間未使用ビット(304)の各々が、前記
複数のウェイ(305)の予め決められた対の間のアク
セスの順序を表しており、前記複数の最長時間未使用ビ
ット(304)のサブセットを選択するための手段であ
って、該サブセットが、前記複数のウェイ(305)の
うちの前記第1のウェイと前記複数のウェイ(305)
のうちの他のウェイとの間の前記アクセスの順序を表す
前記複数の最長時間未使用ビット(304)の特定のビ
ットからなる、手段と、前記選択されたサブセットを書
込むことにより、前記時間的順序を更新するための手段
を備える装置。 8.複数の書込みイネーブル入力(106)をさらに備
え、該複数の書込みイネーブル入力(106)の各々を
起動することにより、前記複数の最長時間未使用ビット
(304)のうちの対応する1つのビットに対する書込
み動作の実行を可能にする、上項6または7に記載のア
クセスの時間的順序を追跡するための装置。 9.前記複数の最長時間未使用ビット(304)は、合
計M=(N/2)(N−1)ビットであり、ここで、N
は前記キャッシュされたデータのセット(303)にお
けるウェイ(305)の合計数を表す整数である、上項
6または7に記載の複数の最長時間未使用ビット(30
4)を更新するための装置。 10.前記サブセットは、前記複数の最長時間未使用ビ
ット(304)のうちのN−1ビットからなり、ここ
で、Nは前記キャッシュされたデータのセット(30
3)におけるウェイの合計数を表す整数である、上項6
または7に記載の複数の最長時間未使用ビット(30
4)を更新するための装置。
【0057】
【発明の効果】本発明によれば、キャッシュメモリシス
テムにおいて最長時間未使用情報を更新するためのより
効率的な方法および装置が提供される。
【0058】本発明の概要を示すと次のようになる。本
発明は、キャッシュされたテ゛ータのセット(303)における複数のウェイ
(305)のアクセスの時間的順序を追跡するための装置及び方
法を開示する。セット内のウェイがアクセスされたことが示される
と、本発明の最長時間未使用(LRU)ヒ゛ット更新メカニス゛ム(101)
は、アクセスされたウェイのアクセスの時間的順序を表すLRUヒ゛ットの
特定のヒ゛ットのみを選択する。本発明の原理に従う最長時
間未使用(LRU)ヒ゛ット更新メカニス゛ム(101)は、LRUヒ゛ットの特
定のヒ゛ットが格納されている選択されたメモリ位置に対して
のみ新しい値を書き込むことができ、これによって、LR
Uアレイメモリ(102)からLRUヒ゛ットの現在の値を読み出すことを
必要とせずに、新たに検出されたキャッシュアクセスを考慮してL
RUヒ゛ットを更新することができる。
【図面の簡単な説明】
【図1】本発明の原理による最長時間未使用(LRU)
アレイメモリの典型的な実施の形態のブロック図であ
る。
【図2】本発明の原理による最長時間未使用(LRU)
ビット更新方法の典型的なフローチャートである。
【図3】本発明の原理によるキャッシュメモリの関連す
る部分と最長時間未使用(LRU)アレイメモリのブロ
ック図である。
【図4】従来の最長時間未使用(LRU)メモリの関連
する部分のブロック図である。
【符号の説明】
101…変更動作ユニット 102…LRUアレイメモリ 106…書込みイネーブル入力 303…セット 304…LRUビット 305…ウェイ

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】キャッシュされたデータのセット(30
    3)における複数のウェイ(305)のアクセスの時間
    的順序を表す複数の最長時間未使用ビット(304)
    を、前記複数のウェイ(305)のうちの第1のウェイ
    の検出されたアクセスに応答して更新する方法におい
    て、前記複数の最長時間未使用ビット(304)の各々
    が、前記複数のウェイ(305)の予め決められた対の
    間のアクセスの順序を表しており、前記方法が、 前記複数の最長時間未使用ビットのサブセットを選択す
    るステップ(202)であって、該サブセットは、前記
    複数のウェイのうちの前記第1のウェイと前記複数のウ
    ェイのうちの他のウェイとの間の前記アクセスの順序を
    表す、前記複数の最長時間未使用ビットの特定のビット
    からなるものである、ステップと、 前記選択されたサブセットを書込むことにより前記時間
    的順序を更新するステップ(203)からなる、方法。
JP2001035386A 2000-02-18 2001-02-13 書込みのみで最長時間未使用ビットを更新するためのシステム Pending JP2001243116A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US50732200A 2000-02-18 2000-02-18
US09/507322 2000-02-18

Publications (1)

Publication Number Publication Date
JP2001243116A true JP2001243116A (ja) 2001-09-07

Family

ID=24018173

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001035386A Pending JP2001243116A (ja) 2000-02-18 2001-02-13 書込みのみで最長時間未使用ビットを更新するためのシステム

Country Status (1)

Country Link
JP (1) JP2001243116A (ja)

Similar Documents

Publication Publication Date Title
US6594728B1 (en) Cache memory with dual-way arrays and multiplexed parallel output
US5752260A (en) High-speed, multiple-port, interleaved cache with arbitration of multiple access addresses
US5809280A (en) Adaptive ahead FIFO with LRU replacement
US6427188B1 (en) Method and system for early tag accesses for lower-level caches in parallel with first-level cache
JPH08328958A (ja) 命令キャッシュ、キャッシュメモリ装置及びその方法
US8499123B1 (en) Multi-stage pipeline for cache access
JPS624745B2 (ja)
US11301250B2 (en) Data prefetching auxiliary circuit, data prefetching method, and microprocessor
US6219764B1 (en) Memory paging control method
JP3407808B2 (ja) コンピュータシステム
US20050232060A1 (en) Memory controller controlling cashed dram
JP3589485B2 (ja) セットアソシアティブ方式のメモリ装置およびプロセッサ
JPH06214871A (ja) デュアルポート電子データ記憶システム及び電子データ記憶システム、並びに同時アクセス方法
US5434990A (en) Method for serially or concurrently addressing n individually addressable memories each having an address latch and data latch
KR19980080925A (ko) 선택가능한 캐시 라인 대체 방안을 구비한 캐시 메모리 및 그구성 방법
US20130060997A1 (en) Mitigating busy time in a high performance cache
US20070177415A1 (en) High performance mass storage systems
JP2001243116A (ja) 書込みのみで最長時間未使用ビットを更新するためのシステム
US20050013181A1 (en) Assisted memory device with integrated cache
Zhang Improving Data Movement Efficiency in the Memory Systems for Irregular Applications
CN101419543B (zh) 预测高速寄存器的存取位置的方法及系统
US20060080509A1 (en) Method and apparatus to purge remote node cache lines to support hot node replace in a computing system
JP3614428B2 (ja) キャッシュメモリ装置
JP3614956B2 (ja) メモリ制御システム
US7219199B1 (en) System and method for increasing bandwidth in a directory based high speed memory system