JPH1196074A - 交換アルゴリズム動的選択コンピュータシステム - Google Patents

交換アルゴリズム動的選択コンピュータシステム

Info

Publication number
JPH1196074A
JPH1196074A JP10200576A JP20057698A JPH1196074A JP H1196074 A JPH1196074 A JP H1196074A JP 10200576 A JP10200576 A JP 10200576A JP 20057698 A JP20057698 A JP 20057698A JP H1196074 A JPH1196074 A JP H1196074A
Authority
JP
Japan
Prior art keywords
cache
class
item
section
data
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
JP10200576A
Other languages
English (en)
Inventor
Deii Gaizaa Burain
ブライン・ディー・ガイザー
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 JPH1196074A publication Critical patent/JPH1196074A/ja
Pending 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • G06F12/127Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning using additional replacement algorithms
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • 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/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass

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)【要約】 【課題】 メモリ階層中のより低いレベルからフェッチ
された項目をキャッシュから除去し、かつ、この項目の
選択を交換アルゴリズムで決定して、キャッシュにおけ
るヒットとミスの比率を改善すること。 【解決手段】 キャッシュメモリ114中に入力すべき
項目が、第1値及び第2値を含む少なくとも二つの可能
な値を有する関連するクラス属性112を備える。キャ
ッシュメモリ114が、第1項目が第1値を有する関連
するクラス属性112を有する場合に、第1項目をキャ
ッシュメモリ114中に配置する第1交換アルゴリズム
を使用する。また、キャッシュメモリ114は、第2項
目が第2値を有する関連するクラス属性112を有する
場合に、第2項目をキャッシュメモリ114中に配置す
る第2交換アルゴリズムを使用する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、キャッシュメモリ
におけるヒット率を改善する交換アルゴリズム動的選択
コンピュータシステムに関し、特に、メモリ階層中のよ
り低いレベルからフェッチされた項目をキャッシュメモ
リから除去し、かつ、この項目の選択を交換アルゴリズ
ムで決定する交換アルゴリズム動的選択コンピュータシ
ステムに関する。
【0002】
【従来の技術】従来、コンピュータシステムは、メモリ
システムの多重レベル階層を使用している。階層の最も
高いレベルでは、比較的処理速度が速い小容量のメモリ
を備えている。また、階層の最も低いレベルでは、比較
的処理速度が遅い低コストの大容量のメモリを備えてい
る。一般的に階層はキャッシュメモリ(適宜、キャッシ
ュと略称する)である小容量の高速メモリを有してい
る。キャッシュは、プロセッサ集積回路内に物理的に組
み込まれるか、又は、速度のためにプロセッサの近くに
配置されている。個別の命令キャッシュ及びデータキャ
ッシュを備えている。複数レベルのキャッシュを備える
場合もある。メモリ階層中のより低いレベルからフェッ
チされた項目は、一般的にキャッシュから項目を除去
(交換)する。除去すべき項目の選択は、交換アルゴリ
ズムによって決定される。
【0003】メモリ階層の目的は、平均メモリアクセス
時間を短縮することである。メモリ階層は、メモリから
要求される高い割合の項目が要求された際に、階層の最
も高いレベル(最も短い待ち時間を有するレベル)中に
存在する場合にのみコスト効率が良くなる。プロセッサ
がキャッシュに項目を要求し、かつ、項目がキャッシュ
中に存在する場合がイベントはキャッシュヒットであ
る。プロセッサがキャッシュに項目を要求し、かつ、項
目がキャッシュ中に存在しない場合のイベントがキャッ
シュミスである。このキャッシュミスの場合、要求され
た項目は、メモリ階層のより低いレベル(より長い待ち
時間)から取り出される。この場合、処理性能に大きな
影響を及ぼすことがある。平均メモリアクセス時間によ
って、キャッシュのヒットとミスの比率を改善し、この
ミスに対する時間不利を低減して、ヒットに要する時間
を短縮することが可能になる。
【0004】項目は、再びすぐ参照される可能性がある
場合にのみキャッシュ中に配置されることが理想的であ
る。この特性を有する項目は、ローカリティを有すると
称されるものである。全部又は全く再使用を有しない項
目は、キャッシュを「汚染(pollute)」し、キャッシュ
中に配置されないことが理想的である。ローカリティに
は、時間的ローカリティと空間的ローカリティの二つの
タイプがある。時間的ローカリティでは、全く同じ項目
が再度かつ直ちに参照される場合がある。空間的ローカ
リティは、最近参照された項目のアドレスに近いアドレ
スを有する項目が再度かつ直ちに参照される場合があ
る。例えば、連続的なデータストリーム及び連続的な命
令ストリームは、一般的に高い空間的ローカリティを有
し、時間的ローカリティをほとんど有しない。データス
トリームは度々時間的ローカリティ及び空間的ローカリ
ティの混合ローカリティを有する。したがって、本質的
にランダム又は連続的であるデータストリームのセクシ
ョンが長期間の参照のために良い候補の項目を、キャッ
シュから除去するため、その処理性能が低下する。一般
的に、キャッシュとメモリ階層との次の、より低いレベ
ルとの間で転送されるメモリの最小量がラインであり、
また、ブロック又はページと称されることもある。一般
的に、空間的ローカリティは、転送単位(ライン、ブロ
ック、ページ)のサイズを大きくすることによって調整
される。更に、データストリームが連続的である場合、
事前取出しにも使用される。キャッシュラインのサイズ
には制限があり、事前取出しはキャッシュから直ちに再
使用されるラインを除去する。
【0005】キャッシュがデータと共にラインアドレス
全体を記憶し、かつ、任意のラインがキャッシュ中の任
意の場所に配置できる場合のキャッシュが、フルアソシ
アティブキャッシュである。しかしながら、任意のライ
ンがキャッシュ中の任意の場所に配置できる大きいキャ
ッシュの場合、エントリがキャッシュ中にあるかどうか
(及びキャッシュ中のどこにあるか)を迅速に決定する
ために必要とされるハードウェアは、その規模が極めて
大きく、かつ、高価である。大きいキャッシュの場合、
より処理を速く、かつ、スペースを節約する代替方法
は、(索引と呼ばれる)アドレスのサブセットを使用し
て、キャッシュ内のライン位置を指定する。次に、タグ
と称される各物理アドレスの上位ビットの残りの組をデ
ータと共に記憶することである。索引を有するキャッシ
ュでは、特定のアドレスを有する項目は、索引によって
指定されたキャッシュ内の一つの場所(ラインの組)に
のみ配置できる。所与のアドレスの索引がサブセット中
の一つのラインに正確にマップするようになされている
場合のキャッシュが、直接マップキャッシュである。一
般的に、大きい直接マップキャッシュでは、同じサイズ
の結合キャッシュに対してキャッシュヒットのアクセス
時間がより短くなる。しかしながら、直接マップキャッ
シュでは、メモリの多数のラインが直接マップキャッシ
ュ中の各使用可能なスペースにマップするため、同一サ
イズの結合キャッシュに対してキャッシュミスの確率が
より高くなる。索引がサブセット中の複数のラインにマ
ップする場合のキャッシュがセットアソシアティブキャ
ッシュである。アドレスの全部又は一部は、アドレス空
間をセットに分割するセット索引を与えるようにハッシ
ュされる。直接マップキャッシュの場合、各ラインは一
つの場所にのみ配置されるため、交換用のアルゴリズム
は不要である。一般的に、直接マップキャッシュ以外の
全てのキャッシュは、交換用のアルゴリズムを必要とす
る。すなわち、索引がキャッシュセット中のメモリの複
数のラインにマップする場合、交換すべきラインを選択
しなければならない。
【0006】一般的に、メモリはワード(例えば、ワー
ド当たり32ビット)に編成され、また、ラインは、複
数のワード(例えば、ライン当たり16ワード)であ
る。主メモリも、一般的にページ当たり多数のラインを
有するページ(ブロック又はセグメント)に分割され
る。現在の多数のコンピュータメモリアーキテクチャで
は、CPUは、ハードウェアとソフトウェアの組合せに
よって主メモリにアクセスする物理アドレスに変換され
る仮想アドレスを生成する。仮想アドレスのグループ
は、各ページに動的に割り当てられる。仮想メモリ(ペ
ージング又はセグメンテーション)は、仮想アドレスを
物理アドレスに変換するページテーブルのデータ構造を
必要とする。一般的に、ページテーブルエントリ(PT
E)は、複数のアドレスを有している。PTEは、書込
み保護、使用許可及びオペレーティングシステムにとっ
て有用な多数の他の状態ビット及び属性ビットに関する
情報を有している。アドレス変換時間を短縮するため
に、コンピュータは、通常変換索引バッファ(TLB)
と称されるアドレス変換に割り当てられた特殊な結合キ
ャッシュを使用する。TLBエントリはキャッシュエン
トリであり、タグはページの仮想アドレスの高位ビット
であり、データ部分は、物理ページアドレス+PTE中
に記憶された追加の状態ビット及び属性ビットである。
【0007】キャッシュミスの場合、一般的にキャッシ
ュ中の一つのラインが新たに要求されたラインと入れ替
わる。直接マップキャッシュの場合、一つの固定の場所
において新しいラインが他のラインに代替される。フル
アソシアティブキャッシュの場合、交換すべきキャッシ
ュ中のラインを決定する交換アルゴリズムが必要であ
る。セットアソシアティブキャッシュの場合、交換すべ
きキャッシュ中のラインを決定する交換アルゴリズムが
必要となる。フルアソシアティブキャッシュ及びセット
アソシアティブキャッシュ中で交換すべきラインを決定
する交換アルゴリズムは、一般的に、どのラインが最近
使用されることが最も少ないかなどの動作時履歴データ
に基づいたものである。又は、交換アルゴリズムは、頻
繁に使用されることが最も少ないものに関する履歴デー
タに基づく場合もある。他の代替例としては、先入れ先
出し(FIFO)、疑似ランダム交換がある。以下に説
明するように、いくつかのラインを一回記憶し、次に、
それらを適所にロックする(それらを交換しない)交換
アルゴリズムを備えることが有利である。
【0008】コンピュータシステムでは、あるアプリケ
ーションが他のアプリケーションよりも高い優先度を有
している。したがってキャッシュヒット率の改善又はキ
ャッシュヒットの保証がいくつかのアプリケーションに
とって他のアプリケーションよりもより重要になる。同
様に、いくつかのデータが他のデータよりも重要又は重
大になる。特に、他のアプリケーションがその結果より
遅く動作する場合でも、いくつかのアプリケーションの
保証された一定の応答時間が重大になる。例えば、いく
つかの時間重大制御アプリケーションは、一般的なキャ
ッシュを使用することが出来ない。すなわち、イベント
が発生し、かつ、ソフトウェアが最小の、又は、既知の
一定の(決定的)時間内に応答する必要がある場合、重
大なコード又はデータがキャッシュ中に存在しない有限
の場合が常にあるため、一般的なキャッシュを使用する
ことが出来ない。いくつかのシステムでは、キャッシュ
の速度を有する別個のメモリ構造又はバッファが備えら
れているが、これは特定の組のライン又はページに割り
当てられる。したがって、除去はできない。他のシステ
ムでは、キャッシュ中のコードの重大な部分を保持する
ためにキャッシュのセクション又はキャッシュ中の特定
のラインがロックされる。例えば、Intel Pen
tium Pro/プロセッサは、頻繁に使用されるペ
ージがTLBから除去されるのを防ぐ機構を備えるPa
ge−Global−Enable(PGE)フラグを
ページテーブルエントリ中に有している。Cyrix
MediaGXプロセッサは、重大なグラフィックスデ
ータ及びエミュレーションルーチン用のキャッシュのロ
ックされたセクション、及びデータをロックされたセク
ションとの間で転送する拡張命令セットを備えている。
【0009】使用交換アルゴリズムを有するフルアソシ
アティブキャッシュ及びセットアソシアティブキャッシ
ュは、時間的ローカリティを有するラインに対して良好
に動作する。しかしながら、高い空間的ローカリティ及
び低い時間的ローカリティを有するデータストリーム又
は命令ストリームは、最少最近使用交換アルゴリズムを
有する結合キャッシュを完全に除去する。
【0010】混合ローカリティを有するデータストリー
ムのキャッシュヒット率を改善する一つの手法は、G.
Kurpanek氏他の「PA7200:A PA-RISK Processor
with Integrated High Performance MP Bus Interfac
e」、COMPCON Digest of Papers、1994年2月、3
75〜382ページに記載されている。このG.Kur
panek氏の手法では、メモリから要求されたライン
は、まず、アシストキャッシュと称される補助フルアソ
シアティブキャッシュ中に先入れ先出し(FIFO)順
序でロードされる。「空間的ローカリティ」ヒントはデ
ータが空間的ローカリティを示し、かつ、時間的ローカ
リティを示さないことをロード命令及び記憶命令中で指
定する。アシストキャッシュ中のデータラインが除去さ
れたとき、ラインが空間的ローカリティヒントを含んで
いる場合、ラインは主メモリ中に戻され、主キャッシュ
へ移動されない。ラインは、空間的ローカリティヒント
が存在しない場合にのみ主キャッシュへ向けられる。
【0011】混合ローカリティを有するデータストリー
ムのキャッシュヒット率を改善する代替手法は、J.
A.Rivers氏他の「Reducing Conflicts in Dire
ct-Mapped Caches With A Temporality-Based Desig
n」、Proceedings of the 1996 International Confere
nce on Parallel Processing,Vol.1,154〜1
63ページに記載されている。このRivers氏の手
法では、非時間的(NT)バッファと称される別個の補
助キャッシュを備えている。メモリから要求されたブロ
ックは、まず、主キャッシュ中に配置される。次に、主
キャッシュ中の各ブロックは、主キャッシュ中での、そ
の処理期間、各ブロックの部分が再び参照されないかを
確認するために監視される。ブロック内のワードが再使
用されない場合、ブロックは、非時間的(NT)である
場合にタグが付与される。データの要求が主キャッシュ
中のミス及び二次キャッシュ中のヒットとなり、かつ、
NTビットが参照されるブロックに対して設定される場
合、ブロックは主キャッシュに代えてNTバッファ中に
配置される。したがって、ブロックは、実行中に監視さ
れ、非時間的ローカリティを示すブロックが二回目に主
キャッシュ中に配置されることがなくなる。
【0012】Kurpanek氏の手法も、River
s氏の手法も、再使用のより高い確率を有する主キャッ
シュからラインを除去する低い時間的ローカリティの確
率が低下する。しかしながら、Kurpanek氏の手
法及びRivers氏の手法は、追加のハードウェアキ
ャッシュ構造を必要とする。混合ローカリティを有する
データストリームのキャッシュ性能を更に改善する必要
がある。空間的キャッシュロックを実施する方法を更に
改善する必要がある。特に、キャッシュされる項目の異
なるクラスに対して異なる交換アルゴリズムを有するキ
ャッシュが必要である。
【0013】
【発明が解決しようとする課題】このように上記従来例
は、その改善が必要である。本発明は、このような従来
の技術における課題を解決するものであり、メモリ階層
中のより低いレベルからフェッチされた項目をキャッシ
ュから除去(交換)し、かつ、この項目の選択を交換ア
ルゴリズムで決定して、キャッシュにおけるヒットとミ
スの比率を改善できる交換アルゴリズム動的選択コンピ
ュータシステムの提供を目的としている。
【0014】
【課題を解決するための手段】上記目的を達成するため
に、本発明の交換アルゴリズム動的選択コンピュータシ
ステムにおける種々の用途に対して、キャッシュ性能の
最適化における多大なフレキシビリティを与えるキャッ
シュシステムの多数の例示的な実施形態について説明す
る。各例示的な実施形態では、キャッシュすべき項目
は、対応するクラス属性を有する。各クラス属性は、異
なる対応する交換アルゴリズムを有する。キャッシュ
は、セクションに論理的に分割される。キャッシュ論理
セクションは、対応するクラスに割り当てられるか、又
は、セクション又はクラスは、多数のクラスに対応する
いくつかのセクションを有する階層の形でランク付けさ
れる。例えば、各セクションが単一のクラスに割り当て
られるキャッシュの場合、一つのセクションは、時間重
大コード又はデータに対してロックを与え、他のセクシ
ョンは、いずれのラインが最近使用されることが、最も
少ないかに基づく交換を有する時間的ローカリティのコ
ード又はデータに対してキャッシュスペースを与える。
また、他のセクションは、先入れ先出しアルゴリズムに
基づいてラインを交換する交換アルゴリズムを有する空
間的ローカリティを有するコード又はデータに対してキ
ャッシュスペースを与える。あるいは、複数のクラスが
同じセクションにマップし、また、異なる交換アルゴリ
ズムがキャッシュ内の異なる統計的交換分布を制御する
ように特定のクラスが完全に重なることもある。例え
ば、各クラスは、キャッシュ全体へのアクセス権を有す
るが、一つのクラスに対して、交換アルゴリズムは、キ
ャッシュの先頭(ライン0)の近くでの交換の可能性が
最も高くなるように交換の統計的分布処理を実行する。
また、他のクラスに対して、異なる交換アルゴリズム
は、末尾(ラインN)の近くでの交換の可能性が最も高
くなるように交換の統計的分布処理を実行する。異なる
クラスに対する異なる交換アルゴリズムの適切な使用
は、将来の使用の比較的低い確率を有する項目の確率を
小さくし、時間重大であるコード又はデータの交換又は
将来の使用のより高い確率を有するコード又はデータの
交換が発生する。
【0015】キャッシュすべき項目(ライン、ブロック
又はオブジェクト)は、対応するキャッシュクラス属性
を有する。キャッシュクラス属性は、コンパイル時又は
ロード時に予め決定される。あるいは、キャッシュクラ
ス属性は、履歴データに基づいて実行時に決定される。
少なくとも二つの別々のクラスがある。
【0016】キャッシュクラスは、項目がコードである
か、データであるかに無関係に項目に割り当てられる。
あるいは、コード及びデータは、単一のキャッシュ内で
コード及びデータに対して別々の交換アルゴリズムを実
施する明示的に割り当てられた異なるキャッシュクラス
である。
【0017】例示的な第1実施形態では、クラスとキャ
ッシュ論理セクションとの間に1対1の関係があり、キ
ャッシュ論理セクションは、対応するクラスに割り当て
られ、また、キャッシュすべき項目は、対応するキャッ
シュクラス属性に一致するキャッシュセクション中にの
み配置される。
【0018】例示的な第2実施形態では、クラスは階層
中にランク付けされ、各クラスは対応するセクションを
有するが、対応するセクションは、単一のクラスに割り
当てが行われない。この第2実施形態では、ターゲット
キャッシュ項目が、キャッシュクラス属性に対応するキ
ャッシュセクション中に配置されるか、又は、クラス階
層中の下位のクラスに対応する任意のキャッシュセクシ
ョン中に配置される。クラスの階層の場合、少なくとも
二つの代替セクション配置アルゴリズムがある。第1階
層セクション配置アルゴリズムでは、項目が階層中の等
しい又は下位のクラスを有する項目と入れ替わる。すな
わち、第1階層セクション配置アルゴリズムでは、クラ
ス階層が除去に関して支配する。第2階層セクション配
置アルゴリズムでは、特定のクラス(例えばクラスC)
を有する項目が、その特定のクラス(クラスC)に対応
するセクション内か、又は、階層中の下位のクラス(例
えばクラスD)に対応するセクション内に階層中の高位
のクラス(例えばクラスB)を有する項目と入れ替わ
る。すなわち、第2階層セクション配置アルゴリズムで
は、位置(論理セクション)が除去に関してクラス階層
を支配する。
【0019】例示的な第3実施形態では、キャッシュク
ラスが、キャッシュすべき項目の予測される時間的ロー
カリティを示している。完全結合TLBは論理的にセク
ションに分割され、各セクションは対応するクラスに割
り当てられる。クラス属性は予め決定される。特に、低
い時間的ローカリティを有することが予測されるデータ
は、コンパイル時又はロード時に識別される。キャッシ
ュは、キャッシュの大部分が将来再使用の高い可能性
(高い時間的ローカリティ)を有する項目に対して使用
できるように分割される。低い時間的ローカリティを有
するものとして特に識別されたラインは高い空間的ロー
カリティを有することもあるが、少なくとも一つのセク
ションがラインのクラス用に確保される。その結果、比
較的低い時間的ローカリティを有する大きいデータ構造
は、時間的ローカリティの、極めて高い確率を有するコ
ード又はデータの交換が出来なくなる。
【0020】例示的な第4実施形態では、各キャッシュ
クラスがキャッシュ全体へのアクセス権を有し、各クラ
スは、キャッシュ内に異なる空間的ローカリティを有す
る。
【0021】
【発明の実施の形態】次に、本発明の交換アルゴリズム
動的選択コンピュータシステムの実施の形態を添付図面
を参照して詳細に説明する。図1は本発明の例示的な交
換アルゴリズム動的選択コンピュータシステムの構成を
ブロック図である。このコンパイラ100は、一組のコ
ードモジュール(102,104,106)を生成す
る。ローダ/リンカ108は、適切なモジュールをロー
ド(多種のライブラリを動的にリンクする)し、実行時
命令及びデータ110及び関連するクラス属性112を
生成する。キャッシュメモリ114(適宜、キャッシュ
114で示す)は、キャッシュクラス(116,11
8,120)に対応する別々のセクションに論理的に分
割される。キャッシュ114は、データキャッシュ、命
令キャッシュ、混合キャッシュ又はTLBである。キャ
ッシュ114は、仮想的に索引付けされるか、又は、物
理的に索引付けされる。キャッシュ114用のタグは、
仮想的であるか、又は、物理的である。命令及びデータ
110が(プログラムの動的実行の関数として)キャッ
シュ114中に配置された際に、このキャッシュ114
の特定のセクション中に配置され、以下で詳細に説明す
るようにセクション配置アルゴリズムで処理される。す
なわち、命令及びデータは、関連するクラス属性112
に対応するキャッシュクラス用の特定のセクション中に
配置されるか、又は、セクション配置アルゴリズム処理
に対応して多数のセクションの一つのセクション中に配
置される。各クラス用の交換アルゴリズムは、関連する
クラス属性に基づいて動的に選択される。すなわち、交
換アルゴリズムは、クラスごとに異なる。例えば、ある
クラス中では、最近使用されることが最も少ないライン
が交換され、他のクラス中では、ラインが疑似ランダム
に交換される。クラス属性は、PTE、セグメントテー
ブル、又は他の仮想メモリ構造中か、又は、命令ストリ
ーム中でコード化される。
【0022】図2はキャッシュ114の一例のハードウ
ェアを示すブロック図である。図2は、4ウェイセット
アソシアティブキャッシュの一部を示している。仮想ア
ドレス200は、プロセッサによって図2のキャッシュ
を備えるをメモリシステムに与えられる。N組の各組中
には、四つのデータライン(202,204,206,
208)及び対応する四つのアドレスタグ(210,2
12,214,216)を有している。図2のキャッシ
ュのタグ部分には、履歴(236)がラベル付けされた
追加のデータ列を有している。この列は、カウンタ、ス
タック、先入れ先出し(FIFO)バッファ、又は、最
も最近使用されたか、又は、最近頻繁に使用された各組
中のデータラインの履歴を維持する他の適切なデータ構
造を有している。履歴236は、キャッシュ中の項目が
参照されるごとに更新される。仮想アドレス200の下
位セット選択ビットに対応するキャッシュ位置にある一
つのデータセット(四つのデータライン)は、デジタル
セレクタ(マルチプレクサ)218に示される。仮想ア
ドレス200の下位セット選択ビットに対応するキャッ
シュ位置にある四つのタグは、デジタルコンパレータ2
00,222,224,226に示される。また、メモ
リシステムは、仮想アドレスを物理アドレスに変換する
TLB228を有している。TLBは、本発明に必要で
はないが、本発明の代替実施形態を説明するために以下
で使用される。一組のアドレスタグ(210,212,
214,216)からのタグエントリは、デジタルコン
パレータ220,222,224,226によって物理
アドレスと比較される。タグエントリが物理アドレスの
高位ビットに一致する場合、キャッシュヒットがあり、
追加の論理回路230は、マルチプレクサ218での四
つのデータラインの一つを選択するために使用される信
号を与える。キャッシュミスの場合、交換論理回路23
8は、新しい項目が交換される場所を決定し、必要な場
合、既存の項目を削除する。
【0023】一般的に、データ又はコードに対する要求
は、データ又はコードのライン以下に対する要求であ
り、又は、一般的に、データ又はコードのラインは、ハ
ードウェアバスの幅よりも多いビットを有する。追加の
マルチプレクサ(図示せず)を使用して、下位アドレス
ビットによって決定された際に、ラインの所要の部分が
選択される。メモリ階層の下位レベルからキャッシュ中
に移動しているデータ又はコード又はキャッシュからメ
モリ階層の下位レベル中に移動しているデータ又はコー
ドは、種々のバッファ又は補助キャッシュ中に一時的に
記憶される。一般的に、項目が要求された際に、アドレ
ス一致もこれらのバッファ又は補助キャッシュに対して
実行される。要求された項目がバッファ又は補助キャッ
シュの一つの中にある場合、これが効果的にキャッシュ
ヒットと同じタイミングでプロセッサに付与される。別
個のマルチプレクサ(図示せず)は、バッファ又は補助
キャッシュからのデータ又はコード又は主キャッシュか
らのデータあるいはコードがプロセッサに付与される場
所を選択する。
【0024】図2では、データ又はコードのラインの各
組(202,204,206,208)、タグの関連す
る組(210,212,214,216)及び履歴論理
回路(236)は、全てがクラス属性に対応するセクシ
ョン(232,234)に論理的に分割される。これら
のセクション及びクラスは、キャッシュからのデータの
取出し、又は、キャッシュヒットの決定に関係しない。
すなわち、データ取出し動作及びキャッシュヒットの決
定は、セクション境界及びクラスを考慮せずに従来技術
の方法に従って行われる。代わりに、セクション及びク
ラスは、交換論理回路238がキャッシュ中に新しい項
目を配置するために使用されるのみである。ミスの場
合、ファームウェア制御下にある交換論理回路238
は、キャッシュの履歴236からのデータを、クラス属
性の知識(入力)、及び、セット中で、いずれのセクシ
ョン(232,234)中に新しい項目を配置するか、
及び、セクション中の場所を決定するために、レジスタ
内容など他のハードウェア状態に結合する。必要な場
合、既存の項目が除去される。新しい項目が配置された
場合に、履歴論理回路236も更新される。
【0025】キャッシュのセクションへの分割(サイズ
及び数)は、ソフトウェア制御下にある。すなわち、交
換論理回路238はプログラマブルである。あるいは、
交換論理回路238は、種々のソフトウェア用途の要件
に適合するように多数の固定プログラムアルゴリズムの
間で切り替えられる。キャッシュ中に配置すべき各項目
ごとに、交換論理回路238は、適切なセクション又は
複数のセクションを決定し、次に、セクション中の位置
(ライン)を決定する。本発明の実施形態では、セクシ
ョン又は複数のセクションを決定するアルゴリズムをセ
クション配置アルゴリズムと記載する。図3は本発明の
実施形態における分割TLBを示すブロック図である。
図3を参照して、セクション配置アルゴリズムについ詳
細に説明する。セクション中の適切な位置を決定するア
ルゴリズムを配置アルゴリズムと記載する。各クラス
は、別個の交換アルゴリズムを有する。この場合も、交
換論理回路238は、セクション又は複数のセクション
を決定するセクション配置アルゴリズムを実行し、ま
た、各セクション中の交換アルゴリズムを実行する。
【0026】再び図1を参照すると、クラス属性112
は、ソフトウェア開発者、コンパイラ100、(オペレ
ータ制御下にある)ローダ/リンカ108によって、又
は(オペレータ制御又は履歴ローカリティの自動観測に
よって)実行時に決定される。コンパイルされたオブジ
ェクトモジュール(102,104,106)は、一般
的に、アセンブリの日付などの、リンカ108によって
必要とされるデータ構造、オブジェクトモジュールの種
々の部分の長さ、及び、記号リストを有している。クラ
ス属性は、実行時データ構造に送るためにオブジェクト
モジュールデータ構造に加えられる。例えば、Kurp
anek氏他の文献を参照すると良い。特に、クラス属
性112がいつ生成されたかに関わらず、クラス属性1
12は、仮想アドレス指定中に使用される実行時データ
構造中に含まれる。仮想メモリは、一般的に、ページと
呼ばれる固定サイズのブロック及びセグメントと呼ばれ
る可変サイズのブロックの二つのタイプに分類される。
いずれのタイプの仮想メモリにおいても、アドレス変換
用の情報を含む関連するデータ構造である。クラス属性
112は、クラス区分を有する任意のキャッシュが使用
するためにアドレス変換用のこれらの関連するデータ構
造に加えられる。以下の説明は、簡単のためにページに
関するが、セグメントに対しても同様に適用できる。
【0027】クラス属性112をページに割り当てるオ
プションは、次のように少なくとも三つある。以下のオ
プションは、互いに排他的なものではなく、任意の形で
組み合わせることが出来る。以下のオプションでは、例
示的な二進クラス属性システムを使用する。クラス0
は、将来使用される可能性がある項目を示し、クラス1
は、将来使用される可能性が低い項目を示す。将来使用
の可能性には、項目がすぐに再使用される時間的ローカ
リティ、及び、特定の項目がまだ使用されていない場合
でも特定の項目がキャッシュ中に配置される空間的ロー
カリティを有していることを注意する必要がある。
【0028】第1オプションでは、プログラマ又はオペ
レータが、明示的なコンパイラ/リンカ/ローダコマン
ドによって、クラス属性112を指定する。例えば、デ
ータベースを連続的に検索しなければならないデータベ
ースアプリケーションについてはデータベースが、キャ
ッシュが有用であるように空間的ローカリティを有する
が、いずれか一つの項目を再使用することはほとんどな
い。空間的ローカリティと時間的ローカリティの混合ロ
ーカリティを有する項目のデータストリームでは、デー
タベースアクセスはキャッシュを繰り返して除去するこ
とがある。したがって、プログラマは、高い時間的ロー
カリティを有するキャッシュされたデータが除去される
のを防ぐために、データベースデータ構造をクラス1に
指定することが有利である。あるいは、プログラマは、
しばしば呼び出されるライブラリ機能をクラス0に指定
することも出来る。例えば、オペレーティングシステム
ディスパッチャ又は割込みハンドラを将来使用の最も高
い可能性に指定することが出来る。
【0029】第2オプションでは、コンパイラは、クラ
ス属性を見つけて決定する。この見つける方法の一つの
例では、データ構造の全体的なサイズを考慮することで
ある。キャッシュ全体によって処理されるものよりも大
きいデータ構造は、一部はそれらが再使用される場合が
あまりなく、一部は多用がキャッシュ全体を除去すこと
があるためクラス1の候補になる。第2例として、コン
パイラは、いくつかの構造のローカリティを決定する。
命令の長いシーケンスは、高い空間的ローカリティを有
するが、時間的ローカリティをほとんど有しないライン
の例である。他の例は、前記で説明した連続的なデータ
ベースである。これらの各例では、コンパイラは、これ
らの構造を低い時間的ローカリティを有するものとして
識別する。同様に、いくつかの頻繁に呼び出されるライ
ブラリ機能は、高い時間的ローカリティを有するものと
してコンパイラによって自動的に識別される。
【0030】第3オプションでは、プログラム実行時挙
動の動的分析を使用して、キャッシュクラス属性を割り
当てる。例えば、キャッシュを定期的に観測して、頻繁
に生じるか、又は、度々生じるエントリ、エントリ常駐
時間、交換履歴情報を検出する。この情報は、オペレー
ティングシステムによって収集されるか、又は、他の実
行時ソフトウェアによって収集される。また、この情報
は論理アナライザやエミュレータなどハードウェアイン
スツルメンテーションによって収集される。この情報
は、将来コンパイラ中で使用するためにコンパイラに戻
される。あるいは、この情報は、オペレータに与えられ
る。あるいは、実行時ソフトウェアは、実行時の処理に
基づいてページ(ページテーブルエントリ)のキャッシ
ュクラスを動的に変更する。
【0031】上記の各オプションは、キャッシュすべき
項目がコードであるか、又は、データであるかに無関係
である。あるいは、コード及びデータには、単一のキャ
ッシュ中の別々のコードセクション及びデータセクショ
ンを与えるためにそれぞれ異なる交換アルゴリズムを有
する異なるキャッシュクラスが明示的に割り当てられ
る。あるいは、項目がコード又はデータであるという事
実は、キャッシュクラスを決定する他のファクタと結合
される。
【0032】また、通常キャッシュ性能を向上させるた
めに使用されるハードウェアと共に分類が使用される。
例えば、キャッシュは、ラインサイズ又はブロックサイ
ズを効果的に拡大して、連続的なデータ又は高い空間的
ローカリティを有する他のデータの平均アクセス時間を
短縮する関連するプリフェッチバッファを有する。更
に、キャッシュは、競合するアドレスとのデータのスラ
ッシング、及び、高い再使用を少なくするために、ライ
ンを主キャッシュ中に配置するのではなくミスラインを
最初に配置するか、又は、除去されたラインを主メモリ
に戻すのではなく配置する関連する完全結合補助キャッ
シュを有する。したがって、クラス0に指定されたキャ
ッシュのセクションは、クラス0に指定されたセクショ
ン専用のスラッシングを少なくする補助キャッシュを有
する。同様に、クラス1に指定されたキャッシュのセク
ションは、専用プリフェッチバッファ又は他の何らかの
適切な専用補助キャッシュを有する。
【0033】図3は本発明の例示的な他の代替実施形
態、すなわち、クラスに分割されたTLBを説明するた
めの図である。TLBはキャッシュでもある。したがっ
て、TLBは、クラスに対応するセクションに分割され
る。ページシステム又はセグメントシステムはTLB又
はその等価な機能含むが、図3の特定の例では、ページ
ングを仮定する。図3において、TLBは完全結合(1
セット)キャッシュであり、セットは三つのセクション
(300,302,304)に分割される。
【0034】ここまでの図1及び図2の説明では、セク
ション配置アルゴリズムは各セクションを単一の属性ク
ラスに割り当てると仮定している。例えば、図3におい
て、セクション0(300)はクラスA(306)のみ
に割り当てられ、セクション1(302)はクラスB
(308)のみに割り当てられ、また、セクション2
(304)はクラスC(310)のみに割り当てられ
る。その結果、キャッシュの一部(例えばセクション
2)は、高度のローカリティを有する項目(例えば、ク
ラスA)に使用できなくなる。代替例として、クラス
は、クラスAがクラスBよりも階層中のより高いランク
を有するなど、階層中でランク付けされる。図3では、
これは右手側に示されており、クラスA項目は、キャッ
シュ中の任意の場所に配置され、クラスB項目は、セク
ション1(302)中に配置されるか、又は、クラスB
よりも階層中のより低いランクを有するクラスに対応す
るセクション中に配置される。最後に、クラスC項目
は、セクション2(304)中のみに配置される。
【0035】クラスの階層の場合、少なくとも二つの可
能な階層セクション配置アルゴリズムが存在する。第1
階層セクション配置アルゴリズムでは、第1項目が、こ
の第1項目が許容されるセクション中で等しい、又は、
下位の階層クラスランクを有する第2項目と入れ替わ
る。例えば、クラスB項目(314)は、セクション1
(302)又はセクション2(304)中に配置され、
セクション1(302)中のクラスB項目(314)又
はセクション2(304)中のクラスB項目(314)
又はクラスC項目(316)と入れ替わるが、セクショ
ン1(302)又はセクション2(304)中のクラス
A項目(312)と入れ替わることは出来ない。換言す
れば、第1階層セクション配置アルゴリズムでは、クラ
ス階層が除去に関して支配する。図4は本発明の実施形
態におけるセクション配置アルゴリズムを詳細に説明す
るTLB中に項目を有するTLBのブロック図である。
図3のTLBは、すでに次のようにいくつかの項目を有
している。すなわち、セクション0は、第1クラスA項
目A1を有している。セクション1は、第2クラスA項
目A2及び第1クラスB項目B1を有しており、セクシ
ョン2は、第3クラスA項目A3、第2クラスB項目B
2、及び、第1クラスC項目C1を有している。図4に
おいて、TLB中に配置すべき三つの潜在的な新しい項
目A4、B3及びC2が存在する。第1階層セクション
配置アルゴリズムでは、新しいA4項目は、TLB中の
任意の項目と入れ替わり、新しい項目B3は、既存の項
目B1、B2、又はC1と入れ替わり、また、新しい項
目C2は、既存の項目C1と入れ替わる。
【0036】第2階層セクション配置アルゴリズムで
は、クラス階層は、配置に使用できるセクションを決定
するが、特定のセクション中に配置される項目は、その
特定のセクション中の項目と入れ替わる。例えば、クラ
スA項目(312)は、セクション2(304)中に配
置されるが、クラスC項目(316)は、セクション2
(304)中のクラスA項目(312)と入れ替わる。
図4において、第2階層セクション配置アルゴリズムの
場合、新しい項目B3は、既存の項目A2,B1,A
3,B2,又はC1と入れ替わり、新しい項目C2は、
既存の項目A3、B2又はC1と入れ替わる。
【0037】専用クラスの場合、最高位ランククラス
(図3、306)は、比較的小さいキャッシュ(30
0)を備えるのみであるが、クラス階層の場合、最高位
ランククラス(312)は、キャッシュ全体を占拠する
場合がある。専用クラス及び第2階層セクション配置ア
ルゴリズムを使用したクラス階層の場合、最低位ランク
クラス(310)は、最小保証量のキャッシュ記憶容量
を有する。第1階層セクション配置アルゴリズムでは、
その利点が、優先度の高いワークロードが適切な状況に
おいてTLB全体を使用できることであるが、その代わ
り優先度のより低いワークロード(例えば、クラスC項
目(316))がロックアウトされる。第2階層セクシ
ョン配置アルゴリズムでは、同じ利点が得られ(優先度
の高いワークロードがTLB全体を使用できる)、ま
た、優先度の高いワークロードのいくつかの項目(ライ
ン又はページ)が優先度のより低いワークロードによっ
て除去から保護される。しかしながら、第2階層セクシ
ョン配置アルゴリズムの場合、項目は、下位ランクセク
ション中に配置された後、その下位ランクセクション中
の他の項目と同様に処理される。したがって優先度のよ
り低いワークロードのライン又はページは、優先度の高
いワークロードのライン又はページを除去する。これら
の種々の利点及び欠点を以下の表1に要約して示した。
【0038】
【表1】
【0039】第1階層セクション配置アルゴリズムで
は、新しいターゲット項目がキャッシュ中の潜在的犠牲
者よりも高いランクを有するかどうかを決定するため
に、各項目の階層ランク(キャッシュ属性)が交換時に
使用できなければならない。すなわち、クラス属性が保
持されなければならず、また、クラス属性が交換論理回
路に使用できなければならない。特に、ラインのキャッ
シュでは、第1階層セクション配置アルゴリズムの場
合、キャッシュ中の各個々のラインのクラス属性用の記
憶装置を備える必要がある。TLBの場合、又はTLB
を使用したキャッシュの場合、ページ関連キャッシュ属
性がTLB中の各ページテーブルエントリの一部として
保持される。しかしながら、第1階層セクション配置ア
ルゴリズムを実施するために、TLB中に記憶されたキ
ャッシュ属性は、全体的なキャッシュ用の交換論理回路
に使用できなければならない。同様に、キャッシュ中の
個々のラインに関連するフラグ記憶用を備えていなけれ
ば、また、フラグ記憶装置が交換論理回路に使用できな
ければ、ラインキャッシュ中の個々のラインを保護する
ために、前記で説明したIntel PGEフラグを使
用することが出来ない。反対に、専用クラス及び第2階
層セクション配置アルゴリズムの利点は、クラス属性が
配置を決定するためにのみ必要とされることである。項
目がキャッシュ中に配置された後、キャッシュ中の項目
の位置のみが将来交換のために重要である。特に、ライ
ンのキャッシュでは、各ラインのクラス属性は、別々に
保持される必要はない。
【0040】本発明の実施形態による属性クラスは、一
部ロックされたキャッシュの簡単な実行が付与される。
例えば、実行時、オペレーティングシステムは、選択さ
れた重要なページに対するページテーブルエントリ中の
クラス属性を特定のロックされたクラス属性に設定す
る。また、オペレーティングシステムは、他のページが
その特定のロックされたクラス属性を有することがない
ようにする。したがって、専用クラスシステムの場合、
又は第1階層セクション配置アルゴリズムを使用したク
ラス階層の場合、特定のロックされたクラス属性を有す
る項目は交換されない。専用クラスシステムの場合、ロ
ックされたクラス属性は、クラスIDを各キャッシュラ
インと共に保存することを行わない。
【0041】Intel方式では、TLB中のロックさ
れたラインの総数か、TLBのエントリの総数、又は、
これよりも小さい数に制限する必要がある。ロックされ
たラインの数がTLBの全体的なサイズよりも大きい場
合、デッドロックが発生する。前記で説明した本発明に
よる専用クラスロック方法では、ロック交換アルゴリズ
ムは、LRU交換を使用して、ロックされたラインのオ
ーバコミットメントを調整することが出来る。
【0042】また、本発明による属性クラスは、低いロ
ーカリティを有することが周知であるラインが、キャッ
シュされるのを防ぐ簡単な実行が可能である。すなわ
ち、このような項目が識別された場合、交換アルゴリズ
ムが項目をキャッシュ中に配置することをも防ぐクラス
属性が使用される。
【0043】最後に、特定の数値例について説明する。
ここでは合計96個のエントリを有するTLBについて
説明する。この場合、二つのクラスが存在する。96個
のエントリは、交換のために二つのセクションに分割さ
れる。各セクションは、単一のクラスに割り当てられ
る。この例では、第1セクション中、80個のTLBエ
ントリがクラス0用に確保され、第2セクション中、1
6個のTLBエントリがクラス1用に確保される。ペー
ジテーブルエントリは、(通常ページテーブルエントリ
中に含まれているフィールドの他に)二つのキャッシュ
クラスのいずれがページに関連しているかを示す1ビッ
トキャッシュクラスフィールドを有している。クラス0
は、使用又は再使用される可能性があると予想されるペ
ージを指定する。クラス1は、使用又は再使用される可
能性が低いと予想されるページを指定する。プログラム
が動作した際に、高い時間的ローカリティを有するリフ
ァレンス又は別段にクラス0に指定されたリファレンス
は、第1セクションの80個のエントリに割り振られ
る。他の全てのリファレンスは、残りの16個のエント
リを求めて競合しなければならない。リファレンスがT
LBを逸した場合、セクション配置アルゴリズムは、フ
ェッチされたページテーブルエントリ中のキャッシュク
ラスフィールドを使用し、また、使用すべき交換アルゴ
リズム、したがって、犠牲にすべきクラスセクションを
決定する。クラスフィールドは、専用クラスの場合、又
は、第2階層セクション配置アルゴリズムを使用したク
ラス階層の場合、TLB中に保存する必要がないことに
なる。
【0044】以下は、特定の数値例と共に交換論理回路
(図2の238)によって使用されるキャッシュ交換ア
ルゴリズム及びセクション配置アルゴリズムの例であ
る。
【0045】例1:(異なる二つの交換アルゴリズム、
クラス階層なし) 入力:クラス 履歴 出力:位置 クラス=1の場合 ランダムを戻す(80〜95) 他の場合LRU(履歴)を戻す(0〜79)
【0046】例2:(クラス階層、第2階層セクション
配置アルゴリズム) 入力:クラス 履歴 出力:位置 クラス=1の場合 ランダムを戻す(80〜95) 他の場合ランダムを戻す(0〜95)
【0047】前記の例1では、クラスが1である場合、
80から95までのランダムな数がある位置に対して戻
される。クラスが0である場合、0から79までの最近
使用されることが最も少ないライン数が戻される。例2
では、クラスが1である場合、80から95までのラン
ダム数が戻される。クラスが1である場合、0から95
までのランダムな数が戻される。どちらの例でも、クラ
ス1を有するラインは、キャッシュ中の最後の16個の
スペース中にのみ配置される。例1では、クラス0を有
するラインは、最初の80個のスペースに制限される。
例2では、クラス0を有するラインは、キャッシュ中の
ラインを犠牲にする。ただし、例2では、クラス1を有
する新しいラインは、最後の16個のスペース中にある
クラス0を有するラインと入れ替わる。
【0048】上記の各実施形態では、キャッシュは、セ
クション間の明確な境界を有する明確な論理セクション
に分割される。しかしながら、明確な分割は不要であ
る。代わりに、多数の交換アルゴリズムがある場合、異
なるクラスを一つ又は複数のセクション中で種々に空間
的に分配し、明確なセクション境界なしに犠牲の確率を
変更することが出来る。図5は、本発明の実施形態にお
ける単一の論理キャッシュセクション用の二つの別々の
交換アルゴリズムを有するキャッシュ用の位置の関数と
して交換の確率を示す2確率密度関数を説明するための
図である。図5において、水平軸は、0〜Nの番号で示
されたキャッシュ中の位置を示す。垂直軸は、交換アル
ゴリズムが特定のクラスの項目を特定の位置に配置する
確率を示す。クラスA属性を有する項目の場合、位置0
に近い位置に配置される可能性は、位置Nに近い位置に
配置される可能性よりも高くなる。クラスB属性を有す
る項目の場合、位置Nに近い位置に配置される可能性
は、位置0に近い位置に配置される可能性よりも高くな
る。したがって、各クラスは、キャッシュ全体へのアク
セス権を有するが、空間的分配が均一でないので、ある
クラスが他のクラスの犠牲になることが少なくなる。
【0049】専用セクション、階層セクション、均一分
配、及び不均一分配はすべて組み合わせることが出来
る。例えば、以下の各組合せが可能である。 (a)専用セクションと均一分配 (b)専用セクションと不均一分配 (c)階層セクションと均一分配 (d)階層セクションと不均一分配
【0050】本発明の種々の実施形態を要約すると、ク
ラス属性に基づく交換の動的選択を有するキャッシュを
付与する。いくつかの実施形態では、キャッシュは、ク
ラス属性に基づいてセクションに分割される。また、い
くつかの実施形態では、セクション配置アルゴリズムを
有するクラス階層が存在する。一般的に、 (a)結合(少なくとも2通りのセット結合)キャッシ
ュは少なくとも二つの異なる交換アルゴリズムを有す
る。 (b)少なくとも二つのラインを有する結合キャッシュ
はセクションに分割される(TLBに制限されない)。 (c)三つ以上のクラス及び三つ以上のセクションが存
在する。 (d)クラスとセクションとの間に1対1の対応があ
る。 (e)分類が時間的ローカリティ以外の何かに基づく。 (f)各クラスは別個の交換アルゴリズムを有する。 (g)一つのクラスを有する項目は他のクラスに対応す
るセクションに分割される。
【0051】本発明の以上の説明は、例示に対する説明
を行ったものであり、徹底的なものではない。また、本
発明を開示した詳細な実施形態に限定するのものではな
く、上記の技術思想を考慮すれば、その修正及び変更が
可能である。上記の実施形態は、本発明の原理的な技術
思想及びその実際的な用途を最もよく説明したものであ
る。これによって当業者で考えられる特定の使用に適し
ている種々の実施形態及び種々の修正例において、本発
明を最もよく利用することが出来るように選択して説明
した。上記の特許請求の範囲は、従来技術による制限を
除いて本発明の他の代替実施形態を含むと考えるべきも
のである。
【0052】以下に本発明の実施の形態を要約する。 1.キャッシュメモリ(114)を備えるコンピュータ
システムにおいて、前記キャッシュメモリ中に入力すべ
き項目が、第1値及び第2値を含む少なくとも二つの値
を有した関連するクラス属性(112)を有し、前記キ
ャッシュメモリは、第1項目が第1値を有する関連する
クラス属性を有する場合に、第1項目を前記キャッシュ
メモリ中に配置する第1交換アルゴリズムを使用し、か
つ、前記キャッシュメモリは、第2項目が第2値を有す
る関連するクラス属性を有する場合に、前記第2項目を
キャッシュメモリ中に配置する第2交換アルゴリズムを
使用する交換アルゴリズム動的選択コンピュータシステ
ム。
【0053】2.前記キャッシュメモリが、少なくとも
第1セクション(116,232,300)及び第2セ
クション(118,234,302)に分割され、か
つ、前記キャッシュメモリが、前記第1項目を第1セク
ション中に配置し、かつ、前記第2項目を第2セクショ
ン中に配置する上記1記載の交換アルゴリズム動的選択
コンピュータシステム。
【0054】3.前記キャッシュメモリは、任意選択に
よって前記第1項目が第2セクション中に配置される上
記2記載の交換アルゴリズム動的選択コンピュータシス
テム。
【0055】4.前記特定の項目の将来使用の確率を示
す特定の項目に関連するクラス属性を更に有し、特定の
項目が将来使用される高確率を有することを特定の項目
のクラス属性が示す場合に、特定の項目が第1セクショ
ン中に配置され、かつ、特定の項目が将来使用される低
確率の特定の項目のクラス属性が示す場合に、特定の項
目が第2セクション中に配置される上記3記載の交換ア
ルゴリズム動的選択コンピュータシステム。
【0056】5.前記特定の項目のクラス属性が、コン
パイラ(100)によって決定される上記3記載の交換
アルゴリズム動的選択コンピュータシステム。
【0057】6.前記特定の項目のクラス属性が、外部
で決定される上記3記載の交換アルゴリズム動的選択コ
ンピュータシステム。
【0058】7.前記特定の項目のクラス属性が、実行
時ソフトウェア(110)によって決定される上記3記
載の交換アルゴリズム動的選択コンピュータシステム。
【0059】8.前記実行時ソフトウェアが、オペレー
ティングシステムである上記7記載の交換アルゴリズム
動的選択コンピュータシステム。
【0060】9.前記第1セクションが、高い時間的ロ
ーカリティを有する項目に関連する上記2記載の交換ア
ルゴリズム動的選択コンピュータシステム。
【0061】10.前記第2セクションが、高い空間的
ローカリティを有する項目に関連する上記2記載の交換
アルゴリズム動的選択コンピュータシステム。
【0062】
【発明の効果】以上の説明から明らかなように、本発明
の交換アルゴリズム動的選択コンピュータシステムによ
れば、キャッシュに新しい項目を追加する際に、除去す
べきキャッシュ中の項目を決定する交換アルゴリズムが
必要とされるキャッシュにおいて、再使用の最も高い確
率を有するラインをキャッシュ中に残るように保持し、
かつ、再使用のより低い確率を有するラインが再使用の
より高い確率を有するラインを除去しないようにしてい
る。この結果、メモリ階層中のより低いレベルからフェ
ッチされた項目をキャッシュから除去(交換)し、か
つ、この項目の選択を交換アルゴリズムで決定して、キ
ャッシュにおけるヒットとミスの比率を改善できるよう
になる。
【図面の簡単な説明】
【図1】本発明の実施形態におけるコンピュータシステ
ム中のソフトウェア及びハードウェアを示すブロック図
である。
【図2】本発明の実施形態における分割4ウェイセット
アソシアティブキャッシュを示すブロック図である。
【図3】本発明の実施形態における分割TLBを示すブ
ロック図である。
【図4】本発明の実施形態におけるセクション配置アル
ゴリズムを詳細に説明するTLB中に項目を有するTL
Bのブロック図である。
【図5】本発明の実施形態における2確率密度関数を説
明するための図である。
【符号の説明】
100 コンパイラ 102,104,106 コードモジュール 108 ローダ/リンカ 110 データ 112 クラス属性 114 キャッシュ 116,118,120 キャッシュクラス 200,222,224,226 デジタルコンパレー
タ 202,204,206,208 データライン 210,212,214,216 アドレスタグ 218 デジタルセレクタ(マルチプレクサ) 228 変換索引バッファ(TLB) 230 論理回路 232,234 セクション 236 履歴論理回路 238 交換論理回路

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 キャッシュメモリ(114)を備えるコ
    ンピュータシステムにおいて、 前記キャッシュメモリ中に入力すべき項目が、第1値及
    び第2値を含む少なくとも二つの値を有した関連するク
    ラス属性(112)を有し、 前記キャッシュメモリは、第1項目が第1値を有する関
    連するクラス属性を有する場合に、第1項目を前記キャ
    ッシュメモリ中に配置する第1交換アルゴリズムを使用
    し、かつ、前記キャッシュメモリは、第2項目が第2値
    を有する関連するクラス属性を有する場合に、前記第2
    項目をキャッシュメモリ中に配置する第2交換アルゴリ
    ズムを使用することを特徴とする交換アルゴリズム動的
    選択コンピュータシステム。
