JP2618149B2 - キャッシュ内のデータ記憶スペースを管理する方法及びキャッシュ内でページ置換を行う装置 - Google Patents

キャッシュ内のデータ記憶スペースを管理する方法及びキャッシュ内でページ置換を行う装置

Info

Publication number
JP2618149B2
JP2618149B2 JP4017624A JP1762492A JP2618149B2 JP 2618149 B2 JP2618149 B2 JP 2618149B2 JP 4017624 A JP4017624 A JP 4017624A JP 1762492 A JP1762492 A JP 1762492A JP 2618149 B2 JP2618149 B2 JP 2618149B2
Authority
JP
Japan
Prior art keywords
page
cache
pages
addressing
predetermined
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.)
Expired - Lifetime
Application number
JP4017624A
Other languages
English (en)
Other versions
JPH07168762A (ja
Inventor
ケネス、フェアークラフ、デイ、ザ、サード
ダグラス、ウイリアム、デューイ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH07168762A publication Critical patent/JPH07168762A/ja
Application granted granted Critical
Publication of JP2618149B2 publication Critical patent/JP2618149B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/312In storage controller

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)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はデータ記憶システムに係
り、更に詳細に説明すれば、データを媒体へマッピング
するのに連結チェーンを用いるようにした追記型(以下
「WORM」という)光学媒体を利用するデータ記憶シ
ステムに係る。
【0002】
【従来の技術】WORM光学媒体は、データをアドレス
可能な連結チェーン(continuation chain)内に記憶す
る。連結チェーンとは、WORM光学媒体上のアドレス
可能なセクタ・グループの連係リストである。一般に、
所定の連結チェーン内に記憶されたデータの一部のみが
望まれているとしても、当該連結チェーンの終わりまで
走査されるようになっている。かかる走査を行う理由
は、最後に記録されたデータ、従って正しいデータが、
その連結チェーン内のどの位置に現に記憶されているか
分かっていないからである。
【0003】データ記憶システムの性能を向上させるた
めには、WORM光学媒体と授受するデータをキャッシ
ュすることが望ましい。本発明者は、通常のキャッシュ
について用いられるページ置換アルゴリズムを、WOR
M光学媒体を利用するキャッシュ付きのデータ記憶シス
テムにそのまま適用すると、データの実効アクセス時間
が予想したように減少するのではなく、かえってシステ
ム性能が低下することを発見した。このようにシステム
性能が低下する理由は、このデータ記憶システムが連結
チェーンを用いてWORM光学媒体をアクセスする際
に、殆どのページ置換方式の基礎をなす「参照の局所
性」の原理に違反するからである。参照の局所性とは、
所定のアドレスに対して1回の読み取りアクセスがあれ
ば、次の読み取りアクセスは、この所定のアドレスの近
傍にあるアドレスをアクセス対象とする可能性が大であ
るということを意味するにすぎない。更に、連結チェー
ンを用いると、各WORM光学媒体上にある長い連続し
た領域内にデータが置かれるようになる。これらの要因
の全ては、FIFO(First In First Out)及びLRU
(Least Recently Used )型のページ置換方式をしてシ
ステム性能を低下させるように作用するものと考えられ
る。このため、FIFO又はLRU型ではない、改善さ
れたページ置換方式及び装置を提供することが望まし
い。一般に、前述のページ置換方式を用いると、放出中
のデータ・ページ(以下「ページ」と略記)が、ホスト
・プロセッサにより要求される次のページとなることが
ある。そのような可能性は、データ記録用のフォーマッ
トとしてチェーニングを用いるようなWORM光学媒体
に接続される処の、キャッシュの効率を著しく低下させ
ることは明らかである。従って、WORM光学媒体上の
データをフォーマット化する連結チェーンのフォーマッ
トに適合するようにしたページ置換方式及び装置を提供
することが望ましい。
【0004】データのアドレッシングは、2つの手順で
行うことができる。第1のアドレッシング手順は周知の
ハッシュ・テーブルを用いるものであり、第2のアドレ
ッシング手順は通常のディレクトリ・トリー(階層アド
レス・トリー)を用いるものである。本発明によれば、
これらの2つのアドレッシング手順について、最適のペ
ージ置換方式を互いに異なるようにすることが決定され
た。これらのアドレッシング手順に基づいて、ページ置
換方式を最適化することが望ましい。
【0005】米国特許第4882642号は、必ずしも
データが完全に充填されていない周辺キャッシュ用のペ
ージ置換アルゴリズムを開示している。このページ置換
アルゴリズムは、LRU型のページ置換方式に見られる
ように、参照の局所性の原理を利用するものである。従
って、この米国特許は、LRU型のページ置換方式をペ
ージ置換の主制御として除外することを示唆していな
い。
【0006】IBM Technical Disclosure Bulletin, Vo
l.15, No.1, June 1972, pp. 271-274 は、ページ置換
アルゴリズムの効率を向上させるためにキャッシュを区
分化することを開示している。このアルゴリズムは、参
照の局所性が有効であることを必須としている。キャッ
シュ内にあるデータのグループ化は、最後に使用された
グループが常に最新に使用された(MRU)グループと
なるように、複数のグループをページ置換のために周期
的に使用しなければならない。
【0007】米国特許第4802086号は、前掲の文
献と同様の構成を示している。この米国特許は、キャッ
シュの内部マッピングに関係する連係リストを用いてい
る。そのような連係リストの利用は、補助記憶装置内で
連係リストを使用したり、補助記憶装置内にそのような
データ・フォーマットを収納するようにキャッシュを管
理することに関連付けられていない。
【0008】英国特許第2214669号は、主メモリ
用のキャッシュを複数のセットに分割することを開示し
ている。この英国特許のページ置換方式は、最新に使用
された(MRU)ページを保持しない一のセットから、
放出すべき一のページを選択する。各セット内のデータ
は、連係リスト内の複数のセットの形式で補助記憶装置
内に記憶されたデータが本発明において関連付けられる
ようには、アクセスにより関連付けられていない。
【0009】
【発明が解決しようとする課題】本発明の目的は、補助
記憶装置内に連結チェーンの形式で記憶されたデータに
ついて使用するための、効率のよいページ置換方法及び
装置を提供することである。
【0010】本発明の他の目的は、データ・アクセス法
に基づいてページ置換手順を選択することである。
【0011】
【課題を解決するための手段】本発明の第1の側面によ
れば、補助記憶装置に接続されたキャッシュのページ置
換は、優先順位付けられた複数のページ・セット(以下
「セット」と略記)を設定することに基づいている。こ
こで、各セットは、データを記憶する補助記憶装置内の
一の連結チェーンから取り出されるものである。複数の
セットを、補助記憶装置の共通の連結チェーンから取り
出すことができる。一のセットは、LRUやFIFOの
ような幾つかのページ置換方式のうち任意のものに基づ
いて置換すべきページを保持するように選択される。選
択されたセット内の置換すべきページは、当該セットに
おけるLIFO(Last In First Out )型のページ選択
により識別される。
【0012】本発明の第2の側面では、ハッシュ・テー
ブルがデータのアドレッシングに用いられるときに、前
述のページ置換が用いられる。他方、ディレクトリ・ト
リーがデータのアドレッシングに用いられるときは、選
択されたセット内にある複数のページのうち最も古くに
使用された(LRU)ページが放出すべきページとして
識別され且つ置換されることになる。
【0013】
【実施例】添付の図面では、同一の参照数字が同一の構
成要素を示していることに留意されたい。図1を参照す
るに、1台以上のホスト・プロセッサ10が、マイクロ
プロセッサ制御式の周辺コントローラ12に接続されて
いる。周辺コントローラ12は、キャッシュ13を有す
る。キャッシュ13は、ホスト・プロセッサ10と1台
以上のディスク記憶装置14及び15を有するデータ記
憶システムとの間で転送中のデータをキャッシュする。
図示の実施例では、ディスク記憶装置14及び15は、
WORM光学媒体を利用する。図1の実施例は、幾つか
の形態を取り得る。例えば、通常のパーソナル・コンピ
ュータでは、周辺コントローラ12は、パーソナル・コ
ンピュータのカード・スロットに挿入される回路ボード
を構成することができる。他の形態のコンピュータで
は、ホスト・プロセッサ10及び周辺コントローラ12
が、一の印刷回路ボードを共用するか、又は単一の半導
体チップ内でこれを実現することができる。最上位のコ
ンピュータでは、ホスト・プロセッサ10及び周辺コン
トローラ12について、別個のエンティティをそれぞれ
用いることができる。
【0014】図2には、WORM光学媒体上のデータを
アドレス可能に記憶するために用いられる、通常の連結
チェーンが示されている。WORM光学媒体の2つのト
ラック20及び21が示されている。トラック20及び
21の各々は、セクタ・マーク23により複数のセクタ
へそれぞれセグメント化され、隣接するセクタ・マーク
23間のトラック領域が、一のトラックのアドレス可能
な一のセクタを構成するようになっている。この点に関
連して、WORM光学媒体はしばしば単一の螺旋状トラ
ックを含むことがあるが、この場合には、一の螺旋状ト
ラックの1周転をトラックと呼ぶことにする。各セクタ
は、同様のデータ記憶用のフォーマットを有する。セク
タ22内の最初のフィールドである逆方向ポインタ(R
P)フィールド24は、一の連結チェーン内の直前のセ
クタをアドレス可能に指定する。かかる直前のセクタと
は、次に連続するセクタである場合もあり、異なるトラ
ック内にある場合もある。次のデータ・フィールド25
は、1ページを記憶する。1ページの記憶には、複数の
セクタ22のクラスタが必要になることがある。セクタ
22内の最後のフィールドである順方向ポインタ(F
P)フィールド26は、当該連結チェーン内の直後のセ
クタ(例えば、省略記号27によって表されるトラック
20内のセクタ)をアドレス可能に指定する。これらの
連続的なセクタの最後のものは、セクタ28である。こ
のセクタ28は、省略記号27によって表される一の隣
接セクタを指定するRPフィールド29と、例えばトラ
ック21のセクタ36をアドレス可能に指定するFPフ
ィールド30とを有する。空きセクタ35は、他の連結
チェーン(図示せず)のために割り当てられており、記
憶すべきデータを待機している。セクタ36は、セクタ
28をアドレス可能に指定するRPフィールド38と、
割り当てられているが空白であるセクタ37をアドレス
可能に指定するFPフィールド40とを含んでいる。空
きセクタ37は、前記の連結チェーンが新しいデータを
受け取り且つこれを記憶するのを待機している。その
間、空きセクタ37は、その連結チェーンの終わりを表
示する。セクタ36は、1ページとして記憶される3つ
のデータ・エレメント39を有する。WORM光学媒体
内の連結チェーンは、当該光学媒体上の他のチェーン及
びデータに跨って分散され、それらとインタリーブされ
る。
【0015】図3には、WORM光学媒体内の連結チェ
ーンをアドレス可能にアクセスする態様が示されてい
る。キャッシュ13内に記憶されたデータをアクセスす
るためには、周知のように、補助記憶装置を構成するデ
ィスク記憶装置14及び15のアドレスを用いる。即
ち、キャッシュ13のアクセス43は、キャッシュ13
内のページを見い出すか又はキャッシュ13にページを
記憶するために、補助記憶装置のアドレスを用いるので
ある。通常のディレクトリ(図示せず)が、この補助記
憶装置のアドレスをキャッシュ13内のアドレスに変換
する。キャッシュ13のアドレッシングは、2つのパス
のうち一方を介して行うことができる。第1のパスは、
通常の構成を有するハッシュ・テーブル45を用いて、
主としてキャッシュ13内の順次に処理されるデータ
(順次処理データ)をアドレス可能にアクセスする、と
いうものである。そのようなデータは、図3ではデータ
44の一部として表されている。非順次に処理されるデ
ータ(非順次処理データ)については、アクセス43
は、データ44をアクセスするためにディレクトリ・ト
リー46を用いる。キャッシュ13内のデータ44の状
態は、ホスト・プロセッサ10の動作に応じて時間とと
もに変化し、又は或るデータについて順次又は非順次の
アクセス・モードを選択するためにホスト・プロセッサ
10から周辺コントローラ12に送られる信号により予
め定めることができる。
【0016】図4には、図示のデータ記憶システムにお
けるページ置換制御を実現するための制御構造が示され
ている。データは、図5に関連して後述する態様で、キ
ャッシュ13内に記憶されている。ここでは、キャッシ
ュ13内のデータが、それぞれ複数のページから成る複
数のセットの形式で記憶され、各セットが図2に関連し
て既に説明したように一の連結チェーンから取り出され
ることだけを述べておけば十分であろう。説明の便宜
上、どのセットが放出すべきページを保持するかという
選択は、LRUリスト47に基づいて行われるものとす
る。キャッシュ13内にある各セットは、LRUリスト
47内で表されている。LRUリスト47の一端にある
MRU位置は、最新に使用された(MRU)セットを表
し、他方、LRUリスト47の他端にあるLRU位置
は、最も古くに使用された(LRU)セットを表す。L
RUセットとして識別されるセットは、キャッシュ13
から一のページを放出すべきセットである。各アクセス
ごとに、そのアクセスの対象となったページを保持する
セットがLRUリスト47のMRU位置に来るように、
LRUリスト47が周知の態様で更新される。
【0017】アクセスのためにハッシュ・テーブル45
が用いられる場合には、アクセスされたセット内のデー
タは順次処理データとして指定される。この順次処理デ
ータの指定は、任意の手順によって決定することができ
る。一のセット内の順次処理データについては、当該セ
ット内の放出すべきページは最後に記憶されたページで
ある。そのようなページの識別は、複数のLIFOスタ
ック48によって行われる。ここで、順次処理データを
有するセットの各々ごとに、1つのLIFOスタック4
8が設けられる。本実施例では、一のセット内のページ
の識別は、LIFOスタック48を用いて行われる。即
ち、これらのLIFOスタック48の各々における最上
位エントリは、そのセット内の複数のページのうちキャ
ッシュ13内に最後に記憶されたページを識別する。選
択された一のセットに対応するLIFOスタック48が
ポップされると、そのLIFOスタック48の最上位エ
ントリに対応するページが、当該セット内の複数のペー
ジのうち最後に記憶されたページとして選択され且つ放
出される。かかる最後に記憶されたページの放出は、従
来技術の教示に反するように見えるかもしれないが、そ
の利点は、かかる最後に記憶されたページが当該セット
においてアクセスされた最後のページである確率が大き
くなり、従ってキャッシュ13を通して諸ページを処理
する場合のシステム全体の遅延が最小になる確率が大き
くなる、ということである。ここで留意すべきは、この
放出されるページは、キャッシュ13内に最後に記憶さ
れたページである必要はなく、むしろ最も古くにアクセ
スされたセット内の最後に記憶されたページである、と
いう点である。
【0018】参照符号49は、非順次処理データを有す
るセット内のページについての複数のLRUリストを総
括的に示すものである。非順次処理データを有する複数
のセットから所定のページを選択するために、LRUと
は異なる手順を用いることができる。
【0019】図5には、所定の時点におけるキャッシュ
13のデータ記憶マッピングが示されている。キャッシ
ュ13は、20ページを記憶する容量を有する。4つの
セットA〜Dは、ページA1〜A4、B1〜B4、C1
〜C8、D1〜D4をそれぞれ有する。これらのセット
A〜Dの各々は、図2に関連して既に説明したように、
一の連結チェーンから取り出される。例えば、セットA
及びBは同一の連結チェーンから取り出され、セットA
内の複数のページは第1の連結チェーン内に4個の位置
を有するWORM光学媒体上に連続的に記憶され、セッ
トB内の複数のページは第1の連結チェーン内に他の4
個の位置を有するWORM光学媒体上に記憶されてい
る。ここで、「連続的」という用語は、一の連結チェー
ン内の連続する複数の位置を意味する。互いに隣接する
複数のチェーン位置は、WORM光学媒体上で物理的に
離れていることもある。セットC及びDは、2つの互い
に異なる連結チェーンからのものである。連続的な複数
のチェーン位置からの各セット内の全てのページは、ア
ドレッシングの類似性(affinity)を有するといわれ
る。キャッシュ13内の諸ページの位置は、一のセット
のメンバであることとは関係ない。
【0020】図6には、4つのセットA〜Dの各々ごと
に1つの位置を有するレジスタ56が示されている。記
号H及びTは、ハッシュ・テーブル45及びディレクト
リ・トリー46を用いるアドレッシング・パスをそれぞ
れ示している。レジスタ56のセットA〜Dの位置は、
複数の手順の何れか1つに設定することができる。ホス
ト・プロセッサ10は、アクセス手順のタイプを順次又
は非順次として指定することができる。この場合、キャ
ッシュ13の動作をモニタしてそのアクセスのタイプを
検出することができ、ディスク記憶装置14及び15の
動作もこれと同様にモニタすることができる。
【0021】図7には、図1のシステムにおいてページ
置換を行うための動作が示されている。このページ置換
を、周辺コントローラ12又はホスト・プロセッサ10
においてプログラムで実現するか、或いはそのプログラ
ム形式の実現形態を周辺コントローラ12とホスト・プ
ロセッサ10とに分散させるようにすることが好まし
い。ここで、「コンピュータ手段」が、ホスト・プロセ
ッサ10及び周辺コントローラ12から成り、かかる
「コンピュータ手段」が、データ処理動作を行っている
ものと仮定する。また、キャッシュ13にページが完全
に充填されており、新しいページの記憶要求が生じる前
に如何なるページも放出されていないものと仮定する。
最初のステップ60では、ページ・フォルトを検出し
て、周辺コントローラ12がキャッシュ13内に一のペ
ージを記憶せんとしていることを表示する。ステップ6
1(LRUセット検出)では、LRUリスト47を検査
して、最も古くにアクセスされたセットを識別する。こ
のLRUセットがLRUリスト47のLRU位置におい
て識別されると、周辺コントローラ12は、レジスタ5
6を検査して、このLRUセットのアクセス・モードを
決定する。図6の内容は、セットB及びCがディレクト
リ・トリー46を介してアクセスされ、セットA及びD
がハッシュ・テーブル45を介してアクセスされたこと
を示している。ここで、このLRUセットをアクセスす
るためにハッシュ・テーブル45が最後に用いられたも
のと仮定すると、ステップ64において、周辺コントロ
ーラ12はこのLRUセットに対応するLIFOスタッ
ク48を検出し、当該LIFOスタック48をポップさ
せることにより、このLRUセット内の複数のページの
うち最後に記憶されたページを識別する。ステップ65
では、周辺コントローラ12はキャッシュ13からその
識別されたページを放出(そのページを消去又はページ
のアドレス指定能力を消去)する。同様に、キャッシュ
13をアクセスするためにディレクトリ・トリー46が
最後に用いられた場合には、このLRUセットに対応す
るLIFOスタック48が検出された後、ステップ65
において、このLRUセット内の複数のページのうち最
後に記憶されたページをキャッシュ13から放出すべき
ページとして識別する。
【0022】次に、周辺コントローラ12は、ステップ
65からステップ70に移り、そこで放出すべきページ
がこのLRUセット内の最後のページであったか否かを
判定する。もしそうであれば、ステップ71では、この
LRUセットに対応するLIFOスタック48が消去さ
れる。さもなければ、ステップ72において、ホスト・
プロセッサ10又はディスク記憶装置14及び15から
新しいページを取り出してキャッシュ13内に記憶させ
る。次のステップ73では、新しいセットを生成すべき
か否かをテストする。もし、新しいセットが必要とされ
ない、即ちキャッシュ13内に記憶すべきデータが既存
のセット内のデータについてアドレッシングの類似性を
有するのであれば、コンピュータ手段はパス75を介し
て他の動作に進む。かかる他の動作は、キャッシュ13
内にこのデータを記憶させることを含んでいる。かかる
記憶動作は、このセットのエントリについてLRUリス
ト47、当該セットに対応するLIFOスタック48及
び(又は)当該セットに対応するLRUリスト49を更
新することを含んでいる。これらの手順は、従来技術の
更新技法に従って行うことができる。他方、ステップ7
3のテスト結果が肯定的であれば、ステップ73からス
テップ74に移り、そこで新しいセットのエントリがL
RUリスト47のMRU位置に追加され、そしてアクセ
ス・モードの変化に適合するように新しいLIFOスタ
ック48及びLRUリスト49が作られる。本実施例で
は、LIFOスタック48のみが用いられた。ステップ
74からは、他の動作が行われる。
【0023】キャッシュ13内に空のページがある場合
には、キャッシュ13内に記憶すべき新しいデータが他
の動作から得られることがある。ステップ80では、そ
のような新しいデータが受け取られるが、ページ・フォ
ルトは生じない。次に、ステップ73が行われ、それに
続いてキャッシュ13内にそのデータを実際に記憶する
ことを含む他の動作が生じる。
【0024】
【発明の効果】以上のように、本発明によれば、補助記
憶装置内に連結チェーンの形式で記憶されたデータにつ
いて用いられる効率のよいページ置換方法及び装置を提
供することができる。
【図面の簡単な説明】
【図1】本発明を実施することができるデータ記憶シス
テムのブロック図である。
【図2】図1のデータ記憶システムを構成する補助記憶
装置内にデータを記憶するためのフォーマットとして用
いられる連結チェーンを示す図である。
【図3】図1のデータ記憶システム内で用いられるデー
タのアクセス・パスを示す図である。
【図4】図1のデータ記憶システム内に設けられたキャ
ッシュのページ置換を制御するために用いられるLRU
リスト及びLIFOスタックを示す図である。
【図5】所定の時点におけるキャッシュのデータ記憶マ
ッピングを示す図である。
【図6】補助記憶装置内のデータのアドレッシングに基
づいてページ置換手順を選択するためのレジスタを示す
図である。
【図7】図1のデータ記憶システム内で実施される本発
明の実施例に従った動作を示す流れ図である。
【符号の説明】
10 ホスト・プロセッサ 12 周辺コントローラ 13 キャッシュ 14、15 ディスク記憶装置 20、21 トラック 22 セクタ 23 セクタ・マーカ 24 逆方向ポインタ・フィールド 25 データ・フィールド 26 順方向ポインタ・フィールド 35 空きセクタ 45 ハッシュ・テーブル 47 LRUリスト 48 LIFOスタック 49 LRUリスト
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ダグラス、ウイリアム、デューイ アメリカ合衆国アリゾナ州、ツーソン、 イースト、オールド、スパニッシュ、ト レイル、ナンバー、14、8602 (56)参考文献 特開 昭60−43758(JP,A) 特開 平2−62644(JP,A) 特開 平3−282649(JP,A) 特開 平4−5739(JP,A)

