JPH0388050A - Multilevel lru control system - Google Patents
Multilevel lru control systemInfo
- Publication number
- JPH0388050A JPH0388050A JP1225395A JP22539589A JPH0388050A JP H0388050 A JPH0388050 A JP H0388050A JP 1225395 A JP1225395 A JP 1225395A JP 22539589 A JP22539589 A JP 22539589A JP H0388050 A JPH0388050 A JP H0388050A
- Authority
- JP
- Japan
- Prior art keywords
- pointer
- level
- block
- lru
- priority
- 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 description 13
- 101150106086 PRY1 gene Proteins 0.000 description 8
- 208000033748 Device issues Diseases 0.000 description 5
- 238000007796 conventional method Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000008685 targeting Effects 0.000 description 3
- 230000007423 decrease Effects 0.000 description 2
- 230000004069 differentiation Effects 0.000 description 2
- 239000000919 ceramic Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Description
【発明の詳細な説明】
[発明の目的]
(産業上の利用分野)
この発明は、階層化されたL R U (LeastR
ecently Used )制御に好適な多階層LR
U制御方式に関する。[Detailed Description of the Invention] [Object of the Invention] (Industrial Application Field) This invention provides a hierarchical L R U (Least R
Multi-layer LR suitable for recently Used control
Regarding U control method.
(従来の技術)
ディスクキャッシュシステムにおいて、ディスクデータ
の書込み対象とされる(ステージングされる)キャッシ
ュメモリ内のブロック(キャッシュブロック)は、LR
Uアルゴリズムに従って決定されるのが一般的である。(Prior Art) In a disk cache system, a block (cache block) in a cache memory to which disk data is written (staged) is an LR.
It is generally determined according to the U algorithm.
特に近年のディスクキャッシュシステムは、(同一カラ
ムについて)ブロック別に優先度を設定し、この優先度
に従ってステージングされるブロックを決定する階層化
されたLRUアルゴリズムが適用されるようになってい
る。この階層化されたLRUアルゴリズムを実現する手
段は従来より幾つか知られている。In particular, in recent disk cache systems, a hierarchical LRU algorithm has been applied that sets a priority for each block (with respect to the same column) and determines blocks to be staged according to this priority. Several means for realizing this layered LRU algorithm have been conventionally known.
その1つは、優先度を示すビットを設け、同ビットで示
される優先度が高いものは、低いものに対していかなる
場合にも上位レベルに置かれるというものである(これ
を、第1の従来方式と呼ぶ)。One is to provide a bit that indicates priority, and items with higher priority indicated by the same bit are always placed at a higher level than those with lower priority (this is done in the first (referred to as the conventional method).
この第1の従来方式では、優先度を一度高くすると、そ
のブロックを意図的にクリアするか、それよりも低い優
先度のものが完全になくなるかしないと、そのブロック
は追出されることはない。2つ目は、対象ブロックがミ
ス( Mlss) Lた際にステージングされるレベル
を最上位に限定せずに、意図的に変化させることにより
、初期優先度を設定するものである(これを、第2の従
来方式と呼ぶ)。但し、この初期優先度が有効となるの
は、キャッシュに存在する間で最初の1度だけであり、
以後いかなるブロックであってもヒツト(Hit )す
ると、初期優先度に関係なく最上位レベルにアップする
。In this first conventional method, once a block is given a high priority, it cannot be evicted unless it is intentionally cleared or all blocks of lower priority are completely eliminated. . The second method is to set the initial priority by intentionally changing the level at which the target block is staged when it misses (Mlss) without limiting it to the highest level. (referred to as the second conventional method). However, this initial priority is valid only once while it exists in the cache.
Thereafter, if any block is hit, it will be upgraded to the highest level regardless of its initial priority.
(発明゛が解決しようとする課題)
上記したIllの従来方式では、優先度の高いブロック
は常駐度が非常に高く、簡単に追出されることはない。(Problems to be Solved by the Invention) In the conventional Ill system described above, blocks with high priority have a very high degree of residency and are not easily evicted.
しかし、その反面、全く使用されない場合でも、いつま
でもキャッシュメモリを占領してしまう。また、優先度
の高いものが幾つも増えてしまうと、優先度の低いもの
に対してのエリアが小さくなり、キャッシュの効率が低
下するという問題が発生する。一方、上記第2の従来方
式では、一旦ヒットすると、そのブロックは最上位レベ
ルとなるので、優先度の高いものの常駐度が曖昧で、ま
た優先度の効力が薄い。However, on the other hand, even if it is not used at all, it occupies the cache memory forever. Furthermore, when the number of high-priority items increases, the area for low-priority items becomes smaller, resulting in a problem that cache efficiency decreases. On the other hand, in the second conventional method, once a block is hit, the block becomes the highest level, so the degree of residence of a block with a high priority is ambiguous, and the effect of the priority is weak.
この発明は上記事情に鑑みてなされたものでその目的は
、キャッシュ対象ブロックがキャッシュに存在する間は
、同ブロックに割当てられた優先度(PRY)に応じた
LRU制御が行え、もって優先度による明確な差別化が
図れる多階層LRU制御方式を提供することにある。This invention was made in view of the above circumstances, and its purpose is to perform LRU control according to the priority (PRY) assigned to the block while the block to be cached exists in the cache. The object of the present invention is to provide a multilayer LRU control method that allows clear differentiation.
この発明の他の発明は、優先度毎のキャッシュ占有能力
並びにキャッシュ内常駐度がフレキシブルに設定でき、
もってキャッシュ効率の向上が図れる多階層LRU制御
方式を提供することにある。Another invention of the present invention is that the cache occupancy capacity and cache residency degree for each priority can be flexibly set.
An object of the present invention is to provide a multi-layer LRU control method that can improve cache efficiency.
[発明の構成]
(課題を解決するための手段)
この発明は、キャッシュ対象ブロック毎に、そのブロッ
クの優先度としてn通りの優先度の1つを付与する手段
と、キャッシュの各カラム毎に且つ上記n通りの優先度
のそれぞれについて設けられ、対応する優先度に対する
現時点での最上位バンクレベルを示す第1のポインタと
、上記n通りの優先度のそれぞれについて設けられ、対
応する優先度に対する最上位バンクレベルの最低保証レ
ベルが任意に設定可能な第2のポインタと、キャッシュ
対象ブロックの優先度に応じて対応する第1のポインタ
を選択する選択手段と、この選択手段によって選択され
た第1のポインタによって示されるバンクレベルから最
低バンクレベルまでを対象範囲として、キャッシュ対象
ブロックのキャツシュヒツト/ミス状態に応じてLRU
管理テ−プルを用いたLRU制御を行うLRU制御手段
と、上記第1のポインタの更新を司るポインタ更新手段
であって、キャッシュミス発生時においてキャッシュ対
象ブロックより低い優先度に対応する第1のポインタの
示すバンクレベルが同ポインタに対応する第2のポイン
タの示す最低保証レベルより高い場合には、この第1の
ポインタを更新して、そのバンクレベルを下げるように
構成されているポインタ更新手段とを設けたことを特徴
とするものである。この発明は更に、上記各第1のポイ
ンタのうち、対応する上記第2のポインタの示す最低保
証レベルより低いバンクレベルを示す第1のポインタに
ついては、その内容を上記最低保証レベルに一致させる
ように更新するようにしている。[Structure of the Invention] (Means for Solving the Problems) This invention provides means for assigning one of n types of priority to each block to be cached, and means for assigning one of n types of priority to each block to be cached, and A first pointer is provided for each of the above n types of priorities and indicates the current highest bank level for the corresponding priority; a second pointer for which a minimum guarantee level at the highest bank level can be arbitrarily set; a selection means for selecting a corresponding first pointer according to the priority of the block to be cached; and a second pointer selected by the selection means. The target range is from the bank level indicated by pointer 1 to the lowest bank level, and the LRU is
LRU control means that performs LRU control using a management table; and pointer update means that controls updating of the first pointer, the first pointer corresponding to a lower priority than the block to be cached when a cache miss occurs. Pointer updating means configured to update the first pointer to lower the bank level when the bank level indicated by the pointer is higher than the minimum guaranteed level indicated by the second pointer corresponding to the same pointer. It is characterized by having the following. The present invention further provides that, among the first pointers, a first pointer indicating a bank level lower than the minimum guaranteed level indicated by the corresponding second pointer has its contents matched with the minimum guaranteed level. I am trying to update it to .
(作用)
上記の構成によれば、対象ブロックに付与された優先度
(PRY−i)に対応する第1のポインタ(Pi )の
示すバンクレベルから最低バンクレベルまでを対象範囲
としてLRU制御が行われ、これによりキャツシュヒツ
トまたはミスした対象ブロックは、その優先度に応じた
最上位レベルに位置付けされる。また、キャツシュヒツ
トの場合であれば、上記最上位レベルから対象ブロック
がそれまで位置していたレベルより1つ上のレベルまで
の各ブロックがそれぞれ1つ下のレベルにダウンされる
。またキャッシュミスの場合であれば、上記最上位レベ
ルから最下位レベルより1つ上のレベルに位置していた
各ブロックがそれぞれ1つ下のレベルにダウンされ、最
下位レベルに位置していたブロックが追出される。また
キャッシュミス時には、対象ブロックより低い優先度に
対応する第1のポインタ(Pl)の示すバンクレベルが
同ポインタに対応する第2のポインタ(A1)の示す最
低保証レベルより高い場合に限り、この第1のポインタ
(Pl)は1つ下のレベルを示すように更新され、これ
により対象ブロックより上位の優先度のブロック用のエ
リアが広げられる。さて、上記のLRU制御により、優
先度PRY−iのブロックが第2のポインタA I+1
で示されるレベルより1つ上のレベルを下限とするPR
Y−iのキャッシュメモリ(LRU管理テーブル)内有
効エリアから追出されると、そのブロックはヒツトしな
い限り、1つ下の優先度PRY−i+1と同等に扱われ
、更にPRY= i +1の有効エリアからも追出され
ると、優先度PRY−i+2というように順次レベルが
下がる。したがって、第2のポインタの値(最低保証レ
ベル)を変化させることで、対応する優先度(PRY)
のエリアの拡大/縮小、同エリア内でのブロック常駐期
間の調整が可能となる。(Operation) According to the above configuration, LRU control is performed with the target range from the bank level indicated by the first pointer (Pi) corresponding to the priority (PRY-i) assigned to the target block to the lowest bank level. As a result, the hit or missed target block is positioned at the highest level according to its priority. Furthermore, in the case of a cash hit, each block from the highest level to the level one level higher than the level where the target block was located up to that point is downgraded to the level one level lower. In addition, in the case of a cache miss, each block located one level above the lowest level from the top level is downgraded to the next level, and the block located at the lowest level is is expelled. In addition, at the time of a cache miss, only if the bank level indicated by the first pointer (Pl) corresponding to a lower priority than the target block is higher than the minimum guaranteed level indicated by the second pointer (A1) corresponding to the same pointer, this The first pointer (Pl) is updated to point to the next lower level, thereby expanding the area for blocks with a higher priority than the target block. Now, by the above LRU control, the block with priority PRY-i is transferred to the second pointer A I+1
PR whose lower limit is one level higher than the level indicated by
When the block is evicted from the effective area in the cache memory (LRU management table) of Y-i, unless it is hit, it is treated as the same as the next lower priority PRY-i+1, and is further evicted from the effective area of PRY=i+1. If the user is also kicked out, the level is sequentially lowered to priority PRY-i+2. Therefore, by changing the value of the second pointer (minimum guaranteed level), the corresponding priority (PRY)
It becomes possible to expand/shrink the area and adjust the block resident period within the same area.
(実施例)
第1図はこの発明を適用するLRU制御装置の一実施例
を示すブロック構成図である。第1図のLRU制御装置
はディスクキャッシュシステムのLRU制御を行うもの
であり、Hは各ブロック(キャッシュブロック)のバン
クレベル、更に具体的に述べるならばキャッシュ(キャ
ッシュメモリ)の各カラム毎に、そのカラムを構成する
各ブロックについてバンク別の優先度を示すバンクレベ
ルを記憶するための周知のLRU管理テーブルである。(Embodiment) FIG. 1 is a block diagram showing an embodiment of an LRU control device to which the present invention is applied. The LRU control device in FIG. 1 performs LRU control of the disk cache system, and H is the bank level of each block (cache block), and more specifically, each column of the cache (cache memory). This is a well-known LRU management table for storing bank levels indicating priorities for each bank for each block forming the column.
12はLRU論理に基づくブロックの並べ替えを行うL
RU制御回路、13はディスクアドレスを用いて図示せ
ぬディレクトリの検索並びにヒツト/ミス(キャツシュ
ヒツト/ミス)の判定を行うタグデータ制御回路である
。本実施例では、キャッシュ対象ブロックのタグデータ
とは別に、そのブロックの優先度(PRY)を示すビッ
トが用意され、タグデータ制御回路13はこの優先度ビ
ットの検出も行うようになっている。上記PRYの値1
(PRY−i)は、n階層LRUの場合には0.1・・
・n−1のいずれかとなり、1が小さいものほど高優先
度を示す。12 is L that rearranges blocks based on LRU logic.
The RU control circuit 13 is a tag data control circuit that searches a directory (not shown) and determines hits/misses (cash hits/misses) using disk addresses. In this embodiment, apart from the tag data of the block to be cached, a bit indicating the priority (PRY) of the block is prepared, and the tag data control circuit 13 also detects this priority bit. The value of PRY above is 1
(PRY-i) is 0.1 in the case of n-tier LRU.
- One of n-1, the smaller the number 1, the higher the priority.
14−0.14−l−14−(n−1)はそれぞれPR
Y−0゜PRY−1・・・PRY−n−1のブロックに
対する現時点での最上位レベルをポインタ値PO,PL
・・・P n−1で示し、LRUの対象範囲を指定する
ポインタ、15−0.15−l−15−(n−1)はそ
れぞれPRY−0,PRY−1−PRY−n−1に対す
る最低保証レベルをポインタ値AO,AI・・・An−
1で示すポインタである。ポインタ14−0〜14−(
n−1)はキャッシュのカラム毎に用意される。また上
記ポインタ値AO,Al・・・A n−1は図示せぬホ
スト装置のソフトウェア処理によって任意に設定可能で
ある。1Bはキャッシュ対象ブロックが属するカラムに
固有のポインタ14−0〜14−(n−1)の示すポイ
ンタ値PO〜P n−1の中から、タグデータ制御回路
13によって検出されたPRY−iに対応するポインタ
14−1のポインタ値Piを選択してLRU制御回路1
2に出力するためのセレクタ(SEL)、17はタグデ
ータ制御回路13によって検出されたPRY。14-0.14-l-14-(n-1) are each PR
Y-0゜PRY-1...The current highest level for the block of PRY-n-1 is the pointer value PO, PL.
... P n-1 is a pointer specifying the target range of LRU, 15-0.15-l-15-(n-1) is for PRY-0, PRY-1-PRY-n-1, respectively. The minimum guaranteed level is the pointer value AO, AI...An-
This is a pointer indicated by 1. Pointer 14-0 to 14-(
n-1) is prepared for each column of the cache. Further, the pointer values AO, Al...A n-1 can be arbitrarily set by software processing of a host device (not shown). 1B selects PRY-i detected by the tag data control circuit 13 from among pointer values PO to P n-1 indicated by pointers 14-0 to 14-(n-1) specific to the column to which the block to be cached belongs. The pointer value Pi of the corresponding pointer 14-1 is selected and the LRU control circuit 1
2, a selector (SEL) for outputting; 17, PRY detected by the tag data control circuit 13;
ポインタ15−0〜15−(n−1)の示すポインタ値
AO〜A n−1およびタグデータ制御回路13のヒツ
ト/ミス判定結果をもとに、ポインタPi (i−1
〜n−1)の更新を行うポインタ更新回路である。Pointer Pi (i-1
.about.n-1) is a pointer update circuit that updates the points.
LlはLRU制御回路12とタグデータ制御回路13と
の間のブロック番号(アドレス)の授受に供されるブロ
ック情報ライン、L2はタグデータ制御回路13による
ヒツト/ミス判定結果の伝達に供される判定ライン、L
3はタグデータ制御回路13によってヒツト/ミス判定
されたブロックのPRYの伝達に供されるPRYライン
である。Ll is a block information line used for transmitting and receiving block numbers (addresses) between the LRU control circuit 12 and the tag data control circuit 13, and L2 is used for transmitting hit/miss determination results by the tag data control circuit 13. Judgment line, L
Reference numeral 3 denotes a PRY line used for transmitting PRY of a block determined as a hit/miss by the tag data control circuit 13.
次に、第1図の構成の動作を、キャッシュメモリのバン
ク数が8(即ち、バンクレベルが最上位レベル1〜最下
位レベル8)で、2階層LRUアルゴリズムを適用する
場合(即ちn−2の場合)を例に、第2図および第3図
を参照して説明する。Next, the operation of the configuration shown in FIG. 1 will be explained when the number of banks of the cache memory is 8 (that is, the bank levels are from the highest level 1 to the lowest level 8) and a two-layer LRU algorithm is applied (that is, n-2 (case) will be explained with reference to FIGS. 2 and 3 as an example.
なお、第2図は第1図のLRU管理テーブル11の内容
(一部)をポインタ値PO,Pi、AO。Note that FIG. 2 shows the contents (part) of the LRU management table 11 of FIG. 1 as pointer values PO, Pi, and AO.
AIと対応させて時系列的に示す図、第3図は動作を説
明するためのフローチャートである。第2図においては
、LRU管理テーブル内容はレベル順に並べである。図
中の括弧内の第1文字(ここでは0または1)は対応ブ
ロックのPTYを示し、第2文字(ここではA、B・・
・Kのいずれか)は対応ブロックの名称を示す。FIG. 3, which is a diagram chronologically shown in correspondence with AI, is a flowchart for explaining the operation. In FIG. 2, the contents of the LRU management table are arranged in order of level. The first character in parentheses (0 or 1 here) indicates the PTY of the corresponding block, and the second character (here A, B, etc.) in the parentheses indicates the PTY of the corresponding block.
・K) indicates the name of the corresponding block.
■ まず、あるカラムに関し、初めてPRY−〇のブロ
ックがステージングされるまでは、PRY−0,PRY
−1の最上位レベルをそれぞれ示すポインタ14−0.
14−1のポインタ値PO9Piの内容は一致している
(PRY−0用のエリアが存在しない)。その後、PR
Y−0のブロックがステージングされて、初めてポイン
タ値PIが1つレベルダウンし、PRY−0用のエリア
が1つ確保される。この状態が、第2図において符号2
工に示されている。以後、この状態から具体的に動作説
明を開始する。■ First, for a certain column, until a block of PRY-〇 is staged for the first time, PRY-0, PRY
-1 pointers 14-0 .
The contents of the pointer value PO9Pi of 14-1 match (there is no area for PRY-0). After that, PR
Only after the block Y-0 is staged, the pointer value PI goes down by one level, and one area for PRY-0 is secured. This state is represented by the symbol 2 in Figure 2.
The construction is shown in the diagram. Hereinafter, a detailed explanation of the operation will be started from this state.
■ 第2図において符号21で示される状態で、ホスト
装置から(ソフトウェア処理等によって)PRY−1が
割当てられたブロックIへのアクセス要求(1,I)が
発せられたものとする。タグデータ制御回路13は、上
記の要求に応じてディレクトリの検索を行ってキャツシ
ュヒツト/ミスの判定を行う。もし、(1,I)がキャ
ッシュミスの場合、タグデータ制御回路13は判定ライ
ンL2上にその旨を示すヒツト/ミス信号を出力し、P
RYラインL3上にブロック■のPRY (プライオリ
ティ)である1を出力する。またタグデータ制御回路1
3はブロック情報ラインLL上にブロックIのブロック
番号(アドレス)を出力する。(2) In the state indicated by reference numeral 21 in FIG. 2, it is assumed that the host device issues an access request (1, I) to block I to which PRY-1 is allocated (by software processing or the like). The tag data control circuit 13 searches the directory in response to the above request and determines whether the cache is hit or missed. If (1, I) is a cache miss, the tag data control circuit 13 outputs a hit/miss signal indicating this on the determination line L2, and P
Outputs 1, which is the PRY (priority) of block (2), onto the RY line L3. Also, tag data control circuit 1
3 outputs the block number (address) of block I on block information line LL.
PRYラインL3上のPRY (−1)はセレクタ1B
に伝達される。このセレクタ1Bの入力には、ブロック
Iが属するカラムに固有のポインタ14−0〜14−(
n−Dのポインタ値PO〜Pn−1(n−2のこの例で
は、ポインタ14−0.14−1のポインタ値PO,P
i)が供給されている。セレクタ1Bは、ポインタ値P
O,Plのうち、PRYラインL3上のPRY (−1
)に対応するポインタ値(ここではPi)を選択する。PRY (-1) on PRY line L3 is selector 1B
transmitted to. The input of this selector 1B contains pointers 14-0 to 14-(
Pointer values PO to Pn-1 of n-D (in this example of n-2, pointer values PO, P of pointer 14-0.14-1
i) is supplied. Selector 1B is the pointer value P
Of O and Pl, PRY (-1
) is selected (in this case, Pi).
セレクタ1Bによって選択されたポインタ値(Pl)は
LRU制御回路12に伝達される。The pointer value (Pl) selected by the selector 1B is transmitted to the LRU control circuit 12.
LRU制御回路12は、セレクタ16によって選択され
たポインタ値(Pl )の示すレベルのブロックから最
下位レベルまでのブロックを対象範囲として、判、定う
インL2上のヒツト/ミス信号に応じてLRU論理を実
行する。ここでは、上記ヒツト/ミス信号はキャッシュ
ミスを示していることから、LRU制御回路I2は、ブ
ロックIをセレクタ16によって選択されたポインタ値
pt (ブロック■のPRY−1に対応するポインタ
14−1のボインク値PL)の示すレベル(バンクレベ
ル)2にステージングし、このレベル2〜レベル7にあ
った(1.0)〜(1,8)をレベル3〜レベル8にそ
れぞれ1つずつダウンする。これにより、最下位レベル
にあった(1.A)がキャッシュメモリ(LRU管理テ
ーブル11)から追出される。この結果、第2図におい
て符号21で示されるLRU管理テーブル11の状態は
、同図において符号22で示される状態に変化する。以
上のLRU制御回路12の動作においては、対象ブロッ
ク(I)のPRY−i(−1)については全く意識せず
に、ポインタ値P1 (−PI )を最上位レベルと
する対象範囲を考慮してLRU論理を実行すればよい。The LRU control circuit 12 controls the LRU according to the hit/miss signal on the input L2 which is determined and determined, with the target range being the block from the block at the level indicated by the pointer value (Pl) selected by the selector 16 to the lowest level. Execute logic. Here, since the hit/miss signal indicates a cache miss, the LRU control circuit I2 sets block I to the pointer value pt selected by the selector 16 (pointer 14-1 corresponding to PRY-1 of block Stage it to the level (bank level) 2 indicated by the Boink value PL), and lower the (1.0) to (1,8) that were in levels 2 to 7 by one to levels 3 to 8. . As a result, (1.A) at the lowest level is evicted from the cache memory (LRU management table 11). As a result, the state of the LRU management table 11 indicated by reference numeral 21 in FIG. 2 changes to the state indicated by reference numeral 22 in the figure. In the above-described operation of the LRU control circuit 12, the target range with the pointer value P1 (-PI) as the highest level is taken into consideration without being aware of PRY-i (-1) of the target block (I). It is sufficient to execute the LRU logic using
したがってLRU制御回路12には、従来のLRU制御
回路をそのまま流用することが可能である。Therefore, it is possible to use a conventional LRU control circuit as it is for the LRU control circuit 12.
PRYラインL3上のPRY (−1)はポインタ更新
回路17にも伝達される。このポインタ更新回路17に
は、判定ラインL2上のヒツト/ミス信号、ブロックI
が属するカラムに固有のポインタ14−0.14−1の
ポインタ値PO,PIおよびポインタ15−0.15−
1のポインタ値AO,At も伝達される。ポインタ更
新回路17は、これらの情報に基づいて、PO,PLの
更新動作を第3図のフローチャートに従って次のように
実行する。PRY (-1) on PRY line L3 is also transmitted to pointer update circuit 17. This pointer update circuit 17 includes a hit/miss signal on the decision line L2, a block I
Pointer values PO, PI of pointer 14-0.14-1 and pointer 15-0.15- specific to the column to which it belongs
A pointer value AO,At of 1 is also conveyed. Based on this information, the pointer update circuit 17 executes the update operation of PO and PL in accordance with the flowchart of FIG. 3 as follows.
ポインタ更新回路17はまず、更新対象ポインタ14−
1を指定するための変数iをOに初期設定する(ステッ
プSI)。そしてポインタ更新回路17は、変数iがn
(ここではn−2)より小さいか否かを調べ(ステップ
S2)、i−Q、n−2である本実施例のようにinn
の場合には、更にキャッシュミスであるか否かを判定ラ
インL2上のヒツト/ミス信号により調べる(ステップ
S3)。The pointer update circuit 17 first updates the pointer 14-
A variable i for specifying 1 is initialized to O (step SI). Then, the pointer update circuit 17 determines that the variable i is n
(in this case, n-2) (step S2), and as in this embodiment where i-Q, n-2, inn
In this case, it is further checked whether or not there is a cache miss based on the hit/miss signal on the determination line L2 (step S3).
ポインタ更新回路17は、この例のようにキャッシュミ
スの場合、iがPRYラインL3上のPRYより大きい
か否かを調べ(ステップS4) i−〇、PRY−
1である本実施例のようにi〉PRYでない場合には、
更にPlがA+より大きいか否かを調べる(ステップS
5)。このステップS5は、例えばシステム立上げ時に
ホスト装置によって設定されたA+の値が途中で変更さ
れた場合を考慮して行われるもので、Pi >AIであ
るならば、PlがAIと同一値に更新され(ステップS
[l)、Lかる後にiが+1される(ステップS7)。In the case of a cache miss as in this example, the pointer update circuit 17 checks whether i is larger than PRY on PRY line L3 (step S4) i-〇, PRY-
1, if i>PRY is not the case, as in this embodiment,
Furthermore, it is checked whether Pl is larger than A+ (step S
5). This step S5 is performed in consideration of the case where, for example, the value of A+ set by the host device at the time of system startup is changed, and if Pi > AI, Pl becomes the same value as AI. updated (step S
After [l) and L, i is incremented by 1 (step S7).
これに対し、Pi −PO−1、AI−AO−1である
本実施例(第2図の符号21で示される状態参照)のよ
うにPi >AI (PO>AO)でない場合には、
ステップS6をスキップして即ちPI−POを更新せず
に、ステップS7が行われる。この結果、本実施例では
i−1となる。On the other hand, when Pi > AI (PO > AO) is not the case as in this embodiment where Pi -PO-1 and AI-AO-1 (refer to the state indicated by reference numeral 21 in FIG. 2),
Step S7 is performed by skipping step S6, ie, without updating the PI-PO. As a result, in this embodiment, it becomes i-1.
ステップS7が行われると、ステップS2に戻る。ここ
ではi−1,11m 2、PRY−1、キャッシュミス
発生、PI −PL−2、AI −AI−3であること
から、上記したi−0の場合と同様にステップ82〜S
5を経由してステップS7が行われる。このため、Pl
(−Pi)の更新は行われず、iだけが2にインクリ
メントされる。After step S7 is performed, the process returns to step S2. Here, since i-1, 11m 2, PRY-1, cache miss occurred, PI-PL-2, AI-AI-3, steps 82 to S
Step S7 is performed via Step 5. For this reason, Pl
(-Pi) is not updated, and only i is incremented to 2.
このi−2のサイクルでは、ステップS2におけるja
nの条件が成立しなくなる。この場合、ポインタ更新回
路17の動作は終了となる。In this cycle i-2, ja in step S2
The condition n no longer holds true. In this case, the operation of the pointer update circuit 17 ends.
■ 次に、第2図において符号22で示される状態で、
ホスト装置からPRY−0が割当てられたブロックJへ
のアクセス要求(0,j)が発せられ、同要求(0,j
)がキャッシュミスとなったものとする。この場合、判
定ラインL2上にはキャッシュミスを示すヒツト/ミス
信号が、PRYラインL3上にはブロックJのPRYで
ある○が、ブロック情報ラインLL上にはブロックJの
ブロック番号が出力される。セレクタ16は、PRYラ
インL3上のPRYが0の場合、対応するポインタ14
−0のポインタ値POを選択する。■Next, in the state indicated by reference numeral 22 in Fig. 2,
The host device issues an access request (0, j) to block J to which PRY-0 is allocated, and the request (0, j
) has become a cache miss. In this case, a hit/miss signal indicating a cache miss is output on the judgment line L2, a PRY of block J is output on the PRY line L3, and the block number of block J is output on the block information line LL. . When PRY on the PRY line L3 is 0, the selector 16 selects the corresponding pointer 14.
-0 pointer value PO is selected.
LRU制御回路12は、セレクタ1Bによって選択され
たポインタ値(PO)の示すレベルのブロックから最下
位レベルまでのブロックを対象範囲として、判定ライン
L2上のヒツト/ミス信号に応じてLRU論理を実行す
る。ここでは、上記ヒツト/ミス信号はキャッシュミス
を示していることから、LRU制御回路12は、ブロッ
クJをセレクタ16によって選択されたポインタ値PO
(ブロックJのPRY−0に対応するポインタ14−o
のポインタ値PO)の示すレベル(バンクレベル)1に
ステージングし、このレベル1〜レベル7にあった(0
.H)〜(1,C)をレベル2〜レベル8にそれぞれ1
つずつダウンする。これにより、最下位レベルにあった
(1.8)がキャッシュメモリ(LRU管理テーブル1
1)から追出される。この結果、第2図において符号2
2で示されるLRU管理テーブル11の状態は、同図に
おいて符号23で示される状態に変化する。The LRU control circuit 12 executes LRU logic in accordance with the hit/miss signal on the determination line L2, targeting blocks from the block at the level indicated by the pointer value (PO) selected by the selector 1B to the lowest level. do. Here, since the hit/miss signal indicates a cache miss, the LRU control circuit 12 sets the block J to the pointer value PO selected by the selector 16.
(Pointer 14-o corresponding to PRY-0 of block J
It is staged to the level (bank level) 1 indicated by the pointer value PO), and the data that was at this level 1 to level 7 (0
.. H) ~ (1, C) 1 each for level 2 ~ level 8
Go down one by one. As a result, the cache memory (LRU management table 1) which was at the lowest level (1.8) is
1) be kicked out. As a result, in Fig. 2, the number 2
The state of the LRU management table 11 indicated by 2 changes to the state indicated by 23 in the figure.
一方、ポインタ更新回路17は、前記した(1゜■)の
場合と同様に第3図のフローチャートに従うポインタP
1の更新動作を行う。まずi−0においては、(キャッ
シュミス、imPRY=0、Pi−Aiであることから
)ステップ82〜S5を経由してステップS7が行われ
る。このためi−0では、Pi (−PO)の更新は
行われず、iだけが1にインクリメントされる。i−1
では、PRY−0であることから、ステップS4におけ
るi>PRYの条件が成立する。この場合、ポインタ更
新回路17はPlがAIより小さいか否かを調べる(ス
テップS8)。そしてポインタ更新回路17は、PI
−PI−21,1−Al陶3である本実施例(第2図の
符号22で示される状態参照)のようにPi <AI
(PL <Al )である場合には、即ちptのレベ
ルがPRY−iに対する最低保証レベルを示すA1のレ
ベルより高い場合には、PRY−i−1(−0)のブロ
ックが1つ増えたことから、その分のエリアを確保する
ためにPl(−Pi)を+1する(ステップS9)。即
ちポインタ更新回路17はPl (−Pi )のレベ
ルを1つダウンする(第2図の符号23の状態における
P1参照)。ステップS9が終了すると、前記ステップ
S7が実行されi−2となる。i−2となると、ステッ
プS2におけるi<nの条件が成立しなくなり、ポイン
タ更新回路17の動作は終了となる。On the other hand, the pointer update circuit 17 updates the pointer P according to the flowchart of FIG.
1 update operation is performed. First, in i-0, step S7 is performed via steps 82 to S5 (since there is a cache miss, imPRY=0, and Pi-Ai). Therefore, at i-0, Pi (-PO) is not updated, and only i is incremented to 1. i-1
In this case, since PRY-0, the condition of i>PRY in step S4 is satisfied. In this case, the pointer update circuit 17 checks whether Pl is smaller than AI (step S8). Then, the pointer update circuit 17
-PI-21,1-As in this example (see the state indicated by reference numeral 22 in FIG. 2), which is Al ceramic 3, Pi < AI
If (PL < Al), that is, if the level of pt is higher than the level of A1, which indicates the minimum guaranteed level for PRY-i, the number of blocks of PRY-i-1 (-0) increases by one. Therefore, Pl (-Pi) is increased by +1 in order to secure the area for that amount (step S9). That is, the pointer update circuit 17 lowers the level of Pl (-Pi) by one (see P1 in the state 23 in FIG. 2). When step S9 is completed, step S7 is executed and becomes i-2. When it becomes i-2, the condition of i<n in step S2 no longer holds, and the operation of the pointer update circuit 17 ends.
■ 次に、第2図において符号23で示される状態で、
ホスト装置からPRY−0が割当てられたブロックにへ
のアクセス要求(0,K)が発せられ、同要求(0,K
)がキャッシュミスとなったものとする。この場合、判
定ラインL2上にはキャッシュミスを示すヒツト/ミス
信号が、PRYラインL3上にはブロックにのPRYで
ある0が、ブロック情報ラインL1上にはブロックにの
ブロック番号が出力される。セレクタ16は、PRYラ
インL3上のPRYが0の場合、対応するポインタ14
−〇のポインタ値POを選択する。■Next, in the state indicated by reference numeral 23 in Fig. 2,
The host device issues an access request (0, K) to the block to which PRY-0 is allocated, and
) has become a cache miss. In this case, a hit/miss signal indicating a cache miss is output on the judgment line L2, a PRY of 0 for the block is output on the PRY line L3, and a block number for the block is output on the block information line L1. . When PRY on the PRY line L3 is 0, the selector 16 selects the corresponding pointer 14.
- Select pointer value PO.
LRU制御回路12は、セレクタ16によって選択され
たポインタ値(PO)の示すレベルのブロックから最下
位レベルまでのブロックを対象範囲として、判定ライン
L2上のヒツト/ミス信号に応じてLRU論理を実行す
る。ここでは、上記ヒツト/ミス信号はキャッシュミス
を示していることから、LRU制御回路12は、ブロッ
クKをセレクタ16によって選択されたポインタ値PO
(ブロックにのPRY−0に対応するポインタ14−0
のポインタ値PO)の示すレベル(バンクレベル)1に
ステージングし、このレベル1〜レベル7にあった(0
.J)〜(1,D)をレベル2〜レベル8にそれぞれ1
つずつダウンする。これにより、最下位レベルにあった
(1.C)がキャッシュメモリ(LRU管理テーブル1
1)から追出される。この結果、第2図において符号2
3で示されるLRU管理テーブル11の状態は、同図に
おいて符号24で示される状態に変化する。The LRU control circuit 12 executes LRU logic in accordance with the hit/miss signal on the determination line L2, targeting blocks from the block at the level indicated by the pointer value (PO) selected by the selector 16 to the lowest level. do. Here, since the hit/miss signal indicates a cache miss, the LRU control circuit 12 sets the block K to the pointer value PO selected by the selector 16.
(Pointer 14-0 corresponding to PRY-0 in block
It is staged to the level (bank level) 1 indicated by the pointer value PO), and the data that was at this level 1 to level 7 (0
.. J) ~ (1, D) 1 each for level 2 ~ level 8
Go down one by one. As a result, the cache memory (LRU management table 1) that was at the lowest level (1.C) is
1) be kicked out. As a result, in Fig. 2, the number 2
The state of the LRU management table 11 indicated by 3 changes to the state indicated by 24 in the figure.
一方、ポインタ更新回路17は、第3図のフローチャー
トに従うポインタPIの更新動作を行う。On the other hand, the pointer update circuit 17 performs the update operation of the pointer PI according to the flowchart shown in FIG.
まずi−0においては、(キャッシュミス、1−PRY
−〇、Pi−AIであることから)ステップ82〜S5
を経由してステップS7が行われる。First, in i-0, (cache miss, 1-PRY
-〇, since it is Pi-AI) Steps 82 to S5
Step S7 is performed via .
このためi−0では、PI (−Pal)の更新は行
われず、iだけが1にインクリメントされる。i−1で
は、PRY−0であることから、ステップS4における
i>PRYの条件が成立する。この場合、ポインタ更新
回路17はPlがAIより小さいか否かを調べる(ステ
ップS8)。そしてポインタ更新回路17は、Pl −
PL−3、AI −Al−3である本実施例(第2図の
符号23で示される状態参照)のようにPI <AI
(PL <At )でない場合には、即ちPlのレベ
ルがPRYmiに対する最低保証レベルを示すAIのレ
ベル以下の場合(ここではl −PI −AI−AIで
あり、PiのレベルがAIのレベルと同等の場合)には
、これ以上PRY −i−1(=O)用のエリアを確保
しないためにステップS9に進まず、前記ステップS5
に進む。即ち、Plのレベルダウンは行われない(第2
図の符号24の状態におけるPL参照)。コノ結果、P
RY−i−1(=0)用のエリア(PRY−i=1で示
されるレベルからPRY−iで示されるレベルより1つ
上のレベルまでの範囲)からはみでた(0.H)、即ち
Plで示されるレベル以下となった(0.H)は、後述
するように以後キャツシュヒツトするまではPRY−1
と同等に扱われる。したがって、長期間使用されないと
、PRY−0であってもキャッシュメモリ(LRU管理
テーブル11)から追出されることもあり得る。即ち本
実施例によれば、優先度の高いものが増えても、次の優
先度の最低保証レベルの1つ上を下限として、その有効
エリア(優先度の高いものに対してのエリア)は広げら
れず、このため優先度の低いものに対してのエリアが圧
迫されず、効率の低下が防止できる。なお、ステップS
5以降は、ステップS7.S2を経てポインタ更新回路
17の動作が終了する。Therefore, at i-0, PI (-Pal) is not updated, and only i is incremented to 1. In i-1, since PRY-0, the condition of i>PRY in step S4 is satisfied. In this case, the pointer update circuit 17 checks whether Pl is smaller than AI (step S8). Then, the pointer update circuit 17 outputs Pl −
As in this example (see the state indicated by the reference numeral 23 in FIG. 2) where PL-3 and AI -Al-3, PI < AI
If (PL < At) is not the case, that is, if the level of Pl is less than the level of AI indicating the minimum guaranteed level for PRYmi (here, l - PI - AI - AI, the level of Pi is equal to the level of AI). ), in order not to secure any more area for PRY -i-1 (=O), the process does not proceed to step S9, and the process proceeds to step S5.
Proceed to. In other words, the level of Pl is not lowered (second
(See PL in the state 24 in the figure). Kono result, P
(0.H) out of the area for RY-i-1 (=0) (range from the level indicated by PRY-i = 1 to the level one level above the level indicated by PRY-i), i.e. When the level falls below the level indicated by Pl (0.H), it will remain PRY-1 until it is hit as described later.
be treated equally. Therefore, if it is not used for a long period of time, even PRY-0 may be evicted from the cache memory (LRU management table 11). In other words, according to this embodiment, even if the number of high-priority items increases, the effective area (area for high-priority items) is set to one level higher than the minimum guaranteed level of the next priority. Therefore, the area for items with low priority is not compressed, and a decrease in efficiency can be prevented. In addition, step S
5 and subsequent steps, step S7. The operation of the pointer update circuit 17 ends after S2.
■ 次に、第2図において符号24で示される状態で、
ホスト装置からPRY−1が割当てられたブロックFへ
のアクセス要求(1,F)が発せられ、同要求(1,F
)がキャツシュヒツトとなったものとする。この場合、
判定ラインL2上にはキャツシュヒツトを示すヒツト/
ミス信号が、PRYラインL3上にはブロックFのPR
Yである1が、ブロック情報ラインLl上にはブロック
Fのブロック番号が出力される。セレクタ16は、PR
YラインL3上のPRYが1の場合、対応するポインタ
14−1のポインタ値PIを選択する。■Next, in the state indicated by reference numeral 24 in FIG.
The host device issues an access request (1, F) to block F to which PRY-1 is allocated, and
) has become Catschhit. in this case,
On the judgment line L2, there is a hit /
The miss signal is on the PRY line L3 as PR of block F.
1, which is Y, and the block number of block F is output on the block information line Ll. The selector 16 is PR
When PRY on the Y line L3 is 1, the pointer value PI of the corresponding pointer 14-1 is selected.
LRU制御回路12は、セレクタ16によって選択され
たポインタ値(PI )の示すレベルのブロックから最
下位レベルまでのブロックを対象範囲として、判定ライ
ンL2上のヒツト/ミス信号に応じてLRU論理を実行
する。ここでは、上記ヒツト/ミス信号はキャツシュヒ
ツトを示していることから、LRU制御回路12は、ブ
ロックFをセレクタ16によって選択されたポインタ値
PI (ブロックFのPRY−1に対応するポインタ
14−Lのポインタ値PI)の示すレベル(バンクレベ
ル)3に位置付けし、このレベル3〜レベル5(ヒツト
ブロックFがそれまで割当てられていたレベルより・1
つ上のレベル)にあった(0.H)〜(1゜G)をレベ
ル4〜レベル6にそれぞれ1つずつダウンする。この結
果、第2図において符号24で示されるLRU管理テー
ブル11の状態は、同図において符号25で示される状
態に変化する。The LRU control circuit 12 executes LRU logic in accordance with the hit/miss signal on the determination line L2, targeting blocks from the block at the level indicated by the pointer value (PI) selected by the selector 16 to the lowest level. do. Here, since the hit/miss signal indicates a cash hit, the LRU control circuit 12 selects the block F from the pointer value PI selected by the selector 16 (of the pointer 14-L corresponding to PRY-1 of block F). It is positioned at the level (bank level) 3 indicated by the pointer value PI), and the level 3 to level 5 (the level to which the hit block F was assigned until then is 1.
(0.H) to (1°G) that were at the next higher level) are lowered by one each to levels 4 to 6. As a result, the state of the LRU management table 11 indicated by reference numeral 24 in FIG. 2 changes to the state indicated by reference numeral 25 in the figure.
一方、ポインタ更新回路17は、第3図のフローチャー
トに従うポインタPlの更新動作を行う。On the other hand, the pointer update circuit 17 performs the update operation of the pointer Pl according to the flowchart of FIG.
まずi−0においては、ステップS2を経由してステッ
プS3の判定処理が行われ、この例のようにキャツシュ
ヒツトの場合には、ステップS5の判定処理に進む。i
−0ではPl(−PO)−AI (−An )である
ことから、ステップS5におけるPi >AIの条件は
不成立となる。この場合、Pl (−PO)の更新は
行われず、iだけが1にインクリメントされる。次のi
−1でもPl(−PL ) −Ai (−AI )で
あり、したがってPi (−Pi )の更新は行われ
ない。First, at i-0, the determination process of step S3 is performed via step S2, and in the case of a cash hit as in this example, the process proceeds to the determination process of step S5. i
Since Pl(-PO)-AI (-An) at -0, the condition of Pi>AI in step S5 is not satisfied. In this case, Pl (-PO) is not updated and only i is incremented to 1. next i
-1, Pl (-PL) -Ai (-AI), and therefore Pi (-Pi) is not updated.
■ 次に、第2図において符号25で示される状態で、
ホスト装置からPRY−0が割当てられたブロックHへ
のアクセス要求(0,H)が発せられ、同要求(0,H
)がキャツシュヒツトとなったものとする。この場合、
判定ラインL2上にはキャツシュヒツトを示すヒツト/
ミス信号が、PRYラインL3上にはブロックHのPR
Yである0が、ブロック情報ラインLl上にはブロック
Hのブロック番号が出力される。セレクタ16は、PR
YラインL3上のPRYが0の場合、対応するポインタ
14−0のポインタ値POを選択する。■Next, in the state indicated by reference numeral 25 in Fig. 2,
The host device issues an access request (0, H) to block H to which PRY-0 is allocated, and
) has become Catschhit. in this case,
On the judgment line L2, there is a hit /
The miss signal is on the PRY line L3 as PR of block H.
The block number of the block H is outputted on the block information line Ll. The selector 16 is PR
If PRY on the Y line L3 is 0, the pointer value PO of the corresponding pointer 14-0 is selected.
LRU制御回路12は、セレクタ(6によって選択され
たポインタ値(PO)の示すレベルのブロックから最下
位レベルまでのブロックを対象範囲として、判定ライン
L2上のヒツト/ミス信号に応じてLRU論理を実行す
る。ここでは、上記ヒツト/ミス信号はキャツシュヒツ
トを示していることから、LRU制御回路12は、ブロ
ックHをセレクタ16によって選択されたポインタ値P
O(ブロックHのPRY−0に対応するポインタ(4−
0のポインタ値PO)の示すレベル(バンクレベル)1
に位置付けし、このレベル1〜レベル3(ヒツトブロッ
クHがそれまで割当てられていたレベルより1つ上のレ
ベル)にあった(0.K)〜(1゜F)をレベル2〜レ
ベル4にそれぞれ1つずつダウンする。この結果、第2
図において符号25で示されるLRU管理テーブル11
の状態は、同図において符号26で示される状態に変化
する。明らかなように、ポインタ値AIの値、即ちポイ
ンタP1の最低保証レベルを変化させることで、PRY
−0用のエリアの拡大/縮小、更には(0,H)のキャ
ッシュメモリ(LRU管理テーブル11)内常駐期間の
調整を図ることができる。The LRU control circuit 12 performs LRU logic in accordance with the hit/miss signal on the determination line L2, with the target range being blocks from the block at the level indicated by the pointer value (PO) selected by the selector (6) to the lowest level. Here, since the hit/miss signal indicates a cash hit, the LRU control circuit 12 sets the block H to the pointer value P selected by the selector 16.
O(pointer corresponding to PRY-0 of block H (4-
Level (bank level) 1 indicated by pointer value PO of 0
and move the (0.K) to (1°F) that were at levels 1 to 3 (one level higher than the level to which hit block H was previously assigned) to levels 2 to 4. Go down one by one. As a result, the second
LRU management table 11 indicated by reference numeral 25 in the figure
The state changes to the state indicated by reference numeral 26 in the figure. As is clear, by changing the value of pointer value AI, that is, the minimum guaranteed level of pointer P1, PRY
It is possible to expand/reduce the area for -0 and further adjust the residence period of (0, H) in the cache memory (LRU management table 11).
一方、ポインタ更新回路17は、第3図のフローチャー
トに従うポインタP1の更新動作を行う。On the other hand, the pointer update circuit 17 performs the update operation of the pointer P1 according to the flowchart of FIG.
まずi−0においては、ステップS2を経由してステッ
プS3の判定処理が行われ、この例のようにキャツシュ
ヒツトの場合には、ステップS5の判定処理に進む。i
−0ではPI (−PO)−AI (−AO)であ
ることから、ステップs5におけるPi >AIの条件
は不成立となる。この場合、Pi (−PO)の更新
は行われず、iだけが1にインクリメントされる。次の
i−1でもPl(−PL ’) −AI (−Al
)であり、したがってPl (−PL )の更新は行
われない。First, at i-0, the determination process of step S3 is performed via step S2, and in the case of a cash hit as in this example, the process proceeds to the determination process of step S5. i
At -0, PI (-PO)-AI (-AO), so the condition of Pi > AI in step s5 is not satisfied. In this case, Pi (-PO) is not updated and only i is incremented to 1. Even in the next i-1, Pl (-PL') -AI (-Al
), and therefore Pl (-PL) is not updated.
なお、前記実施例では、n−2の場合について説明した
が、本発明はn−3以上のn階層LRU制御にも適用可
能である。また本発明は、ディスクキャッシュシステム
以外のn階層LRU制御にも応用可能である。In addition, although the said Example demonstrated the case of n-2, this invention is also applicable to n layer LRU control of n-3 or more. The present invention is also applicable to n-tier LRU control other than disk cache systems.
[発明の効果]
以上詳述したようにこの発明によれば、キャッシュ対象
ブロックがキャッシュに存在する間は、同ブロックに割
当てられた優先度(PRY)に応じたLRU制御が行え
るので、優先度による明確な差別化が図れ、優先度によ
る有効な多階層LRU管理が可能となる。また、優先度
(PRY−i)の有効範囲(の最低レベル)を保証する
ポインタAI (第2のポインタ)の値を変えること
によって、対応する優先度毎のキャッシュ占有能力、並
びに優先度による効果(キャッシュ内常駐度)をフレキ
シブルに設定できるので、キャッシュ効率の向上が図れ
る。[Effects of the Invention] As detailed above, according to the present invention, while a block to be cached exists in the cache, LRU control can be performed according to the priority (PRY) assigned to the block. Clear differentiation can be achieved, and effective multi-layer LRU management based on priorities is possible. In addition, by changing the value of pointer AI (second pointer) that guarantees (the lowest level of) the effective range of priority (PRY-i), the cache occupancy capacity for each corresponding priority and the effect of priority (Cache residency degree) can be set flexibly, so cache efficiency can be improved.
第1図はこの発明を適用するLRU制御装置の一実施例
を示すブロック構成図、第2図は第1図のLRU管理テ
ーブル11の内容(一部)を各ポインタ値と対応させて
時系列的に示す図、第3図は動作を説明するためのフロ
ーチャートである。
11・・・LRU管理テーブル、12・・・LRU制御
回路、13・・・タグデータ制御回路、14−0〜14
−(n−1)・・・ポインタ(第1のポインタ) 1
5−0〜15−(n−1)・・・ポインタ(第2のポイ
ンタ)、16・・・セレクタ(SEL)、17・・・ポ
インタ更新回路。FIG. 1 is a block diagram showing an embodiment of an LRU control device to which the present invention is applied, and FIG. 2 is a time series of the contents (part) of the LRU management table 11 shown in FIG. 1 in correspondence with each pointer value. FIG. 3 is a flowchart for explaining the operation. 11...LRU management table, 12...LRU control circuit, 13...tag data control circuit, 14-0 to 14
-(n-1)...Pointer (first pointer) 1
5-0 to 15-(n-1)...Pointer (second pointer), 16...Selector (SEL), 17...Pointer update circuit.
Claims (2)
る各ブロックについてバンク別の優先度を示すバンクレ
ベルを記憶するためのLRU管理テーブルを備えたシス
テムにおいて、 キャッシュ対象ブロック毎に、そのブロックの優先度と
してn通りの優先度の1つを付与する手段と、 上記カラム毎に且つ上記n通りの優先度のそれぞれにつ
いて設けられ、対応する優先度に対する現時点での最上
位バンクレベルを示す第1のポインタと、 上記n通りの優先度のそれぞれについて設けられ、対応
する優先度に対する最上位バンクレベルの最低保証レベ
ルが任意に設定可能な第2のポインタと、 上記キャッシュ対象ブロックの優先度に応じて対応する
上記第1のポインタを選択する選択手段と、 この選択手段によって選択された上記第1のポインタに
よって示されるバンクレベルから最低バンクレベルまで
を対象範囲として、上記キャッシュ対象ブロックのキャ
ッシュヒット/ミス状態に応じて上記LRU管理テーブ
ルを用いたLRU制御を行うLRU制御手段と、 上記第1のポインタの更新を司るポインタ更新手段と、 を具備し、上記ポインタ更新手段は、キャッシュミス発
生時において上記キャッシュ対象ブロックより低い優先
度に対応する上記第1のポインタの示すバンクレベルが
同ポインタに対応する上記第2のポインタの示す最低保
証レベルより高い場合には、この第1のポインタを更新
して、そのバンクレベルを下げるように構成されている
ことを特徴とする多階層LRU制御方式。(1) In a system equipped with an LRU management table for storing, for each column of the cache, the bank level indicating the priority of each bank for each block constituting that column, for each block to be cached, the means for assigning one of n types of priorities as a priority, and a first bank level provided for each column and for each of the n types of priorities and indicating the highest bank level at the present time for the corresponding priority. A second pointer that is provided for each of the above n priorities and can arbitrarily set the minimum guarantee level of the highest bank level for the corresponding priority, and selection means for selecting the corresponding first pointer; and cache hit/cache target block for the cache target block, with the target range from the bank level indicated by the first pointer selected by the selection means to the lowest bank level. LRU control means for performing LRU control using the LRU management table according to a miss state; and pointer update means for updating the first pointer; If the bank level indicated by the first pointer corresponding to a lower priority than the cache target block is higher than the minimum guaranteed level indicated by the second pointer corresponding to the same pointer, this first pointer is updated. A multi-layered LRU control system, characterized in that the multi-layered LRU control system is configured to lower the bank level.
のうち、対応する上記第2のポインタの示す最低保証レ
ベルより低いバンクレベルを示す第1のポインタを更新
して、そのバンクレベルを上記最低保証レベルに一致さ
せるように構成されていることを特徴とする第1請求項
記載の多階層LRU制御方式。(2) The pointer updating means updates a first pointer of each of the first pointers that indicates a bank level lower than the minimum guaranteed level indicated by the corresponding second pointer, and changes the bank level to the above level. The multi-layered LRU control system according to claim 1, wherein the multi-layered LRU control system is configured to match a minimum guarantee level.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1225395A JPH0388050A (en) | 1989-08-31 | 1989-08-31 | Multilevel lru control system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1225395A JPH0388050A (en) | 1989-08-31 | 1989-08-31 | Multilevel lru control system |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0388050A true JPH0388050A (en) | 1991-04-12 |
Family
ID=16828690
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP1225395A Pending JPH0388050A (en) | 1989-08-31 | 1989-08-31 | Multilevel lru control system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0388050A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04133148A (en) * | 1990-09-26 | 1992-05-07 | Nec Corp | Directory managing system for cache controller |
JP2020046917A (en) * | 2018-09-19 | 2020-03-26 | キオクシア株式会社 | Memory system, storage system, and control method |
-
1989
- 1989-08-31 JP JP1225395A patent/JPH0388050A/en active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04133148A (en) * | 1990-09-26 | 1992-05-07 | Nec Corp | Directory managing system for cache controller |
JP2020046917A (en) * | 2018-09-19 | 2020-03-26 | キオクシア株式会社 | Memory system, storage system, and control method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6877067B2 (en) | Shared cache memory replacement control method and apparatus | |
EP2075705B1 (en) | Cache memory having sector function | |
US5787490A (en) | Multiprocess execution system that designates cache use priority based on process priority | |
US6173392B1 (en) | Prefetch controller automatically updating history addresses | |
US5737752A (en) | Cache replacement mechanism | |
JP2006196011A (en) | Segmentation of cache for offering varying service level | |
US5822785A (en) | Data transfer using local and global address translation and authorization | |
JP2005276198A (en) | System and method for balancing multiple memory buffer sizes | |
JP2001511553A (en) | How to store elements in the database | |
US10423534B2 (en) | Cache memory | |
US5369732A (en) | Method and apparatus for goal processing memory management | |
US20030236947A1 (en) | Prevention of conflicting cache hits without an attendant increase in hardware | |
US6785770B2 (en) | Data processing apparatus with a cache memory and method of using such an apparatus | |
JPH0388050A (en) | Multilevel lru control system | |
US6915406B2 (en) | Address translation apparatus, address translation method, and two-layer address translation apparatus | |
CA2170468A1 (en) | Multi-processor system with virtually addressable communication registers and controlling method thereof | |
EP1644821B1 (en) | System and method for buffering variable-length data | |
JPH07248967A (en) | Memory control system | |
US5787467A (en) | Cache control apparatus | |
JP4065674B2 (en) | Data storage system and method | |
US5136702A (en) | Buffer storage control method and apparatus | |
US5410663A (en) | Method and system for cache memory congruence class management in a data processing system | |
US5796976A (en) | Temporary storage having entries smaller than memory bus | |
US20060004962A1 (en) | Cache memory system and method capable of adaptively accommodating various memory line sizes | |
JPS60136849A (en) | Storage control system |