JPH0236445A - ディスク・キャッシュ装置 - Google Patents

ディスク・キャッシュ装置

Info

Publication number
JPH0236445A
JPH0236445A JP63185931A JP18593188A JPH0236445A JP H0236445 A JPH0236445 A JP H0236445A JP 63185931 A JP63185931 A JP 63185931A JP 18593188 A JP18593188 A JP 18593188A JP H0236445 A JPH0236445 A JP H0236445A
Authority
JP
Japan
Prior art keywords
cache memory
divided
data
block
disk
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
JP63185931A
Other languages
English (en)
Inventor
Toru Yao
八尾 徹
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP63185931A priority Critical patent/JPH0236445A/ja
Publication of JPH0236445A publication Critical patent/JPH0236445A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 産業上の利用分野 本発明は電子計算機システムにおいて用いられるディス
ク・キャッシュ装置に関する。
従来の技術 ディスク装置に対する処理時間を短縮するために、主記
憶装置とディスク装置との間に高速で小容量のキャッシ
ュメモリを設けて参照頻度の高いディスクデータをキャ
ッシュメモリに格納し、平均的なディスクアクセス時間
を短縮しようとするディスクキャッシュにおいて、その
性能を高める上で必要なのが、アクセスされるデータが
キャッシュメモリ上に見出される確率(キャツシュヒツ
ト率)を高めることと、そのデータがキャッシュメモリ
上に存在するか否かを判定する時間(ヒツト、−” ミ
ス判定時間)を短縮することであり、ディスク装置のデ
ータの一部をキャッシュメモリにうまく対応づける(マ
ツピング)方法が重要になろう従来、知られているマツ
ピングの方法には、フル・アソシアティブ方式とセット
・アソシアティブ方式とがある。フル・アソシアティブ
方式はディスクのデータブロック〈記憶単位)がキャッ
シュメモリのどのブロックにもマツピングできるように
したものである。またセット・アソシアティブ方式はデ
ィスク装置を論理的にいくつかの粗に分け、キャッシュ
メモリのブロックも対応してヒツトと呼ばれる一列のグ
ループに分けておき、分割した各々でマツピングを行な
う。
発明が解決しようとする課題 前述した従来のマツピング方式で、フル・アソシアティ
ブ方式ではアクセスされるデータがキャッシュメモリ上
に存在するか否かを判定するときにキャッシュの全ブロ
ックまたは非常に多くのブロックを調べる必要がある。
またセット・アソシアティブ方式の構成においては、ア
クセスされるデータがキャッシュメモリ上に存在するか
否かを判定するのに、限られたブロックのみ調べればよ
いので、フル・アソシアティブ方式に比べて短時間で行
えるが、反面ディスク装置とキャッシュメモリのセット
との対応が一度設定されると固定されてしまうため、計
算機システム操作途中、使用状況によってディスク装置
の論理的に分割された特定の領域に対してアクセスが集
中するようなことが生じた場合、その領域に対応するセ
ット以外のキャッシュメモリにはデータを格納できない
ため、高価な高速のメモリを有効に使用できないだけで
なく、小量の限定されたセット分のメモリだけでは参照
頻度の高いデータを十分格納しきれなくなり、キャッシ
ュ・ヒツト率の低下を招く恐れがある。
本発明は、このような従来の問題点を解決するためにな
されたもので、アクセスされるデータがキャッシュメモ
リ上に存在するが否がを短時間に判定し、しかもキャッ
シュメモリ全体を効率的に使用し、高いキャツシュヒツ
ト率を維持する高性能なディスク・キャッシュ装置を提
供することを目的とする。
課題を解決するための手段 本発明は、接続可能な1台または複数台のディスク装置
の総容量を論理的に複数の論理ボリュームに分割してお
き、前記論理ボリュームと同数のセットに分割され、前
記セットはそれぞれ複数のグロ’7りに区分されている
セット分割キャッシュメモリと、セットには分割されず
、複数のブロックにのみ区分されている非分割キャッシ
ュメモリと、前記セット分割キャッシュメモリの各セッ
トを前記ディスク装置の各論理ボリュームに一対一に割
り付けるための前記セットと前記論理ボリュームとの対
応情報を有し、前記セット分割キャッシュメモリをアク
セスするためのセットアドレスを生成するセットアドレ
ス生成手段と、前記セットアドレス生成手段で生成され
たセットアドレスで指定される前記セット分割キャッシ
ュメモリの記憶位置、あるいは前記非分割キャッシュメ
モリにアクセス要求のあったデータブロックを格納させ
るのに、最も新しくアクセス要求のあったデータブロッ
クを常に前記セット分割キャッシュメモリに格納し、こ
の時格納しきれなくなったデータブロックが存在すれば
、該データを前記非分割キャッンユメモリへ格納させる
よう制御する手段とを含むことを特徴とするディスク・
キャッシュ装置である。
作用 以上のような構成によれば、計算機システム操作中、ア
クセス頻度の高いデータはセット分割キャッシュメモリ
に常駐化する確率が高いので、もし目的とするデータが
よくアクセスされるものであれば、セット・アソシアテ
ィブ方式の利点で、キャッシュメモリ上に存在するが否
か短時間で判定でき、また例え特定の論理ボリュームに
対してのアクセスが集中するような場合が生じて、アク
セス頻度の高いデータ量が増大し、セット分割キャッシ
ュメモリに格納しきれなくなっても、自動的に非分割キ
ャッシュメモリのデータブロックが割り付けられるので
、キャッシュメモリ中にデータを格納でき、キャツシュ
ヒツト率を低下させることもない。
実施例 以下、本発明の一実施例を説明する。本発明が適用され
る計算機システムを示す第1図において、1000はC
PU、2000は主記憶装置、2100は主記憶装置2
000上で動作するオペレーティング・システム(O8
)、2110は032100に含まれるプログラム、デ
ィスク・ドライバ、3000はディスク・キャッシュ装
置、4000はディスク制御装置を含むディスク装置で
、内部は論理的に複数の論理ボリュームに分割されてい
て、各論理ボリュームに関する情報は032100が管
理している。3100はディスク・キャッシュ装置30
00に含まれるディスク装置4000上の任意のデータ
(レコード)を−時的に記憶するためのキャッシュメモ
リ、3200はキャッシュメモリ3100にディスク装
置4000上のどのレコードが入っているか記憶してい
るディレクトリである。なお、ディスク・キャッシュ装
置3000は装置として必ずしも独立している必要はな
く、入出力チャネル(人出力インターフェース)やディ
スク制御装置に組み込むことも可能である。
次に、基本的な動作について説明する。C、P Ul 
000がディスク装置4000に対して読出し要求をデ
ィスク・ドライバ2110を介して発行すると、ディス
ク・キャッシュ装置3000はディスク・ドライバ21
10より受は取った読出し要求のアドレスを用いてディ
レクトリ3200を検索し、アクセスしようとしている
レコードがキャッシュメモリ3100に存在するか否か
調べる。もし存在すれば、そこからデータを読み出し、
CPU100Oへ転送する。もし、アクセスされたレコ
ードがキャッシュメモリ3100上に存在しなければ、
そのレコードを含むデータブロックを、ディスク装置4
000から読み出し、このブロックをキャッシュメモリ
3100の適当なブロックに格納し、ディレクトリ32
00を更新すると同時にCPU100Oにアクセスされ
たレコードを転送する。
逆にCPU100Oがディスク装置4000に対して書
込み要求を発行した場合、書込みレコードをディスク装
置4000に書き込み、もし該書込みレコードのアドレ
スに対応したチータブロックがキャッシュメモリ310
0上に存在すれば、キャッシュメモリ3100上にも書
き込む。
本発明は以上の動作において、ディスク装置上のレコー
ドをキャッシュメモリのどの部分にいかに割り付けるか
に関するものであるので、ディスク・キャッシュ装置3
000の内部を示す第2図を用いて詳細に説明する。
第2図において、3300はディスク装置4000への
読出し、または書込み要求により指定されるレコードの
アドレスを格納するアドレスレジスタ、3400はアク
セスするレコードのアドレスに基づいてセットアドレス
を生成するセットアドレス生成回路、3500はディス
ク・キャッシュ装置全般の動作を制御するディスク・キ
ャッシュ制御回路、3600はディレクトリの内容とア
ドレスレジスタ3300の内容とを比較する比較回路、
3700はキャッシュメモリのブロックを新しいデータ
ブロックに置き換える等の処理を行う書換え処理回路で
あり、キャッシュメモリには入出力バス3800を通し
てディスク装置4000と接続されている。
ディスク装置において、通常データはセクタという単位
の固定長のレコードで記録されており、その複数倍の大
きさのまとまりをブロックとすると、アクセスするレコ
ードのアドレスは、ボリューム番号3310.ブロック
アドレス3320゜セクタアドレス3330に分解され
る。
キャッシュメモリ3100は、セクタ単位でアドレスで
きるメモリで、全体が複数のブロックよりなる、ディス
ク装置4000の論理ボリューム数と同数のセットに分
割されているセット分割キャッシュメモリ3110と、
全体が前記セット分割キャッシュメモリ3110のブロ
ックと同じ大きさの複数のブロックよりなる非分割キャ
ッシュメモリ3120と、前記セット分割キャッシュメ
モリ3110および非分割キャッシュメモ13120の
1ブロック分の容量をもつバッファメモリ3130とか
ら構成される。セット分割キャッシュメモリ3110に
おいて、各セット内の同順番目のブロックの集まりをレ
ベルとすると、キャッシュメモリ内の特定のセクタは、
セットアドレス、レベルアドレス、およびブロック内の
セクタアドレスによってアクセスできる。
ディレクトリ3200はキャッシュメモリ3100内の
ブロックに対応したエントリを持つメモリで、セット分
割キャッシュメモリ3110に対応して、同様のセット
・レベルの配列をもつセット分割ディレクトリ3210
.非分割キャッシュメモリ3120に対応した非分割デ
ィレクトリ3220、および前記セット分割ディレクト
リ3210、非分割ディレクトリ3220のエントリと
同じ容量をもつバッファメモリ3230とから構成され
ていて、各エントリには対応するキャッシュメモリ31
00のブロックに格納されているディスク装置4000
のデータブロックのアドレス(ボリューム番号、ブロッ
クアドレス)が記憶されている。
セットアドレス生成回路3400は、ディスク装置40
00の各論理ボリュームとセット分割キャッシュメモリ
3110のセットとの対応テーブル3410を有し、デ
ィスク装置4000の論理ボリューム番号を入力とし、
セットアドレスを生成する。
次に第1図、第2図において、本発明の一実施例の動作
について説明する。CPUI○O○より読出し要求があ
る場合、ディスク・ドライバ2110は指定されたディ
スク装置4000のレコードのアドレスをアドレスレジ
スタ3300に格納する。まずセットアドレス生成回路
3400はアドレスレジスタ3300のボリューム番号
3310の内容と、ボリューム・セット対応テーブル3
410と照合してセットアドレスを生成し、生成された
セットアドレスに従い、アクセスしようとするディスク
装置4000の論理ボリュームに、一対一に割り付けら
れたセット分割キャッシュメモリ311Qに対応するセ
ット分割ディレクトリ3210内の1つのセットが選択
される。比較回路3600は該セット内のディレクトリ
・エントリの内容とアドレスレジスタ3300内のボリ
ューム番号3310、ブロックアドレス3320の内容
とを一つずつレベル順に比較する。この比較動作は選択
されたセット内のみで行うので短時間で処理できる。も
し比較があるレベルで一致すれば、該エントリに対応す
るセット分割キャッシュメモリ3110のブロックにア
クセスしようとするレコードが格納されていて、そのセ
ットアドレスがセットアドレス生成回路3400より、
また一致したレベルアドレスは比較回路36’OOより
それぞれセット分割キャッシュメモリ311.0に伝え
られ、そのブロックが指定される。そしてアドレスレジ
スタ3300内のセクタアドレス3330によりブロッ
ク内のセクタが選択され、データがCPU100Oに送
られる。
もし選択されたセットのすべてのレベルで比較が一致し
なかった場合、セット分割キャッシュメモリ3110の
該セット内に空ブロックが存在しなければ、空きブロッ
クを作るため、書換え処理回路3700が起動して、公
知のアルゴリズムで置換ブロックを決定する。例えばL
RU(LeastRecently  Used)のよ
うに、使用中のブロックの中から最後に参照された時点
が最も古いブロックを使用頻度が最も低いと見なし、置
換ブロックとして選択して、データをバッファメモリ3
130へ転送し、該ブロックに対応するセット分割ディ
レクトリ3210のエントリの内容も同様にバッファメ
モリ3230に退避させ、該ブロックは空ブロックとな
る。
また同時に、ディスク装置4000のどの論理ボリュー
ムのデータブロックでも任意の場所に格納し得る非分割
キャッシュメモリ3120に対応した非分割ディレクト
リ3200の検索も開始される。前述したのと同様に、
ディレクトリ・エントリの内容とアドレスレジスタ33
00内のボリューム番号3310.ブロックアドレス3
320の内容とを一つずつレベル順に比較回路3600
で比較して、もし一致するものがあれば、該エントリに
対応する非分割キャッシュメモリ3120のブロックに
アクセスしようとするレコードが格納されていて、一致
したレベルアドレスが比較回路3600より非分割キャ
ッシュメモリ3120に伝えられ、そのブロックが指定
される。そしてアドレスレジスタ3300内のセクタア
ドレス3330によりブロック内のセクタが選択され、
データがCPU100Oに送られると同時に、該ブロッ
クの全データがセット分割キャッシュメモリ3110の
セットアドレス生成回路3400により指定されている
前記セット内の空きブロックに転送され、同様に非分割
ディレクトリ3220内の該ブロックに対応するエント
リの内容もセット分割ディレクトリ3210内の前記空
きブロックに対応するエントリに送られ、該ブロックは
非分割キャッシュメモリ3120内の空きブロックとな
る。
そして、非分割キャッシュメモリ3120および非分割
ディレクトリ3220からセット分割キャッシュメモリ
3110.セット分割ディレクトリ3210への転送完
了後、もしバッファメモリ3130に有効なデータ、す
なわちセット分割キャッシュメモリ3110に格納しき
れなくなったデータが存在すれは、非分割キャッシュメ
モリ3120の空きブロックに転送され、同様に該空き
ブロックに対応した非分割デイレクリ3120のエント
リに、バッファメモリ3230の内容が移され、バッフ
ァメモリ3130.3230のそれぞれの内容は無効に
なる。
次に、非分割ディレクトリ3220のすべてのレベルで
も比較が一致せず、アクセスしようとするレコードがキ
ャッシュメモリ3100上に存在しないことが判明した
場合、書換え処理回路37oOによりセット分割キャッ
シュメモリ3110のセットアドレス生成回路3400
により指定されている前記セット内の空きブロックにデ
ィスク装置4000からアドレスレジスタ3300に示
すアドレスのデータブロックが読み込まれ、同時に該デ
ータブロック内のセクタアドレス3330で指定された
セクタのデータCPU100Oへ送られる。また、並行
して前記空きブロックに対応したセット分割ディレクト
リ3210内のエントリに前;己データブロックのアド
レス、つまりアドレスレジスタ3300のボリューム番
号3310゜ブロックアドレス3320が書き込まれる
もしこの時、データバッファ3130にセット分割キャ
ッシュメモリ3110に格納しきれな(なったデータが
存在する場合は、非分割キャッシュメモリ3120内の
空きブロックが存在すれば、該空きブロックにデータバ
ッファ3130の内容が転送され、同様にデータバッフ
ァ3230の内容が前記空きブロックに対応する非分割
ディレクトリ3210のエントリに転送される。非分割
キャッシュメモリ3120内に空きブロックが存在しな
ければ、空きブロックを作るため、前述したようにLR
Uのような公知のアルゴリズムにより置換ブロックが選
択され、該ブロックにデータバッファ3130の内容が
書き込まれ、同様に該ブロックに対応した非分割ディレ
クトリ3210のエントリにデータバッファ3230の
内容が書き込まれる。データバッファ3130.312
0の内容は非分割キャッシュメモリ3120に転送され
た後は、いずれの場合も無効となる。
なお、本発明の一実施例の動作説明としてCPUからの
データの読出し要求の場合で行ったが、CPUからのデ
ータの書込み要求の場合もキャッシュメモリにアクセス
しようとするデータが存在する、しないに関係なくディ
スク装置にも書き込む以外、読出し要求時と同様の動作
を行う。また上記実施例セクタを記憶単位としたディス
ク装置を接続した場合を想定して説明したが、本発明は
セクタ方式以外のディスク装置に対しても適用できる。
発明の効果 本発明は以上説明したように、ディスク装置を論理的に
いくつかの論理ボリュームに分割しておき、論理ボリュ
ーム数と同数のセットに分割され、一対一に割り付けら
れるキャッシュメモリと、論理ボリュームすべてに対し
て割付は可能なキャッシュメモリを備え、それぞれへの
データの格納を最適に制御することにより、アクセス頻
度の高いデータはセットに分割されたキャッシュメモリ
に集まるので、セット・アソシアティブ方式の利点でこ
れらのデータがキャッシュメモリ上に存在することを短
時間で発見でき、平均的なアクセス時間も短縮できる。
また例え、計算機システム操作中、特定の論理ボリュー
ムに対してのアクセスが集中するような場合が生じて、
アクセス頻度の高いデータ量が増大し、セットに分割さ
れたキャッシュメモリに格納しきれな(なっても、論理
ボリュームすべてに対して割り付けられるキャッシュメ
モリ中にデータを格納できるので、アクセス頻度の高い
論理ボリュームはど、そのデータがこのキャッシュメモ
リを占有できるので、キャツシュヒツト率を低下させる
ことな(維持できる効果がある。
【図面の簡単な説明】
第1図は本発明の適用される計算機システムの構成図、
第2図は本発明のディスク・キャッシュ装置の一構成例
を示す構成ブロック図である。 1000・・・・・・CPU、2000・・・・・・主
記憶装置、3000・・・・・・ディスク・キャッシュ
装置、3100・・・・・・キャッシュメモリ、311
0・・・・・・セット分割キャッシュメモリ、3120
・・・・・・非分割キャッシュメモリ、3200・・・
・・・ディレクトリ、3210・・・・・・セット分割
ディレクトリ、3220・・・・・・非分割ディレクト
リ、3130.3230・・・・・・バッファメモリ、
3300・・・・・・アドレス・レジスタ、3400・
・・・・・セットアドレス生成回路、3500・・・・
・・ディスク・キャッシュ制御回路、3600・・・・
・・比較回路、3700・・・・・・書換え処理回路、
3800・・・・・・入出力バス、4000・・・・・
・ディスク装置。

Claims (1)

    【特許請求の範囲】
  1. 接続可能な1台または複数台のディスク装置の総容量を
    論理的に複数の論理ボリュームに分割しておき、前記論
    理ボリュームと同数のセットに分割され、前記セットは
    それぞれ複数のブロックに区別されているセット分割キ
    ャッシュメモリと、前記セット分割キャッシュメモリの
    各セットを前記ディスク装置の各論理ボリュームに一対
    一に割り付けるための前記セットと前記論理ボリューム
    との対応情報を有し、前記セット分割キャッシュメモリ
    をアクセスするためのセットアドレスを生成するセット
    アドレス生成手段と、セットには分割されず、複数のブ
    ロックにのみ区分されて、前記ディスク装置の論理ボリ
    ュームすべてに対して割付け可能な非分割キャッシュメ
    モリと、前記セットアドレス生成手段で生成されたセッ
    トアドレスで指定される前記セット分割キャッシュメモ
    リの記憶位置に、あるいは前記非分割キャッシュメモリ
    にアクセス要求のあったデータブロックを格納させるの
    に、最も新しくアクセス要求のあったデータブロックを
    常に前記セット分割キャッシュメモリに格納し、この時
    格納しきれなくなったデータブロックが存在すれば、該
    データを前記非分割キャッシュメモリへ格納させるよう
    制御する手段とを含むことを特徴とするディスク・キャ
    ッシュ装置。
JP63185931A 1988-07-26 1988-07-26 ディスク・キャッシュ装置 Pending JPH0236445A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63185931A JPH0236445A (ja) 1988-07-26 1988-07-26 ディスク・キャッシュ装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63185931A JPH0236445A (ja) 1988-07-26 1988-07-26 ディスク・キャッシュ装置

Publications (1)

Publication Number Publication Date
JPH0236445A true JPH0236445A (ja) 1990-02-06

Family

ID=16179384

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63185931A Pending JPH0236445A (ja) 1988-07-26 1988-07-26 ディスク・キャッシュ装置

Country Status (1)

Country Link
JP (1) JPH0236445A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8208158B2 (en) 2005-06-01 2012-06-26 Canon Finetech Inc Print module, information processing device, print system, print unit, ink supply unit, print method, and program

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8208158B2 (en) 2005-06-01 2012-06-26 Canon Finetech Inc Print module, information processing device, print system, print unit, ink supply unit, print method, and program

Similar Documents

Publication Publication Date Title
US6968424B1 (en) Method and system for transparent compressed memory paging in a computer system
US6216199B1 (en) Hardware mechanism for managing cache structures in a data storage system
US10635310B2 (en) Storage device that compresses data received from a host before writing therein
US10067881B2 (en) Compression and caching for logical-to-physical storage address mapping tables
US6446188B1 (en) Caching dynamically allocated objects
US6795897B2 (en) Selective memory controller access path for directory caching
US6349372B1 (en) Virtual uncompressed cache for compressed main memory
US6857045B2 (en) Method and system for updating data in a compressed read cache
US5717893A (en) Method for managing a cache hierarchy having a least recently used (LRU) global cache and a plurality of LRU destaging local caches containing counterpart datatype partitions
US9104327B2 (en) Fast translation indicator to reduce secondary address table checks in a memory device
US9489239B2 (en) Systems and methods to manage tiered cache data storage
JP6678230B2 (ja) ストレージ装置
US20180275899A1 (en) Hardware based map acceleration using forward and reverse cache tables
US6549995B1 (en) Compressor system memory organization and method for low latency access to uncompressed memory regions
US7962700B2 (en) Systems and methods for reducing latency for accessing compressed memory using stratified compressed memory architectures and organization
US20120239853A1 (en) Solid state device with allocated flash cache
JPH11102323A (ja) 仮想アドレス変換用の柔軟な変換記憶バッファ
US8694563B1 (en) Space recovery for thin-provisioned storage volumes
US6574706B2 (en) Managing unvirtualized data pages in real storage
WO1993000635A1 (en) Data storage management systems
US7237084B2 (en) Method and program product for avoiding cache congestion by offsetting addresses while allocating memory
US6324633B1 (en) Division of memory into non-binary sized cache and non-cache areas
JPH0236445A (ja) ディスク・キャッシュ装置
JPH07129470A (ja) ディスク制御方法
JP3875358B2 (ja) 記憶装置、記憶方法および記録媒体