Claims (8)

    (57)【特許請求の範囲】
  1. 【請求項1】新しいページによって置換すべき記憶済み
    のページを放出するためにアドレス可能なページとして
    データを記憶するように構成されたキャッシュと、前記
    キャッシュに接続され且つ複数のページを複数のアドレ
    ス可能な連結チェーン内に記憶する補助記憶装置とを備
    え、前記連結チェーンの各々が複数のページを前記補助
    記憶装置のそれぞれのアドレス可能なデータ記憶領域内
    に記憶するようにしたデータ処理装置において、 前記キャッシュ内のデータ記憶スペースを管理する方法
    であって、 (a)各セットが前記補助記憶装置内の前記連結チェー
    ンのそれぞれからのページを記憶するように、複数のペ
    ージを複数のセットの形式で前記キャッシュ内に記憶す
    るステップと、 (b)前記キャッシュ内の前記セットの各々ごとに、当
    該各セット内の複数のページのうち最後に記憶されたペ
    ージを表示するために、当該各セット内の複数のページ
    が前記キャッシュ内に記憶された順序を表示するステッ
    プと、 (c)一のページを前記キャッシュから放出すべきこと
    を表示するステップと、 (d)前記複数のセットのうち最も古くにアクセスされ
    た第1のセットを識別するために、前記複数のセットに
    ついて一のLRUリストを生成し且つ維持するステップ
    と、 (e)前記ステップ(c)に応答して、一のページを放
    出すべき所定の1つのセットとして前記第1のセットを
    識別するステップと、 (f)前記記憶された順序の表示を調べて、前記第1の
    セット内の複数のページのうち前記最後に記憶されたペ
    ージを放出すべきページとして識別するステップと、 (g)前記第1のセットから前記放出すべきページを放
    出するステップと、 (h)前記キャッシュ内の第2のセットに新しいページ
    を記憶することを試みるために、前記補助記憶装置内の
    前記連結チェーンのうち前記新しいページを記憶してい
    る所定の1つの連結チェーンのアドレスを生成し且つ当
    該所定の1つの連結チェーンをアドレス指定するステッ
    プと、 (i)前記キャッシュがデータで一杯か否かを検出し、
    一杯であればページ・フォルトを表示するステップと、 (j)前記表示されたページ・フォルトに応答して、前
    記ステップ(c)、前記ステップ(f)及び前記ステッ
    プ(g)を実行するステップと、 (k)前記キャッシュ内の所定のセットを調べて、当該
    所定のセットのうち前記新しいページを受け取り且つ記
    憶すべき所定の1つのセットを識別し、前記新しいペー
    ジが前記所定の1つの連結チェーン内に記憶されている
    か否かを判定し、前記新しいページが前記所定の1つの
    セット内でアドレス可能であれば、当該所定の1つのセ
    ットを前記第2のセットとして選択するとともに、前記
    新しいページを前記第2のセットに記憶するステップ
    と、 (l)他方、前記新しいページが前記キャッシュ内の前
    記所定の1つのセット内でアドレス不能であれば、前記
    キャッシュ内に新しいセットを設定するとともに、前記
    新しいページを前記設定された新しいセットに記憶する
    ステップと、 を含むキャッシュ内のデータ記憶スペースを管理する方
    法。
  2. 【請求項2】前記補助記憶装置がWORM光学媒体であ
    り、更に、 前記各セット内の全てのページが前記連結チェーンの1
    つにそれぞれ連続的に記憶されるように、前記キャッシ
    ュ内に前記各セットを設定するステップと、 前記連結チェーンの1つに連続的に記憶されていないペ
    ージについては、前記キャッシュ内に別個のセットを設
    定するステップと、 を含む請求項1記載のキャッシュ内のデータ記憶スペー
    スを管理する方法。
  3. 【請求項3】前記複数のセットをアクセスするための第
    1及び第2のアドレッシング手順を設定するステップ
    と、 順次的なページ・アクセッシングについては前記第1の
    アドレッシング手順を選択し、非順次的なページ・アク
    セッシングについては前記第2のアドレッシング手順を
    選択するステップと、 前記第1及び第2のアドレッシング手順のうち、前記キ
    ャッシュ内の任意のセットにおけるページ・アクセッシ
    ングのために最後に使用されたアドレッシング手順の表
    示を維持するステップと、 前記第1及び第2のアドレッシング手順の何れが前記キ
    ャッシュ内のページ・アクセッシングのために最後に使
    用されたかを、前記維持されたアドレッシング手順の表
    示から決定するステップと、 前記第1のアドレッシング手順が最後に使用された場合
    には、前記最後に記憶されたページを放出すべきページ
    として識別し、他方、前記第2のアドレッシング手順が
    最後に使用された場合には、最も古くに使用されたペー
    ジを放出すべきページとして識別するステップと、 を含む請求項1記載のキャッシュ内のデータ記憶スペー
    スを管理する方法。
  4. 【請求項4】新しいページによって置換すべき記憶済み
    のページを放出するためにアドレス可能なページとして
    データを記憶するように構成されたキャッシュと、前記
    キャッシュに接続され且つ複数のページを複数のアドレ
    ス可能な連結チェーン内に記憶する補助記憶装置とを備
    え、前記連結チェーンの各々が複数のページを前記補助
    記憶装置のそれぞれのアドレス可能なデータ記憶領域内
    に記憶するようにしたデータ処理装置において、 前記キャッシュ内のデータ記憶スペースを管理する方法
    であって、 (a)各セットが前記補助記憶装置内の前記連結チェー
    ンのそれぞれからのページを記憶するように、複数のペ
    ージを複数のセットの形式で前記キャッシュ内に記憶す
    るステップと、 (b)前記キャッシュ内の前記セットの各々ごとに、当
    該各セット内の複数のページのうち最後に記憶されたペ
    ージを表示するために、当該各セット内の複数のページ
    が前記キャッシュ内に記憶された順序を表示するステッ
    プと、 (c)一のページを前記キャッシュから放出すべきこと
    を表示するステップと、 (d)前記ステップ(c)に応答して、前記キャッシュ
    内の前記複数のセットのうち一のページを放出すべき所
    定の1つのセットとして第1のセットを識別するステッ
    プと、 (e)前記第1のセットに対応する前記記憶された順序
    の表示を調べて、当該第1のセット内の複数のページの
    うち前記最後に記憶されたページを放出すべきページと
    して識別するステップと、 (f)前記第1のセットから前記放出すべきページを放
    出するステップと、 (g)前記複数のセットをアクセスするために、ハッシ
    ュ・テーブルを用いる第1のアドレッシング手順及びデ
    ィレクトリ・テーブルを用いる第2のアドレッシング手
    順を設定するステップと、 (h)順次的なページ・アクセッシングについては前記
    第1のアドレッシング手順を選択し、非順次的なページ
    ・アクセッシングについては前記第2のアドレッシング
    手順を選択するステップと、 (i)前記第1及び第2のアドレッシング手順のうち、
    前記キャッシュ内のページ・アクセッシングのために最
    後に使用されたアドレッシング手順の表示を維持するス
    テップと、 (j)前記第1及び第2のアドレッシング手順の何れが
    前記キャッシュ内のページ・アクセッシングのために最
    後に使用されたかを、前記維持されたアドレッシング手
    順の表示から決定するステップと、 (k)前記第2のアドレッシング手順が最後に使用され
    た場合には、前記キャッシュ内の複数のセットのうち放
    出の候補となるページを保持している第2のセットを識
    別するステップと、 (l)前記第2のセット内の複数のページのうち最も古
    くに使用されたページを決定し、当該最も古くに使用さ
    れたページを前記放出すべきページとして識別するステ
    ップと、 (m)他方、前記第1のアドレッシング手順が最後に使
    用された場合には、前記ステップ(e)を実行するステ
    ップと、 (n)前記キャッシュ内に新しいページを記憶すること
    を試みるために、前記補助記憶装置内の前記連結チェー
    ンのうち前記新しいページを記憶している所定の1つの
    連結チェーンのアドレスを生成し且つ当該所定の1つの
    連結チェーンをアドレス指定するステップと、 (o)前記キャッシュがデータで一杯か否かを検出し、
    一杯であればページ・フォルトを表示するステップと、 (p)前記表示されたページ・フォルトに応答して、前
    記ステップ(l)又は前記ステップ(m)で識別された
    前記放出すべきページを放出するステップと、 (q)前記キャッシュ内の所定のセットを調べて、当該
    所定のセットのうち前記新しいページを受け取り且つ記
    憶すべき所定の1つのセットを識別し、前記新しいペー
    ジが前記所定の1つの連結チェーン内に記憶されている
    か否かを判定し、前記新しいページが前記所定の1つの
    連結チェーン内でアドレス可能であれば、当該所定の1
    つのセットを前記第1のセットとして選択するととも
    に、前記新しいページを前記第1のセット内に記憶する
    ステップと、 (r)他方、前記新しいページが前記所定の1つの連結
    チェーン内でアドレス可能であれば、最も古くにアクセ
    スされたセットを前記第2のセットとして選択し、前記
    キャッシュ内に新しいセットを設定するとともに、前記
    新しいページを前記設定された新しいセットに記憶する
    ステップと、 を含むキャッシュ内のデータ記憶スペースを管理する方
    法。
  5. 【請求項5】前記補助記憶装置がWORM光学媒体であ
    り、更に、 前記各セット内の全てのページが前記連結チェーンの1
    つにそれぞれ連続的に記憶されるように、前記キャッシ
    ュ内に前記各セットを設定するステップと、 前記連結チェーンの1つに連続的に記憶されていないペ
    ージについては、前記キャッシュ内に別個のセットを設
    定するステップと、 を含む請求項4記載のキャッシュ内のデータ記憶スペー
    スを管理する方法。
  6. 【請求項6】複数のページをそれぞれ記憶するアドレス
    可能な複数のセットを有するキャッシュ内でページ置換
    を行う装置であって、 前記キャッシュに接続され、前記複数のページをアドレ
    ス可能な連結チェーンの形式で記憶する補助記憶装置
    と、 前記キャッシュに接続され、前記連結チェーンの各々か
    らのページを前記セット内に挿入するキャッシュ制御手
    段と、 前記キャッシュから放出すべき一のページを有する第1
    のセットを識別するための第1の手段を有する第1のペ
    ージ制御手段と、 前記第1のページ制御手段内に設けられ、各セット内の
    複数のページのうち最後に記憶されたページを識別する
    ための最後の記憶ページ表示手段と、 前記第1のページ制御手段及び前記最後の記憶ページ表
    示手段に接続され、前記最後の記憶ページ表示手段に応
    答して、前記第1のセット内の前記最後に記憶されたペ
    ージを前記キャッシュから放出すべきページとして識別
    する放出制御手段と、 前記放出制御手段に接続され、前記放出すべきページを
    放出する放出手段と、 前記複数のセットに対するデータ・アクセスを表示する
    設定手段と、 前記設定手段及び前記第1のページ制御手段に接続さ
    れ、前記複数のセットのうち最も古くに使用されたセッ
    トをLRUセットとして識別するために、前記複数のセ
    ットに対して一のLRUリストを生成し且つ維持するL
    RU手段と、 前記キャッシュ内に記憶すべきデータを受け取る際に、
    かかるデータを記憶するに十分な空きページが前記キャ
    ッシュ内に存在しないことを検出してページ・フォルト
    を表示するページ・フォルト手段と、 前記第1のページ制御手段、前記補助記憶装置及び前記
    キャッシュ制御手段に接続され、前記補助記憶装置から
    ページを読み取り、当該読み取ったページを前記キャッ
    シュ内の前記セットのそれぞれに記憶するとともに、前
    記連結チェーンをアクセスして前記補助記憶装置との間
    でデータの読み取り及び書き込みを行うデータ記憶手段
    と、 前記複数のセットのうち所定の1つのセットが前記連結
    チェーンのうち所定の1つの連結チェーンからのページ
    を記憶していることを検出し且つ表示する一致手段とを
    備え、 前記第1のページ制御手段は、前記ページ・フォルトの
    表示に応答して、前記LRUセットを前記第1のセット
    として選択し、 前記キャッシュ制御手段は、前記データ記憶手段に応答
    して、前記所定の1つの連結チェーンからページを読み
    取り、当該読み取ったページを前記所定の1つのセット
    に記憶し、 前記キャッシュ制御手段は、前記所定の1つのセットが
    前記所定の1つの連結チェーンからのページを記憶して
    いることを表示する前記一致手段に応答して、前記読み
    取ったページを前記所定の1つのセットに記憶し、 前記キャッシュ制御手段は、前記所定の1つのセットが
    前記所定の1つの連結チェーンからのページを何ら記憶
    していないことを表示する前記一致手段に応答して、前
    記読み取ったページを記憶するために新しいセットを生
    成することを特徴とする、キャッシュ内でページ置換を
    行う装置。
  7. 【請求項7】前記第1のページ制御手段内に設けられ、
    放出可能なページを記憶している第2のセットを識別す
    る手段を備え、 前記放出制御手段は、前記第1のセット及び前記第2の
    セットの一方を放出すべきページを保持するセットとし
    て識別し、 前記放出制御手段は、前記第2のセット内の複数のペー
    ジのうち最も古くに使用されたページを前記キャッシュ
    から放出すべきページとして識別する第2のページ制御
    手段を有することを特徴とする、請求項6記載のキャッ
    シュ内でページ置換を行う装置。
  8. 【請求項8】前記キャッシュ内のページの順次的アドレ
    ッシングを行う第1のアドレッシング手段及び前記キャ
    ッシュ内のページの非順次的アドレッシングを行う第2
    のアドレッシング手段によるページ・アドレッシングを
    可能にするキャッシュ・アドレッシング手段と、 前記キャッシュ・アドレッシング手段に接続され、前記
    キャッシュ内のページをアドレス指定するのに前記第1
    及び第2のアドレッシング手段の何れが最後に使用され
    たかを記憶し且つこれを表示するアクセス状態手段とを
    備え、 前記放出制御手段は、前記アクセス状態手段に接続さ
    れ、最後に使用された前記第1又は第2のアドレッシン
    グ手段の前記表示に応答して、前記第1のセット内の前
    記最後に記憶されたページ又は前記第2のセット内の前
    記最も古くに使用されたページを選択することを特徴と
    する、請求項7記載のキャッシュ内でページ置換を行う
    装置。
