JP2001282617A - 共有されたキャッシュを動的に区分するための方法及びシステム - Google Patents

共有されたキャッシュを動的に区分するための方法及びシステム

Info

Publication number
JP2001282617A
JP2001282617A JP2000087694A JP2000087694A JP2001282617A JP 2001282617 A JP2001282617 A JP 2001282617A JP 2000087694 A JP2000087694 A JP 2000087694A JP 2000087694 A JP2000087694 A JP 2000087694A JP 2001282617 A JP2001282617 A JP 2001282617A
Authority
JP
Japan
Prior art keywords
cache
cache memory
entities
partition
index
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
JP2000087694A
Other languages
English (en)
Inventor
Austin Blumrich Macias
マシアス・オースチン・ブルームリッチ
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
Priority to JP2000087694A priority Critical patent/JP2001282617A/ja
Publication of JP2001282617A publication Critical patent/JP2001282617A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 共有されたキャッシュを動的に区分するため
の方法、システム及び信号発生媒体を提供する。 【解決手段】 それぞれ分断されたアドレス領域を含
み、別々に分断された複数のエンティティの間に共有さ
れるキャッシュメモリは、各エンティティを相互に妨害
させることなく複数のエンティティそれぞれにアロケー
トされた記憶領域を動的に分割するキャッシュセグレゲ
ータを含む。また、上記キャッシュメモリを含むマルチ
プロセッサシステム、そのための方法、該方法を含むプ
ログラムを記憶するための信号発生媒体も提供する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、一般的には、記憶
階層におけるキャシュ方法に関し、より詳細には共有さ
れたキャッシュにおける分断された記憶領域の動的アロ
ケーション方法及びシステムに関する。
【0002】
【従来の技術】キャッシュは、記憶階層内において用い
られ、アクセスの遅延を低減させるものである。記録階
層の各レベルは、サイズを有しており、記録階層にアク
セスすることに伴う性能上の不都合を有している。典型
的には、より大きい記憶容量をもつレベルが、より大き
い性能上の不都合を呈する。例えば、コンピュータにお
ける従来のメモリ記憶階層(キャッシュを含まない)
は、少数のプロセッサレジスタと、ソリッドステートメ
モリと、磁気ディスクと、磁気テープとからなる。
【0003】キャッシュは、記録階層へと追加されるこ
とで、参照を局所的に行わせる効果に基づいて性能を改
善させている。キャッシュは、その下層となる記憶層よ
りも性能上の不都合が少なく、下の階層から最も最新に
参照されるアイテムを記憶する。
【0004】図1は、記憶階層におけるより下層の大容
量記憶部11に対して、セット・アソシエーティブ(set
associative)キャッシュ10がどのようにして繰り返
しマップを行うか、が示されている。大容量記憶部11
は、固定されたサイズの複数のライン12へと分割され
ている。知られているように、この“ライン”12は、
キャッシュに記憶される最小ユニットである。各キャッ
シュセットは、大容量記憶部から、小さな、有限の数の
ラインをどのような所定の時間においても記憶する。各
ラインは、固定セット13を含み、この固定セット13
の内容がキャッシュ内に記憶されることになる。直接マ
ップされたキャッシュは、単純なワンウェイ(すなわち
セットあたり1ライン)セット・アソシエーティブ・キ
ャッシュとされていることに留意されたい。
【0005】図2は、リニアアレイとして構築された2
nセットを含む従来のセット・アソシエーティブ・キャ
ッシュによりアドレスがどのようにして翻訳されて行く
かを示した図である。アドレス要求は、タグ21と、イ
ンデックス22とを含んでいる。
【0006】インデックス22は、どのセット13(例
えば、図1に示す)がキャッシュ参照をフィールドする
かを示すものであり、タグ21は、キャッシュセットの
ラインの1つに、アドレスされたラインが記録されてい
るか否かを決定する。このアドレスのブレークダウン
は、例えばnを正数とすると2nのキャッシュセット
を、記憶階層における下層の記憶部に対して2n+mの
ラインへと繰り返しマップすることになる。
【0007】キャッシュは、多くの場合高速記憶部を少
数含み、多くの場合高速記憶部は高価なので、高速記憶
部を共有することが効果的である。例えば、ディスクキ
ャッシュ及びファイルキャッシュは、典型的には多重の
クライアントにより共有されている。
【0008】共有メモリを有するマルチプロセッサは、
単一のメモリ階層を共有する複数のプロセッサからな
る。メモリ階層の一部として各プロセッサは、典型的に
は別のプロセッサには共有されないキャッシュの1つ以
上の層を含んでいる。加えて、プロセッサキャッシュと
メインメモリとの間のメモリ階層へと、共有キャッシュ
を導入することが効果的である。共有された大きなキャ
ッシュは、ノンユニフォームメモリアクセス(NUM
A)システムにおけるアクセスの不都合を、特に緩和す
る効果がある。この用途目的のため、NUMAシステム
は、分散メモリを含むスケーラブルマルチプロセッサと
して規定されており、各プロセッサのメモリアクセス遅
延は、アクセスされるメモリがシステム内においてどこ
に位置しているかに依存して変動する。
【0009】時には、共有メモリを含むマルチプロセッ
サを区分して、多数の独立した単独のシステムであるか
のように、単一のシステムを動作させることが必要とな
る。各区分は、プロセッサのサブセットと、メインメモ
リの分断された部分とからなる。本願における目的にお
いては、“分断”とは、互いに重なり合わない別々のア
ドレス領域を意味する。
【0010】プロセッサの区分は独立して行われるの
で、これらのプロセッサの区分は、実際には異なったメ
モリ位置を参照することになる同一のアドレスを発生さ
せる。これは、メインメモリの実際的な区分が、キャッ
シュよりも下層側のレベルで生じる場合、共有キャッシ
ュに対して問題を生じさせる。すなわち、プロセッサの
区分により、異なったメモリ位置を参照するため同一の
アドレスを用いることになるので、例えば論理的な妨害
といった破壊的な衝突を、共有キャッシュに発生させ
る。
【0011】このような衝突を避けるために、上述した
共有キャッシュを区分することができる。しかしなが
ら、キャッシュを共有するプロセッサの区分それぞれに
よりキャッシュされるアイテムを、別々に同定するため
の機構が必要とされる。キャッシュは、1つの区分から
のアイテムが、別の区分から上書きされてしまわないよ
うにする必要があると共に、読み出される場合には各区
分から正確なアイテムを戻す必要がある。本発明に先行
する従来システムにおいては、上述したメカニズムは提
供されていない。
【0012】キャッシュの性能は、キャッシュが多くの
場合にアクセスされる下の階層に対する参照を効果的に
受け取るので、記憶階層の全体の性能に対して重要であ
る。したがって、キャッシュのアクセスに対してわずか
な遅延ですませるか、又は全く遅延を与えずにキャッシ
ュを区分するメカニズムが必要とされている。繰り返す
ことになるが、本発明に先行する従来には、このような
メカニズムは提供されたことはない。
【0013】マルチプロセッサ区分におけるメモリの必
要性は、マルチプロセッサのワークロードに依存して変
化し、マルチプロセッサが必要とするキャッシュ領域の
量は、動的に変化して行く。したがって、均一ではない
サイズのキャッシュ区分を発生させるメカニズムが必要
とされる。これは、従来のシステム及び方法においては
可能ではなかった。
【0014】さらに、時にはプロセッサ区分に対してあ
る程度の量のキャッシュ記憶領域を保証して、システム
性能の所望レベルを達成する必要がある。したがって、
区分に対してアロケートされるキャッシュ領域の量を特
定するメカニズムが必要であろう。要求が変化した場合
には、共有キャッシュを再区分することができることが
望ましい。本発明に先行する従来のシステムにおいて
は、キャッシュ区分の数、又は各区分にアロケートされ
る領域の量を動的に調節するメカニズムは提供されてい
ない。
【0015】概ね各プロセッサ区分は、キャッシュ方法
による利益を受けるため、共有キャッシュの所定の部分
を使用することができるようにされている必要がある。
したがって、複数の区分の間でのキャッシュ領域の使用
の均衡化を保持させるメカニズムが必要とされている。
繰り返すことになるが従来のシステムには、上述した構
造及び方法は含まれていない。
【0016】したがって、プロセッサが別々の領域を有
するようにマルチプロセッサシステムを区分する共有キ
ャッシュメモリを用いる従来のマルチプロセッサシステ
ムにおいては、同一のアドレスを異なったアドレス領域
へとキャッシュさせてしまうといった問題が発生する。
すなわち、共有キャッシュは、多重アドレス領域の間を
区別することができない。
【0017】本発明に先行して、上述した問題が当業者
により認識されたことはなく、又上述のメカニズムが、
上述した問題を解決するために提供されたことはない。
【0018】
【発明が解決しようとする課題】従来の方法及び構造の
上述した問題及び別の問題に鑑み、本発明は、共有キャ
ッシュを動的に区分するための方法及び構造を提供する
ことを目的とする。
【0019】本発明の別の目的は、キャッシュの共有が
望ましくない場合には、複数の部分へと分断された共有
キャッシュの記録部を区分するためのシステムを提供す
ることを目的とする。
【0020】
【課題を解決するための手段】本発明の第1の構成によ
れば、分断されたアドレス領域を含む個々に分断された
複数のエンティティの間で共有されるキャッシュメモリ
が提供される。キャッシュメモリは、複数あるエンティ
ティのうちの各エンティティに対してアロケートされる
記憶領域を、アクセス要求の内容に基づいて動的に分離
するためのセグレゲータを含んでいて、エンティティの
それぞれの間を妨害することがないようにさせている。
【0021】本発明の上述した第1の構成の第1の態様
においては、従来のセット・アソシエーティブ・キャッ
シュのタグは、キャッシュ中の各区分に固有の“パーテ
ィション識別部(PID)”を含むように拡張される。
キャッシュがアクセスされる場合には常に、タグ記憶及
びタグ比較の双方の目的のためPIDが提供され、タグ
の一部分として含まれる。
【0022】PIDタグ拡張は、区分へのキャッシュ記
憶領域の均衡化を保証するものではなく、又区分へとそ
の区分自体が使用するキャッシュ部分を確保することを
可能とするものでもない。むしろ、複数の区分は、記憶
部に対して競合し、どのような所定の区分によって占有
されるキャッシュの部分でも動的に変化する。したがっ
て、区分へとキャッシュ領域をアロケートするためのメ
カニズムは必要とされない。
【0023】このようなキャッシュ区分メカニズムは、
いくつかの効果を有する。まず、区分間でのキャッシュ
ラインの競合が定常的に引き起こされることが予測さ
れ、各区分は、そのアクセス回数、すなわち必要性に比
例したキャッシュの部分を占有することになる。このメ
カニズムは、区分のキャッシュリソースの必要性に対し
て動的な調節を与える。
【0024】ついで、このキャッシュ区分機構は、従来
のキャッシュの構成に対する意義ある付加が、タグコン
パレータの幅をわずかに広げるだけでなされるので、キ
ャッシュ性能に対してわずかな影響しか与えないことで
ある。
【0025】個々のビット比較は、並列的に実行される
ので、ビット比較が積み重ねられた結果として比較にお
ける遅延の増加のみが生じる。これは、ワイアド−OR
論理を用いて共に構成されているので、どのような遅延
増加であってもビットコンパレータの追加により生じる
ワイアド−OR接続の容量負荷のわずかな増加により生
じるものである。これは、全体のキャッシュアクセス遅
延に比較してほとんど無視できる。
【0026】第3に、このキャッシュ区分機構は、従来
のセット・アソシエーティブ・キャッシュへと、ごくわ
ずかの追加ハードウエアしか必要としない。タグ記憶部
は、それぞれのタグについてのPIDの分の記憶部を含
むように拡張される必要があるが、PIDは、区分の数
が少ないと考えられるので、少ないビット数にすぎない
ことが期待される。加えて、キャッシュタグコンパレー
タは、PIDビットに対する少ない数のビットコンパレ
ータを含むようにする必要がある。
【0027】本発明の第2の態様においては、キャッシ
ュセットを、各グループが独立したセット・アソシエー
ティブ・キャッシュのように機能する分断されたグルー
プへと区分することを可能とする。
【0028】この態様は、キャッシュアクセスアドレス
のインデックス部分を、区分によるキャッシュセットう
ちのサブセットの使用を規制するように動作させる機能
を提供する。キャッシュがアクセスされる場合には常
に、区分セレクタ及び区分セレクタマスクが与えられ
て、インデックスのアドレス可能性を割り当てるべく、
インデックスビットのいくつかを固定するために用いら
れる。これは、基本的にはセット・アソシエーティブ・
キャッシュをより小さな、独立したセット・アソシエー
ティブ・キャッシュへと分割する効果を有する。固定ビ
ットで置き換えることができるどのようなインデックス
ビットでも、タグの一部として処理することができる。
【0029】第2の態様のキャッシュ区分メカニズムは
いくつかの効果を有する。まず、キャッシュセット毎に
分割することは、区分が個々のキャッシュラインと競合
しないのでキャッシュの完全な随伴性を各区分に提供す
るすることを可能とすることにある。多くの検討によ
り、セット随伴性の性能上の効果が示されている。
【0030】ついで、このキャッシュ区分メカニズム
は、従来のセット・アソシエーティブ・キャッシュの構
成と比較して、キャッシュ性能に無視しうる程度しか影
響を与えない。キャッシュインデックスの数ビットを制
御するために必要な、わずかな論理的遅延が生じ、タグ
コンパレータの幅を、変更されるインデックスのどのよ
うなビットでも含むように拡張する必要がある。論理的
遅延は、特定のインデックスビットを区分セレクタから
のビットで置き換えることによるものであり、ほぼゲー
ト2つ分の遅延を与える並列1−ビットマルチプレクサ
により生じる。1−ビットマルチプレクサは、知られて
いるように常に2つの論理AND機能からなる論理OR
を実行させることにより構成されるので、ゲート2つ分
の遅延が生じる。タグコンパレータの拡張は、上述した
と同一のワイアド−OR機構により行われる。
【0031】第3に、このキャッシュ区分機構は、従来
のセット・アソシエーティブ・キャッシュ構成に対し
て、きわめてわずかの追加ハードウエアしか必要としな
い。タグ記憶部は、各タグで置換されたインデックスビ
ットの記録部を含むように拡張される必要があるが、区
分の数が少ないものと考えられるので、少ない数のビッ
トのみが置き換えられるものと期待できる。加えて、各
タグコンパレータは、置き換えられたインデックスビッ
トについての少ない数のビットコンパレータを含むよう
に拡張する必要がある。最後に、少数の1−ビットマル
チプレクサが特定のビットを固定するために必要とな
る。
【0032】第4には、この機構は、記憶部が区分セレ
クタ及び区分セレクタマスクによってアロケートされる
ので、区分毎にキャッシュ記録部を保証することにな
る。区分の間で共有される領域では、競合は生じない。
このメカニズムは、キャッシュ区分のサイズを可変と
し、適切なサイズとされた区分は、すべての区分に対す
る記憶部を均衡化させるようにアロケートすることがで
きる。
【0033】第5に、このメカニズムは、アロケーショ
ンがキャッシュアクセス毎に付与される、区分セレクタ
及び区分セレクタマスクにより完全に決定されるので、
区分にアロケートされるキャッシュ記憶部の量を動的に
変化させることができる。したがって、区分は、リソー
スの必要性に適合するように容易に調節することができ
る。
【0034】最後に、このメカニズムは、区分に対する
アクセスがアクセス毎に付与される区分セレクタ及び区
分セレクタマスクにより完全に決定されるので、キャッ
シュ区分の共有を可能とする。
【0035】本発明はまた、第1及び第2の態様の上述
したキャッシュメモリを含むマルチプロセッサシステ
ム、共有キャッシュメモリを動的に区分する方法、及び
本発明の方法を実行するためのプログラムを記憶した信
号提供媒体をも含むものである。
【0036】上述した目的及びその他の目的、構成及び
効果については、図面をもってする本発明の好適な実施
例の詳細な説明により、より理解されよう。
【0037】
【発明の実施の形態】図面、より具体的には図3〜図7
を参照しつつ、本発明の方法及び構造の好適な実施例を
示す。
【0038】本発明は、共有キャッシュを区分するため
の機構を提供するものである。理解を容易且つ確実にす
るために、図面を通じて本発明において共通する同一の
要素を指定するために同一の参照符号を用いる。
【0039】(第1の態様)本発明の第1の態様におい
ては、従来のセット・アソシエーティブ・キャッシュの
キャッシュタグは、各区分に固有のパーティション識別
部(PID)を含むように拡張される。このタグは、図
2に示すように通常“m”ビットとされる。
【0040】図3は、PID31を含む典型的なアクセ
ス要求と、タグ部分32と、インデックス部分33とを
示す。すなわち、図3は、図2のアドレスタグがどのよ
うにしてPID31を含むように拡張されるかを示すも
のである。キャッシュが特定区分内において例えばプロ
セッサといったエンティティによりアクセスされる場合
には常に、PID31が与えられ、PID31は、タグ
ルックアップの一部として含まれる。
【0041】このようにして、それらのPID及びそれ
らのすべてのキャッシュタグが異なることになるので、
分断された区分は、同一のアドレスを用いてキャッシュ
にアクセスすることが可能となる。したがって、本発明
によれば論理的な妨害が防止できる。図3のPIDは、
pビットのPIDで2p個の分断された区分をサポート
している。
【0042】このように、第1の実施例においては、共
有されたキャッシュの区分は、タグビットをPIDを含
むように、例えば加えることにより変化させることで行
われる。図3の実施例におけるPID31は、タグの前
に加えられていることに留意されたい。しかしながら、
PIDは、タグの後ろ側で、インデックスの前に加える
こともできるし、又はタグビットと共に混合することも
できる。PIDは、システムのコンパレータにより、上
述したようにして認識できることのみが重要である。
【0043】図4は、8までの分断された区分を与える
ことができるN−ウエイセット・アソシエーティブ・キ
ャッシュについて、本発明の第1の実施例を用いる典型
的なシステム40を示す。より多くの又はより少ない区
分をPIDのビット数を変化させて与えることもできる
(例えば、3ビットが、8の分断された区分を与える
が、これが23となる。)。このため、PIDは、プロ
セッサに固有ではなくなるが、所望する区分の数に固有
のものとされる。区分の数は、プロセッサの数に依存す
るものではない。
【0044】図4のシステム40では、アドレスタグ及
びPIDの付近に“N”タグ記憶アレイ41及び“N”
データ記憶アレイ42が示されている。これらのタグア
レイ及びデータアレイは、アドレスのインデックスを受
け取る。コンパレータ43は、タグアレイからの入力を
受け取って、ヒット又はミスを決定する。コンパレータ
43はまた、PID31及びタグ32を受け取る。コン
パレータ43は、例えば、選択されたNのうちの1とい
った出力を、N対1バスマルチプレクサ44へと与え
る。マルチプレクサは、データアレイからの入力を受け
取り、データを次のプロセスステップへと与える。すな
わち、ルックアップ動作の間に“ヒット”すると、コン
パレータ43は、それぞれのデータ記録アレイ42から
のデータを受け取るマルチプレクサ44へと出力を与
え、このマルチプレクサ44がデータを与えている。
【0045】それぞれの区分は、各区分に付随する固有
の3−ビットPIDを含んでいて、PID31は、キャ
ッシュが参照される場合には常にアドレスと共に与えら
れている。PIDは、3ビットに制限されるものではな
く、設計者への制約及び必要に応じて3ビットよりも多
く、又は少なくすることができる。3ビットは、理解を
容易にするために本発明の態様において用いるにすぎな
い。
【0046】Nタグ記録アレイ41は、それぞれ3ビッ
ト分だけ広げられていて、PID31に適合するように
されている。データがキャッシュへと記録される場合に
は、PID31は、タグと共に記録される。タグコンパ
レータ43は、参照アドレスからタグと共にPIDを受
け取る。Nパラレルタグ等価比較は、タグ41に記憶さ
れたPID31と、キャッシュ参照部に与えられたPI
D31との間の比較を含むように拡張される。
【0047】図4のシステムは、ルック−アップ動作及
びストア−イン動作の双方に対して適応させることがで
きる。ルック−アップ動作の間の“ヒット”について上
述したように説明したが、当業者によれば、本願の全体
について概観できるものと考えられる。このため、ルッ
クアップについての詳細な説明は簡略化のため、本願に
おいては行わない。
【0048】同様にして、“ミス”が発生した場合に
は、その後ストア−イン動作が行われる。ストア−イン
動作はまた、良く知られたものである。簡単に言えば、
PIDを含むタグ比較が再度行われる。“ヒット”がタ
グアレイのうちの1つにおいて発生する場合には、その
後コンパレータ43は、マルチプレクサ44を用いて、
データが対応するデータアレイ内に記憶され、タグアレ
イがタグ32及びPID31でアップデートされる。
【0049】この第1の実施例は、いくつかの効果を有
する。例えば、記憶部に対して競合する区分及び所定の
区分により占有されるキャッシュの部分は動的に変化す
る。したがって、キャッシュ領域に区分をアロケートす
るメカニズムは必要とされない。
【0050】区分間におけるキャッシュラインの競合
は、定常的に発生することになるものと考えられ、各区
分は、そのアクセス回数、すなわち必要性に比例したキ
ャッシュ部分を含む。この第1の実施例の技術及びキャ
ッシュ区分システムは、区分のキャッシュリソースの必
要性に対して動的に調整を行う。
【0051】加えて、第1の態様は、従来のキャッシュ
構成に対して意義ある付加が、タグコンパレータの幅を
わずかに広げるだけですむので、キャッシュ性能には無
視できる程度の影響しか与えない。
【0052】しかしながら、本発明の第1の態様は、区
分に対するキャッシュ記憶部の“均衡性”を保証するも
のでもなく、又区分がそれ自体が使用するためキャッシ
ュの部分を保存しておくことを可能とするものではない
といった不都合がある。
【0053】すなわち、タグがPIDを含むように拡張
される場合に、区分は、共有キャッシュセット内の記憶
部について競合する。領域について競合することで、1
つの区分は常に他の区分よりも“ゲットイン”、例えば
満たされることになる。典型的には、ある程度の時間の
後定常状態となる。しかしながら、区分により用いられ
るキャッシュ記憶領域がアクセス回数、すなわち必要性
に応じて動的に調節されるという効果はあるものの、あ
る区分は、より少ない量の領域しか許されないことも考
えられる。
【0054】(第2の態様)第2の態様は、第1の態様
の上述したいくつかの不都合を改善するようにしたもの
である。簡単に説明すると、第2の態様は、区分の所定
の1つに対して“保証された領域”を指定するものであ
る。
【0055】本発明の第2の態様においては、図5〜図
7に示されるようにキャッシュのインデックスセットが
分断されたグループへと区分されるか、又は種々のサイ
ズのキャッシュへ区分へと区分され、各区分には、それ
らの必要性に適合したサイズの固有のキャッシュ区分が
アロケートされる。
【0056】さらに、キャッシュ区分のサイズは、動的
に変化されて、リソースの必要性に対して調整される。
【0057】第2の態様においては、キャッシュ区分
は、キャッシュに対して指令されるアドレスにおけるイ
ンデックスビットのいくつかを、参照を行う区分に基づ
いた特定の値へと強制(例えば割り当てる)することに
より行われる。この“割り当て”は、キャッシュ内の全
セットの一つのサブセットへとインデックスを規制する
効果を有している。
【0058】図5には、第2の態様においてどのように
してキャッシュアドレスを操作してキャッシュ区分を与
えるかを示す。
【0059】図5においては、高次のインデックスビッ
ト52は、“区分セレクタ”により置き換えられて、イ
ンデックス33をそれらの高次ビットが区分セレクタ5
2とされた2n−pのキャッシュセットへと縮小させて
いる。
【0060】置き換えられたインデックスビット51
は、アドレスに対して有為なので、インデックスビット
51にはタグ32が加えられ、“p”ビットだけ拡張さ
れている。置き換えられたインデックスビット51は、
インデックス33における最高次ビットとされても良
く、又は最低次ビットとすることもできることに留意さ
れたい。しかしながら、どのビットが置き換えられるビ
ットか、ということは、すべてのインデックスビット
が、インデックス自体、又は置き換えられたビット部分
のいずれかにおいてアドレス要求に際して保持される限
り、関連性を有するものではない。
【0061】この実施例においては、区分セレクタ52
により置き換えられるインデックスビットの数を各区分
に対して変化させ、サイズを変化させたキャッシュ区分
をアロケートし、リソースの必要性に応じて調節させる
ことができる。置き換えられるインデックスの最大数
は、最小のキャッシュ区分のサイズにより決定される
が、この理由は、“p”ビットを置き換えることにより
キャッシュ区分のサイズが、2n−pセットとなるため
である。
【0062】置き換えられるインデックスビットの最大
数はまた、すべての“p”ビットの置き換えが2pの分
断された区分を与えることになるのでキャッシュ区分の
最大数を規定することになる。置き換えられるインデッ
クスビットの最小の数は、ゼロであり、このようにする
ことでアドレスが変更されないキャッシュ全体からなる
単一のキャッシュ区分を与えることになる。
【0063】これに加えて、第2の態様においては、図
6〜図7に示されるように“区分セレクタマスク”を含
む。すなわち第2の実施例においては区分セレクタ52
は、例えば図7の71で示される区分セレクタマスクを
伴っており、この区分セレクタマスクは、インデックス
のどのビットを区分セレクタ52のビットで置き換える
かを特定する。これは、置き換えられるインデックスビ
ットの数を特定することにより、それぞれのキャッシュ
区分についてのサイズを動的に特定する効果を有する。
第2の態様では、アクセス毎に区分セレクタと区分セレ
クタマスクとが与えられている。
【0064】区分セレクタマスクは、区分セレクタと同
一のビット数を有しており、そのビットは、高次ビット
から開始するキャッシュインデックスのビット部分に対
応している。マスクビットが設定されると、対応するイ
ンデックスビットが設定されたマスクビットと同一のビ
ット位置を有する区分セレクタビットにより置き換えら
れる。
【0065】図6は、第2の態様のメカニズムを用いた
4つのキャッシュ区分、例えば1−4へと区分された1
6のインデックスセットを含むセット・アソシエーティ
ブ・キャッシュの1例を示した図である。
【0066】区分1にアクセスするためには、図6に示
されるように高次インデックスビットだけを置き換え
る。区分2,区分3にアクセスする場合には、高次イン
デックスビットの3つすべてを置き換える。最後に、区
分4にアクセスする場合には、2つの高次インデックス
ビットを置き換える。図6においては、最小キャッシュ
区分サイズは、2つのセットである。さらに、“x”
は、“don’t care”ビットを示す。
【0067】このようにして、図6においてはインデッ
クスビット、又は複数のインデックスビットが区分セレ
クタビット又は区分セレクタの複数のビットで置き換え
られる。このような機能を実行させることにより、イン
デックスは、キャッシュの一部分に割り当てられること
になる。このため、バイナリ(ディジタル)計算を用い
ることにより、セレクタは、キャッシュをどのようにし
て分割するかを決定する。キャッシュ区分2を例として
区分セレクタビット“100”という値は、キャッシュ
を8番目及び9番目のセットの間で分割することにな
る。さらに、“111”の区分セレクタマスクビットで
は、次の分割、例えばキャッシュ区分2とキャッシュ区
分3との間の区分は、10番目と11番目のセットの間
において行われる。区分セレクタマスクビットは、後述
するように単一ビットマルチプレクサを制御する。
【0068】図7は、8つまでの分断された区分を与え
ることができるN−ウエイセット・アソシエーティブ・
キャッシュ70に対して典型的な第2の態様の構成を示
した図である。例えば区分セレクタ及び区分セレクタマ
スクの形成といった区分情報は、区分数に依存する。区
分の数は2kであり、ここで、kは区分セレクタ及び区
分セレクタマスクビットの数を表す整数である。
【0069】アドレスがキャッシュ70に対して指令さ
れる毎に、区分セレクタ52及び区分セレクタマスク7
1がまた、指令される。区分セレクタマスク71のビッ
トは、それぞれ1−ビットマルチプレクサ72を制御
し、この1−ビットマルチプレクサ72は、インデック
スビット又は区分セレクタビットのいずれかを選択して
内部インデックスの一部とする。
【0070】したがって、アドレスから所定の数、例え
ば図7では3つとなるまで、インデックスビットは、区
分セレクタビットにより置き換えられて、内部インデッ
クスを形成する。内部インデックスは、従来のセット・
アソシエーティブ・キャッシュと同じ方法によりタグと
データアレイとを参照するために用いられる。
【0071】この態様のNタグ記憶アレイは、それぞれ
3ビットだけ広げられていて、置き換え可能なインデッ
クスビット、すなわち区分セレクタビットにより置き換
えられる対象である参照アドレスのインデックスビット
を適正化させているので、これらが置き換えられても失
われることはない。データがキャッシュ中に記憶される
場合には、タグと共に3つの置き換え可能なインデック
スビットが記録される。この態様のタグコンパレータ4
3は、3つの置き換え可能なインデックスビットをタグ
と共に参照アドレスから常に受け取る。N並列タグの均
等な比較は、第1の態様におけるPIDビットと同じ方
法においてタグに記憶された置き換え可能なインデック
スビットと、参照アドレスの置き換え可能なインデック
スビットとの間の比較を含むように拡張される。
【0072】上述した本発明は、すべてセット・アソシ
エーティブ・キャッシュについて適用するものとされて
いるが、これらの限定されるわけではなく、メモリキャ
ッシュ、ディスクキャッシュ、ファイルキャッシュにつ
いても適用することができる。
【0073】最も基本的な形態としては、上述した態様
のうちの1つを用いた本発明の方法800を、図8のフ
ローチャートに示す。特に、分断されたアドレス領域を
有し別々に分断された複数のエンティティの間において
共有されるキャッシュメモリを区分する本発明の方法8
00は、エンティティのうちの1つからのアクセス要求
を受け取るステップ(ステップ801)を含む。その
後、ステップ802において記憶領域は、複数のエンテ
ィティのそれぞれのエンティティへとアロケートされ、
アクセス要求に基づいて動的に分割が行われ、エンティ
ティのそれぞれの1つにおいて妨害が発生しないように
させている。このような動的な分離は、上述した第1の
態様及び第2の態様のうちの1つの構成を通して行われ
る。
【0074】図9に示すように、上述したハードウエア
及びプロセス環境に加えて、本発明の別の構成において
は、上述した共有キャッシュの動的な区分をコンピュー
タに実行させるための方法を含むものである。例えば、
この方法は、上述した特定の環境において実行すること
ができる。
【0075】このような方法は、例えば中央処理ユニッ
ト(CPU)を機能させることにより実行されて、機械
読み取り可能な指令のシーケンスとして実行させること
もできる。これらの指令は、種々のタイプの信号発生媒
体に存在させることができる。
【0076】このようにして、本発明のこの構成は、C
PUを含むディジタルデータプロセッサ及び上述したハ
ードウエアにより機械読み取り可能な指令のプログラム
を明らかに含む信号発生媒体を含む共有キャッシュの動
的区分方法を実行させるプログラム製品をも含むもので
ある。
【0077】この信号発生媒体としては、1例として高
速アクセス記憶の代表である例えばCPU内に含まれる
RAM(図示せず)を挙げることができる。これとは別
に、指令をCPUにより直接的又は間接的にアクセス可
能な磁気データ記憶ディスケット900(図9)といっ
た別の信号発生媒体に含ませることもできる。
【0078】ディスケット900、CPU、又はこれら
以外に含まれているか否かによらず、指令は、種々の機
械読み取り可能なデータ記憶媒体、例えばDASD記憶
(例えば従来の“ハードドライブ”又はRAIDアレ
イ)、磁気テープ、電気的リード−オンリーメモリ(例
えばROM、EPROM、又はEEPROM)、光学的
記憶媒体(例えば、CD−ROM、WORM、DVD、
ディジタルオプティカルテープ等)、紙“パンチ”カー
ド、又はディジタル及びアナログ及び通信リンク及びワ
イヤレス通信といった通信媒体を含む別の好適な信号発
生媒体に記録することもできる。本発明の態様を例示す
るに当たり、機械読み取り可能な指令は、“C”といっ
た言語などからコンパイルされたソフトウエアオブジェ
クトコードを挙げることができる。
【0079】これまで本発明を好適な実施例により説明
してきたが、当業者によれば、種々の変更、改良を行う
ことができることであろう。
【0080】例えば、磁気ディスクブロックキャッシュ
又はファイルシステムファイルキャッシュといったコン
ピュータ記憶以外のアイテムの共有キャッシュにおいて
も区分は効果的であろう。このため、好適な態様は実施
例として示したにすぎず、本発明の制限するものではな
い。本発明の範囲は、請求項により規定されるものであ
る。
【0081】以下に本発明を要約する。 (1)それぞれが分断されたアドレス領域を含み、別々
に分断された複数のエンティティの間に共有されるキャ
ッシュメモリであって、該キャッシュメモリは、前記各
エンティティを相互に妨害させることなく複数の前記エ
ンティティそれぞれにアロケートされた記憶領域を動的
に分離するキャッシュセグレゲータを含むキャッシュメ
モリ。 (2) 前記セグレゲータは、受け取ったアクセス要求
の内容に応じて前記記憶領域を動的に分離する、(1)
に記載のキャッシュメモリ。 (3) それぞれが分断されたアドレス領域を含み、別
々に分断された複数のエンティティの間に共有されるキ
ャッシュメモリであって、該キャッシュメモリは、複数
の前記エンティティのうちの1つからアクセス要求を受
け取るための手段と、前記各エンティティを相互に妨害
させることなく複数の前記エンティティそれぞれにアロ
ケートされた記憶領域を前記アクセス要求に応じて動的
に分離するための手段と、を含むキャッシュメモリ。 (4) 前記エンティティは、少なくとも1つのプロセ
ッサを含む、(3)に記載のキャッシュメモリ。 (5) 前記分離手段は、アクセス要求のキャッシュタ
グを拡張して複数の前記エンティティのうちのそれぞれ
1つを同定するための固有識別部を含ませるための手段
を含む、(3)に記載のキャッシュメモリ。 (6) 前記キャッシュは、セット・アソシエーティブ
・キャッシュを含む、(3)に記載のキャッシュメモ
リ。 (7) 前記固有識別部は、前記アクセス要求に含まれ
るパーティション識別部(PID)を含む、(5)に記
載のキャッシュメモリ。 (8) 前記PIDは、他のPIDと互いに異なってお
り、前記キャッシュがエンティティによりアクセスされ
る場合には常に、前記PIDがタグルックアップの一部
として含まれるように与えられ、分断されたエンティテ
ィが前記キャッシュにアクセスするため同一のアドレス
を使用する、(7)に記載のキャッシュメモリ。 (9) 前記PIDのビット数を変更することにより分
離されたキャッシュ区分の数が変化し、前記区分の数
は、エンティティの数から独立する、(7)に記載のキ
ャッシュメモリ。 (10) 前記PIDは、前記分離手段により分離され
た前記キャッシュのそれぞれの部分について固有とされ
る、(7)に記載のキャッシュメモリ。 (11) 前記キャッシュメモリは、ディスクキャッシ
ュメモリ及びファイルキャッシュメモリのうちの1つを
含む、(3)に記載のキャッシュメモリ。 (12) 前記分離手段は、固有識別部に応じてアクセ
ス要求のキャッシュインデックスがインデックスセット
のうちの特定のインデックスセット内に割り当てられる
ように割り当てるための手段を含む、(3)に記載のキ
ャッシュメモリ。 (13) 前記割り当て手段は、前記エンティティの所
定のエンティティに対し、インデックスセットのうちの
保証された1つのセットを指定する、(12)に記載の
キャッシュメモリ。 (14) 前記キャッシュの前記インデックスセット
は、種々のサイズの分断されたグループに区分され、該
分断されたグループがキャッシュ区分であり、各キャッ
シュ区分は、キャッシュに対する要求に適合するサイズ
のキャッシュの固有部分にアロケートされている、(1
2)に記載のキャッシュメモリ。 (15) 前記キャッシュ区分のサイズが、リソースの
必要性に対して動的に変化する、(12)に記載のキャ
ッシュメモリ。 (16) 前記割り当て手段は、アクセス要求における
インデックスビットの所定数を、参照する前記エンティ
ティに応じて特定の値とすることによりキャッシュ区分
を実行し、前記インデックスは、前記キャッシュのすべ
てのサブセットに割り当てられる(12)に記載のキャ
ッシュメモリ。 (17) さらに、“n”−ビットインデックスのうち
の高次ビットを置き換えることにより前記区分を実行す
る区分セレクタを含ませることにより、高次ビットとし
て前記区分セレクタを含む2n−p(“p”は、0以上
の整数を示す。)キャッシュセットへと減少させる、
(12)に記載のキャッシュメモリ。 (18) 置き換えられた前記インデックスビットが取
り去られ、該取り去られたインデックスビットが前記タ
グに加えられて前記タグを“p”ビットだけ拡張する、
(17)に記載のキャッシュメモリ。 (19) 前記区分セレクタにより置き換えられたイン
デックスビットの数が各区分について変化して、サイズ
の変化するキャッシュ区分をアロケートする、(17)
に記載のキャッシュメモリ。 (20) 前記割り当て手段は、さらにアクセス要求に
おける区分セレクタを伴う区分セレクタマスクを含み、
前記区分セレクタマスクは、前記インデックスのうちの
どのビットが前記区分セレクタのビットにより置き換え
られるかを特定して、置き換えるインデックスビットの
数を特定することにより各キャッシュ区分のサイズを動
的に特定する、(17)に記載のキャッシュメモリ。 (21) 前記区分セレクタマスクは、前記区分セレク
タと同じビット数を有し、該ビットは、前記高次ビット
から開始する前記キャッシュインデックスのビット位置
に対応し、マスクビットが設定されると、対応する前記
インデックスビットが設定されたマスクビットと同一の
ビット位置を有する区分セレクタビットにより置き換え
られる、(20)に記載のキャッシュメモリ。 (22) それぞれが分断されたアドレス領域を含み、
別々に分断された複数のエンティティを含むマルチプロ
セッサシステムであって、該マルチプロセッサシステム
は、別々に分断された複数の前記エンティティの間で共
有されるキャッシュメモリを含み、該キャッシュメモリ
は、複数の前記エンティティのいずれかからのアクセス
要求を受け取り、前記エンティティのそれぞれ1つを同
定するための固有識別部を与えるアクセス要求部を含
み、前記固有識別部は、前記各エンティティを相互に妨
害させることなく前記エンティティのそれぞれにアロケ
ートされる記憶領域を前記アクセス要求に応じて動的に
分離する、マルチプロセッサシステム。 (23) 前記キャッシュメモリは、複数のタグ記憶ア
レイと、複数のデータ記憶アレイとを含み、前記タグ記
憶アレイ及び前記データ記憶アレイは、前記アクセス要
求のインデックスを受け取り、前記システムはさらに、
前記タグ記憶アレイと組み合わされて前記固有識別部
と、前記アクセス要求のタグとを受け取るためのコンパ
レータと、前記コンパレータ及び前記データ記憶アレイ
と組み合わされて前記コンパレータからの出力に応じて
外部出力を与えるマルチプレクサとを含む、(22)に
記載のマルチプロセッサシステム。 (24) 前記固有識別部は、前記キャッシュメモリの
パーティションを同定するためのパーティション識別部
(PID)を含み、前記キャッシュメモリがエンティテ
ィにより参照される場合に前記PIDが前記アクセス要
求に与えられる、(23)に記載のマルチプロセッサシ
ステム。 (25) 前記タグ記憶アレイはそれぞれ、ビットの所
定数だけ広げられて前記固有識別部に対応しており、前
記キャッシュにデータが記憶される場合には、前記固有
識別部が前記タグと共に記憶される、(24)に記載の
マルチプロセッサシステム。 (26) 分断されたアドレス領域を含み、別々に分断
された複数のエンティティを含むマルチプロセッサシス
テムであって、該マルチプロセッサシステムは、別々に
分断された複数の前記エンティティの間で共有されるキ
ャッシュメモリを含み、該キャッシュメモリは、複数の
前記エンティティのいずれかからのアクセス要求及び固
有識別部を受け取り、前記固有識別部が前記アクセス要
求のキャッシュインデックスが前記エンティティのうち
の1つからのインデックスセットの特定の1つに割り当
てられるように割り当てるアクセス要求部を含み、前記
各エンティティを相互に妨害させることなく前記エンテ
ィティにアロケートされる記憶領域は、前記アクセス要
求に応じた前記固有識別部を含む、マルチプロセッサシ
ステム。 (27) 前記キャッシュメモリは、タグ記憶アレイ
と、データ記憶アレイとを含み、前記タグ記憶アレイ及
び前記データ記憶アレイは、前記アクセス要求の前記キ
ャッシュインデックスを受け取り、前記固有識別部は、
区分セレクタを含み、前記システムはさらに、前記タグ
記憶アレイと組合わされて、前記区分セレクタと前記ア
クセス要求のタグとを受け取るためのコンパレータと、
前記区分セレクタのそれぞれのビットを受け取るように
組合わされ、前記タグ記憶アレイ及び前記データ記録ア
レイへの入力を与える複数のマルチプレクサと、前記コ
ンパレータ及び前記データ記憶アレイと組み合わされ
て、前記コンパレータからの出力に応じて外部出力を与
えるためのマルチプレクサとを含む、(26)に記載の
マルチプロセッサシステム。 (28) それぞれが分断されたアドレス領域を含み、
別々に分断された複数のエンティティの間に共有される
キャッシュメモリの区分方法であって、該方法は、複数
の前記エンティティのうちの1つからアクセス要求を受
け取るステップと、前記各エンティティを相互に妨害さ
せることなく複数の前記エンティティそれぞれにアロケ
ートされた記憶領域を動的に分離するステップとを含
む、キャッシュメモリの区分方法。 (29) それぞれが分断されたアドレス領域を含み、
別々に分断された複数のエンティティの間に共有される
キャッシュメモリを動的に区分する方法を実行するため
の処理装置によって実行可能な機械読み取り可能な指令
のプログラムを明確に含む信号発生媒体であって、前記
方法は、複数の前記エンティティのうちの1つからアク
セス要求を受け取るステップと、前記各エンティティを
相互に妨害させることなく複数の前記エンティティそれ
ぞれにアロケートされた記憶領域を動的に分離するステ
ップとを含む、信号保持媒体。
【図面の簡単な説明】
【図1】図1は、直接マップド(セットアソシエーテッ
ド)キャッシュがのようにして記憶部へとマップするか
を示した図。
【図2】図2は、従来の直接マップド、又はセット・ア
ソシエーティブ・キャッシュを参照するために用いるア
ドレスの2つの部分を示した図。
【図3】図3は、本発明の第1の態様のキャッシュアド
レスの拡張を示した図。
【図4】図4は、本発明の第1の態様の構成を示した
図。
【図5】図5は、本発明の第2の態様におけるキャッシ
ュアドレスの拡張を示した図。
【図6】図6は、本発明の第2の態様により区分された
キャッシュの実施例を示した図。
【図7】図7は、本発明の第2の態様の構成を示した
図。
【図8】図8は、本発明の第1及び第2の態様のいずれ
かを構成する本発明の方法800のフローチャートを示
した図。
【図9】図9は、共有キャッシュを動的に分離するため
方法800を用いたプログラムを記憶する記憶媒体90
0を示した図。
【符号の説明】
10…セット・アソシエーティブ・キャッシュ 11…大容量記憶部 12…ライン 13…固定セット 21…タグ 22…インデックス 31…PID 32…タグ部分 33…インデックス部分 40…システム 41…タグ記憶アレイ 42…データ記憶アレイ 43…コンパレータ 44…マルチプレクサ
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI テーマコート゛(参考) G06F 15/177 682 G06F 15/177 682B (72)発明者 マシアス・オースチン・ブルームリッチ アメリカ合衆国06877、コネチカット州、 リッジフィールド、フロリダ・ヒル・ロー ド 76 Fターム(参考) 5B005 JJ23 KK13 MM01 NN42 TT02 UU43 5B045 BB12 BB28 BB29 BB47 DD06 DD12 GG01

