JPH0833864B2 - データ保全方式 - Google Patents

データ保全方式

Info

Publication number
JPH0833864B2
JPH0833864B2 JP2018075A JP1807590A JPH0833864B2 JP H0833864 B2 JPH0833864 B2 JP H0833864B2 JP 2018075 A JP2018075 A JP 2018075A JP 1807590 A JP1807590 A JP 1807590A JP H0833864 B2 JPH0833864 B2 JP H0833864B2
Authority
JP
Japan
Prior art keywords
data
record
directory
information
write
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 - Fee Related
Application number
JP2018075A
Other languages
English (en)
Other versions
JPH03224045A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2018075A priority Critical patent/JPH0833864B2/ja
Publication of JPH03224045A publication Critical patent/JPH03224045A/ja
Priority to US08/553,822 priority patent/US5590298A/en
Publication of JPH0833864B2 publication Critical patent/JPH0833864B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata

Description

【発明の詳細な説明】 〔概要〕 ディスクキャッシュシステムにおける書込みデータを
保全するデータ保全方式に関し、 キャッシュ及び不揮発性メモリに書き込まれるデータ
の有効性を詳細に判定して、ライトバックされるデータ
を正確に保全することを目的とし、 不揮発性メモリ上に中央処理装置からの書込みデータ
を蓄え、適当なタイミングでこの書込みデータを外部記
憶装置に転送して書き込むことにより中央処理装置と外
部記憶装置間の高速書込みを行う外部記憶制御システム
のデータを保全するデータ保全方式において、不揮発性
メモリ上に設けられたディレクトリ中に、処理単位毎の
処理情報としてのディレクトリ情報を格納し、同じく不
揮発性メモリ上にレコード形式で書き込まれた中央処理
装置からのデータ中に、レコードの各フィールドの状態
情報としてのレコード情報を埋め込み、前記ディレクト
リ情報及びレコード情報に基づいてデータの有効性を判
定して外部記憶装置に対するライトバックを行うように
構成する。
〔産業上の利用分野〕
本発明は、ディスクキャッシュシステムにおけるライ
トデータのデータ保全機構、特に、不揮発性メモリ上に
中央処理装置(以下、CPUで示す)からの書込みデータ
を蓄え、適当なタイミングでこの書込みデータを外部記
憶装置に転送して書き込むことによりCPUと外部記憶装
置間の高速書込みを行うシステムのデータ保全機構に関
する。
〔従来の技術〕
ディスクキャッシュシステムでは、CPUと外部記憶装
置との間に外部記憶装置よりも高速低容量のキャッシュ
メモリを設け、読出し時は外部記憶装置からの読出しデ
ータをキャッシュメモリに一時蓄え、CPUは適当なタイ
ミング(例えば、他の処理がないとき)でこのキャッシ
ュメモリ上のデータを読み出す。また、書込み時は書込
みデータをキャッシュメモリに一時蓄え、適当なタイミ
ングでこの書込みデータを外部記憶装置に転送して書き
込むようにする。これにより、CPUは外部記憶装置との
処理速度差や外部記憶装置の現在の動作状態を意識する
ことなく、通常のメモリに対するのと同様にして外部記
憶装置に対する書込み及び読出しを高速に行うことがで
きる。
特に、外部記憶装置が磁気ディスク装置である場合
は、磁気ディスクの回転待ち等があってアクセスに時間
が掛かるが、ディスクキャッシュシステムを採用するこ
とにより、このような不都合を解消することができる。
このディスクキャッシュシステムにおいては、外部記
憶装置からのデータ読出し時にエラーや電源ダウン等に
より読出しに失敗しても、必要に応じて外部記憶装置を
直接アクセスして所望データを読み出すことが可能であ
るので、データが消失するという不都合は生じない。
しかしながら、データ書込みの場合は、キャッシュメ
モリ上のデータを外部記憶装置に書込みを行っていると
きに電源ダウンや瞬断あるいはエラー等が発生してデー
タ書込みに失敗すると、CPUはデータ書込み処理を一度
正常に終了した後は書込みデータをパージしているの
で、書込みデータが消失するという問題が生じる。
データ書込み時に生じるこのようなデータ消失という
危険を防止してデータを保全するために、キャッシュメ
モリに書き込まれたデータが電源ダウン等によって消失
しないように、キャッシュメモリをバッテリバックアッ
プする方式が考えられた。しかしながら、このキャッシ
ュメモリ全体をバッテリバックアップするデータ保全方
式は、大型システムのようにキャッシュメモリの容量が
数百メガバイトの大容量のものになると、バックアップ
用のバッテリが大容量となるので実際に実施することは
困難である。
この問題に対処するために、キャッシュメモリとは別
にそれよりも小容量のバッテリバックアップされた不揮
発性メモリを設け、書込みデータをキャッシュメモリと
ともにこの不揮発性メモリに蓄え、かつ、不揮発性メモ
リに書込みデータの管理情報を書き込むようにしたデー
タ保全方式が提案されている(例えば、特開昭63−2570
4号公報参照)。
このようにすることにより、キャッシュメモリが大容
量になっても、小容量の不揮発性メモリ及び小型のバッ
クアップ用バッテリにより、書込みデータを確実にデー
タ保全することが可能となった。
〔発明が解決しようとする課題〕
ディスクキャッシュシステムにおけるデータ保全方式
として、前述のキャッシュメモリとは別個に設けた小容
量の不揮発性メモリに書込みデータを蓄える方式は、キ
ャッシュメモリ上のデータを外部記憶装置に書込みを行
っているときに電源ダウン等により書込みデータが消失
するのを防止して書込みデータを保全することが可能で
ある。
しかしながら、この従来のデータ保全方式も、不揮発
性メモリにデータ書込み中にデータエラーや瞬断等によ
り書込みデータ障害が発生した場合には、それらの障害
状態が管理されていないために、障害のあるデータをラ
イトバックしてしまうという不都合があった。
本発明は、キャッシュメモリ上すなわち不揮発性メモ
リのデータを外部記憶装置に書込みを行っているときは
もちろん、不揮発性メモリにデータ書込み中にデータエ
ラーや瞬断等により書込みデータ障害が発生した場合に
も、障害が発生したか否かを容易に判定でき、また、書
込みデータの有効性を詳細に判定して、ライトバック時
のデータを正確に保全できるように改良したデータ保全
方式を提供することを目的とする。
〔課題を解決するための手段〕
前述の課題を解決するために本発明が採用した手段
を、第1図を参照して説明する。第1図は、本発明の実
施システムの構成をブロック図で示したものである。
第1図において、11はCPUであり、所望の外部記憶装
置に対する入出力命令を起動し、所定の外部記憶装置に
対する書込み/読込み用のデータを転送する処理を行
う。
12は磁気ディスク装置等の外部記憶装置であり、書込
み/読込み等の対象となるデータ及びそれらの管理情報
が格納される。
13はバッテリ14でバックアップされた不揮発性メモリ
であり、キャッシュメモリに書き込まれるデータが並行
して蓄えられるとともに、本発明のディレクトリ情報及
びレコード情報が格納される。131はディレクトリ情報
が格納されるディレクトリであり、132は書込みデータ
とともにレコード情報が格納されるデータ域である。デ
ータ域132は、通常ブロック単位に複数箇所に存在す
る。133はレコードディスクリプタであり、不揮発性メ
モリ13上にレコード形式で書き込まれたCPU11からのデ
ータのレコード情報が書き込まれる。
15はキャッシュメモリであり、外部記憶装置12に対す
る書込み/読込みデータが一時格納される。
16はディスクコントローラ(以下、DKCで示す)であ
り、上位のCPU11からの入出力命令の起動を受けて、デ
ィスクキャッシュ方式によってキャッシュメモリ15に書
込み/読込みデータを一時格納する処理、書込みデータ
を不揮発性メモリ13にも書き込むとともにそのディレク
トリ情報及びレコード情報を書き込む処理、外部記憶装
置12とキャッシュメモリ15との間のデータ転送処理等の
動作を制御する。
本発明は以上説明した外部記憶制御システムによって
実施されるものであって、以下のように構成される。
すなわち、不揮発性メモリ13上に中央処理装置11から
の書込みデータを蓄え、適当なタイミングでこの書込み
データを外部記憶装置12に転送して書き込むことにより
中央処理装置11と外部記憶装置12間の高速書込みを行う
外部記憶制御システムのデータを保全するデータ保全方
式において、 (a)不揮発性メモリ13上に設けられたディレクトリ13
1中に、処理単位毎の処理情報として、 ディレクトリ更新のシーケンスナンバ、 所定外部記憶装置のトラックアドレス、 メモリアドレス、 をディレクトリ情報として格納し、 (b)不揮発性メモリ13上にレコード形式て書き込まれ
た中央処理装置からのデータ中に、レコードの各フィー
ルドの状態情報として、 レコードが更新中か更新済かを表示するレコード更
新フラグ、 レコード形式を規定するフォーマットライトの有無
を表示するフォーマットライトフラグ、 レコード書込み処理の一時終了を表示する一時終了
フラグ、 をレコード情報として埋め込み、 (c)前記ディレクトリ情報及びレコード情報に基づい
てデータの有効性を判定して外部記憶装置12に対するラ
イトバックを行う、ように構成される。
また第2の発明においては、不揮発性メモリ(13)上
にディレクトリ情報のコピーを設け、ディレクトリ情報
とその更新ディレクトリ情報並びにそれらのコピーディ
レクトリ情報にそれぞれ識別可能なシーケンスナンバを
付するようにする。
〔作用〕
CPU11よりデータの書込みがあると、DKC16は、書込み
データをキャッシュメモリ14とともに不揮発性メモリ13
にデータを並列して蓄え、それとともに、この書込みデ
ータを管理するディレクトリ情報をディレクトリ領域13
1に書き込み、更にそのレコード情報をデータ域132に書
き込まれた書込みデータ中のレコードディスクリプタ13
3中に書き込む。
ディレクトリ情報として、処理単位(例えば、トラッ
ク単位)毎に下記の諸情報がディレクトリ131に書き込
まれる。
ディレクトリ更新のシーケンスナンバ、 所定外部記憶装置のトラックアドレス、 メモリアドレス、 また、データ域132の書込みデータ中にレコードのフ
ィールドの状態を示す下記の諸情報が、レコードディス
クリプタ133に書き込まれる。
レコードが更新中か更新済かを表示するレコード更
新フラグ、 フォーマットライトの有無を表示するフォーマット
ライトフラグ、 レコード書込み処理の一時終了を表示する一時終了
フラグ。
これらのディレクトリ情報及びレコード情報を書き込
むことにより、キャッシュメモリ15及び不揮発性メモリ
13に書込みデータ書込み中に電源の瞬断やエラー等によ
りデータ障害が発生しても、ディレクトリ情報の正当性
及び書込みデータのレコードの各フィールド毎の有効性
の有無を確実に識別することが可能となり、障害のない
データを確実に保全することができる。なお、ディレク
トリ情報及びレコード情報を書き込み処理及びこれらの
情報によって書込みデータに関してどのような情報が得
られるかについては、実施例の項で詳述する。
以上のようにして、キャッシュメモリ15及び不揮発性
メモリ13に対する書込みデータ及び必要な各管理情報の
書込みが終了すると、DKC16は、適当なタイミング(例
えば、他の処理がないとき)でこの不揮発性メモリ13に
蓄えられた書込みデータを外部記憶装置12に転送して所
定の位置に格納する。
以上のように、キャッシュメモリ15に書き込まれるデ
ータを不揮発性メモリ13にも書き込むとともに、この書
込みデータの処理単位毎の制御情報であるディレクトリ
情報とCPUデータの処理情報であるレコード情報を不揮
発性メモリ13に書き込むようにしたので、キャッシュメ
モリ15及び不揮発性メモリ13に書き込まれるデータの有
効性を、可変長データ形式の場合も含めて正確に判定す
ることができる。これにより、不揮発性メモリ13上のデ
ータを外部記憶装置に書込みを行っているときはもちろ
ん、不揮発性メモリにデータ書込み中にエラーや電源障
害等により書込みデータに障害や中断が発生した場合に
も、データの有効性を詳細に判定してライトバック時の
データを正確に保全し、有効でないデータがライトバッ
クされるのを未然に防止することができる。
またディレクトリ情報は、不発性メモリ13に書込みデ
ータが終了すると、また書込みデータの追加等によるデ
ィレクトリ情報が更新されて不揮発性メモリ13に書込み
データの追加書込み等が終了すると、ディレクトリ情報
をコピーする。その際、コピーしたディレクトリ情報と
コピー元のディレクトリ情報のシーケンスナンバをそれ
ぞれ識別可能なナンバを付ける。
このように識別可能なシーケンスナンバをそれぞれの
ディレクトリ情報に付けるようにしたので、不揮発性メ
モリに記録されているディレクトリ情報およびレコード
情報に記録されている各記録を調べることなく、シーケ
ンスナンバを調べることによって記録が正常に行われて
いるか否かを容易に判定することができる。
〔実施例〕
本発明の一実施例を、第1図乃至第5図を参照して説
明する。第1図の外部記憶制御システムは、本発明の一
実施例の実施システムとしても使用れる。第2図は外部
記録装置のトラックフォーマットの説明図、第3図は本
発明の一実施例に使用される不揮発性メモリ上のディレ
クトリの説明図、第4図は同実施例に使用される不揮発
性メモリ上のデータフォーマットとレコードディスクリ
プタのフラグの説明図、第5図は同実施例のデータ書込
み動作説明図である。
キャッシュメモリ15を使用する外部記憶装置12のデー
タの読込み処理動作は従来方式と同様であるので、以
下、データの書込み動作の場合を中心に、外部記憶装置
12が磁気デスク装置等のDASD(外部記憶装置と同じ符号
12で示す)であり、CPUデータの処理単位がDASD12のト
ラック単位である場合を例にとって説明する。
(A)実施システムの構成 第1図の全体の構成については、既に説明したので、
以下その内部の各構成について説明する。
第2図は、DASD12にデータを書き込む場合のトラック
フォーマットを示したものである。トラックフォーマッ
トは、インデックスで始まりインデックスで終わる。
HAはホームアドレスであり、トラックの物理的位置及
びトラックの正常、異常等の状態を示す。R0はホームア
ドレスHAに続く最初のレコードであり、このトラックが
不良のときに交代トラックの指示に使用される。
R0に続くR1〜RNは、データが書き込まれる各レコード
であり、各レコードは、レコードR1に下側に拡大して示
すように、カウント領域C、キー領域K及びデータ領域
Dの3領域で構成される。
カウント領域Cには、トラック内のレコードの番号、
キー長及びデータ長が書き込まれ、これよりレコードの
大きさを知ることができる。キー領域Kには、レコード
をサーチする場合の指標となるデータが書き込まれる。
データ領域Dには、カウント領域C及びキー領域Kで
定められたデータ情報を含め、ユーザのデータがセル
(32バイト)単位で書き込まれる。
レコードR1〜RNの数は可変であるので、このトラック
フォーマットに書き込まれるデータは可変長データであ
る。
第3図は、不揮発性メモリ13内のディレクトリ131の
構成を示したものである。シーケンスナンバ域には、そ
のディレクトリ更新のシーケンスナンバが書き込まれ
る。ディレクトリ情報が更新される毎にシーケンスナン
バも更新される。ディレクトリ131は、ディレクトリ情
報の保全とその状態管理のためにコピー(第1図に図示
せず)を有しており、ディレクトリとその更新ディレク
トリ並びにそれらのコピーディレクトリにそれぞれ識別
可能なシーケンスナンバが付される。この実施例では、
ディレクトリのコピーには、1、3、5、…、N等の奇
数ナンバが付され、コピー元のディレクトリには、2、
4、6、…、N+1等の偶数ナンバが付されるものとす
る。なお、このシーケンスナンバの機能及び効果につい
ては、次の動作説明の項で説明する。
トラックアドレス域には、DASDのデバイス機番、ヘッ
ドの実DASD上のアドレスを示すシリンダ番号、トラック
アドレスが書き込まれる。
スタート/エンド域には、不揮発性メモリ13上のメモ
リアドレスとして、データを格納したレコードのスター
ト位置s及びエンド位置eの2組が書き込まれる。な
お、2組のスタート/エンドs1、e1及びs2、e2の機能及
び効果については、次の動作説明の項で説明する。
ブロックアドレス域には、不揮発性メモリ13上のメモ
リアドレスとして、データの格納されるブロックのアド
レスが書き込まれる。トラック内の各データは複数ブロ
ックに区分され、各ブロックはメモリの使用効率を高め
るためにメモリ内に分散して配置されるが、説明を簡単
にするため、論理的に一個のブロックであるとする。
残りの領域には、その他の制御情報が書き込まれる。
これらディレクトリ情報が、各トラック毎に書き込ま
れ、左端の000、001等は、ディレクトリのエントリ番号
を示す。
第4図は、不揮発性メモリ13上に書き込まれるデータ
のフォーマットを示したもので、レコードR1及びレコー
ドR2のデータが例示されている。カウント領域C1、キー
領域K1及びデータ領域D1はレコードR1のデータを示し、
カウント領域C2、キー領域K2及びデータ領域D2はレコー
ドR2のデータを示す。各領域間には、DASD12のトラック
フォーマットのようなギャップは存在しない。
RD(RD1、RD2等)はレコードディスクリプタ133であ
り、2バイトからなり、カウント領域Cの後に設けられ
て図示のようなレコード情報が書き込まれる。
すなわち、ネクストカウント・イン・プログレスフラ
グは、次のレコードのカウント領域Cが更新中であると
き1がセットされる。キー・イン・プログレスフラグ
は、キー領域Kが更新中であるとき1がセットされる。
データ・イン・プログレスフラグは、データ領域Dが更
新中であるとき1にセットされる。
ネクストカウント・アプデーテドフラグは、次のレコ
ードのカウント領域Cが更新済であるとき1がセットさ
れる。キー・アプデーテドフラグは、キー領域Kが更新
済であるとき1がセットされる。データ・アプデーテド
フラグは、データ領域Dが更新済であるとき1がセット
される。
フォーマットライトは、データフォーマトが更新され
たか否かを示すフラグで、ライトCKDのコマンドのよう
にフォーマットが新しく書替えされたときに1がセット
される。
エンド・プロセスは処理の一時終了を示すフラグであ
り、データの書込み処理が一時終了したときにフラグ1
がセットされる。
レコード情報として、この実施例では更に「イレー
ズ」が設けられる。イレーズフラグはCPU11からイレー
ズ・コマンドが発行されたときに1がセットされ、その
レコードを含めてトラックの残り部分が消去されたこと
を示す。
(B)実施例の動作 実施例の書込み動作を、一般的な書込み動作であるラ
イトCKDによる書込み動作を例にとり、第2図〜第5図
を参照してその処理シーケンスに従って説明する。な
お、以下の各処理は、特に指示しない限りDKC16によっ
て行われるものである。また、データの不揮発性メモリ
13への書込みはキャッシュメモリ15への書込みと並行し
て行われるが、キャッシュメモリ15に対する書込みは従
来方式と同様にして行われるので、その書込み動作に対
する説明は省略する。
また、ディレクトリのエントリナンバと、トラックア
ドレスは便宜上同一とし000とする。
ディレクトリの初期化 不揮発性メモリ13を使用する場合、不揮発性メモリ13
上に当該トラックの有効データが無いときは、ディレク
トリ131のシーケンスナンバ、トラックアドレス及びス
タート/エンド位置に無効のパターンを書き込んで、デ
ィレクトリ131を初期化する。
ディレクトリ131の初期化が終了した後に、以下のCPU
データの書込み処理が行われる。
CPU11からのデータをDASD12に書き込む場合は、レ
コードの位置付けをキャッシュメモリ15上で行って、書
込みデータが格納されるレコード位置を検出する。位置
付けレコードはR0であるとする。
データの書込みはレコードの内部を更新する形で行
われ、そのために、先ずキャッシュメモリ15上の位置付
けレコードR0のカウント領域C0すなわちカウント部のデ
ータを不揮発性メモリ13のデータ域132にコピーされる
(第5図(a))。
CPU11から発行された書込みコマンドがトラックフ
ォーマットを変更するライトCKDのときは、位置付けレ
コードROの次に書き込まれるデータのレコード(R1とす
る)が追加される。
また、ディレクトリ131の当該トラックのエントリ(0
00とする)のシーケンスナンバ域にシーケンスナンバ
(SC1とする)が書き込まれる。
レコードR1のデータとして、先ずそのカウント部の
データが書き込まれるので、位置付けレコードR0のカウ
ント領域C0のレコードディスクリプタRD0にネクストカ
ウント・イン・プログレスフラグが1にセットされる
(第5図(b))。
これにより、次のレコードR1のカウント部が更新中で
あることが示される。
ディレクトリ131のスタート/エンド域に、スター
ト位置として、位置付けレコードR1のメモリアドレス位
置(s1とする)をセットする。
カウント部の更新データが、レコードR1のカウント
領域C1に書き込まれる。それとともに、レコードR1のレ
コードディスクリプタRD1のキー・イン・プログレスフ
ラグを1にセットする。
カウント領域C1に対する書込みが終わると、位置付
けレコードR0のレコードディスクリプタRD0のネクスト
カウント・イン・プログレスフラグを0にリセットし、
代わりに、そのレコードディスクリプタRD0にネクスト
カウント・アプデーテドフラグを1にセットする(第5
図(C))。これにより、次のレコードR1のカウント部
が更新済であることが示される。
このように、レコードR1のカウント部を更新中はその
前のレコードR0のレコードディスクリプタRD0にネクス
トカウント・イン・プログレスフラグを1にセットし、
レコードR1のカウント部の更新処理が終了したときに、
ネクストカウント・イン・プログレスフラグをリセット
し、ネクストカウント・アプデーテドフラグを1にセッ
トするようにしたので、ネクストカウント・イン・プロ
グレスフラグが1で、ネクストカウント・アプデーテド
フラグが0のときは、レコードR1のカウント部の更新中
に何らかの原因で処理が中断したことが検出できる。ま
た、ネクストカウント・アプデーテドフラグが1のとき
は、レコードR1のカウント部の更新処理が正常に終了し
たことが検出される。これらのことは、次に説明するキ
ー部及びデータ部の更新処理についても同様である。
レコードR1のカウント領域C1への書込みが終了する
と、レコードR1のキー領域K1にキーデータが書き込まれ
て、キー部が更新される。
キー領域K1に対するキーデータの書込みが終了した
ときは、レコードR1はレコードディスクリプタRD1にお
いて、そのキー・イン・プログレスフラグを0にリセッ
トし、代わりにキー・アプデーテドフラグを1にセット
するとともに、データ・イン・プログレスを1にセット
する。これにより、レコードR1のキー部の更新処理が正
常に終了したことが示される。
レコードR1のキー領域K1への書込みが終了すると、
レコードR1のデータ領域D1にデータが書き込まれて、デ
ータ部が更新される。
データ領域D1に対するデータの書込みか終了したと
きは、レコードR1のレコードディスクリプタRD1のデー
タ・イン・プログレスフラグを0にリセットするととも
に、同レコードディスクリプタRD1のエンド・プロセス
フラグを1にセットする(第5図(d))。
更に、ディレクトリ131のスタート/エンド域にエン
ド位置(e1とする)をセットする。これにより、レコー
ドR1のデータ部の更新処理及びレコードR1の更新処理が
正常に終了したことが示される。
書込みされるレコードが複数あるときは、CPU11よ
りライトCKDコマンドが発行される。このライトCKDを受
けると、レコードR1のレコードディスクリプタRD1のエ
ンド・プロセスフラグを0にリセットした後に続いて前
述ので書き込んだレコードR1のカウント部のレコード
ディスクリプタRD1を位置付けレコードとし、前述の
〜の各処理を繰り返すことにより、レコードR1に続い
てレコードR2のレコードの書込み処理が実行される。以
下これをくりかえす。
当該トラックに対するレコードの書込みがすべて終
了したときは、最終レコードのレコードディスクリプタ
のRDエンド・プロセスフラグが1にセットされる。
更に、ディレクトリ131のスタート/エンド位置を
更新する処理が行われる。いま、レコードR1の次にレコ
ードR2が書き込まれるとすると、レコードR2の書込み処
理中は、ディレクトリ131のスタート/エンド域には、
その前のレコードR1のスタート/エンド位置を示すs1
e1と今回のレコードR2のスタート位置s2がセットされ
る。レコードR2の書込み処理が正常に終了したときは、
第5図(e)に示すように、レコードR1及びR2のスター
ト/エンド位置s1/e1及びs2/e2の両者がセットされた
状態になる。
スタート/エンド位置は、正常に書き込まれたデータ
のメモリアドレスを示すものであるので、レコードR1及
びR2の書込みが正常に終了したときは、レコードR1のエ
ンド位置e1及びレコードR2のスタート位置s2は不要であ
る。
そこで、レコードR2の書込み処理が正常に終了したと
きは、レコードR1及びR2の個々のスタート/エンド位置
s1/e1及びs2/e2の両者を、第5図(f)に示すよう
に、レコードR1及びR2全体のスタート/エンド位置を示
すs1/e2で以前のs1/e1を更新する処理が行われる。以
下同様にして、ライトCKDにより新たなレコードの書込
み処理が終了する毎に、ディレクトリ131のスタート/
エンド位置を更新する処理が行われる。
このようにレコードの書込み処理とともにディレクト
リ131のスタート/エンド位置の更新を行うことによ
り、複数のレコードの書込み処理中に処理が中断して
も、書込み処理が正常に終了したレコード部分の検出が
可能となるとともに、中断したレコード位置が確定でき
るので、誤ったライトバックが行われるのを未然に防止
することができる。
例えば、スタート/エンド位置にs1/e2がセットされ
ているとは、レコードR1及びR2の書込み処理が正常に終
了しているので両レコードデータは有効と判定される。
もし、スタート/エンド位置にs1/e1及びs2がセットさ
れているが、レコードR2のエンド位置を示すe2がセット
されていないときは、レコードR2の書込み処理中に処理
が中断したことが検出され、レコードR1は有効である
が、レコードR2及びそれ以降のレコードは有効でないと
判断される。
ディレクトリ131における当該トラックのエントリ
(000)のディレクトリ情報の更新処理がすべて終了す
ると、エントリ(000)のディレクトリ情報がコピーの
ディレクトリ(図示せず)にコピーされる。
その際、コピーディレクトリのエントリ(000)のシ
ーケンスナンバは、コピー元のディレクトリのシーケン
スナンバSC1よりも1多い奇数SC2にセットされる。
したがって、コピー元のディレクトリのシーケンスナ
ンバとコピーディレクトリのシーケンスナンバを比較す
ることによって不揮発性メモリ13への書込みが正常に終
了したか否かを容易に判断することができる。
次に、前述の各レコードR1、R2等が書き込まれたト
ラックに対し、別のデータを書き込んでそれらの内容を
更新する処理を行うときは、前述の〜の処理が繰り
返されて、当該トラックのエントリ(000)に対する新
たなデータの書込み処理が実行される。
その場合、ディレクトリ131のシーケンスナンバは
前回のシーケンスナンバSC1よりも大きい次の偶数(SC3
とする)に更新される。
トラック000に対するデータの更新処理及びディレ
クトリ131の更新処理が終了すると、ディレクトリ情報
が図示しないコピーディレクトリにコピーされるととも
に、コピーディレクトリのトラック000のシーケンスナ
ンバが、元トラックのシーケンスナンバSC3よりも1多
い奇数(SC4とする)に更新される。
このように、ディレクトリ情報とコピーディレクトリ
情報にそれぞれ識別可能なシーケンスナンバを付するよ
うにすることにより、ディレクトリ更新中の異常中断を
検出することにより、当該トラックに対するディレクト
リの更新処理が正常に行われたか否かを検出することが
可能となり、誤ったディレクトリによるライトバックが
行われるのを未然に防止することができる。
例えば、コピー元のディレクトリのシーケンスナンバ
がSC3でそのコピーディレクトリのシーケンスナンバがS
C2(コピーディレクトリのシーケンスナンバが若番)の
ときは、シーケンスナンバSC4のディレクトリデータ更
新中に処理が中断したことが検出され、コピーディレク
トリのデータは有効でないと判定される。一方、コピー
ディレクトリのシーケンスナンバがSC4で(コピーディ
レクトリのシーケンスナンバが老番)あるときは、ディ
レクトリの更新処理が正常に終了したことが検出され、
そのディレクトリのデータは有効と判定される。
以上のようにして、キャッシュメモリ15及び不揮発
性メモリ13に対する所定のデータの書込み処理が終了す
ると、DKC16は他の処理がない適当なタイミングで、不
揮発性メモリ13に書き込まれたデータを、DASD12に転送
し、ディレクトリ131の指示する所定のアドレス位置に
ライトバックする。
そのライトバックに際しては、ディレクトリ及びその
コピーディレクトリの各シーケンスナンバの大小関係を
比較することにより、前述のように当該トラックのデー
タの全体の有効性が判定される。
トラック処理が中断されているときは、ディレクトリ
上のs1/e1とs2により、前述のように、どのレコードか
ら中断した処理が開始されているかを判定することがで
きる。従って各レコードディスクリプタを順次調べるこ
とによって、中断レコードを知ることができる。また、
有効でないレコードについても、そのカウント部のレコ
ードディスクリプタの各イン・プログレスフラグ及びア
プデーテドフラグを見ることにより、前述のように、レ
コード中のカウント、キー及びデータのいずれかの部分
まで有効であるかを判定することができる。
以上のようにして、不揮発性メモリ13上のデータの有
効性を正確に判定して、有効なデータのみをDASD12にラ
イトバックすることができる。
以上本発明の一実施例について説明したが、本発明は
この実施例に限定される物ではなく、そのディレクトリ
情報及びレコード情報として実施例に示した各情報以外
の各種情報を含ませることができるものである。
〔発明の効果〕
以上説明したように、本発明によれば次の諸効果が得
られる。
(1)キャッシュメモリ15に書き込まれるデータを不揮
発性メモリ13にも書き込むとともに、この書込みデータ
の処理単位毎の制御情報であるディレクトリ情報とCPU
データの処理情報であるレコード情報を不揮発性メモリ
13に書き込むようにしたので、キャッシュメモリ15及び
不揮発性メモリ13に書き込まれたデータの有効性を、可
変長データ形式の場合も含めて正確に判定することがで
きる。
(2)ディレクトリ情報にシーケンスナンバを付け、デ
ィレクトリが更新される場合はシーケンスナンバも更新
し、不揮発性メモリへのデータの記録が正常に終了した
場合はディレクトリまたは更新ディレクトリをコピー
し、その際それぞれ識別可能なシーケンスナンバを付す
ようにしたので、不揮発性メモリより外部記憶装置にデ
ータの書込みを行うとき、コピーディレクトリおよびコ
ピー元のディレクトリのシーケンスナンバを比較するこ
とによって不揮発性メモリへのデータの記録が正常に記
録されたか否かを容易に判断することができる。
【図面の簡単な説明】
第1図は本発明の実施システムの説明図、 第2図は外部記憶装置のトラックフォーマットの説明
図、 第3図は本発明の一実施例に使用される不揮発性メモリ
上のディレクトリの説明図、 第4図は同実施例に使用される不揮発性メモリ上のデー
タフォーマットと、レコードディスクリプタのフラグの
説明図、 第5図は同実施例のデータ書込み動作説明図である。 第1図において、 11…中央処理装置(CPU)、12…外部記憶装置、磁気デ
ィスク(DASD)、13…不揮発性メモリ、131…ディレク
トリ、132…データ域、133…レコードディスクリプタ、
14…バッテリ、15…キャッシュメモリ、16…ディスクコ
ントローラ(DKC)。

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】不揮発性メモリ(13)上に中央処理装置
    (11)からの書込みデータを蓄え、適当なタイミングで
    この書込みデータを外部記憶装置(12)に転送して書き
    込むことにより中央処理装置(11)と外部記憶装置(1
    2)間の高速書込みを行う外部記憶制御装置システムの
    データを保全する保全方式において、 (a)不揮発性メモリ(13)上に設けられたディレクト
    リ(131)中に、処理単位毎の処理情報として、 ディレクトリ更新のシーケンスナンバ、 所定外部記憶装置のトラックアドレス、 メモリアドレス、 をディレクトリ情報として格納し、 (b)不揮発性メモリ(13)上にレコード形式で書き込
    まれた中央処理装置(11)からのデータ中に、レコード
    の各フィールドの状態情報として、 レコードが更新中か更新済かを表示するレコード更
    新フラグ、 レコード形式を規定するフォーマットライトの有無
    を表示するフォーマットライトフラグ、 レコード書込み処理の一時終了を表示する一時終了
    フラグ、 をレコード情報として埋め込み、 (c)前記ディレクトリ情報及びレコード情報に基づい
    てデータの有効性を判定して外部記憶装置(12)に対す
    るライトバックを行う、 ことを特徴とするデータ保全方式。
  2. 【請求項2】不揮発性メモリ(13)上にディレクトリ情
    報のコピーを設け、ディレクトリ情報とその更新ディレ
    クトリ情報並びにそれらのコピーディレクトリ情報にそ
    れぞれ識別可能なシーケンスナンバを付するようにした
    ことを特徴とする請求項1記載のデータ保全方式。