JP4017624A 1991-04-22 1992-02-03 キャッシュ内のデータ記憶スペースを管理する方法及びキャッシュ内でページ置換を行う装置 Expired - Lifetime JP2618149B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US68938791A 1991-04-22 1991-04-22
US689387 1991-04-22

Publications (2)

Publication Number Publication Date
JPH07168762A JPH07168762A (ja) 1995-07-04
JP2618149B2 true JP2618149B2 (ja) 1997-06-11

Family

ID=24768233

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4017624A Expired - Lifetime JP2618149B2 (ja) 1991-04-22 1992-02-03 キャッシュ内のデータ記憶スペースを管理する方法及びキャッシュ内でページ置換を行う装置

Country Status (3)

Country Link
US (1) US5481691A (ja)
EP (1) EP0510832A1 (ja)
JP (1) JP2618149B2 (ja)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9401522D0 (en) * 1994-01-27 1994-03-23 Int Computers Ltd Hierarchic data storage system
EP0713181A1 (en) * 1994-11-16 1996-05-22 International Business Machines Corporation Data processing system including mechanism for storing address tags
JPH09265429A (ja) * 1996-01-23 1997-10-07 Fujitsu Ltd データ配信装置、記憶装置とその制御方法およびデータ転送システム
US5745913A (en) * 1996-08-05 1998-04-28 Exponential Technology, Inc. Multi-processor DRAM controller that prioritizes row-miss requests to stale banks
US6223256B1 (en) * 1997-07-22 2001-04-24 Hewlett-Packard Company Computer cache memory with classes and dynamic selection of replacement algorithms
US6327644B1 (en) 1998-08-18 2001-12-04 International Business Machines Corporation Method and system for managing data in cache
US6141731A (en) * 1998-08-19 2000-10-31 International Business Machines Corporation Method and system for managing data in cache using multiple data structures
US6381677B1 (en) 1998-08-19 2002-04-30 International Business Machines Corporation Method and system for staging data into cache
US6430666B1 (en) * 1998-08-24 2002-08-06 Motorola, Inc. Linked list memory and method therefor
US6510493B1 (en) 1999-07-15 2003-01-21 International Business Machines Corporation Method and apparatus for managing cache line replacement within a computer system
US6446171B1 (en) 2000-03-02 2002-09-03 Mips Technologies, Inc. Method and apparatus for tracking and update of LRU algorithm using vectors
US6738865B1 (en) 2000-06-09 2004-05-18 International Business Machines Corporation Method, system, and program for demoting data from cache based on least recently accessed and least frequently accessed data
US6654855B1 (en) * 2000-10-26 2003-11-25 Emc Corporation Method and apparatus for improving the efficiency of cache memories using chained metrics
US6763424B2 (en) * 2001-01-19 2004-07-13 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
US6996676B2 (en) * 2002-11-14 2006-02-07 International Business Machines Corporation System and method for implementing an adaptive replacement cache policy
US8504798B2 (en) 2003-12-30 2013-08-06 Sandisk Technologies Inc. Management of non-volatile memory systems having large erase blocks
US7631138B2 (en) * 2003-12-30 2009-12-08 Sandisk Corporation Adaptive mode switching of flash memory address mapping based on host usage characteristics
JP2005284816A (ja) * 2004-03-30 2005-10-13 Hitachi Ltd ディスクアレイシステム
US7673105B2 (en) * 2005-06-27 2010-03-02 Ab Inition Technology LLC Managing memory pages
US10127295B2 (en) * 2009-06-05 2018-11-13 Microsoft Technolofy Licensing, Llc Geographic co-location service for cloud computing
US8577892B2 (en) * 2009-06-05 2013-11-05 Microsoft Corporation Utilizing affinity groups to allocate data items and computing resources
US8392658B2 (en) 2009-07-10 2013-03-05 Apple Inc. Cache implementing multiple replacement policies
JP5627521B2 (ja) * 2011-03-24 2014-11-19 株式会社東芝 キャッシュシステムおよび処理装置
US8839275B1 (en) 2011-06-06 2014-09-16 Proximal Data, Inc. Method for intercepting input/output requests and responses
US9442859B1 (en) 2012-06-17 2016-09-13 Samsung Electronics Co., Ltd. Method for asynchronous population of data caches used with mass storage devices
US9104552B1 (en) 2012-06-23 2015-08-11 Samsung Electronics Co., Ltd. Method for the use of shadow ghost lists to prevent excessive wear on FLASH based cache devices
US9043554B2 (en) 2012-12-21 2015-05-26 Apple Inc. Cache policies for uncacheable memory requests
CN104077242B (zh) * 2013-03-25 2017-03-29 华为技术有限公司 一种缓存管理方法和装置
CN107329911B (zh) * 2017-07-04 2020-07-28 国网浙江省电力公司信息通信分公司 一种基于cp-abe属性访问机制的缓存替换方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3601809A (en) * 1968-11-04 1971-08-24 Univ Pennsylvania Addressable list memory systems
US4636946A (en) * 1982-02-24 1987-01-13 International Business Machines Corporation Method and apparatus for grouping asynchronous recording operations
US4811203A (en) * 1982-03-03 1989-03-07 Unisys Corporation Hierarchial memory system with separate criteria for replacement and writeback without replacement
US4607331A (en) * 1983-05-13 1986-08-19 Motorola, Inc. Method and apparatus for implementing an algorithm associated with stored information
JPS6043758A (ja) * 1983-08-20 1985-03-08 Hitachi Ltd バツフア・ストレ−ジのリプレ−ス制御方式
CA1279731C (en) * 1986-06-27 1991-01-29 Ruby Bei-Loh Lee Cache memory with variable fetch and replacement schemes
EP0273665A3 (en) * 1987-01-02 1990-06-06 General Electric Company System for write once read many optical storage devices to appear rewritable
US4802086A (en) * 1987-01-09 1989-01-31 Motorola, Inc. FINUFO cache replacement method and apparatus
US5134563A (en) * 1987-07-02 1992-07-28 International Business Machines Corporation Sequentially processing data in a cached data storage system
US4882642A (en) * 1987-07-02 1989-11-21 International Business Machines Corporation Sequentially processing data in a cached data storage system
NL8800158A (nl) * 1988-01-25 1989-08-16 Philips Nv Computersysteem voorzien van een hierarchisch georganiseerd geheugen.
GB8802102D0 (en) * 1988-01-30 1988-02-24 Int Computers Ltd Cache memory
US5239650A (en) * 1990-05-21 1993-08-24 International Business Machines Corporation Preemptive demount in an automated storage library

