JPH02197941A - ディスクキャッシュの制御方式 - Google Patents
ディスクキャッシュの制御方式Info
- Publication number
- JPH02197941A JPH02197941A JP1016307A JP1630789A JPH02197941A JP H02197941 A JPH02197941 A JP H02197941A JP 1016307 A JP1016307 A JP 1016307A JP 1630789 A JP1630789 A JP 1630789A JP H02197941 A JPH02197941 A JP H02197941A
- Authority
- JP
- Japan
- Prior art keywords
- sub
- block
- entry
- cache
- 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
Links
- 238000000034 method Methods 0.000 claims description 21
- 238000012546 transfer Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 14
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000007430 reference method Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
(産業上の利用分野)
本発明は、ディスク装置のアクセスの高速化を図ったデ
ィスクキャッシュの制御方式に関する。
ィスクキャッシュの制御方式に関する。
(従来の技術)
情報処理装置の大容量記憶媒体として、磁気ディスクや
光ディスク等のディスク装置が広く使用されている。
光ディスク等のディスク装置が広く使用されている。
ディスク装置は、データのリードライトを、読み書きヘ
ッドをスキャンさせながら実行することから、読み書き
速度がプロセッサの動作速度に比べて著しく遅い。この
ため、ディスクアクセスの高速化を図るべく、ディスク
キャッシュシステムが採用されている。
ッドをスキャンさせながら実行することから、読み書き
速度がプロセッサの動作速度に比べて著しく遅い。この
ため、ディスクアクセスの高速化を図るべく、ディスク
キャッシュシステムが採用されている。
このシステムにおいては、キャッシュメモリ上に、ディ
スクに格納されたデータの一部を転記し、プロセッサは
キャッシュテーブルを参照しながらキャッシュメモリを
アクセスする。キャッシュメモリには、最新にアクセス
されたデータを優先して転記しておき、キャッシュメモ
リをアクセスする確率を高くする。キャッシュメモリへ
のデータの転記法は、先入れ先出しくFIFO)法やL
RU法等が採用される。
スクに格納されたデータの一部を転記し、プロセッサは
キャッシュテーブルを参照しながらキャッシュメモリを
アクセスする。キャッシュメモリには、最新にアクセス
されたデータを優先して転記しておき、キャッシュメモ
リをアクセスする確率を高くする。キャッシュメモリへ
のデータの転記法は、先入れ先出しくFIFO)法やL
RU法等が採用される。
また、キャッシュテーブルの構成及び参照方法に着目す
ると、次の2種の方式が挙げられる。
ると、次の2種の方式が挙げられる。
第2図に、従来のフルセットアソシアティブ方式の説明
図を示す。
図を示す。
先ず、図の右側部分に、ディスクのアドレス空間を示す
。
。
この例では、ディスクに格納されたデータをP個の論理
ブロック3に分割する。更に、各論理ブロック3をQ個
のサブブロック5に分割する。
ブロック3に分割する。更に、各論理ブロック3をQ個
のサブブロック5に分割する。
具体的には、例えば、サブブロックは2048バイト構
成とされ、1つの論理ブロック3は256個のサブブロ
ック5に分割する。
成とされ、1つの論理ブロック3は256個のサブブロ
ック5に分割する。
一方、キャッシュメモリ21には、サブブロック単位で
データを転記するための領域24をM個設ける。キャッ
シュメモリ21には、最新にアクセスされたサブブロッ
ク5を優先して転記する。
データを転記するための領域24をM個設ける。キャッ
シュメモリ21には、最新にアクセスされたサブブロッ
ク5を優先して転記する。
これは、従来よりよく知られたLRU方式によって実行
される。
される。
また、キャッシュテーブル22には、キャッシュメモリ
21に設けられた領域24の数Mと同一数のエントリ2
6が格納される。各エントリ26は、キャッシュメモリ
21中の何れかの領域24と1対1で対応するよう設け
られる。そして、エントリ26には、サブブロック5を
アクセスするための情報、即ち、ディスク上のP個の論
理ブロック3のうち何れの論理ブロック3に含まれ、そ
の論理ブロック3の何番目のサブブロック5に含まれて
いるか等の情報が含められる。
21に設けられた領域24の数Mと同一数のエントリ2
6が格納される。各エントリ26は、キャッシュメモリ
21中の何れかの領域24と1対1で対応するよう設け
られる。そして、エントリ26には、サブブロック5を
アクセスするための情報、即ち、ディスク上のP個の論
理ブロック3のうち何れの論理ブロック3に含まれ、そ
の論理ブロック3の何番目のサブブロック5に含まれて
いるか等の情報が含められる。
このような方式では、プロセッサが何れかのサブブロッ
ク5をアクセスする場合、先ず、キャッシュテーブル2
2を参照し、該当するサブブロック5がキャッシュメモ
リ21に格納されているかどうかを判断する。エントリ
26に含まれた情報によってこれを判断し、キャッシュ
メモリ21に格納されていれば、対応するキャッシュメ
モリ21上の領域24からサブブロックをアクセスする
。キャッシュテーブル22を参照しても、該当するサブ
ブロックが見当たらない場合、そのサブブロックがディ
スクから新たに読出され、キャッシュメモリ21に転記
される。キャッシュメモリ21のすべての領域に、既に
他のサブブロックが転記されてしまっている場合、もっ
とも古く参照されたサブブロックがキャッシュメモリ2
1から追出され、最新にアクセスされたサブブロックが
キャッシュメモリ21に格納される。
ク5をアクセスする場合、先ず、キャッシュテーブル2
2を参照し、該当するサブブロック5がキャッシュメモ
リ21に格納されているかどうかを判断する。エントリ
26に含まれた情報によってこれを判断し、キャッシュ
メモリ21に格納されていれば、対応するキャッシュメ
モリ21上の領域24からサブブロックをアクセスする
。キャッシュテーブル22を参照しても、該当するサブ
ブロックが見当たらない場合、そのサブブロックがディ
スクから新たに読出され、キャッシュメモリ21に転記
される。キャッシュメモリ21のすべての領域に、既に
他のサブブロックが転記されてしまっている場合、もっ
とも古く参照されたサブブロックがキャッシュメモリ2
1から追出され、最新にアクセスされたサブブロックが
キャッシュメモリ21に格納される。
以上のようにして、アクセスされる確率の高いサブブロ
ックをキャッシュメモリ21に格納し、高速アクセスを
図っている。
ックをキャッシュメモリ21に格納し、高速アクセスを
図っている。
次に、第3図に、Nセットアソシアティブ方式の説明図
を示す。
を示す。
尚、第3図の場合、N=4即ち4セットアソシアティブ
方式の具体例を図示している。
方式の具体例を図示している。
この方式においては、第2図と同様に、ディスクのアド
レス空間をP個の論理ブロック3に分割し、更に各論理
ブロック3をQ個のサブブロック5に分割する。
レス空間をP個の論理ブロック3に分割し、更に各論理
ブロック3をQ個のサブブロック5に分割する。
ここで、更にこの方式においては、各論理ブロック3の
対応する位置にある各サブブロック5をまとめてサブブ
ロック群7を設定する。このサブブロック群7は、即ち
、全体でQ個設定される。
対応する位置にある各サブブロック5をまとめてサブブ
ロック群7を設定する。このサブブロック群7は、即ち
、全体でQ個設定される。
一方、キャッシュメモリ31は、4セツトアソシアテイ
ブの場合、そのメモリ空間を4つの区域37に分割する
。そして、各区域37には、それぞれQ個の領域34を
設け、各領域34にそれぞれサブブロック5が格納され
るよう設定する。
ブの場合、そのメモリ空間を4つの区域37に分割する
。そして、各区域37には、それぞれQ個の領域34を
設け、各領域34にそれぞれサブブロック5が格納され
るよう設定する。
一方、キャッシュテーブル32は、各サブブロック群毎
に4セット即ち、最大4個のエントリ36を格納するよ
う構成する。即ち、キャッシュテーブル32には、最大
4×Q個のエントリが格納される。そして、各サブブロ
ック群7毎にこのキャッシュテーブルをみた場合、エン
トリは最新に参照されたものを優先して4個ずつ格納さ
れるよう設定されている。
に4セット即ち、最大4個のエントリ36を格納するよ
う構成する。即ち、キャッシュテーブル32には、最大
4×Q個のエントリが格納される。そして、各サブブロ
ック群7毎にこのキャッシュテーブルをみた場合、エン
トリは最新に参照されたものを優先して4個ずつ格納さ
れるよう設定されている。
以上の方式において、プロセッサがサブブロック5をア
クセスしようとする場合、先ず、キャッシュテーブル3
2を参照する。この場合、初めにアクセスしようとする
サブブロック5が、何れのサブブロック群7に含まれる
か判断し、図のキャッシュテーブル32の行を選定する
。そして、その行に含まれる4つのエントリ36を参照
し、該当するサブブロック5に対応するエントリ36が
あるか否かを判断する。
クセスしようとする場合、先ず、キャッシュテーブル3
2を参照する。この場合、初めにアクセスしようとする
サブブロック5が、何れのサブブロック群7に含まれる
か判断し、図のキャッシュテーブル32の行を選定する
。そして、その行に含まれる4つのエントリ36を参照
し、該当するサブブロック5に対応するエントリ36が
あるか否かを判断する。
ここで、各エントリ36は、キャッシュメモリ31の各
領域34に対し、物理的に1対lで対応付けられており
、アクセスしようとするサブブロック5に対応するエン
トリ36が、キャッシュテーブル32上で見付かった場
合には、直ちにキャッシュメモリ31上の対応領域34
がアクセスできる。また、キャッシュテーブル32上に
アクセスしようとするサブブロック5に対応するエント
リ36が存在しない場合には、キャッシュメモリ31上
の、対応するサブブロック群7のサブブロック5の1つ
を追出し、新たにアクセスされたサブブロックを転記す
る。
領域34に対し、物理的に1対lで対応付けられており
、アクセスしようとするサブブロック5に対応するエン
トリ36が、キャッシュテーブル32上で見付かった場
合には、直ちにキャッシュメモリ31上の対応領域34
がアクセスできる。また、キャッシュテーブル32上に
アクセスしようとするサブブロック5に対応するエント
リ36が存在しない場合には、キャッシュメモリ31上
の、対応するサブブロック群7のサブブロック5の1つ
を追出し、新たにアクセスされたサブブロックを転記す
る。
即ち、4セットアソシアティブ方式においては、ディス
クの1つのサブブロック群7に含まれる最大4つのサブ
ブロックが、キャッシュメモリ31に転記され、サブブ
ロック群7毎に最新にアクセスされたサブブロック5を
優先して転記するLRU処理を行なう。キャッシュテー
ブル32の参照は、先に述べたように、アクセスしよう
とするサブブロック5が何れのサブブロック群7に該当
するかを判断して、キャッシュテーブル32上の行を特
定し、その後、キャッシュテーブル32を列方向に参照
するといった手法をとる。従って、キャッシュテーブル
を端から順に参照して、該当するエントリを見つける第
2図に示したフルセットアソシアティブ方式に比べて、
キャッシュテーブルの参照速度が高速化される利点を有
している。
クの1つのサブブロック群7に含まれる最大4つのサブ
ブロックが、キャッシュメモリ31に転記され、サブブ
ロック群7毎に最新にアクセスされたサブブロック5を
優先して転記するLRU処理を行なう。キャッシュテー
ブル32の参照は、先に述べたように、アクセスしよう
とするサブブロック5が何れのサブブロック群7に該当
するかを判断して、キャッシュテーブル32上の行を特
定し、その後、キャッシュテーブル32を列方向に参照
するといった手法をとる。従って、キャッシュテーブル
を端から順に参照して、該当するエントリを見つける第
2図に示したフルセットアソシアティブ方式に比べて、
キャッシュテーブルの参照速度が高速化される利点を有
している。
(発明が解決しようとする課題)
ところが、以上のような構成の方式には、それぞれ次の
ような問題点があった。
ような問題点があった。
先ず、第2′図に示したフルセットアソシアティブ方式
では、キャッシュテーブル22を端から順に参照してい
くため、エントリ格納数が増えてキャッシュテーブル2
2が大きくなった場合、該当するエントリを見つけるた
めの時間が長くなるという欠点がある。
では、キャッシュテーブル22を端から順に参照してい
くため、エントリ格納数が増えてキャッシュテーブル2
2が大きくなった場合、該当するエントリを見つけるた
めの時間が長くなるという欠点がある。
例えば、キャッシュメモリ21上にアクセスしようとす
るサブブロックが転記されていないような場合には、キ
ャツシュテーブル22全体を参照し、その後ディスクか
らアクセスすべきサブブロックをディスクキャッシュに
転記する作業を実行することになる。従って、例えば、
エントリの数が1000個以上もある比較的大型のコン
ピュータシステムにおいては、アクセス時間が極めて長
時間になるという問題があった。
るサブブロックが転記されていないような場合には、キ
ャツシュテーブル22全体を参照し、その後ディスクか
らアクセスすべきサブブロックをディスクキャッシュに
転記する作業を実行することになる。従って、例えば、
エントリの数が1000個以上もある比較的大型のコン
ピュータシステムにおいては、アクセス時間が極めて長
時間になるという問題があった。
一方、第3図に示したNセットアソシアティブ方式の場
合には、キャッシュテーブル32を行方向と列方向に2
次元的に参照するため、そのセット数が4セツトという
ように少なければ、比較的短時間でエントリの参照が可
能である。
合には、キャッシュテーブル32を行方向と列方向に2
次元的に参照するため、そのセット数が4セツトという
ように少なければ、比較的短時間でエントリの参照が可
能である。
ところが、この場合、キャッシュメモリ31には、1つ
のサブブロック群7に含まれるサブブロック5のうち、
そのセット数に相当する、例えば4個のサブブロックし
か転記することができない。従って、例えば、同一のサ
ブブロック群7にアクセスが集中した場合、キャッシュ
メモリ31から頻繁にサブブロックが追出され、新たな
サブブロックが転記されるということになり、キャッシ
ュメモリ31にアクセスすべきサブブロックか存在する
確率が低くなるという問題がある。
のサブブロック群7に含まれるサブブロック5のうち、
そのセット数に相当する、例えば4個のサブブロックし
か転記することができない。従って、例えば、同一のサ
ブブロック群7にアクセスが集中した場合、キャッシュ
メモリ31から頻繁にサブブロックが追出され、新たな
サブブロックが転記されるということになり、キャッシ
ュメモリ31にアクセスすべきサブブロックか存在する
確率が低くなるという問題がある。
本発明は以上の点に着目してなされたもので、アクセス
すべきサブブロックが、キャッシュメモリ上に存在する
確率を向上させると共に、アクセス速度を向上させたデ
ィスクキャッシュの制御方式を提供することを目的とす
るものである。
すべきサブブロックが、キャッシュメモリ上に存在する
確率を向上させると共に、アクセス速度を向上させたデ
ィスクキャッシュの制御方式を提供することを目的とす
るものである。
(課題を解決するための手段)
本発明のディスクキャッシュの制御方式は、ディスクに
格納されたデータをP個の論理ブロックに分割し、さら
に前記論理ブロックをQ個のサブブロックに分割して、
前記各論理ブロック中の対応する位置にある各サブブロ
ックをまとめてサブブロック群と呼び、合計Q個のサブ
ブロック群を設定する一方、前記サブブロック単位で前
記データを転記するための領域をM個(但し、M<P×
Q)設け、最新にアクセスされたサブブロックを優先し
て転記するキャッシュメモリと、前記各サブブロック群
毎に、最大N個(但し、N<P)のエントリを、最新に
参照されたエントリを優先して格納するよう設定したキ
ャシュテーブルとを設け、N×Q>Mとなるように前記
キャッシュテーブルの容量を選定し、前記エントリは、
前記サブブロックを前記キャッシュメモリに転記したと
き、各サブブロック毎に作成され、対応するサブブロッ
クの属する前記論理ブロックを特定する情報と、対応す
るサブブロックの転記された前記キャッシュメモリ上の
アドレス情報とを含むことを特徴とするものである。
格納されたデータをP個の論理ブロックに分割し、さら
に前記論理ブロックをQ個のサブブロックに分割して、
前記各論理ブロック中の対応する位置にある各サブブロ
ックをまとめてサブブロック群と呼び、合計Q個のサブ
ブロック群を設定する一方、前記サブブロック単位で前
記データを転記するための領域をM個(但し、M<P×
Q)設け、最新にアクセスされたサブブロックを優先し
て転記するキャッシュメモリと、前記各サブブロック群
毎に、最大N個(但し、N<P)のエントリを、最新に
参照されたエントリを優先して格納するよう設定したキ
ャシュテーブルとを設け、N×Q>Mとなるように前記
キャッシュテーブルの容量を選定し、前記エントリは、
前記サブブロックを前記キャッシュメモリに転記したと
き、各サブブロック毎に作成され、対応するサブブロッ
クの属する前記論理ブロックを特定する情報と、対応す
るサブブロックの転記された前記キャッシュメモリ上の
アドレス情報とを含むことを特徴とするものである。
(作用)
以上のディスクキャッシュの制御方式においては、第1
図に示すように、例えば、ディスクの論理ブロック3の
第1行のサブブロック群7にアクセスが集中したとき、
N個例えば32個までのサブブロック5のデータを、キ
ャッシュメモリ1上のいずれかの領域4に残すことがで
きる。キャッシュメモリlにある領域4は、キャッシュ
テーブル2のエントリ6により管理される。キャッシュ
テーブル2の各エントリ6は、対応するサブブロックの
属するディスクの論理ブロック3を特定している。また
、キャッシュテーブル2の各エントリ6には、キャッシ
ュメモリ1上にデータを転記した領域4のアドレスが記
憶される。これにより、キャッシュテーブル2のエント
リ6とキャッシュメモリ1の領域4が対応づけられる。
図に示すように、例えば、ディスクの論理ブロック3の
第1行のサブブロック群7にアクセスが集中したとき、
N個例えば32個までのサブブロック5のデータを、キ
ャッシュメモリ1上のいずれかの領域4に残すことがで
きる。キャッシュメモリlにある領域4は、キャッシュ
テーブル2のエントリ6により管理される。キャッシュ
テーブル2の各エントリ6は、対応するサブブロックの
属するディスクの論理ブロック3を特定している。また
、キャッシュテーブル2の各エントリ6には、キャッシ
ュメモリ1上にデータを転記した領域4のアドレスが記
憶される。これにより、キャッシュテーブル2のエント
リ6とキャッシュメモリ1の領域4が対応づけられる。
キャッシュメモリ1の領域数は、キャッシュテーブル2
のエントリ数より少ないが、アクセスが集中したサブブ
ロック7に対しては、最大N=32個までの多くの領域
が割り当てられ、アクセスが少ないサブブロック7に対
しては、より少なく領域4が割り当てられて調整が図ら
れる。
のエントリ数より少ないが、アクセスが集中したサブブ
ロック7に対しては、最大N=32個までの多くの領域
が割り当てられ、アクセスが少ないサブブロック7に対
しては、より少なく領域4が割り当てられて調整が図ら
れる。
(実施例)
第1図は、本発明のディスクキャッシュの制御方式を適
用した装置の実施例を示す図、第4図は、第1図のキャ
ッシュテーブルの拡大図である。
用した装置の実施例を示す図、第4図は、第1図のキャ
ッシュテーブルの拡大図である。
第1図の装置は、キャッシュメモリ1と、キャッシュテ
ーブル2と、これらを制御するコントローラ8とから成
る。
ーブル2と、これらを制御するコントローラ8とから成
る。
この装置に接続されるディスクのアドレス空間は、従来
のNセットアソシアティブ方式の場合と同様にして、P
(IIの論理ブロック3に分割され、かつ各論理ブロ
ックをQ個のサブブロックに分割される。また、各論理
ブロック3の対応する位置にある各サブブロック5をま
とめ、サブブロック群7を設定する。
のNセットアソシアティブ方式の場合と同様にして、P
(IIの論理ブロック3に分割され、かつ各論理ブロ
ックをQ個のサブブロックに分割される。また、各論理
ブロック3の対応する位置にある各サブブロック5をま
とめ、サブブロック群7を設定する。
キャッシュメモリ1は、DRAMまたはSRAM等によ
り構成されるメモリである。このキャッシュメモリ1は
、M個(例えば、256X 4個)の領域4に分割され
ている。領域数Mは、ディスクのサブブロック総数P×
Qより小さい。
り構成されるメモリである。このキャッシュメモリ1は
、M個(例えば、256X 4個)の領域4に分割され
ている。領域数Mは、ディスクのサブブロック総数P×
Qより小さい。
領域4の1つ当たりの大きさは、サブブロック5の大き
さと同一にされている。この大きさは、例えば、204
8バイトである。領域4には、コントローラ8により、
サブブロック単位でデータが転記される。データの転記
は、最新にアクセスされたサブブロック5を優先して行
なわれる。
さと同一にされている。この大きさは、例えば、204
8バイトである。領域4には、コントローラ8により、
サブブロック単位でデータが転記される。データの転記
は、最新にアクセスされたサブブロック5を優先して行
なわれる。
[キャッシュテーブルの説明]
キャッシュテーブル2は、各サブブロック群ごとに、最
大N個(例えば、256X8個)のエントリ6を格納す
る。サブブロック群7ごとの最大エントリ数Nは、論理
ブロック総数Pより少なくなっている。これらのサブブ
ロック群7ごとのエントリは、最新に参照されたエント
リを優先してキャッシュテーブル2に格納される。
大N個(例えば、256X8個)のエントリ6を格納す
る。サブブロック群7ごとの最大エントリ数Nは、論理
ブロック総数Pより少なくなっている。これらのサブブ
ロック群7ごとのエントリは、最新に参照されたエント
リを優先してキャッシュテーブル2に格納される。
キャッシュテーブル2は、各エントリ6を、行方向及び
列方向に2次元的に配列するように格納する。第0〜2
55行の各行のエントリ6は、それぞれディスクの論理
ブロック3の第0〜255行の各行のサブブロック群7
に含まれるサブブロック5に対応している。
列方向に2次元的に配列するように格納する。第0〜2
55行の各行のエントリ6は、それぞれディスクの論理
ブロック3の第0〜255行の各行のサブブロック群7
に含まれるサブブロック5に対応している。
第4図に、エントリ6の構成図を示す。
エントリ6は、まず、ディスクの論理ブロック番号41
を含んでいる。この論理ブロック番号41は、エントリ
がディスクのどの論理ブロック3に含まれるサブブロッ
ク5に対応するかを決めるものである。各エントリ6は
、サブブロック5をキャッシュメモリ1に転記したとき
、各サブブロックごとに作成される。
を含んでいる。この論理ブロック番号41は、エントリ
がディスクのどの論理ブロック3に含まれるサブブロッ
ク5に対応するかを決めるものである。各エントリ6は
、サブブロック5をキャッシュメモリ1に転記したとき
、各サブブロックごとに作成される。
また、この外にエントリ6には、キャッシュメモリ1の
領域4の先頭アドレスを示すキャッシュ領域アドレス4
2が含まれている。
領域4の先頭アドレスを示すキャッシュ領域アドレス4
2が含まれている。
更に、エントリ同志を連鎖させるためのポインタ43乃
至48が格納されている。これらのポインタによりアク
セス時のエントリ6の参照順序が定められる。この結果
、エントリ6を参照のための優先順に、ソートしておか
なくても、ポインタを追いながら、LRU順に参照する
ことができる。
至48が格納されている。これらのポインタによりアク
セス時のエントリ6の参照順序が定められる。この結果
、エントリ6を参照のための優先順に、ソートしておか
なくても、ポインタを追いながら、LRU順に参照する
ことができる。
[ポインタの具体的な説明]
第5図は、第4図に示した全エントリについてのLRU
ポインタ43.44の具体的な説明図である。このポイ
ンタ43.44は、キャッシュテーブル2上に新たにエ
ントリが作成される際に、そのつと設定されるものであ
る。第5図はキャッシュテーブルの一部を示しており、
図中の数字は、現時点のディスクのアクセス順序を新し
い順に示すものである。
ポインタ43.44の具体的な説明図である。このポイ
ンタ43.44は、キャッシュテーブル2上に新たにエ
ントリが作成される際に、そのつと設定されるものであ
る。第5図はキャッシュテーブルの一部を示しており、
図中の数字は、現時点のディスクのアクセス順序を新し
い順に示すものである。
即ち、図中○印を付けて“1゛°と記入した第1列第1
行のエントリは、最新にアクセスされたもので、“20
”と記入した第2行第2列のエントリは最古にアクセス
されたものとする。
行のエントリは、最新にアクセスされたもので、“20
”と記入した第2行第2列のエントリは最古にアクセス
されたものとする。
従って、第1行第0列の三角形のマークを付けたエント
リに着目すると、このエントリの、全エントリについて
のLRU前ポインタ43は、第1行第1列のエントリの
格納位置を指し、全エントリについてのLRU後ポイン
タ44は、第1行第31列のエントリの格納位置を指す
ことになる。
リに着目すると、このエントリの、全エントリについて
のLRU前ポインタ43は、第1行第1列のエントリの
格納位置を指し、全エントリについてのLRU後ポイン
タ44は、第1行第31列のエントリの格納位置を指す
ことになる。
また、全エントリのうち最も古く作成されたエントリと
、最も新しく作成されたエントリとの格納位置を示すポ
インタは、コントローラ8(第1図参照)内のメモリ8
aに格納される。
、最も新しく作成されたエントリとの格納位置を示すポ
インタは、コントローラ8(第1図参照)内のメモリ8
aに格納される。
第6図は、第1図のコントローラの制御情報の内容を示
す図である。
す図である。
この制御情報は、キャッシュテーブルの全エントリにつ
いてのLRU最古ポインタ81と、キャッシュテーブル
の全エントリについてのLRU最新ポインタ82と、キ
ャッシュメモリの空領域ポインタ83と、キャッシュメ
モリの空領域数84とから成る。
いてのLRU最古ポインタ81と、キャッシュテーブル
の全エントリについてのLRU最新ポインタ82と、キ
ャッシュメモリの空領域ポインタ83と、キャッシュメ
モリの空領域数84とから成る。
キャッシュテーブルの全エントリについてのLRU最古
ポインタ81は、1番古いエントリ(20)の格納位置
を示す。キャッシュテーブルの全エントリについてのL
RU最新ポインタ82は、1番新しいエントリ(1)の
格納位置を示す。また、キャッシュメモリの空領域ポイ
ンタ83は、キャッシュメモリ1の空領域のうち1番先
頭にあるもののアドレスを示す。キャッシュメモリの空
領域数84は、キャッシュメモリ1の空領域の数を示す
ものである。
ポインタ81は、1番古いエントリ(20)の格納位置
を示す。キャッシュテーブルの全エントリについてのL
RU最新ポインタ82は、1番新しいエントリ(1)の
格納位置を示す。また、キャッシュメモリの空領域ポイ
ンタ83は、キャッシュメモリ1の空領域のうち1番先
頭にあるもののアドレスを示す。キャッシュメモリの空
領域数84は、キャッシュメモリ1の空領域の数を示す
ものである。
一方、Nセットアソシアティブ方式のディスクキャッシ
ュ制御においては、キャッシュテーブルをサブブロック
群ごと即ち行ごとに参照するため、行内の参照順序を示
すポインタが必要である。このポインタは、従来の装置
にも存在していたものである。
ュ制御においては、キャッシュテーブルをサブブロック
群ごと即ち行ごとに参照するため、行内の参照順序を示
すポインタが必要である。このポインタは、従来の装置
にも存在していたものである。
第7図は、キャッシュテーブルの行ごとのLRUポイン
タの説明図である。このポインタは、ディスクのアクセ
ス時にエントリが参照される際に、設定されるものであ
る。第7図はキャッシュテーブルの1つの行を取出して
示したもので、図中の数字は、現時点のキャッシュテー
ブルの参照順序を新しい順に示すものである。即ち、こ
の行で○印を付けて“l”と記入した第29列のエント
リは最新にアクセスされたもので、32°°と記入した
エントリは最古にアクセスされたものである。
タの説明図である。このポインタは、ディスクのアクセ
ス時にエントリが参照される際に、設定されるものであ
る。第7図はキャッシュテーブルの1つの行を取出して
示したもので、図中の数字は、現時点のキャッシュテー
ブルの参照順序を新しい順に示すものである。即ち、こ
の行で○印を付けて“l”と記入した第29列のエント
リは最新にアクセスされたもので、32°°と記入した
エントリは最古にアクセスされたものである。
第7図中三角形のマークを付けた第1列のエントリに着
目すると、行ごとのLRU前ポインタ45は、第15列
の°4゛と記入したエントリ(4)の格納位置を示す。
目すると、行ごとのLRU前ポインタ45は、第15列
の°4゛と記入したエントリ(4)の格納位置を示す。
また、LRU後ポインタ46は、第1列の“6°゛と記
入したエントリ(6)の格納位置を示す。LRU最新ポ
インタ47は、1°゛と記入したエントリの格納位置を
示し、LRU最古ポインタ48は、“31゛°と記入し
たエントリの格納位置を示す。
入したエントリ(6)の格納位置を示す。LRU最新ポ
インタ47は、1°゛と記入したエントリの格納位置を
示し、LRU最古ポインタ48は、“31゛°と記入し
たエントリの格納位置を示す。
[アクセス動作の説明]
以上の設定を行なった上で、図示しないプロセッサは、
次のようにディスクのアクセスを実行する。
次のようにディスクのアクセスを実行する。
ディスクのアクセスに先立って、コマンドによりアクセ
スすべきディスクアドレスを指定する。
スすべきディスクアドレスを指定する。
このディスクアドレスは、2進数ないしは16進数によ
り指定される。このディスクアドレスの上位桁により、
ディスクの論理ブロック3の行が特定される。また、こ
のディスクアドレスの下位桁により、ディスクの論理ブ
ロック番号が特定される。即ち、このディスクアドレス
により、参照の対象であるサブブロックが、256行の
サブブロック5のうちのどのサブブロックであり、その
サブブロックがディスクの論理ブロック3のうちのどの
ブロックに存在するかが特定される。そして、特定され
たサブブロック5の行位置に対応するキャッシュテーブ
ル2の行のエントリ6が参照される。この参照は、次の
ようにして行なわれる。
り指定される。このディスクアドレスの上位桁により、
ディスクの論理ブロック3の行が特定される。また、こ
のディスクアドレスの下位桁により、ディスクの論理ブ
ロック番号が特定される。即ち、このディスクアドレス
により、参照の対象であるサブブロックが、256行の
サブブロック5のうちのどのサブブロックであり、その
サブブロックがディスクの論理ブロック3のうちのどの
ブロックに存在するかが特定される。そして、特定され
たサブブロック5の行位置に対応するキャッシュテーブ
ル2の行のエントリ6が参照される。この参照は、次の
ようにして行なわれる。
[キャッシュテーブルに参照対象のエントリがある場合
] キャッシュテーブルに参照対象のエントリがある場合は
、該当行を列方向にサーチしていく途中で、参照対象で
あるエントリにヒツトする。サーチは、第7図に示すポ
インタを使ってLRU順に行なう。そして、ヒツトした
場合は、そのエントリからキャッシュ領域アドレスを取
出し、これにより、キャッシュメモリから対応するサブ
ブロックの読出しを行なう。
] キャッシュテーブルに参照対象のエントリがある場合は
、該当行を列方向にサーチしていく途中で、参照対象で
あるエントリにヒツトする。サーチは、第7図に示すポ
インタを使ってLRU順に行なう。そして、ヒツトした
場合は、そのエントリからキャッシュ領域アドレスを取
出し、これにより、キャッシュメモリから対応するサブ
ブロックの読出しを行なう。
[キャッシュテーブルに参照対象のエントリがない場合
] キャッシュテーブルに参照対象のエントリがない場合は
、該当行を列方向にサーチしていくが、参照対象である
エントリには、ヒツトしない。
] キャッシュテーブルに参照対象のエントリがない場合は
、該当行を列方向にサーチしていくが、参照対象である
エントリには、ヒツトしない。
サーチは、上述の場合と同様に、第7図に示すポインタ
を使ってLRU順に行なう。サーチ後、コントローラ8
は、キャッシュメモリの空領域数を読む。
を使ってLRU順に行なう。サーチ後、コントローラ8
は、キャッシュメモリの空領域数を読む。
キャッシュメモリに空領域がある場合、即ち、空領域数
が○でない場合には、キャッシュメモリの空領域ポイン
タ83を読む。そして、このポインタ83で示される領
域にディスクのサブブロック内のデータを転記する。そ
の後、キャッシュテーブルを更新する。
が○でない場合には、キャッシュメモリの空領域ポイン
タ83を読む。そして、このポインタ83で示される領
域にディスクのサブブロック内のデータを転記する。そ
の後、キャッシュテーブルを更新する。
[キャッシュテーブルの更新]
■同一行に格納できる最大数のエントリが格納済でない
場合、即ち同一行に空きがある場合は、空き位置にエン
トリを格納する。そして、行ごとのLRU最新ポインタ
47を更新する。さらに、当該エントリ6の行ごとのL
RU前ポインタ45と、行ごとのLRU後ポインタ4G
とにそれぞれ所定の格納位置を設定する。
場合、即ち同一行に空きがある場合は、空き位置にエン
トリを格納する。そして、行ごとのLRU最新ポインタ
47を更新する。さらに、当該エントリ6の行ごとのL
RU前ポインタ45と、行ごとのLRU後ポインタ4G
とにそれぞれ所定の格納位置を設定する。
■同一行に格納できる最大数のエントリが格納済の場合
、即ち同一行に空きがない場合は、行ごとのLRU最古
ポインタ48の示す格納位置のエントリを追い出す。そ
して、その格納位置にエントリを新しく作成する。さら
に、行ごとのLRU最新ポインタ47及び行ごとのLR
U最古ポインタ48をそれぞれ更新する。即ち、エント
リを追い出した格納位置を、行ごとのLRU最新ポイン
タ47に設定し、2番目に古いエントリの格納位置を、
行ごとのLRU最古ポインタ48に設定する。
、即ち同一行に空きがない場合は、行ごとのLRU最古
ポインタ48の示す格納位置のエントリを追い出す。そ
して、その格納位置にエントリを新しく作成する。さら
に、行ごとのLRU最新ポインタ47及び行ごとのLR
U最古ポインタ48をそれぞれ更新する。即ち、エント
リを追い出した格納位置を、行ごとのLRU最新ポイン
タ47に設定し、2番目に古いエントリの格納位置を、
行ごとのLRU最古ポインタ48に設定する。
一方、キャッシュメモリに空領域がない場合、即ち、空
領域数がOの場合には、コントローラ8のキャッシュテ
ーブルの全エントリについてのLRU最古ポインタ81
の示す格納位置のエントリを追い出す。その後、キャッ
シュテーブルのエントリを更新する。エントリの更新は
、上述した[キャッシュテーブルの更新]と同様にして
行なわれる。従って、キャッシュメモリが満杯になり、
キャッシュテーブル上の全エントリ数が、キャッシュメ
モリの領域数Mと等しくなったときは、それ以上エント
リが増やされない。このため、キャッシュメモリの同一
領域に対し、2以上のエントリが作成されるようなこと
はない。
領域数がOの場合には、コントローラ8のキャッシュテ
ーブルの全エントリについてのLRU最古ポインタ81
の示す格納位置のエントリを追い出す。その後、キャッ
シュテーブルのエントリを更新する。エントリの更新は
、上述した[キャッシュテーブルの更新]と同様にして
行なわれる。従って、キャッシュメモリが満杯になり、
キャッシュテーブル上の全エントリ数が、キャッシュメ
モリの領域数Mと等しくなったときは、それ以上エント
リが増やされない。このため、キャッシュメモリの同一
領域に対し、2以上のエントリが作成されるようなこと
はない。
そして、追い出したエントリのキャッシュ領域アドレス
42が示す領域のデータを追い出し、ディスクから読出
したサブブロックを転記する。
42が示す領域のデータを追い出し、ディスクから読出
したサブブロックを転記する。
その後、新しく作成したエントリのキャッシュ領域アド
レス42に、サブブロックを転記した領域のアドレスを
格納する。
レス42に、サブブロックを転記した領域のアドレスを
格納する。
本発明のディスクキャッシュの制御装置は、以上の実施
例に限定されない。
例に限定されない。
即ち、キャッシュテーブル2の行数や列数は、行X列が
キャッシュメモリ1の領域4の数より多くなるように決
めれば、どのような数にしてもよい。しかしながら、周
知のメモリリードライト及び照合動作は、2の累乗のデ
ータを一体に処理しているから、ハードウェアの構成上
は、キャッシュテーブルの列数は2の累乗の数になるよ
うにするのが最も効率的で好ましい。
キャッシュメモリ1の領域4の数より多くなるように決
めれば、どのような数にしてもよい。しかしながら、周
知のメモリリードライト及び照合動作は、2の累乗のデ
ータを一体に処理しているから、ハードウェアの構成上
は、キャッシュテーブルの列数は2の累乗の数になるよ
うにするのが最も効率的で好ましい。
(発明の効果)
以上の構成の本発明のディスクキャッシュの制御方式は
、キャッシュテーブルなNセットアソシアティブ形式に
したので、キャッシュテーブルの参照時間を短くするこ
とができる。
、キャッシュテーブルなNセットアソシアティブ形式に
したので、キャッシュテーブルの参照時間を短くするこ
とができる。
また、各サブブロック群ごとにキャッシュテーブルに格
納できるエントリ数の最大値を大きくしたので、アクセ
スそのサブブロック群に集中したときのヒツト率を低下
させないようにできる。
納できるエントリ数の最大値を大きくしたので、アクセ
スそのサブブロック群に集中したときのヒツト率を低下
させないようにできる。
これらにより、ディスクのアクセス時間を従来より更に
短縮することができる。
短縮することができる。
第1図は本発明に係るディスクキャッシュ制御装置の構
成を示す説明図、第2図は従来のフルセットアソシアテ
ィブ方式の説明図、第3図は従来の4セットアソシアテ
ィブ方式の説明図、第4図は本発明に係るキャッシュテ
ーブルのエントリの構成図、第5図は全エントリについ
てのLRUポインタの説明図、第6図は本発明に係るコ
ントローラの制御情報の説明図、第7図は行ごとのLR
Uポインタの説明図である。 1・・・キャッシュメモリ、 2・・・キャッシュテーブル、 3・・・ディスクの論理ブロック、4・・・領域、5・
・・サブブロック、6・・・エントリ。 特許出願人 沖電気工業株式会社 本発明に係るキャッシュテーブルのエントリ第4図
成を示す説明図、第2図は従来のフルセットアソシアテ
ィブ方式の説明図、第3図は従来の4セットアソシアテ
ィブ方式の説明図、第4図は本発明に係るキャッシュテ
ーブルのエントリの構成図、第5図は全エントリについ
てのLRUポインタの説明図、第6図は本発明に係るコ
ントローラの制御情報の説明図、第7図は行ごとのLR
Uポインタの説明図である。 1・・・キャッシュメモリ、 2・・・キャッシュテーブル、 3・・・ディスクの論理ブロック、4・・・領域、5・
・・サブブロック、6・・・エントリ。 特許出願人 沖電気工業株式会社 本発明に係るキャッシュテーブルのエントリ第4図
Claims (1)
- 【特許請求の範囲】 ディスクに格納されたデータをP個の論理ブロックに分
割し、 さらに前記論理ブロックをQ個のサブブロックに分割し
て、 前記各論理ブロック中の対応する位置にある各サブブロ
ックをまとめてサブブロック群と呼び、合計Q個のサブ
ブロック群を設定する一方、前記サブブロック単位で前
記データを転記するための領域をM個(但し、M<P×
Q)設け、最新にアクセスされたサブブロックを優先し
て転記するキャッシュメモリと、 前記各サブブロック群毎に、最大N個(但し、N<P)
のエントリを、最新に参照されたエントリを優先して格
納するよう設定したキャッシュテーブルとを設け、N×
Q>Mとなるように前記キャッシュテーブルの容量を選
定し、 前記エントリは、前記サブブロックを前記 キャッシュメモリに転記したとき、各サブブロック毎に
作成され、対応するサブブロックの属する前記論理ブロ
ックを特定する情報と、対応するサブブロックの転記さ
れた前記キャッシュメモリ上のアドレス情報とを含むこ
とを特徴とするディスクキャッシュの制御方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP1016307A JPH02197941A (ja) | 1989-01-27 | 1989-01-27 | ディスクキャッシュの制御方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP1016307A JPH02197941A (ja) | 1989-01-27 | 1989-01-27 | ディスクキャッシュの制御方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH02197941A true JPH02197941A (ja) | 1990-08-06 |
Family
ID=11912879
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP1016307A Pending JPH02197941A (ja) | 1989-01-27 | 1989-01-27 | ディスクキャッシュの制御方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH02197941A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2014137749A (ja) * | 2013-01-17 | 2014-07-28 | Fujitsu Ltd | ストレージ装置、書込制御方法、および書込制御プログラム |
-
1989
- 1989-01-27 JP JP1016307A patent/JPH02197941A/ja active Pending
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2014137749A (ja) * | 2013-01-17 | 2014-07-28 | Fujitsu Ltd | ストレージ装置、書込制御方法、および書込制御プログラム |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6857045B2 (en) | Method and system for updating data in a compressed read cache | |
| US6216199B1 (en) | Hardware mechanism for managing cache structures in a data storage system | |
| US5530829A (en) | Track and record mode caching scheme for a storage system employing a scatter index table with pointer and a track directory | |
| US5991775A (en) | Method and system for dynamic cache allocation between record and track entries | |
| EP0772131A3 (en) | Method and apparatus for support of virtual channels for the transfer of data | |
| JP4067293B2 (ja) | キャッシュ制御プログラムおよびキャッシュ処理を行うコンピュータ | |
| JPH02281350A (ja) | キヤツシユ・メモリ管理 | |
| JPH0644137A (ja) | 動的マップド・データ蓄積システムにおける補助記憶装置へのデータ転送のための方法および装置 | |
| JPH1063578A (ja) | 情報記録再生装置 | |
| US8122216B2 (en) | Systems and methods for masking latency of memory reorganization work in a compressed memory system | |
| JPH08137754A (ja) | ディスクキャッシュ装置 | |
| JPS59220853A (ja) | デイスクキヤツシユシステム | |
| JPH02197941A (ja) | ディスクキャッシュの制御方式 | |
| JP2006012006A (ja) | キャッシュ装置及び方法 | |
| EP0665499A2 (en) | Hierarchic data storage system | |
| US6594726B1 (en) | Digital data storage subsystem including arrangement for efficiently controlling fast write storage operation | |
| JP3157673B2 (ja) | 仮想記憶システム | |
| WO1994022134A1 (en) | Buffer control for data transfer within hard disk during idle periods | |
| JP2718679B2 (ja) | データ転送制御装置 | |
| JP2002108707A (ja) | キャッシュメモリ制御方式 | |
| JPH0612331A (ja) | キャッシュメモリ制御装置 | |
| JPS60230247A (ja) | デイスク制御装置 | |
| JPH0991195A (ja) | ブロックメモリ管理装置 | |
| JPH06290000A (ja) | ディスクコントローラ | |
| JPH0652056A (ja) | キャシュメモリシステム |