JP10200576A 1997-07-22 1998-07-15 交換アルゴリズム動的選択コンピュータシステム Pending JPH1196074A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/898-637 1997-07-22
US08/898,637 US6223256B1 (en) 1997-07-22 1997-07-22 Computer cache memory with classes and dynamic selection of replacement algorithms

Publications (1)

Publication Number Publication Date
JPH1196074A true JPH1196074A (ja) 1999-04-09

Family

ID=25409789

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10200576A Pending JPH1196074A (ja) 1997-07-22 1998-07-15 交換アルゴリズム動的選択コンピュータシステム

Country Status (2)

Country Link
US (1) US6223256B1 (ja)
JP (1) JPH1196074A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006227688A (ja) * 2005-02-15 2006-08-31 Hitachi Ltd ストレージシステム
JP2008525919A (ja) * 2004-12-29 2008-07-17 インテル・コーポレーション プログラマ制御のキャッシュ・ライン追出しポリシーのための方法
JP2010123130A (ja) * 2008-11-21 2010-06-03 Nvidia Corp 複数クラスデータキャッシュポリシー
JP5516744B2 (ja) * 2010-08-27 2014-06-11 富士通株式会社 スケジューラ、マルチコアプロセッサシステムおよびスケジューリング方法
JP2015519654A (ja) * 2012-05-08 2015-07-09 クアルコム,インコーポレイテッド マルチスレッドプロセッサ内の区分された共有キャッシュにおけるスレッド単位のキャッシュライン割当て機構
JP2016525252A (ja) * 2014-01-27 2016-08-22 ヴィア アライアンス セミコンダクター カンパニー リミテッド オペレーティング・システム・ルーチンのための予測履歴ストレージのフラクショナルな使用