JP2018075A 1990-01-30 1990-01-30 データ保全方式 Expired - Fee Related JPH0833864B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018075A JPH0833864B2 (ja) 1990-01-30 1990-01-30 データ保全方式
US08/553,822 US5590298A (en) 1990-01-30 1995-11-06 Method of restoring and updating records in a disk cache system during disk drive idle time using start and end addresses

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018075A JPH0833864B2 (ja) 1990-01-30 1990-01-30 データ保全方式

Publications (2)

Publication Number Publication Date
JPH03224045A JPH03224045A (ja) 1991-10-03
JPH0833864B2 true JPH0833864B2 (ja) 1996-03-29

Family

ID=11961539

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018075A Expired - Fee Related JPH0833864B2 (ja) 1990-01-30 1990-01-30 データ保全方式

Country Status (2)

Country Link
US (1) US5590298A (ja)
JP (1) JPH0833864B2 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2743606B2 (ja) * 1991-04-11 1998-04-22 三菱電機株式会社 アレイ型記録装置
US5551033A (en) * 1991-05-17 1996-08-27 Zenith Data Systems Corporation Apparatus for maintaining one interrupt mask register in conformity with another in a manner invisible to an executing program
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
JP3260999B2 (ja) * 1995-03-03 2002-02-25 富士通株式会社 ディスク制御装置の制御方法
JP3597247B2 (ja) * 1995-03-15 2004-12-02 富士通株式会社 可換媒体型記憶装置及び光ディスク装置及びデータ転送制御方法
US5774643A (en) * 1995-10-13 1998-06-30 Digital Equipment Corporation Enhanced raid write hole protection and recovery
US5996088A (en) * 1997-01-22 1999-11-30 Oracle Corporation High-speed database checkpointing through sequential I/O to disk
CN1281560A (zh) 1997-10-08 2001-01-24 西加特技术有限责任公司 混合数据存储和重建系统以及用于数据存储装置的方法
US6957302B2 (en) * 2001-09-20 2005-10-18 Hewlett-Packard Development Company, L.P. System and method for performing write operations in a disk drive using a write stack drive
US6938184B2 (en) * 2002-10-17 2005-08-30 Spinnaker Networks, Inc. Method and system for providing persistent storage of user data
US6925523B2 (en) * 2003-03-03 2005-08-02 Agilent Technologies, Inc. Managing monotonically increasing counter values to minimize impact on non-volatile storage
US7137033B2 (en) * 2003-11-20 2006-11-14 International Business Machines Corporation Method, system, and program for synchronizing subtasks using sequence numbers
US7966450B2 (en) * 2005-09-01 2011-06-21 Micron Technology, Inc. Non-volatile hard disk drive cache system and method
CN101286086B (zh) * 2008-06-10 2010-08-11 杭州华三通信技术有限公司 硬盘掉电保护方法、装置以及硬盘和硬盘掉电保护系统
US10714176B2 (en) * 2018-08-14 2020-07-14 Micron Technology, Inc. Read-write cycle execution based on history
US11860947B2 (en) * 2019-01-31 2024-01-02 International Business Machines Corporation Deleted data restoration
US10978097B1 (en) * 2020-01-16 2021-04-13 International Business Machines Corporation Indicating tracks as erased without deleting data for the tracks

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4419725A (en) * 1980-11-14 1983-12-06 Sperry Corporation Cache/disk subsystem with tagalong copy
US4638425A (en) * 1982-09-29 1987-01-20 International Business Machines Corporation Peripheral data storage having access controls with error recovery
JPS59153251A (ja) * 1983-02-18 1984-09-01 Toshiba Corp デイスクキヤツシユシステム
US4916605A (en) * 1984-03-27 1990-04-10 International Business Machines Corporation Fast write operations
US4827462A (en) * 1987-03-26 1989-05-02 International Business Machines Corporation Modular data storage directories for large-capacity data storage units
JPH0731640B2 (ja) * 1987-09-08 1995-04-10 富士通株式会社 ディスクアクセス制御方式