Claims (29)

    【特許請求の範囲】
  1. 【請求項1】 それぞれが分断されたアドレス領域を含
    み、別々に分断された複数のエンティティの間に共有さ
    れるキャッシュメモリであって、該キャッシュメモリ
    は、 前記各エンティティを相互に妨害させることなく複数の
    前記エンティティそれぞれにアロケートされた記憶領域
    を動的に分離するキャッシュセグレゲータを含むキャッ
    シュメモリ。
  2. 【請求項2】 前記セグレゲータは、受け取ったアクセ
    ス要求の内容に応じて前記記憶領域を動的に分離する、
    請求項1に記載のキャッシュメモリ。
  3. 【請求項3】 それぞれが分断されたアドレス領域を含
    み、別々に分断された複数のエンティティの間に共有さ
    れるキャッシュメモリであって、該キャッシュメモリ
    は、 複数の前記エンティティのうちの1つからアクセス要求
    を受け取るための手段と、 前記各エンティティを相互に妨害させることなく複数の
    前記エンティティそれぞれにアロケートされた記憶領域
    を前記アクセス要求に応じて動的に分離するための手段
    と、を含むキャッシュメモリ。
  4. 【請求項4】 前記エンティティは、少なくとも1つの
    プロセッサを含む、請求項3に記載のキャッシュメモ
    リ。
  5. 【請求項5】 前記分離手段は、アクセス要求のキャッ
    シュタグを拡張して複数の前記エンティティのうちのそ
    れぞれ1つを同定するための固有識別部を含ませるため
    の手段を含む、請求項3に記載のキャッシュメモリ。
  6. 【請求項6】 前記キャッシュは、セット・アソシエー
    ティブ・キャッシュを含む、請求項3に記載のキャッシ
    ュメモリ。
  7. 【請求項7】 前記固有識別部は、前記アクセス要求に
    含まれるパーティション識別部(PID)を含む、請求
    項5に記載のキャッシュメモリ。
  8. 【請求項8】 前記PIDは、他のPIDと互いに異な
    っており、前記キャッシュがエンティティによりアクセ
    スされる場合には常に、前記PIDがタグルックアップ
    の一部として含まれるように与えられ、分断されたエン
    ティティが前記キャッシュにアクセスするため同一のア
    ドレスを使用する、請求項7に記載のキャッシュメモ
    リ。
  9. 【請求項9】 前記PIDのビット数を変更することに
    より分離されたキャッシュ区分の数が変化し、前記区分
    の数は、エンティティの数から独立する、請求項7に記
    載のキャッシュメモリ。
  10. 【請求項10】 前記PIDは、前記分離手段により分
    離された前記キャッシュのそれぞれの部分について固有
    とされる、請求項7に記載のキャッシュメモリ。
  11. 【請求項11】 前記キャッシュメモリは、ディスクキ
    ャッシュメモリ及びファイルキャッシュメモリのうちの
    1つを含む、請求項3に記載のキャッシュメモリ。
  12. 【請求項12】 前記分離手段は、固有識別部に応じて
    アクセス要求のキャッシュインデックスがインデックス
    セットのうちの特定のインデックスセット内に割り当て
    られるように割り当てるための手段を含む、請求項3に
    記載のキャッシュメモリ。
  13. 【請求項13】 前記割り当て手段は、前記エンティテ
    ィの所定のエンティティに対し、インデックスセットの
    うちの保証された1つのセットを指定する、請求項12
    に記載のキャッシュメモリ。
  14. 【請求項14】 前記キャッシュの前記インデックスセ
    ットは、種々のサイズの分断されたグループに区分さ
    れ、 該分断されたグループがキャッシュ区分であり、各キャ
    ッシュ区分は、キャッシュに対する要求に適合するサイ
    ズのキャッシュの固有部分にアロケートされている、請
    求項12に記載のキャッシュメモリ。
  15. 【請求項15】 前記キャッシュ区分のサイズが、リソ
    ースの必要性に対して動的に変化する、請求項12に記
    載のキャッシュメモリ。
  16. 【請求項16】 前記割り当て手段は、アクセス要求に
    おけるインデックスビットの所定数を、参照する前記エ
    ンティティに応じて特定の値とすることによりキャッシ
    ュ区分を実行し、前記インデックスは、前記キャッシュ
    のすべてのサブセットに割り当てられる請求項12に記
    載のキャッシュメモリ。
  17. 【請求項17】 さらに、“n”−ビットインデックス
    のうちの高次ビットを置き換えることにより前記区分を
    実行する区分セレクタを含ませることにより、高次ビッ
    トとして前記区分セレクタを含む2n−p(“p”は、
    0以上の整数を示す。)キャッシュセットへと減少させ
    る、請求項12に記載のキャッシュメモリ。
  18. 【請求項18】 置き換えられた前記インデックスビッ
    トが取り去られ、該取り去られたインデックスビットが
    前記タグに加えられて前記タグを“p”ビットだけ拡張
    する、請求項17に記載のキャッシュメモリ。
  19. 【請求項19】 前記区分セレクタにより置き換えられ
    たインデックスビットの数が各区分について変化して、
    サイズの変化するキャッシュ区分をアロケートする、請
    求項17に記載のキャッシュメモリ。
  20. 【請求項20】 前記割り当て手段は、さらにアクセス
    要求における区分セレクタを伴う区分セレクタマスクを
    含み、 前記区分セレクタマスクは、前記インデックスのうちの
    どのビットが前記区分セレクタのビットにより置き換え
    られるかを特定して、置き換えるインデックスビットの
    数を特定することにより各キャッシュ区分のサイズを動
    的に特定する、請求項17に記載のキャッシュメモリ。
  21. 【請求項21】 前記区分セレクタマスクは、前記区分
    セレクタと同じビット数を有し、該ビットは、前記高次
    ビットから開始する前記キャッシュインデックスのビッ
    ト位置に対応し、 マスクビットが設定されると、対応する前記インデック
    スビットが設定されたマスクビットと同一のビット位置
    を有する区分セレクタビットにより置き換えられる、請
    求項20に記載のキャッシュメモリ。
  22. 【請求項22】 それぞれが分断されたアドレス領域を
    含み、別々に分断された複数のエンティティを含むマル
    チプロセッサシステムであって、該マルチプロセッサシ
    ステムは、 別々に分断された複数の前記エンティティの間で共有さ
    れるキャッシュメモリを含み、該キャッシュメモリは、 複数の前記エンティティのいずれかからのアクセス要求
    を受け取り、前記エンティティのそれぞれ1つを同定す
    るための固有識別部を与えるアクセス要求部を含み、 前記固有識別部は、前記各エンティティを相互に妨害さ
    せることなく前記エンティティのそれぞれにアロケート
    される記憶領域を前記アクセス要求に応じて動的に分離
    する、マルチプロセッサシステム。
  23. 【請求項23】 前記キャッシュメモリは、複数のタグ
    記憶アレイと、複数のデータ記憶アレイとを含み、前記
    タグ記憶アレイ及び前記データ記憶アレイは、前記アク
    セス要求のインデックスを受け取り、前記システムはさ
    らに、 前記タグ記憶アレイと組み合わされて前記固有識別部
    と、前記アクセス要求のタグとを受け取るためのコンパ
    レータと、 前記コンパレータ及び前記データ記憶アレイと組み合わ
    されて前記コンパレータからの出力に応じて外部出力を
    与えるマルチプレクサとを含む、請求項22に記載のマ
    ルチプロセッサシステム。
  24. 【請求項24】 前記固有識別部は、前記キャッシュメ
    モリのパーティションを同定するためのパーティション
    識別部(PID)を含み、前記キャッシュメモリがエン
    ティティにより参照される場合に前記PIDが前記アク
    セス要求に与えられる、請求項23に記載のマルチプロ
    セッサシステム。
  25. 【請求項25】 前記タグ記憶アレイはそれぞれ、ビッ
    トの所定数だけ広げられて前記固有識別部に対応してお
    り、前記キャッシュにデータが記憶される場合には、前
    記固有識別部が前記タグと共に記憶される、請求項23
    に記載のマルチプロセッサシステム。
  26. 【請求項26】 分断されたアドレス領域を含み、別々
    に分断された複数のエンティティを含むマルチプロセッ
    サシステムであって、該マルチプロセッサシステムは、 別々に分断された複数の前記エンティティの間で共有さ
    れるキャッシュメモリを含み、該キャッシュメモリは、 複数の前記エンティティのいずれかからのアクセス要求
    及び固有識別部を受け取り、前記固有識別部が前記アク
    セス要求のキャッシュインデックスが前記エンティティ
    のうちの1つからのインデックスセットの特定の1つに
    割り当てられるように割り当てるアクセス要求部を含
    み、 前記各エンティティを相互に妨害させることなく前記エ
    ンティティにアロケートされる記憶領域は、前記アクセ
    ス要求に応じた前記固有識別部を含む、マルチプロセッ
    サシステム。
  27. 【請求項27】 前記キャッシュメモリは、タグ記憶ア
    レイと、データ記憶アレイとを含み、前記タグ記憶アレ
    イ及び前記データ記憶アレイは、前記アクセス要求の前
    記キャッシュインデックスを受け取り、前記固有識別部
    は、区分セレクタを含み、前記システムはさらに、 前記タグ記憶アレイと組合わされて、前記区分セレクタ
    と前記アクセス要求のタグとを受け取るためのコンパレ
    ータと、 前記区分セレクタのそれぞれのビットを受け取るように
    組合わされ、前記タグ記憶アレイ及び前記データ記録ア
    レイへの入力を与える複数のマルチプレクサと、 前記コンパレータ及び前記データ記憶アレイと組み合わ
    されて、前記コンパレータからの出力に応じて外部出力
    を与えるためのマルチプレクサとを含む、請求項26に
    記載のマルチプロセッサシステム。
  28. 【請求項28】 それぞれが分断されたアドレス領域を
    含み、別々に分断された複数のエンティティの間に共有
    されるキャッシュメモリの区分方法であって、該方法
    は、 複数の前記エンティティのうちの1つからアクセス要求
    を受け取るステップと、 前記各エンティティを相互に妨害させることなく複数の
    前記エンティティそれぞれにアロケートされた記憶領域
    を動的に分離するステップとを含む、キャッシュメモリ
    の区分方法。
  29. 【請求項29】 それぞれが分断されたアドレス領域を
    含み、別々に分断された複数のエンティティの間に共有
    されるキャッシュメモリを動的に区分する方法を実行す
    るための処理装置によって実行可能な機械読み取り可能
    な指令のプログラムを明確に含む信号保持媒体であっ
    て、前記方法は、 複数の前記エンティティのうちの1つからアクセス要求
    を受け取るステップと、 前記各エンティティを相互に妨害させることなく複数の
    前記エンティティそれぞれにアロケートされた記憶領域
    を動的に分離するステップとを含む、信号保持媒体。