Families Citing this family (94)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7103794B2 (en) * 1998-06-08 2006-09-05 Cacheflow, Inc. Network object cache engine
DE19735948C1 (de) * 1997-08-19 1998-10-01 Siemens Nixdorf Inf Syst Verfahren zur Verbesserung der Steuerungsmöglichkeit in Datenverarbeitungsanlagen mit Adreßübersetzung
US6542966B1 (en) * 1998-07-16 2003-04-01 Intel Corporation Method and apparatus for managing temporal and non-temporal data in a single cache structure
US7069412B2 (en) * 1999-02-17 2006-06-27 Elbrus International Method of using a plurality of virtual memory spaces for providing efficient binary compatibility between a plurality of source architectures and a single target architecture
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
US6425058B1 (en) 1999-09-07 2002-07-23 International Business Machines Corporation Cache management mechanism to enable information-type dependent cache policies
US6421761B1 (en) * 1999-11-09 2002-07-16 International Business Machines Corporation Partitioned cache and management method for selectively caching data by type
US6412050B1 (en) * 1999-12-30 2002-06-25 Intel Corporation Memory record update filtering
US6434672B1 (en) * 2000-02-29 2002-08-13 Hewlett-Packard Company Methods and apparatus for improving system performance with a shared cache memory
US6708330B1 (en) * 2000-06-13 2004-03-16 Cisco Technology, Inc. Performance improvement of critical code execution
US6698015B1 (en) * 2000-06-13 2004-02-24 Cisco Technology, Inc. Apparatus and method for improving performance of critical code execution
US6848024B1 (en) * 2000-08-07 2005-01-25 Broadcom Corporation Programmably disabling one or more cache entries
US6668307B1 (en) * 2000-09-29 2003-12-23 Sun Microsystems, Inc. System and method for a software controlled cache
US6598124B1 (en) * 2000-09-29 2003-07-22 Sun Microsystems, Inc. System and method for identifying streaming-data
US6760816B1 (en) * 2000-09-29 2004-07-06 Intel Corporation Critical loads guided data prefetching
US6662273B1 (en) 2000-09-29 2003-12-09 Intel Corporation Least critical used replacement with critical cache
US6782469B1 (en) 2000-09-29 2004-08-24 Intel Corporation Runtime critical load/data ordering
US6578111B1 (en) * 2000-09-29 2003-06-10 Sun Microsystems, Inc. Cache memory system and method for managing streaming-data
US7085891B2 (en) * 2001-04-04 2006-08-01 International Business Machines Corporation Method for managing a cache memory using a predictive modeling engine to select a caching algorithm
US6643740B1 (en) * 2001-07-30 2003-11-04 Lsi Logic Corporation Random replacement generator for a cache circuit
US6915386B2 (en) * 2002-06-05 2005-07-05 Internation Business Machines Corporation Processing service level agreement (SLA) terms in a caching component of a storage system
US6901484B2 (en) * 2002-06-05 2005-05-31 International Business Machines Corporation Storage-assisted quality of service (QoS)
US6944715B2 (en) * 2002-08-13 2005-09-13 International Business Machines Corporation Value based caching
US6961820B2 (en) * 2003-02-13 2005-11-01 International Business Machines Corporation System and method for identifying and accessing streaming data in a locked portion of a cache
US7082508B2 (en) * 2003-06-24 2006-07-25 Intel Corporation Dynamic TLB locking based on page usage metric
US20050102465A1 (en) * 2003-07-28 2005-05-12 Royer Robert J. Managing a cache with pinned data
CN100465921C (zh) * 2003-07-29 2009-03-04 英特尔公司 管理具有固定住的数据的高速缓存的方法和系统
JP4485472B2 (ja) * 2003-08-21 2010-06-23 パナソニック株式会社 データ送受信システム、データ送受信方法および記録再生装置
US20050081190A1 (en) * 2003-09-30 2005-04-14 International Business Machines Corporation Autonomic memory leak detection and remediation
US7085888B2 (en) * 2003-10-09 2006-08-01 International Business Machines Corporation Increasing memory locality of filesystem synchronization operations
US20050182902A1 (en) * 2004-02-12 2005-08-18 Shuji Miyasaka Signal processing apparatus
US7797492B2 (en) * 2004-02-20 2010-09-14 Anoop Mukker Method and apparatus for dedicating cache entries to certain streams for performance optimization
US7590803B2 (en) * 2004-09-23 2009-09-15 Sap Ag Cache eviction
US7930484B2 (en) * 2005-02-07 2011-04-19 Advanced Micro Devices, Inc. System for restricted cache access during data transfers and method thereof
US7581065B2 (en) * 2005-04-07 2009-08-25 O'connor Dennis M Low locality-of-reference support in a multi-level cache hierachy
US8606998B2 (en) * 2006-08-24 2013-12-10 Advanced Micro Devices, Inc. System and method for instruction-based cache allocation policies
US20080120469A1 (en) * 2006-11-22 2008-05-22 International Business Machines Corporation Systems and Arrangements for Cache Management
US7921276B2 (en) * 2007-03-21 2011-04-05 Intel Corporation Applying quality of service (QoS) to a translation lookaside buffer (TLB)
US7725657B2 (en) * 2007-03-21 2010-05-25 Intel Corporation Dynamic quality of service (QoS) for a shared cache
US7761664B2 (en) * 2007-04-13 2010-07-20 International Business Machines Corporation Systems and methods for multi-level exclusive caching using hints
US8875114B2 (en) * 2007-09-21 2014-10-28 International Business Machines Corporation Employing identifiers provided by an operating system of a processing environment to optimize the processing environment
US8706979B2 (en) * 2007-12-30 2014-04-22 Intel Corporation Code reuse and locality hinting
US7870339B2 (en) 2008-01-11 2011-01-11 International Business Machines Corporation Extract cache attribute facility and instruction therefore
US9280480B2 (en) 2008-01-11 2016-03-08 International Business Machines Corporation Extract target cache attribute facility and instruction therefor
US20090182988A1 (en) * 2008-01-11 2009-07-16 International Business Machines Corporation Compare Relative Long Facility and Instructions Therefore
US20090182992A1 (en) * 2008-01-11 2009-07-16 International Business Machines Corporation Load Relative and Store Relative Facility and Instructions Therefore
US20090182984A1 (en) * 2008-01-11 2009-07-16 International Business Machines Corporation Execute Relative Long Facility and Instructions Therefore
US20090182985A1 (en) * 2008-01-11 2009-07-16 International Business Machines Corporation Move Facility and Instructions Therefore
US7895419B2 (en) 2008-01-11 2011-02-22 International Business Machines Corporation Rotate then operate on selected bits facility and instructions therefore
US7734900B2 (en) 2008-01-11 2010-06-08 International Business Machines Corporation Computer configuration virtual topology discovery and instruction therefore
US7739434B2 (en) 2008-01-11 2010-06-15 International Business Machines Corporation Performing a configuration virtual topology change and instruction therefore
US8200903B2 (en) 2008-02-14 2012-06-12 Hewlett-Packard Development Company, L.P. Computer cache system with stratified replacement
US8250305B2 (en) * 2008-03-19 2012-08-21 International Business Machines Corporation Method, system and computer program product for data buffers partitioned from a cache array
EP2192493A1 (en) * 2008-11-28 2010-06-02 ST Wireless SA Method of paging on demand for virtual memory management in a processing system, and corresponding processing system
US8874844B1 (en) * 2008-12-02 2014-10-28 Nvidia Corporation Padding buffer requests to avoid reads of invalid data
US8769201B2 (en) * 2008-12-02 2014-07-01 Intel Corporation Technique for controlling computing resources
US20100169570A1 (en) * 2008-12-31 2010-07-01 Michael Mesnier Providing differentiated I/O services within a hardware storage controller
KR101056460B1 (ko) * 2009-06-05 2011-08-11 세종대학교산학협력단 캐쉬 제어기 및 캐쉬 블록 교체 방법
US8250332B2 (en) * 2009-06-11 2012-08-21 Qualcomm Incorporated Partitioned replacement for cache memory
CN102486753B (zh) * 2009-11-30 2015-09-16 国际商业机器公司 构建及允许访问高速缓存的方法、设备及存储系统
US8990506B2 (en) * 2009-12-16 2015-03-24 Intel Corporation Replacing cache lines in a cache memory based at least in part on cache coherency state information
US8683128B2 (en) 2010-05-07 2014-03-25 International Business Machines Corporation Memory bus write prioritization
US8838901B2 (en) * 2010-05-07 2014-09-16 International Business Machines Corporation Coordinated writeback of dirty cachelines
EP2388704A1 (en) 2010-05-17 2011-11-23 Thomson Licensing Method of optimization of cache memory management and corresponding apparatus
US9104583B2 (en) 2010-06-24 2015-08-11 International Business Machines Corporation On demand allocation of cache buffer slots
JP5702808B2 (ja) * 2011-01-12 2015-04-15 パナソニック株式会社 プログラム実行装置およびコンパイラシステム
US8898390B2 (en) 2011-03-08 2014-11-25 Intel Corporation Scheduling workloads based on cache asymmetry
EP2756438B1 (en) 2011-09-13 2020-11-11 Facebook, Inc. Software cryptoprocessor
US9424194B2 (en) 2012-05-01 2016-08-23 International Business Machines Corporation Probabilistic associative cache
US9477603B2 (en) * 2013-09-05 2016-10-25 Facebook, Inc. System and method for partitioning of memory units into non-conflicting sets
US9983894B2 (en) 2013-09-25 2018-05-29 Facebook, Inc. Method and system for providing secure system execution on hardware supporting secure application execution
US10049048B1 (en) 2013-10-01 2018-08-14 Facebook, Inc. Method and system for using processor enclaves and cache partitioning to assist a software cryptoprocessor
US11126559B2 (en) 2013-12-30 2021-09-21 Michael Henry Kass Translation look-aside buffer and prefetch indicator
US10002080B2 (en) * 2013-12-30 2018-06-19 Michael Henry Kass Memory system address modification policies
US10216632B2 (en) * 2013-12-30 2019-02-26 Michael Henry Kass Memory system cache eviction policies
US9747450B2 (en) 2014-02-10 2017-08-29 Facebook, Inc. Attestation using a combined measurement and its constituent measurements
US9734092B2 (en) 2014-03-19 2017-08-15 Facebook, Inc. Secure support for I/O in software cryptoprocessor
CN105814548B (zh) * 2014-07-14 2019-02-12 上海兆芯集成电路有限公司 具有使用不同编索引方案的主高速缓存器和溢出高速缓存器的高速缓存器系统
US20160019153A1 (en) * 2014-07-18 2016-01-21 Elliptic Technologies Inc. Pre-loading cache lines
US20160034401A1 (en) * 2014-08-01 2016-02-04 Google Inc. Instruction Cache Management Based on Temporal Locality
CN105814549B (zh) * 2014-10-08 2019-03-01 上海兆芯集成电路有限公司 具有主高速缓存器和溢出fifo高速缓存器的高速缓存器系统
KR101817847B1 (ko) 2014-12-14 2018-02-21 비아 얼라이언스 세미컨덕터 씨오., 엘티디. 메모리 접근 타입에 기초한 통로에 의해 버짓화된 캐시 메모리
US9652398B2 (en) 2014-12-14 2017-05-16 Via Alliance Semiconductor Co., Ltd. Cache replacement policy that considers memory access type
EP3066572B1 (en) 2014-12-14 2020-02-19 VIA Alliance Semiconductor Co., Ltd. Cache memory budgeted by chunks based on memory access type
US9652400B2 (en) 2014-12-14 2017-05-16 Via Alliance Semiconductor Co., Ltd. Fully associative cache memory budgeted by memory access type
KR101867143B1 (ko) * 2014-12-14 2018-07-17 비아 얼라이언스 세미컨덕터 씨오., 엘티디. 이종 치환 정책을 가진 셋트 연관 캐시 메모리
US9928176B2 (en) * 2016-07-20 2018-03-27 Advanced Micro Devices, Inc. Selecting cache transfer policy for prefetched data based on cache test regions
US10503654B2 (en) 2016-09-01 2019-12-10 Intel Corporation Selective caching of erasure coded fragments in a distributed storage system
DE102016219202A1 (de) * 2016-10-04 2018-04-05 Robert Bosch Gmbh Verfahren und Vorrichtung zum Schützen eines Arbeitsspeichers
US20180173636A1 (en) * 2016-12-20 2018-06-21 Intel Corporation Increasing lifetime reliability for a cache memory
US10691347B2 (en) * 2018-06-07 2020-06-23 Micron Technology, Inc. Extended line width memory-side cache systems and methods
US11550728B2 (en) * 2019-09-27 2023-01-10 Advanced Micro Devices, Inc. System and method for page table caching memory
CN112817966B (zh) * 2020-07-24 2023-10-13 腾讯科技(深圳)有限公司 数据检索方法、装置、电子设备以及存储介质
US20230039894A1 (en) * 2021-08-05 2023-02-09 International Business Machines Corporation Deferred reclaiming of secure guest resources

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4802086A (en) * 1987-01-09 1989-01-31 Motorola, Inc. FINUFO cache replacement method and apparatus
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
US5553262B1 (en) * 1988-01-21 1999-07-06 Mitsubishi Electric Corp Memory apparatus and method capable of setting attribute of information to be cached
EP0389151A3 (en) * 1989-03-22 1992-06-03 International Business Machines Corporation System and method for partitioned cache memory management
JP2618149B2 (ja) * 1991-04-22 1997-06-11 インターナショナル・ビジネス・マシーンズ・コーポレイション キャッシュ内のデータ記憶スペースを管理する方法及びキャッシュ内でページ置換を行う装置
US5457793A (en) * 1992-03-30 1995-10-10 International Business Machines Corporation Software cache management of a shared electronic store in a supplex
US5974508A (en) * 1992-07-31 1999-10-26 Fujitsu Limited Cache memory system and method for automatically locking cache entries to prevent selected memory items from being replaced
WO1994003856A1 (en) * 1992-08-07 1994-02-17 Massachusetts Institute Of Technology Column-associative cache
US5465342A (en) * 1992-12-22 1995-11-07 International Business Machines Corporation Dynamically adaptive set associativity for cache memories
US5568632A (en) * 1993-12-17 1996-10-22 Lsi Logic Corporation Method and apparatus for cache memory
US5603004A (en) 1994-02-14 1997-02-11 Hewlett-Packard Company Method for decreasing time penalty resulting from a cache miss in a multi-level cache system
JPH0816470A (ja) * 1994-07-04 1996-01-19 Hitachi Ltd 並列計算機
GB2292822A (en) * 1994-08-31 1996-03-06 Hewlett Packard Co Partitioned cache memory
US5636362A (en) * 1994-09-28 1997-06-03 Intel Corporation Programmable high watermark in stack frame cache using second region as a storage if first region is full and an event having a predetermined minimum priority
US5845317A (en) * 1995-11-17 1998-12-01 Micron Technology, Inc. Multi-way cache expansion circuit architecture
GB2311880A (en) * 1996-04-03 1997-10-08 Advanced Risc Mach Ltd Partitioned cache memory
US5737749A (en) * 1996-05-20 1998-04-07 International Business Machines Corporation Method and system for dynamically sharing cache capacity in a microprocessor
US5778432A (en) * 1996-07-01 1998-07-07 Motorola, Inc. Method and apparatus for performing different cache replacement algorithms for flush and non-flush operations in response to a cache flush control bit register

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008525919A (ja) * 2004-12-29 2008-07-17 インテル・コーポレーション プログラマ制御のキャッシュ・ライン追出しポリシーのための方法
JP2006227688A (ja) * 2005-02-15 2006-08-31 Hitachi Ltd ストレージシステム
US8612716B2 (en) 2005-02-15 2013-12-17 Hitachi, Ltd. Storage system having partition size set in accordance with drive type
JP2010123130A (ja) * 2008-11-21 2010-06-03 Nvidia Corp 複数クラスデータキャッシュポリシー
JP5516744B2 (ja) * 2010-08-27 2014-06-11 富士通株式会社 スケジューラ、マルチコアプロセッサシステムおよびスケジューリング方法
US8996811B2 (en) 2010-08-27 2015-03-31 Fujitsu Limited Scheduler, multi-core processor system, and scheduling method
US9430388B2 (en) 2010-08-27 2016-08-30 Fujitsu Limited Scheduler, multi-core processor system, and scheduling method
JP2015519654A (ja) * 2012-05-08 2015-07-09 クアルコム,インコーポレイテッド マルチスレッドプロセッサ内の区分された共有キャッシュにおけるスレッド単位のキャッシュライン割当て機構
US9824013B2 (en) 2012-05-08 2017-11-21 Qualcomm Incorporated Per thread cacheline allocation mechanism in shared partitioned caches in multi-threaded processors
JP2016525252A (ja) * 2014-01-27 2016-08-22 ヴィア アライアンス セミコンダクター カンパニー リミテッド オペレーティング・システム・ルーチンのための予測履歴ストレージのフラクショナルな使用

Also Published As

Publication number Publication date
US6223256B1 (en) 2001-04-24

Similar Documents

Publication Publication Date Title
JPH1196074A (ja) 交換アルゴリズム動的選択コンピュータシステム
EP0185867B1 (en) A memory hierarchy and its method of operation
EP1654660B1 (en) A method of data caching
US7793049B2 (en) Mechanism for data cache replacement based on region policies
US6317811B1 (en) Method and system for reissuing load requests in a multi-stream prefetch design
CN102498477B (zh) Tlb预取
US7461209B2 (en) Transient cache storage with discard function for disposable data
US5630097A (en) Enhanced cache operation with remapping of pages for optimizing data relocation from addresses causing cache misses
EP1010080B1 (en) Mechanism for managing allocation of virtual memory buffers to virtual processes on a least recently used basis
US4903234A (en) Memory system
JP3618385B2 (ja) データをバッファリングする方法およびそのシステム
EP1149342B1 (en) Method and apparatus for managing temporal and non-temporal data in a single cache structure
JP4298800B2 (ja) キャッシュメモリにおけるプリフェッチ管理
US7136967B2 (en) Multi-level cache having overlapping congruence groups of associativity sets in different cache levels
US6625714B1 (en) Parallel distributed function translation lookaside buffer
WO1994003856A1 (en) Column-associative cache
US5956751A (en) Computer memory management system using physical segmentation space allocation
JPH08235072A (ja) セットアソシアティブ方式メモリの動的分画化方法及び装置
US6332179B1 (en) Allocation for back-to-back misses in a directory based cache
EP1980945B1 (en) Memory access control apparatus and memory access control method
US20070266199A1 (en) Virtual Address Cache and Method for Sharing Data Stored in a Virtual Address Cache
US7197620B1 (en) Sparse matrix paging system
US8356141B2 (en) Identifying replacement memory pages from three page record lists
EP0173893B1 (en) Computing system and method providing working set prefetch for level two caches
KR101102260B1 (ko) 가상 어드레스 캐시 및 고유 태스크 식별자를 이용하는데이터를 공유하기 위한 방법

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20051117

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051206

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20060228

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20060307

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060808