Also Published As

Publication number Publication date
EP0510832A1 (en) 1992-10-28
US5481691A (en) 1996-01-02
JPH07168762A (ja) 1995-07-04

Similar Documents

Publication Publication Date Title
JP2618149B2 (ja) キャッシュ内のデータ記憶スペースを管理する方法及びキャッシュ内でページ置換を行う装置
JP2571342B2 (ja) データをキャッシュ・メモリに貯蔵するシステム及び方法
US6192450B1 (en) Destage of data for write cache
US5991775A (en) Method and system for dynamic cache allocation between record and track entries
JPS6367686B2 (ja)
US20070005904A1 (en) Read ahead method for data retrieval and computer system
US6493791B1 (en) Prioritized content addressable memory
JPS624745B2 (ja)
US20120117297A1 (en) Storage tiering with minimal use of dram memory for header overhead
US5671390A (en) Log structured array storage subsystem using LSA directory and LSA sub-directory stored in different storage media
US6304946B1 (en) System and method for optimizing cache write backs to disks
JP2003196032A (ja) ストレージ装置のライトキャッシュ制御方法及びストレージ装置
US4608671A (en) Buffer storage including a swapping circuit
JP2001195197A (ja) 記憶されたレコードについてのフォーマット情報を効率的に提供するためのディレクトリを含むデジタル・データ・サブシステム
US6772289B1 (en) Methods and apparatus for managing cached CRC values in a storage controller
JPS6045855A (ja) 磁気ディスク装置の順次アクセス検出方法
JP3335919B2 (ja) ディスクキャッシュ制御装置
JP3130569B2 (ja) キャッシュメモリのストア方式
JP2000207278A (ja) 分散共有主記憶を有する情報処理装置
JPH06139147A (ja) キャッシュメモリシステム
JP2001175424A (ja) 磁気ディスク装置
JPH05143459A (ja) 大型磁気デイスク装置
JPH05314008A (ja) 情報処理装置
JPH064225A (ja) 予備セクタを先読みするディスク制御装置
JPH077355B2 (ja) 情報処理装置