JPH04340637A - キャッシュ制御方式 - Google Patents

キャッシュ制御方式

Info

Publication number
JPH04340637A
JPH04340637A JP3112946A JP11294691A JPH04340637A JP H04340637 A JPH04340637 A JP H04340637A JP 3112946 A JP3112946 A JP 3112946A JP 11294691 A JP11294691 A JP 11294691A JP H04340637 A JPH04340637 A JP H04340637A
Authority
JP
Japan
Prior art keywords
data
cache memory
block
read
access
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
JP3112946A
Other languages
English (en)
Inventor
Kazuyuki Kaneko
金子 和行
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 JP3112946A priority Critical patent/JPH04340637A/ja
Priority to EP92108149A priority patent/EP0513784A1/en
Priority to CA 2068807 priority patent/CA2068807A1/en
Publication of JPH04340637A publication Critical patent/JPH04340637A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6026Prefetching based on access pattern detection, e.g. stride based prefetch

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】
【従来の技術】図5はディスクキャッシュを持つディス
クサブシステムの構成であり、1はCPU、2はディス
ク装置、3はCPU1からのコマンドを受けて、ディス
ク装置2にアクセスし、データをCPUに送るディスク
制御装置、4はディスク制御装置3内に存在するキャッ
シュメモリ、5はキャッシュメモリ4を管理するための
テーブルである。
【0003】次に動作について説明する。CPU1から
ディスク装置2に対する読み出し指令を受け取ったディ
スク制御装置3は、テーブル5を参照し、読み出すべき
データがキャッシュメモリ4に存在するかどうか調べ、
存在しない場合には、ディスク装置2をアクセスしてデ
ータを読み出してCPU1に転送するとともに、キャッ
シュメモリ4に格納する。また、データがキャッシュメ
モリ4中に存在する場合にはディスク装置2をアクセス
することなくキャッシュメモリ4からCPU1にデータ
を転送する。
【0004】ディスク装置2からの読み出しには機械的
動作を併なうため、データの読み出しには数十ms程度
要するが、キャッシュメモリ4からの読み出しはほとん
ど瞬時に行なうことができる。
【0005】このように、キャッシュメモリ4を用いる
ことによって、ディスク装置2へのアクセスを見かけ上
昇することができる。
【0006】しかし、キャッシュメモリ4の容量は限ら
れているため、アクセスされたデータがキャッシュメモ
リ4中に存在する確率(ヒット率)を高くするためには
、次にアクセスされそうなデータをキャッシュメモリ4
中に残しておくことが望ましい。
【0007】しかし、一般にアクセスされそうなデータ
を予想することは困難であるため、最も近い過去にアク
セスされたデータが最もアクセスされやすいとするいわ
ゆるLRUアルゴリズムが一般に用いられている。
【0008】また、たとえば、特開昭63−4356号
公報に開示された技術のように、シーケンシャルアクセ
スの場合、連続する領域が続けてアクセスされるため、
ある領域をアクセスした際に、その先の領域もまとめて
先読みしておくと効果的であるため、CPU1はシーケ
ンシャルモードを設定して、ディスク制御装置3に読み
出し要求を出し、これを受けたディスク制御装置3は、
ディスク装置2からデータを読み出してCPU1に転送
した後も、ディスク装置2からデータを読み出してキャ
ッシュメモリ4に格納しておくことにより、連続する領
域のアクセスに対するヒット率を向上させることができ
る。
【0009】
【発明が解決しようとする課題】しかし、この方式はデ
ィスクアクセスの際にあらかじめアクセスモードを設定
しなければならないため、S/Wインタフェースを変更
しなければならず、従来のシステム(プログラム)には
シーケンシャルアクセスに対して効率のよいディスクキ
ャッシュを組み込むことが出来ないという問題があった
【0010】この発明は上記のような問題点を解消する
ためになされたもので、ディスク制御装置3がシーケン
シャルアクセスを検出することにより、従来のS/Wイ
ンタフェースを変更することなく、シーケンシャルアク
セスに対するキャッシュヒット率を向上させることが出
来、かつキャッシュメモリを有効に活用出来るキャッシ
ュ制御方式を提供することを目的とする。
【0011】
【課題を解決するための手段】第1の発明に係るキャッ
シュ制御方式は、以下の要素を有するものである。 (a)外部記憶装置のデータを一時保管するキャッシュ
メモリ、(b)データの転送要求に対して、外部記憶装
置とキャッシュメモリのいずれかからデータを転送する
転送手段、(c)データの転送要求が順次アクセスか否
かを判定するアクセスモード判定手段、(d)アクセス
モード判定手段によりデータの転送要求が順次アクセス
であると判定されたとき外部記憶装置から所定量のデー
タをキャッシュメモリに先読みする先読み手段。
【0012】第2の発明に係るキャッシュ制御方式は、
以下の工程を有するものである。 (a)データをキャッシュメモリか外部記憶装置から転
送する転送工程、(b)少なくとも、転送工程により外
部記憶装置からデータが転送される場合、及び、あらか
じめ先読みされたデータのうち所定のデータが転送され
た場合のいずれかの場合、外部記憶装置からデータを先
読みする先読み工程、(c)転送されたデータが先読み
工程で先読みされたデータかそれ以外かにより、そのデ
ータのキャッシュメモリ内での保持優先順位を変更する
リンク工程。
【0013】
【作用】第1の発明におけるアクセスモード判定手段は
データ転送要素が順次アクセスか否かを判断し、順次ア
クセスモードの場合は先読み手段が外部記憶装置からデ
ータをキャッシュメモリに先読みするので、順次アクセ
スに対してのヒット率を高めることができる。
【0014】第2の発明における先読み工程は、外部記
憶装置にアクセスする際に先読みを行なっておき、その
後先読みしたデータに対してアクセスがなされた場合に
は、まとめて次の先読みを行なう。また、リンク工程は
この先読みしたデータが格納されたキャッシュのブロッ
クを使用後に優先的に解放するので、ヒット率を高める
ことができるとともに一度アクセスされたブロックを直
ちに解放するため、他のデータがこのブロックを利用可
能となる。
【0015】
【実施例】
実施例1.以下、この発明の一実施例を図について説明
する。図1において、1〜5は従来例で説明したものと
同様であり、31はCPU1からのデータ転送要求に対
してディスク2とキャッシュメモリ4のいずれかからデ
ータを転送する転送手段、32は管理テーブルの各ブロ
ックの生成変更解放を行なう管理手段、33はCPU1
からのデータ転送要求がシーケンシャルアクセスか否か
を判定するアクセスモード判定手段、34はCPU1か
らのアクセスがシーケンシャルアクセスの場合にディス
ク2からデータを先読みする先読み手段である。
【0016】図2はキャッシュの管理テーブル5の詳細
であり、キャッシュの管理単位であるブロックと1対1
に対応している。8はキャッシュメモリに保持している
データをブロックとして管理するためのブロックアドレ
ス、9と10は前方及び後方ポインタでLRUを実現す
るためのリンクを構成するものであり、7は先読みされ
たデータに対してセットされるP(Prefetche
d)フラグである。6は先読みされたデータのうち、そ
れ以後のブロックが先読みされていないブロックに対し
てのみセットされるL(Last)フラグである。
【0017】簡単のため、CPU1からの読み出し要求
はすべてキャッシュのブロックサイズ単位で行なわれる
ものとして、図3のフローチャートに従って動作を説明
する。図3において、11は転送工程、12はリンク工
程、13は先読み工程である。
【0018】ディスク制御装置2にCPU1から読み出
し要求があった際に、転送手段31はキャッシュメモリ
4にデータがあるかどうかを判定し(ステップ1)、ヒ
ットした場合にはキャッシュメモリ4からデータを転送
させる(ステップ2)。
【0019】この時、管理手段32は、LRUリンクを
更新するが、Pフラグを調べ(ステップ3)、Pフラグ
がセットされていない場合はランダムアクセスのデータ
とみなしてこのブロックをリンクの先頭とする(ステッ
プ4)。Pフラグがセットされている場合には、このデ
ータはシーケンシャルアクセスによりアクセスされたデ
ータとみなしてリンクの最後尾とする(ステップ5)。 最後尾とすることにより、キャッシュメモリ4が満杯に
なってキャッシュメモリのブロックを古い順に消す際の
最初に消されるデータとなる。
【0020】次にアクセスモード判定手段33は、この
ブロックのLフラグがセットされているかを調べ(ステ
ップ6)、セットされている場合には、シーケンシャル
アクセスが行なわれていると判断する。先読み手段34
はまずこのブロックのLフラグをクリアした後、数ブロ
ックまとめて先読みを行ない、すべての先読みしたブロ
ックのPフラグをセットする。そして最後に先読みした
ブロックのみLフラグをセットする(ステップ7〜8)
。これにより次回以降のシーケンシャルアクセスをヒッ
トさせることができる。
【0021】なお、転送手段31はステップ1でミスヒ
ットだった場合には、ディスクから転送する(ステップ
9)が、この時は管理手段32がこのブロックをLRU
リンクの先頭とするとともに(ステップ10)、先読み
手段34が1ブロックだけの先読みを行ない、P,Lフ
ラグを共にセットする(ステップ11,12)。
【0022】次に、この動作の具体例を図4をもとに説
明する。簡単のためにキャッシュメモリ4の保持できる
最大ブロック数は3とし、動作開始時にキャッシュメモ
リ4は未使用であるものとし、動作開始時からシーケン
シャルアクセスをする場合について説明する。
【0023】まず、CPU1がディスク制御装置3にシ
ーケンシャルアクセスの先頭のデータの転送要求をだす
と、ステップ1,9によりディスク2からデータがCP
U1に転送され、ステップ10によりこれをブロック1
としてキャッシュメモリ4と管理テーブル5に保持する
。図4(a)はこの時の管理テーブルの状態を示してい
る。次にステップ11,12によりブロック2が先読み
され、P=1,L=1として図4(b)のように保持さ
れる。
【0024】続いてCPU1がブロック2の転送要求を
出すと、ステップ1,2によりブロック2に保持したデ
ータがキャッシュメモリ4からCPU1に転送される。 ステップ3,4によりこのブロック2は図4(c)に示
すようにLRUリンクの最後尾にリンク付けられる。
【0025】次に、ステップ6,7,8によりブロック
2のL=1のため、次の2ブロックが先読みされ、ブロ
ック3とブロック4がキャッシュメモリ4と管理テーブ
ル5に保持される。ブロック3はP=1,L=0となる
が、ブロック4はP=1,L=1となる。また、このと
き、キャッシュメモリ4に保持できる最大ブロック数=
3なので、ブロック3とブロック4を保持するためにL
RUリンクの最後尾のブロック、すなわちブロック2が
消される。こうして図4(d)に示す状態になる。
【0026】次にCPU1が再び次のデータ転送要求を
出すとステップ1,2によりブロック3が転送され、ス
テップ3,5により図4(e)に示すようにブロック3
がLRUリンクの最後尾になる。そしてステップ6によ
りブロック3はL=0なのでなにもしないでENDに抜
ける。
【0027】次にCPU1が次のデータ転送要求を出す
とステップ1,2によりブロック4が転送され、ステッ
プ3,5により図4(f)に示すようにブロック4がL
RUリンクの最後尾になる。ステップ6ではブロック4
のL=1なので次の2ブロックを先読みし、ブロック5
のP=1,L=0、ブロック6のP=1,L=1として
保持する。このときキャッシュメモリ4は満杯なのでブ
ロック3と4は消される。こうして図4(g)に示す状
態になる。
【0028】もし、ここでCPU1がシーケンシャルア
クセスをやめ連続しないデータをアクセスしようとする
と、このデータがキャッシュメモリ4にあればステップ
1,2,3,4,6を経由した処理が行なわれ、ディス
ク2にあれば、ステップ1,9,10,11,12を経
由した処理が行なわれる。
【0029】この具体例でわかるようにLフラグとPフ
ラグともシーケンシャルアクセスを判定するためのフラ
グとして用いられているがLフラグは先読みするか否か
を判定するフラグであり、Pフラグはそのデータが先読
みされたデータであることを判定するフラグであり、同
時にそのデータを使用後にキャッシュメモリから消して
もよいかの判定に用いるフラグである。
【0030】以上のように、この実施例では、ディスク
キャッシュシステムにおいて、キャッシュミスの場合に
、ステージングを行なう際に一定量のデータの先読みを
行なっておき、先読みを行った最後のデータにはフラグ
をセットしておき、このフラグがセットされたデータに
ヒットした場合には、シーケンシャルアクセスが行なわ
れていると判定してさらに、まとめて先読みを行なうこ
とを特徴としたディスクキャッシュ制御方式を説明した
【0031】また、先読みしたすべてのデータにはフラ
グをセットしておき、このフラグがセットされたブロッ
クにヒットした場合には、シーケンシャルアクセスが行
なわれていると判定して、このブロックを次回の追い出
し対象とする事を特徴とするディスクキャッシュ制御方
式を説明した。
【0032】実施例2.なお、上記実施例では、先読み
した最後のブロックにLフラグをセットするものとした
が、1ブロックあるいは数ブロック手前にフラグをセッ
トしておき、このブロックにヒットした場合には、1ブ
ロックあるいは数ブロック先から先読みを行なわせても
よい。
【0033】実施例3.また、上記実施例では先読みし
たデータのLフラグとPフラグをセットすることにより
アクセスモード判定手段がシーケンシャルアクセスを判
定していたが、両フラグがある必要はなく一方だけでも
よい。特に第1の発明に係るディスク制御方式にはLフ
ラグのみあればよい。
【0034】実施例4.また、上記実施例ではアクセス
モード判定手段がフラグを用いてシーケンシャルアクセ
スか否かを判定する場合を示したが、他の方法でシーケ
ンシャルアクセスを判定する場合でもよい。たとえば、
以前にアクセスしたデータのアドレスを記憶しておき、
今回アクセスしたデータのアドレスと比較することによ
りシーケンシャルアクセスか否かを判定してもよい。こ
のように、アクセスモード判定手段は既存のシステムソ
フトウェアの改修を一切行なわずに自動的にシーケンシ
ャルアクセスか否かを判定するところに特徴がある。
【0035】
【発明の効果】以上のように、第1,第2の発明によれ
ば、シーケンシャルアクセスを検出し、検出した場合に
は先読みを行なうとしたので、シーケンシャルアクセス
時のヒット率が向上するという効果がある。
【0036】さらに第2の発明によれば、先読みしたブ
ロックにヒットした場合には直ちにこのブロックを解放
するため、他のデータをこのブロックに格納でき、キャ
ッシュメモリを有効に活用することができる。
【図面の簡単な説明】
【図1】本発明によるキャッシュ制御方式のブロック図
【図2】本発明による管理テーブルの構成を示す図。
【図3】本発明による動作を示すフローチャート図。
【図4】本発明の具体例を示す図。
【図5】キャッシュメモリを備えた従来のディスクサブ
システムの図。
【符号の説明】
1  CPU 2  ディスク装置 3  ディスク制御装置 4  キャッシュメモリ 5  管理テーブル 6  Lフラグ 7  Pフラグ 8  ブロックのアドレス 9  前方ポインタ 10  後方ポインタ 11  転送工程 12  リンク工程 13  先読み工程 31  転送手段 32  管理手段 33  アクセスモード判定手段 34  先読み手段

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】  以下の要素を有するキャッシュ制御方
    式(a)外部記憶装置のデータを一時保管するキャッシ
    ュメモリ、(b)データの転送要求に対して、外部記憶
    装置とキャッシュメモリのいずれかからデータを転送す
    る転送手段、(c)データの転送要求が順次アクセスか
    否かを判定するアクセスモード判定手段、(d)アクセ
    スモード判定手段によりデータの転送要求が順次アクセ
    スであると判定されたとき外部記憶装置から所定量のデ
    ータをキャッシュメモリに先読みする先読み手段。
  2. 【請求項2】  以下の工程を有するキャッシュ制御方
    式(a)データをキャッシュメモリか外部記憶装置から
    転送する転送工程、(b)少なくとも、転送工程により
    外部記憶装置からデータが転送される場合、及び、あら
    かじめ先読みされたデータのうち所定のデータが転送さ
    れた場合のいずれかの場合、外部記憶装置からデータを
    先読みする先読み工程、(c)転送されたデータが先読
    み工程で先読みされたデータかそれ以外かにより、その
    データのキャッシュメモリ内での保持優先順位を変更す
    るリンク工程。
