Nothing Special   »   [go: up one dir, main page]

JPH06243042A - 記憶制御装置 - Google Patents

記憶制御装置

Info

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
Application number
JP5030117A
Other languages
English (en)
Inventor
Misako Takahashi
美佐子 高橋
Takao Sato
孝夫 佐藤
Akira Yamamoto
山本  彰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP5030117A priority Critical patent/JPH06243042A/ja
Publication of JPH06243042A publication Critical patent/JPH06243042A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【目的】要求に対する固定的な割り当て制限値のために
おこるキャッシュ空き待ちの多発を緩和し、入出力要求
に対する応答時間を短縮する。 【構成】 キャッシュ管理部33は、キャッシュを使用
する要求のうち、一部の要求に対して割り当て可能なキ
ャッシュ量に制限値を設定して、キャッシュの割り当て
制御を行う。負荷情報管理部34が、キャッシュの負荷
状態を監視し、負荷状態に応じたキャッシュ割り当て制
限値を求める。制限値の変更が必要となった場合、キャ
ッシュ管理部33は制限値を変更してキャッシュ割り当
て制御を行う。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は記憶装置の制御装置に係
り、特に、キャッシュを内蔵する記憶制御装置に関す
る。
【0002】
【従来の技術】キャッシュの制御技術に関する公知例を
以下に示す。
【0003】特開昭55−157053号明細書では、ディスク
キャッシュを有する制御装置におけるライトアフタ処理
技術が開示されている。この技術では、制御装置は処理
装置から受け付けたライトデータをキャッシュに書き込
んだ段階でライト要求を終了させる。処理装置から受け
付け、キャッシュ内に格納したデータをディスク装置へ
書き込む処理は、後から制御装置が行う。このライトア
フタ処理によってライト処理が高速化される。
【0004】ライトアフタ機能付きディスクキャッシュ
の基本制御技術にかかる公知例は、特願平3−25994号明
細書に開示されている制御がある。ライトアフタ処理の
適用により起こる問題として、チャネル側/ディスク装
置側のデータ転送速度の違いによるキャッシュの満杯状
態の発生があった。
【0005】リードデータの場合、ディスク装置にも同
じデータが存在するため、任意の時点でキャッシュのデ
ータを消去し、他のデータを格納することが可能であ
る。一方、ライトアフタ処理を行った場合、ライト要求
が終了した時点では、更新されたデータはキャッシュ上
にしか存在しない。このため、キャッシュ上のライトデ
ータは、ディスク装置に書き込まれるまで残しておかな
ければならない。また、チャネル側のデータ転送速度に
くらべ、ドライブ側のデータ転送速度が遅いこともあっ
て、ライト要求の頻度が増した場合、データの消去が不
可能なライトデータによってキャッシュが占有されてし
まう。
【0006】この従来例によれば、記憶制御装置は、キ
ャッシュ内のライトデータの量、および記憶装置毎のキ
ャッシュへのライトデータの流入量およびライトアフタ
処理によるライトデータの流出量を検出し、流入量>流
出量の記憶装置に対して、ライトデータに対するキャッ
シュ割り当て制限および記憶装置へのデータ書き込みを
優先して実行する。この技術により、キャッシュの満杯
状態によるシステム全体の性能低下を回避し、記憶装置
毎のキャッシュメモリの割り当ての配分を適切に行うこ
とができる。
【0007】
【発明が解決しようとする課題】一方、記憶装置内のデ
ータの入出力処理では、時間帯の違いあるいは、処理形
態(オンライン処理/バッチ処理)の違い、さらには、
データの種類(例えば、シーケンシャルアクセスデー
タ,ランダムアクセスデータ)により、キャッシュの負
荷(アクセス頻度,ヒット率,キャッシュ使用量)が変
わってくる。このため、ライト要求に対しては、キャッ
シュの負荷状態に応じた適正なキャッシュ割り当て制限
値を設定し、キャッシュの割り当てを行うことが必要で
ある。
【0008】例えば、キャッシュ上のライトデータ量に
対し、従来のような固定的な制限値を設定すると、キャ
ッシュ資源の有効利用が図れない場合が起こる。キャッ
シュ上のライトペンディングデータのための割り当て量
の制限値が適正な値より小さすぎると、キャッシュ空き
待ちの発生による応答時間が遅れ、また、ライトアフタ
処理の効果が低下してしまう。反対に制限値が大きすぎ
た場合、リードヒット率の低下を招くなどの問題が生じ
る。
【0009】上記の特願平3−25994号明細書では、キャ
ッシュ内のライトデータの量に対する制限値を中央処理
装置からの指示により設定する手段を有しているが、記
憶制御装置内における設定値変更に関する言及はなされ
ていない。しかし、複数の処理装置からのデータ入出力
要求を受け付ける記憶制御装置の場合、キャッシュ割り
当ての制限値に関しては、記憶制御装置が設定すること
が望ましい。
【0010】本発明の目的は、キャッシュの使用用途別
にキャッシュ割当て制限値を設定し、さらに、キャッシ
ュの使用状態に応じてその制限値を変更する制御を行う
ことにより、キャッシュの資源の有効利用を図る記憶制
御装置を提供することにある。
【0011】
【課題を解決するための手段】上記目的を達成するため
に、本発明による記憶制御装置は以下の手段を用いる。
【0012】(1)キャッシュの割り当てを必要とする
要求には、中央処理装置が発行する記憶装置内のデータ
に対するリード/ライト要求、および記憶制御装置の内
部制御のために発行される複数の要求がある。これらの
要求の種別のうち一部に対して、その要求に対して割り
当て可能なキャッシュ量に制限値を設定する。
【0013】(2)単位時間ごとに、(1)で述べたキ
ャッシュ割り当てを必要とする要求それぞれの発行回
数,キャッシュ割り当て量,キャッシュヒット回数のう
ち少なくとも一つの情報(絶対量)を計測する。
【0014】(3)ある時点tで計測した(2)に記し
た情報(絶対量)と、tより1単位時間前に計測した同
情報(絶対量)から単位時間内の変化量を生成する。
【0015】(4)上記(2)で計測した絶対量と
(3)で生成した変化量をキャッシュ負荷情報として保
持する。
【0016】(5)上記(4)により保持しているキャ
ッシュ負荷情報から(1)で設定した制限値を変更する
必要性を判定する。
【0017】
【作用】本発明の記憶制御装置は複数の固定長ブロック
(キャッシュセグメント)に分割されたキャッシュメモ
リを有している。
【0018】記憶装置内のデータに対するリード要求が
発行されると、記憶制御装置は要求されたデータがキャ
ッシュ上に存在するか否かを判定する。以下、存在した
場合をヒット、存在しなかった場合をミス、また、その
判定のことをヒット/ミス判定と記述する。ヒットした
場合、キャッシュ上のデータを処理装置へ転送する。ミ
スの場合、リード要求された記憶装置のデータが格納で
きる数のキャッシュセグメントを割り当て、そのキャッ
シュセグメントにデータをロードし、処理装置へ転送す
る。ライト要求が発行された場合も同様、ヒットの場合
はキャッシュセグメントに対しライトデータを書き込
む。ミスの場合、キャッシュセグメントを割り当て、記
憶装置のデータをキャッシュへロードし、ライト処理を
行う。また、キャッシュにライトデータを書き込んだ時
点でライト処理を終了させ、ライトデータの記憶装置へ
の書き込みは後で行う(ライトアフタ処理)。
【0019】従来の技術で述べたキャッシュ満杯状態
は、ライトデータがキャッシュを占有してしまった場合
であったが、この問題は、キャッシュセグメントの割り
当てが特定の要求に対して行われてしまうことにより起
こる。本発明の記憶制御装置では、この問題を回避する
ために、まず、(1)によりキャッシュを必要とする要
求のうち、キャッシュ占有の恐れがあるものに対して
は、セグメント割り当て数に任意の制限値を設定する。
【0020】しかし、キャッシュの使用状態によって
は、キャッシュ全体としては割り当て可能なキャッシュ
セグメントが十分存在するにもかかわらず、制限値を設
定されているため、キャシュセグメントを割り当てられ
ず、待ち状態になってしまう要求が発生する場合が起こ
りうる。キャッシュの有効利用のためには、キャッシュ
の状態に応じてこの制限値をチューニングすることが考
えられる。
【0021】そこで、本発明の記憶制御装置はまず、
(2)によってキャッシュの使用状態を計測する。計測
する情報は、単位時間内に、各要求の発行された回数,
ヒットした回数,ミスした回数である。次に、(3)に
よってこれらの情報の変化量を生成する。これら(2)
(3)により得た情報を(4)により、保持する。これ
らの情報から各要求に対するキャッシュセグメント割り
当て制限値が適正であるか否かを(5)により判定し、
変更が必要な場合、(1)により制限値を再設定する。
【0022】
【実施例】まず、本発明の記憶制御装置の制御構成の概
要について図1を用いて示す。本実施例の記憶制御装置
3は以下に示す構成要素からなる。なお、図1における
各構成要素のつながりは、制御線(細線)またはデータ
転送パス(太線)で示している。キャッシュメモリ3
1,32は、不揮発化,2重化されたキャッシュメモリ
である。この二つのキャッシュメモリの内容は同一であ
るため、本実施例の説明は主にキャッシュメモリ31を
用いて行う。
【0023】キャッシュ管理部33は、キャッシュの割
り当てに関する制御を行い、本発明の特徴である制限値
設定機能302、および負荷情報計測機能303を持
つ。
【0024】負荷情報管理部34は、キャッシュの使用
状態の監視を行い、本発明の特徴として負荷情報生成機
能304、および制限値決定機能306を持つ。
【0025】制御メモリ35は記憶制御装置3の制御情
報を格納するための不揮発メモリであり、負荷情報保持
機能304に対応するテーブルを格納している。制御メ
モリ35に格納されるそのほかの制御情報については、
必要に応じて後述する。
【0026】チャネル制御部36は、処理装置1が発行
する記憶装置2のデータの入出力要求を受け付け、実行
する。チャネル制御37は処理装置1とディスク制御装
置3とのインタフェース機能を持つ。処理装置1からの
入出力要求受け付けや、処理装置1へのデータ転送など
はこのチャネル制御37を介して行われる。
【0027】ドライブ制御38は、ディスク装置2とデ
ィスク制御装置とのデータ転送の制御を行う。ドライブ
制御39はディスク制御装置3とディスク装置2とのイ
ンタフェース機能を持つ。以上で述べたキャッシュ管理
部33,負荷情報管理部34,チャネル制御部36およ
びドライブ制御部38のそれぞれは、ディスク制御装置
3のマイクロプロセッサ内のプログラムである。
【0028】キャッシュメモリ31は固定長ブロックに
分割されている。制限値設定機能302はキャッシュブ
ロックの割り当て数に制限値を設定する手段である。負
荷情報計測機能303は、要求毎のキャッシュ負荷情報
(要求発行回数,ヒット回数,ミス回数)を単位時間毎
に計測する機能である。負荷情報生成機能304では、
負荷情報計測機能303において計測したキャッシュ負
荷情報からその変化の状態などを求める。負荷情報計測
機能303と負荷情報生成機能304で得られたキャッ
シュ負荷情報を保持するのが負荷情報保持機能305で
ある。制限値決定機能306では、305に保持されて
いるキャッシュ負荷情報を用いて、キャッシュ割り当て
制限値を決定する。
【0029】処理装置1からディスク装置2内のデータ
のリード要求が発行されたときのデータの流れの概要を
図2に示す。要求を受け付けたチャネル制御部36は、
まず、制御メモリ35を参照して、要求されたデータが
キャッシュ31上に存在する(ヒット)か、存在しない
(ミス)かを判定する。これをヒット/ミス判定とい
う。このヒット/ミス判定の処理については、後述す
る。判定の結果、ヒットであった場合、キャッシュ31
からデータを処理装置1へ転送する。ミスした場合、ま
ず、データをディスク装置2からキャッシュ31へ転送
し、次にキャッシュ31から処理装置1へ転送される。
処理装置2にデータが転送されてリード要求が終了す
る。
【0030】処理装置2からディスク装置2内のデータ
に対するライト要求が発行されたときのデータの流れの
概要を図3に示す。要求を受け付けたチャネル制御部3
6は、リード要求のときと同様に、制御メモリを参照し
てヒット/ミス判定を行う。ヒットであった場合、キャ
ッシュ31上のデータに対して更新データをライトす
る。ミスした場合、まず、データをディスク装置2から
キャッシュ31ヘ転送してから、更新データをライトす
る。ヒット/ミスどちらの場合も、キャッシュ31に更
新データをライトした時点でライト要求を終了する。こ
のときキャッシュ31上にライトされただけで、ディス
ク装置2へは未反映のデータをライトペンディングデー
タと呼ぶ。キャッシュ31上のライトペンディングデー
タは、後で、ドライブ制御部38によりディスク装置2
へライトされる。これをライトアフタ制御という。
【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種類である。
【0032】空きSCB管理キュー352は、ディスク
装置2内のデータに対して割り当てられていないキャッ
シュスロットを管理するSCB50をつなぐキューであ
る。キューの先頭は空きSCBポインタ52、末尾はN
ullである。該当するSCB50は、前方向ポインタ
501,後方向ポインタ502により双方向につながれ
る。該当するSCBが存在しない場合は空きSCBポイ
ンタがヌル(Null)を示す。
【0033】再利用可能SCB管理キュー354は、キ
ャッシュスロット内にデータを保持しているが、必要で
あれば、新しいデータに対して割り当てるために使用す
ることが可能なキャッシュスロットを管理するSCBを
つなぐキューである。再利用可能SCBキュー352内
の各SCB50に対応するキャッシュスロットにはそれ
ぞれ、将来キャッシュヒットする可能性がある。
【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をつなぐキューである。
【0035】本実施例の記憶制御装置3は、前述したよ
うにライトアフタ制御を行っているため、キャッシュ上
の更新データはディスク装置2には書き込まれていな
い。このため、ライトペンディングSCB管理キュー3
56内のSCB50は、キャッシュスロットの更新デー
タをディスク装置2にライトするまでは、空きSCB,
または再利用可能SCBとすることが出来ない。また、
このライトペンディングSCB管理キューもLRU法で
管理され、先頭はMRUポインタ56、末尾はLRUポ
インタ57であり、SCBの前方向ポインタ501はM
RU側を、後方向ポインタ502はLRU側を差し示
す。
【0036】本実施例では、ライトアフタ処理を行う
際、ライト対象のスロットは、基本的には今後ヒットす
る可能性が低いものから選択する。つまり、ライトペン
ディングSCB管理キューにおけるLRU側から選択す
る。そこで、ライトアフタ処理によりディスク装置2へ
書き込まれたスロットに対応するSCBは、再利用可能
SCB管理キュー354のLRU側に貼りかえる。ま
た、ライトペンディングSCB管理キュー356内のS
CBがキャッシュヒットした場合、SCBをMRU側に
貼りかえる。
【0037】図7に示すように、制御メモリ35には、
3種類のSCB管理キュー352,354,356のほ
かに、キャッシュ管理テーブル360,キャッシュ負荷
情報テーブル362を用意する。この二つのテーブルの
内容はキャッシュ管理部33および負荷情報管理部34
により参照,更新される。テーブルの内容の詳細につい
ては後述する。その他、本実施例のディスク制御装置3
内の制御情報のやりとりはこの制御メモリ35を介して
行われるが、本発明の特徴となる制御情報以外は図示し
ない。
【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を用いて制限値変更
処理を行う。
【0039】図9はキャッシュ負荷情報テーブル362
の内容を示す。このテーブル362は、負荷情報管理部
34がキャッシュ管理テーブル360のデータの履歴、
これらのデータを利用して生成した情報の履歴を一定時
間(n単位時間分)保持するためのテーブルである。内
容は、要求別発行回数履歴情報3620,要求別発行回
数変化量履歴情報3621,リード/ライト比履歴情報
3622,リード/ライト比変化量履歴情報3623,
キュー別SCB数履歴情報3624,キュー別SCB数
変化量履歴情報3625,リードヒット率履歴情報36
26,リードヒット率変化量履歴情報3627である。
【0040】本発明の記憶制御装置の実施例の構成につ
いて述べた。次に本発明の特徴となる処理について説明
する。
【0041】本実施例のディスク制御装置3は、処理装
置1が発行するディスク装置2のデータに対するリード
/ライト要求を受け付け、処理を行う。前述のように、
このディスク制御装置3はライトアフタ制御を行う。キ
ャッシュ上のライトペンディングデータによるキャッシ
ュ占有を防ぐため、本実施例では、ライト要求に対する
キャッシュスロット割り当てに制限を設定する。リード
ミスの場合は、空きSCBまたは再利用可能SCBが存
在する場合は、キャッシュスロットの割り当てを行う。
【0042】しかし、ライトミスに対しては、空きSC
Bまたは再利用可能SCBが存在する場合であっても、
制限値以上のスロット割り当ては行わない。スロットを
割り当てられないライト要求は、ライトペンディングS
CBの数が制限値以下になるまで、処理を待たなければ
ならない。リード/ライト要求に対してキャッシュヒッ
トした場合は、スロットに対してリード/ライトを行
う。したがって、ライトペンディングスロット数が制限
値を超える場合、ライトミス時にはスロット割り当てを
行わないが、ライトヒットの場合はライトペンディング
スロット数が制限値を超える場合もある。ライトペンデ
ィングスロット数が制限値を超えた場合、ディスク制御
装置3は、ライトアフタ処理の頻度を上げ、デステージ
を行う。
【0043】図10はこのようなキャッシュ割り当て制
御を行うキャッシュ管理部33の機能を示す。制限値初
期設定機能331は、ライトペンディングスロット数の
割り当て制限値に初期値を設定する。キャッシュスロッ
ト管理機能332は、上記の制限値に基づくキャッシュ
スロットの割り当て(SCBの管理)およびそれに伴う
キャッシュ負荷情報の計測を行い、キャッシュ管理テー
ブルに書き込む。制限値変更設定機能333は、初期制
限値に変更が必要となった場合の制限値再設定を行う。
【0044】図11にキャッシュスロット管理332の
処理フローを示す。キャッシュ管理部33は、ステップ
3320で、スロットの要求を受け付ける。要求があっ
た場合、ステップ3321でヒット/ミス判定を行う。
要求されたスロットがキャッシュ上にあった場合(ヒッ
ト)、ステップ3323でSCBのキュー貼りかえを行
う。
【0045】要求されたスロットがキャッシュ上に存在
しなかった場合(ミス)、ステップ3324で、スロッ
トの割り当てが可能であるか否かを判定する。具体的に
はライト要求の場合、割り当て制限値を超えないか判定
する。割り当て可能な場合、ステップ3325でスロッ
トの割り当て処理を行う。スロットの割り当てができな
い場合、ライト要求を待ち状態にし、キャッシュ管理テ
ーブル360の割り当て待ち発生フラグ3610をON
にする。なお、本処理の中で、要求種別ごとの発行回
数,ヒット/ミス回数,キュー種別毎のSCB数を計測
し、キャッシュ管理テーブルに書き込む。
【0046】図12は制限値変更設定機能の処理概要フ
ローを示す。キャッシュ管理部33の制限値変更設定機
能333は、ステップ3330で、キャッシュ管理テー
ブル360の制限値変更フラグ3617を参照する。こ
のフラグ3617がオフ(=0)の場合、制限値の再設
定は不要なため、処理は終了する。オン(≠)の場合、
制限値の変更が必要であるので、まず、ステップ333
1でキャッシュ管理テーブル360に対するロックを取
得する。
【0047】次に、ステップ3332で、キャッシュ管
理部33のライト要求に対するスロット割り当て制限値
として、キャッシュ管理テーブル360内の新しい制限
値3619を参照して設定する。その後、ステップ33
33で、現在の制限値3618に変更後の制限値を書き
込む。ステップ3334で制限値変更フラグをオフに
し、ステップ3335でロックを解放して、この制限値
変更設定処理を終了する。この後のキャッシュ割り当て
制御は、以上の処理で再設定した制限値に基づいて行
う。
【0048】以上の処理で参照しているキャッシュ管理
テーブル360に新しい制限値3619を書き込み、制
限値変更フラグ3617をオンにして制限値変更の必要
性を連絡するのは、負荷情報管理部34である。
【0049】図13は負荷情報管理部34の処理概要フ
ローを示す。ステップ3400では、単位時間の経過を
監視する。負荷情報管理部34では、この単位時間毎
に、キャッシュ負荷情報の収集、および監視を行い、必
要に応じてキャッシュを有効利用するための制限値を決
定する。単位時間が経過した場合、ステップ3402で
キャッシュの負荷情報を取得する。このキャッシュ負荷
情報とは、キャッシュ管理部33が計測しているキャッ
シュ管理テーブル360内の情報と、この情報を加工し
て得られる情報であり、これらを負荷情報管理テーブル
362に書き込む。
【0050】次にステップ3404では、負荷情報管理
テーブル362を参照して、ライト要求に対するキャッ
シュスロット割り当ての制限値を決定し、変更が必要か
否かを判定する。制限値の変更の必要がないと判定され
た場合、ステップ3400に戻る。変更が必要な場合、
ステップ3406で変更が可能であるか判定する。不可
能な場合、ステップ3400のもどる。変更が可能であ
る場合、ステップ3408で制限値を変更する。ステップ3
410で、処理を続行するかを判定し、続行する場合、
ステップ3400に戻り、続行しない場合、処理を終了
する。
【0051】図14,図15を用いて負荷制御部34の
処理の詳細をさらに説明する。本図において点線で示し
たブロックとその番号は、図13の概要フローのステッ
プに対応している。
【0052】ステップ3420では、単位時間が経過し
たか監視する。概要フローのステップ3400に対応し
ている。
【0053】概要フローのステップ3402(負荷情報
の取得)に対応する処理として、ステップ3421〜3
424を示す。まず、ステップ3421では、制御メモ
リ35内のキャッシュ管理テーブル360を、負荷情報
管理部34を含んでいるマイクロプロセッサの内部メモ
リ(Data Storage 以下、DSと略す)にコピーする。次
にステップ3422で負荷情報テーブル362をDSに
コピーする。ステップ3423では、DSにコピーした
2つのテーブル360,362を参照して、負荷情報を
生成する。ステップ3424では、DS上の負荷情報管
理テーブル362を更新する。
【0054】ステップ3423で生成する情報として
は、図10のキャッシュ負荷情報テーブル362に示し
た要求別発行回数変化量3621,リード/ライト比3
622,リード/ライト比変化量3623,キュー別S
CB数変化量3625,リードヒット率3626,リー
ドヒット率変化量3627である。
【0055】ステップ3424では、ステップ3423
で求めた情報と、要求別発行回数(3604から360
7)とキュー別SCB数(3624)を負荷情報管理テ
ーブル362に書き込む。このテーブルには、計測(生
成)n回分の負荷情報を格納するようにFIFOで制御
する。
【0056】次に概要フローのステップ3404の処理
に対応するステップ(3425〜3427)について説
明する。
【0057】ステップ3425では、負荷情報管理テー
ブル362を参照して、キャッシュ使用状態に対応し
た、ライト要求に対するスロット割り当て制限値を求め
る。このステップに関しては、後で2種類のアルゴリズ
ム(図17,図18)をあげ、制限値を求める方法の例
として詳述する。ステップ3426では、前ステップで
求めた制限値と現在の制限値(キャッシュ管理テーブル
360を参照)を比較し、制限値の変更が必要である
か、否かを判定する。必要なかった場合、ステップ34
27で、DS上の負荷情報管理テーブル362の更新し
た部分を制御メモリ35の同テーブルに書き込む。ステ
ップ3426で変更の必要があった場合、図15のステ
ップ3430へ進む。
【0058】ステップ3430〜3432は概要フロー
の3406に対応する処理である。
【0059】ステップ3430では、ステップ3426
で求めた制限値(新しい制限値)と現在の制限値を比較
する。比較の結果、新しい制限値の方が大きかった場
合、つまり、割り当て可能なスロット数を多くする場合
は、ステップ3433へ進む。反対に、現在の制限値の
方が大きかった場合、つまり、割当て可能なスロット数
を少なくする場合、ステップ3431において、新しい
制限値とライトペンディングSCB数を比較する。比較
の結果、新しい制限値の方が大きい場合、ステップ34
33に進む。反対に、新しい制限値の方がライトペンデ
ィングSCB数より小さかった場合、ステップ3432
に進む。ステップ3432では、ドライブ制御に対して
ライトアフタ処理頻度を上げることを制御メモリ35を
介して連絡する。この処理により、ライトアフタ制御の
頻度を上げ、ライトペンディングスロットの量を減少さ
せてからステップ3433へ進む。
【0060】ステップ3433と3434は概要フロー
のステップ3408に対応する処理(制限値の変更)で
ある。実際には、キャッシュ管理部33に対して、制限
値の変更を制御メモリ35を介して連絡する。
【0061】まず、ステップ3433で、制御メモリ3
5のキャッシュ管理テーブル360に新しい制限値36
19を書き込む。次にステップ3434で、制限値更新
フラグ3617をオン(≠0)に設定する。前にも述べた
ように、このフラグ3617をキャッシュ管理部33が
参照することにより、制限値が変更される。次にステッ
プ3435でステップ3427と同様の処理(負荷情報
テーブル362の変更分を制御メモリ35に書き込む)
を行う。次のステップ3436は、概要フローの341
0に対応している。このステップで負荷情報管理部34
の処理を続行するかを判定する。処理を続行する場合、
ステップ3420にもどり、続行しない場合は終了す
る。
【0062】次に、ステップ3425の処理(キャッシ
ュ使用状態に対応した、ライト要求に対するスロット割
り当て制限値を求める処理)の例を示す。図16に前提
としてライト要求に対するスロット割り当て制限値の変
動範囲を示す。図16において、A,MAX,MINは
それぞれ、キャッシュ全体のスロット数を100%とし
たときのライト要求に対して割り当て可能なスロット数
の制限値であり、単位は%である。本発明のディスク制
御装置では、この制限値を変動させる範囲は、MINと
MAXの間とする。Aは図11に示したキャッシュ管理
部33の制限値初期設定処理331によって設定される
初期値である。MINは、制限値の最小値である。MA
Xは制限値の最大値である。キャッシュの使用状態がど
のような場合でも、キャッシュのMIN%のスロットは
ライト要求に対して割当て可能であり、反対に、MAX
%以上のスロットがライト要求に対して割り当てられる
ことはない。また、図16のα,βはそれぞれ、Aを基
準としたMAX方向(増加方向)、MIN方向(減少方
向)の変更分である。
【0063】図17を用いてまず第1の例を説明する。
この例における制限値の設定では、リード/ライト比を
監視して、ライト要求と比べたリード要求の比率が減少
方向であって、スロット割り当て待ち状態のライト要求
がある場合は、ライト要求に対して割り当て可能なスロ
ット数の制限値を増加させる。ただし、同時にリードヒ
ット率の監視も行い、リードヒット率が減少方向にある
場合は、ライト要求に対するスロット割り当て制限値の
引き上げにより、リードヒット率がさらに低くなる恐れ
があるため、制限値の引き上げは見あわせ、ライトアフ
タ処理の頻度を上げる。
【0064】図17は以上の処理のフローである。ステ
ップ3450では、割り当て待ち発生フラグ3610を
参照して、スロットの割り当てを待っているライト要求
が存在しているかを判定する。フラグがオフの場合は、
待ち状態は発生していない。この場合、制限値を引き上
げても効果がないため、本処理を終了する。オンの場
合、スロット割り当て待ちが発生しているため、制限値
の引き上げを行いたいため、ステップ3451へ進む。
このステップでは、ライト要求に対するリード要求の比
率の増減の状態を判定する。具体的には、本テーブル3
62に格納しているn回計測した情報のうち、最近のx
(n≧x)回のリード/ライト比変化量を参照して、単
調減少の場合は減少とみなし、ステップ3452へすす
む。リード比率が減少しているとみなされない場合は、
制限値の変更は行わない。この場合、ステップ3454
でライトアフタ処理の頻度を上げる処理を行う。
【0065】次にステップ3452では、リードヒット
率履歴情報3626および同変化量履歴情報3627を
参照し、リードヒット率が低い、または減少方向にある
状態であるかを判定する。具体的には、リードヒット率
履歴情報3626の内、最新のリードヒット率が、あら
かじめ制御のために定めておいた基準値よりも低い場合
は、リードヒット率が低い状態と判定し、制限値の変更
は行わない。リードヒット率が基準値よりも高い場合で
あっても、変化量履歴情報3627を参照してリードヒ
ット率が減少していると判定された場合は、制限値の変
更は行わないため、ステップ3453へ進み、ライトア
フタ処理の頻度を上げる処理を行う。なお、このステッ
プ3453の処理は図15のステップ3432と同様に
行う。
【0066】リードヒット率が基準値以上でかつ、減少
している状態でもないとき、次のステップ3455へす
すむ。このステップでは現在の制限値とMAXを比較す
る。次ステップ以降で制限値の引き上げを行うが、現在
の制限値がMAXである場合、それ以上の引き上げは行
わないのでステップ3453へ進む。現在の制限値がM
AXより小である場合は次のステップ3456へ進む。
ステップ3455では現在の制限値とAを比較する。現
在の制限値がA以上のとき、ステップ3457で新制限
値として(現在の制限値+α)を設定する。現在の制限
値がAより小さい場合、ステップ3458で、新制限値
として(現在の制限値+β)を設定して本処理を終了す
る。この後、図14のステップ3426へ進む。
【0067】図18を用いて第2の例を説明する。この
例における制限値の設定方法では、シーケンシャルライ
ト要求の有無を監視する。シーケンシャルライト要求が
実行された場合、ライトペンディングスロット数が増加
するが、これらのスロットはその後参照される(キャッ
シュヒットする)可能性が低い。キャッシュ制御におい
ては、キャッシュ上にはヒットする可能性の高いスロッ
トを残すことが重要である。このため、シーケンシャル
ライトのスロットはキャッシュ上に長く残さず、ディス
ク装置へ書き込む方がよい。そこで、この例では、シー
ケンシャルライト要求を検知したら、ライト要求に対す
るスロット割り当て制限値を引下げ、それにより、ディ
スク装置へのライトデータの書き込みを促す制御を行
う。
【0068】まず、ステップ3460で負荷情報テーブ
ル362の要求別発行回数履歴情報3620より、シー
ケンシャルライト要求の有無を判定する。無しの場合、
本処理を終了する。要求が発行されていた場合、現在の
制限値とMINを比較する。現在の制限値がMINであ
った場合、これ以上の制限値引下げは行わないため、処
理を終了する。次に、ステップ3464で、現在の制限
値とAを比較する。現在の制限値がA以下のとき、ステ
ップ3466で新制限値として(現在の制限値−β)を
設定する。現在の制限値がAより大きい場合、ステップ
3468で、新制限値として(現在の制限値−α)を設
定して本処理を終了する。この後、図14のステップ3
426へ進む。
【0069】以上、制限値変更判定の例を二つ示した。
さらに上記の二つの方法を組み合わせて、制限値の設定
制御を行うこともできる。
【0070】本発明の実施例のように、キャッシュを使
用する要求別にキャッシュ割り当て制限値を設定し、さ
らにキャッシュの使用状態に応じてその制限値を変更す
る制御を行うことによりキャッシュの資源の有効利用を
図るディスク制御装置を提供することが出来る。
【0071】
【発明の効果】本発明の記憶制御装置は、キャッシュ使
用要求の一部にキャッシュ割り当て制限値を設定するこ
とにより、特定の要求によるキャッシュの占有を防ぎ、
さらにキャッシュの負荷状態の監視を行って、負荷状態
に応じて制限値を変更する制御を行うことにより、キャ
ッシュメモリの資源の有効利用を図ることができる。
【0072】本発明の実施例では、ディスク装置内のデ
ータに対するリード/ライト要求のうち、ライト要求に
対してキャッシュスロットの割り当てに制限値を設定す
る。負荷情報管理部はリード/ライト比およびリードヒ
ット率を監視し、ライトに対するリードの比率が低下
し、リードヒット率が減少傾向にない場合はライト要求
に対する割り当て制限値の引き上げを行う。また、シー
ケンシャルライトによるライトペンディングスロット
は、キャッシュ上に残しておいてもキャッシュヒットす
る可能性が低い。そこで、シーケンシャルライト要求が
発行されたことを検知した場合、キャッシュスロット割
り当て制限値を引下げ、ディスク装置へのデステージ頻
度を上げる。このように、キャッシュの負荷状態に応じ
た制限値の設定を行うことにより、キャッシュを有効に
利用することができる。これにより、キャッシュ空き待
ちの発生件数が減少し、応答時間の短縮を図ることがで
きる。
【図面の簡単な説明】
【図1】本発明の実施例の制御ブロック図。
【図2】本発明の実施例でのリードデータのながれを示
すブロック図。
【図3】本発明の実施例でのライトデータのながれを示
すブロック図。
【図4】キャッシュの説明図。
【図5】スロットコントロールブロックの説明図。
【図6】スロットコントロールブロックの管理について
の説明図。
【図7】制御メモリの内部の概要を示すブロック図。
【図8】キャッシュ管理テーブルを示す説明図。
【図9】キャッシュ負荷情報テーブルを示す説明図。
【図10】キャッシュ管理部の機能ブロック図。
【図11】キャッシュスロット管理のフローチャート。
【図12】制限値変更処理のフローチャート。
【図13】負荷情報管理部の処理概要フローチャート。
【図14】負荷情報管理部の処理フローチャート。
【図15】負荷情報管理部の処理フローチャート。
【図16】ライト要求に対するスロット割り当て制限値
の変動範囲を示す説明図。
【図17】制限値変更判定の例(1)を示すフローチャ
ート。
【図18】制限値変更判定の例(2)を示すフローチャ
ート。
【符号の説明】
3…ディスク制御装置、31…キャッシュメモリ、33
…キャッシュ管理部、34…負荷情報管理部、35…制
御メモリ。

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】記憶装置と処理装置に接続され、複数のブ
    ロックからなるキャッシュメモリを有する記憶制御装置
    において、単位時間毎に、前記処理装置が前記記憶制御
    装置に発行する前記記憶装置のデータの入出力要求の、
    発行回数、または要求されたデータを含むブロックがキ
    ャッシュ上に存在していなかった回数、または要求され
    たデータを含むブロックがキャッシュ上にすでに存在し
    ていた回数の少なくとも一つのデータを計測する手段
    と、前記データから、前記単位時間毎の前記データの変
    化または比率をあらわすデータを生成する手段と、前記
    データと前記変化または比率をあらわすデータとをキャ
    ッシュの負荷情報として保持する手段と、前記負荷情報
    の一部または全部を用いて、前記入出力要求の一部に対
    する前記ブロックの割り当て数の制限値を求める手段
    と、前記制限値を設定する手段とを含むことを特徴とす
    る記憶制御装置。
  2. 【請求項2】請求項1において、前記要求が、記憶装置
    内のデータのリード要求またはライト要求であって、前
    記要求の一部が、前記ライト要求である記憶制御装置。
  3. 【請求項3】請求項2において、キャッシュ内のライト
    データに割り当てられたブロック数を計測する手段と、
    前記ブロック数と制限値を比較する手段とキャッシュ内
    のライトデータを記憶装置へ書き出す処理の頻度を上げ
    て実行する手段とを含む記憶制御装置。