Also Published As

Publication number Publication date
JPH03224045A (ja) 1991-10-03
US5590298A (en) 1996-12-31

Similar Documents

Publication Publication Date Title
JP3662510B2 (ja) フラッシュメモリのための再写像制御方法及びこれによるフラッシュメモリの構造
JPH0833864B2 (ja) データ保全方式
CA1187197A (en) Segmented storage logging and controlling
JP3485938B2 (ja) 不揮発性半導体メモリ装置
US6523087B2 (en) Utilizing parity caching and parity logging while closing the RAID5 write hole
US5043871A (en) Method and apparatus for database update/recovery
US5572661A (en) Methods and system for detecting data loss in a hierarchic data storage system
TWI375962B (en) Data writing method for flash memory and storage system and controller using the same
US6151685A (en) System and method for recovering a segment directory for a log structured array
EP0615184A2 (en) Nonvolatile memory
JPH05505264A (ja) データ記憶装置における書込みオペレーション識別子の不揮発性メモリ記憶
US6055604A (en) Forced transaction log posting using a least busy storage media without maintaining redundancy of the transaction log
JP2005115857A (ja) ファイル記憶装置
US6101574A (en) Disk control unit for holding track data in non-volatile cache memory
JP2012128643A (ja) メモリシステム
CN106168920A (zh) 控制包括只读闪速数据存储设备的独立磁盘冗余阵列(raid)
US9286936B1 (en) Zone based band mapping
JP3898968B2 (ja) 情報記録方法および情報記録システム
JP2006338731A (ja) データ書き込み方法
JPH06131123A (ja) 計算機の外部記憶装置
JP3008801B2 (ja) 記憶装置システムおよびディスクアレイ制御装置
JP3615274B2 (ja) ファイル制御装置
JPS6326407B2 (ja)
JP3620110B2 (ja) ファイル記憶装置
JP3335969B2 (ja) 磁気ディスク装置

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees