JP3169511B2 - メモリ装置及びメモリ管理方法 - Google Patents

メモリ装置及びメモリ管理方法

Info

Publication number
JP3169511B2
JP3169511B2 JP21384294A JP21384294A JP3169511B2 JP 3169511 B2 JP3169511 B2 JP 3169511B2 JP 21384294 A JP21384294 A JP 21384294A JP 21384294 A JP21384294 A JP 21384294A JP 3169511 B2 JP3169511 B2 JP 3169511B2
Authority
JP
Japan
Prior art keywords
data
priority
pointer
pointed
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.)
Expired - Fee Related
Application number
JP21384294A
Other languages
English (en)
Other versions
JPH07302224A (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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP21384294A priority Critical patent/JP3169511B2/ja
Priority to US08/351,712 priority patent/US5881266A/en
Publication of JPH07302224A publication Critical patent/JPH07302224A/ja
Application granted granted Critical
Publication of JP3169511B2 publication Critical patent/JP3169511B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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/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
    • 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

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明はデータを順に入力し、
所定のアルゴリズムに従って優先度の低い順からそのデ
ータを消していくメモリ装置に関するものであり、特に
データベース処理装置において、ディスクキャッシュの
優先度を変更することによりヒット率の向上を図るもの
である。
【0002】
【従来の技術】大容量の記憶部に対するアクセス時間を
高速化することは、システムの効率を向上させる手段と
して有効である。具体的には、例えば低速メモリやディ
スク装置などへのアクセスに、キャッシュメモリと呼ば
れる高速なメモリ装置を中間に介在させることは従来か
ら用いられている手法である。このような高速なメモリ
装置は値段も高価である。そのため、アクセスしたい全
ての記憶部をカバーできる大容量を備えることは難しい
ので、容量が小さいことが通例である。このようなメモ
リ装置と記憶部の間では、一定のブロック単位で転送が
行なわれる。使おうとするデータがメモリ装置内に在れ
ば短いアクセスタイムでこのデータにアクセスできる。
もし、メモリ装置内に使おうとするデータがなければ、
これを記憶部に取りに行かなければならない。つまり、
使おうとするデータがメモリ装置内に存在する可能性が
高い程システム全体の効率も高くなる。従ってメモリ装
置はより優先度の低いデータをブロック単位で消去し、
次のブロックが書き込み可能になるように管理されるの
が望ましい。このようなメモリ装置内の優先度付けは通
常LRU方式(リースト・リーセントリィ・ユースト方
式)が用いられている。この方式は、プログラムの実行
時に、主記憶装置内のプログラムの構成要素のある部分
が繰り返して使われる傾向がある、という考え方に基づ
いている。つまり、頻繁に使われる部分がいつも主記憶
装置内に存在していればプログラム実行時の効率が良く
なるということである。また、ディスク装置の場合に
も、データへのアクセス要求は特定のブロックに集中す
る傾向がある、と言う考えかたに基づくものである。一
方、業務によっては、ディスク上の全てのブロックに偏
りなくアクセスしたいような場合がある。この場合に、
LRU方式を適用すると、逆に自分がアクセスしたいデ
ータのブロックがメモリ装置内に存在する確率が低くな
るという現象が発生する。また、大量のデータを高速に
アクセスする為の方法として、索引(インデックス)が
ある。例えばデータベース処理において、定型処理で
は、データ項目のうちデータを読み出したい特定の項目
が限定されることが多い。それらの項目について索引
(インデックス)を予め設定しておくことができる。例
えばマンナンバーと言う項目について索引を設定してお
けば、実際のデータファイルを見に行くことなく、索引
のみを利用して高速な検索を行なうことが可能となる。
一方、非定型処理では、アトランダムに発生する要求に
答えるために任意の検索を行なうことが多い。このため
要求に応じた索引を予め設けることが困難であり実際的
でない。従って、指定された検索条件に合ったデータを
捜し出すために、一つのテーブル(ファイルともいう)
に記憶されているデータを全データ参照する必要が発生
する。
【0003】要求されるデータがキャッシュメモリに存
在する割合をヒット率という。データベース処理では特
に非定型処理において、同じテーブルに繰り返してアク
セスすることが多い。テーブルのデータはディスク装置
からメモリ装置上のディスクキャッシュ領域に読み込ま
れる。テーブルが小さくてディスクキャッシュ領域にす
べて収まる場合は、最初のアクセス以外はディスクキャ
ッシュ上のデータがヒットするため高速なアクセスが可
能である。しかし、テーブルのサイズがディスクキャッ
シュ領域を少しでも越えてしまう場合には、ディスクキ
ャッシュ領域が全く有効に働かないという場合が存在す
る。例えば、非定型処理においてデータベースに対して
SQL(Structured Query Lang
uage)に基づくコマンドを発行するような場合があ
る。SQLとは、データベースに対して、検索や更新、
削除というような処理を行うための操作言語である。前
述したように非定型処理においては、索引のつけられて
いない特定のテーブルのデータを全件検索するような場
合が多い。一方、前述したようにディスクキャッシュ
は、ディスク上のデータの中でアクセスしたいデータに
は偏りがあるという考え方を前堤としている。つまり、
その偏りに比例した優先度付けを行えば、よりアクセス
頻度の高いデータがディスクキャッシュに入っている確
率が高くなる。従って、その前提に当てはまらないよう
な場合、すなわち、アクセスに偏りがない場合には、デ
ィスクキャッシュ自体が無効になる場合がある。ディス
ク上のデータのブロックを全件アクセスする場合を例に
とって、図を用いて説明する。
【0004】図23は、従来のメモリ装置の構成を示す
ブロック図である。図において、10は、キャッシュメ
モリであり、3は、キャッシュ管理情報である。また、
20は、キャッシュメモリ10に記憶したデータに優先
度を付す優先度付け手段であり、40は、キャッシメモ
リ10に、記憶したデータを優先度付け手段20が付け
た優先度の低い順から消去する消去手段である。また、
150は、これらを制御するメモリ制御部である。次に
動作について説明する。図24は従来のディスクキャッ
シュ領域の動作を説明する図である。説明を簡単にする
ために、このディスクキャッシュの置換法がLRU(リ
ースト・リーセントリィ・ユースト)方式により、古い
データから順に新しいデータに置き換える方式を採るも
のとして説明をする。図24において、ディスクキャッ
シュ領域は8ブロックで構成されている。一方、ディス
クのデータは10ブロックから構成されているものとす
る。このディスク装置からのデータD0〜D9が連続し
てディスクキャッシュ領域に読み込まれてきた場合につ
いて説明する。図24(a)においては、すでにD0〜
D7までディスクキャッシュ領域にデータが読み込まれ
た状態を示している。D0〜D7までの読み込みにおい
ては、ディスクキャッシュがヒットせず、そのたびにデ
ータがディスク装置からディスクキャッシュ領域に読み
込まれてくる。次にディスク装置からD8が読み込まれ
た場合には、図24(b)に示すように図24(a)に
おいて最も古いデータD0が捨てられて、D8に置き換
えられる。さらに、ディスク装置からD9のデータが読
み込まれた場合には、図24(b)において、最も古い
データD1が捨てられ、D9に置き換えられる。次に再
びD0のデータがディスク装置から読み込まれる場合に
は、図24(c)において最も古いデータD2が捨てら
れ、D0に置き換えられる。更にディスク装置からD1
のデータが読み込まれた場合には、図24(d)におい
て最も古いデータD3が捨てられ、D1に置き換えられ
る。このようにして、ディスク装置からのデータが順番
に繰り返し読み込まれる場合には、ディスクキャッシュ
領域にあるデータは一度もヒットせずに、全く効果を奏
さないことになる。
【0005】
【発明が解決しようとする課題】このように、データベ
ース処理装置において、同じテーブルの全データを繰り
返してアクセスするような場合には、従来のディスクキ
ャッシュ領域は、読み込むテーブルのサイズがディスク
キャッシュ領域よりも大きい場合、テーブルの終わりの
方のデータにより、ディスクキャッシュ領域に読み込ま
れた古いデータを順に書き換えていってしまうため、デ
ィスクキャッシュが全くヒットしないという不具合があ
った。特に、非定型処理において同じテーブルを繰り返
しアクセスすることが多いデータベース処理において
は、ディスクキャッシュ領域が有効に働かないことが多
く、システム全体の性能の低下をもたらしてしまうおそ
れがあった。
【0006】この発明は以上のような問題点を解決する
ためになされたものであり、非定型業務のデータベース
処理などのように、ディスク装置へのアクセスが同じ領
域(テーブル)に対して繰り返し行われる場合に、少し
でもメモリの効率が良くなるようなメモリ装置を得るこ
とを目的とする。また、特にLRUアルゴリズムによる
場合のディスクキャッシュ領域のヒット率の向上を目指
すことを目的とする。また、従来の優先度付けが効果的
でないことが事前にわかっている場合に、優先度の変更
を行わせることにより、ヒット率を高めることを目的と
する。
【0007】
【課題を解決するための手段】この発明に係るメモリ装
置は、データを順に入力して記憶するメモリと、所定の
優先度アルゴリズムに基づいて上記メモリに記憶したデ
ータに優先度を付す優先度付け手段と、上記メモリに記
憶したデータを優先度の低いデータから消去する消去手
段を備えたメモリ装置において、所定のタイミングで、
上記各データに付された優先度を変更する優先度変更手
段を備えたことを特徴とする。
【0008】また、この発明に係るメモリ装置は、優先
度を逆転させる逆転手段を備えたことを特徴とする。
【0009】また、この発明に係るメモリ装置におい
て、上記優先度付け手段は、上記優先度アルゴリズムと
して、データのアクセスに偏りがあると言う考え方に基
づいたアルゴリズムを用いることを特徴とする。
【0010】また、この発明に係るメモリ装置は、上記
優先度アルゴリズムは、リースト・リーセントリィ・ユ
ースト(LRU)アルゴリズムであることを特徴とす
る。
【0011】また、この発明に係るメモリ装置におい
て、上記優先度付け手段はデータの入力順を示す順方向
ポインタと逆方向ポインタを備え、上記優先度変更手段
は、上記順方向ポインタと逆方向ポインタを逆転させる
ポインタ逆転手段を備えたことを特徴とする。
【0012】また、この発明に係るメモリ装置におい
て、上記優先度変更手段は、優先度をシフトさせるシフ
ト手段を備えたことを特徴とする。
【0013】また、この発明に係るメモリ装置におい
て、上記優先度付け手段は、データの入力順を示す順方
向ポインタと逆方向ポインタを備え、上記優先度変更手
段は、上記順方向ポインタと逆方向ポインタをシフトさ
せるポインタシフト手段を備えたことを特徴とする。
【0014】また、この発明に係るメモリ装置におい
て、上記優先度付け手段は、FIFO(First I
n First Out)メモリを備え、データの入力
順をFIFOメモリを用いて記憶し、上記優先度変更手
段は、上記FIFOメモリ内に記憶されたデータの入力
順を変更することを特徴とする。
【0015】また、この発明に係るメモリ装置におい
て、上記優先度付け手段は、スタックメモリを備え、デ
ータの入力順をスタックメモリを用いて記憶し、上記優
先度変更手段は、上記スタックメモリ内に記憶されたデ
ータの入力順を変更することを特徴とする。
【0016】また、この発明に係るメモリ装置は、上記
メモリがディスクキャッシュメモリであることを特徴と
する。
【0017】また、この発明に係るメモリ装置におい
て、優先度を変更するタイミングを検出するタイミング
検出部を備えるとともに、上記優先度変更手段は、タイ
ミング検出部が検出したタイミングを参照して優先度を
変更することを特徴とする。
【0018】また、この発明に係るメモリ装置におい
て、上記タイミング検出部は、データを検索するデータ
検索コマンドを入力して解析することによって優先度を
変更するタイミングを検出することを特徴とする。
【0019】また、この発明に係るメモリ装置におい
て、上記タイミング検出部は、データ検索コマンドとし
て、SQL(Structured Query La
nguage)で記述されたコマンドを入力して解析す
ることを特徴とする。
【0020】また、この発明に係るメモリ装置は、上記
優先度変更手段の動作の可否を設定する動作設定手段を
備えたことを特徴とする。
【0021】また、この発明に係るメモリ装置において
は、上記優先度変更手段は、タイミング検出部が検出し
たタイミングを参照して優先度を逆転することを特徴と
する。
【0022】また、この発明に係るメモリ装置において
は、上記優先度変更手段は、タイミング検出部が検出し
たタイミングを参照して優先度をシフトすることを特徴
とする。
【0023】また、この発明に係るメモリ管理方法は、
以下の工程を有することを特徴とする。 (a)上記メモリに記憶したデータの優先度を変更する
時期を検出する変更時期検出工程、(b)上記メモリに
記憶したデータの優先度の変更の必要性を検出する必要
性検出工程、(c)上記変更時期検出工程により優先度
を変更する時期であると判定され、かつ、必要性検出工
程により優先度の変更の必要性があると判定された場合
に、上記メモリに記憶したデータの優先度を変更する優
先度変更工程。
【0024】また、この発明に係るメモリ管理方法にお
いて、上記変更時期検出工程は、データを検索するデー
タ検索コマンドを解析することによって優先度を変更す
る時期を検出するタイミング検出工程を備えたことを特
徴とする。
【0025】また、この発明に係るメモリ管理方法にお
いて、上記タイミング検出工程は、データ検索コマンド
が同一テーブルの全件参照用のコマンドである場合に優
先度を変更する時期であると判定する工程を備えたこと
を特徴とする。
【0026】また、この発明に係るメモリ管理方法にお
いて、上記必要性検出工程は、メモリに記憶したデータ
のアクセス結果を記憶するアクセス記憶工程と、記憶し
たアクセス結果に基づいて優先度変更の必要性を判定す
る判定工程を備えたことを特徴とする。
【0027】また、この発明に係るメモリ管理方法にお
いて、上記判定工程は、上記アクセス結果からヒット率
を求め、ヒット率が所定のしきい値以下である場合に、
優先度変更の必要性を判定する工程を備えたことを特徴
とする。
【0028】また、この発明に係るメモリ管理方法にお
いて、上記判定工程は、上記アクセス結果から連続した
非ヒット回数を求め、連続した非ヒット回数が所定のし
きい値以下である場合に、優先度変更の必要性を判定す
る工程を備えたことを特徴とする。
【0029】また、この発明に係るメモリ管理方法は、
データをポインタでチェインさせることにより優先度付
けを行なう工程を有し、上記優先度変更工程は、ポイン
タのチェインを変更するチェイン変更工程を備えたこと
を特徴とする。
【0030】また、この発明に係るメモリ管理方法にお
いて、上記チェイン変更工程は、チェインの先頭と末尾
を逆転させる工程を備えたことを特徴とする。
【0031】また、この発明に係るメモリ管理方法にお
いて、上記チェイン変更工程は、チェインの先頭を所定
数シフトする工程を備えたことを特徴とする。
【0032】
【作用】この発明によれば、所定の優先度アルゴリズム
に基づいて優先度付けされたデータを、優先度の低い順
に消去するようなメモリ装置において、あるタイミング
でデータに付された優先度を変更してしまうので、古い
データが新しいデータで順に上書きされていくような場
合に、変更前に優先度の低かったデータを残すことによ
り、再びそのデータを利用することが可能になる。
【0033】また、この発明においては、優先度を変更
する場合、優先度を逆転させてしまう為、一番優先度の
低いデータが最も優先度の高いデータに変更され、古い
データ程メモリに残ることになる。
【0034】また、この発明においては、上記優先度付
け手段は、上記優先度アルゴリズムとして、データのア
クセスに偏りがあると言う考え方に基づいたアルゴリズ
ムを用いるので、アクセス頻度が少ないデータに対して
は低い優先度を付け、アクセス頻度が多いデータには高
い優先度を付ける。
【0035】また、この発明においては、優先度アルゴ
リズムがLRUのアルゴリズムである場合に、優先度が
変更されるため、古いデータほどあるタイミングで最も
最新に使われたデータと見なされることになる。
【0036】また、この発明においては、LRUアルゴ
リズムを用いる場合の具体的な例として、順方向ポイン
タと逆方向ポインタを備えた場合に、この順方向ポイン
タと逆方向ポインタを入れ換えてしまうことにより、優
先度を変更することができる。
【0037】また、この発明においては、優先度をシフ
トすることによって優先度変更を行なう。
【0038】また、この発明においては、順方向ポイン
タと逆方向ポインタを備えた場合に、この順方向ポイン
タと逆方向ポインタをシフトさせることにより、優先度
を変更することができる。
【0039】また、この発明においては、データの入力
順をFIFOメモリを用いて記憶し、上記FIFOメモ
リ内に記憶されたデータの入力順を変更することによ
り、優先度を変更することができる。
【0040】また、この発明においては、データの入力
順をスタックメモリを用いて記憶し、上記スタックメモ
リ内に記憶されたデータの入力順を変更することによ
り、優先度を変更することができる。
【0041】また、この発明においては、前述したメモ
リがディスク装置のためのディスクキャッシュメモリで
あるため、データベース処理等のディスク装置のアクセ
スの場合のヒット率が向上する。
【0042】また、この発明においては、優先度を変更
するタイミングを検出するタイミング検出部を備えた場
合に、上記優先度変更手段は、タイミング検出部が検出
したタイミングを参照して優先度を変更する。
【0043】また、この発明においては、上記タイミン
グ検出部は、データを検索するデータ検索コマンドを入
力して解析することによって優先度を変更するタイミン
グを検出する。
【0044】また、この発明においては、上記タイミン
グ検出部は、データ検索コマンドとして、SQL(St
ructured Query Language)で
記述されたコマンドを入力して解析する。
【0045】また、この発明においては、上記優先度変
更手段の動作の可否を設定する動作設定手段を備え、上
記優先度変更手段は、動作設定手段を参照して、動作す
るかどうかを決定する。
【0046】また、この発明においては、優先度を逆転
するタイミングを検出するタイミング検出部を備えた場
合に、上記優先度変更手段は、タイミング検出部が検出
したタイミングを参照して優先度を逆転する。
【0047】また、この発明においては、優先度をシフ
トするタイミングを検出するタイミング検出部を備えた
場合に、上記優先度変更手段は、タイミング検出部が検
出したタイミングを参照して優先度をシフトする。
【0048】また、この発明においては、優先度を変更
する時期を検出し、かつ、必要性検出工程により優先度
の変更の必要性があると判定された場合に、上記メモリ
に記憶したデータの優先度を変更する。
【0049】また、この発明においては、データを検索
するデータ検索コマンドを解析することによって優先度
を変更する時期を検出する。
【0050】また、この発明においては、上記タイミン
グ検出工程は、データ検索コマンドが同一テーブルの全
件参照用のコマンドである場合に優先度を変更する時期
であると判定する。
【0051】また、この発明においては、上記必要性検
出工程は、メモリに記憶したデータのアクセス結果を記
憶し、記憶したアクセス結果に基づいて優先度変更の必
要性を判定する。
【0052】また、この発明においては、上記判定工程
は、上記アクセス結果からヒット率を求め、ヒット率が
所定のしきい値以下である場合に、優先度変更の必要性
を判定する。
【0053】また、この発明においては、上記判定工程
は、上記アクセス結果から連続した非ヒット回数を求
め、連続した非ヒット回数が所定のしきい値以下である
場合に、優先度変更の必要性を判定する。
【0054】また、上記メモリ管理方法は、データをポ
インタでチェインさせることにより優先度付けを行な
い、ポインタのチェインを変更することにより優先度を
変更する。
【0055】また、上記チェイン変更工程は、チェイン
の先頭と末尾を逆転させることにより、優先度を変更す
る。
【0056】また、上記チェイン変更工程は、チェイン
の先頭を所定数シフトすることにより、優先度を変更す
る。
【0057】
【実施例】
実施例1.図1は、この発明のメモリ装置の構成図であ
る。1は、メモリ装置であり、10は、このメモリ装置
においてデータを記憶するキャッシュメモリであり、3
は、それを管理するキャッシュ管理情報である。また、
20は、キャッシュメモリ10に、記憶されているデー
タに優先度を付す優先度付け手段であり、30は、所定
のタイミングでデータに付された優先度を変更する優先
度変更手段である。また、40は、優先度の低いデータ
を消去する消去手段である。50は、これらを制御する
メモリ制御部であり、90はディスク装置である。ま
た、60は、タイミング検出部である。図2は、図1に
示したメモリ装置を搭載するワークステーションの構成
を示す図である。図において、300aは情報を表示す
る表示部となるディスプレイ装置、300bは文字や数
値を入力するキーボード、300cはディスプレイ装置
の任意の位置を指定することができるマウス、300d
はマウスパッド、300eはワークステーション本体装
置である。図3はこの発明におけるメモリ装置の一使用
例を示す図である。図3は高速データ検索マシンの構成
を示す図である。マスターに対して複数のスレーブが接
続されており、各スレーブにはそれぞれメモリ装置1a
〜1bが設置されている。また、各々のスレーブに対し
てディスク装置が接続されている。このようなハードウ
ェア構成を用いることにより、全体として1つのデータ
ベースを構成している。すなわち、ホストコンピュータ
からのデータベースアクセス要求に対して、マスターと
スレーブはディスク装置にデータを分散させることによ
り、処理の並列化を図ることにより効率のよいデータベ
ースアクセスをホストコンピュータに提供するものであ
る。このような高速データ検索マシンの各スレーブにお
いて、この発明のメモリ装置を適用することができる。
【0058】図4は前述したメモリ装置の構成を示すブ
ロック図である。メモリ装置はキャッシュ管理情報3と
ディスクキャッシュ2から構成されている。ディスクキ
ャッシュ2はディスク装置に記憶されたデータを一時的
に記憶するものである。また、キャッシュ管理情報は、
ディスクキャッシュに記憶されたデータを管理するため
の情報を記憶するためのものである。
【0059】図5はキャッシュ管理情報3の各エントリ
の内容を示す図である。以下、各エントリをキャッシュ
管理情報エントリと呼ぶ。キャッシュ管理情報3は、順
方向/逆方向のポインタ4とディスクキャッシュへのポ
インタ5とディスク格納位置のポインタ6と逆方向/順
方向のポインタ7を有している。順方向/逆方向のポイ
ンタ4と逆方向/順方向のポインタ7はある時には順方
向のポインタとして用いられ、別な時は逆方向のポイン
タとして用いられる。順方向のポインタとして用いられ
る場合には、最も新しくアクセスされた順にチェーンす
る。一方、逆方向のポインタとして用いられる場合に
は、このポインタは最も古くアクセスされた順にチェー
ンする。ディスクキャッシュへのポインタ5は、ディス
クキャッシュのポインタであり、通常はディスクキャッ
シュ2に割り振られたアドレスを用いるポインタとす
る。ディスク格納位置のポインタ6はディスクに格納さ
れているデータの位置を示すポインタであり、通常はデ
ィスク装置のアドレスを用いてポインタとすることがで
きる。例えば、図4に示すような場合、このディスク格
納位置のポインタはブロック番号を用いることができ
る。
【0060】次にこのように構成されたメモリ装置の動
作について説明する。まず前提条件として、テーブルの
データがブロック数10まであるものとする。そしてそ
のブロックにはD0〜D9のデータがそれぞれ格納され
ているものとする。また、ディスクキャッシュのブロッ
クはブロック0〜ブロック7まで、すなわち8ブロック
あるものとする。さらに、ディスクキャッシュからデー
タを消去する場合のアルゴリズムは、LRU方式をとる
ものとする。すなわち、最も古いデータから順に消去し
ていくものとする。このような、メモリ装置を備えたデ
ータベース処理装置において、あるテーブルの全レコー
ドを検索する必要があるようなSQLコマンドを複数連
続して発行する場合を例にとって、説明する。以降、一
つのSQLコマンドの実行を一つのサイクルとして説明
する。すなわち、一つのサイクルの間に、あるテーブル
のデータブロック全件が参照されるという前提がある。
ここで、LRU方式をとるのは、それがアクセスしたい
データには偏りがある、という考えに基づくアルゴリズ
ムの中で代表的なものであるからである。従って同じ考
え方を基礎としているアルゴリズムであれば、他のアル
ゴリズム方式を取るものであってもかまわない。
【0061】まず、図6を用いて第1サイクルについて
説明する。図6から図11および図18においては、説
明を簡単にするためにディスク格納位置のポインタ6は
図示していない。図6(a)はディスク装置からデータ
D0〜D7をアクセスした状態を示している。図6
(a)においては、順方向ポインタは先頭ポインタFP
から順にポイントされている。また、逆方向ポインタは
末尾ポインタBPで示されるデータから古い順にポイン
トされている。また、図において、FFはポインタの終
了を示している。図6(a)の状態で更にディスク装置
をアクセスしてデータD8を読み込んだ場合を図6
(b)に示す。図6(b)においては、図6(a)の中
で最も古いデータであったD0が捨てられ、新たに読み
込んだD8が上書きされる。従って、先頭ポインタはD
8のキャッシュ管理情報エントリをポイントする。ま
た、末尾ポインタはD1のキャッシュ管理情報エントリ
をポイントする。さらに、ディスク装置に対してD9を
アクセスした場合は図6(c)に示すように、最も古い
データD1がD9により上書きされる。この状態では先
頭ポインタFPがD9のキャッシュ管理情報エントリを
ポイントし、末尾ポインタBPがD2のキャッシュ管理
情報エントリをポイントする。このようにD0〜D9の
アクセスが終了した時点で第1サイクルが終了する。
【0062】次に図7および図8を用いて第2サイクル
について説明する。第2サイクルでは再びD0〜D9を
読み込むが、その第2サイクルの前に先頭ポインタと末
尾ポインタの入れ替えを行なう。従って末尾ポインタB
PはD9のキャッシュ管理情報エントリをポイントす
る。また、先頭ポインタFPがD2のキャッシュ管理情
報エントリをポイントする。このポインタの入れ替えに
より、最も古いデータが最も新しいものと取り扱われる
こととなる。逆に最も新しいデータが最も古いデータで
あるとして取り扱われることになる。このような状態で
ディスク装置に対して、D0をアクセスすると図7
(b)のように、最も古いデータとして扱われたD9に
対して、D0が上書きされる。この時点で末尾ポインタ
BPはD8のキャッシュ管理情報エントリをポイントす
る。先頭ポインタFPはD0のキャッシュ管理情報エン
トリをポイントする。更にディスク装置に対して、D1
をアクセスした場合には、図8(c)のように最も古い
データD8がD1により置き換えられる。この時点で先
頭ポインタFPはD1のキャッシュ管理情報エントリを
ポイントする。末尾ポインタBPはD7のキャッシュ管
理情報エントリをポイントする。さらに、D2をアクセ
スした場合には、図8(d)に示すように、ディスクキ
ャッシュ上にD2がすでに存在しているため、ディスク
キャッシュがヒットする。従ってディスク装置からD2
は実際には読み込まれず、ディスクキャッシュのデータ
が用いられる。この時点で先頭ポインタFPはD2のキ
ャッシュ管理情報エントリをポイントする。末尾ポイン
タは図8(c)と同様D7のキャッシュ管理情報エント
リをポイントしたままである。このようにして、D2を
アクセスする場合には、ディスクキャッシュにデータが
すでに存在しているため、ディスクキャッシュがヒット
し、ディスク装置から実際のデータは読み込まれない。
同様にD3,D4,D5,・・・,D7までのデータを
アクセスする場合、それらはディスクキャッシュ上にす
でに存在しているため、ディスク装置から実際のデータ
は読み込まれない。順方向のポインタ及び逆方向のポイ
ンタの付けかえと末尾ポインタ先頭ポインタの変更だけ
がおこなわれる。
【0063】図9(e)はD7までデータのアクセスが
進んだ状態を示している。この時点では、先頭ポインタ
FPはD7のキャッシュ管理情報エントリをポイントし
ている。また、末尾ポインタBPはD0のキャッシュ管
理情報エントリをポイントする。さらに、この時点でD
8をアクセスする場合は、図9(f)に示すように、最
も古いデータD0が新しいデータD8に置き換えられ
る。この時点で先頭ポインタFPはD8のキャッシュ管
理情報エントリをポインタする。また、末尾ポインタB
PはD1のキャッシュ管理情報エントリをポイントす
る。さらに、D9をアクセスする場合は、図10(g)
に示すように最も古いデータD1がD9によって置き換
えられる。先頭ポインタはD9のキャッシュ管理情報エ
ントリを指し、末尾ポインタはD2のキャッシュ管理情
報エントリを指す。以上のようにして、第2サイクルが
終了する。この第2サイクルの実行中にD0〜D9まで
の10個のデータをアクセスするが、その内ディスクキ
ャッシュがヒットしたのはD2〜D7である。従って1
0個中6個のヒットにより、ヒット率は60%となる。
【0064】次に図11を用いて第3サイクルの動作に
ついて説明する。この第3サイクルが始まる前に、再び
先頭ポインタと末尾ポインタの入れ替えを行なう。従っ
て先頭ポインタFPはD2のキャッシュ管理情報エント
リを指し、末尾ポインタBPはD9のキャッシュ管理情
報エントリをポイントする。従って、この時点でディス
クキャッシュデータが古いと見なされる順は、D9,D
8,D7,・・・,D3,D2となる。この第3サイク
ルにおいて、D0〜D9までのデータをアクセスする
と、D0,D1のアクセスでD9,D8のディスクキャ
ッシュはつぶされることになる。次にD2〜D7のデー
タをアクセスする場合は、ディスクキャッシュにD2〜
D7のデータが存在しているため、ヒットする。さら
に、D8,D9のアクセスの際には、ヒットしないた
め、古いデータであるD0,D1がつぶされる。このよ
うにして第3サイクルが終了する。このサイクルにおい
ても10回のアクセスのうち、D2〜D7はディスクキ
ャッシュにヒットすることになり、ヒット率は60%で
ある。
【0065】また、この実施例においては、図1に示す
ように、タイミング検出部60をメモリ装置の外側に配
置しているが、図12に示すようにメモリ装置内部にタ
イミング検出部60を備えてもかまわない。
【0066】以上のようにこの実施例では、8個のキャ
ッシュブロックがあり、テーブルのデータサイズが10
個の場合について説明したが、N個のキャッシュブロッ
クがあり、テーブルのデータサイズとしてM個のブロッ
クがあると仮定すると、M≦Nの場合は、従来方式およ
び本方式とも全データがキャッシュヒットする。また、
N<M<2Nの場合、従来方式は次々と上書きされてい
くことにより、全ディスクキャッシュが全て無効とな
る。本方式の場合は、2N−M個がキャッシュヒットす
る。前述した場合がこれに相当し、キャッシュブロック
数N=8、テーブルサイズM=10の場合であり、2N
−M=2×8−10=6となり、10個中6個のデータ
がキャッシュヒットする。さらに、2N≦Mの場合は、
従来方式及び本方式の場合いずれの場合においても、全
ディスクキャッシュが順に上書きされてしまうため、全
てのディスクキャッシュが無効になる。
【0067】実施例2.上記実施例においては、10個
のデータを各サイクルごとにアクセスする場合、各サイ
クルごとに先頭ポインタと末尾ポインタを入れ換える場
合について説明したが、この先頭ポインタと末尾ポイン
タの入れ替えのタイミングは、例えば1つのコマンドが
終了した時点、あるいは1つのコマンドが開始する時
点、あるいは直前のコマンドのアクセスしたテーブルを
記憶しておき、アクセス要求のあったテーブルが同じテ
ーブルの場合等いろいろなタイミングが考えられる。あ
るいは実際にアクセスが行われている最中であって、デ
ィスクキャッシュのヒットが連続して10回以上失敗し
た場合等のアクセス回数により先頭ポインタと末尾ポイ
ンタを入れ換えるようにしてもかまわない。あるいは、
ディスクキャッシュメモリのヒット率がしきい値以下の
場合に優先度を入れ替えるようにしてもかまわない。ま
た、上記実施例においては、1サイクルを一つのSQL
コマンドの実行として説明した。ところが実際には、一
つのSQLコマンドを実行する際には、ディスク制御装
置からディスクキャッシュメモリ装置に対して数多くの
アクセスするためのコマンドが発行されている。このコ
マンドを時期検出のための単位としてもよい。
【0068】次にどの様な手順で優先度変更を行なうか
について、図を用いて具体的に説明する。図13は、優
先度変更の流れ図である。まず、S110において優先
度変更のサイクルかどうか判断する。Noの場合、この
処理を終了する。Yesの場合、S120において優先
度変更が必要かを判断する。Noの場合、この処理を終
了する。Yesの場合、S130において優先度を変更
する。また、図14は、ディスク装置90内の、テーブ
ルの配置を示す図である。ディスク装置には、テーブル
T1、T2、T3の3つのテーブルがある。テーブルT
1には、データブロックがD0〜D9まで10データブ
ロックある。また、テーブルT2には、データブロック
がD10〜D18まで9データブロックあり、テーブル
T3にはデータブロックD20〜D23まで4つのデー
タブロックがあるものとする。図15は、アクセスする
テーブルによる優先度変更の可否を説明する為の図であ
る。ここでは、5つのSQLコマンドが発行された例を
示しているが理解しやすくするために各SQLコマンド
が指定されたテーブルのデータを全件アクセスする内容
であると想定している。また、一つのSQLコマンドを
処理しているサイクルの間のメモリ装置内の動作につい
ては、前述した実施例と同様であるので説明を省略す
る。まず、SQL1は、テーブルT1に、全件アクセス
するというコマンドである。このSQL1は最初に実行
するコマンドであるので優先度の変更は行なわない。S
QL2はテーブルT1に、全件アクセスするという内容
である。直前のコマンドと同じテーブルに全件アクセス
するので、今現在ディスクキャッシュメモリ内のデータ
に付けられている優先度のままでは、ヒット率が悪いこ
とが判断できる。その判断に基づき、ここで優先度変更
を行なう。次のSQL3は、テーブルT2に、全件アク
セスする、という内容である。アクセスするテーブルT
2が直前のSQL2と異なるのでディスクキャッシュメ
モリ内にデータが存在することは、期待できないと判断
できる。従って、優先度変更は行なわない。次のSQL
4は、テーブルT3に全件アクセスする、という内容で
ある。これも直前のコマンドとは参照するテーブルが異
なるので優先度変更は行なわない。次のSQL5を見る
とテーブルT3に全件アクセスするということが判る。
このコマンドでは、直前のコマンドと同じテーブルを参
照するので優先度変更を行なう。
【0069】ここまで述べてきた判断を流れ図に表わし
たものが図16である。まず、アプリケーションからの
要求が、全件参照するSQLコマンドか、を判断し、
(S10)Noであれば、優先度変更は行なわない。Y
esであれば、S11において、参照するテーブルが同
じか、という判断を行ないNoであれば優先度変更は行
なわず、Yesであれば優先度変更を行なう(S1
2)。
【0070】また、例えば処理の内容によってテーブル
内の全データを参照することが、予め判断できる場合が
ある。そのような場合にオペレーティングシステムやオ
ペレータまたはアプリケーションプログラムが、メモリ
装置に対して、優先度変更手段を動作させるかどうかを
設定できるようにする方法も可能である。
【0071】図17は、この発明のメモリ装置の変更例
を示すブロック図である。図17において、70は、動
作設定手段である。この図においては、動作設定手段7
0は、メモリ装置内に存在しているが、他の部分に備え
られても構わない。この、動作設定手段70に、動作設
定がONに設定されているときは、一定のタイミングで
優先度を変更するかどうかを判断させるが、動作設定が
OFFのときは、優先度変更の判断を行なわず従来の優
先度付けに従ってメモリ装置は動作する。図18は、優
先度変更の判断の詳細な流れ図である。まず、S20に
おいて、ヒット率がしきい値以下であるかどうかを判断
する。Yesの場合には、S22において優先度変更を
行なう。Noの場合には、S21においてn回以上連続
してヒツトしていないかどうか判断を行なう。n回以上
連続してヒツトしていない場合、すなわち、Yesの場
合にはS22において優先度変更を行なう。また、No
の場合には、変更を行なわずこの判断から抜けだす。ま
た、図19はタイミング検出部が、いつ判断を行なうか
を示した図である。S30は、テーブル中の全データが
アクセスされたか、であり、S31は、テーブルのデー
タから特定の割合以上のデータのアクセスが完了した
か、であり、S32は、コマンドが終了したか、であ
る。また、S33は、コマンドが開始するか、である。
S31において、データ中のデータの特定の割合以上の
データのアクセスの完了という判断を行なっているの
は、例えば7割など任意の設定が可能であるからであ
る。前述した実施例においては、優先度変更のタイミン
グを一つのテーブルのデータを全件アクセスする場合を
前提としていたが、必ずしも100%とは限らず、例え
ば70%以上アクセスした場合に、優先度変更のタイミ
ングとしてもよい。また、この判断を行なうタイミング
検出部は、メモリ装置内に存在してもよいし、オペレー
ティングシステムやデータベース処理装置の管理下に備
えられてもよい。
【0072】実施例3.上記実施例においては、先頭ポ
インタと末尾ポインタを入れ換えることにより、優先度
を逆転する場合について説明したが、先頭ポインタと末
尾ポインタを逆転するのではなく、先頭ポインタと末尾
ポインタを幾つかシフトさせてしまうようにしてもかま
わない。図20は先頭ポインタと末尾ポインタをシフト
させた場合の例を示す図である。図20は図6に示した
第1サイクルの終了後、先頭ポインタと末尾ポインタを
図において、上段から下段に向かって5つシフトさせた
状態を示している。すなわち、図6(c)において、先
頭ポインタはD9のキャッシュ管理情報エントリをさし
ていたが、図20(a)においては、D6のキャッシュ
管理情報エントリをポイントする。また、末尾ポインタ
は図6(c)においてD2のキャッシュ管理情報エント
リをポイントしていたが、図20(a)においては、D
7のキャッシュ管理情報エントリをポイントする。この
ような状態でD0をアクセスすると、最も古いデータD
7がD0により上書きされる。この時点で先頭ポインタ
FPがD0のキャッシュ管理情報エントリをポイントす
る。末尾ポインタBPはD8のキャッシュ管理情報エン
トリをポイントする。さらにD1をアクセスすると、最
も古いデータD8がD1によって置き換えられる。この
時点で先頭ポインタFPがD1のキャッシュ管理情報エ
ントリをポイントする。末尾ポインタBPはD9のキャ
ッシュ管理情報エントリをポイントする。さらに図20
(c)の状態でD2をアクセスするとD2はすでにディ
スクキャッシュ上に存在しているため、ディスクキャッ
シュヒットとなる。さらにD3〜D6をアクセスする場
合もディスクキャッシュヒットとなる。次にD7をアク
セスする場合には、最も古いD9がD7によって置き換
えられる。また、D8及びD9をアクセスする場合に
は、古いデータを順に置き換える。このようにして、D
0〜D9のアクセスに対して、D2〜D6のデータがヒ
ットしたことになり、50%のヒット率となる。
【0073】実施例4.上記実施例においては、ポイン
タを逆転したり、ポインタをシフトさせる場合について
説明したが、ポインタをランダムに付け直すような場合
であってもかまわない。
【0074】実施例5.上記実施例においては、ポイン
タを用いて入力した順を覚えている場合について説明し
たが、ポインタを用いずに入力した順を覚えているよう
な場合であってもかまわない。例えば、FIFO(ファ
ースト イン ファースト アウト)メモリを用いて入
力順を記憶している場合には、そのFIFOメモリ内に
記憶されたデータの順番を反転させたり、サイクリック
にシフトさせてしまうことにより前述したポインタの入
れ替えやポインタのシフトと同様の操作を行なうことが
できる。また、FIFOメモリばかりでなく、例えばス
タック等のメモリを用いる場合でもかまわない。スタッ
クメモリを用いる場合には、スタックに積み重ねられた
データの順番を反転させてしまったり、スタックの底に
あるデータを一番上に積み重ね直すことにより、前述し
た実施例と同様の効果を奏する。図21は、この発明に
おけるキャッシュ管理情報を示す図である。図21にお
いては、キャッシュメモリに記憶されたデータの順番を
スタックAに保管して置き、それをスタツクBに入れ替
えることによって、順番を逆転させる例である。また、
図22は、この発明のメモリ装置におけるキャッシュ管
理情報のデータの順番がFIFOメモリに記憶されてい
る場合に逆転メモリを用いてその順番を反転させる例で
ある。
【0075】実施例6.前述した実施例においては、デ
ィスクキャッシュメモリの場合について説明したが、こ
の発明はディスクキャッシュメモリばかりでなく、プロ
セッサがメインメモリをアクセスするためのキャッシュ
メモリの場合にも適用することができる。あるいはコミ
ュニケーションを行なうシステムにおいて、伝送されて
くるデータを一時的に蓄えるキャッシュメモリの場合に
ついても適用することができる。
【0076】
【発明の効果】以上のようにこの発明によれば、優先度
を変更して消去するデータの順番を入れ換えることによ
り、必要とするデータをメモリに残すことが可能にな
る。
【0077】また、この発明によれば、優先度を逆転さ
せるため最も不要と思われていたデータを最も必要とす
るデータに簡単に変更することができる。
【0078】また、この発明によれば、データのアクセ
スの偏りを優先度付けに反映させることができる。
【0079】また、この発明によれば、データが使用さ
れた順をそのまま優先度に反映させることができLRU
アルゴリズムの優先度を簡単に変えることができる。
【0080】また、この発明によれば、順方向と逆方向
のポインタを備えることにより順方向と逆方向のポイン
タを入れ換えるだけで優先度を容易に変更することがで
きる。
【0081】また、この発明によれば、優先度をシフト
させることによって、優先度を変更できるので、優先度
が低かったデータの優先度を高くし、そのデータの消去
を防ぐことができる。
【0082】また、この発明によれば、順方向と逆方向
のポインタを備えることにより順方向と逆方向のポイン
タをシフトさせるだけで優先度を容易に変更することが
できる。
【0083】また、この発明によれば、データの入力順
をFIFOメモリを用いて記憶し、上記FIFOメモリ
内に記憶されたデータの入力順を変更するので、ポイン
タを用いずに優先度の管理ができる。
【0084】また、この発明によれば、データの入力順
をスタックメモリを用いて記憶し、上記スタックメモリ
内に記憶されたデータの入力順を変更するので、ポイン
タを用いずに優先度の管理ができる。
【0085】また、この発明によれば、ディスクキャッ
シュメモリを用いるデータベースシステムやその他のシ
ステムにおいて、ディスクキャッシュヒット率を向上さ
せることができる。
【0086】また、この発明によれば、上記優先度変更
手段は、タイミング検出部が検出したタイミングを参照
して優先度を変更するので、効率良く変更ができる。
【0087】また、この発明によれば、上記タイミング
検出部は、データを検索するデータ検索コマンドを入力
して解析するので、データ検索の内容に沿って、優先度
を変更するタイミングを検出することができる。
【0088】また、この発明のよれば、データ検索コマ
ンドとして、標準化されているSQL(Structu
red Query Language)で記述された
コマンドを解析の対象とすることができる。
【0089】また、この発明によれば、オペレーティン
グシステムやオペレータから優先度変更手段の動作の指
示を与えることができる。
【0090】また、この発明によれば、優先度を逆転さ
せるタイミングの検出をタイミング検出部に委ねること
ができる。
【0091】また、この発明によれば、優先度をシフト
させるタイミングの検出をタイミング検出部に委ねるこ
とができる。
【0092】また、この発明によれば、データの優先度
を変更する時期であると判定され、かつ、必要性検出工
程により優先度の変更の必要性があると判定された場合
に、上記メモリに記憶したデータの優先度を変更するの
で、次に利用する可能性が高いデータをメモリに残すこ
とができる。
【0093】また、この発明によれば、データを検索す
るデータ検索コマンドを解析することによって優先度を
変更する時期を検出するので、データ検索の内容に沿っ
て、適切にタイミングを検出できる。
【0094】また、この発明によれば、従来のメモリ装
置では、ヒット率が低かった場合でも、ヒット率を上げ
ることができる。
【0095】また、この発明によれば、記憶したアクセ
ス結果に基づいて優先度変更の必要性を判定するので、
実績に基づいた効果的な優先度変更ができる。
【0096】また、この発明によれば、ヒット率が所定
のしきい値以下である場合に、優先度変更の必要性を判
定するので、ヒット率が高いときには優先度を変更せ
ず、メモリ装置の効率を下げることを回避できる。ま
た、ヒット率が低いときには優先度を変更してヒット率
を上げることができる。
【0097】また、この発明によれば、連続した非ヒッ
ト回数が所定のしきい値以下である場合に、優先度変更
の必要性を判定するので、上記と同様の効果を奏する。
【0098】また、この発明によれば、ポインタのチェ
インを変更することで、データの優先度を変更すること
ができる。
【0099】また、この発明によれば、ポインタのチェ
インの先頭と末尾を逆転させることで、データの優先度
を変更することができる。
【0100】また、この発明によれば、ポインタのチェ
インの先頭を所定数シフトすることで、データの優先度
を変更することができる。
【図面の簡単な説明】
【図1】 この発明のメモリ装置の構成図である。
【図2】 この発明のメモリ装置を搭載するワークステ
ーションの構成図である。
【図3】 この発明のメモリ装置が利用できるシステム
構成を示す図である。
【図4】 この発明のメモリ装置の構成図である。
【図5】 この発明のメモリ装置のキャッシュ管理情報
を示す図である。
【図6】 この発明のメモリ装置の一実施例であるディ
スクキャッシュメモリの第1サイクルのアクセス動作を
示す図である。
【図7】 この発明のメモリ装置の一実施例であるディ
スクキャッシュメモリの第2サイクルのアクセス動作を
示す図である。
【図8】 この発明のメモリ装置の一実施例であるディ
スクキャッシュメモリの第2サイクルのアクセス動作を
示す図である。
【図9】 この発明のメモリ装置の一実施例であるディ
スクキャッシュメモリの第2サイクルのアクセス動作を
示す図である。
【図10】 この発明のメモリ装置の一実施例であるデ
ィスクキャッシュメモリの第2サイクルのアクセス動作
を示す図である。
【図11】 この発明のメモリ装置の一実施例であるデ
ィスクキャッシュメモリの第3サイクルのアクセス動作
を示す図である。
【図12】 この発明のメモリ装置の他の構成図であ
る。
【図13】 この発明の優先度変更の流れ図である。
【図14】 この発明の実施例のテーブルのは位置を示
す図である。
【図15】 この発明の優先度変更の可否を説明する図
である。
【図16】 この発明の実施例の流れ図である。
【図17】 この発明のメモリ装置の変更例を示すブロ
ック図である。
【図18】 この発明の実施例の流れ図である。
【図19】 この発明のタイミング検出部の判断タイミ
ングを示す図である。
【図20】 この発明の一実施例によるディスクキャッ
シュメモリの第2サイクルの他の例を示す図である。
【図21】 この発明のスタックを用いたメモリ装置の
例を示す図である。
【図22】 この発明の逆転メモリを用いたメモリ装置
の例を示す図である。
【図23】 従来のメモリ装置の構成を示すブロック図
である。
【図24】 従来のディスクキャッシュメモリの動作を
示す図である。
【符号の説明】
1a〜1d メモリ装置、2 ディスクキャッシュ、3
キャッシュ管理情報、4 順方向/逆方向のポイン
タ、5 ディスクキャッシュへのポインタ、6ディスク
格納位置のポインタ、7 逆方向/順方向のポインタ、
10 キャッシュメモリ、20 優先度付け手段、30
優先度変更手段、35 逆転手段、40 消去手段、
50 メモリ制御部、60 タイミング検出部、70
優先度変更モード記憶部、90 ディスク装置、150
メモリ制御部、D0〜D9 データ、FP 先頭ポイ
ンタ、BP 末尾ポインタ。
フロントページの続き (56)参考文献 特開 平2−103633(JP,A) 特開 平5−46668(JP,A) 特開 昭62−120556(JP,A) 特開 昭62−285160(JP,A) 特開 昭53−87630(JP,A) 特開 昭59−22281(JP,A) 特開 昭63−8851(JP,A) 特開 昭61−80440(JP,A) 特開 平2−64832(JP,A) 特開 平3−37746(JP,A) 特開 昭62−106557(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 12/08 - 12/12 G06F 12/00 - 12/00 549 G06F 17/30

Claims (8)

    (57)【特許請求の範囲】
  1. 【請求項1】 データを入力して記憶するメモリと、 上記メモリに記憶したデータがアクセスされた順序の新
    旧を上記データの優先度とする優先度付け手段であっ
    て、最も最近アクセスされたデータを先頭ポインタでポ
    イントして優先度の高いデータとし、最も古くアクセス
    されたデータを末尾ポインタでポイントして優先度の低
    いデータとするとともに、 上記先頭ポインタでポイントされるデータから上記末尾
    ポインタでポイントされるデータに向かって最も最近ア
    クセスされた順(優先度の高い順)に次のデータをポイ
    ントしてチェーンする順方向のポインタと、上記末尾ポ
    インタでポイントされるデータから上記先頭ポインタで
    ポイントされるデータに向かって最も古くアクセスされ
    た順(優先度の低い順)に次のデータをポイントしてチ
    ェーンする逆方向のポインタとを上記各データに付与し
    て優先度を付す優先度付け手段と、 所定のタイミングで、上記先頭ポインタと上記末尾ポイ
    ンタとがそれぞれポイントしているデータとは異なるデ
    ータをポイントするように上記先頭ポインタと上記末尾
    ポインタとをそれぞれ付け替えることにより上記各デー
    タに付された優先度を変更する優先度変更手段と、 上記各データに付された優先度を変更するタイミングを
    検出するタイミング検出部と、 上記メモリに記憶したデータを優先度の低いデータから
    消去する消去手段を備え、 上記優先度変更手段は、上記先頭ポインタでポイントさ
    れるデータを末尾ポインタでポイントさせて該データを
    優先度の高いデータから低いデータに変更し、上記末尾
    ポインタでポイントされるデータを先頭ポインタでポイ
    ントさせて該データを優先度の低いデータから高いデー
    タに変更し、上記順方向のポインタを逆方向ポインタと
    して作用させ、上記逆方向のポインタを順方向のポイン
    タとして作用させて上記データの優先度を逆転させるポ
    インタ逆転手段を備え、 上記タイミング検出部は、データを検索するデータ検索
    コマンドとして、SQL(Structured Qu
    ery Language)で記述されたコマンドを入
    力して解析し、解析したデータ検索コマンドが直前のコ
    マンドのアクセスしたテーブルと同じテーブルに対する
    全件参照用のコマンドである場合に優先度を変更する時
    期であると判定してタイミングを検出し、 上記ポインタ逆転手段は、上記タイミング検出部が検出
    したタイミングを参照して上記データの優先度を逆転す
    ることを特徴とするメモリ装置。
  2. 【請求項2】 データを入力して記憶するメモリと、 上記メモリに記憶したデータがアクセスされた順序の新
    旧を上記データの優先度とする優先度付け手段であっ
    て、最も最近アクセスされたデータを先頭ポインタでポ
    イントして優先度の高いデータとし、最も古くアクセス
    されたデータを末尾ポインタでポイントして優先度の低
    いデータとするとともに、 上記先頭ポインタでポイントされるデータから上記末尾
    ポインタでポイントされるデータに向かって最も最近ア
    クセスされた順(優先度の高い順)に次のデータをポイ
    ントしてチェーンする順方向のポインタと、上記末尾ポ
    インタでポイントされるデータから上記先頭ポインタで
    ポイントされるデータに向かって最も古くアクセスされ
    た順(優先度の低い順)に次のデータをポイントしてチ
    ェーンする逆方向のポインタとを上記各データに付与し
    て優先度を付す優先度付け手段と、 所定のタイミングで、上記先頭ポインタと上記末尾ポイ
    ンタとがそれぞれポイントしているデータとは異なるデ
    ータをポイントするように上記先頭ポインタと上記末尾
    ポインタとをそれぞれ付け替えることにより上記各デー
    タに付された優先度を変更する優先度変更手段と、 上記各データに付された優先度を変更するタイミングを
    検出するタイミング検出部と、 上記メモリに記憶したデータを優先度の低いデータから
    消去する消去手段を備え、上記優先度変更手段は、 上記順方向のポインタによりチ
    ェーンされる方向と上記逆方向のポインタによりチェー
    ンされる方向とのいずれかひとつの方向に沿って上記先
    頭ポインタのポイントするデータの位置をシフトさせて
    新たなデータを上記先頭ポインタでポイントして該デー
    タを優先度の高いデータとし、上記先頭ポインタのポイ
    ントするデータの位置のシフトに対応させて上記末尾ポ
    インタのポイントするデータの位置をシフトさせて新た
    なデータを上記末尾ポインタでポイントして該データを
    優先度の低いデータとするとともに、上記先頭ポインタ
    でポイントされるデータから上記末尾ポインタでポイン
    トされるデータに向かって優先度の高い順に次のデータ
    をポイントしてチェーンする順方向のポインタと、上記
    末尾ポインタがポイントするデータから上記先頭ポイン
    タがポイントするデータに向かって優先度の低い順に次
    のデータをポイントしてチェーンする逆方向のポインタ
    とを上記各データに付与して優先度を変更するポインタ
    シフト手段を備え、 上記タイミング検出部は、データを検索するデータ検索
    コマンドとして、SQL(Structured Qu
    ery Language)で記述されたコマンドを入
    力して解析し、解析したデータ検索コマンドが直前のコ
    マンドのアクセスしたテーブルと同じテーブルに対する
    全件参照用のコマンドである場合に優先度を変更する時
    期であると判定してタイミングを検出し、 上記ポインタシフト手段は、上記タイミング検出部が検
    出したタイミングを参照して上記データの優先度を変更
    することを特徴とするメモリ装置。
  3. 【請求項3】 上記メモリは、ディスクキャッシュメモ
    リであることを特徴とする請求項1、2いずれかに記載
    のメモリ装置。
  4. 【請求項4】 上記メモリ装置は、上記優先度変更手段
    の動作の可否を設定する動作設定手段を備えたことを特
    徴とする請求項1、2いずれかに記載のメモリ装置。
  5. 【請求項5】 データを順に入力し所定の優先度アルゴ
    リズムに基づいて入力したデータに優先度を付してメモ
    リに記憶するとともに、上記メモリに記憶したデータを
    優先度の低いデータから消去するメモリ管理方法におい
    て、 上記メモリに記憶したデータがアクセスされた順序の新
    旧を上記データの優先度とし、最も最近アクセスされた
    データを先頭ポインタでポイントして優先度の高いデー
    タとし、最も古くアクセスされたデータを末尾ポインタ
    でポイントして優先度の低いデータとするとともに、 上記先頭ポインタでポイントされるデータから上記末尾
    ポインタでポイントが付与されるデータに向かって最も
    最近アクセスされた順(優先度の高い順)に次のデータ
    をポイントしてチェーンする順方向のポインタと、上記
    末尾ポインタがポイントするデータから上記先頭ポイン
    タがポイントするデータに向かって最も古くアクセスさ
    れた順(優先度の低い順)に次のデータをポイントして
    チェーンする逆方向のポインタとを上記各データに付与
    して優先度ポインタでチェーンさせることによりデータ
    を順序付けて優先度付けを行なう優先度付け工程と、 所定のタイミングで、上記先頭ポインタと上記末尾ポイ
    ンタとがそれぞれポイントしているデータとは異なるデ
    ータをポイントするように上記先頭ポインタと上記末尾
    ポインタとをそれぞれ付け替えることにより上記各デー
    タに付された優先度を変更する優先度変更工程と、 上記メモリに記憶したデータの優先度を変更する時期を
    検出する変更時期検出工程と、 上記メモリに記憶したデータの優先度の変更の必要性を
    検出する必要性検出工程とを有し、 上記変更時期検出工程は、データを検索するデータ検索
    コマンドを解析しデータ検索コマンドが直前のコマンド
    のアクセスしたテーブルと同じテーブルに対する全件参
    照用のコマンドである場合に優先度を変更する時期であ
    ると判定することによって優先度を変更する時期を検出
    するタイミング検出工程を有し、 上記優先度変更工程は、上記タイミング検出工程により
    優先度を変更する時期であると判定され、かつ、上記必
    要性検出工程により優先度の変更の必要性があると判定
    された場合に、上記先頭ポインタでポイントされるデー
    タを末尾ポインタでポイントさせて該データを優先度の
    高いデータから低いデータに変更し、上記末尾ポインタ
    でポイントされるデータを先頭ポインタでポイントさせ
    て該データを優先度の低いデータから高いデータに変更
    し、上記順方向のポインタを逆方向ポインタとして作用
    させ、上記逆方向のポインタを順方向のポインタとして
    作用させて上記データの優先度を逆転させるポインタ逆
    転工程を有することを特徴とするメモリ管理方法。
  6. 【請求項6】 データを順に入力し所定の優先度アルゴ
    リズムに基づいて入力したデータに優先度を付してメモ
    リに記憶するとともに、上記メモリに記憶したデータを
    優先度の低いデータから消去するメモリ管理方法におい
    て、 上記メモリに記憶したデータがアクセスされた順序の新
    旧を上記データの優先度とし、最も最近アクセスされた
    データを先頭ポインタでポイントして優先度の高いデー
    タとし、最も古くアクセスされたデータを末尾ポインタ
    でポイントして優先度の低いデータとするとともに、 上記先頭ポインタでポイントされるデータから上記末尾
    ポインタでポイントが付与されるデータに向かって最も
    最近アクセスされた順(優先度の高い順)に次のデータ
    をポイントしてチェーンする順方向のポインタと、上記
    末尾ポインタがポイントするデータから上記先頭ポイン
    タがポイントするデータに向かって最も古くアクセスさ
    れた順(優先度の低い順)に次のデータをポイントして
    チェーンする逆方向のポインタとを上記各データに付与
    して優先度ポインタでチェーンさせることによりデータ
    を順序付けて優先度付けを行なう優先度付け工程と、 所定のタイミングで、上記先頭ポインタと上記末尾ポイ
    ンタとがそれぞれポイントしているデータとは異なるデ
    ータをポイントするように上記先頭ポインタと上記末尾
    ポインタとをそれぞれ付け替えることにより上記各デー
    タに付された優先度を変更する優先度変更工程と、 上記メモリに記憶したデータの優先度を変更する時期を
    検出する変更時期検出工程と、 上記メモリに記憶したデータの優先度の変更の必要性を
    検出する必要性検出工程とを有し、 上記変更時期検出工程は、データを検索するデータ検索
    コマンドを解析しデータ検索コマンドが直前のコマンド
    のアクセスしたテーブルと同じテーブルに対する全件参
    照用のコマンドである場合に優先度を変更する時期であ
    ると判定することによって優先度を変更する時期を検出
    するタイミング検出工程を有し、 上記優先度変更工程は、上記タイミング検出工程により
    優先度を変更する時期であると判定され、かつ、上記必
    要性検出工程により優先度の変更の必要性があると判定
    された場合に、上記順方向のポインタによりチェーンさ
    れる方向と上記逆方向のポインタによりチェーンされる
    方向とのいずれかひとつの方向に沿って上記先頭ポイン
    タのポイントするデータの位置をシフトさせて新たなデ
    ータを上記先頭ポインタでポイントして該データを優先
    度の高いデータとし、上記先頭ポインタのポイントする
    データの位置のシフトに対応させて上記末尾ポインタの
    ポイントするデータの位置をシフトさせて新たなデータ
    を上記末尾ポインタでポイントして該データを優先度の
    低いデータとするとともに、上記先頭ポインタでポイン
    トされるデータから上記末尾ポインタでポイントされる
    データに向かって優先度の高い順に次のデータをポイン
    トしてチェーンする順方向のポインタと、上記末尾ポイ
    ンタがポイントするデータから上記先頭ポインタがポイ
    ントするデータに向かって優先度の低い順に次のデータ
    をポイントしてチェーンする逆方向のポインタとを上記
    各データに付与して優先度を変更するポインタシフト工
    程を有することを特徴とするメモリ管理方法。
  7. 【請求項7】 上記必要性検出工程は、メモリに記憶し
    たデータのアクセス結果を記憶するアクセス記憶工程
    と、記憶したアクセス結果に基づいて優先度変更の必要
    性を判定する判定工程を有し、 上記判定工程は、上記アクセス結果からヒット率を求
    め、ヒット率が所定のしきい値以下である場合に、優先
    度変更が必要であると判定する工程を備えたことを特徴
    とする請求項5、6いずれかに記載のメモリ管理方法。
  8. 【請求項8】 上記必要性検出工程は、メモリに記憶し
    たデータのアクセス結果を記憶するアクセス記憶工程
    と、記憶したアクセス結果に基づいて優先度変更の必要
    性を判定する判定工程を有し、 上記判定工程は、上記アクセス結果から連続した非ヒッ
    ト回数を求め、連続した非ヒット回数が所定のしきい値
    以上である場合に、優先度変更が必要であると判定する
    工程を備えたことを特徴とする請求項5、6いずれかに
    記載のメモリ管理方法。
JP21384294A 1994-03-10 1994-09-07 メモリ装置及びメモリ管理方法 Expired - Fee Related JP3169511B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP21384294A JP3169511B2 (ja) 1994-03-10 1994-09-07 メモリ装置及びメモリ管理方法
US08/351,712 US5881266A (en) 1994-03-10 1994-12-08 Priority-based memory management method and apparatus

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP6-39905 1994-03-10
JP3990594 1994-03-10
JP21384294A JP3169511B2 (ja) 1994-03-10 1994-09-07 メモリ装置及びメモリ管理方法

Publications (2)

Publication Number Publication Date
JPH07302224A JPH07302224A (ja) 1995-11-14
JP3169511B2 true JP3169511B2 (ja) 2001-05-28

Family

ID=26379308

Family Applications (1)

Application Number Title Priority Date Filing Date
JP21384294A Expired - Fee Related JP3169511B2 (ja) 1994-03-10 1994-09-07 メモリ装置及びメモリ管理方法

Country Status (2)

Country Link
US (1) US5881266A (ja)
JP (1) JP3169511B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220149979A1 (en) * 2019-07-26 2022-05-12 Huawei Technologies Co., Ltd. Data Transmission Method and Apparatus

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2312444A1 (en) * 2000-06-20 2001-12-20 Ibm Canada Limited-Ibm Canada Limitee Memory management of data buffers incorporating hierarchical victim selection
JP2002358060A (ja) * 2001-06-01 2002-12-13 Seiko Epson Corp 表示制御システム、表示サービス提供システム及び表示制御プログラム、並びに表示制御方法
JP2003015620A (ja) * 2001-06-29 2003-01-17 Seiko Epson Corp 表示制御システム、表示機器及び表示制御プログラム、並びに表示制御方法
US7120751B1 (en) * 2002-08-09 2006-10-10 Networks Appliance, Inc. Dynamic streaming buffer cache algorithm selection
JP4066833B2 (ja) * 2003-02-18 2008-03-26 日本電気株式会社 ディスクアレイ制御装置及び方法並びにディスクアレイ制御プログラム
JP2007310608A (ja) * 2006-05-18 2007-11-29 Fuji Xerox Co Ltd データ処理装置、データ処理方法およびデータ処理プログラム
US8856080B2 (en) * 2009-10-30 2014-10-07 Microsoft Corporation Backup using metadata virtual hard drive and differential virtual hard drive
JP5491282B2 (ja) * 2010-05-26 2014-05-14 日本電信電話株式会社 データ入出力装置、データ記憶方法及びプログラム
US10725782B2 (en) 2017-09-12 2020-07-28 Qualcomm Incorporated Providing variable interpretation of usefulness indicators for memory tables in processor-based systems
JP7431070B2 (ja) * 2020-03-13 2024-02-14 横河電機株式会社 データ管理システム、および、データ管理方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62106557A (ja) * 1985-11-01 1987-05-18 Alps Electric Co Ltd デイスクキヤツシユ制御方式
JPS634356A (ja) * 1986-06-25 1988-01-09 Hitachi Ltd デイスクキヤツシユ順次モ−ド共用処理方式
US5253351A (en) * 1988-08-11 1993-10-12 Hitachi, Ltd. Memory controller with a cache memory and control method of cache memory including steps of determining memory access threshold values
JP2834189B2 (ja) * 1989-07-05 1998-12-09 株式会社日立製作所 入出力制御方法
US5305389A (en) * 1991-08-30 1994-04-19 Digital Equipment Corporation Predictive cache system
JP3499252B2 (ja) * 1993-03-19 2004-02-23 株式会社ルネサステクノロジ コンパイル装置及びデータ処理装置
US5452440A (en) * 1993-07-16 1995-09-19 Zitel Corporation Method and structure for evaluating and enhancing the performance of cache memory systems

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220149979A1 (en) * 2019-07-26 2022-05-12 Huawei Technologies Co., Ltd. Data Transmission Method and Apparatus
US12003319B2 (en) * 2019-07-26 2024-06-04 Huawei Technologies Co., Ltd. Data transmission method and apparatus

Also Published As

Publication number Publication date
JPH07302224A (ja) 1995-11-14
US5881266A (en) 1999-03-09

Similar Documents

Publication Publication Date Title
EP1654660B1 (en) A method of data caching
US5778430A (en) Method and apparatus for computer disk cache management
JP2637290B2 (ja) キャッシュ管理を動的に制御するためのシステム及び方法
JP3309425B2 (ja) キャッシュ制御装置
US6260115B1 (en) Sequential detection and prestaging methods for a disk storage subsystem
JP4445160B2 (ja) イベント計測装置および方法並びにイベント計測プログラムおよび同プログラムを記録したコンピュータ読取可能な記録媒体並びにプロセッサシステム
US8825959B1 (en) Method and apparatus for using data access time prediction for improving data buffering policies
JPH0564814B2 (ja)
JP3169511B2 (ja) メモリ装置及びメモリ管理方法
US6427184B1 (en) Disk drive with prefetch and writeback algorithm for sequential and nearly sequential input/output streams
US6457097B1 (en) Information processing system and recording medium recording a program to cause a computer to execute steps
US8275802B2 (en) Optimized least recently used lookup cache
US20030074525A1 (en) Cache control program and computer for performing cache processes
US5581726A (en) Control system for controlling cache storage unit by using a non-volatile memory
Chai et al. LDC: a lower-level driven compaction method to optimize SSD-oriented key-value stores
US20050165765A1 (en) Information search system, information search method, information search apparatus, and recording medium to which information search program, is recorded and which can be read by computer
US20090157621A1 (en) Search device, search method and search program
JP2017162194A (ja) データ管理プログラム、データ管理装置、及びデータ管理方法
JPS59220853A (ja) デイスクキヤツシユシステム
JPS60214060A (ja) 外部記憶キヤツシユ制御方式
JPH0773107A (ja) ディスク・システムの制御方法
US5717918A (en) Method for concurrently performing a physical sequential scan of a database into a database buffer which is queued until a preceding scan is completed
JP2008299672A (ja) 計算機システム及びこれを用いたデータベース管理方法
JP3275833B2 (ja) 磁気ディスク処理装置
RU2818670C1 (ru) Способ и устройство кэширования блоков данных

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20040520

LAPS Cancellation because of no payment of annual fees