JP3422370B2 - ディスクキャッシュ制御装置 - Google Patents

ディスクキャッシュ制御装置

Info

Publication number
JP3422370B2
JP3422370B2 JP35364892A JP35364892A JP3422370B2 JP 3422370 B2 JP3422370 B2 JP 3422370B2 JP 35364892 A JP35364892 A JP 35364892A JP 35364892 A JP35364892 A JP 35364892A JP 3422370 B2 JP3422370 B2 JP 3422370B2
Authority
JP
Japan
Prior art keywords
cache
cache memory
processing
record
data
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.)
Expired - Lifetime
Application number
JP35364892A
Other languages
English (en)
Other versions
JPH06180671A (ja
Inventor
孝夫 佐藤
弘 一ノ宮
久治 竹内
山本  彰
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
Hitachi Solutions Technology Ltd
Original Assignee
Hitachi Ltd
Hitachi ULSI Systems Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd, Hitachi ULSI Systems Co Ltd filed Critical Hitachi Ltd
Priority to JP35364892A priority Critical patent/JP3422370B2/ja
Priority to US08/165,989 priority patent/US5568628A/en
Publication of JPH06180671A publication Critical patent/JPH06180671A/ja
Application granted granted Critical
Publication of JP3422370B2 publication Critical patent/JP3422370B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/004Error avoidance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • G06F11/167Error detection by comparing the memory output

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、キャッシュメモリを有
するディスクキャッシュ制御装置に係り、具体的には、
キャッシュメモリを用いて、固定長記録形式のディスク
装置により可変長記録形式のディスク装置をエミュレ−
トするディスクキャッシュ制御装置に関する。
【0002】
【従来の技術】ディスク装置は、情報処理システムにお
いてデ−タの記録媒体として一般的に用いられている記
録装置である。ディスク装置の障害が、情報処理システ
ムに与える影響は多大であり、ディスク装置の高信頼化
が必須である。特開昭53−148928号公報には、
記憶装置の高信頼化技術の一例が示されている。本従来
技術は、処理装置から転送されたデ−タを記憶サブシス
テムにおいて、当該記憶サブシステムに接続される記憶
装置の数より少なくても1だけ少ない数のセグメントに
等分割する。分割した個々のセグメントの排他的論理和
を求めることによって、セグメントと同じバイト長の検
査合計、すなわちパリティを生成する。個々のデ−タセ
グメントとパリティセグメントを故障の点で互いに独立
している異なった記憶装置に記録し、これにより、一台
の記憶装置が故障しても、それに記録されているデ−タ
が再生でき、高い信頼性が実現できる。前記従来技術で
は、パリティを用いた高信頼化技術であるため、個々の
デ−タセグメントとパリティセグメントは、同一のバイ
ト数となり、このような固定長のデ−タを記録する記録
媒体は、固定長記録形式(固定ブロックア−キテクチャ
(FBA)形式)が望ましい。一方、多くの大規模情報
処理システムは、ディスク空間を効率良く利用するた
め、レコ−ドのバイト長に応じてディスクトラック記録
形式を分割する可変長記録形式、すなわちカウント、キ
−、デ−タ(CKD)形式を用いている。FBA形式の
ディスク装置を用いて、CKD形式のディスク装置をエ
ミュレ−トする方式(CKDエミュレ−ト方式)につい
ては、特開平1−306917号公報に一例が示されて
いる。前記従来技術では、CKD形式のレコ−ドのバイ
ト変位相対位置を維持しながらFBA形式のディスク装
置に記録することにより、CKD形式のデ−タのアドレ
ッシングが可能となる。以上、ディスク装置の高信頼化
に関する従来技術を示したが、ディスク装置の性能も情
報システムに多大な影響を与える。ディスク装置の性能
を向上させる技術としてディスクキャッシュがある。従
来のディスクキャッシュ制御装置については、アイ・ビ
−・エム システムズジャ−ナル、Vol.28、N
o.2(1989年)第196頁から第226頁(IB
M SYSTEMS JOURNAL,VOL28,N
o.2,1989,pp.196−226)において論
じられている。
【0003】
【発明が解決しようとする課題】上記CKDエミュレ−
ト方式は、ディスク装置へデ−タ出力中の障害について
考慮されていない。つまり、FBA形式のディスク装置
によりCKD形式のディスク装置をエミュレ−トする場
合、CKD形式のレコ−ドは、FBA形式のブロックと
デ−タ境界が一致していない。このため、処理装置から
CKD形式のレコ−ドの更新要求が発行されると、更新
対象となったCKD形式レコ−ドに対応する部分以外の
デ−タを含めてディスク装置に格納することになる。従
って、ディスク装置へデ−タ書き込み中に障害が発生す
ると、処理装置から要求された更新対象CKDレコ−ド
以外のCKDレコ−ドを破壊してしまうという問題があ
る。上記アイ・ビ−・エム システムズジャ−ナルで論
じられたディスクキャッシュに関する従来技術では、ラ
イトキャッシュ方式が開示されている。具体的には、制
御装置内に揮発性のキャッシュメモリとバッテリ電源に
より不揮発化されたメモリ(Nonvolatile
Stoage:NVS)を持ち、処理装置からライト要
求が発行された場合、更新レコ−ドをキャッシュメモリ
とNVSの両方に同時に格納する。NVSに更新レコ−
ドを格納した時点でライト処理の終了を処理装置に報告
し、更新レコ−ドは、処理装置からのライト要求とは非
同期にディスク装置に書き込まれる。これにより、電源
障害や、ディスク書き込み障害が発生しても、更新レコ
−ドは、NVS内に保持されるため、レコ−ド更新処理
おいてもディスクキャッシュの効果が期待できる。しか
し、CKDエミュレ−ト方式の基本的問題は解決されて
いなかった。
【0004】一方、各社で開発されたFBA形式のディ
スク装置等を共通に使用できるようにするためのインタ
フェ−スとして、ANSI(米国規格協会)で定められ
たSCSI(Small Computer Syst
ems Interface)がある。このSCSIに
おいてディスク装置上のデ−タをアクセスするためには
CDB(コマンド記述ブロック)にアクセス対象なるF
BAブロックのアドレスと転送バイト数を指定する。こ
の際、複数FBAブロックのアクセスを1回のCDBで
指定することは可能であるが、この場合、アクセス対象
FBAブロックは論理的に連続でなければならない。こ
れに対しCKD形式のディスク装置をアクセスする場合
のインタフェ−スは、不連続のCKDレコ−ドに対して
も、1回の入出力要求でアクセス可能である。このた
め、FBA形式のディスク装置のインタフェ−スとして
SCSIを用い、CKDエミュレ−ションを行なった場
合、ディスク装置に対し複数回の入出力要求を発行しな
ければならず、CDB発行オ−バヘッドのみならず、デ
ィスク回転待ちが多数発生する。この問題は、デ−タの
読出し要求に対しては、予め処理装置が要求するアクセ
ス範囲のデ−タをキャッシュメモリにロ−ディングする
ことにより回避可能であるが、デ−タの書き込み要求に
対しては、ディスク装置へのアクセス回数を削減するこ
とはできない。
【0005】本発明の目的は、ディスク装置にデ−タ書
き込み動作中に障害が発生してもデ−タを消失しないC
KDエミュレ−ト方式を提供することと、CKDエミュ
レ−トに適したディスクキャッシュ制御方式を提供する
ことにある。他の目的は、FBA形式のディスク装置の
インタフェ−スとしてSCSIを用いた場合においても
ディスク装置へのアクセス回数が増えないCKDエミュ
レ−ト方式を提供することにある。
【0006】
【課題を解決するための手段】上記目的を達成するため
に、処理装置から更新対象となったCKDレコ−ド(C
KD形式におけるレコ−ド)を含むFBAブロック(F
BA形式ディスク装置上の固定長ブロック)を複数のキ
ャッシュメモリに格納するようにしたものである。これ
を実現する手段として以下を用いる。 (1)処理装置から更新対象となったCKDレコ−ドを
含むFBAブロックが、一つのキャッシュメモリ(キャ
ッシュメモリa)上にのみ存在する場合、当該FBAブ
ロック内の当該CKDレコ−ド以外の領域をキャッシュ
メモリa以外の一つ以上のキャッシュメモリにコピ−す
る。 (2)処理装置により更新されたCKDレコ−ドを当該
CKDレコ−ドを含むFBAブロックが存在するキャッ
シュメモリの全てに格納する。 (3)処理装置からアクセス対象となったCKDレコ−
ドを含むFBAブロックがいずれのキャッシュメモリに
も存在しない場合、当該FBAブロックをディスク装置
から読出し、一つ以上のキャッシュメモリに格納する。
処理装置からアクセス対象となったCKDレコ−ドを含
むFBAブロックがいずれのキャッシュメモリにも存在
しない場合、一つのキャッシュメモリにアクセス対象と
なったCKDレコ−ドを含むFBAブロックを格納し、
処理装置からの入出力要求がデ−タ更新要求のときのみ
上記(1)、(2)の手段を実行する方式も考えられ
る。但し、この方式は、FBAブロックのキャッシュメ
モリへの格納処理に加え、キャッシュメモリ間のコピ−
処理が必要となる。一方、(3)の方式では、2つのキ
ャッシュメモリへのFBAブロックの格納処理は同時に
行なわれるため、キャッシュメモリ間コピ−処理分の時
間を短縮することができる。上記制御により同一のFB
Aブロックが複数のキャッシュメモリに存在することに
なり、キャッシュメモリの利用効率が低下するという問
題がある。この問題に対して、更新CKDレコ−ドを含
まないFBAブロックを格納している各キャッシュメモ
リスロットをLRU(Least Recntery
Used)チェインの異なる位置に接続する。上記他の
目的を達成するために更新CKDレコ−ドを含むFBA
ブロックの間のFBAブロックについても複数のキャッ
シュメモリに格納するようにしたものである。これを実
現する手段として以下を用いる。 (4)更新CKDレコ−ドを含むFBAブロックの間の
FBAブロックが、一つのキャッシュメモリ(キャッシ
ュメモリa)上にのみ存在する場合、当該FBAブロッ
ク内の当該CKDレコ−ド以外の領域をキャッシュメモ
リa以外の一つ以上のキャッシュメモリにコピ−する。 (5)更新CKDレコ−ドを含むFBAブロックをFB
A形式のディスク装置へ格納する際、一方のキャッシュ
メモリaを用いディスク装置への格納処理を実行し、他
のキャッシュメモリにより処理装置からのデ−タ読出し
要求を実行する。
【0007】
【作用】処理装置は、ディスクキャッシュ制御装置に対
してCKDレコ−ドのアドレスを指定して出力要求を発
行する。この出力要求を受領したディスクキャッシュ制
御装置は、CKDレコ−ドアドレスから当該CKDレコ
−ドを含むFBAブロックのアドレスを算出する。この
FBAブロックアドレスを用い、当該FBAブロックが
キャッシュメモリ上に存在するかを判定するヒット/ミ
ス判定を行なう。ヒット/ミス判定により、当該FBA
ブロックが一つのキャッシュメモリにのみ格納されてい
ると判定された場合は、上記(1)の処理を実行する。
また、当該FBAブロックがいずれのキャッシュメモリ
にも格納されていないと判定された場合、上記(3)の
処理を実行する。その後、処理装置よりデ−タを受領
し、キャッシュメモリ上のFBAブロックに格納する上
記(2)の処理を実行する。これにより、複数のキャッ
シュメモリ上に処理装置から転送された出力デ−タを含
むFBAブロックが格納される。これにより、いずれか
のキャッシュメモリに障害が発生しても一つ以上のキャ
ッシュメモリ上に処理装置から転送されたデ−タが保持
されるため、処理装置に出力デ−タをキャッシュメモリ
上に格納した時点で出力処理の終了を報告しても問題な
い。さらに、一つ以上のキャッシュメモリにバッテリ電
源等の不揮発化機構を備え、処理装置から転送されたデ
−タを不揮発化されたキャッシュメモリに格納すること
により、電源障害に対しても処理装置から転送されたデ
−タを保証できる。さらに、キャッシュメモリへの格納
単位をFBAブロックとしているためディスク装置へデ
−タ格納中に電源等に障害が発生しても、障害復旧後、
障害により出力処理が中断されたFBAブロックを不揮
発化されたキャッシュメモリから再出力することにより
障害回復が可能となる。
【0008】キャッシュメモリ上のFBAブロックは、
エミュレ−ト対象となるCKD形式のディスク装置のト
ラック単位にまとめられ管理されており、この管理単位
をキャッシュスロット呼ぶ。処理装置より入出力要求が
発行され、当該入出力要求の対象となるトラックがキャ
ッシュメモリ上に存在しない場合、最も長い間アクセス
されていないキャッシュスロットを選択し、このキャッ
シュスロットに処理装置からアクセス対象となったトラ
ックに対応するFBAブロックを読み込む。このキャッ
シュスロットの選択にLRU(Least Recen
teryUsed)チェインを用いる。LRUチェイン
には、処理装置から読出し対象となったキャッシュスロ
ット、およびディスク装置へ書き込みを終了したキャッ
シュスロットが登録されている。本発明では、キャッシ
ュスロットを各キャッシュメモリ毎に管理し、LRUチ
ェインへのキャッシュスロットの登録位置を各キャッシ
ュメモリ単位に変更する。これにより、エミュレ−ト対
象となるCKDディスク装置のトラックに対応するキャ
ッシュスロットを保持するキャッシュメモリ数は、処理
装置からのアクセス頻度により決定される。
【0009】処理装置より更新されたCKDレコ−ドを
含むFBAブロック(更新FBAブロック)は、上記
(1)、(2)、および(3)の処理により複数のキャ
ッシュメモリに存在することになる。さらに(4)の処
理により、更新FBAブロックの間の未更新FBAブロ
ックを複数のキャッシュメモリに配置される。それによ
って、未更新FBAブロックをディスク装置に書き込み
中にキャッシュメモリに障害が発生しても、他の正常な
キャッシュメモリから書き込み動作を再実行できる。こ
のため、FBA記録形式のディスク装置のインタフェ−
スとしてSCSIを用いても、1回の出力処理により、
複数の更新FBAブロックをディスク装置に格納でき、
かつ無駄な回転待ちが発生しないため、効率的にディス
ク装置へのデ−タ格納処理が実行できる。また(5)の
処理により、更新FBAブロックをディスク装置に格納
中であっても、他のキャッシュメモリにより処理装置か
らのデ−タ読出し処理が実行できる。
【0010】
【実施例】以下、本発明の一実施例を図面を参照して説
明する。図1は、本発明の一実施例の制御構成を示す図
である。処理装置1は、可変長記録形式の代表的インタ
フェ−スであるCKDインタフェ−スを使用するプログ
ラム(以下プログラムと呼ぶ)10を実行し、演算装置
(図示せず)、主記憶装置(図示せず)、および入出力
プロセッサ(図示せず)から構成される。処理装置1
は、制御装置2を介して固定長記録形式のディスク装置
(FBAディスク装置)3に接続される。制御装置2
は、チャネル制御部21により処理装置1と接続され、
ドライブ制御部24によりFBAディスク装置3に接続
される。さらに制御装置2内には、複数のキャッシュメ
モリ(図示の例では、バッテリ電源等により不揮発化さ
れた不揮発キャッシュメモリ22、23の2つのキャッ
シュメモリが存在する場合が示されている)、チャネル
制御プロセッサ25、ドライブ制御プロセッサ26、お
よび制御メモリ27を含んでいる。なお、制御メモリ2
7も、バッテリ電源等により不揮発化されている。
【0011】プログラム10が外部記憶装置との間でデ
−タを入出力する場合は、主記憶装置上にチャネルプロ
グラムを配置し、入出力起動命令を実行する。入出力起
動命令を契機にチャネルプロセッサが起動され、チャネ
ルプロセッサは、主記憶装置上のチャネルプログラムを
読出し、制御装置2へ入出力要求を発行する。制御装置
2へ発行される入出力要求は、CKD形式デ−タであ
り、直接FBAディスク装置3への入出力要求とするこ
とはできない。プログラム10からの入出力要求をFB
Aディスク装置において実行するため、チャネル制御プ
ロセッサ25、およびドライブ制御プロセッサ26にエ
ミュレ−ションプログラムが格納されている。
【0012】処理装置1から転送されるCKD形式デ−
タは、制御装置2においてエミュレ−トするCKDディ
スク装置のトラック(CKDトラックと呼ぶ)単位にま
とめられ、FBAディスク装置3に記憶される。例え
ば、60KBの物理トラック容量のCKDディスク装置
を2KBの容量を持つ固定長ブロックのFBAディスク
装置によりエミュレ−トする場合、CKDトラックは、
30個の固定長ブロックにマッピングされる。図2は、
CKD形式デ−タをFBA形式デ−タによりエミュレ−
トする際のデ−タ形式を示す。CKDトラックは、IN
DEX 100によりトラックの開始位置が示され、ト
ラック上の各フィ−ルドは、ギャップにより区切られて
いる。ギャップG1 101は、INDEX 100
と、トラックの状態およびトラック番号を管理するトラ
ックの最初のフィ−ルドであるHA 102を分離す
る。ギャップG2’ 103は、HA 102とR0レ
コ−ド−121を分離する。ギャップG3 107、1
14、120は、レコ−ドを分割するギャップであり、
ギャップG2 105等は、レコ−ド内の各フィ−ルド
を分割する。各レコ−ドは、レコ−ドの状態、位置、お
よび長さを示す制御フィ−ルド(CF)と、アクセス対
象となるレコ−ドを検索するための情報を格納するキ−
フィ−ルド(KF)、およびデ−タを格納するデ−タフ
ィ−ルド(DF)から構成される。キ−フィ−ルド、お
よびデ−タフィ−ルドの長さは、制御フィ−ルド内に格
納されている。本発明において用いられるエミュレ−シ
ョンプログラムは、キャッシュメモリ上に上記CKDト
ラックを仮想CKDトラックとして展開し、図2におい
ては、キャッシュ格納形式として図示されている。
【0013】図2にキャッシュ格納形式として示された
仮想CKDトラックは、固定長のブロックに分割されて
おり、各ブロックの先頭に制御情報200を含んでい
る。この制御情報はブロック内の最初のカウントフィー
ルド(CF)のアドレスを格納している。CKDトラッ
クに格納される各CKDレコ−ドは、その開始アドレス
がCKDトラック上のバイト変位(INDEXからのバ
イト変位)と一致するようギャップが埋め込まれている
(G1(101)→G(201)、G2’(103)→
G(202))。また、仮想CKDトラックにはCKD
トラック上に存在したギャップG2 105等が削除さ
れているが、ギャップG3と削除したギャップG2のバ
イト数からなるギャップを直後のCKDレコ−ドの前に
配置する({G2(105)+G3(107)}→G
(203))。これにより、HAフィ−ルド、および各
CKDレコ−ドの開始アドレスはCKDトラック上のバ
イト変位と一致する。仮想CKDトラックを構成する各
固定長ブロックが、FBAレコ−ドとしてFBAディス
ク3に記憶されている。FBAレコ−ド251は、仮想
CKDトラックの第1のブロックを記憶するものとして
示されており、当該レコ−ドを物理的に識別するための
FBID250が直前に配置されている。
【0014】〈入出力要求処理〉次に処理装置1から発
行される入出力要求処理の流れについて説明する。プロ
グラム10は、外部記憶装置のデ−タをアクセスするた
めに処理装置1内の主記憶装置上にチャネルプログラム
を用意し、入出力起動命令を実行する。入出力起動命令
を契機に処理装置1内のチャネルプロセッサは、主記憶
装置上にチャネルプログラムを読出す。そして、制御装
置2に入出力動作の内容を示すコマンドとパラメタを転
送する。処理装置1から転送されたコマンドとパラメタ
はチャネル制御部21を経由してチャネル制御プロセッ
サ25に送られ、各コマンドに対応する処理が実行され
る。
【0015】〈外部記憶装置のデ−タの読出し〉 図3は、外部記憶装置のデ−タを読出すために用いるチ
ャネルプログラムの流れ図である。まず、処理301に
よりディスク装置のポジショナ(読み書きヘッドを動か
す機構部)を指定されたシリンダに移動させ、読み書き
ヘッドを選択するための「シ−ク要求」を実行する。こ
れによりシ−クコマンドと、シ−クアドレス(シリンダ
アドレス(CC)、トラックアドレス(HH))が制御
装置2に転送される。 (シ−クコマンド処理) シ−クコマンドを受け取った制御装置2は、チャネル制
御プロセッサ25においてシ−クコマンド処理を実行す
る。図4にチャネル制御プロセッサ25が実行するシ−
クコマンド処理の流れ図を示す。シ−クコマンドを受け
取ったチャネル制御プロセッサ25は、まず処理401
を実行し、シ−クパラメタの妥当性のチェックを行な
う。この結果、シ−クパラメタが不当であると判断され
た場合は、処理404に進み、処理装置1に対しコマン
ドの異常終了を報告し処理を終了する。また処理401
により、シ−クパラメタが妥当であると判断された場合
は、処理402に進み、シ−クパラメタであるシリンダ
アドレス(CC)とトラックアドレス(HH)を制御メ
モリ27に記録する。その後、処理403に進み、処理
装置1に対し、コマンドの正常終了を報告し処理を終了
する。チャネルプロセッサは、制御装置2よりコマンド
の異常終了を受け取ると、チャネルプログラムの実行を
中断し、プログラム10に対しチャネルプログラムの異
常終了を報告する。また、制御装置2よりコマンドの正
常終了を受け取ると、後続の処理を実行する。つまり、
「シ−ク要求」処理の正常終了を制御装置2より受領す
ると、次に処理302により、アクセス対象となるCK
Dレコ−ドが存在する近傍のセクタに読み書きヘッドを
位置付ける「セットセクタ要求」302を実行し、制御
装置2にセットセクタコマンドとセクタ番号(S)を転
送する。 (セットセクタコマンド処理) セットセクタコマンドを受領したチャネル制御プロセッ
サ25は、図5に示すセットセクタコマンド処理を実行
する。セットセクタコマンド処理は、シ−クコマンド処
理と同様であり、パラメタの妥当性のチェックを行ない
(501)、当該パラメタ、つまりセクタ番号(S)を
制御メモリ27に記憶する(502)。
【0016】チャネルプロセッサは、「セットセクタ要
求」に引き続き「レコ−ド探索要求」303を実行す
る。「レコ−ド探索要求」は、CKDレコ−ドの制御部
に記録されている識別子(CCHHR)をパラメタとす
るサ−チコマンドを制御装置2に転送する。
【0017】(サ−チコマンド処理)サ−チコマンドを
受領したチャネル制御プロセッサ25は、図6に示すサ
−チコマンド処理を実行する。以下サ−チコマンド処理
について説明する。サ−チコマンドを受領すると、チャ
ネル制御プロセッサ25は、サ−チパラメタの妥当性の
チェックを処理601にて行なう。この判定においてサ
−チパラメタが不当であると判断された場合は、処理6
10に進みコマンドの異常終了を処理装置1に報告し処
理を終了する。またサ−チパラメタが妥当であると判断
された場合は、処理602に進みサ−チパラメタ(CC
HHR)を、制御メモリ27に記憶する。その後、処理
603において先のシ−クコマンドにおいて指定された
アクセス対象CKDトラックがキャッシュメモリ上に存
在するかを判定する(後述のHit/Miss判定テー
ブルを用いて判定する)。この結果、アクセス対象CK
Dトラックがキャッシュメモリに存在しない、つまりM
issであると判定された場合、処理604において当
該CKDトラックをFBAディスク装置3からキャッシ
ュメモリへ格納するロ−ド処理を行ない処理605へ進
む。本実施例では、不揮発キャッシュメモリ22と23
の両方のキャッシュメモリにCKDトラックを格納する
ロ−ド方式であり、詳細については後に記述する。処理
603においてアクセス対象CKDトラックがキャッシ
ュメモリに存在する、つまりHitと判断された場合に
は、キャッシュメモリへのCKDトラックのロ−ド処理
は行なわず処理605へ進む。処理605では、不揮発
キャッシュメモリ22、23のいずれかを選択する処理
を行なう。この選択基準は、それぞれのキャッシュメモ
リの負荷(利用要求数)を測定し、負荷の軽いキャッシ
ュメモリを選択する。その後、処理606において、処
理605で選択したキャッシュメモリ上のデ−タを読出
し、サ−チパラメタで指定されたアクセス対象CKDレ
コ−ドがキャッシュメモリ上に存在するかを判定する。
処理606によりアクセス対象CKDレコ−ドがキャッ
シュメモリ上に存在しないと判断された場合(CKDレ
コ−ドMissの場合)、CKDトラック上の全てのC
KDレコ−ドを検索し、アクセス対象レコード無しかを
判定する処理607を実行する。この判定は、キャッシ
ュメモリ上にCKDトラック内の全てのCKDレコ−ド
を必ずしも格納していないためである。これはキャッシ
ュメモリの有効利用と、ロ−ド処理オ−バヘッドの削減
のため、1つのCKDトラック内のレコ−ドであって
も、アクセス頻度が低いレコ−ドについては、キャッシ
ュメモリに格納しないことによる。これにより、当該C
KDトラック上にアクセス対象レコ−ドが存在しないと
判断された場合、処理610によりコマンドの異常終了
を処理装置1に報告し、処理を終了する。また、CKD
トラック上に未検索のCKDレコ−ドが存在する場合
は、処理608へ進み、キャッシュメモリ上の格納され
ていないCKDレコ−ドをFBAディスク装置3からキ
ャッシュメモリ上へ格納し、処理606へ戻る。処理6
06によりアクセス対象のCKDレコ−ドがキャッシュ
メモリ上に存在すると判定された場合は、処理609に
進み、処理装置1にコマンドの正常終了を報告して、処
理を終了する。
【0018】(リードコマンド処理)処理装置1のチャ
ネルプロセッサは、CKDレコ−ドの検索処理の正常終
了を制御装置2から受領すると、CKDレコ−ドを主記
憶装置上に転送する「デ−タ読出し要求」を実行する。
これによりリ−ドコマンドが制御装置2に転送される。
リ−ドコマンドを受領したチャネル制御プロセッサ25
は、図7に示すリ−ドコマンド処理を実行する。リ−ド
コマンド処理では、まず処理701により不揮発キャッ
シュメモリ22、23のいずれかを選択する処理を行
い、処理703により選択したキャッシュメモリに対し
デ−タ転送をセットアップする。このセットアップ処理
とは、チャネル制御部21にデ−タ転送対象となるCK
Dレコ−ドの格納アドレスと、転送バイト数を設定する
ことである。CKDレコ−ド格納アドレスは、サ−チコ
マンド処理において検索したCKDレコ−ド内のフィ−
ルドのアドレスを設定する。制御フィ−ルド、キ−フィ
−ルド、またはデ−タフィ−ルドのいずれを選択するか
は、リ−ドコマンドの種類による。例えば、デ−タ部の
転送要求コマンドである「READ DATAコマン
ド」の場合は、デ−タフィ−ルドの先頭のアドレスと、
制御フィ−ルド内に格納されているデ−タフィ−ルドの
長さをチャネル制御部21に設定する。その後、処理7
03によりチャネル制御部21に対し、デ−タ転送の開
始を指示する。デ−タ転送開始指示を受けたチャネル制
御部21は、処理702により設定されたCKDレコ−
ド格納アドレスで示されるデ−タをキャッシュメモリか
ら読出し処理装置1に転送する。チャネル制御プロセッ
サ25は、チャネル制御部21によるデ−タ転送処理の
終了を処理704により監視する。処理704によりデ
−タ転送の終了を検知すると、処理705に進み、デ−
タ転送が正常に終了したかを判定する。この判定により
デ−タ転送が正常に終了したと判断された場合は、処理
706においてリ−ドコマンドの正常終了を処理装置1
に報告する。また、デ−タ転送が異常終了したと判断さ
れた場合は、処理707において、リ−ドコマンドの異
常終了を処理装置1に報告し処理を終了する。リ−ドコ
マンドの終了を制御装置2から受領したチャネルプロセ
ッサは、後続の処理が存在しないことからチャネルプロ
グラムの終了と判断し、プログラム10に対し、入出力
処理の終了を報告する。
【0019】(キャッシュメモリへのFBAディスク装
置からのロ−ド処理)以上が、外部記憶装置のデ−タを
読出すための処理装置1と制御装置2の動作概要である
が、サ−チコマンド処理の一部であるキャッシュメモリ
へのFBAディスク装置3からのロ−ド処理について詳
細に説明する。FBAディスク装置3から不揮発キャッ
シュメモリ22、23へのロ−ド処理は、チャネル制御
プロセッサ25の指示によりドライブ制御プロセッサ2
6が実行する。チャネル制御プロセッサ25からドライ
ブ制御プロセッサ26への処理要求は、制御メモリ27
を介して行なわれる。図8にチャネル制御プロセッサ2
5からドライブ制御プロセッサ26へ処理要求を行なう
リクエストブロック(RB)80の構成を示す。不揮発
キャッシュメモリ22、23へのロ−ド処理要求の場
合、チャネル制御プロセッサ25は、RB80内の要求
コ−ドに「ロ−ド処理要求」を設定し、ロ−ド対象FB
Aブロックを規定する「デバイス番号802」、「シリ
ンダ番号803」、「トラック番号804」、および
「セクタ番号805」をパラメ−タとして設定する。な
お、上記パラメ−タは、エミュレ−ト対象となるCKD
ディスク装置に関する情報である。チャネル制御プロセ
ッサ25は、上記RB80を制御メモリ27に設定する
と共に、キャッシュメモリ上のデ−タを管理するスロッ
トコントロ−ルブロック(SCB)にどのFBAブロッ
クがロ−ドされた時点で処理を再開するかを示すPOS
T制御用ビットマップ(後述する)の所望ビット位置に
ビットを設定し、WAITする。
【0020】以下にRB80を受け取ったドライブ制御
プロセッサ26のロ−ド処理の流れを図9を用いて説明
する。ドライブ制御プロセッサ26は、RB80により
キャッシュメモリへのロ−ド処理要求を受け取ると、処
理901によりRB80内の「シリンダ番号803」、
「トラック番号804」により示されるCKDトラック
がキャッシュメモリ上に存在するかを判定するHit/
Miss判定処理901を実行する。このHit/Mi
ss判定処理は、チャネル制御プロセッサ25のサ−チ
コマンド処理の流れで説明した処理603と同様の処理
を行なう。以下にその詳細を説明する。図10は、Hi
t/Miss判定テ−ブルとSCBとの関係図であり、
これらは、制御メモリ27上に存在する。不揮発キャッ
シュメモリ22、23は、2重化されたキャッシュメモ
リであり、その内容は同一である。キャッシュメモリ
は、キャッシュスロットと呼ぶ単位に分割され、各キャ
ッシュスロットは、図11に示すSCB110により管
理されている。1キャッシュスロットは、1つ以上のキ
ャッシュセグメントから構成されており、その最大長
は、エミュレ−ト対象となるCKDディスク装置の1ト
ラック分のデ−タを格納できる大きさである。例えば、
エミュレ−ト対象のCKDトラックのサイズが60KB
で、キャッシュセグメントサイズが16KBの場合、1
トラック全てのデ−タを格納するためには、4つのキャ
ッシュセグメントが必要となる。
【0021】Hit/Miss判定テ−ブルは、デバイ
ス表100、シリンダ表101、およびトラック表10
2から構成されている。デバイス表100のエントリ
は、エミュレ−ト対象となるCKDディスク装置対応に
存在し、各エントリには、シリンダ表101のアドレス
が設定されている。シリンダ表101のエントリには、
トラック表102のアドレスが格納されており、トラッ
ク表102のエントリにはSCB110のアドレスが格
納されている。各エントリにnullが設定されている
場合は、以降の情報が存在しないことを意味する。例え
ば、シリンダ表101の2番目のエントリにnullが
設定されている場合には、当該シリンダを構成する全て
のトラックのデ−タはキャッシュメモリ上に存在しない
ことを意味する。図10ではnullの設定をアース記
号で示してある。
【0022】Hit/Miss判定処理は、このHit
/Miss判定テ−ブルを検索することにより行なわれ
る。つまり、エミュレ−ト対象となるCKDディスク装
置のデバイス番号、シリンダ番号、およびトラック番号
からデバイス表100、シリンダ表101、およびトラ
ック表102を検索することによりアクセス対象となる
CKDトラックがキャッシュメモリ上に存在するかを判
定できる。トラック表102からポイントされるSCB
110の内、更新デ−タを含まないキャッシュスロット
を管理するSCB110は、MRU(Most Rec
entry Used)ポインタ103、LRU(Le
ast RecentryUsed)ポインタ105、
前方向ポインタ1102、および後方向ポインタ110
3でチェインされている。このチェインを再利用可能S
CBチェインと呼び、このチェインには、処理装置1が
アクセスを終了した時点でMRU側に接続される。前方
向ポインタ1102と後方向ポインタ1103は、CK
Dトラックに割当てられたSCB110をMRU順にチ
ェインするためのポインタである。MRUポインタ10
3は、最も現在時刻に近い時刻に処理装置1からの入出
力対象となったCKDトラックに対応するSCB110
をさし、LRUポインタ105は、最も長い時間入出力
対象となっていないCKDトラックに対応するSCB1
10をさす。CKDトラックに割当てられていないキャ
ッシュスロットを管理するSCB110は、空きSCB
ポインタ104、前方向ポインタ1102、および後方
向ポインタ1103でチェインする。空きSCBポイン
タ104は、CKDトラックに割当てられていないキャ
ッシュスロットを管理するSCB110をチェインする
ための先頭ポインタでありこれらSCB110のうち、
ひとつをポイントする。残りのCKDトラックに割当て
られていないキャッシュスロットを管理するSCB11
0は、前方向ポインタ1103、および後方向ポインタ
1104でチェインする。CKDトラックに割当てられ
ていないキャッシュスロットを管理するSCBが存在し
ない場合は、空きSCBポインタ104は、nullと
なる。
【0023】処理901におけるHit/Miss判定
処理により、Missと判定された場合は、処理902
によりCKDトラックにキャッシュスロットを割当てる
スロットアロケ−ト処理902を実行する。このスロッ
トアロケ−ト処理は、空きSCB110が存在する場合
は、空きSCBポインタ104からポイントされている
SCB110を、空きSCB110が存在しない場合
は、LRUポインタ105からポイントされるSCB1
10を、アクセス対象となったCKDトラックに割当て
る。
【0024】処理901によりCKDトラックがキャッ
シュメモリ上に存在する、すなわちHitと判定された
場合、または処理902実行後、処理903を実行す
る。処理903では、RB80内の「シリンダ番号80
3」、「トラック番号804」、および「セクタ番号8
05」からFBAディスク装置3上の読出し開始FBA
ブロック番号を以下の式により計算する。 FBAブロック番号= (シリンダ番号×シリンダ内トラック数× CKDトラックを構成するFBAブロック数)+ (トラック番号×CKDトラックを構成するFBAブロック数)+ (▽(セクタ番号×1セクタの大きさ)÷FBAブロックの大きさ▽) 上記計算式において、▽・・・▽は、切捨てを意味す
る。処理903に続く処理904では、FBAデイスク
装置3に対し処理903で求めたFBAブロック番号か
らのデ−タ読出し要求を発行する。その後、処理905
にて不揮発キャッシュメモリ22、23に対しデ−タ転
送をセットアップする。このセットアップ処理は、ドラ
イブ制御部24にFBAブロックの格納を開始する不揮
発キャッシュメモリ22、23のアドレスと、転送バイ
ト数を設定することである。FBAブロックの格納開始
アドレスは、ロ−ド処理を行なう最初のFBAブロック
が対応するCKDトラック上アドレスである。また、転
送バイト数は、当該CKDトラックの最終までのバイト
数か、あるいは、既に後方のFBAブロックのロ−ド処
理が行なわれている場合には、該ロ−ド処理の行なわれ
ている後方のFBAブロックの直前までのバイト数であ
る。続く処理906によりデ−タ転送を開始すると、ド
ライブ制御部24は、設定された不揮発キャッシュメモ
リ22、23上のアドレスにFBAディスク装置3から
読出したFBAブロックを格納する。ドライブ制御部2
4のデ−タ転送は、処理907により監視される。
【0025】処理907の詳細な流れ図を図12に示
す。ドライブ制御部24は、1つのFBAブロックをキ
ャッシュメモリに転送すると、そのデ−タ転送結果をド
ライブ制御プロセッサ26へ報告する。ドライブ制御プ
ロセッサ26は、処理1201によりこのFBAブロッ
クのデ−タ転送終了を監視する。これにより1つのFB
Aブロックのデ−タ転送終了を検出すると、処理120
2により、正常にデ−タ転送が終了したかを判定する。
この結果、デ−タ転送が正常に終了したと判断された場
合、処理1203を実行する。処理1203では、SC
B110内のロ−ド済みビットマップ1108にデ−タ
転送を終了したFBAブロックを登録する。処理120
2によりFBAブロックのデ−タ転送が異常終了したと
判断された場合、処理1204により、SCB110内
の障害FBAブロックビットマップ1111にデ−タ転
送が異常終了したFBAブロックを登録する。SCB1
10上のロ−ド済みFBAブロックビットマップ110
8、更新FBAブロックビットマップ1109、POS
T制御用ビットマップ1110、および障害FBAブロ
ックビットマップ1111は、夫々複数ビットからな
り、各ビットが1つのFBAブロックに対応している。
これを図解したものが図13にSCB110のロード済
みFBAブロックビットマップ1108として示されて
いる。処理1203、または処理1204によりデ−タ
転送が終了したFBAブロックに対応するビットマップ
をSCB110上に登録すると、処理1205によりチ
ャネル制御プロセッサ25に対しPOST処理が必要で
あるかを(SCB110のPOST制御用ビットマップ
1110にビットが設定されているかを)判定する。こ
の判定は、SCB110内にチャネル制御プロセッサ2
5がロ−ド要求の際設定したPOST制御用ビットマッ
プ1110と、ロ−ド済みFBAブロックビットマップ
1108、または障害FBAブロックビットマップ11
11の論理積を行なう。この結果がゼロでない場合、チ
ャネル制御プロセッサ25に対するPOST処理が必要
と判断され、処理1206を実行し、結果がゼロの場
合、処理1206をスキップする。処理1206では、
チャネル制御プロセッサ25をPOSTする処理を実行
し、POST制御用ビットマップ1110をクリアす
る。その後、処理1207によりチャネル制御プロセッ
サ25より要求された全てのFBAブロックのロ−ド処
理が終了したかを判定する。この判定の結果、ロ−ド処
理が必要なFBAブロックが存在する場合は、処理12
01に戻る。また、全てのFBAブロックのロ−ド処理
が終了した場合は、処理を終了する。
【0026】以上示した処理装置1からのデ−タ読出し
処理をまとめて、図1の制御装置2を図解すると、図1
3のようになる。チャネル制御プロセッサ25からのロ
−ド要求は、制御メモリ27に設定されたRB80によ
りドライブ制御プロセッサ26に伝達され、ドライブ制
御プロセッサ26は、ドライブ制御部24を制御し、F
BAディスク装置3からデ−タを読出し、不揮発キャッ
シュメモリ22と23に格納する。ドライブ制御プロセ
ッサ26は、ドライブ制御部24のデ−タ転送の進行状
況を監視し、ロ−ド済みFBAブロックビットマップあ
るいは障害FBAブロックビットマップにビットを立
て、SCB110にその結果を反映する。チャネル制御
プロセッサ25は、SCB110を参照することにより
処理装置1からアクセス対象となったCKDレコ−ドが
キャッシュメモリ上にロ−ドされたかを監視する。この
監視によりアクセス対象となったCKDレコ−ドがキャ
ッシュメモリ上にロ−ドされると、いずれか一方の負荷
の軽いキャッシュメモリ上のCKDレコ−ドを処理装置
1へ転送する。この結果、FBAディスク装置3からキ
ャッシュメモリへのロ−ド処理と並行して、キャッシュ
メモリ上のデ−タを処理装置1へ転送できる。
【0027】(外部記憶装置のデータ更新処理)次に処
理装置1から外部記憶装置上のデ−タを更新する処理に
ついて説明する。図14は、プログラム10が外部記憶
装置上のデ−タを更新するために用いるチャネルプログ
ラムの流れ図である。処理301から処理303により
外部記憶装置上のアクセス対象CKDレコ−ドに位置付
ける処理を行なう。これら処理(301〜303)は、
図3の外部記憶装置上のデ−タを読出すためのチャネル
プログラムの処理と同様であり、説明を省略する。チャ
ネルプロセッサは、処理301から303の処理を正常
に終了すると、処理1401により主記憶装置上デ−タ
によりCKDレコ−ドを更新する「デ−タ書き込み要
求」を実行する。これによりライトコマンドが制御装置
2に転送される。
【0028】ライトコマンドを受領したチャネル制御プ
ロセッサ25は、図15に示すライトコマンド処理を実
行する。ライトコマンド処理では、まず処理1501に
より不揮発キャッシュメモリ22、23に対しデ−タ転
送をセットアップする。このセットアップ処理とは、チ
ャネル制御部21にデ−タ転送対象となるCKDレコ−
ドの格納アドレスと、転送バイト数を設定することであ
る。CKDレコ−ドの格納アドレスは、サ−チコマンド
処理において検索したCKDレコ−ド内のフィ−ルドの
アドレスを設定する。制御フィ−ルド、キ−フィ−ル
ド、またはデ−タフィ−ルドのいずれかを選択するか
は、ライトコマンドの種類による。例えば、デ−タ部の
デ−タ更新要求コマンドである「WRITE DATA
コマンド」の場合、デ−タフィ−ルドの先頭アドレス
と、制御フィ−ルド内に格納されているデ−タフィ−ル
ドの長さをチャネル制御部21に設定する。ただし、C
KDトラックの初期設定を行なう形式書き込みコマンド
(「WRITE COUNT,KEY,AND DAT
Aコマンド」等)の場合は、当該CKDトラックの指定
されたCKDレコ−ド以降のデ−タを削除するための設
定を行なう。その後、処理1502によりチャネル制御
部21に対し、デ−タ転送の開始を指示する。デ−タ転
送開始指示を受けたチャネル制御部21は、処理150
1により設定されたCKDレコ−ド格納アドレスで示さ
れるキャッシュメモリ上の領域に処理装置1から転送さ
れたデ−タを格納する。チャネル制御プロセッサ25
は、チャネル制御部21によるデ−タ転送処理の終了を
処理1503により監視する。
【0029】処理1503のデ−タ転送終了判定処理の
詳細を図16に示す。デ−タ転送終了判定処理では、ま
ず処理1601によりデ−タ転送対象となったFBAブ
ロックに対応するSCB110内の更新FBAブロック
ビットマップ1109上にデータ転送の開始時に当該F
BAブロックが更新されたことを記録する。その後、処
理1602によりチャネルデ−タ転送が終了したかを判
定する。この結果、チャネルデ−タ転送が終了していな
いと判断された場合は、処理1603にてデ−タ転送が
FBAブロックの境界に達したかを判定する。この判定
の結果、FBAブロック境界に達したと判断された場
合、処理1601に戻り、次のデータ転送の開始時に更
新FBAブロックビットマップ1109を更新する。ま
た、処理処理1603によりFBAブロックの境界に達
していないと判断された場合は、処理1602に戻り、
チャネルデ−タ転送の終了を判定する。処理1602に
よりチャネルデ−タ転送の終了を検知すると、処理16
04により処理装置1からのデ−タ更新要求が形式書き
込み系のコマンドであるかを判定する。処理装置1から
のデ−タ更新要求が形式書き込み系コマンドである場
合、処理1605によりデ−タ転送を終了したFBAブ
ロックの次のFBAブロックからアクセス対象となった
CKDトラックの最後のFBAブロックに対応する更新
FBAブロックビットマップ1109を設定する。これ
は、形式書き込み系のコマンドの場合、アクセス対象と
なったCKDレコ−ド以降のCKDレコ−ド消去する必
要があり、消去対象となるCKDレコ−ドが格納されて
いるFBAブロックを更新する必要があるためである。
なお、このCKDレコ−ドの消去処理は、チャネル制御
部21により自動的に実行される。
【0030】以上がライトコマンド処理におけるデ−タ
転送監視処理1503の詳細であるが、処理1503に
よりデ−タ転送の終了を検知すると処理1504により
デ−タ転送が正常に終了したかを判定する。この結果、
デ−タ転送が異常終了したと判断された場合、処理15
06によりライトコマンドの異常終了を処理装置1に報
告する。また、処理1504によりデ−タ転送が正常終
了したと判断された場合は、処理1505によりライト
コマンドの正常終了を処理装置1に報告する。その後、
処理1507により処理装置1から要求された入出力要
求処理が、形式書き込み系コマンドあるかを判定する。
処理1507により、処理装置1から要求された入出力
要求が形式書き込みであると判断された場合は、処理1
508によりチャネル制御部21の形式書き込み処理の
終了を待って処理を終了する。また、形式書き込み以外
のデ−タ更新要求の場合は、そのまま処理を終了する。
【0031】以上示したデ−タ更新処理をまとめて、図
1の制御装置2を図解すると、図17のようになる。処
理装置1からの入出力処理対象となったCKDレコ−ド
がキャッシュメモリ上に存在しない場合は、デ−タ読出
し処理と同様にチャネル制御プロセッサ25からロ−ド
要求をRB80によりドライブ制御プロセッサ26に伝
達する。ドライブ制御プロセッサ26は、ドライブ制御
部24を制御し、FBAディスク装置3からアクセス対
象となったCKDレコ−ドを含むFBAブロックを読出
し、不揮発キャッシュメモリ22と23に格納する。ド
ライブ制御プロセッサ26は、ドライブ制御部24のデ
−タ転送の進行状況を監視し、SCB110内のロ−ド
済FBAブロックビットマップ1108にその結果を反
映する。チャネル制御プロセッサ25は、SCB110
を参照することによりキャッシュメモリへのロ−ド処理
の実行状態を監視する。この監視により、アクセス対象
となったCKDレコ−ドがキャッシュメモリ上ロ−ド
されると、チャネル制御プロセッサ25は、チャネル制
御部21を制御し、処理装置1から転送されたデ−タを
不揮発キャッシュメモリ22と23に格納する。この
際、デ−タ更新対象となったFBAブロックをSCB1
10内の更新FBAブロックビットマップ1109に反
映する。この結果、FBAディスク装置3からのロ−ド
処理と並行して、処理装置1からの更新デ−タをキャッ
シュメモリ上に格納できる。
【0032】(更新デ−タのFBAディスク装置への格
納処理)次に、処理装置1から更新されたデ−タをFB
Aディスク装置3へ格納する処理について説明する。本
発明では、先のデ−タ更新処理の説明のように、処理装
置1からデ−タ更新要求が発行された時点では、FBA
ディスク装置3にデ−タを書き込まない。これは、ライ
ト系コマンドの応答時間を短縮することを目的としてお
り、制御装置2内の2つのキャッシュメモリと制御メモ
リ27の不揮発化は、処理装置1にコマンドの終了を報
告したライトデ−タをFBAディスク装置3に格納する
間の電源障害によりデ−タを消失することを防ぐためで
ある。
【0033】図18は、FBAデイスク装置3への未反
映更新デ−タを含むキャッシュスロットを管理するSC
B110(以降、このようなSCBをライトペンディン
グSCBと呼ぶ)の関係図である。ライトペンディング
SCB110は、ライトペンディングSCBMRUポイ
ンタ180、ライトペンディングSCBLRUポインタ
181、前方向ポインタ1102、および後方向ポイン
タ1103でチェインされている。このライトペンディ
ングSCBチェインは、FBAディスク装置毎に存在す
る。このチェインへのSCB110の登録処理は、チャ
ネル制御プロセッサ25においてデ−タ更新処理を行な
った際に行なわれ、チェインのMRU側に登録される。
ドライブ制御プロセッサ26は、一定時間間隔でライト
ペンディングSCBチェインを参照し、ライトペンディ
ングSCBが存在する場合、当該SCBが管理するキャ
ッシュスロット上の更新デ−タをFBAデイスク装置3
へ格納するデステ−ジ処理を起動する。複数のライトペ
ンディングSCBがチェイン上に存在する場合は、LR
U側のライトペンディングSCBよりデステ−ジ処理を
実行する。
【0034】(デステ−ジ処理)以下、図19を参照し
てデステ−ジ処理を説明する。デステ−ジ処理において
は、まず処理1901により不揮発キャッシュメモリ2
2、23のいずれかを選択し、処理1902により選択
したキャッシュメモリに対しデ−タ転送をセットアップ
する。このセットアップ処理とは、ドライブ制御部24
にデ−タ転送対象となるFBAブロックの格納アドレス
と転送バイト数を設定することである。FBAブロック
の格納アドレスは、SCB110内の更新FBAブロッ
クビットマップを参照することにより求めることができ
る。また、転送バイト数は、デステ−ジ対象となるCK
Dトラック内の最初の更新デ−タを含むFBAブロック
から最後の更新デ−タを含むFBAブロック数分だけ設
定する。この処理の概要を図20を参照して説明する。
【0035】CKDトラック内に6つのCKDレコ−ド
(121から125)が存在し、CKDレコ−ド122
と125が処理装置1から更新されていると、更新FB
Aブロックビットマップ1109にFBAブロック25
1、252、および254に更新デ−タが含まれること
が表示される。この更新FBAブロックビットマップを
参照し、デステ−ジ範囲をFBAブロック251からF
BAブロック254の連続した4つのFBAブロックを
デステ−ジ範囲とする。このように更新デ−タを含まな
いFBAブロック(253)もデステ−ジ対象とする理
由は、FBAディスク装置3のインタフェ−スがSCS
Iの場合、1回のライトコマンドでは連続した領域のデ
−タ格納処理のみである。したがって、上記例において
更新デ−タを含むFBAブロックのみをFBAデイスク
装置に書き込むためには、2回のライトコマンドを発行
しなければならいためである。
【0036】処理1902によりドライブ制御部24に
対しデ−タ転送をセットアップした後、処理1903に
よりデステ−ジを開始するFBAブロック番号を、SC
B110内のシリンダ番号1105、トラック番号11
06、および更新FBAブロックビットマップ1109
から計算する。続く処理1904によりFBAディスク
装置3に対し、処理1903で求めたFBAブロックの
ライト要求を発行する。その後、処理1905によりデ
−タ転送の開始を指示し、処理1906によりデ−タ転
送の終了を監視する。処理1906によりデ−タ転送の
終了を検出すると、処理1907において、FBAデイ
スク装置3のデ−タ格納処理の終了を監視する。処理1
907によりFBAディスク装置3のデ−タ格納処理の
終了を検知すると、処理1908によりFBAディスク
装置3へのデ−タ格納処理を終了したFBAブロックに
対応する更新FBAブロックビットマップ1109をク
リアする。
【0037】以上示したデステ−ジ処理をまとめて、図
1の制御装置2を図解すると、図21のようになる。ド
ライブ制御プロセッサ26は、制御メモリ27上のライ
トペンディングSCB110を検索し、更新FBAブロ
ックビットマップ1109を参照してデステ−ジ範囲を
決定する。その後、いずれかのキャッシュメモリからデ
ステ−ジ範囲のFBAブロックをFBAデイスク装置3
に格納する。
【0038】本発明によれば、処理装置1からアクセス
要求のあったCKDレコ−ドを含むFBAブロックの全
てが2つの不揮発キャッシュメモリ22、23に格納さ
れる。デステ−ジ処理中に一方の不揮発キャッシュメモ
リに障害が発生しても、他の不揮発キャッシュメモリか
らデステ−ジ処理が再開できる。このため、FBAディ
スク装置において、CKDディスク装置をエミュレ−ト
しても、処理装置1からのアクセス対象以外のレコ−ド
を破壊するという問題が解決できる。これにより、FB
Aディスク装置においてCKDディスク装置をエミュレ
−トする場合にも、処理装置1からのデ−タ更新要求と
は非同期にFBAディスク装置へのデ−タ格納処理を実
行するライトアフタキャッシュ方式が適応できる。ま
た、FBAデイスク装置3とキャッシュメモリ間のデ−
タ転送と、キャッシュメモリと処理装置1とのデ−タ転
送を並行して実行でき、かつその排他単位がFBAブロ
ックであるため、処理装置1から入出力要求を受け取っ
てから、実際にデ−タ転送を開始するまでの時間を短縮
できる。
【0039】〈第2実施例〉次に、第2の実施例につい
て説明する。本実施例の構成図は、第1の実施例と同一
であり説明を省略する。第1の実施例は、処理装置1か
らアクセス対象となったCKDレコ−ドを2つの不揮発
キャッシュメモリ22、23に常に格納する方式であっ
た。この方式では、更新デ−タを含まないキャッシュス
ロットであっても、2つの不揮発キャッシュメモリ2
2、23に格納されている。本来、更新デ−タを含まな
いキャッシュスロットは、どちらか一方のキャッシュメ
モリに存在すれば良い。このように、第1の実施例で
は、キャッシュメモリの有効利用という観点からは問題
があり、本実施例では、この問題を解決する。
【0040】本実施例では、キャッシュメモリ上のキャ
ッシュスロットを管理するSCBを各々のキャッシュメ
モリ毎に設ける。これにより、SCBは、図22に示す
ような構成となる。第1の実施例との違いは、当該SC
Bが管理するキャッシュスロットが属するキャッシュメ
モリ番号を示すエントリ1112が追加されている。こ
のキャッシュメモリ番号は、制御装置2内を構成してい
る複数の不揮発キャッシュメモリに対して割当てた一連
の番号であり、不揮発キャッシュメモリ22をキャッシ
ュメモリ0、不揮発キャッシュメモリ23をキャッシュ
メモリ1とする。ただし、これによりキャッシュメモリ
上のデ−タ格納形式が変更されることはなく、第1の実
施例の図2で示したデ−タ格納形式と同様である。
【0041】処理装置1からアクセスされたCKDトラ
ックがキャッシュメモリ上に存在するかを判定するHI
T/MISS判定テ−ブルとSCB110の関係図を図
23に示す。この図より分かるように、各キャッシュメ
モリ毎にHit/Miss判定テ−ブルを設ける。つま
り、キャッシュメモリ0上のキャッシュスロットを管理
するSCB110は、デバイス表100−0、シリンダ
表101−0、およびトラック表102−0からなるH
it/Miss判定テ−ブルにより管理され、キャッシ
ュメモリ1上のキャッシュスロットを管理するSCB1
10は、デバイス表100−1、シリンダ表101−
1、およびトラック表102−1からなるHit/Mi
ss判定テ−ブルにより管理されている。トラック表1
02−0、および102−1からポイントされる更新デ
−タを含まないキャッシュスロットを管理するSCB1
10は、再利用可能SCBチェインに接続されている。
この再利用可能SCBチェインは、MRUポインタ10
3、LRUポインタ105、前方向ポインタ1102、
および後方向ポインタ1103で管理されている。この
チェインは、キャッシュメモリ0、1に関係なく一本の
チェインである。また、このSCB110のチェインの
中心のSCB110を中央ポインタ106によりポイン
トしている。処理装置1からのアクセスが終了した時点
で、アクセス対象となったキャッシュスロットが、キャ
ッシュメモリ0と、キャッシュメモリ1の両方に存在す
る場合は、どちらか一方のキャッシュスロットを管理す
るSCB110を再利用可能SCBチェインのMRU側
に接続し、他のキャッシュスロットを管理するSCB1
10を中央ポインタ106が示すチェインの位置に接続
する。
【0042】CKDトラックに割当てられていないキャ
ッシュスロットを管理するSCB110は、図24のよ
うに各キャッシュメモリ毎にチェインされている。キャ
ッシュメモリ0上の空きキャッシュスロットを管理する
SCB110は、空きSCBポインタ104−0、前方
向ポインタ1102、および後方向ポインタ1103で
チェインする。また、キャッシュメモリ1上の空きキャ
ッシュスロットを管理するSCB110は、空きSCB
ポインタ104−1、前方向ポインタ1102、および
後方向ポインタ1103でチェインする。空きSCBポ
インタ104−0と104−1は、CKDトラックに割
当てられていないキャッシュスロットを管理するSCB
110をチェインするための先頭ポインタであり、これ
らSCB110のうち、ひとつをポイントする。残りの
CKDトラックに割当てられていないキャッシュスロッ
トを管理するSCB110は、前方向ポインタ110
2、および後方向ポインタ1103でチェインする。C
KDトラックに割当てられていないキャッシュスロット
が存在しない場合は、空きSCBポインタ104−0、
104−1は、nullとなる。処理装置1からの入出
力要求により新たなキャッシュスロットが必要となった
場合、空きSCBが存在する場合は、そのSCBを利用
するが、存在しない場合は、再利用可能SCBチェイン
に登録されている、LRU側のSCB110を利用す
る。
【0043】(第1実施例と異なる処理)以下に第1の
実施例と異なる処理を説明する。本実施例では、2つの
不揮発キャッシュメモリ22,23上のキャッシュスロ
ットをそれぞれ独立のSCB110により管理する。し
たがって、図25に示すように、図3に示すサ−チコマ
ンド処理におけるCKDトラックのHit/Miss判
定処理603は、CKDトラックがいずれかのキャッシ
ュメモリに存在する場合、Hit状態とするよう制御す
る。つまり、処理2501によりキャッシュメモリ0上
に、処理装置1からアクセス対象となったCKDトラッ
クが存在するかを判定する。この結果、当該CKDトラ
ックがキャッシュメモリ0上に存在しないと判断された
場合、処理2502によりキャッシュメモリ1上に当該
CKDトラックが存在するかを判定する。この判定の結
果、いずれのキャッシュメモリにも当CKDトラックが
存在しないと判断された場合、処理2503によりHi
t/Miss判定結果をMissとする。また、処理2
501、または処理2502によりキャッシュメモリ
0、またはキャッシュメモリ1のいずれかに当該CKD
トラックが存在すると判断された場合、処理2504に
よりHit/Miss判定結果をHitとする。また、
処理605におけるキャッシュメモリの選択処理は、ア
クセス対象となったCKDトラックが存在するキャッシ
ュメモリを選択する。
【0044】なお、図25に示したHit/Miss判
定処理では、キャッシュメモリ0とキャッシュメモリ1
の両方のキャッシュメモリにアクセス対象となったCK
Dトラックが存在すると、必ずキャッシュメモリ0、す
なわち不揮発キャッシュメモリ22を選択してしまう。
これにより、2つのキャッシュメモリ間で負荷の不均衡
が発生してしまう。これの対策として、シリンダ番号の
偶数、奇数によりキャッシュメモリ0とキャッシュメモ
リ1のHit/Miss判定順序を入れ替える方法等が
ある。また、図7に示すリ−ドコマンド処理において
は、処理701のキャッシュメモリの選択処理が、先に
説明したサ−チコマンド処理におけるキャッシュメモリ
選択処理同様、アクセス対象となったCKDレコ−ドが
存在するキャッシュメモリを選択する。
【0045】(ライトコマンド処理)次にライトコマン
ド処理について説明する。第1の実施例の場合、更新対
象となるCKDレコ−ドを含むキャッシュスロットは、
必ず2つの不揮発キャッシュメモリに存在した。しか
し、本実施例では、上記に示したようなキャッシュ管理
方式を採用しているため更新対象となったキャッシュス
ロットが一つのキャッシュメモリにのみに存在する場合
がある。この場合、新たに他方のキャッシュメモリ上に
キャッシュスロットを割当て、更新対象となったCKD
レコ−ドが格納されているFBAブロックが2つのキャ
ッシュメモリに存在するよう制御する。
【0046】図26にライトコマンド処理の流れ図を、
図27にライトコマンド処理におけるデ−タの流れを示
す。チャネル制御プロセッサ25は、処理装置1よりラ
イトコマンドを受領すると、処理2601により更新対
象となるCKDレコ−ドが格納されている最初のFBA
ブロックがキャッシュメモリ0と、キャッシュメモリ1
の両方に格納されているかを確認する。図27の例で
は、処理装置からの更新対象は、CKDレコ−ド125
(R5)のデ−タフィ−ルドであり、R5 125は、
FBAブロック254とFBAブロック255にまたが
って格納されている。処理2601の判定では、FBA
ブロック254がキャッシュメモリ1とキャッシュメモ
リ2の両方に存在するかを判定する。この判定により、
FBAブロック254が一方のキャッシュメモリにのみ
存在すると判断された場合、処理2602により不揮発
キャッシュメモリ22、23に対し、コピ−転送をセッ
トアップする。このセットアップ処理は、以下の2つの
処理からなる。第1の処理は、転送先のキャッシュメモ
リ上にアクセス対象となったCKDトラックに対応する
キャッシュスロットが確保されていない場合、転送元の
キャッシュスロットと同じ容量のキャッシュスロットを
確保する処理である。第2の処理は、転送元のキャッシ
ュメモリとそのアドレス、転送先のキャッシュメモリと
そのアドレス、およびコピ−転送バイト数をチャネル制
御部21に設定する処理である。図27の例では、不揮
発キャッシュメモリ23上に不揮発キャッシュメモリ2
2上のキャッシュスロット275と同じ容量を持つキャ
ッシュスロット276を割当てる。その後、キャッシュ
スロット275内のFBAブロック254−0の先頭ア
ドレスをコピ−元アドレスとして設定する。またコピ−
先アドレスとしてキャッシュスロット276内のFBA
ブロック254−1の先頭アドレスを設定し、転送バイ
ト数としてFBAブロック254−0の先頭からR5
125のデ−タフィ−ルドまでのバイト数を設定する。
以上によりコピ−転送のセットアップ処理が終了し、続
く処理2603によりコピ−転送開始をチャネル制御
部21に指示する。これによりコピ−転送271(図2
7)が開始される。なお、上記の転送バイト数として
は、FBAブロック254−0の先頭からR5 125
のカウントフィ−ルド(C)までのバイト数を設定する
ようにしてもよいし、FBAブロック255−0の最終
アドレスまでのバイト数を設定するようにしてもよい。
キャッシュメモリ間のコピ−転送処理は、チャネル制御
部21に実行され、チャネル制御プロセッサは、処理2
604によりコピ−処理の実行状態を監視する。処理2
604によりコピ−転送処理の終了を検知すると処理2
605によりコピ−転送が正常に終了したかを判定す
る。この判定によりコピ−処理が異常終了したと判断さ
れた場合、処理1506によりライトコマンドの異常終
了を処理装置1に報告し処理を終了する。処理2605
によりコピ−処理が正常終了したと判断された場合、も
しくは処理2601により処理装置1から更新デ−タを
受領する前のコピ−処理が不要であると判断された場合
は、処理1501を実行する。処理1501から処理1
508までの処理は、第1の実施例の図15と同じであ
るため説明を省略する。
【0047】処理1507により処理装置1からのライ
トコマンドが形式書き込み系のコマンドでないと判断さ
れた場合、処理2606により転送を終了したFBAブ
ロックの残りのデ−タをキャッシュメモリ間でコピ−が
必要であるかを判定する。図27の例では、処理装置1
からのデ−タ転送は、FBAブロック255の途中で終
わっている。この状態では、FBAブロックとして完全
に2つのキャッシュメモリ上に存在することにならな
い。したがって、FBAブロック255−0のR5以降
のデ−タをFBAブロック255−1にコピ−する必要
がある。処理2606から処理2609においてこのコ
ピ−処理273(図27)を実行する。コピ−手順につ
いては先に説明したFBAブロック254−0のコピ−
手順と同様であるため説明を省略する。以上のライトコ
マンド処理により処理装置1より更新対象となったCK
Dレコ−ドを格納するFBAブロックは、必ず2つの不
揮発キャッシュメモリ上に存在することになる。
【0048】(デステ−ジ処理)次に、処理装置1から
更新されたデ−タをFBAディスク装置3へ格納するデ
ステ−ジ処理について説明する。本実施例においても第
1の実施例同様、FBAディスク装置3へのデ−タ格納
処理は、処理装置1からのデ−タ更新要求とは非同期に
実行する。ライトペンディングSCB110の管理方式
は、第1の実施例と同様の管理であるが、本実施例で
は、2重化されたキャッシュスロットを、それぞれ独立
したライトペンディングSCB110により管理する
が、図18に示すライトペンディングSCBチェインに
は、いずれか一方のライトペンディングSCB110を
登録する。ライトペンディングSCB110が存在する
場合、ドライブ制御プロセッサ26は、ライトペンディ
ングSCBLRUポインタによりポイントされるSCB
を確保して図28に示すデステ−ジ処理を実行する。
【0049】デステ−ジ処理では、まず処理2801に
よりキャッシュスロット内のFBAブロックのキャッシ
ュメモリ間コピ−処理が必要であるかを判定する。この
判定は、1回のFBAディスク装置へのライト要求によ
り一つのCKDトラック内の更新デ−タを一括して書き
込みを行なっても、障害によりデ−タを消失させないよ
うにするためである。具体的な例を、図29を参照して
説明する。あるCKDトラックに対応するキャッシュス
ロットが4つのFBAブロックから構成されていて、第
3のFBAブロック253を除く3つのFBAブロック
に更新デ−タが含まれると仮定する。この場合、キャッ
シュスロット内の更新デ−タを含むFBAブロックを1
回のFBAディスク装置へのライト要求により書き込み
を行なうためには、上記4つのFBAブロックを一括し
て書き込む必要がある。FBAブロック253は、更新
デ−タを含んでいないため、一つのキャッシュメモリに
しか存在しない場合がある。このような状態において、
FBAブロック253をFBAディスク装置3へ書き込
み中にキャッシュメモリに障害が発生すると、FBAブ
ロック253を消失してしまう。したがって、FBAブ
ロック253を含めてFBAディスク装置3への書き込
み要求範囲のFBAブロックの全てを2つのキャッシュ
メモリに2重化することにより上記問題を解決する。
【0050】処理2801により、キャッシュメモリ間
コピ−が必要であると判断された場合、処理2802に
より不揮発キャッシュメモリ22、23に対し、コピ−
転送をセットアップする。このセットアップ処理は、転
送元のキャッシュメモリとそのアドレス、転送先のキャ
ッシュメモリとそのアドレス、およびコピ−転送バイト
数をチャネル制御部21に設定する処理である。図29
の例では、FBAブロック253−0の先頭アドレスを
コピ−元アドレスとして設定する。またコピ−先アドレ
スとしてFBAブロック253−1の先頭アドレスを設
定し、転送バイト数として一FBAブロック分のバイト
数を設定する。以上によりコピ−転送のセットアップ処
理が終了し、続く処理2803によりコピ−転送を開始
をドライブ制御部24に指示する。これによりコピ−転
送291(図29)が開始される。
【0051】キャッシュメモリ間のコピ−転送処理は、
ドライブ制御部24に実行され、ドライブ制御プロセッ
サ26は、処理2804によりコピ−処理の実行状態を
監視する。処理2804によりコピ−転送処理の終了を
検知すると、処理1901により不揮発キャッシュメモ
リ22、23のいずれかを選択し、処理2805を実行
する。処理2805では、処理1901で選択したキャ
ッシュメモリ以外のキャッシュメモリ上のデステ−ジ対
象となったCKDトラックに対応するキャッシュスロッ
トを管理するSCB110−1内のSCB状態フラグ1
101にリ−ド属性フラグを設定する。これは、FBA
ディスク装置3へのデステ−ジ処理中にデステ−ジ対象
となったCKDトラックに対し、処理装置1からアクセ
ス要求があった場合、処理装置1からのアクセス要求が
デ−タ読出し要求ならば、デステ−ジ処理に利用してい
ないキャッシュスロットにより当該アクセス要求を実行
させるためである。なお、処理装置1からのアクセス要
求がデ−タ更新要求の場合、またはアクセス対象CKD
レコ−ドがデステ−ジ処理に利用していないキャッシュ
スロットに存在しない場合は、デステ−ジ処理が終了す
るまで処理装置からのアクセス要求は待ち状態となる。
処理2805に続く処理1902から、処理1907ま
での処理は、キャッシュスロット上の更新デ−タを含む
FBAブロックのFBAディスク装置3への書き込み処
理であり、第1の実施例の図19と同じため説明を省略
する。FBAディスク装置3への書き込み処理が終了す
ると、処理2806により書き込みを終了したキャッシ
ュスロットを管理するSCB110内の更新FBAブロ
ックビットマップ1109を消去する。この消去処理
は、2重化されたキャッシュスロットを管理する2つの
SCB110に対し実行され、続く処理2807により
処理2805により設定したSCBのリ−ド属性を解除
し、処理を終了する。
【0052】なお、デステ−ジ処理が終了したキャッシ
ュスロットを管理するSCB110は、再利用可能SC
Bチェインに登録される。この登録処理は、2重化され
た一方のキャッシュスロットを管理するSCB110を
再利用可能SCBチェインのMRU側に登録し、他のキ
ャッシュスロットを管理するSCB110を再利用可能
SCBチェインの中央に登録する。
【0053】本発明によれば、FBAディスク装置から
読出された直後のキャッシュスロットは、2つの不揮発
キャッシュメモリ22、23上に2重化されて格納され
る。当該キャッシュスロットに更新デ−タが存在せず、
処理装置1からのアクセス頻度が低い場合、一方のキャ
ッシュメモリ上のキャッシュスロットが削除され1重化
され、さらにアクセス頻度が低いキャッシュスロット
は、いずれのキャッシュメモリにも存在しなくなる。こ
れにより、キャッシュメモリの有効利用が図れ、処理装
置1からアクセス対象となるデ−タがキャッシュメモリ
上に存在する確率が高くなり、高性能なディスクキャッ
シュ装置が提供できる。
【0054】また、1重化状態となったキャッシュスロ
ットに対して処理装置1からデ−タ更新要求が発行され
た場合、更新デ−タを含むFBAブロックは2つの不揮
発キャッシュメモリ22、23に2重化される。これに
より、FBAデイスク装置においてCKDディスク装置
をエミュレ−トする際にも、ライトアフタキャッシュ制
御が適応できる。さらに、FBAディスク装置3へのラ
イトコマンド発行回数を削減するため、一つのキャッシ
ュスロット上の更新デ−タを含むFBAブロックは一括
書き込みを行なう。この際、更新デ−タを含まないFB
AブロックもFBAデイスク装置に書き込むことがある
が、このようなFBAブロックも2つの不揮発キャッシ
ュメモリに2重化されて格納されているため、FBAデ
ィスク装置3への書き込み中に障害が発生してもデ−タ
を消失することはない。
【0055】
【発明の効果】本発明は、以上説明したように構成され
ているので以下に記載されるような効果を奏する。 (1)処理装置からアクセス要求のあったCKDレコ−
ドを含むFBAブロックの全てが複数のキャッシュメモ
リにFBAディスク装置から読出され格納される。キャ
ッシュメモリ上の更新デ−タを含むFBAブロックのF
BAデイスク装置への書き込み処理、すなわちデステ−
ジ処理中に一方のキャッシュメモリに障害が発生して
も、他のキャッシュメモリからデステ−ジ処理が再開で
きる。このため、FBAディスク装置において、CKD
ディスク装置をエミュレ−トしても、処理装置からのア
クセス対象以外のレコ−ドを破壊することがないという
効果が得られる。また、FBAディスク装置においてC
KDディスク装置をエミュレ−トする場合にも、処理装
置1からのデ−タ更新要求とは非同期にFBAディスク
装置へのデ−タ格納処理を実行するライトアフタキャッ
シュ方式が適応できるという効果、また、処理装置から
のデ−タ更新処理の際、ディスク装置の機械的動作時間
を削減できるという効果が得られる。また、FBAデイ
スク装置3とキャッシュメモリ間のデ−タ転送と、キャ
ッシュメモリと処理装置1とのデ−タ転送を並行して実
行でき、かつその排他単位がFBAブロックであるた
め、処理装置から入出力要求を受け取ってから、実際に
デ−タ転送を開始するまでの時間を短縮できるという効
果が得られる。 (2)FBAディスク装置から読出された直後のキャッ
シュスロットは、2つのキャッシュメモリ22、23上
に2重化されて格納される。当該キャッシュスロットに
更新デ−タが存在せず、処理装置1からのアクセス頻度
が低い場合、一方のキャッシュメモリ上のキャッシュス
ロットが削除され1重化され、さらにアクセス頻度が低
いキャッシュスロットは、いずれのキャッシュメモリに
も存在しなくなる。これにより、キャッシュメモリの有
効利用が図れ、処理装置からアクセス対象となるデ−タ
がキャッシュメモリ上に存在する確率が高くなり、高性
能なディスクキャッシュ装置を提供できるという効果が
得られる。 (3)1重化状態となったキャッシュスロットに対して
処理装置からデ−タ更新要求が発行された場合、更新デ
−タを含むFBAブロックは2つのキャッシュメモリに
2重化される。これにより、1重化状態となったキャッ
シュスロットに対してもライトアフタキャッシュ方式が
適応でき、処理装置からのデ−タ更新処理の応答時間を
短縮できるという効果が得られる。 (4)更新デ−タを含むFBAブロックaとcの間に更
新デ−タを含まないFBAブロックbが存在しても、更
新デ−タを含まないFBAブロックbを2つのキャッシ
ュメモリに2重化する。これにより、FBAブロックa
からcを一括してFBAディスク装置に格納してもディ
スク装置への書き込み中に障害が発生してもデ−タを消
失することはなく、デステ−ジ処理の際のFBAディス
ク装置へのライト要求発行回数を削減できるという効果
が得られる。 (5)キャッシュメモリを不揮発キャッシュメモリとす
ることにより、電源障害が発生してもキャッシュメモリ
中の更新レコードを保持できるという効果が得られる。
【図面の簡単な説明】
【図1】本発明の一実施例を示す制御構成を示すブロッ
ク図である。
【図2】CKDディスク装置をFBAディスク装置にお
いてエミュレ−トする際のデ−タ格納形式である。
【図3】デ−タ読出し用チャネルプログラムの流れ図で
ある。
【図4】シ−クコマンド処理の流れ図である。
【図5】セットセクタコマンドの処理の流れ図である。
【図6】サ−チコマンド処理の流れ図である。
【図7】リ−ドコマンド処理の流れ図である。
【図8】ドライブ制御プロセッサへのリクエストブロッ
ク(RB)の構成図である。
【図9】キャッシュメモリへのロ−ド処理の流れ図であ
る。
【図10】Hit/Miss判定テ−ブルとSCBとの
関係図である。
【図11】スロットコントロ−ルブロック(SCB)の
構成図である。
【図12】図9の処理907の詳細な流れ図である。
【図13】デ−タ読出し処理を説明する概略図である。
【図14】デ−タ書き込み用チャネルプログラムの流れ
図である。
【図15】ライトコマンド処理の流れ図である。
【図16】図15の処理1503の詳細な流れ図であ
る。
【図17】デ−タ更新処理を説明する概略図である。
【図18】更新デ−タを含むキャッシュスロットを管理
するSCBの関係図である。
【図19】デステ−ジ処理の流れ図である。
【図20】デステ−ジ対象FBAブロックの範囲を示す
図である。
【図21】デステ−ジ処理を説明する概略図である。
【図22】第2の実施例におけるスロットコントロ−ル
ブロック(SCB)の構成図である。
【図23】第2の実施例におけるHit/Miss判定
テ−ブルとSCBの関係図である。
【図24】第2の実施例における空きSCBの関係図で
ある。
【図25】第2の実施例におけるHit/Miss判定
処理の流れ図である。
【図26】第2の実施例におけるライトコマンド処理の
流れ図である。
【図27】第2の実施例のライトコマンド処理における
デ−タの流れを示す図である。
【図28】第2の実施例におけるデステ−ジ処理の流れ
図である。
【図29】第2の実施例のデステ−ジ処理におけるデ−
タの流れを示す図である。
【符号の説明】
1 処理装置 2 制御装置 21 チャネル制御 21 ドライブ制御 22、23 不揮発キャッシュメモリ 25 チャネル制御プロセッサ 26 ドライブ制御プロセッサ 27 制御メモリ 3 固定長記録形式のディスク装置
───────────────────────────────────────────────────── フロントページの続き (72)発明者 佐藤 孝夫 神奈川県川崎市麻生区王禅寺1099番地 株式会社日立製作所 システム開発研究 所内 (72)発明者 一ノ宮 弘 東京都小平市上水本町5丁目22番1号 株式会社日立マイコンシステム内 (72)発明者 竹内 久治 神奈川県小田原市国府津2880番地 株式 会社日立製作所 ストレージシステム事 業部内 (72)発明者 山本 彰 神奈川県川崎市麻生区王禅寺1099番地 株式会社日立製作所 システム開発研究 所内 (56)参考文献 特開 平1−306917(JP,A) 特開 平2−264335(JP,A) 特開 平4−4422(JP,A) 特開 平1−303547(JP,A) 特開 平3−246713(JP,A) 特開 平4−84215(JP,A) 実願昭63−104415号(実開 平2− 27234号)の願書に添付した明細書及び 図面の内容を撮影したマイクロフィルム (JP,U) (58)調査した分野(Int.Cl.7,DB名) G06F 12/08 G06F 3/06

Claims (8)

    (57)【特許請求の範囲】
  1. 【請求項1】 可変長記録形式の記憶処理インタフェ−
    スを用いるプログラムを実行する処理装置と、固定長記
    録形式の直接アクセス型の記憶装置とを接続し、複数の
    キャッシュメモリを備え、前記処理装置より発行される
    前記記憶装置との間のデ−タ転送、およびそれに関連し
    た動作を指示するチャネルコマンドに応答し、前記記憶
    装置において可変長記録形式のデ−タ記憶処理をエミュ
    レ−トするディスクキャッシュ制御装置であって、 前記チャネルコマンドが入出力対象とするレコ−ドを含
    む前記記憶装置上の固定長ブロックが、前記キャッシュ
    メモリ上に格納されているかを判定する手段と、 前記チャネルコマンドがデ−タ更新要求のとき、更新対
    象レコ−ドを含む前記記憶装置上の固定長ブロックが、
    前記判定手段により一つのキャッシュメモリにのみ存在
    すると判断された場合、 前記固定長ブロックが存在するキャッシュメモリ以外の
    キャッシュメモリを一つ以上選択し、固定長ブロックを
    割り当てる手段と、 前記一つのキャッシュメモリの固定長ブロック内の前記
    更新対象レコ−ドを含む領域、あるいは含まない領域、
    あるいは前記固定長ブロックの全ての領域を前記選択さ
    れたキャッシュメモリの割り当てられた固定長ブロック
    に複写する手段と、 前記一つのキャッシュメモリおよび選択されたキャッシ
    ュメモリの固定長ブロックに、前記処理装置からの更新
    レコ−ドを格納する手段と、 前記更新レコ−ドを格納した時点で、前記処理装置に前
    記チャネルコマンドの終了を報告する手段と、 更新対象レコ−ドを含む前記記憶装置上の固定長ブロッ
    クが、前記判定手段により複数のキャッシュメモリのい
    ずれにも格納されていないと判断された場合、前記更新
    対象レコードを含む固定長ブロックを前記記憶装置から
    読み出し、前記複数のキャッシュメモリに格納する手段
    を備えることを特徴とするディスクキャッシュ制御装
    置。
  2. 【請求項2】 請求項1記載のディスクキャッシュ制御
    装置において、 前記チャネルコマンドがデ−タ読出し要求のとき、前記
    判定手段により、前記読出し対象レコードを含む固定長
    ブロックが前記複数のキャッシュメモリのうちのいずれ
    のキャッシュメモリにも格納されていないと判断された
    場合、前記読出し対象レコードを含む固定長ブロックを
    前記記憶装置から読出し、前記複数のキャッシュメモリ
    うちの二つ以上のキャッシュメモリに格納する手段
    と、 前記読出し対象レコードを含む固定長ブロックを格納し
    たキャッシュメモリのうち、いずれか一つのキャッシュ
    メモリを選択する選択手段と、 前記選択手段により選択したキャッシュメモリから前記
    読出しレコ−ドを読出し、前記処理装置に転送する手段
    と、 を備えることを特徴とするディスクキャッシュ制御装
    置。
  3. 【請求項3】 請求項1記載のディスクキャッシュ制御
    装置において、 前記チャネルコマンドがデ−タ更新要求の場合、前記判
    定手段により、前記更新対象レコードを含む固定長ブロ
    ックが前記複数のキャッシュメモリのうちのいずれのキ
    ャッシュメモリにも格納されていないと判断された場
    合、前記更新対象レコードを含む固定長ブロックを前記
    記憶装置から読出し、前記複数のキャッシュメモリ
    ちの二つ以上のキャッシュメモリに格納する手段と、 前記更新対象レコードを含む固定長ブロックを格納した
    キャッシュメモリの全ての前記更新対象レコードを含む
    固定長ブロックに前記処理装置からの更新レコ−ドを格
    納する手段と前記更新レコ−ドを格納した時点で、前記
    処理装置に前記チャネルコマンドの終了を報告する手段
    と、 を備えることを特徴とするディスクキャッシュ制御装
    置。
  4. 【請求項4】 請求項1記載のディスクキャッシュ制御
    装置において、 前記チャネルコマンドがデ−タ読出し要求のとき、前記
    判定手段により読出し対象レコ−ドを含む前記記憶装置
    上の固定長ブロックが複数のキャッシュメモリに存在す
    ると判断された場合、前記キャッシュメモリのうちのい
    ずれか一つのキャッシュメモリを選択する選択手段と、 前記選択手段により選択されたキャッシュメモリから前
    記読出し対象レコ−ドを読出し、前記処理装置に転送す
    る手段と、 を備えることを特徴とするディスクキャッシュ制御装
    置。
  5. 【請求項5】 請求項1記載のディスクキャッシュ制御
    装置において、 前記チャネルコマンドがデ−タ更新要求のとき、前記判
    定手段により前記更新対象レコ−ドを含む前記記憶装置
    上の固定長ブロックが二つ以上のキャッシュメモリに存
    在すると判断された場合、前記更新対象レコ−ドを含む
    固定長ブロックが存在するキャッシュメモリの全ての前
    記更新対象レコ−ドを含む固定長ブロックに前記処理装
    置からの更新レコ−ドを格納する手段と前記更新レコ−
    ドを二つ以上のキャッシュメモリに格納した時点で、前
    記処理装置に前記チャネルコマンドの終了を報告する手
    段と、 を備えることを特徴とするディスクキャッシュ制御装
    置。
  6. 【請求項6】 請求項1、請求項3、請求項5のいずれ
    かの請求項記載のディスクキャッシュ制御装置におい
    て、 前記キャッシュメモリ上で前記更新レコ−ドを格納した
    固定長ブロック(更新ブロック)が連続しておらず、前
    記更新ブロックと更新ブロックの間に更新レコ−ドの格
    納されていない固定長ブロック(未更新ブロック)が存
    在するキャッシュメモリを検索する手段と、 前記検索手段により未更新ブロックが一つのキャッシュ
    メモリにのみ存在する場合、該一つのキャッシュメモリ
    以外の更新ブロックが存在するキャッシュメモリに前記
    一つのキャッシュメモリ上の未更新ブロックを複写する
    手段と、 を備えることを特徴とするディスクキャッシュ制御装
    置。
  7. 【請求項7】 請求項1、請求項3、請求項5のいずれ
    かの請求項記載のディスクキャッシュ制御装置におい
    て、 前記キャッシュメモリ上の前記更新レコ−ドを格納した
    固定長ブロックを前記記憶装置に格納する際、前記固定
    長ブロックが格納されているキャッシュメモリのうち、
    いずれか一つのキャッシュメモリを選択する選択手段
    と、 前記選択手段により選択したキャッシュメモリ上の前記
    更新レコ−ドを格納した固定長ブロックを前記記憶装置
    上に書き込む手段と、 前記選択手段により選択されなかったキャッシュメモリ
    により、前記処理装置からのデ−タ読出し要求を実行す
    る手段と、 を備えることを特徴とするディスクキャッシュ制御装
    置。
  8. 【請求項8】 請求項1記載のディスクキャッシュ制御
    装置において、前記キャッシュメモリを不揮発キャッシ
    ュメモリとしたことを特徴とするディスクキャッシュ制
    御装置。
JP35364892A 1992-12-14 1992-12-14 ディスクキャッシュ制御装置 Expired - Lifetime JP3422370B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP35364892A JP3422370B2 (ja) 1992-12-14 1992-12-14 ディスクキャッシュ制御装置
US08/165,989 US5568628A (en) 1992-12-14 1993-12-14 Storage control method and apparatus for highly reliable storage controller with multiple cache memories

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP35364892A JP3422370B2 (ja) 1992-12-14 1992-12-14 ディスクキャッシュ制御装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2003037601A Division JP3861061B2 (ja) 2003-02-17 2003-02-17 ディスクキャッシュ制御装置

Publications (2)

Publication Number Publication Date
JPH06180671A JPH06180671A (ja) 1994-06-28
JP3422370B2 true JP3422370B2 (ja) 2003-06-30

Family

ID=18432272

Family Applications (1)

Application Number Title Priority Date Filing Date
JP35364892A Expired - Lifetime JP3422370B2 (ja) 1992-12-14 1992-12-14 ディスクキャッシュ制御装置

Country Status (2)

Country Link
US (1) US5568628A (ja)
JP (1) JP3422370B2 (ja)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6728832B2 (en) 1990-02-26 2004-04-27 Hitachi, Ltd. Distribution of I/O requests across multiple disk units
US5680574A (en) * 1990-02-26 1997-10-21 Hitachi, Ltd. Data distribution utilizing a master disk unit for fetching and for writing to remaining disk units
US6101574A (en) * 1995-02-16 2000-08-08 Fujitsu Limited Disk control unit for holding track data in non-volatile cache memory
US6009498A (en) * 1995-02-16 1999-12-28 Fujitsu Limited Disk control unit for holding track data in cache memory
JP3239669B2 (ja) * 1995-02-20 2001-12-17 株式会社日立製作所 記憶制御装置及びその制御方法
JP3260999B2 (ja) * 1995-03-03 2002-02-25 富士通株式会社 ディスク制御装置の制御方法
JP3583829B2 (ja) * 1995-04-13 2004-11-04 株式会社日立製作所 外部記憶サブシステムの制御方法および制御装置
US6098128A (en) 1995-09-18 2000-08-01 Cyberstorage Systems Corporation Universal storage management system
US5805787A (en) * 1995-12-29 1998-09-08 Emc Corporation Disk based disk cache interfacing system and method
US5802557A (en) * 1996-03-18 1998-09-01 Emc Corp System and method for caching information in a digital data storage subsystem
US5860088A (en) * 1996-12-06 1999-01-12 International Business Machines Corporation Method for extraction of a variable length record from fixed length sectors on a disk drive
US5857213A (en) * 1996-12-06 1999-01-05 International Business Machines Corporation Method for extraction of a variable length record from fixed length sectors on a disk drive and for reblocking remaining records in a disk track
JP3671595B2 (ja) * 1997-04-01 2005-07-13 株式会社日立製作所 複合計算機システムおよび複合i/oシステム
JP3407628B2 (ja) * 1997-12-19 2003-05-19 株式会社日立製作所 計算機システム
US6098153A (en) * 1998-01-30 2000-08-01 International Business Machines Corporation Method and a system for determining an appropriate amount of data to cache
US6209070B1 (en) 1998-03-20 2001-03-27 International Business Machines Corporation System for multiple data transfer operations
JPH11327802A (ja) * 1998-05-18 1999-11-30 Hitachi Ltd ディスクシステム
JP3404289B2 (ja) * 1998-05-22 2003-05-06 富士通株式会社 ディスク制御装置及びその制御方法
US6865642B2 (en) 1998-06-24 2005-03-08 International Business Machines Corporation Method and apparatus for disk caching for an intermediary controller
US7562027B1 (en) * 1999-11-01 2009-07-14 Ita Software, Inc. Availability processing in a travel planning system
JP3800903B2 (ja) * 2000-02-17 2006-07-26 株式会社日立製作所 記憶装置及びそのアクセス制御方法
JP3951547B2 (ja) * 2000-03-24 2007-08-01 株式会社日立製作所 レプリケーションによるホスト間データ共有方式
US6715030B1 (en) * 2000-06-09 2004-03-30 Storage Technology Corporation Apparatus and method for storing track layout information for performing quick write operations
US6977927B1 (en) 2000-09-18 2005-12-20 Hewlett-Packard Development Company, L.P. Method and system of allocating storage resources in a storage area network
US7386610B1 (en) 2000-09-18 2008-06-10 Hewlett-Packard Development Company, L.P. Internet protocol data mirroring
US6804819B1 (en) 2000-09-18 2004-10-12 Hewlett-Packard Development Company, L.P. Method, system, and computer program product for a data propagation platform and applications of same
US6606690B2 (en) 2001-02-20 2003-08-12 Hewlett-Packard Development Company, L.P. System and method for accessing a storage area network as network attached storage
JP3886800B2 (ja) * 2001-12-19 2007-02-28 株式会社リコー データ管理情報取得方法、情報再生装置、並びにデータ管理情報取得プログラム及び記録媒体
JP4100913B2 (ja) * 2002-01-15 2008-06-11 株式会社リコー 情報再生装置、データ管理情報取得方法、データ管理情報取得プログラム、記憶媒体、及び再生システム
JP2004110503A (ja) * 2002-09-19 2004-04-08 Hitachi Ltd 記憶制御装置、記憶システム、記憶制御装置の制御方法、チャネル制御部、及びプログラム
JP4704660B2 (ja) 2002-12-18 2011-06-15 株式会社日立製作所 記憶デバイス制御装置の制御方法、記憶デバイス制御装置、及びプログラム
JP4400913B2 (ja) * 2003-11-26 2010-01-20 株式会社日立製作所 ディスクアレイ装置
US7620773B2 (en) * 2005-04-15 2009-11-17 Microsoft Corporation In-line non volatile memory disk read cache and write buffer
JP4620134B2 (ja) * 2008-01-30 2011-01-26 株式会社日立製作所 記憶デバイス制御装置の制御方法及び記憶デバイス制御装置
US7882202B2 (en) * 2008-04-01 2011-02-01 International Business Machines Corporation System to delegate virtual storage access method related file operations to a storage server using an in-band RPC mechanism
US8738880B2 (en) * 2010-08-17 2014-05-27 International Business Machines Corporation Throttling storage initialization for data destage
US8850114B2 (en) 2010-09-07 2014-09-30 Daniel L Rosenband Storage array controller for flash-based storage devices
JP6206138B2 (ja) * 2013-12-02 2017-10-04 富士通株式会社 ストレージ制御装置およびストレージ制御装置の制御プログラム
CN105446964B (zh) * 2014-05-30 2019-04-26 国际商业机器公司 用于文件的重复数据删除的方法及装置
JP7017602B2 (ja) * 2020-05-11 2022-02-08 株式会社日立製作所 計算機装置、計算機システム及びデータ移行方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4423479A (en) * 1980-11-14 1983-12-27 Sperry Corporation Cache/disk subsystem with acquire write command
US4875155A (en) * 1985-06-28 1989-10-17 International Business Machines Corporation Peripheral subsystem having read/write cache with record access
US4956803A (en) * 1987-07-02 1990-09-11 International Business Machines Corporation Sequentially processing data in a cached data storage system
US5235692A (en) * 1990-08-31 1993-08-10 International Business Machines Corporation Disk rotational position controls for channel operations in a cached peripheral subsystem
US5146576A (en) * 1990-08-31 1992-09-08 International Business Machines Corporation Managing high speed slow access channel to slow speed cyclic system data transfer
US5206939A (en) * 1990-09-24 1993-04-27 Emc Corporation System and method for disk mapping and data retrieval
US5257362A (en) * 1991-03-08 1993-10-26 International Business Machines Corporation Method and means for ensuring single pass small read/write access to variable length records stored on selected DASDs in a DASD array
US5283884A (en) * 1991-12-30 1994-02-01 International Business Machines Corporation CKD channel with predictive track table

Also Published As

Publication number Publication date
US5568628A (en) 1996-10-22
JPH06180671A (ja) 1994-06-28

Similar Documents

Publication Publication Date Title
JP3422370B2 (ja) ディスクキャッシュ制御装置
EP0538288B1 (en) Deleted data file space release system for a dynamically mapped virtual data storage subsystem
US6542960B1 (en) System and method for parity caching based on stripe locking in raid data storage
US8914597B2 (en) Data archiving using data compression of a flash copy
US7281089B2 (en) System and method for reorganizing data in a raid storage system
US5089958A (en) Fault tolerant computer backup system
US6470421B1 (en) Method and means for reducing device contention by random accessing and partial track staging of records according to a first DASD format but device mapped according to a second DASD format
US5881311A (en) Data storage subsystem with block based data management
JP2902970B2 (ja) ディスク・アレイにデータを書き込むためのシステムおよび関連する方法
US5619690A (en) Computer system including a computer which requests an access to a logical address in a secondary storage system with specification of a local address in the secondary storage system
US5283884A (en) CKD channel with predictive track table
US20020118582A1 (en) Log-structure array
JPH06332623A (ja) アレイ型記録装置及び記録装置
WO1993023803A1 (fr) Appareil de commande pour pile de disques
US6101574A (en) Disk control unit for holding track data in non-volatile cache memory
JPH08161124A (ja) 計算機システム
US5671390A (en) Log structured array storage subsystem using LSA directory and LSA sub-directory stored in different storage media
JPH10105344A (ja) データ記録装置システム及びそのデータ書込方法
US20040260869A1 (en) Method, system, and program for managing a relationship between one target volume and one source volume
US5337197A (en) Method and system for maintaining directory consistency in magneto-optic media
US7047378B2 (en) Method, system, and program for managing information on relationships between target volumes and source volumes when performing adding, withdrawing, and disaster recovery operations for the relationships
JP2022152549A (ja) ストレージシステム及びストレージシステムの制御方法
JPH07152498A (ja) 情報処理システム
JP3260998B2 (ja) ディスク制御装置
JP3861061B2 (ja) ディスクキャッシュ制御装置

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20010731

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090425

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090425

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100425

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110425

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120425

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120425

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130425

Year of fee payment: 10

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130425

Year of fee payment: 10