JPH06243042A - Storage controller - Google Patents
Storage controllerInfo
- Publication number
- JPH06243042A JPH06243042A JP5030117A JP3011793A JPH06243042A JP H06243042 A JPH06243042 A JP H06243042A JP 5030117 A JP5030117 A JP 5030117A JP 3011793 A JP3011793 A JP 3011793A JP H06243042 A JPH06243042 A JP H06243042A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- limit value
- write
- data
- request
- 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
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Description
【0001】[0001]
【産業上の利用分野】本発明は記憶装置の制御装置に係
り、特に、キャッシュを内蔵する記憶制御装置に関す
る。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a storage device control device, and more particularly to a storage control device incorporating a cache.
【0002】[0002]
【従来の技術】キャッシュの制御技術に関する公知例を
以下に示す。2. Description of the Related Art Known examples of cache control technology are shown below.
【0003】特開昭55−157053号明細書では、ディスク
キャッシュを有する制御装置におけるライトアフタ処理
技術が開示されている。この技術では、制御装置は処理
装置から受け付けたライトデータをキャッシュに書き込
んだ段階でライト要求を終了させる。処理装置から受け
付け、キャッシュ内に格納したデータをディスク装置へ
書き込む処理は、後から制御装置が行う。このライトア
フタ処理によってライト処理が高速化される。Japanese Patent Laid-Open No. 55-157053 discloses a write-after processing technique in a control device having a disk cache. In this technique, the control device ends the write request at the stage when the write data received from the processing device is written in the cache. The process of writing the data received from the processing device and stored in the cache to the disk device is performed later by the control device. This write after process speeds up the write process.
【0004】ライトアフタ機能付きディスクキャッシュ
の基本制御技術にかかる公知例は、特願平3−25994号明
細書に開示されている制御がある。ライトアフタ処理の
適用により起こる問題として、チャネル側/ディスク装
置側のデータ転送速度の違いによるキャッシュの満杯状
態の発生があった。A known example of the basic control technology of the disk cache with a write-after function is the control disclosed in Japanese Patent Application No. 3-25994. As a problem caused by the application of the write-after process, there is a cache full state due to a difference in data transfer speed between the channel side and the disk device side.
【0005】リードデータの場合、ディスク装置にも同
じデータが存在するため、任意の時点でキャッシュのデ
ータを消去し、他のデータを格納することが可能であ
る。一方、ライトアフタ処理を行った場合、ライト要求
が終了した時点では、更新されたデータはキャッシュ上
にしか存在しない。このため、キャッシュ上のライトデ
ータは、ディスク装置に書き込まれるまで残しておかな
ければならない。また、チャネル側のデータ転送速度に
くらべ、ドライブ側のデータ転送速度が遅いこともあっ
て、ライト要求の頻度が増した場合、データの消去が不
可能なライトデータによってキャッシュが占有されてし
まう。In the case of read data, since the same data exists in the disk device, it is possible to erase the cache data and store other data at any time. On the other hand, when the write-after process is performed, the updated data exists only in the cache when the write request ends. Therefore, the write data on the cache must be left until it is written to the disk device. In addition, since the data transfer speed on the drive side is slower than the data transfer speed on the channel side, if the frequency of write requests increases, the cache is occupied by write data that cannot be erased.
【0006】この従来例によれば、記憶制御装置は、キ
ャッシュ内のライトデータの量、および記憶装置毎のキ
ャッシュへのライトデータの流入量およびライトアフタ
処理によるライトデータの流出量を検出し、流入量>流
出量の記憶装置に対して、ライトデータに対するキャッ
シュ割り当て制限および記憶装置へのデータ書き込みを
優先して実行する。この技術により、キャッシュの満杯
状態によるシステム全体の性能低下を回避し、記憶装置
毎のキャッシュメモリの割り当ての配分を適切に行うこ
とができる。According to this conventional example, the storage control device detects the amount of write data in the cache, the inflow amount of write data into the cache of each storage device, and the outflow amount of write data by the write-after processing, For the storage device of the inflow amount> outflow amount, the cache allocation limitation for the write data and the data writing to the storage device are executed with priority. With this technique, it is possible to avoid performance degradation of the entire system due to the full state of the cache, and to appropriately allocate the cache memory allocation for each storage device.
【0007】[0007]
【発明が解決しようとする課題】一方、記憶装置内のデ
ータの入出力処理では、時間帯の違いあるいは、処理形
態(オンライン処理/バッチ処理)の違い、さらには、
データの種類(例えば、シーケンシャルアクセスデー
タ,ランダムアクセスデータ)により、キャッシュの負
荷(アクセス頻度,ヒット率,キャッシュ使用量)が変
わってくる。このため、ライト要求に対しては、キャッ
シュの負荷状態に応じた適正なキャッシュ割り当て制限
値を設定し、キャッシュの割り当てを行うことが必要で
ある。On the other hand, in the input / output processing of data in the storage device, the difference in time zone or the processing form (online processing / batch processing), and further,
The cache load (access frequency, hit rate, cache usage) changes depending on the type of data (eg, sequential access data, random access data). Therefore, for a write request, it is necessary to set an appropriate cache allocation limit value according to the load state of the cache and allocate the cache.
【0008】例えば、キャッシュ上のライトデータ量に
対し、従来のような固定的な制限値を設定すると、キャ
ッシュ資源の有効利用が図れない場合が起こる。キャッ
シュ上のライトペンディングデータのための割り当て量
の制限値が適正な値より小さすぎると、キャッシュ空き
待ちの発生による応答時間が遅れ、また、ライトアフタ
処理の効果が低下してしまう。反対に制限値が大きすぎ
た場合、リードヒット率の低下を招くなどの問題が生じ
る。For example, if a conventional fixed limit value is set for the write data amount on the cache, the cache resources may not be effectively used. If the limit value of the allocation amount for write-pending data on the cache is too smaller than the appropriate value, the response time will be delayed due to the occurrence of cache empty wait, and the effect of the write-after process will be reduced. On the other hand, if the limit value is too large, there is a problem that the read hit rate is lowered.
【0009】上記の特願平3−25994号明細書では、キャ
ッシュ内のライトデータの量に対する制限値を中央処理
装置からの指示により設定する手段を有しているが、記
憶制御装置内における設定値変更に関する言及はなされ
ていない。しかし、複数の処理装置からのデータ入出力
要求を受け付ける記憶制御装置の場合、キャッシュ割り
当ての制限値に関しては、記憶制御装置が設定すること
が望ましい。In the above-mentioned Japanese Patent Application No. 3-25994, there is provided means for setting a limit value for the amount of write data in the cache by an instruction from the central processing unit. No reference is made to changing the value. However, in the case of a storage control device that receives data input / output requests from a plurality of processing devices, it is desirable for the storage control device to set the cache allocation limit value.
【0010】本発明の目的は、キャッシュの使用用途別
にキャッシュ割当て制限値を設定し、さらに、キャッシ
ュの使用状態に応じてその制限値を変更する制御を行う
ことにより、キャッシュの資源の有効利用を図る記憶制
御装置を提供することにある。An object of the present invention is to set a cache allocation limit value for each use purpose of the cache, and to control the limit value according to the use state of the cache so as to effectively use the resources of the cache. An object is to provide a storage control device.
【0011】[0011]
【課題を解決するための手段】上記目的を達成するため
に、本発明による記憶制御装置は以下の手段を用いる。In order to achieve the above object, the storage control device according to the present invention uses the following means.
【0012】(1)キャッシュの割り当てを必要とする
要求には、中央処理装置が発行する記憶装置内のデータ
に対するリード/ライト要求、および記憶制御装置の内
部制御のために発行される複数の要求がある。これらの
要求の種別のうち一部に対して、その要求に対して割り
当て可能なキャッシュ量に制限値を設定する。(1) For requests requiring cache allocation, read / write requests for data in the storage device issued by the central processing unit, and a plurality of requests issued for internal control of the storage control unit. There is. For some of these request types, a limit value is set for the cache amount that can be assigned to the request.
【0013】(2)単位時間ごとに、(1)で述べたキ
ャッシュ割り当てを必要とする要求それぞれの発行回
数,キャッシュ割り当て量,キャッシュヒット回数のう
ち少なくとも一つの情報(絶対量)を計測する。(2) At every unit time, at least one piece of information (absolute amount) of the number of requests issued, the amount of cache allocation, and the number of cache hits of each request requiring cache allocation described in (1) is measured.
【0014】(3)ある時点tで計測した(2)に記し
た情報(絶対量)と、tより1単位時間前に計測した同
情報(絶対量)から単位時間内の変化量を生成する。(3) A change amount within a unit time is generated from the information (absolute amount) described in (2) measured at a certain time point t and the same information (absolute amount) measured one unit time before t. .
【0015】(4)上記(2)で計測した絶対量と
(3)で生成した変化量をキャッシュ負荷情報として保
持する。(4) The absolute amount measured in (2) above and the change amount generated in (3) are held as cache load information.
【0016】(5)上記(4)により保持しているキャ
ッシュ負荷情報から(1)で設定した制限値を変更する
必要性を判定する。(5) The necessity of changing the limit value set in (1) is judged from the cache load information held in (4) above.
【0017】[0017]
【作用】本発明の記憶制御装置は複数の固定長ブロック
(キャッシュセグメント)に分割されたキャッシュメモ
リを有している。The storage control device of the present invention has a cache memory divided into a plurality of fixed-length blocks (cache segments).
【0018】記憶装置内のデータに対するリード要求が
発行されると、記憶制御装置は要求されたデータがキャ
ッシュ上に存在するか否かを判定する。以下、存在した
場合をヒット、存在しなかった場合をミス、また、その
判定のことをヒット/ミス判定と記述する。ヒットした
場合、キャッシュ上のデータを処理装置へ転送する。ミ
スの場合、リード要求された記憶装置のデータが格納で
きる数のキャッシュセグメントを割り当て、そのキャッ
シュセグメントにデータをロードし、処理装置へ転送す
る。ライト要求が発行された場合も同様、ヒットの場合
はキャッシュセグメントに対しライトデータを書き込
む。ミスの場合、キャッシュセグメントを割り当て、記
憶装置のデータをキャッシュへロードし、ライト処理を
行う。また、キャッシュにライトデータを書き込んだ時
点でライト処理を終了させ、ライトデータの記憶装置へ
の書き込みは後で行う(ライトアフタ処理)。When a read request for the data in the storage device is issued, the storage control device determines whether the requested data exists in the cache. Hereinafter, the case where it exists will be described as a hit, the case where it does not exist will be described as a miss, and the judgment will be described as a hit / miss judgment. If there is a hit, the data in the cache is transferred to the processing device. In the case of a miss, the number of cache segments that can store the data of the storage device requested to be read is allocated, the data is loaded into the cache segment, and the data is transferred to the processing device. Similarly, when a write request is issued, in the case of a hit, write data is written to the cache segment. In the case of a miss, a cache segment is allocated, data in the storage device is loaded into the cache, and write processing is performed. Further, the write processing is ended when the write data is written to the cache, and the write data is written to the storage device later (write after processing).
【0019】従来の技術で述べたキャッシュ満杯状態
は、ライトデータがキャッシュを占有してしまった場合
であったが、この問題は、キャッシュセグメントの割り
当てが特定の要求に対して行われてしまうことにより起
こる。本発明の記憶制御装置では、この問題を回避する
ために、まず、(1)によりキャッシュを必要とする要
求のうち、キャッシュ占有の恐れがあるものに対して
は、セグメント割り当て数に任意の制限値を設定する。The cache full state described in the prior art is a case where the write data occupies the cache, but this problem is that the allocation of the cache segment is performed for a specific request. Caused by. In order to avoid this problem, in the storage control device of the present invention, first, among the requests requiring a cache according to (1), those that may occupy the cache are arbitrarily limited in the number of allocated segments. Set the value.
【0020】しかし、キャッシュの使用状態によって
は、キャッシュ全体としては割り当て可能なキャッシュ
セグメントが十分存在するにもかかわらず、制限値を設
定されているため、キャシュセグメントを割り当てられ
ず、待ち状態になってしまう要求が発生する場合が起こ
りうる。キャッシュの有効利用のためには、キャッシュ
の状態に応じてこの制限値をチューニングすることが考
えられる。However, depending on the state of use of the cache, the cache segment cannot be assigned because the limit value is set even though there are sufficient cache segments that can be assigned to the entire cache. There may be a case where a request to be made occurs. In order to effectively use the cache, it is possible to tune this limit value according to the state of the cache.
【0021】そこで、本発明の記憶制御装置はまず、
(2)によってキャッシュの使用状態を計測する。計測
する情報は、単位時間内に、各要求の発行された回数,
ヒットした回数,ミスした回数である。次に、(3)に
よってこれらの情報の変化量を生成する。これら(2)
(3)により得た情報を(4)により、保持する。これ
らの情報から各要求に対するキャッシュセグメント割り
当て制限値が適正であるか否かを(5)により判定し、
変更が必要な場合、(1)により制限値を再設定する。Therefore, the storage control device of the present invention is as follows.
The usage state of the cache is measured by (2). The information to be measured is the number of times each request was issued within the unit time,
The number of hits and the number of misses. Next, the amount of change of these pieces of information is generated by (3). These (2)
The information obtained in (3) is held in (4). Based on these information, it is determined by (5) whether the cache segment allocation limit value for each request is appropriate,
When the change is necessary, the limit value is reset according to (1).
【0022】[0022]
【実施例】まず、本発明の記憶制御装置の制御構成の概
要について図1を用いて示す。本実施例の記憶制御装置
3は以下に示す構成要素からなる。なお、図1における
各構成要素のつながりは、制御線(細線)またはデータ
転送パス(太線)で示している。キャッシュメモリ3
1,32は、不揮発化,2重化されたキャッシュメモリ
である。この二つのキャッシュメモリの内容は同一であ
るため、本実施例の説明は主にキャッシュメモリ31を
用いて行う。DESCRIPTION OF THE PREFERRED EMBODIMENTS First, an outline of the control configuration of a storage control device of the present invention will be shown using FIG. The storage control device 3 of this embodiment comprises the following components. Note that the connection of each component in FIG. 1 is indicated by a control line (thin line) or a data transfer path (thick line). Cache memory 3
Reference numerals 1 and 32 denote non-volatile and duplicated cache memories. Since the contents of the two cache memories are the same, the description of the present embodiment will be made mainly using the cache memory 31.
【0023】キャッシュ管理部33は、キャッシュの割
り当てに関する制御を行い、本発明の特徴である制限値
設定機能302、および負荷情報計測機能303を持
つ。The cache management unit 33 controls cache allocation and has a limit value setting function 302 and a load information measuring function 303, which are features of the present invention.
【0024】負荷情報管理部34は、キャッシュの使用
状態の監視を行い、本発明の特徴として負荷情報生成機
能304、および制限値決定機能306を持つ。The load information management unit 34 monitors the usage state of the cache and has a load information generation function 304 and a limit value determination function 306 as features of the present invention.
【0025】制御メモリ35は記憶制御装置3の制御情
報を格納するための不揮発メモリであり、負荷情報保持
機能304に対応するテーブルを格納している。制御メ
モリ35に格納されるそのほかの制御情報については、
必要に応じて後述する。The control memory 35 is a non-volatile memory for storing control information of the storage control device 3, and stores a table corresponding to the load information holding function 304. Regarding other control information stored in the control memory 35,
It will be described later as necessary.
【0026】チャネル制御部36は、処理装置1が発行
する記憶装置2のデータの入出力要求を受け付け、実行
する。チャネル制御37は処理装置1とディスク制御装
置3とのインタフェース機能を持つ。処理装置1からの
入出力要求受け付けや、処理装置1へのデータ転送など
はこのチャネル制御37を介して行われる。The channel controller 36 receives and executes a data input / output request of the storage device 2 issued by the processing device 1. The channel control 37 has an interface function between the processing device 1 and the disk control device 3. Input / output request reception from the processing device 1 and data transfer to the processing device 1 are performed via the channel control 37.
【0027】ドライブ制御38は、ディスク装置2とデ
ィスク制御装置とのデータ転送の制御を行う。ドライブ
制御39はディスク制御装置3とディスク装置2とのイ
ンタフェース機能を持つ。以上で述べたキャッシュ管理
部33,負荷情報管理部34,チャネル制御部36およ
びドライブ制御部38のそれぞれは、ディスク制御装置
3のマイクロプロセッサ内のプログラムである。The drive controller 38 controls data transfer between the disk device 2 and the disk controller. The drive control 39 has an interface function between the disk control device 3 and the disk device 2. Each of the cache management unit 33, the load information management unit 34, the channel control unit 36, and the drive control unit 38 described above is a program in the microprocessor of the disk control device 3.
【0028】キャッシュメモリ31は固定長ブロックに
分割されている。制限値設定機能302はキャッシュブ
ロックの割り当て数に制限値を設定する手段である。負
荷情報計測機能303は、要求毎のキャッシュ負荷情報
(要求発行回数,ヒット回数,ミス回数)を単位時間毎
に計測する機能である。負荷情報生成機能304では、
負荷情報計測機能303において計測したキャッシュ負
荷情報からその変化の状態などを求める。負荷情報計測
機能303と負荷情報生成機能304で得られたキャッ
シュ負荷情報を保持するのが負荷情報保持機能305で
ある。制限値決定機能306では、305に保持されて
いるキャッシュ負荷情報を用いて、キャッシュ割り当て
制限値を決定する。The cache memory 31 is divided into fixed length blocks. The limit value setting function 302 is means for setting a limit value for the number of cache block allocations. The load information measuring function 303 is a function of measuring cache load information (request issuance count, hit count, miss count) for each request for each unit time. In the load information generation function 304,
From the cache load information measured by the load information measuring function 303, the change state and the like are obtained. The load information holding function 305 holds the cache load information obtained by the load information measuring function 303 and the load information generating function 304. The limit value determination function 306 determines the cache allocation limit value using the cache load information held in 305.
【0029】処理装置1からディスク装置2内のデータ
のリード要求が発行されたときのデータの流れの概要を
図2に示す。要求を受け付けたチャネル制御部36は、
まず、制御メモリ35を参照して、要求されたデータが
キャッシュ31上に存在する(ヒット)か、存在しない
(ミス)かを判定する。これをヒット/ミス判定とい
う。このヒット/ミス判定の処理については、後述す
る。判定の結果、ヒットであった場合、キャッシュ31
からデータを処理装置1へ転送する。ミスした場合、ま
ず、データをディスク装置2からキャッシュ31へ転送
し、次にキャッシュ31から処理装置1へ転送される。
処理装置2にデータが転送されてリード要求が終了す
る。FIG. 2 shows an outline of the flow of data when the processor 1 issues a read request for data in the disk device 2. The channel control unit 36 that has received the request
First, referring to the control memory 35, it is determined whether the requested data exists in the cache 31 (hit) or does not exist (miss). This is called a hit / miss decision. The hit / miss determination process will be described later. If the result of the determination is a hit, the cache 31
Data is transferred to the processing device 1. When a miss occurs, the data is first transferred from the disk device 2 to the cache 31 and then from the cache 31 to the processing device 1.
The data is transferred to the processing device 2 and the read request ends.
【0030】処理装置2からディスク装置2内のデータ
に対するライト要求が発行されたときのデータの流れの
概要を図3に示す。要求を受け付けたチャネル制御部3
6は、リード要求のときと同様に、制御メモリを参照し
てヒット/ミス判定を行う。ヒットであった場合、キャ
ッシュ31上のデータに対して更新データをライトす
る。ミスした場合、まず、データをディスク装置2から
キャッシュ31ヘ転送してから、更新データをライトす
る。ヒット/ミスどちらの場合も、キャッシュ31に更
新データをライトした時点でライト要求を終了する。こ
のときキャッシュ31上にライトされただけで、ディス
ク装置2へは未反映のデータをライトペンディングデー
タと呼ぶ。キャッシュ31上のライトペンディングデー
タは、後で、ドライブ制御部38によりディスク装置2
へライトされる。これをライトアフタ制御という。FIG. 3 shows an outline of a data flow when the processing device 2 issues a write request for data in the disk device 2. Channel control unit 3 that received the request
Similarly to the case of the read request, 6 refers to the control memory and makes a hit / miss determination. If it is a hit, the update data is written to the data on the cache 31. If a miss occurs, first, the data is transferred from the disk device 2 to the cache 31, and then the updated data is written. In either case of hit / miss, the write request is terminated when the update data is written in the cache 31. At this time, the data that has been written to the cache 31 and has not been reflected to the disk device 2 is called write pending data. The write-pending data on the cache 31 will be transferred to the disk device 2 by the drive control unit 38 later.
Is written to. This is called write-after control.
【0031】次にキャッシュメモリ31の構成と制御に
ついて説明する。キャッシュメモリ31は図4に示すよ
うに、キャッシュスロット311と呼ばれるブロックに
分割されている。各キャッシュスロットの管理には、図
5に示すスロットコントロールブロック(以下、SCB
と略す)50を用いる。1キャッシュスロットの最大長
はディスク装置の1トラック分のデータを格納できる長
さである。SCB50にはキュー種別500,前方向ポ
インタ(FP)501,後方向ポインタ(BP)502、
および、スロット管理情報503を含む。なお、SCB
50は、制御メモリ35に格納される。次にこの制御メ
モリ35内における複数のSCBの管理に関して説明す
る。SCB50は、図5のように前方向ポインタ50
1、および後方向ポインタ502を持っている。SCB
50は全て、以上の双方向ポインタ501と502によ
り、制御メモリ35内でキュー管理される。図6に示す
ように、キューの種類は、空きSCB管理キュー35
2,再利用可能SCB管理キュー354,ライトペンデ
ィングSCB管理キュー356の3種類である。Next, the structure and control of the cache memory 31 will be described. The cache memory 31 is divided into blocks called cache slots 311 as shown in FIG. For management of each cache slot, a slot control block (hereinafter referred to as SCB) shown in FIG.
Abbreviated) 50 is used. The maximum length of one cache slot is a length that can store data for one track of the disk device. The SCB 50 has a queue type 500, a forward pointer (FP) 501, a backward pointer (BP) 502,
It also includes slot management information 503. In addition, SCB
50 is stored in the control memory 35. Next, management of a plurality of SCBs in the control memory 35 will be described. The SCB 50 is the forward pointer 50 as shown in FIG.
1 and a backward pointer 502. SCB
All 50 are queue-managed in the control memory 35 by the above-mentioned bidirectional pointers 501 and 502. As shown in FIG. 6, the type of queue is the empty SCB management queue 35.
2, the reusable SCB management queue 354, and the write-pending SCB management queue 356.
【0032】空きSCB管理キュー352は、ディスク
装置2内のデータに対して割り当てられていないキャッ
シュスロットを管理するSCB50をつなぐキューであ
る。キューの先頭は空きSCBポインタ52、末尾はN
ullである。該当するSCB50は、前方向ポインタ
501,後方向ポインタ502により双方向につながれ
る。該当するSCBが存在しない場合は空きSCBポイ
ンタがヌル(Null)を示す。The empty SCB management queue 352 is a queue that connects SCBs 50 that manage cache slots that are not assigned to data in the disk device 2. An empty SCB pointer 52 is at the beginning of the queue and N at the end.
It is ull. The corresponding SCB 50 is bidirectionally connected by the forward pointer 501 and the backward pointer 502. When the corresponding SCB does not exist, the empty SCB pointer indicates null.
【0033】再利用可能SCB管理キュー354は、キ
ャッシュスロット内にデータを保持しているが、必要で
あれば、新しいデータに対して割り当てるために使用す
ることが可能なキャッシュスロットを管理するSCBを
つなぐキューである。再利用可能SCBキュー352内
の各SCB50に対応するキャッシュスロットにはそれ
ぞれ、将来キャッシュヒットする可能性がある。The reusable SCB management queue 354 holds data in cache slots, but if necessary, an SCB that manages cache slots that can be used to allocate new data. It is a connecting cue. Each cache slot corresponding to each SCB 50 in the reusable SCB queue 352 may have a future cache hit.
【0034】これらのSCBの中から、再利用するSC
Bを選択する場合、キャッシュヒットする可能性が低い
SCBを選択する。具体的には、キューにつながれてい
るSCBの中で、最も長い時間アクセスされていないS
CBを選択する。このため、再利用可能SCB管理キュ
ー352のつなぎ方としてLRU(Least RecentlyUse
d)法を用いる。再利用可能SCB管理キュー354の
先頭は、MRU(MostRecently Used)ポインタ54であ
る。このポインタは最も最近にアクセスされたSCBを
差し示している。反対にキューの末尾は、LRUポイン
タ57である。前述のとおりこのポインタは、キューの
中で最も長い間アクセスされていないSCBを差し示し
ている。このキュー内のSCBがキャッシュヒットした
場合、SCBはMRU側に貼りかえる。このキューにお
いてはSCBの前方向ポインタ501はMRU側を差し
示し、後方向ポインタ502はLRU側を差し示す。ラ
イトペンディングSCB管理キュー356は、キャッシ
ュ上のライトペンディングデータを含むスロットに対応
するSCBをつなぐキューである。The SC to be reused from these SCBs
When selecting B, select SCB that is unlikely to cause a cache hit. Specifically, the S that has not been accessed for the longest time among the SCBs connected to the queue.
Select CB. Therefore, as a method of connecting the reusable SCB management queue 352, LRU (Least Recently Use)
d) Use the method. The head of the reusable SCB management queue 354 is an MRU (Most Recently Used) pointer 54. This pointer points to the most recently accessed SCB. Conversely, the end of the queue is the LRU pointer 57. As mentioned above, this pointer points to the SCB that has not been accessed for the longest time in the queue. When the SCB in this queue has a cache hit, the SCB is replaced on the MRU side. In this queue, the SCB forward pointer 501 points to the MRU side, and the backward pointer 502 points to the LRU side. The write pending SCB management queue 356 is a queue that connects the SCBs corresponding to the slots containing the write pending data on the cache.
【0035】本実施例の記憶制御装置3は、前述したよ
うにライトアフタ制御を行っているため、キャッシュ上
の更新データはディスク装置2には書き込まれていな
い。このため、ライトペンディングSCB管理キュー3
56内のSCB50は、キャッシュスロットの更新デー
タをディスク装置2にライトするまでは、空きSCB,
または再利用可能SCBとすることが出来ない。また、
このライトペンディングSCB管理キューもLRU法で
管理され、先頭はMRUポインタ56、末尾はLRUポ
インタ57であり、SCBの前方向ポインタ501はM
RU側を、後方向ポインタ502はLRU側を差し示
す。Since the storage control device 3 of this embodiment performs the write-after control as described above, the update data on the cache is not written in the disk device 2. Therefore, the write pending SCB management queue 3
The SCB 50 in 56 is an empty SCB until the update data of the cache slot is written to the disk device 2.
Or it cannot be a reusable SCB. Also,
This write pending SCB management queue is also managed by the LRU method, the head is the MRU pointer 56, the tail is the LRU pointer 57, and the forward pointer 501 of the SCB is M.
The RU side indicates the LRU side, and the backward pointer 502 indicates the LRU side.
【0036】本実施例では、ライトアフタ処理を行う
際、ライト対象のスロットは、基本的には今後ヒットす
る可能性が低いものから選択する。つまり、ライトペン
ディングSCB管理キューにおけるLRU側から選択す
る。そこで、ライトアフタ処理によりディスク装置2へ
書き込まれたスロットに対応するSCBは、再利用可能
SCB管理キュー354のLRU側に貼りかえる。ま
た、ライトペンディングSCB管理キュー356内のS
CBがキャッシュヒットした場合、SCBをMRU側に
貼りかえる。In this embodiment, when performing the write-after process, the slot to be written is basically selected from those which are less likely to be hit in the future. That is, the selection is made from the LRU side in the write pending SCB management queue. Therefore, the SCB corresponding to the slot written in the disk device 2 by the write-after process is replaced on the LRU side of the reusable SCB management queue 354. Also, S in the write pending SCB management queue 356
When the CB has a cache hit, the SCB is replaced on the MRU side.
【0037】図7に示すように、制御メモリ35には、
3種類のSCB管理キュー352,354,356のほ
かに、キャッシュ管理テーブル360,キャッシュ負荷
情報テーブル362を用意する。この二つのテーブルの
内容はキャッシュ管理部33および負荷情報管理部34
により参照,更新される。テーブルの内容の詳細につい
ては後述する。その他、本実施例のディスク制御装置3
内の制御情報のやりとりはこの制御メモリ35を介して
行われるが、本発明の特徴となる制御情報以外は図示し
ない。As shown in FIG. 7, the control memory 35 includes
In addition to the three types of SCB management queues 352, 354, 356, a cache management table 360 and a cache load information table 362 are prepared. The contents of these two tables are the cache management unit 33 and the load information management unit 34.
Is referred to and updated by. Details of the contents of the table will be described later. In addition, the disk controller 3 of this embodiment
The control information is exchanged via the control memory 35, but the control information other than the control information which characterizes the present invention is not shown.
【0038】図8にキャッシュ管理テーブル360の内
容を示す。このテーブル360は、キャッシュ管理部3
3がキャッシュの負荷情報を書き込み、負荷情報管理部
34が参照する。このテーブル360に書き込まれる情
報は、キャッシュ全体における空きSCB数3601と
利用可能SCB数3602とライトペンディングSCB数
3603、また単位時間内の要求別発行回数(3605
〜3607)とリードヒット/ミス回数(3608,36
09)である。割り当て待ち発生フラグ3610は、ス
ロット割り当て制限値により、スロット空き待ち状態の
ライト要求が発生していることを表すフラグである。ま
た、負荷情報管理部34が制限値変更を決定した場合、
本テーブル360の制限値変更フラグ3617、現在の
制限値3618、新しい制限値3619を用いて制限値変更
処理を行う。FIG. 8 shows the contents of the cache management table 360. This table 360 is used by the cache management unit 3
3 writes the load information of the cache, and the load information management unit 34 refers to it. The information written in this table 360 includes the number of empty SCBs 3601, the number of available SCBs 3602, the number of write-pending SCBs 3603, and the number of requests issued per unit time (3605) in the entire cache.
~ 3607) and read hit / miss count (3608,36)
09). The allocation wait occurrence flag 3610 is a flag indicating that a write request in the slot empty wait state is generated due to the slot allocation limit value. When the load information management unit 34 determines to change the limit value,
Limit value change processing is performed using the limit value change flag 3617, the current limit value 3618, and the new limit value 3619 of this table 360.
【0039】図9はキャッシュ負荷情報テーブル362
の内容を示す。このテーブル362は、負荷情報管理部
34がキャッシュ管理テーブル360のデータの履歴、
これらのデータを利用して生成した情報の履歴を一定時
間(n単位時間分)保持するためのテーブルである。内
容は、要求別発行回数履歴情報3620,要求別発行回
数変化量履歴情報3621,リード/ライト比履歴情報
3622,リード/ライト比変化量履歴情報3623,
キュー別SCB数履歴情報3624,キュー別SCB数
変化量履歴情報3625,リードヒット率履歴情報36
26,リードヒット率変化量履歴情報3627である。FIG. 9 shows the cache load information table 362.
Indicates the contents of. In this table 362, the load information management unit 34 records the data history of the cache management table 360,
It is a table for holding a history of information generated by using these data for a fixed time (n unit time). The contents are the issue count history information by request 3620, the issue count change amount history information by request 3621, the read / write ratio history information 3622, the read / write ratio change amount history information 3623,
Queue-specific SCB number history information 3624, queue-specific SCB number change amount history information 3625, read hit rate history information 36
26, read hit rate change amount history information 3627.
【0040】本発明の記憶制御装置の実施例の構成につ
いて述べた。次に本発明の特徴となる処理について説明
する。The configuration of the embodiment of the storage control device of the present invention has been described. Next, the processing that characterizes the present invention will be described.
【0041】本実施例のディスク制御装置3は、処理装
置1が発行するディスク装置2のデータに対するリード
/ライト要求を受け付け、処理を行う。前述のように、
このディスク制御装置3はライトアフタ制御を行う。キ
ャッシュ上のライトペンディングデータによるキャッシ
ュ占有を防ぐため、本実施例では、ライト要求に対する
キャッシュスロット割り当てに制限を設定する。リード
ミスの場合は、空きSCBまたは再利用可能SCBが存
在する場合は、キャッシュスロットの割り当てを行う。The disk control device 3 of this embodiment receives a read / write request for data of the disk device 2 issued by the processing device 1 and performs processing. As aforementioned,
The disk control device 3 performs write-after control. In order to prevent the cache from being occupied by the write pending data on the cache, in this embodiment, a limit is set on the cache slot allocation for the write request. In the case of a read miss, if a free SCB or a reusable SCB exists, a cache slot is assigned.
【0042】しかし、ライトミスに対しては、空きSC
Bまたは再利用可能SCBが存在する場合であっても、
制限値以上のスロット割り当ては行わない。スロットを
割り当てられないライト要求は、ライトペンディングS
CBの数が制限値以下になるまで、処理を待たなければ
ならない。リード/ライト要求に対してキャッシュヒッ
トした場合は、スロットに対してリード/ライトを行
う。したがって、ライトペンディングスロット数が制限
値を超える場合、ライトミス時にはスロット割り当てを
行わないが、ライトヒットの場合はライトペンディング
スロット数が制限値を超える場合もある。ライトペンデ
ィングスロット数が制限値を超えた場合、ディスク制御
装置3は、ライトアフタ処理の頻度を上げ、デステージ
を行う。However, for a write miss, an empty SC
B or even if there is a reusable SCB,
Slots above the limit are not assigned. A write request that cannot be assigned a slot is written in the write pending S
Processing must be waited until the number of CBs falls below the limit value. When a cache hit occurs for a read / write request, read / write is performed for the slot. Therefore, when the number of write pending slots exceeds the limit value, slot allocation is not performed at the time of a write miss, but in the case of a write hit, the number of write pending slots may exceed the limit value. When the number of write pending slots exceeds the limit value, the disk control device 3 increases the frequency of write after processing and performs destage.
【0043】図10はこのようなキャッシュ割り当て制
御を行うキャッシュ管理部33の機能を示す。制限値初
期設定機能331は、ライトペンディングスロット数の
割り当て制限値に初期値を設定する。キャッシュスロッ
ト管理機能332は、上記の制限値に基づくキャッシュ
スロットの割り当て(SCBの管理)およびそれに伴う
キャッシュ負荷情報の計測を行い、キャッシュ管理テー
ブルに書き込む。制限値変更設定機能333は、初期制
限値に変更が必要となった場合の制限値再設定を行う。FIG. 10 shows the function of the cache management unit 33 which performs such cache allocation control. The limit value initial setting function 331 sets an initial value to the allocation limit value of the number of write pending slots. The cache slot management function 332 performs cache slot allocation (SCB management) based on the above limit value, measures cache load information associated therewith, and writes the cache load information in the cache management table. The limit value change setting function 333 resets the limit value when the initial limit value needs to be changed.
【0044】図11にキャッシュスロット管理332の
処理フローを示す。キャッシュ管理部33は、ステップ
3320で、スロットの要求を受け付ける。要求があっ
た場合、ステップ3321でヒット/ミス判定を行う。
要求されたスロットがキャッシュ上にあった場合(ヒッ
ト)、ステップ3323でSCBのキュー貼りかえを行
う。FIG. 11 shows a processing flow of the cache slot management 332. The cache management unit 33 receives the request for the slot in step 3320. If there is a request, a hit / miss decision is made in step 3321.
If the requested slot is on the cache (hit), the SCB queue is replaced in step 3323.
【0045】要求されたスロットがキャッシュ上に存在
しなかった場合(ミス)、ステップ3324で、スロッ
トの割り当てが可能であるか否かを判定する。具体的に
はライト要求の場合、割り当て制限値を超えないか判定
する。割り当て可能な場合、ステップ3325でスロッ
トの割り当て処理を行う。スロットの割り当てができな
い場合、ライト要求を待ち状態にし、キャッシュ管理テ
ーブル360の割り当て待ち発生フラグ3610をON
にする。なお、本処理の中で、要求種別ごとの発行回
数,ヒット/ミス回数,キュー種別毎のSCB数を計測
し、キャッシュ管理テーブルに書き込む。If the requested slot does not exist in the cache (miss), step 3324 determines if the slot can be allocated. Specifically, in the case of a write request, it is determined whether the allocation limit value is exceeded. If it can be assigned, a slot assignment process is performed in step 3325. If the slot cannot be assigned, the write request is placed in a wait state and the assignment wait occurrence flag 3610 of the cache management table 360 is turned on.
To In this process, the number of issues for each request type, the number of hits / misses, and the number of SCBs for each queue type are measured and written in the cache management table.
【0046】図12は制限値変更設定機能の処理概要フ
ローを示す。キャッシュ管理部33の制限値変更設定機
能333は、ステップ3330で、キャッシュ管理テー
ブル360の制限値変更フラグ3617を参照する。こ
のフラグ3617がオフ(=0)の場合、制限値の再設
定は不要なため、処理は終了する。オン(≠)の場合、
制限値の変更が必要であるので、まず、ステップ333
1でキャッシュ管理テーブル360に対するロックを取
得する。FIG. 12 shows a processing outline flow of the limit value change setting function. The limit value change setting function 333 of the cache management unit 33 refers to the limit value change flag 3617 of the cache management table 360 in step 3330. If the flag 3617 is off (= 0), it is not necessary to reset the limit value, and the process ends. When on (≠),
Since it is necessary to change the limit value, first, step 333.
At 1, the lock on the cache management table 360 is acquired.
【0047】次に、ステップ3332で、キャッシュ管
理部33のライト要求に対するスロット割り当て制限値
として、キャッシュ管理テーブル360内の新しい制限
値3619を参照して設定する。その後、ステップ33
33で、現在の制限値3618に変更後の制限値を書き
込む。ステップ3334で制限値変更フラグをオフに
し、ステップ3335でロックを解放して、この制限値
変更設定処理を終了する。この後のキャッシュ割り当て
制御は、以上の処理で再設定した制限値に基づいて行
う。Next, at step 3332, a new limit value 3619 in the cache management table 360 is set as a slot allocation limit value for the write request of the cache management unit 33. Then step 33
At 33, the changed limit value is written in the current limit value 3618. The limit value change flag is turned off in step 3334, the lock is released in step 3335, and the limit value change setting process ends. The subsequent cache allocation control is performed based on the limit value reset in the above process.
【0048】以上の処理で参照しているキャッシュ管理
テーブル360に新しい制限値3619を書き込み、制
限値変更フラグ3617をオンにして制限値変更の必要
性を連絡するのは、負荷情報管理部34である。It is the load information management unit 34 that writes a new limit value 3619 in the cache management table 360 referred to in the above processing, turns on the limit value change flag 3617, and notifies the necessity of changing the limit value. is there.
【0049】図13は負荷情報管理部34の処理概要フ
ローを示す。ステップ3400では、単位時間の経過を
監視する。負荷情報管理部34では、この単位時間毎
に、キャッシュ負荷情報の収集、および監視を行い、必
要に応じてキャッシュを有効利用するための制限値を決
定する。単位時間が経過した場合、ステップ3402で
キャッシュの負荷情報を取得する。このキャッシュ負荷
情報とは、キャッシュ管理部33が計測しているキャッ
シュ管理テーブル360内の情報と、この情報を加工し
て得られる情報であり、これらを負荷情報管理テーブル
362に書き込む。FIG. 13 shows a processing outline flow of the load information management unit 34. In step 3400, the unit time is monitored. The load information management unit 34 collects and monitors the cache load information for each unit time, and determines a limit value for effectively using the cache as necessary. If the unit time has elapsed, cache load information is acquired in step 3402. The cache load information is information in the cache management table 360 measured by the cache management unit 33 and information obtained by processing this information, and these are written in the load information management table 362.
【0050】次にステップ3404では、負荷情報管理
テーブル362を参照して、ライト要求に対するキャッ
シュスロット割り当ての制限値を決定し、変更が必要か
否かを判定する。制限値の変更の必要がないと判定され
た場合、ステップ3400に戻る。変更が必要な場合、
ステップ3406で変更が可能であるか判定する。不可
能な場合、ステップ3400のもどる。変更が可能であ
る場合、ステップ3408で制限値を変更する。ステップ3
410で、処理を続行するかを判定し、続行する場合、
ステップ3400に戻り、続行しない場合、処理を終了
する。Next, at step 3404, the load information management table 362 is referred to, the limit value of the cache slot allocation for the write request is determined, and it is determined whether or not the change is necessary. If it is determined that it is not necessary to change the limit value, the process returns to step 3400. If you need to change
In step 3406, it is determined whether the change is possible. If not possible, the process returns to step 3400. If it can be changed, the limit value is changed in step 3408. Step 3
At 410, it is determined whether to continue the process. If the process is to be continued,
Returning to step 3400, the process ends if it is not to continue.
【0051】図14,図15を用いて負荷制御部34の
処理の詳細をさらに説明する。本図において点線で示し
たブロックとその番号は、図13の概要フローのステッ
プに対応している。The details of the processing of the load controller 34 will be further described with reference to FIGS. 14 and 15. The blocks and their numbers shown by dotted lines in this figure correspond to the steps of the outline flow in FIG.
【0052】ステップ3420では、単位時間が経過し
たか監視する。概要フローのステップ3400に対応し
ている。In step 3420, it is monitored whether the unit time has elapsed. This corresponds to step 3400 of the overview flow.
【0053】概要フローのステップ3402(負荷情報
の取得)に対応する処理として、ステップ3421〜3
424を示す。まず、ステップ3421では、制御メモ
リ35内のキャッシュ管理テーブル360を、負荷情報
管理部34を含んでいるマイクロプロセッサの内部メモ
リ(Data Storage 以下、DSと略す)にコピーする。次
にステップ3422で負荷情報テーブル362をDSに
コピーする。ステップ3423では、DSにコピーした
2つのテーブル360,362を参照して、負荷情報を
生成する。ステップ3424では、DS上の負荷情報管
理テーブル362を更新する。As processing corresponding to step 3402 (acquisition of load information) of the outline flow, steps 3421 to 3421 are executed.
424 is shown. First, in step 3421, the cache management table 360 in the control memory 35 is copied to the internal memory (Data Storage, hereinafter abbreviated as DS) of the microprocessor including the load information management unit 34. Next, at step 3422, the load information table 362 is copied to the DS. In step 3423, the load information is generated by referring to the two tables 360 and 362 copied to the DS. In step 3424, the load information management table 362 on the DS is updated.
【0054】ステップ3423で生成する情報として
は、図10のキャッシュ負荷情報テーブル362に示し
た要求別発行回数変化量3621,リード/ライト比3
622,リード/ライト比変化量3623,キュー別S
CB数変化量3625,リードヒット率3626,リー
ドヒット率変化量3627である。The information generated in step 3423 includes the issuance number change amount for each request 3621 and the read / write ratio of 3 shown in the cache load information table 362 of FIG.
622, read / write ratio change amount 3623, queue-specific S
The CB number change amount 3625, the read hit rate 3626, and the read hit rate change amount 3627.
【0055】ステップ3424では、ステップ3423
で求めた情報と、要求別発行回数(3604から360
7)とキュー別SCB数(3624)を負荷情報管理テ
ーブル362に書き込む。このテーブルには、計測(生
成)n回分の負荷情報を格納するようにFIFOで制御
する。In step 3424, step 3423
And the number of issuances by request (3604 to 360)
7) and the queue-specific SCB count (3624) are written in the load information management table 362. This table is controlled by the FIFO so as to store load information for measurement (generation) n times.
【0056】次に概要フローのステップ3404の処理
に対応するステップ(3425〜3427)について説
明する。Next, steps (3425 to 3427) corresponding to the processing of step 3404 of the outline flow will be described.
【0057】ステップ3425では、負荷情報管理テー
ブル362を参照して、キャッシュ使用状態に対応し
た、ライト要求に対するスロット割り当て制限値を求め
る。このステップに関しては、後で2種類のアルゴリズ
ム(図17,図18)をあげ、制限値を求める方法の例
として詳述する。ステップ3426では、前ステップで
求めた制限値と現在の制限値(キャッシュ管理テーブル
360を参照)を比較し、制限値の変更が必要である
か、否かを判定する。必要なかった場合、ステップ34
27で、DS上の負荷情報管理テーブル362の更新し
た部分を制御メモリ35の同テーブルに書き込む。ステ
ップ3426で変更の必要があった場合、図15のステ
ップ3430へ進む。In step 3425, the load information management table 362 is referred to, and the slot allocation limit value for the write request corresponding to the cache usage state is obtained. With regard to this step, two types of algorithms (FIGS. 17 and 18) will be given later and will be described in detail as an example of a method for obtaining the limit value. In step 3426, the limit value obtained in the previous step is compared with the current limit value (see the cache management table 360) to determine whether or not the limit value needs to be changed. If not, step 34
At 27, the updated part of the load information management table 362 on the DS is written in the same table of the control memory 35. If the change is necessary in step 3426, the process proceeds to step 3430 in FIG.
【0058】ステップ3430〜3432は概要フロー
の3406に対応する処理である。Steps 3430 to 3432 are processes corresponding to the outline flow 3406.
【0059】ステップ3430では、ステップ3426
で求めた制限値(新しい制限値)と現在の制限値を比較
する。比較の結果、新しい制限値の方が大きかった場
合、つまり、割り当て可能なスロット数を多くする場合
は、ステップ3433へ進む。反対に、現在の制限値の
方が大きかった場合、つまり、割当て可能なスロット数
を少なくする場合、ステップ3431において、新しい
制限値とライトペンディングSCB数を比較する。比較
の結果、新しい制限値の方が大きい場合、ステップ34
33に進む。反対に、新しい制限値の方がライトペンデ
ィングSCB数より小さかった場合、ステップ3432
に進む。ステップ3432では、ドライブ制御に対して
ライトアフタ処理頻度を上げることを制御メモリ35を
介して連絡する。この処理により、ライトアフタ制御の
頻度を上げ、ライトペンディングスロットの量を減少さ
せてからステップ3433へ進む。In Step 3430, Step 3426
The current limit value is compared with the limit value (new limit value) obtained in. As a result of the comparison, if the new limit value is larger, that is, if the number of allocatable slots is increased, the process proceeds to step 3433. On the contrary, when the current limit value is larger, that is, when the number of allocatable slots is reduced, in step 3431, the new limit value and the number of write pending SCBs are compared. If the result of comparison is that the new limit value is greater, step 34
Proceed to 33. Conversely, if the new limit is less than the number of write pending SCBs, step 3432
Proceed to. In step 3432, the increase in the frequency of write after processing is notified to the drive control via the control memory 35. By this processing, the frequency of write after control is increased and the amount of write pending slots is decreased, and then the routine proceeds to step 3433.
【0060】ステップ3433と3434は概要フロー
のステップ3408に対応する処理(制限値の変更)で
ある。実際には、キャッシュ管理部33に対して、制限
値の変更を制御メモリ35を介して連絡する。Steps 3433 and 3434 are processing (change of limit value) corresponding to step 3408 of the general flow. Actually, the change of the limit value is notified to the cache management unit 33 via the control memory 35.
【0061】まず、ステップ3433で、制御メモリ3
5のキャッシュ管理テーブル360に新しい制限値36
19を書き込む。次にステップ3434で、制限値更新
フラグ3617をオン(≠0)に設定する。前にも述べた
ように、このフラグ3617をキャッシュ管理部33が
参照することにより、制限値が変更される。次にステッ
プ3435でステップ3427と同様の処理(負荷情報
テーブル362の変更分を制御メモリ35に書き込む)
を行う。次のステップ3436は、概要フローの341
0に対応している。このステップで負荷情報管理部34
の処理を続行するかを判定する。処理を続行する場合、
ステップ3420にもどり、続行しない場合は終了す
る。First, in step 3433, the control memory 3
The new limit value 36 is added to the cache management table 360 of
Write 19. Next, in step 3434, the limit value update flag 3617 is set to ON (≠ 0). As described above, the cache management unit 33 refers to the flag 3617 to change the limit value. Next, in step 3435, the same processing as in step 3427 (writing the change in the load information table 362 to the control memory 35)
I do. The next step 3436 is the outline flow 341.
Corresponds to 0. In this step, the load information management unit 34
It is determined whether to continue the process of. If you want to continue processing,
The process returns to step 3420 and ends if not continued.
【0062】次に、ステップ3425の処理(キャッシ
ュ使用状態に対応した、ライト要求に対するスロット割
り当て制限値を求める処理)の例を示す。図16に前提
としてライト要求に対するスロット割り当て制限値の変
動範囲を示す。図16において、A,MAX,MINは
それぞれ、キャッシュ全体のスロット数を100%とし
たときのライト要求に対して割り当て可能なスロット数
の制限値であり、単位は%である。本発明のディスク制
御装置では、この制限値を変動させる範囲は、MINと
MAXの間とする。Aは図11に示したキャッシュ管理
部33の制限値初期設定処理331によって設定される
初期値である。MINは、制限値の最小値である。MA
Xは制限値の最大値である。キャッシュの使用状態がど
のような場合でも、キャッシュのMIN%のスロットは
ライト要求に対して割当て可能であり、反対に、MAX
%以上のスロットがライト要求に対して割り当てられる
ことはない。また、図16のα,βはそれぞれ、Aを基
準としたMAX方向(増加方向)、MIN方向(減少方
向)の変更分である。Next, an example of the processing of step 3425 (processing for obtaining the slot allocation limit value for the write request corresponding to the cache usage state) will be shown. As a premise, FIG. 16 shows a variation range of the slot allocation limit value for a write request. In FIG. 16, A, MAX, and MIN are limit values of the number of slots that can be assigned to a write request when the number of slots in the entire cache is 100%, and the unit is%. In the disk control device of the present invention, the range in which this limit value is changed is between MIN and MAX. A is an initial value set by the limit value initial setting process 331 of the cache management unit 33 shown in FIG. MIN is the minimum limit value. MA
X is the maximum limit value. No matter how the cache is used, MIN% slots of the cache can be allocated to write requests, and conversely, MAX
No more than% slots will be allocated for write requests. Further, α and β in FIG. 16 are changes in the MAX direction (increase direction) and the MIN direction (decrease direction) with reference to A, respectively.
【0063】図17を用いてまず第1の例を説明する。
この例における制限値の設定では、リード/ライト比を
監視して、ライト要求と比べたリード要求の比率が減少
方向であって、スロット割り当て待ち状態のライト要求
がある場合は、ライト要求に対して割り当て可能なスロ
ット数の制限値を増加させる。ただし、同時にリードヒ
ット率の監視も行い、リードヒット率が減少方向にある
場合は、ライト要求に対するスロット割り当て制限値の
引き上げにより、リードヒット率がさらに低くなる恐れ
があるため、制限値の引き上げは見あわせ、ライトアフ
タ処理の頻度を上げる。First, a first example will be described with reference to FIG.
In the setting of the limit value in this example, when the read / write ratio is monitored and the ratio of the read request compared to the write request is decreasing and there is a write request in the slot allocation waiting state, Increase the limit value of the number of slots that can be assigned. However, the read hit rate is also monitored at the same time, and if the read hit rate is decreasing, the read hit rate may be further lowered by increasing the slot allocation limit value for write requests. Make a match and increase the frequency of light after processing.
【0064】図17は以上の処理のフローである。ステ
ップ3450では、割り当て待ち発生フラグ3610を
参照して、スロットの割り当てを待っているライト要求
が存在しているかを判定する。フラグがオフの場合は、
待ち状態は発生していない。この場合、制限値を引き上
げても効果がないため、本処理を終了する。オンの場
合、スロット割り当て待ちが発生しているため、制限値
の引き上げを行いたいため、ステップ3451へ進む。
このステップでは、ライト要求に対するリード要求の比
率の増減の状態を判定する。具体的には、本テーブル3
62に格納しているn回計測した情報のうち、最近のx
(n≧x)回のリード/ライト比変化量を参照して、単
調減少の場合は減少とみなし、ステップ3452へすす
む。リード比率が減少しているとみなされない場合は、
制限値の変更は行わない。この場合、ステップ3454
でライトアフタ処理の頻度を上げる処理を行う。FIG. 17 shows the flow of the above processing. In step 3450, it is determined whether or not there is a write request waiting for slot allocation by referring to the allocation wait occurrence flag 3610. If the flag is off,
No wait state has occurred. In this case, there is no effect even if the limit value is raised, so this processing ends. If it is ON, there is a slot allocation wait, and it is desired to raise the limit value, and therefore the routine proceeds to step 3451.
In this step, it is determined whether the ratio of read requests to write requests is increasing or decreasing. Specifically, this table 3
Of the information measured n times stored in 62, the latest x
With reference to the read / write ratio change amount of (n ≧ x) times, if it is monotonically decreasing, it is regarded as decreasing, and the process proceeds to step 3452. If the lead ratio is not considered to be decreasing,
The limit value is not changed. In this case, step 3454
The process for increasing the frequency of the write after process is performed.
【0065】次にステップ3452では、リードヒット
率履歴情報3626および同変化量履歴情報3627を
参照し、リードヒット率が低い、または減少方向にある
状態であるかを判定する。具体的には、リードヒット率
履歴情報3626の内、最新のリードヒット率が、あら
かじめ制御のために定めておいた基準値よりも低い場合
は、リードヒット率が低い状態と判定し、制限値の変更
は行わない。リードヒット率が基準値よりも高い場合で
あっても、変化量履歴情報3627を参照してリードヒ
ット率が減少していると判定された場合は、制限値の変
更は行わないため、ステップ3453へ進み、ライトア
フタ処理の頻度を上げる処理を行う。なお、このステッ
プ3453の処理は図15のステップ3432と同様に
行う。Next, at step 3452, the read hit rate history information 3626 and the change amount history information 3627 are referred to, and it is determined whether the read hit rate is low or in a decreasing direction. Specifically, in the read hit rate history information 3626, when the latest read hit rate is lower than a reference value set for control in advance, it is determined that the read hit rate is low, and the limit value is set. Will not be changed. Even if the read hit rate is higher than the reference value, if it is determined by referring to the change amount history information 3627 that the read hit rate is decreasing, the limit value is not changed, and thus the step 3453 is performed. Then, the process proceeds to the process of increasing the frequency of the write after process. The process of step 3453 is performed in the same manner as step 3432 of FIG.
【0066】リードヒット率が基準値以上でかつ、減少
している状態でもないとき、次のステップ3455へす
すむ。このステップでは現在の制限値とMAXを比較す
る。次ステップ以降で制限値の引き上げを行うが、現在
の制限値がMAXである場合、それ以上の引き上げは行
わないのでステップ3453へ進む。現在の制限値がM
AXより小である場合は次のステップ3456へ進む。
ステップ3455では現在の制限値とAを比較する。現
在の制限値がA以上のとき、ステップ3457で新制限
値として(現在の制限値+α)を設定する。現在の制限
値がAより小さい場合、ステップ3458で、新制限値
として(現在の制限値+β)を設定して本処理を終了す
る。この後、図14のステップ3426へ進む。If the read hit rate is equal to or higher than the reference value and is not in a decreasing state, the process proceeds to the next step 3455. In this step, MAX is compared with the current limit value. Although the limit value is increased in the next step and thereafter, if the current limit value is MAX, further increase is not performed, and therefore the process proceeds to step 3453. The current limit is M
If it is smaller than AX, the process proceeds to the next step 3456.
In step 3455, A is compared with the current limit value. When the current limit value is A or more, in step 3457, (current limit value + α) is set as a new limit value. If the current limit value is smaller than A, in step 3458, (current limit value + β) is set as the new limit value, and the process ends. After this, the process proceeds to step 3426 of FIG.
【0067】図18を用いて第2の例を説明する。この
例における制限値の設定方法では、シーケンシャルライ
ト要求の有無を監視する。シーケンシャルライト要求が
実行された場合、ライトペンディングスロット数が増加
するが、これらのスロットはその後参照される(キャッ
シュヒットする)可能性が低い。キャッシュ制御におい
ては、キャッシュ上にはヒットする可能性の高いスロッ
トを残すことが重要である。このため、シーケンシャル
ライトのスロットはキャッシュ上に長く残さず、ディス
ク装置へ書き込む方がよい。そこで、この例では、シー
ケンシャルライト要求を検知したら、ライト要求に対す
るスロット割り当て制限値を引下げ、それにより、ディ
スク装置へのライトデータの書き込みを促す制御を行
う。A second example will be described with reference to FIG. In the limit value setting method in this example, the presence or absence of a sequential write request is monitored. When a sequential write request is executed, the number of write pending slots increases, but these slots are less likely to be referenced (cache hit) thereafter. In cache control, it is important to leave a slot with a high probability of hitting on the cache. Therefore, it is better not to leave the sequential write slot in the cache for a long time and write it to the disk device. Therefore, in this example, when a sequential write request is detected, the slot allocation limit value for the write request is lowered, thereby performing control to prompt writing of write data to the disk device.
【0068】まず、ステップ3460で負荷情報テーブ
ル362の要求別発行回数履歴情報3620より、シー
ケンシャルライト要求の有無を判定する。無しの場合、
本処理を終了する。要求が発行されていた場合、現在の
制限値とMINを比較する。現在の制限値がMINであ
った場合、これ以上の制限値引下げは行わないため、処
理を終了する。次に、ステップ3464で、現在の制限
値とAを比較する。現在の制限値がA以下のとき、ステ
ップ3466で新制限値として(現在の制限値−β)を
設定する。現在の制限値がAより大きい場合、ステップ
3468で、新制限値として(現在の制限値−α)を設
定して本処理を終了する。この後、図14のステップ3
426へ進む。First, at step 3460, it is determined from the request-based issuance count history information 3620 of the load information table 362 whether there is a sequential write request. If none,
This process ends. If a request has been issued, compare the current limit with the MIN. If the current limit value is MIN, further limit value reduction is not performed, and the process ends. Next, in step 3464, A is compared with the current limit value. When the current limit value is A or less, (current limit value-β) is set as a new limit value in step 3466. If the current limit value is larger than A, in step 3468, (current limit value-α) is set as the new limit value, and the process ends. After this, step 3 in FIG.
Proceed to 426.
【0069】以上、制限値変更判定の例を二つ示した。
さらに上記の二つの方法を組み合わせて、制限値の設定
制御を行うこともできる。Above, two examples of limit value change determination have been shown.
Further, it is possible to control the setting of the limit value by combining the above two methods.
【0070】本発明の実施例のように、キャッシュを使
用する要求別にキャッシュ割り当て制限値を設定し、さ
らにキャッシュの使用状態に応じてその制限値を変更す
る制御を行うことによりキャッシュの資源の有効利用を
図るディスク制御装置を提供することが出来る。As in the embodiment of the present invention, the cache allocation limit value is set for each request that uses the cache, and further the limit value is changed according to the usage state of the cache. It is possible to provide a disk control device intended for use.
【0071】[0071]
【発明の効果】本発明の記憶制御装置は、キャッシュ使
用要求の一部にキャッシュ割り当て制限値を設定するこ
とにより、特定の要求によるキャッシュの占有を防ぎ、
さらにキャッシュの負荷状態の監視を行って、負荷状態
に応じて制限値を変更する制御を行うことにより、キャ
ッシュメモリの資源の有効利用を図ることができる。The storage control device of the present invention prevents the occupation of the cache by a specific request by setting a cache allocation limit value in a part of the cache use request,
Further, by monitoring the load state of the cache and controlling the limit value to be changed according to the load state, it is possible to effectively use the resources of the cache memory.
【0072】本発明の実施例では、ディスク装置内のデ
ータに対するリード/ライト要求のうち、ライト要求に
対してキャッシュスロットの割り当てに制限値を設定す
る。負荷情報管理部はリード/ライト比およびリードヒ
ット率を監視し、ライトに対するリードの比率が低下
し、リードヒット率が減少傾向にない場合はライト要求
に対する割り当て制限値の引き上げを行う。また、シー
ケンシャルライトによるライトペンディングスロット
は、キャッシュ上に残しておいてもキャッシュヒットす
る可能性が低い。そこで、シーケンシャルライト要求が
発行されたことを検知した場合、キャッシュスロット割
り当て制限値を引下げ、ディスク装置へのデステージ頻
度を上げる。このように、キャッシュの負荷状態に応じ
た制限値の設定を行うことにより、キャッシュを有効に
利用することができる。これにより、キャッシュ空き待
ちの発生件数が減少し、応答時間の短縮を図ることがで
きる。In the embodiment of the present invention, of the read / write requests for the data in the disk device, a limit value is set for the cache slot allocation for the write request. The load information management unit monitors the read / write ratio and the read hit ratio, and raises the allocation limit value for the write request when the read to write ratio decreases and the read hit ratio does not tend to decrease. Further, the write pending slot by sequential write is less likely to hit the cache even if it is left on the cache. Therefore, when it is detected that a sequential write request is issued, the cache slot allocation limit value is lowered and the destage frequency to the disk device is increased. In this way, the cache can be effectively used by setting the limit value according to the load state of the cache. As a result, the number of occurrences of waiting for free cache is reduced, and the response time can be shortened.
【図1】本発明の実施例の制御ブロック図。FIG. 1 is a control block diagram of an embodiment of the present invention.
【図2】本発明の実施例でのリードデータのながれを示
すブロック図。FIG. 2 is a block diagram showing a flow of read data in the embodiment of the invention.
【図3】本発明の実施例でのライトデータのながれを示
すブロック図。FIG. 3 is a block diagram showing a flow of write data according to the embodiment of the invention.
【図4】キャッシュの説明図。FIG. 4 is an explanatory diagram of a cache.
【図5】スロットコントロールブロックの説明図。FIG. 5 is an explanatory diagram of a slot control block.
【図6】スロットコントロールブロックの管理について
の説明図。FIG. 6 is an explanatory diagram of management of a slot control block.
【図7】制御メモリの内部の概要を示すブロック図。FIG. 7 is a block diagram showing an outline of the inside of a control memory.
【図8】キャッシュ管理テーブルを示す説明図。FIG. 8 is an explanatory diagram showing a cache management table.
【図9】キャッシュ負荷情報テーブルを示す説明図。FIG. 9 is an explanatory diagram showing a cache load information table.
【図10】キャッシュ管理部の機能ブロック図。FIG. 10 is a functional block diagram of a cache management unit.
【図11】キャッシュスロット管理のフローチャート。FIG. 11 is a flowchart of cache slot management.
【図12】制限値変更処理のフローチャート。FIG. 12 is a flowchart of limit value change processing.
【図13】負荷情報管理部の処理概要フローチャート。FIG. 13 is a flowchart of the processing outline of a load information management unit.
【図14】負荷情報管理部の処理フローチャート。FIG. 14 is a processing flowchart of a load information management unit.
【図15】負荷情報管理部の処理フローチャート。FIG. 15 is a processing flowchart of a load information management unit.
【図16】ライト要求に対するスロット割り当て制限値
の変動範囲を示す説明図。FIG. 16 is an explanatory diagram showing a variation range of a slot allocation limit value with respect to a write request.
【図17】制限値変更判定の例(1)を示すフローチャ
ート。FIG. 17 is a flowchart showing an example (1) of limit value change determination.
【図18】制限値変更判定の例(2)を示すフローチャ
ート。FIG. 18 is a flowchart showing an example (2) of limit value change determination.
3…ディスク制御装置、31…キャッシュメモリ、33
…キャッシュ管理部、34…負荷情報管理部、35…制
御メモリ。3 ... Disk control device, 31 ... Cache memory, 33
... cache management unit, 34 ... load information management unit, 35 ... control memory.
Claims (3)
ロックからなるキャッシュメモリを有する記憶制御装置
において、単位時間毎に、前記処理装置が前記記憶制御
装置に発行する前記記憶装置のデータの入出力要求の、
発行回数、または要求されたデータを含むブロックがキ
ャッシュ上に存在していなかった回数、または要求され
たデータを含むブロックがキャッシュ上にすでに存在し
ていた回数の少なくとも一つのデータを計測する手段
と、前記データから、前記単位時間毎の前記データの変
化または比率をあらわすデータを生成する手段と、前記
データと前記変化または比率をあらわすデータとをキャ
ッシュの負荷情報として保持する手段と、前記負荷情報
の一部または全部を用いて、前記入出力要求の一部に対
する前記ブロックの割り当て数の制限値を求める手段
と、前記制限値を設定する手段とを含むことを特徴とす
る記憶制御装置。1. A storage controller, which is connected to a storage device and a processing device and has a cache memory composed of a plurality of blocks, wherein data of the storage device issued by the processing device to the storage control device is issued every unit time. I / O request,
A means for measuring at least one of the number of times of issuance, the number of times that the block containing the requested data did not exist in the cache, or the number of times that the block containing the requested data already existed in the cache; , Means for generating data representing the change or ratio of the data for each unit time from the data, means for holding the data and the data representing the change or ratio as cache load information, and the load information A storage control device comprising: means for obtaining a limit value of the number of blocks allocated to a part of the input / output request using part or all of the above; and means for setting the limit value.
内のデータのリード要求またはライト要求であって、前
記要求の一部が、前記ライト要求である記憶制御装置。2. The storage control device according to claim 1, wherein the request is a read request or a write request for data in a storage device, and a part of the request is the write request.
データに割り当てられたブロック数を計測する手段と、
前記ブロック数と制限値を比較する手段とキャッシュ内
のライトデータを記憶装置へ書き出す処理の頻度を上げ
て実行する手段とを含む記憶制御装置。3. A means for measuring the number of blocks allocated to write data in a cache according to claim 2,
A storage controller comprising: means for comparing the number of blocks with a limit value; and means for increasing the frequency of processing for writing write data in the cache to a storage device.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5030117A JPH06243042A (en) | 1993-02-19 | 1993-02-19 | Storage controller |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5030117A JPH06243042A (en) | 1993-02-19 | 1993-02-19 | Storage controller |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH06243042A true JPH06243042A (en) | 1994-09-02 |
Family
ID=12294846
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP5030117A Pending JPH06243042A (en) | 1993-02-19 | 1993-02-19 | Storage controller |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH06243042A (en) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08171515A (en) * | 1994-12-19 | 1996-07-02 | Nec Corp | Memory management system for disk cache |
JP2005056011A (en) * | 2003-08-08 | 2005-03-03 | Hitachi Ltd | Unitary control method for amount of use of disk in virtual unified network storage system |
JP2005148961A (en) * | 2003-11-13 | 2005-06-09 | Hitachi Ltd | Storage device adapter with integrated cache |
JP2009009572A (en) * | 2007-06-26 | 2009-01-15 | Seagate Technology Llc | Host adaptive seek technique environment |
JP2009009573A (en) * | 2007-06-26 | 2009-01-15 | Seagate Technology Llc | Command queue loading |
JP2013504142A (en) * | 2009-09-08 | 2013-02-04 | フュージョン−アイオー・インコーポレーテッド | Apparatus, system, and method for caching data on a solid state storage device |
-
1993
- 1993-02-19 JP JP5030117A patent/JPH06243042A/en active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08171515A (en) * | 1994-12-19 | 1996-07-02 | Nec Corp | Memory management system for disk cache |
JP2005056011A (en) * | 2003-08-08 | 2005-03-03 | Hitachi Ltd | Unitary control method for amount of use of disk in virtual unified network storage system |
JP2005148961A (en) * | 2003-11-13 | 2005-06-09 | Hitachi Ltd | Storage device adapter with integrated cache |
JP2009009572A (en) * | 2007-06-26 | 2009-01-15 | Seagate Technology Llc | Host adaptive seek technique environment |
JP2009009573A (en) * | 2007-06-26 | 2009-01-15 | Seagate Technology Llc | Command queue loading |
JP2013504142A (en) * | 2009-09-08 | 2013-02-04 | フュージョン−アイオー・インコーポレーテッド | Apparatus, system, and method for caching data on a solid state storage device |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5787473A (en) | Cache management system using time stamping for replacement queue | |
US5751993A (en) | Cache management system | |
US10540296B2 (en) | Thresholding task control blocks for staging and destaging | |
US5649156A (en) | Cache management system utilizing a cache data replacer responsive to cache stress threshold value and the period of time a data element remains in cache | |
US5706467A (en) | Sequential cache management system utilizing the establishment of a microcache and managing the contents of such according to a threshold comparison | |
CN110058786B (en) | Method, apparatus and computer program product for controlling write requests in a storage system | |
US4771375A (en) | Managing data storage devices connected to a digital computer | |
US5608890A (en) | Data set level cache optimization | |
JP3308554B2 (en) | Control device and control method of control device | |
US5257352A (en) | Input/output control method and system | |
US4876662A (en) | Optimizing volume mounts in a multidrive environment | |
JPH0659982A (en) | Method and device for controlling virtual storage | |
WO1999041668A1 (en) | Compression store free-space management | |
US10048876B2 (en) | Method for providing nonvolatile storage write bandwidth using a caching namespace | |
US5581726A (en) | Control system for controlling cache storage unit by using a non-volatile memory | |
CN111258967A (en) | Data reading method and device in file system and computer readable storage medium | |
JPH0675785A (en) | Pre-staging processing method, buffer management method and file system | |
JP3194201B2 (en) | How to select cache mode | |
EP0066766A2 (en) | I/O controller with a dynamically adjustable cache memory | |
US10108350B2 (en) | Method for providing nonvolatile storage write bandwidth using a caching namespace | |
JPH06243042A (en) | Storage controller | |
JPH05189316A (en) | Disk cache control method | |
US5440712A (en) | Database input/output control system having nonvolatile storing unit for maintaining the database | |
CN111309257A (en) | Pre-reading method and device for reading file at constant speed and computer readable storage medium | |
JP3356090B2 (en) | Memory management method, memory management device, and recording medium |