JP2000087694A 2000-03-27 2000-03-27 共有されたキャッシュを動的に区分するための方法及びシステム Pending JP2001282617A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000087694A JP2001282617A (ja) 2000-03-27 2000-03-27 共有されたキャッシュを動的に区分するための方法及びシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000087694A JP2001282617A (ja) 2000-03-27 2000-03-27 共有されたキャッシュを動的に区分するための方法及びシステム

Publications (1)

Publication Number Publication Date
JP2001282617A true JP2001282617A (ja) 2001-10-12

Family

ID=18603663

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000087694A Pending JP2001282617A (ja) 2000-03-27 2000-03-27 共有されたキャッシュを動的に区分するための方法及びシステム

Country Status (1)

Country Link
JP (1) JP2001282617A (ja)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006520044A (ja) * 2003-03-06 2006-08-31 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ データフローアプリケーションを処理するために最適化されるキャッシュを備えるデータ処理システム
US7493448B2 (en) 2002-06-24 2009-02-17 Nec Corporation Prevention of conflicting cache hits without an attendant increase in hardware
JP2009528610A (ja) * 2006-03-02 2009-08-06 エヌエックスピー ビー ヴィ タスクの実行フェーズに基づいてキャッシュパーティションを動的にリサイズする方法及び装置
WO2010089799A1 (ja) * 2009-02-06 2010-08-12 富士通株式会社 キャッシュメモリシステム、コンピュータシステム、及びキャッシュメモリアクセス方法
EP2278472A1 (en) 2009-07-09 2011-01-26 Fujitsu Limited Cache memory
JP2012027652A (ja) * 2010-07-22 2012-02-09 Fujitsu Ltd キャッシュメモリ
JP2013502645A (ja) * 2009-08-21 2013-01-24 エンパイア テクノロジー ディベロップメント エルエルシー キャッシュメモリ結合性を伴うプロセッサコアの割当
JP2013521579A (ja) * 2010-03-04 2013-06-10 マイクロソフト コーポレーション データベースサーバのためのバッファプール拡張
US9235531B2 (en) 2010-03-04 2016-01-12 Microsoft Technology Licensing, Llc Multi-level buffer pool extensions
WO2018179044A1 (ja) * 2017-03-27 2018-10-04 三菱電機株式会社 キャッシュメモリおよびその制御方法
WO2022261229A1 (en) * 2021-06-09 2022-12-15 Ampere Computing Llc Apparatus and method for controlling allocations in a shared cache of a numa system
US11880306B2 (en) 2021-06-09 2024-01-23 Ampere Computing Llc Apparatus, system, and method for configuring a configurable combined private and shared cache
US11947454B2 (en) 2021-06-09 2024-04-02 Ampere Computing Llc Apparatuses, systems, and methods for controlling cache allocations in a configurable combined private and shared cache in a processor-based system

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7493448B2 (en) 2002-06-24 2009-02-17 Nec Corporation Prevention of conflicting cache hits without an attendant increase in hardware
JP2006520044A (ja) * 2003-03-06 2006-08-31 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ データフローアプリケーションを処理するために最適化されるキャッシュを備えるデータ処理システム
JP2009528610A (ja) * 2006-03-02 2009-08-06 エヌエックスピー ビー ヴィ タスクの実行フェーズに基づいてキャッシュパーティションを動的にリサイズする方法及び装置
WO2010089799A1 (ja) * 2009-02-06 2010-08-12 富士通株式会社 キャッシュメモリシステム、コンピュータシステム、及びキャッシュメモリアクセス方法
EP2278472A1 (en) 2009-07-09 2011-01-26 Fujitsu Limited Cache memory
JP2013502645A (ja) * 2009-08-21 2013-01-24 エンパイア テクノロジー ディベロップメント エルエルシー キャッシュメモリ結合性を伴うプロセッサコアの割当
JP2013521579A (ja) * 2010-03-04 2013-06-10 マイクロソフト コーポレーション データベースサーバのためのバッファプール拡張
US9069484B2 (en) 2010-03-04 2015-06-30 Microsoft Technology Licensing, Llc Buffer pool extension for database server
US9235531B2 (en) 2010-03-04 2016-01-12 Microsoft Technology Licensing, Llc Multi-level buffer pool extensions
JP2012027652A (ja) * 2010-07-22 2012-02-09 Fujitsu Ltd キャッシュメモリ
WO2018179044A1 (ja) * 2017-03-27 2018-10-04 三菱電機株式会社 キャッシュメモリおよびその制御方法
US11216371B2 (en) 2017-03-27 2022-01-04 Mitsubishi Electric Corporation Cache memory and method for controlling the same
WO2022261229A1 (en) * 2021-06-09 2022-12-15 Ampere Computing Llc Apparatus and method for controlling allocations in a shared cache of a numa system
US11880306B2 (en) 2021-06-09 2024-01-23 Ampere Computing Llc Apparatus, system, and method for configuring a configurable combined private and shared cache
US11947454B2 (en) 2021-06-09 2024-04-02 Ampere Computing Llc Apparatuses, systems, and methods for controlling cache allocations in a configurable combined private and shared cache in a processor-based system

