JPH0619797A - キャッシュ内の記憶されている行を保護する装置及び方法 - Google Patents

キャッシュ内の記憶されている行を保護する装置及び方法

Info

Publication number
JPH0619797A
JPH0619797A JP5123090A JP12309093A JPH0619797A JP H0619797 A JPH0619797 A JP H0619797A JP 5123090 A JP5123090 A JP 5123090A JP 12309093 A JP12309093 A JP 12309093A JP H0619797 A JPH0619797 A JP H0619797A
Authority
JP
Japan
Prior art keywords
cache
memory
row
bit
cache 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
JP5123090A
Other languages
English (en)
Inventor
Maramii Adam
アダム・マラミイ
N Patel Rajiv
ラジヴ・エヌ・パテル
M Hayes Norman
ノーマン・エム・ヘイーズ
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH0619797A publication Critical patent/JPH0619797A/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
    • 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/12Replacement control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • 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/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • G06F12/125Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list being generated by decoding an array or storage

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)【要約】 【目的】 主メモリと、より高速のキャッシュメモリと
を有するメモリシステムにおいて、ロッキング機能を伴
うキャッシュメモリ置換え方式を提供する。 【構成】 タグテーブル中に、キャッシュのそれぞれの
行と関連するロッキングビットが供給される。それらの
ロッキングビットは実行中のアプリケーションプログラ
ム/プロセスによりセット、リセットされるのが好まし
く、置換えるべきキャッシュの行を確定するために、キ
ャッシュ制御装置によりキャッシュ置換えビットと関連
して利用される。ロッキングビットは、プロセスがロッ
クビットをリセットする時点までキャッシュ内のデータ
の行を「ロック」する。プロセスがロックビットの状態
を制御するように規定することにより、いくつかのメモ
リ記憶場所の使用頻度に関してプロセスが含んでいる知
能と知識を利用して、さらに効率良いキャッシュを提供
できる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、コンピュータのキャッ
シュメモリ装置の分野に関する。さらに詳細には、本発
明は、プログラムがキャッシュにとどまるべきメモリの
ページ又はブロックを指定できるようにデータをキャッ
シュメモリに「ロックする」方法及び装置に関する。
【0002】
【従来の技術】コンピュータプロセッサのスループット
を向上させるための単純な方法は、プロセッサを駆動す
るクロックの周波数を増加させるというものである。と
ころが、プロセッサのクロック周波数が増すと、プロセ
ッサはプロセッサの要求に主メモリが応答しうる速度を
上回る速度で動作し始めてしまう場合がある。従って、
主メモリが応答するまで、プロセッサは待機せざるをえ
ないことがある。この主メモリ待ち時間を緩和するため
に、キャッシュメモリが構築されたのである。
【0003】キャッシュメモリとは、プロセッサに密接
して結合する小容量の高速メモリである。キャッシュメ
モリは主メモリの記憶場所のサブセットを複製するため
に使用される。プロセッサがメモリのデータを必要とし
たときには、プロセッサは、まず、高速キャッシュメモ
リを探索する。キャッシュメモリの中でそのデータが見
つかれば(「ヒット」として知られている)、データを
キャッシュメモリから検索し、実行を再開する。キャッ
シュメモリでデータを見つけられない(「ミス」として
知られている)場合には、プロセッサは続いてより低速
の主メモリを探索する。
【0004】たとえば、特定のプログラムが主メモリの
特定のデータテーブルを頻繁に参照する場合、そのデー
タテーブルのコピーを高速キャッシュメモリに導入する
ことが望ましいであろう。データテーブルのコピーをキ
ャッシュメモリに保持しておけば、プロセッサがそのデ
ータテーブルに含まれるデータを要求するたびに、その
データは迅速に検索される。
【0005】通常、キャッシュメモリは主メモリの小形
のサブセットのみを記憶している。キャッシュメモリの
記憶場所を充填するたびに、キャッシュメモリは現在記
憶されているデータの一部を廃棄しなければならない。
多くの場合に、将来、どのキャッシュメモリ記憶場所が
必要になるかはわかっていないので、どのキャッシュメ
モリ記憶場所を廃棄すべきかを確定するのは難しいタス
クである。主メモリのどの記憶場所を高速キャッシュメ
モリで複製するかを判定するのを助けるために、様々な
ヒューリスティックが開発されている。
【0006】図1を参照すると、従来のキャッシュメモ
リシステムの高レベルブロック線図が示されている。主
メモリ10と、キャッシュメモリシステム12と、プロ
セッサ14はバス16に結合している。プロセッサはメ
モリ要求をキャッシュメモリシステム12へ発行する。
キャッシュメモリ15で情報を利用可能であれば、要求
された情報を専用回線18を介して直ちにプロセッサ1
4へ送り出す。情報がキャッシュメモリ15に記憶され
ていない場合には、要求を低速の主メモリ10へ送り、
主メモリは要求された情報をバス16を介してプロセッ
サ14へ送る。
【0007】物理主メモリアドレスをキャッシュメモリ
の記憶場所にマッピングする方法は数多くある。それら
の方法の中には、フルアソシエイティブ方式、直接マッ
ピング方式及びセットアソシエイティブ方式がある。フ
ルアソシエイティブキャッシュシステムでは、主メモリ
のいずれかのブロックをいずれかのキャッシュメモリ行
で表示することができる。直接マッピング方式のシステ
ムにおいては、主メモリの各ブロックを唯一つの特定の
キャッシュメモリ記憶場所で表示することができる。セ
ットアソシエイティブシステムでは、主メモリの各ブロ
ックを同一のセット番号を有するキャッシュメモリ行に
導入することのみ可能である。キャッシュメモリマッピ
ングシステムの詳細については、Hennessy,P
attersonの「Cmputer Archite
cture:A Quantitative Appr
oach」(Morgan Kaufman Pres
s,1990年刊)の408〜410ページを参照。
【0008】キャッシュメモリの動作を制御するため
に、キャッシュ制御装置(図1の17)と呼ばれる専用
制御論理が設けられている。キャッシュ制御装置の中に
は1つのテーブルがある。TAGテーブルは、主メモリ
の物理アドレスをキャッシュメモリセット及び行アドレ
スにマッピングするために使用する情報を記憶するため
に使用される。詳細にいえば、TAGテーブルはキャッ
シュメモリ行ごとのブロックアドレスと関連制御ビット
を記憶しているということになる。ブロックアドレス
は、キャッシュメモリ行で現在表示されている物理主メ
モリブロックアドレスを表わす。制御ビットは、キャッ
シュメモリ行が有効データを有するか否かなどの情報を
記憶している。加えて、テーブルはキャッシュ置換えア
ルゴリズムを実現するために利用するデータを記憶して
いる。データテーブルはキャッシュメモリの編成に一致
するように分割されている。
【0009】1つのキャッシュメモリセットの中の全て
の行が一杯になり、新たなメモリのブロックをキャッシ
ュメモリに導入すべきである場合には、キャッシュ制御
装置はキャッシュメモリの一部の内容を廃棄して、それ
を主メモリからの新たなデータと置換えなければならな
い。廃棄するキャッシュメモリ行の内容は近い将来に必
要とされないものであるのが好ましい。ところが、キャ
ッシュ制御装置はどのキャッシュメモリ行を廃棄すべき
かを予測することしかできない。先に簡単に述べた通
り、できる限り効率良く予測するために、いくつかのキ
ャッシュ置換えヒューリスティックが開発されている。
現在使用されているキャッシュ置換えヒューリスティッ
クはラウンドロビン、ランダム、最低使用頻度(LR
U)、疑似最低使用頻度などである。これらのヒューリ
スティックは、キャッシュメモリの過去の性能のみを見
ることにより、どのキャッシュメモリ記憶場所を置換え
るべきかを確定する。
【0010】ラウンドロビン置換えヒューリスティック
は単純にキャッシュメモリ行を逐次順に置換えてゆく。
最後のキャッシュメモリ行に到達すると、制御装置は第
1のキャッシュメモリ行に戻って始める。
【0011】最低使用頻度(LRU)置換え方式はキャ
ッシュ制御装置にさらに高い知能を要求する。LRUヒ
ューリスティックにおいては、最近の時点でキャッシュ
メモリの1つの行をアクセスした場合、その行が近い将
来に再びアクセスされる確率は高いということを仮定す
る。この仮定に基づけば、「最も遠い時点で使用され
た」キャッシュメモリ行をキャッシュ制御装置により置
換えるべきであるということになる。LRUヒューリス
ティックを実現するために、キャッシュメモリのそれぞ
れの行で「ヒット」が起こるたびに、キャッシュ制御装
置はタイムカウンタによってそのキャッシュメモリ行を
マークしなければならない。キャッシュ制御装置がキャ
ッシュメモリ行を置換えることを強いられると、キャッ
シュ制御装置はそのキャッシュメモリ行を最も古いタイ
ムカウンタ値と置換える。このようにして、「最も遠い
時点で使用された」キャッシュメモリ行を置換える。
【0012】LRUヒューリスティックは相対的に効率
が良いが、欠点もある。LRU置換え方式に関わる1つ
の問題は、この方式が貴重な高速キャッシュメモリを浪
費することである。キャッシュヒットが起こるたびに、
キャッシュ制御装置はそのキャッシュメモリ行と関連す
る記憶場所にタイムカウンタ値を導入しなければならな
い。LRU置換え方式に関わるもう1つの問題は、実現
に際して複雑な論理を要求することである。置換えを実
行しなければならないときには、キャッシュ制御装置は
全てのキャッシュメモリ行のタイムカウンタ値を比較し
なければならず、この手続きで貴重な時間を浪費してし
まう。これらの要因が取込まれると、LRU方式の効率
は幾分か低下する。
【0013】疑似最低使用頻度(PLRU)置換え方式
は、それほど複雑な論理を必要とせず且つ実現に際して
ごく高速のキャッシュメモリを要求しないという点を除
いて、LRU置換え方式にやや似ている。しかしなが
ら、PLRU方式は動作をスピードアップするために手
っ取り早い方法を採用するので、使用頻度が最低である
キャッシュメモリ記憶場所が置換える記憶場所であると
は限らない。PLRU置換え方式においては、各キャッ
シュメモリ行に、TAGテーブルに記憶されるMRU
(すなわち、最高使用頻度)ビットを割当てる。キャッ
シュメモリ行ごとのMRUビットは、そのキャッシュメ
モリ行で「ヒット」が起こるたびに「1」にセットされ
る。すなわち、MRUビットの「1」は、そのキャッシ
ュメモリ行が最近の時点で使用されたことを指示する。
キャッシュ制御装置が1つのキャッシュメモリ行を置換
えることを強いられたときには、キャッシュ制御装置は
キャッシュメモリ行ごとにMRUビットを「0」を求め
て検査する。ある特定のキャッシュメモリ行のMRUビ
ットが「1」にセットされていれば、そのキャッシュメ
モリ行は最近の時点で使用された行であるので、キャッ
シュ制御装置はそのキャッシュメモリ行を置換えない。
キャッシュ制御装置が「0」にセットされているMRU
ビットを伴うメモリ行を見出すと、そのメモリ行が置換
えられることになり、そのキャッシュメモリ行と関連す
るMRUビットを「1」にセットすることになる。
【0014】全てのキャッシュメモリ行が「1」にセッ
トされた場合に、問題が起こるおそれが生じるであろ
う。この事態が起こると、全ての行は置換えのために利
用できなくなるので、そこでデッドロックを発生させ
る。この種のデッドロックを阻止するために、オーバフ
ロー状況が起こりうると検出されたときには、アクセス
中のMRUビットを除いてTAGの全MRUビットをク
リアする。キャッシュがセットアソシエイティブである
場合には、オーバフロー状況が起こりうると検出された
とき、そのセットの全てのMRUビットは「1」にセッ
トされているので、アクセス中のMRUビットを除いて
そのセットに関わるTAGアレイ中の全MRUビットを
クリアする。
【0015】PLRU方式は1つの例を利用することに
より最もわかりやすく説明される。図2を参照すると、
4つのキャッシュ行を利用できるキャッシュ環境におけ
るPLRU置換え方式の1例が示されている。ステップ
1では、近い時点でどのキャッシュ行も使用されておら
ず、全てのキャッシュ行を自在に置換えられることを指
示するように、全てのMRUビットをクリアする。ステ
ップ2では、行3のデータについてキャッシュヒットが
起こる。キャッシュ制御装置は行3に関わるMRUビッ
トを「1」にセットさせ、行3のデータが近い時点で使
用されたことを指示する。キャッシュ行0,1及び2は
依然として利用可能である。ステップ3では、行1のデ
ータについてキャッシュヒットが起こる。キャッシュ制
御装置は行1に関わるMRUビットを「1」にセットさ
せ、行1のデータが近い時点で使用されたことを指示す
る。ステップ4では、行0のデータについてキャッシュ
ヒットが起こる。キャッシュ制御装置は同様に行0に関
わるMRUビットを「1」にセットさせ、行0のデータ
が近い時点で使用されたことを指示する。その時点で、
近い時点で使用されたとマークされていないキャッシュ
行は行2のみである。ステップ5では、行2のデータに
ついてキャッシュヒットが起こる。行2に関わるMRU
ビットが「1」にセットされれば、全てのMRUビット
は「1」にセットされ、(1111)、置換えのために
利用できるキャッシュ行はなくなってしまうであろう。
これがキャッシュデッドロックのケースであると考えら
れる。そのようにする代わりに、キャッシュ制御装置は
全てのMRUビットをクリアさせ、行2に関わるMRU
ビットを「1」にセットする。その時点で、置換えのた
めに利用できる行は行0,1及び3である。全MRUビ
ットのクリアという動作の結果、キャッシュの履歴の一
部は失われるが、キャッシュのデッドロックを回避する
ためには、この動作は必要である。その後、キャッシュ
動作は以前と同様に続いてゆく。
【0016】ところが、キャッシュメモリの将来の利用
状況に関わる情報が幾分かでもわかれば、上述のヒュー
リスティックを改善することができるのである。たとえ
ば、近い将来、ある1つのキャッシュメモリ記憶場所が
使用されるということがわかれば、そのキャッシュメモ
リ記憶場所を置換えないでおくのが最良であろう。先に
挙げた例では、プログラムはデータテーブル中のデータ
を繰返しアクセスするであろうということがわかってい
た。その場合、データテーブルをキャッシュメモリに導
入すると、そのキャッシュメモリ記憶場所を置換えるこ
とができないように、そのキャッシュメモリ記憶場所を
「ロック」可能とすることが有利であろう。これを実行
したならば、プログラムがその後にデータテーブルから
情報を要求するたびに、そのデータは常にキャッシュメ
モリで見つかるであろう。従って、データテーブル中の
データは、低速の主メモリから検索する必要なく、キャ
ッシュメモリから迅速に取出されるであろう。
【0017】
【発明が解決しようとする課題】従って、本発明の目的
は、キャッシュメモリが一杯になったときにキャッシュ
メモリ記憶場所を置換える効率良い方法を提供すること
である。本発明の別の目的は、プログラムにいくつかの
キャッシュメモリ記憶場所を、それらの記憶場所が置換
えられないようにキャッシュメモリをロックさせる方法
及び装置を提供することである。本発明の別の目的は、
ユーザーに全てのキャッシュメモリ記憶場所をロックさ
せないことにより、ユーザーがキャッシュメモリの「デ
ッドロック」を発生させるのを阻止することである。
【0018】
【課題を解決するための手段】上記の目的及びその他の
目的は、本発明の独自の方法と装置により達成される。
本発明の方法及び装置は、ロッキングビットを利用する
キャッシュメモリ置換え方式から成る。それらのロッキ
ングビットは実行中のアプリケーションプログラム/プ
ロセスによりセット、リセットされるのが好ましく、キ
ャッシュ制御装置により、置換えるべきキャッシュの行
を確定するためにキャッシュ置換えビットと関連して利
用される。ロッキングビットは、プロセスがロックビッ
トをリセットする時点まで、キャッシュ中のデータの行
を「ロック」する。プロセスがロックビットの状態を制
御すると規定するならば、いくつかの記憶場所の使用頻
度に関してプロセスが含んでいる知能と知識を利用し
て、さらに効率の良いキャッシュを提供することができ
る。本発明の目的、特徴及び利点は以下の詳細な説明か
ら当業者には明白になるであろう。
【0019】
【実施例】最低使用頻度置換えアルゴリズムを実現する
キャッシュに、キャッシュ内のいくつかのメモリ記憶場
所をロックする能力を与える。キャッシュのメモリ記憶
場所がロックされると、その場所に記憶されている情報
は、ロックが解除され、キャッシュ置換えアルゴリズム
がキャッシュのその行を置換えるべきであると判定する
までキャッシュ内にとどまる。
【0020】タグテーブルには、追加ビットとして、キ
ャッシュメモリのそれぞれの行と関連するロックビット
が含まれている。その特定のキャッシュメモリ記憶場所
をアクセスするプロセスによって、このビットをセット
できるのが好ましい。利点は、知能が追加され且つキャ
ッシュをアクセスしているアプリケーションプログラム
又はプロセスにより既存の知識が与えられていることで
ある。アプリケーションプログラムは、プログラム実行
中のいくつかの変数又はメモリのアクセスの頻度に関す
る既存の知識を有する。この知識は、置換えアルゴリズ
ムを実現するキャッシュ制御装置には容易には明らかに
ならない。従って、キャッシュ制御装置、あるいはキャ
ッシュ置換えアルゴリズムの複雑さを過度に増さずに、
キャッシュ置換えアルゴリズムの知能の向上が得られ
る。
【0021】以下の説明中、本発明を完全に理解させる
ために、特定の用語を挙げるが、本発明を実施するに際
してそれらの特定の詳細な事項が要求されないことは当
業者には明白であろう。また、場合によっては、本発明
を無用にわかりにくくしないために、周知の回路や装置
をブロック線図の形で示すことがある。特定すれば、本
発明はセットアソシエイティブマッピングシステムと、
疑似最低使用頻度置換えアルゴリズムとを使用して実現
されている。しかしながら、当業者には明白であるよう
に、本発明のキャッシュシステムはセットアソシエイテ
ィブマッピングを伴うキャッシュメモリシステム又は疑
似最低使用頻度置換えアルゴリズムには限定されない。
図3を参照すると、セットアソシエイティブキャッシュ
メモリの1例のブロック線図が示されている。図示した
例のセットアソシエイティブキャッシュメモリシステム
では、キャッシュメモリ「セット」は64あり、それぞ
れのセットに0〜63のラベルが付されている。キャッ
シュメモリの各セットはキャッシュメモリの4つの
「行」を含む。各セットのキャッシュメモリのそれぞれ
の行には0〜3のラベルが付されている。それぞれのキ
ャッシュメモリ行は主メモリの1つの「ブロック」全体
を記憶することができる。
【0022】キャッシュメモリと同様に、主メモリも多
数のセットに分割されている。主メモリが分割されるセ
ットの数はキャッシュメモリ中のセットの数と等しい。
たとえば、図3に示すように、主メモリは64のセット
に分割されている。主メモリはブロックアドレスの上位
ビットに従って分割される。すなわち、初めのn個のブ
ロックはセット0に属し、次のn個のブロックはセット
1に属する。続くブロックも同様である。0で終わる全
てのブロックアドレスがセット0に属し、1で終わる全
てのブロックアドレスはセット1に属するように、ブロ
ックアドレスの下位ビットを使用しても全く同じように
容易にセットを分割できるであろうということは明白で
ある。たとえば、セット0はブロック0,N,2N,・
・・,61N,62N,63Nを含み、セット1はブロ
ック1,N+1,2N+1,・・・,61N+1,62
N+1,63N+1を含むということになる。
【0023】主メモリのセットはキャッシュメモリのセ
ットより相当に大きい。主メモリの各セットは多数のメ
モリブロックにさらに分割されている。主メモリの各ブ
ロックは同一のセット番号をもつキャッシュメモリのセ
ットでのみ複製可能である。例を挙げると、セット0の
ブロック3はキャッシュメモリのセット0でのみ複製可
能であり、セット1のブロックn+1はキャッシュメモ
リのセット1でのみ複製可能である。
【0024】先に述べた通り、キャッシュメモリの各セ
ットはキャッシュメモリの多数の「行」から構成されて
いる。キャッシュメモリの「行」のサイズは主メモリの
「ブロック」と等しく、主メモリのブロックの複製を記
憶するために使用される。本質的には、「行」はキャッ
シュメモリにのみあり、ブロックは主メモリにのみある
という点を除いて、キャッシュメモリの行と主メモリの
ブロックとは同じである。
【0025】本発明のキャッシュシステムのロッキング
メカニズムの概念を図4を参照して説明する。図4a
は、最も近い時点でアクセスされたアドレスのメモリ内
容を記憶するキャッシュ300を示す。キャッシュ制御
装置310はキャッシュ300に対するアクセスを制御
し、キャッシュを更新するために、キャッシュ置換えア
ルゴリズムを実行する。タグテーブル315はメモリに
関する情報、すなわち、キャッシュに記憶されているデ
ータのタグアドレスと、制御ビットとを含む。図4bを
参照すると、タグテーブルのエントリの1例が示されて
いる。キャッシュの行ごとに、1つのタグテーブルエン
トリが設けられている。アドレス325及び制御ビット
330に加えて、各エントリに、その特定の行でキャッ
シュがアクセスされたときにセットされるビットMRU
335が与えられている。キャッシュ制御装置が実行す
る置換えアルゴリズムで、これを利用するのである。さ
らに、キャッシュの行が置換えられるのを阻止するため
のロックビット340がある。このロックビットはキャ
ッシュをアクセスするプロセッサプログラムによりセッ
ト可能であり、また、同様に、その情報に対する繰返し
アクセスが不要になり、キャッシュの行を置換えられる
ようになったときに、そのプログラムによりセット可能
である。図4cは、概念をどのように実現するかを目で
見てわかるように示している。キャッシュ制御装置がキ
ャッシュの行を置換えることを要求されると、キャッシ
ュ制御装置はMRUを読取り且つデータをロックするた
めにタグテーブルをアクセスする。そこで、ロックデー
タとMRUデータとを論理的に論理和演算して、キャッ
シュのその特定の行を置換えることができるか否かを示
す置換えビットを得る。この論理和演算機能はキャッシ
ュ制御装置自体により実行されても良いし、あるいは、
外部論理により実行されても良い。論理和演算機能の結
果は合成マスクとして知られている。合成マスクの中の
得られた置換えビットがセットされていれば、キャッシ
ュの行は異なるメモリ記憶場所による置換えのために除
去されない。従って、MRUビットの値にかかわらず、
データをキャッシュに確実に維持しておくために、ロッ
クビットをセットすることができる。
【0026】年 月 日に出願された名称「Cache
Set Tag Array」による同時係属米国特
許出願第 号に記載してある通り、タグテーブルは
2つの別個のタグテーブルとして実現されるのが好まし
い。このことを図5に示す。第1のテーブルPTAG4
00はアドレス情報と、制御ビットとを含む。アドレス
は、キャッシュメモリ行で現在表示されている物理主メ
モリブロックアドレスである。制御ビットは、キャッシ
ュメモリ行が有効データを含んでいるか否かを指示する
有効ビットを含む。加えて、第2のテーブルSTAG4
10も設けられている。STAGはキャッシュメモリの
行ごとのMRUビットと、ロックビットとを含む。先に
述べた通り、MRUビットは疑似最低使用頻度置換え方
式を実現するために使用される。
【0027】全ての行に関わる全ての合成ビットがセッ
トされ、キャッシュデッドロックが起こるような状態に
合成マスクが陥ることが決してないよう保証するため
に、キャッシュ制御装置は合成マスクの状態を監視す
る。加えて、全てのキャッシュメモリ行がユーザーによ
りロックされるのを阻止するために、セット状態のロッ
クビットの数を監視すると共に、所定数のロックビット
がセットされていた場合にアプリケーションプログラム
による追加のロック要求を抑止するためのメカニズムが
設けられている。メカニズムはキャッシュ制御装置、プ
ログラム/プロセス又はコンパイラに設けられれば良
い。あるいは、全てのキャッシュ行のロックを回避する
ために、ロックビットが決してセットされないようにキ
ャッシュメモリ行0を制御するのが好ましい。これによ
り、問題を単純に且つオーバヘッドも少なく解決でき、
プログラマーの誤りに起因するデッドロックは回避され
る。
【0028】図6を参照すると、本発明の置換え方式の
利用例が挙げられている。ステップ1の初期開始点で
は、全てのMRUビットとロックビットをクリアする。
ステップ2では、行3のデータについてキャッシュヒッ
トが起こる。キャッシュ制御装置はキャッシュメモリ行
3に関わるMRUビットを、行3のデータが近い時点で
使用されたことを指示する「1」にセットさせる。キャ
ッシュ行0,1及び2は依然として利用可能である。次
のステップ3では、ユーザープログラムは行2にあるデ
ータをロックする。そこで、キャッシュ制御装置はキャ
ッシュメモリ行2に関わるロックビットを、行2のデー
タがその時点でキャッシュにロックされることを指示す
る「1」にセットする。MRUビットとロックビットの
「論理和」演算により作成される合成マスクは「110
0」であり、キャッシュ行0及び1は依然として利用可
能であることを指示する。ステップ4では、行2のデー
タについてヒットが起こる。キャッシュ制御装置はキャ
ッシュメモリ行2に関わるMRUビットを「1」にセッ
トさせて、行2のデータが近い時点で使用されたことを
指示する。この合成マスクは「1100」のままであ
り、キャッシュ行0及び1は依然として利用可能である
ことがわかる。ステップ5では、行0にあるデータにつ
いてヒットが起こる。キャッシュ制御装置はキャッシュ
メモリ行0に関わるMRUビットを「1」にセットさせ
て、行0のデータが近い時点で使用されたことを指示す
る。この結果得られる合成マスクは「1101」であ
り、置換えのために利用可能のままであるのは行1のみ
であることがわかる。
【0029】ステップ6では、行1のデータについてヒ
ットが起こる。キャッシュ制御装置がMRUビットを
「1」にセットさせると、合成マスクは「1111」に
なってしまうであろう。その代わりに、キャッシュ制御
装置はMRUビットをリセットさせ且つキャッシュメモ
リ行1に関わるMRUビットを「1」にセットさせて、
行1のデータが近い時点で使用されたことを指示する。
行2に関わるロックビットはセット状態のままであるの
で、その結果得られる合成マスクは「0110」にな
る。ステップ7では、ユーザープログラムは行3のデー
タをロックするための命令を実行する。キャッシュ制御
装置は行3に関わるロックビットを「1」にセットさせ
ることによりこの命令を実行する。ステップ8では、行
0についてキャッシュヒットが起こる。「1111」の
合成マスクが形成されるのを阻止するために、キャッシ
ュ制御装置はMRUビットを再度クリアしなければなら
ない。ステップ9では、キャッシュメモリ行1をロック
する。そこで、ロックできる全てのキャッシュメモリ行
がロックされたことになる。キャッシュメモリのデッド
ロックを阻止するため、システムはMRUビットをクリ
アする。キャッシュメモリ行1〜3の全てがロックされ
たとき、置換えのために利用可能なキャッシュメモリ行
は行0のみである。ステップ10では、行0についてヒ
ットが起きる。合成マスクがキャッシュメモリのデッド
ロックを引起こす「1111」になってしまうので、行
0に関わるMRUビットがキャッシュ制御装置によりセ
ットされることはない。
【0030】ステップ11では、行1についてキャッシ
ュヒットが起こる。行1に関わるMRUビットは、その
行が近い時点で使用されたことを指示する「1」にセッ
トされる。依然として、利用可能なキャッシュメモリ行
は行0のみである。ステップ12では、行2のロックを
解除することにより、キャッシュメモリ行2を最終的に
ロック解除する。そこで、合成マスクは「1010」に
なるので、置換えのために行0及び2を利用できるよう
になったことになる。ステップ13では、行0について
ヒットが起こって、行0に関わるMRUビットは「1」
にセットされる。ステップ10とは異なり、他の行はロ
ック解除されているので、行0のMRUビットをセット
しても、デッドロックは起こらない。
【0031】先に述べた通り、本発明のキャッシュシス
テムにおいてロッキングメカニズムを利用することによ
り得られるきわ立った利点は、キャッシュ置換えプロセ
スにさらに知能が追加されることである。ロックビット
はアプリケーションプロセスによりセットされるので、
キャッシュ制御装置レベルで知識を得ようとするために
要求される知能は削除される。いくつかのキャッシュメ
モリ行をロックする要求を実行する方法の1つは、アプ
リケーションプログラムがそのような要求を所定の指令
又はサブルーチン呼出しの形態でアプリケーションプロ
グラムの中にプログラミングするというものである。プ
ログラムの実行中に、あるいくつかの変数又はメモリ記
憶場所を頻繁にアクセスすべきであるということがプロ
グラマーにわかっていれば、第1回のアクセスの後、対
応するロックビットをセットするために、特殊な指令を
発行しても良い。このプログラムをコンパイルするコン
パイラは指令要求を認識し、指令を実行するための適正
なコードを提供する。
【0032】本発明の中で挙げるようなロッキングを制
御するために、オペレーティングシステムルーチン、何
らかのデータベース又はウィンドウシステムルーチンな
どのシステムプログラムを使用しても良い。システムプ
ログラムで実行されるロッキングは、アプリケーション
プログラマーからの介入なく、アプリケーションプログ
ラムが使用するいくつかのキーとなる機能の性能を向上
させる。たとえば、図形パッケージを作成しているプロ
グラマーであれば、オペレーティングシステムの図形ラ
イブラリにより提供される効率良い線描出機能を使用す
るであろう。この機能をキャッシュにロックしたなら
ば、図形パッケージの実行速度を間接的に増すことがで
きる。
【0033】本発明のロッキングメカニズムは、スーパ
ーバイザモードのみで実行するために利用可能な特殊ア
センブリ言語命令を介して使用するように設けられてい
るのが好ましい。プログラマーを補助するために、行ロ
ック指令及び行ロック解除指令を提示するシステム呼出
しを容易に書込むことができる。これは非常に強力なメ
カニズムであり、知識をもつプログラマーのみがこのメ
カニズムを使用すべきである。たとえば、SPARCTM
(SPARCはSPARC Internationa
l,Inc.の商標である)アーキテクチャでは、ロッ
クビットを変更するためにロード/記憶命令を適合させ
ることが可能である。ロード/記憶指令を適合させる方
法の1つは、ASI値をロックビットの場所に対応する
ように予約するというものである。CPUがその命令を
実行するとき、キャッシュ制御装置はいくつかのロック
ビットをロック解除/ロックするためにCPUから指令
を受けとる。キャッシュ制御装置はタグアレイ中の指定
ロックビットをセット/リセットする指令を発行するこ
とによって応答する。ロード/記憶命令の詳細について
は、「The SPARC Architecture
Manual」第8版の45〜49ページ(Pren
tiss Hall,1992年刊)を参照。
【0034】あるいは、対応するロックビットをセット
させることにより利益を得ると考えられる頻度の高いメ
モリアクセスを確定するために、実行すべきメモリアク
セスについて自動化解析を実行するインテリジェントコ
ンパイラを設けるのが好ましい。そのようにすれば、ロ
ックビットのロッキング、続いてロック解除を実行する
ように、コンパイル済コードに自動的に指令を挿入する
ことができる。この技法によれば、キャッシュであるい
くつかのアクセスをロックすべきか否かの決定がコンパ
イラにより自動的に下され、アプリケーションプログラ
マーをそのような決定の実行から解放すると考えられる
ので、有利である。
【0035】以上説明したようなロッキング機能を伴う
PLRUを実現するキャッシュシステムでは、普通のP
LRUキャッシュシステムと比べて、キャッシュメモリ
ミスの率は著しく低い。そのように高い効率が得られる
のは、キャッシュ置換えヒューリスティックに「知能」
が追加されているためである。以上、ロッキング機能を
伴う疑似LRU置換え方式によってキャッシュメモリシ
ステムを実現する方法及び装置を説明した。本発明の素
子の材料及び配置について、本発明の趣旨から逸脱せず
に当業者により変更及び変形を実施しうると考えられ
る。
【図面の簡単な説明】
【図1】従来の典型的なキャッシュメモリシステムの高
レベルブロック線図。
【図2】従来の疑似最低使用頻度置換えプロセスの1例
を示す図。
【図3】従来のセットアソシエイティブキャッシュを示
す図。
【図4】本発明のキャッシュシステムの好ましい一実施
例及び採用するロッキングビットを示す図。
【図5】本発明のキャッシュシステムの好ましい実施例
で利用するSTAGテーブル及びPTAGテーブルを示
す図。
【図6】ロッキングビットを採用する疑似最低使用頻度
置換えプロセスを示す図。
【符号の説明】
300 キャッシュ 310 キャッシュ制御装置 315 タグテーブル 325 アドレス 330 制御ビット 335 MRU 340 ロックビット
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ラジヴ・エヌ・パテル アメリカ合衆国 95148 カリフォルニア 州・サン ホゼ・ホワイトサンド ドライ ブ・3116 (72)発明者 ノーマン・エム・ヘイーズ アメリカ合衆国 94087 カリフォルニア 州・サニーヴェイル・メリマック ドライ ブ・1121

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 中央処理装置(CPU)を含むマスター
    装置と、主メモリ及びより高速のキャッシュメモリから
    構成されるメモリシステムとを具備し、メモリに対して
    アクセスの要求を発行したマスター装置によって高速ア
    クセスできるように主メモリの行のサブセットがキャッ
    シュメモリに記憶されるようなコンピュータシステムに
    あって、キャッシュメモリの主メモリから選択された行
    を保護する装置において、 キャッシュに記憶されている主メモリの行を識別し、キ
    ャッシュからの行を供給することによりメモリに対する
    アクセスを実行するか否かを判定するために比較される
    複数のタグビットと、少なくとも1つのロックビットと
    をキャッシュの行ごとに、含むタグテーブルと;タグテ
    ーブルに含まれているキャッシュの行ごとのロックビッ
    トの状態を制御する手段と;キャッシュに記憶されてい
    る1つのメモリ行を異なるメモリ行と置換えるが、タグ
    テーブルにおける対応するロックビットがセットされて
    いる場合には、メモリ行を置換えるのを禁止される置換
    え手段とを具備し、 タグテーブル中の対応するロックビットをセットするこ
    とにより、キャッシュ置換えアルゴリズムとは無関係
    に、キャッシュに記憶されているメモリ行はキャッシュ
    内で保護される装置。
  2. 【請求項2】 中央処理装置(CPU)を含むマスター
    装置と、主メモリ、より高速のキャッシュメモリ及びキ
    ャッシュメモリと関連するタグテーブルから構成される
    メモリシステムとを具備し、メモリに対するアクセスの
    要求を発行したマスター装置によって高速アクセスでき
    るように主メモリの行のサブセットがキャッシュメモリ
    に記憶されるコンピュータシステムで、かつ前記タグテ
    ーブルは複数のタグビットを含み、前記タグビットはキ
    ャッシュに記憶されている主メモリの行を識別し、その
    タグビットが、キャッシュからの行を供給することによ
    りメモリに対するアクセスを実行するか否かを判定する
    ために比較されるようなコンピュータシステムでキャッ
    シュメモリの主メモリが選択された行を保護する方法に
    おいて、 タグテーブル中のキャッシュのそれぞれの行と関連する
    少なくとも1つのロックビットを提供する過程と;タグ
    テーブルに含まれているキャッシュの行ごとのロックビ
    ットの状態を制御する過程と;セットされている関連ロ
    ックビットを有するキャッシュの行は置換えられないよ
    うに、キャッシュに記憶されている1つのメモリ行を異
    なるメモリ行と置換える過程とから成り、 タグテーブル中の対応するロックビットをセットするこ
    とにより、キャッシュ置換えアルゴリズムとは無関係
    に、キャッシュに記憶されているメモリ行はキャッシュ
    内で保護されるような方法。
  3. 【請求項3】 中央処理装置(CPU)を含むマスター
    装置と、主メモリ及びより高速のキャッシュメモリから
    構成されるメモリシステムとを具備し、メモリに対する
    アクセスの要求を発行したマスター装置によって高速ア
    クセスするために主メモリの行のサブセットがキャッシ
    ュメモリに記憶されるようなコンピュータシステムのキ
    ャッシュメモリで主メモリの選択された行を保護する装
    置において、 キャッシュに記憶されている主メモリの行を識別し、キ
    ャッシュからの行を供給することによりメモリに対する
    アクセスを実行するか否かを判定するために比較される
    複数のタグビットと、少なくとも1つの置換えビット
    と、少なくとも1つのロックビットとをキャッシュの行
    ごとに含むタグテーブルと;タグテーブルに含まれてい
    るロックビットをセット/リセットするための指令を発
    行するオペレーティングシステムと;キャッシュに記憶
    されている1つのメモリ行を異なるメモリ行と置換える
    ための置換えアルゴリズムを実行し且つタグテーブルを
    更新するが、タグテーブル中の対応するロックビットが
    セットされている場合には、キャッシュ内のメモリ行を
    置換えることを禁止するキャッシュ及びタグテーブルの
    内容を制御するキャッシュ制御装置とを具備し、 タグテーブル中の対応するロックビットをセットするこ
    とにより、キャッシュ置換えアルゴリズムとは無関係
    に、キャッシュに記憶されているメモリ行がキャッシュ
    内で保護される装置。
JP5123090A 1992-04-29 1993-04-28 キャッシュ内の記憶されている行を保護する装置及び方法 Pending JPH0619797A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US875,357 1978-02-06
US07/875,357 US5353425A (en) 1992-04-29 1992-04-29 Methods and apparatus for implementing a pseudo-LRU cache memory replacement scheme with a locking feature

Publications (1)

Publication Number Publication Date
JPH0619797A true JPH0619797A (ja) 1994-01-28

Family

ID=25365663

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5123090A Pending JPH0619797A (ja) 1992-04-29 1993-04-28 キャッシュ内の記憶されている行を保護する装置及び方法

Country Status (5)

Country Link
US (1) US5353425A (ja)
EP (1) EP0568221B1 (ja)
JP (1) JPH0619797A (ja)
KR (1) KR100293276B1 (ja)
DE (1) DE69322683T2 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005029336A1 (ja) * 2003-09-19 2005-03-31 Matsushita Electric Industrial Co., Ltd. キャッシュメモリおよびキャッシュメモリ制御方法
WO2005048112A1 (ja) * 2003-11-12 2005-05-26 Matsushita Electric Industrial Co., Ltd. キャッシュメモリおよびその制御方法
KR100637610B1 (ko) * 1997-10-31 2006-10-24 코닌클리케 필립스 일렉트로닉스 엔.브이. 로킹을 사용한 캐시 교체방법
JP2010538390A (ja) * 2007-09-04 2010-12-09 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド プロセッサの非常にアソシエティビティの高いキャッシュメモリ用のセカンドチャンス置換機構
EP2634702A1 (en) 2012-02-29 2013-09-04 Fujitsu Limited Processor, information processing apparatus, and arithmetic method
US10788782B2 (en) 2016-07-20 2020-09-29 Konica Minolta, Inc. Image forming apparatus locks down storage area of cache memory stores portion of image forming program for executing real-time image forming process

Families Citing this family (129)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
JPH06243036A (ja) * 1993-02-12 1994-09-02 Hitachi Ltd キャッシュ制御システム
JPH06282488A (ja) * 1993-03-25 1994-10-07 Mitsubishi Electric Corp キャッシュ記憶装置
US5778424A (en) * 1993-04-30 1998-07-07 Avsys Corporation Distributed placement, variable-size cache architecture
JP3230898B2 (ja) * 1993-06-02 2001-11-19 シャープ株式会社 データ駆動型情報処理システム
US5809527A (en) * 1993-12-23 1998-09-15 Unisys Corporation Outboard file cache system
US5526511A (en) * 1993-12-23 1996-06-11 Unisys Corporation Enhanced least recently used round robin cache management method and apparatus for allocation and destaging of cache segments
US5809524A (en) * 1994-01-04 1998-09-15 Intel Corporation Method and apparatus for cache memory replacement line identification
TW243509B (en) * 1994-01-31 1995-03-21 Ibm Data processor with memory cache and method of operation
DE4407626C1 (de) * 1994-03-08 1995-05-24 Karl Michael Marks Verfahren und Einrichtung zur Steuerung der Datenverfügbarkeit in Zwischenspeichern bei Computern
JPH07334310A (ja) * 1994-06-06 1995-12-22 Toshiba Corp ディスク装置及び同装置における読み出しデータのバッファ記憶制御方法
JPH07334428A (ja) * 1994-06-14 1995-12-22 Toshiba Corp キャッシュメモリ
US5548742A (en) * 1994-08-11 1996-08-20 Intel Corporation Method and apparatus for combining a direct-mapped cache and a multiple-way cache in a cache memory
US5613153A (en) * 1994-10-03 1997-03-18 International Business Machines Corporation Coherency and synchronization mechanisms for I/O channel controllers in a data processing system
US5890221A (en) * 1994-10-05 1999-03-30 International Business Machines Corporation Method and system for offset miss sequence handling in a data cache array having multiple content addressable field per cache line utilizing an MRU bit
US5594886A (en) * 1994-10-23 1997-01-14 Lsi Logic Corporation Pseudo-LRU cache memory replacement method and apparatus utilizing nodes
US6002411A (en) * 1994-11-16 1999-12-14 Interactive Silicon, Inc. Integrated video and memory controller with data processing and graphical processing capabilities
US7190284B1 (en) 1994-11-16 2007-03-13 Dye Thomas A Selective lossless, lossy, or no compression of data based on address range, data type, and/or requesting agent
US6170047B1 (en) 1994-11-16 2001-01-02 Interactive Silicon, Inc. System and method for managing system memory and/or non-volatile memory using a memory controller with integrated compression and decompression capabilities
US5717895A (en) * 1994-12-01 1998-02-10 Cray Research, Inc. Associative scalar data cache with write-through capabilities for a vector processor
US5584014A (en) * 1994-12-20 1996-12-10 Sun Microsystems, Inc. Apparatus and method to preserve data in a set associative memory device
US5694567A (en) * 1995-02-09 1997-12-02 Integrated Device Technology, Inc. Direct-mapped cache with cache locking allowing expanded contiguous memory storage by swapping one or more tag bits with one or more index bits
US5761712A (en) * 1995-06-07 1998-06-02 Advanced Micro Devices Data memory unit and method for storing data into a lockable cache in one clock cycle by previewing the tag array
US5701432A (en) * 1995-10-13 1997-12-23 Sun Microsystems, Inc. Multi-threaded processing system having a cache that is commonly accessible to each thread
US5737754A (en) * 1996-03-20 1998-04-07 Unisys Corporation Cache memory which selects one of several blocks to update by digitally combining control bits in all the blocks
US5778430A (en) * 1996-04-19 1998-07-07 Eccs, Inc. Method and apparatus for computer disk cache management
US5845320A (en) * 1996-04-29 1998-12-01 Micron Technology, Inc. Circuit and method to implement a least recently used cache set replacement technique
JPH09325913A (ja) * 1996-06-05 1997-12-16 Toshiba Corp 半導体記憶装置
US5802568A (en) * 1996-06-06 1998-09-01 Sun Microsystems, Inc. Simplified least-recently-used entry replacement in associative cache memories and translation lookaside buffers
EP1005675B1 (en) * 1996-07-16 2007-01-03 Advanced Micro Devices, Inc. A data memory unit configured to store data in one clock cycle and method for operating same
US6289410B1 (en) * 1996-07-18 2001-09-11 Electronic Data Systems Corporation Method and system for maintaining consistency of shared objects based upon instance variable locking
US5974471A (en) * 1996-07-19 1999-10-26 Advanced Micro Devices, Inc. Computer system having distributed compression and decompression logic for compressed data movement
US5781924A (en) * 1996-09-30 1998-07-14 Sun Microsystems, Inc. Computer caching methods and apparatus
US5822759A (en) * 1996-11-22 1998-10-13 Versant Object Technology Cache system
US6078995A (en) * 1996-12-26 2000-06-20 Micro Magic, Inc. Methods and apparatus for true least recently used (LRU) bit encoding for multi-way associative caches
US5940826A (en) * 1997-01-07 1999-08-17 Unisys Corporation Dual XPCS for disaster recovery in multi-host computer complexes
US5949970A (en) * 1997-01-07 1999-09-07 Unisys Corporation Dual XPCS for disaster recovery
US5913224A (en) * 1997-02-26 1999-06-15 Advanced Micro Devices, Inc. Programmable cache including a non-lockable data way and a lockable data way configured to lock real-time data
US6006311A (en) * 1997-04-14 1999-12-21 Internatinal Business Machines Corporation Dynamic updating of repair mask used for cache defect avoidance
US6044478A (en) * 1997-05-30 2000-03-28 National Semiconductor Corporation Cache with finely granular locked-down regions
US6879266B1 (en) 1997-08-08 2005-04-12 Quickshift, Inc. Memory module including scalable embedded parallel data compression and decompression engines
US5940828A (en) * 1997-11-18 1999-08-17 International Business Machines Corporation Locking contention resolution for shared resources
US6044430A (en) * 1997-12-17 2000-03-28 Advanced Micro Devices Inc. Real time interrupt handling for superscalar processors
US6079000A (en) * 1997-12-30 2000-06-20 Unisys Corporation XPC backup for in-process audit
US6701330B1 (en) 1997-12-30 2004-03-02 Unisys Corporation Protecting duplicate/lost updates against host failures
US6202129B1 (en) * 1998-03-31 2001-03-13 Intel Corporation Shared cache structure for temporal and non-temporal information using indicative bits
US6370622B1 (en) 1998-11-20 2002-04-09 Massachusetts Institute Of Technology Method and apparatus for curious and column caching
US6819271B2 (en) 1999-01-29 2004-11-16 Quickshift, Inc. Parallel compression and decompression system and method having multiple parallel compression and decompression engines
US6885319B2 (en) * 1999-01-29 2005-04-26 Quickshift, Inc. System and method for generating optimally compressed data from a plurality of data compression/decompression engines implementing different data compression algorithms
US6822589B1 (en) 1999-01-29 2004-11-23 Quickshift, Inc. System and method for performing scalable embedded parallel data decompression
US7538694B2 (en) * 1999-01-29 2009-05-26 Mossman Holdings Llc Network device with improved storage density and access speed using compression techniques
US6208273B1 (en) 1999-01-29 2001-03-27 Interactive Silicon, Inc. System and method for performing scalable embedded parallel data compression
US7129860B2 (en) * 1999-01-29 2006-10-31 Quickshift, Inc. System and method for performing scalable embedded parallel data decompression
US6145069A (en) * 1999-01-29 2000-11-07 Interactive Silicon, Inc. Parallel decompression and compression system and method for improving storage density and access speed for non-volatile memory and embedded memory devices
US6408368B1 (en) * 1999-06-15 2002-06-18 Sun Microsystems, Inc. Operating system page placement to maximize cache data reuse
US6510493B1 (en) 1999-07-15 2003-01-21 International Business Machines Corporation Method and apparatus for managing cache line replacement within a computer system
US6868472B1 (en) * 1999-10-01 2005-03-15 Fujitsu Limited Method of Controlling and addressing a cache memory which acts as a random address memory to increase an access speed to a main memory
US6516384B1 (en) * 1999-12-30 2003-02-04 Intel Corporation Method and apparatus to perform a round robin and locking cache replacement scheme
US6523102B1 (en) 2000-04-14 2003-02-18 Interactive Silicon, Inc. Parallel compression/decompression system and method for implementation of in-memory compressed cache improving storage density and access speed for industry standard memory subsystems and in-line memory modules
US6928525B1 (en) * 2000-04-28 2005-08-09 Hewlett-Packard Development Company, L.P. Per cache line semaphore for cache access arbitration
US6748492B1 (en) 2000-08-07 2004-06-08 Broadcom Corporation Deterministic setting of replacement policy in a cache through way selection
US6848024B1 (en) 2000-08-07 2005-01-25 Broadcom Corporation Programmably disabling one or more cache entries
US6732234B1 (en) * 2000-08-07 2004-05-04 Broadcom Corporation Direct access mode for a cache
US6728835B1 (en) * 2000-08-30 2004-04-27 Unisys Corporation Leaky cache mechanism
US6785714B1 (en) * 2000-09-28 2004-08-31 Microsoft Corporation System and method for employing slot level locking of a cache
US6598124B1 (en) 2000-09-29 2003-07-22 Sun Microsystems, Inc. System and method for identifying streaming-data
US6578111B1 (en) * 2000-09-29 2003-06-10 Sun Microsystems, Inc. Cache memory system and method for managing streaming-data
US6668307B1 (en) * 2000-09-29 2003-12-23 Sun Microsystems, Inc. System and method for a software controlled cache
JP2002183554A (ja) * 2000-12-14 2002-06-28 Mitsubishi Electric Corp メモリデバイス販売装置、およびメモリデバイス販売方法
US6748495B2 (en) 2001-05-15 2004-06-08 Broadcom Corporation Random generator
US8261022B2 (en) 2001-10-09 2012-09-04 Agere Systems Inc. Method and apparatus for adaptive cache frame locking and unlocking
US6807588B2 (en) * 2002-02-27 2004-10-19 International Business Machines Corporation Method and apparatus for maintaining order in a queue by combining entry weights and queue weights
US6915373B2 (en) * 2002-04-30 2005-07-05 Microsoft Corporation Cache with multiway steering and modified cyclic reuse
US7266587B2 (en) * 2002-05-15 2007-09-04 Broadcom Corporation System having interfaces, switch, and memory bridge for CC-NUMA operation
US6904501B1 (en) * 2002-06-17 2005-06-07 Silicon Graphics, Inc. Cache memory for identifying locked and least recently used storage locations
US6901483B2 (en) * 2002-10-24 2005-05-31 International Business Machines Corporation Prioritizing and locking removed and subsequently reloaded cache lines
JP2007535058A (ja) * 2004-04-27 2007-11-29 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ キャッシュマネージメントポリシーを用いてパワー消費を低減する装置
US7321954B2 (en) * 2004-08-11 2008-01-22 International Business Machines Corporation Method for software controllable dynamically lockable cache line replacement system
AT500858B8 (de) * 2004-08-17 2007-02-15 Martin Schoeberl Instruction cache für echtzeitsysteme
US7343455B2 (en) * 2005-02-09 2008-03-11 International Business Machines Corporation Cache mechanism and method for avoiding cast out on bad victim select and recycling victim select operation
US7363433B2 (en) * 2005-02-09 2008-04-22 International Business Machines Corporation Cache member protection with partial make MRU allocation
US7805574B2 (en) * 2005-02-09 2010-09-28 International Business Machines Corporation Method and cache system with soft I-MRU member protection scheme during make MRU allocation
US7401189B2 (en) * 2005-02-09 2008-07-15 International Business Machines Corporation Pipelining D states for MRU steerage during MRU/LRU member allocation
US20060230233A1 (en) * 2005-04-11 2006-10-12 Steely Simon C Jr Technique for allocating cache line ownership
WO2007068122A1 (en) * 2005-12-16 2007-06-21 Univ Western Ontario System and method for cache management
US7523260B2 (en) 2005-12-22 2009-04-21 International Business Machines Corporation Propagating data using mirrored lock caches
JP4369524B2 (ja) * 2006-02-27 2009-11-25 富士通株式会社 Lru制御装置およびlru制御プログラム
US20080040590A1 (en) * 2006-08-11 2008-02-14 Lea Hwang Lee Selective branch target buffer (btb) allocaiton
US20080040591A1 (en) * 2006-08-11 2008-02-14 Moyer William C Method for determining branch target buffer (btb) allocation for branch instructions
US9208095B2 (en) 2006-12-15 2015-12-08 Microchip Technology Incorporated Configurable cache for a microprocessor
US7877537B2 (en) * 2006-12-15 2011-01-25 Microchip Technology Incorporated Configurable cache for a microprocessor
US7966457B2 (en) 2006-12-15 2011-06-21 Microchip Technology Incorporated Configurable cache for a microprocessor
US7827360B2 (en) 2007-08-02 2010-11-02 Freescale Semiconductor, Inc. Cache locking device and methods thereof
US7987320B2 (en) * 2007-12-06 2011-07-26 International Business Machines Corporation Cache mechanism and method for avoiding cast out on bad victim select and recycling victim select operation
US8180969B2 (en) 2008-01-15 2012-05-15 Freescale Semiconductor, Inc. Cache using pseudo least recently used (PLRU) cache replacement with locking
US20090198695A1 (en) * 2008-02-01 2009-08-06 Arimilli Lakshminarayana B Method and Apparatus for Supporting Distributed Computing Within a Multiprocessor System
US20090198916A1 (en) * 2008-02-01 2009-08-06 Arimilli Lakshminarayana B Method and Apparatus for Supporting Low-Overhead Memory Locks Within a Multiprocessor System
US10235215B2 (en) 2008-02-01 2019-03-19 International Business Machines Corporation Memory lock mechanism for a multiprocessor system
US20090198920A1 (en) * 2008-02-01 2009-08-06 Arimilli Lakshminarayana B Processing Units Within a Multiprocessor System Adapted to Support Memory Locks
US8214603B2 (en) * 2008-02-01 2012-07-03 International Business Machines Corporation Method and apparatus for handling multiple memory requests within a multiprocessor system
US20100169618A1 (en) * 2008-12-30 2010-07-01 Microsoft Corporation Identifying concurrency control from a sequential proof
US8543769B2 (en) * 2009-07-27 2013-09-24 International Business Machines Corporation Fine grained cache allocation
US8745618B2 (en) * 2009-08-25 2014-06-03 International Business Machines Corporation Cache partitioning with a partition table to effect allocation of ways and rows of the cache to virtual machine in virtualized environments
US9195625B2 (en) 2009-10-29 2015-11-24 Freescale Semiconductor, Inc. Interconnect controller for a data processing device with transaction tag locking and method therefor
US8301838B2 (en) * 2009-11-04 2012-10-30 Nokia Corporation Method and apparatus for providing an application-level cache with a locked region and a floating region
CN102486753B (zh) 2009-11-30 2015-09-16 国际商业机器公司 构建及允许访问高速缓存的方法、设备及存储系统
US8572334B2 (en) * 2010-04-23 2013-10-29 Psion, Inc. System and method for locking portions of a memory card
US20120290821A1 (en) * 2011-05-11 2012-11-15 Shah Manish K Low-latency branch target cache
US8856587B2 (en) 2011-05-31 2014-10-07 Freescale Semiconductor, Inc. Control of interrupt generation for cache
US8775863B2 (en) * 2011-05-31 2014-07-08 Freescale Semiconductor, Inc. Cache locking control
US9804971B2 (en) 2012-01-17 2017-10-31 International Business Machines Corporation Cache management of track removal in a cache for storage
US8966183B2 (en) * 2012-10-04 2015-02-24 Freescale Semiconductor, Inc. Opportunistic cache replacement policy
US9720847B2 (en) 2013-07-17 2017-08-01 Nxp Usa, Inc. Least recently used (LRU) cache replacement implementation using a FIFO storing indications of whether a way of the cache was most recently accessed
KR101867143B1 (ko) * 2014-12-14 2018-07-17 비아 얼라이언스 세미컨덕터 씨오., 엘티디. 이종 치환 정책을 가진 셋트 연관 캐시 메모리
US9652398B2 (en) * 2014-12-14 2017-05-16 Via Alliance Semiconductor Co., Ltd. Cache replacement policy that considers 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
EP3066572B1 (en) * 2014-12-14 2020-02-19 VIA Alliance Semiconductor Co., Ltd. Cache memory budgeted by chunks based on memory access type
WO2016097805A1 (en) 2014-12-14 2016-06-23 Via Alliance Semicoductor Co., Ltd. Cache memory budgeted by ways on memory access type
US10649901B2 (en) * 2017-08-03 2020-05-12 International Business Machines Corporation Victim cache line selection
KR20200104601A (ko) 2019-02-27 2020-09-04 에스케이하이닉스 주식회사 컨트롤러, 메모리 시스템 및 그것의 동작 방법
KR102421149B1 (ko) 2018-01-02 2022-07-14 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
KR102456173B1 (ko) 2017-10-27 2022-10-18 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
US11573891B2 (en) 2019-11-25 2023-02-07 SK Hynix Inc. Memory controller for scheduling commands based on response for receiving write command, storage device including the memory controller, and operating method of the memory controller and the storage device
KR102456176B1 (ko) 2020-05-21 2022-10-19 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
KR102435253B1 (ko) 2020-06-30 2022-08-24 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
US11755476B2 (en) 2020-04-13 2023-09-12 SK Hynix Inc. Memory controller, storage device including the memory controller, and method of operating the memory controller and the storage device
KR102495910B1 (ko) 2020-04-13 2023-02-06 에스케이하이닉스 주식회사 스토리지 장치 및 그 동작 방법
KR102406449B1 (ko) 2020-06-25 2022-06-08 에스케이하이닉스 주식회사 스토리지 장치 및 그 동작 방법
KR20210130341A (ko) 2020-04-22 2021-11-01 에스케이하이닉스 주식회사 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4513367A (en) * 1981-03-23 1985-04-23 International Business Machines Corporation Cache locking controls in a multiprocessor
US5029072A (en) * 1985-12-23 1991-07-02 Motorola, Inc. Lock warning mechanism for a cache
JPH0679297B2 (ja) * 1987-02-09 1994-10-05 日本電気アイシーマイコンシステム株式会社 順序記憶制御回路
FR2645987B1 (fr) * 1989-04-13 1991-06-07 Bull Sa Dispositif d'acceleration des acces memoire dans un systeme informatique
EP0459233A3 (en) * 1990-05-29 1992-04-08 National Semiconductor Corporation Selectively locking memory locations within a microprocessor's on-chip cache
US5249286A (en) * 1990-05-29 1993-09-28 National Semiconductor Corporation Selectively locking memory locations within a microprocessor's on-chip cache

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100637610B1 (ko) * 1997-10-31 2006-10-24 코닌클리케 필립스 일렉트로닉스 엔.브이. 로킹을 사용한 캐시 교체방법
WO2005029336A1 (ja) * 2003-09-19 2005-03-31 Matsushita Electric Industrial Co., Ltd. キャッシュメモリおよびキャッシュメモリ制御方法
WO2005048112A1 (ja) * 2003-11-12 2005-05-26 Matsushita Electric Industrial Co., Ltd. キャッシュメモリおよびその制御方法
US7502887B2 (en) 2003-11-12 2009-03-10 Panasonic Corporation N-way set associative cache memory and control method thereof
JP2010538390A (ja) * 2007-09-04 2010-12-09 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド プロセッサの非常にアソシエティビティの高いキャッシュメモリ用のセカンドチャンス置換機構
EP2634702A1 (en) 2012-02-29 2013-09-04 Fujitsu Limited Processor, information processing apparatus, and arithmetic method
US10788782B2 (en) 2016-07-20 2020-09-29 Konica Minolta, Inc. Image forming apparatus locks down storage area of cache memory stores portion of image forming program for executing real-time image forming process

Also Published As

Publication number Publication date
KR930022209A (ko) 1993-11-23
KR100293276B1 (ko) 2001-09-17
DE69322683D1 (de) 1999-02-04
EP0568221B1 (en) 1998-12-23
EP0568221A1 (en) 1993-11-03
US5353425A (en) 1994-10-04
DE69322683T2 (de) 1999-08-12

Similar Documents

Publication Publication Date Title
JPH0619797A (ja) キャッシュ内の記憶されている行を保護する装置及び方法
US8370584B2 (en) Predictive ownership control of shared memory computing system data
US6356980B1 (en) Method and system for bypassing cache levels when casting out from an upper level cache
US5390318A (en) Managing the fetching and replacement of cache entries associated with a file system
US5829025A (en) Computer system and method of allocating cache memories in a multilevel cache hierarchy utilizing a locality hint within an instruction
EP1031919B1 (en) Method for prefetching structured data
US5974508A (en) Cache memory system and method for automatically locking cache entries to prevent selected memory items from being replaced
US5357618A (en) Cache prefetch and bypass using stride registers
US5974438A (en) Scoreboard for cached multi-thread processes
US6574720B1 (en) System for maintaining a buffer pool
US6112285A (en) Method, system and computer program product for virtual memory support for managing translation look aside buffers with multiple page size support
US7165164B2 (en) Method and apparatus including heuristic for sharing TLB entries
US7073044B2 (en) Method and apparatus for sharing TLB entries
US5689679A (en) Memory system and method for selective multi-level caching using a cache level code
US6430656B1 (en) Cache and management method using combined software and hardware congruence class selectors
US6957304B2 (en) Runahead allocation protection (RAP)
US6345351B1 (en) Maintenance of speculative state of parallel executed jobs in an information processing system
JPH1196074A (ja) 交換アルゴリズム動的選択コンピュータシステム
JPH0364893B2 (ja)
US6385695B1 (en) Method and system for maintaining allocation information on data castout from an upper level cache
CN101446923A (zh) 一种响应于指令而清洗高速缓冲存储器线的装置和方法
JP2007011580A (ja) 情報処理装置
US6421761B1 (en) Partitioned cache and management method for selectively caching data by type
JP2008234074A (ja) キャッシュ装置
US6370618B1 (en) Method and system for allocating lower level cache entries for data castout from an upper level cache

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040203