JP5030117A 1993-02-19 1993-02-19 記憶制御装置 Pending JPH06243042A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5030117A JPH06243042A (ja) 1993-02-19 1993-02-19 記憶制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5030117A JPH06243042A (ja) 1993-02-19 1993-02-19 記憶制御装置

Publications (1)

Publication Number Publication Date
JPH06243042A true JPH06243042A (ja) 1994-09-02

Family

ID=12294846

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5030117A Pending JPH06243042A (ja) 1993-02-19 1993-02-19 記憶制御装置

Country Status (1)

Country Link
JP (1) JPH06243042A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08171515A (ja) * 1994-12-19 1996-07-02 Nec Corp ディスクキャッシュにおけるメモリ管理方式
JP2005056011A (ja) * 2003-08-08 2005-03-03 Hitachi Ltd 仮想一元化ネットワークストレージシステムにおける一元的なディスク使用量制御方法
JP2005148961A (ja) * 2003-11-13 2005-06-09 Hitachi Ltd 統合キャッシュを備えた記憶装置アダプタ
JP2009009573A (ja) * 2007-06-26 2009-01-15 Seagate Technology Llc コマンド・キュー・ローディング
JP2009009572A (ja) * 2007-06-26 2009-01-15 Seagate Technology Llc ホスト適応シーク技術環境
JP2013504142A (ja) * 2009-09-08 2013-02-04 フュージョン−アイオー・インコーポレーテッド ソリッドステート記憶デバイス上にデータをキャッシングするための装置、システム、および方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08171515A (ja) * 1994-12-19 1996-07-02 Nec Corp ディスクキャッシュにおけるメモリ管理方式
JP2005056011A (ja) * 2003-08-08 2005-03-03 Hitachi Ltd 仮想一元化ネットワークストレージシステムにおける一元的なディスク使用量制御方法
JP2005148961A (ja) * 2003-11-13 2005-06-09 Hitachi Ltd 統合キャッシュを備えた記憶装置アダプタ
JP2009009573A (ja) * 2007-06-26 2009-01-15 Seagate Technology Llc コマンド・キュー・ローディング
JP2009009572A (ja) * 2007-06-26 2009-01-15 Seagate Technology Llc ホスト適応シーク技術環境
JP2013504142A (ja) * 2009-09-08 2013-02-04 フュージョン−アイオー・インコーポレーテッド ソリッドステート記憶デバイス上にデータをキャッシングするための装置、システム、および方法