JP3112946A 1991-05-17 1991-05-17 キャッシュ制御方式 Pending JPH04340637A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP3112946A JPH04340637A (ja) 1991-05-17 1991-05-17 キャッシュ制御方式
EP92108149A EP0513784A1 (en) 1991-05-17 1992-05-14 Cache control system
CA 2068807 CA2068807A1 (en) 1991-05-17 1992-05-15 Cache control system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3112946A JPH04340637A (ja) 1991-05-17 1991-05-17 キャッシュ制御方式

Publications (1)

Publication Number Publication Date
JPH04340637A true JPH04340637A (ja) 1992-11-27

Family

ID=14599478

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3112946A Pending JPH04340637A (ja) 1991-05-17 1991-05-17 キャッシュ制御方式

Country Status (3)

Country Link
EP (1) EP0513784A1 (ja)
JP (1) JPH04340637A (ja)
CA (1) CA2068807A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011514593A (ja) * 2008-06-25 2011-05-06 インテル・コーポレーション キャッシュ利用に関する装置および方法
US8006040B2 (en) * 2006-03-13 2011-08-23 Kabushiki Kaisha Toshiba Data storage device and method thereof
US8671246B2 (en) 2007-01-30 2014-03-11 Fujitsu Limited Information processing system and information processing method

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5381539A (en) * 1992-06-04 1995-01-10 Emc Corporation System and method for dynamically controlling cache management

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS648458A (en) * 1987-06-22 1989-01-12 Ibm Prefetching of line sequentially to cache memory of computer from main memory
US4882642A (en) * 1987-07-02 1989-11-21 International Business Machines Corporation Sequentially processing data in a cached data storage system

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8006040B2 (en) * 2006-03-13 2011-08-23 Kabushiki Kaisha Toshiba Data storage device and method thereof
US8671246B2 (en) 2007-01-30 2014-03-11 Fujitsu Limited Information processing system and information processing method
JP2011514593A (ja) * 2008-06-25 2011-05-06 インテル・コーポレーション キャッシュ利用に関する装置および方法
US8433854B2 (en) 2008-06-25 2013-04-30 Intel Corporation Apparatus and method for cache utilization
JP2013178818A (ja) * 2008-06-25 2013-09-09 Intel Corp キャッシュ利用に関する装置および方法