Similar Documents

Publication Publication Date Title
KR100335300B1 (ko) 캐시 메모리, 멀티프로세서 시스템, 공유 캐시 메모리의 분할 방법 및, 기록 매체
US8156302B2 (en) Integrating data from symmetric and asymmetric memory
EP2645259B1 (en) Method, device and system for caching data in multi-node system
US8095736B2 (en) Methods and systems for dynamic cache partitioning for distributed applications operating on multiprocessor architectures
US20130097387A1 (en) Memory-based apparatus and method
US9063866B1 (en) Page table data structure for online classification of memory pages based on activity level
EP0810527A1 (en) A sectored virtual memory management system and translation look-aside buffer (TLB) for the same
US5897660A (en) Method for managing free physical pages that reduces trashing to improve system performance
CN114860163B (zh) 一种存储系统、内存管理方法和管理节点
US8996844B1 (en) Apparatus and method for accessing non-overlapping portions of memory according to respective orders of dimensions
JP2003337834A (ja) サイズ変更可能なキャッシュ・センシティブ・ハッシュ・テーブル
JP2004164607A (ja) 共用リソースを動的に割り振るためのシステムおよび方法
US11061788B2 (en) Storage management method, electronic device, and computer program product
US20130007370A1 (en) Method and apparatus for minimizing working memory contentions in computing systems
JP2001282617A (ja) 共有されたキャッシュを動的に区分するための方法及びシステム
US20150193355A1 (en) Partitioned cache replacement algorithm
JP2005293300A (ja) セットアソシアティブキャッシュシステム及びキャッシュメモリの制御方法
JPH07271674A (ja) キャッシュ最適化の方法
WO2024078429A1 (zh) 内存管理方法、装置、计算机设备及存储介质
EP1605360A1 (en) Cache coherency maintenance for DMA, task termination and synchronisation operations
CN114064588A (zh) 存储空间调度方法及系统
CN115168247A (zh) 用于并行处理器中动态共享存储空间的方法及相应处理器
JP2009015509A (ja) キャッシュメモリ装置
KR100907477B1 (ko) 플래시 메모리에 저장된 데이터의 인덱스 정보 관리 장치및 방법
JPH07129464A (ja) 情報処理装置