Similar Documents

Publication Publication Date Title
US5787473A (en) Cache management system using time stamping for replacement queue
US5751993A (en) Cache management system
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
US10540296B2 (en) Thresholding task control blocks for staging and destaging
US4875155A (en) Peripheral subsystem having read/write cache with record access
CN110058786B (zh) 用于控制存储系统中的写请求的方法、装置和计算机程序产品
US4771375A (en) Managing data storage devices connected to a digital computer
US5608890A (en) Data set level cache optimization
JP3308554B2 (ja) 制御装置及び制御装置の制御方法
US5257352A (en) Input/output control method and system
US4876662A (en) Optimizing volume mounts in a multidrive environment
JPH0659982A (ja) 仮想記憶制御方法および装置
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 (zh) 文件系统中数据读取方法、装置及计算机可读存储介质
JPH0675785A (ja) プレステージング処理方法、バッファ管理方法及びファイルシステム
JP3194201B2 (ja) キャッシュモード選択方法
EP0066766A2 (en) I/O controller with a dynamically adjustable cache memory
JPH06243042A (ja) 記憶制御装置
US10108350B2 (en) Method for providing nonvolatile storage write bandwidth using a caching namespace
JPH05189316A (ja) ディスクキャッシュ制御方法
US5440712A (en) Database input/output control system having nonvolatile storing unit for maintaining the database
CN111309257A (zh) 恒定速率读文件的预读方法、装置及计算机可读存储介质
JP3356090B2 (ja) メモリ管理方法およびメモリ管理装置、並びに記録媒体