Also Published As

Publication number Publication date
CA2068807A1 (en) 1992-11-18
EP0513784A1 (en) 1992-11-19

Similar Documents

Publication Publication Date Title
EP4664301A2 (en) Computer memory expansion device and method of operation
US7917701B2 (en) Cache circuitry, data processing apparatus and method for prefetching data by selecting one of a first prefetch linefill operation and a second prefetch linefill operation
JP3289661B2 (ja) キャッシュメモリシステム
US20030212865A1 (en) Method and apparatus for flushing write cache data
US7644234B2 (en) Information processing apparatus with a cache memory and information processing method
CN114168495B (zh) 存储设备的增强的预读能力
JP2001060169A (ja) キャッシュコントローラ及びコンピュータシステム
JP2001147854A (ja) 処理システム、書き込みバッファユニット内の格納の最適化方法、並びに、データの格納及び分配方法
US6658537B2 (en) DMA driven processor cache
EP0835490B1 (en) Write cache for write performance improvement
JPH04340637A (ja) キャッシュ制御方式
JPH04336641A (ja) 処理システムにおける使用のためのデータキャッシュおよび方法
JP2943896B2 (ja) 計算機システム及びディスク・データの制御方法
JPH11212733A (ja) 外部記憶システム
US20100122037A1 (en) Device and method for generating cache user initiated pre-fetch requests
JPH0415493B2 (ja)
US7089367B1 (en) Reducing memory access latencies from a bus using pre-fetching and caching
JPH06243037A (ja) データ先読み装置
JP3039391B2 (ja) メモリシステム
JP5104828B2 (ja) オブジェクトベースストレージシステム、キャッシュ制御装置、キャッシュ制御方法
JPH0561766A (ja) キヤツシユメモリーの制御方法
JP3221409B2 (ja) キャッシュ制御システム及びその読出し方法並びにその制御プログラムを記録した記録媒体
JPH0776941B2 (ja) データ先読み制御方式
JPH06342401A (ja) 二次記憶制御装置
JP2000347941A (ja) キャッシュメモリ装置