JP2830218B2 - キャッシュ付ディスク制御装置の障害処理方法 - Google Patents

キャッシュ付ディスク制御装置の障害処理方法

Info

Publication number
JP2830218B2
JP2830218B2 JP1303967A JP30396789A JP2830218B2 JP 2830218 B2 JP2830218 B2 JP 2830218B2 JP 1303967 A JP1303967 A JP 1303967A JP 30396789 A JP30396789 A JP 30396789A JP 2830218 B2 JP2830218 B2 JP 2830218B2
Authority
JP
Japan
Prior art keywords
cache
disk
data
drive
track
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
JP1303967A
Other languages
English (en)
Other versions
JPH03164844A (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
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 JP1303967A priority Critical patent/JP2830218B2/ja
Priority to US07/615,929 priority patent/US5390186A/en
Publication of JPH03164844A publication Critical patent/JPH03164844A/ja
Application granted granted Critical
Publication of JP2830218B2 publication Critical patent/JP2830218B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • 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/1405Saving, restoring, recovering or retrying at machine instruction level
    • 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/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/312In storage controller
    • 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
    • G11C29/74Masking faults in memories by using spares or by reconfiguring using duplex memories, i.e. using dual copies

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、キャッシュ付ディスク制御装置の障害処理
方法に係り、特に、ホストコンピュータのディスクに対
する書き込みデータをキャッシュ内に一時保留し、ホス
トコンピュータのディスクに対する書き込み動作とは非
同期にキャッシュからディスクに対して、纏め書き動作
を行うディスク制御装置のキャッシュ障害処理方法に関
するものである。
〔従来の技術〕
磁気ディスク等の大容量の補助記憶装置には、大容量
のデータが1ボリュームに格納される。そのために、1
ボリューム単位時間当たりのアクセス回数が増大し、か
つ、アクセスが1ボリュームに集中する傾向も強くな
る。
しかし、磁気ディスクのアクセス時間は、数十msであ
り、CPUの動作時間や主記憶装置のアクセス時間(数百n
s)に比べて大きなギャップがあり、システムとしての
処理効率を低下させる原因となっていた。
ディスクキャッシュシステムは、この問題を解決する
ために磁気ディスク制御装置内に半導体メモリ(以下キ
ャッシュメモリと記載)を置き、アクセス頻度の高いデ
ータだけを大容量の補助記憶装置から取り出し、キャッ
シュメモリ上に格納し、このキャッシュメモリ上のデー
タにアクセスして処理を実行することにより、システム
の実行性能を高めるものである。
すなわち、キャッシュ付きディスク制御装置は、頻繁
にアクセスされるトラックをキャッシュメモリ上に保持
しておき、それがアクセスされた場合には、ディスクの
物理トラックまでアクセスに行かずに、キャッシュメモ
リ上からデータを読み出すことにより、データのアクセ
ス速度の向上を図っている。この結果、プログラムやデ
ータを何ら修正せずに、システムの応答時間とスループ
ットを向上することが出来る。
さらに、キャッシュ付きディスク制御装置は、キャッ
シュメモリの障害発生を検出する機能を有している。
従来のキャッシュ付きディスク制御装置は、キャッシ
ュメモリの障害が発生した場合には、特開昭60−79447
号公報に記載のように、キャッシュ障害を検知すると、
キャッシュメモリ全体を切り離し、キャッシュメモリ上
に格納されていたデータは、全て捨てていた。
〔発明が解決しようとする課題〕
特開昭60−79447号公報に記載のキャッシュ障害処理
方法は、キャッシュメモリ上にディスクドライブと同一
のデータを格納しておき、リード動作時のみに利用する
システムの場合には、有効である。
しかし、ライト動作においてもキャッシュメモリを利
用するシステムにおいては、利用することは出来なかっ
た。
すなわち、ホストコンピュータからの書き込みデータ
をディスクドライブには書き込まず、一時、キャッシュ
メモリ上に書き込み、ディスクドライブのデータとは一
致しない未反映トラックとして保留しておき、ホストコ
ンピュータの書き込み動作と非同期にキャッシュメモリ
からディスクドライブに対して、この未反映トラックの
データを纏め書きするような動作を持つキャッシュ付き
ディスク制御装置では、データの保全上、キャッシュ上
のデータを捨てることは出来ない。
そのため、このような、ライト(書き込み)動作をキ
ャッシュメモリで行うディスク制御装置では、データの
保全上、未反映トラックをドライブへ非同期に書き込む
場合には、キャッシュメモリのバックアップメモリを用
意して、キャッシュ上の未反映トラックデータを2重化
している。
そうすることにより、キャッシュメモリ障害時には、
バックアップメモリから、その逆の場合には、キャッシ
ュメモリから1重化となった未反映トラックをディスク
ドライブに書き込むことを行う。
これらの未反映トラックの書き込み動作は、ディスク
ドライブを占有して行う必要がある。
この時、片系(一重化)となったメモリ上にある全て
の未反映トラックを、ディスクドライブの物理トラック
へ書き込むまでディスクドライブを占有することを行う
と、上位システムからのディスクドライブに対するリー
ド/ライト要求がディスクドライブのロック待ちのため
に、長時間実行不能となり、ディスクサブシステムの可
用性向上の観点から問題であった。
本発明の目的は、これら従来技術の課題を解決し、キ
ャッシュの障害時にディスクドライブを占有することな
く、キャッシュ上の未反映データのディスクドライブへ
の書き込みを可能とし、システムの信頼性と可用性を向
上させるキャッシュ付ディスク制御装置の障害処理方法
を提供することである。
〔課題を解決するための手段〕
上記目的を達成するため、本発明のキャッシュ付ディ
スク制御装置の障害処理方法は、(1)キャッシュメモ
リとバックアップメモリのいずれか一方が障害でアクセ
スできなくなり、正常な方にライトされたデータをディ
スクドライブに書き込む場合に、正常な方に記憶された
データのディスクドライブへの書き込みを予め定められ
たトラック単位で行なうと共に、このトラック単位のデ
ータのディスクドライブへの各書き込み処理の前に、ホ
ストコンピュータからのリード/ライト要求の有無を判
別する。そして、ホストコンピュータからのリード/ラ
イト要求が、無ければ予め定められたトラック単位での
正常な方のデータのディスクドライブへの書き込みを行
ない、有ればホストコンピュータからのリード/ライト
要求に対する処理を行なうことを特徴とする。
また、(2)ホストコンピュータからのリード/ライ
ト要求が有り、このリード/ライト要求が、データを書
き込むディスクドライブのトラックに対するものである
か否かを判別する。そして、当該トラックに対するもの
でなければ、ホストコンピュータのリード/ライト要求
に対する処理の終了を待った後、予め定められたトラッ
ク単位での正常データのディスクドライブへの書き込み
を行ない、また、当該トラックに対するものであれば、
ホストコンピュータのリード/ライト要求に対する処理
の前に、予め定められたトラック単位での正常データの
ディスクドライブへの書き込みを行なうことを特徴とす
る。
また、(3)ホストコンピュータからのリード/ライ
ト要求が有り、このリード/ライト要求が、データを書
き込むディスクドライブのトラックに対するものであれ
ば、ホストコンピュータのリード/ライト要求に対応す
る処理を、正常な方のメモリに対して行ない、さらに、
ホストコンピュータからの要求がライト要求であれば、
このライト要求に対応するライト処理を正常な方に対し
て行なった後、この正常データを予め定められたトラッ
ク単位でディスクドライブへ書き込むことを特徴とす
る。
また、(4)ディスクドライブを複数接続し、各ディ
スクドライブに、キャッシュメモリとバックアップメモ
リ上ではライト処理されたが、ディスクドライブにはラ
イトされていない未反映データの存在を許可するか否か
を示す情報を付加し、この情報を有するディスクドライ
ブのみを処理の対象とすることを特徴とする。
また、(5)バックアップメモリが正常な方の場合に
は、データのディスクドライブへの書き込みを、トラッ
ク単位ではなく、ディスクドライブ単位で行なうことを
特徴とする。
〔作用〕
本発明において、キャッシュ付ディスク制御装置は、
未反映トラックのデータを格納するキャッシュまたはバ
ックアップメモリのうちの片方が、なんらかの原因でリ
ード/ライト不能となり、これらのメモリが片系になっ
た場合には、以下の処理を行なう。
上位システムから、ディスクドライブのトラックに対
して発行されたリード/ライト要求に対し、当該トラッ
クが正常な方のメモリ上に存在し、かつ、それが未反映
トラックか否かを判定する。
未反映トラックである場合には、正常な方のメモリ上
の当該トラックのデータを当該ディスクドライブ上の対
応する物理トラックに書き込んだ後、引き続き上位シス
テムから要求されたリード/ライト要求を当該物理トラ
ックに対して実行する。
また、上位システムからリード/ライト要求が来ない
トラックについては、正常なメモリ上に存在する未反映
トラックを自主的に探索して、対応するディスクドライ
ブ上の該当する物理トラック上に書き込む。そして、こ
の物理トラック上への書き込みのために自主的にロック
を取る未反映トラックの本数を可変とする。
さらに、上位システムから、あるディスクドライブの
トラックに対して発行されたリード/ライト要求に対し
ての処理のためのロック要求と、上位システムからリー
ド/ライト要求が来ないトラックに対する処理のための
ロック要求とが競合した場合には、上位システムから要
求された処理のロック取得を優先させ、上位システムか
らの処理要求が長時間待たされることを防ぐ。
これにより、上位システムからのリード/ライト要求
を処理しつつ、一重化状態になった未反映トラックを安
全にディスクドライブに書き込むことが出来る。
〔実施例〕
以下本発明の実施例を、図面により詳細に説明する。
第1図は、本発明を施したキャッシュディスクサブシ
ステムの一実施例を示すブロック構成図である。
ホストコンピュータ100、チャネル制御装置101、ディ
スク制御装置102、ディスクドライブ110、120から構成
される。
そして、ディスク制御装置102は、2つのプロセッサ1
03と104を内蔵し、各プロセッサ103、104は、それぞ
れ、チャネル制御装置101と、ディスクドライブ(以下
ドライブと記載)110、120とに接続される。
また、それぞれのプロセッサ103、104は、プロセッサ
間排他のためのロック機構107、キャッシュメモリ106、
および、キャッシュメモリ106の管理情報を格納するキ
ャッシュディレクトリ105、キャッシュのバックアップ
メモリ109、バックアップメモリ109の管理情報を格納す
るディレクトリ108、そして、キャッシュメモリ106とバ
ックアップメモリ109とドライブの状態を反映する制御
メモリ187とに接続されている。
このような構成により、ディスク制御装置102は、キ
ャッシュメモリ106、もしくは、バックアップメモリ109
のどちらか一方に障害が発生した場合、正常な方のメモ
リ上に格納されている未反映データを有する未反映トラ
ックをドライブ110、120に戻し、その後、キャッシュへ
の書込制御を行わず、ホストコンピュータ100とドライ
ブ110、120との直接のアクセスを行う。
ディスク制御装置102のさらに詳しい動作説明は、以
下に示された第2図〜第9図におけるテーブルの説明後
に行う。
第2図は、第1図の制御メモリ内に格納されている各
ステータスを示すテーブル構成図である。
このテーブル内には、第1図におけるドライブ110、1
20の状態を示すドライブステータステーブル1870と、同
じく第1図におけるキャッシュメモリ106の状態を示す
キャッシュ状態テーブル1880、バックアップメモリ109
の状態を示すバックアップメモリ状態テーブル1890があ
る。
また、ドライブステータステーブル1870は、以下の項
目を有している。
ドライブ110、120(第1図参照)等を識別するドライ
ブ番号1871と、ドライブ110,120(第1図参照)の状態
の見直しの必要性を示す見直しフラグ1872(「0」:見
直し不要、「1」:見直し要)、そして、ドライブ110,
120(第1図参照)のアクセスの可能性を示すアクセス
レベル1873(「0」:アクセス禁止、「1」:スルーア
クセスモード;キャッシュメモリを介さずホストコンピ
ュータとドライブ間でデータの処理を行う、「2」:キ
ャッシュリード可、「3」:キャッシュリード/ライト
可)、さらに、ドライブ110,120(第1図参照)のリカ
バリ動作状況を示すリカバリステータス1874(第3図に
後述)、そして、ドライブ110,120(第1図参照)のロ
ック状態を示す物理ロック1875(「0」:未ロック、
「1」:ロック中)と論理ロック1876(「0」:未ロッ
ク、「1」:ロック中)、さらに、ドライブ110,120
(第1図参照)に未反映レコードがあるか否かを示す反
映未完了1877(「0」:ドライブに未反映レコード無、
「1」:ドライブに未反映レコード有)から構成されて
いる。
第1図のキャッシュメモリ106の状態を示すキャッシ
ュ状態テーブル1880と、バックアップメモリ109(第1
図参照)の状態を示すバックアップメモリ状態テーブル
1890は、どちらも「0」「1」「2」「3」の値を取
り、それぞれ、アクセス可(正常)、アクセス不可(保
守オフ)、アクセス不可(論理障害)、アクセス不可
(メモリ障害)を表す。
第3図は、第2図におけるドライブステータスのリカ
バリステータスの構成内容を示すテーブル構成図であ
る。
キャッシュデステージ中およびリードスルー状態1874
1、キャッシュデステージ中およびリードヒット可状態1
8742、バックアップメモリデステージ中状態18743、そ
して、キュー更新可否状態18744から構成され、各状態
は、第2図のキャッシュ状態テーブル1880とバックアッ
プメモリ状態テーブル1890の値により決定される。
キャッシュデステージ中およびリードスルー状態1874
1に「1」が設定されている場合は、未反映レコードを
キャッシュメモリ106(第1図参照)から当該ドライブ
に書き込みつつ、ホストコンピュータ100(第1図参
照)からの当該ドライブに対するアクセス要求に対して
は、当該ドライブ上の物理トラックをアクセス(以下ス
ルーアクセスと記載)すべきことを表す。
キャッシュデステージ中およびリードヒット可状態18
742「1」に設定されている場合は、未反映レコードを
キャッシュメモリ106(第1図参照)から当該ドライブ
に書き込みつつ、ホストコンピュータ100(第1図参
照)からの当該ドライブに対しては、キャッシュメモリ
106(第1図参照)上に存在しないスロット(ドライブ
のトラックに相当する)に対する読み出しと、ドライブ
への任意のトラックに対する書き込み要求に対しては、
スルーアクセスを行う。さらに、キャッシュメモリ106
(第1図参照)上に有るスロットに対する読み出し要求
に対しては、キャッシュメモリ106(第1図参照)上の
データをアクセスすべきことを表す。
バックアップメモリデステージ中状態18743に「1」
が設定されている場合は、未反映レコードをバックアッ
プメモリ109(第1図参照)から当該ドライブに書き込
みつつ、ホストコンピュータ100(第1図参照)からの
当該ドライブに対するアクセス要求に対してはスルーア
クセスを行うべきことを表す。
キュー更新可否状態18744に「1」が設定されている
場合は、キャッシュディレクトリ105(第1図参照)内
の空きスロットキュー(まだレコードが記録されておら
ず、特定のドライブ/トラックと接続されていないスロ
ットを示す)が論理障害により不正となっている恐れが
あり、キューの操作(ドライブへ書き込み終了したスロ
ットに対応するスロット制御ブロックを、空きキューへ
戻すこと)を行うべきでないことを示す。
第4図は、第3図のリカバリステータスの状態の決定
条件を示すマトリクス図である。
リカバリステータス1874の状態は、第2図におけるキ
ャッシュ状態1880のコードの値と、バックアップメモリ
状態1890のコードの値の組み合わせに応じて決まる。そ
して、4組の情報で表され、その内容は、第3図におけ
る説明通りである。
例えば、キャッシュ状態1880が「0」でアクセス可
(正常)であり、バックアップメモリ状態1890が「3」
でアクセス不可(メモリ障害)の場合には、リカバリス
テータス1874は、「0100」となり、第3図におけるキャ
ッシュデステージ中およびリードヒット可状態18742が
「1」に設定されている状態となる。また、キャッシュ
状態1880が「3」アクセス不可(メモリ障害)の場合
は、リカバリステータス1874は、「001*」となり、バ
ックアップメモリデステージ中状態18743に「1」が設
定されている場合となる。尚、「*」は、don′t care
の意味で、「0」および「1」のどちらがきても構わな
いことを意味する。すなわち、キャッシュメモリがメモ
リ障害を起こしている場合には、バックアップメモリが
メモリ障害を起こしていないかぎり(バックアップメモ
リ状態1890が「3」でない場合)、バックアップメモリ
デステージの処理を行なう。
特別な場合として、キャッシュメモリ106(第1図参
照)とバックアップメモリ109(第1図参照)が共にメ
モリ障害で、未反映レコードをドライブ110,120(第1
図参照)に書き込むことが不可能な場合には、リカバリ
ステータス1874を「1111」に設定する。
第5図は、第2図におけるアクセスレベルの状態の決
定条件を示すマトリクス図である。
第2図におけるキャッシュ状態1880のコードの値とバ
ックアップメモリ状態1890のコードの値との組み合わせ
に応じて決まる。
例えば、キャッシュメモリ状態1880が「2」でアクセ
ス不可(論理障害)であり、バックアップメモリ状態18
90が「1」でアクセス可(正常)の場合には、アクセス
レベルは「1」となり、スルーアクセスモードとなる。
さらに、キャッシュメモリ状態1880とバックアップメモ
リ状態1890が、共に「3」でアクセス不可(メモリ障
害)の場合には、アクセスレベルは「0」となり、アク
セス禁止状態となる。
第6図は、第1図におけるキャッシュディレクトリと
キャッシュメモリ、および、バックアップメモリディレ
クトリとバックアップメモリの格納内容を示すテーブル
構成図である。
キャッシュディレクトリ105内には、第1図のドライ
ブ110のトラック表1051と、ドライブ120のトラック表10
52、そして、スロット制御ブロック350〜354がある。
トラック表1051のトラック(TR1)は、ポインタによ
りスロット制御ブロック350と、トラック(TRn)は、ス
ロット制御ブロック351につながっている。また、スロ
ット制御ブロック352は、トラック表1052のトラック(T
R1)につながっている。
スロット制御ブロック353、354は、未だトラック表10
51、1052と接続されておらず、キャッシュ動作状況に応
じ、空きスロットキュー320を介してトラック表1051、
または、1052に接続される。
さらに、スロット制御ブロック350〜354は、ポインタ
によりキャッシュメモリ106の各当該スロットに接続さ
れる。例えば、スロット制御ブロック350は、スロット1
061に、スロット制御ブロック351は、スロット1063に、
スロット制御ブロック352は、スロット1062に、さら
に、スロット制御ブロック353はスロット1064、スロッ
ト制御ブロック354はスロット1065に接続される。
スロット1061の斜線部分のレコード(R1)は、まだ、
ドライブ110,120(第1図参照)に転送されていないこ
とを示し、スロット1061が未反映スロットであることを
示す。同様に、スロット1062も未反映スロットである。
スロット1063は、全てのレコードがドライブ110,120
(第1図参照)に転送済みであり、ドライブ110,120
(第1図参照)のデータと、キャッシュメモリ106上の
データが一致していることを示す反映済みスロットであ
る。
尚、未反映スロット、および、反映済スロットをさら
に詳しく説明する。
未反映スロットは、第1図において、キャッシュメモ
リ106上のスロットに格納されているデータと、それに
対応するドライブ110,120上の物理トラック上のデータ
とが、一致していないスロットのことである。これに対
して、キャッシュメモリ106上のスロットに格納されて
いるデータと、それに対応するドライブ110,120上の物
理トラック上のデータとが一致しているスロットを反映
済スロットと呼ぶ。
スロット1064、1065は、何も書き込まれていない空き
スロットであり、新たなデータのキャッシュ処理が発生
した場合に使用される。
バックアップメモリディレクトリ108内にも同様に、
トラック表1081、1082と、スロット制御ブロックに相当
するセグメント制御ブロック355〜357、空きセグメント
キュー330があり、バックアップメモリ109には、セグメ
ント1092〜1094、空きセグメント1095、1096があり、そ
れぞれ、ポインタにより接続されている。
尚、バックアップメモリ109のセグメントには、キャ
ッシュメモリ106の未反映スロットのみを登録してあ
り、当然、全てのデータは、ドライブ110,120のデータ
と一致していない。
第7図は、第6図におけるトラック表1051の登録内容
を示すテーブル構成図である。
第1図のドライブ110と各トラックを識別するドライ
ブ番号10511とトラックアドレス10512、そして、第6図
におけるスロット制御ブロック350〜352へのポインタ10
513から構成されている。
スロット制御ブロックポインタ10513がNULLであれ
ば、スロット制御ブロック350へのポインタがアロケー
トされておらず、ミスとなり、制御部102は、スルーア
クセスを行う。
スロット制御ブロックポインタ10513がNULLでなけれ
ば、スロット制御ブロック350へのポインタがアロケー
トされており(これをトラックヒットと呼ぶ)、ディス
ク制御装置102は、スロット制御ブロック350の内容を読
む動作を行う。
尚、このテーブル構成図は、第6図におけるトラック
表1052、1081、1082においても同様な構成となってい
る。
第8図は、第6図におけるスロット制御ブロックの登
録内容を示すテーブル構成図である。
スロット制御ブロック350は、スロットロックステー
タス3501と、スロットデータステータス3502、そして、
キャッシュメモリへのポインタ3503から構成されてい
る。
スロットロックステータス3501は、第1図におけるキ
ャッシュ106とチャネル制御装置101間のデータ転送と、
キャッシュ106とドライブ110間のデータ転送を、第6図
のスロット1061〜1063に関して、プロセッサ間排他する
ためのものである。1の場合は、プロセッサが当該スロ
ットをロック中であることを示し、0の場合は、ロック
中でないことを示す。
スロットデータステータス3502は、第2図のアクセス
レベル1873の値が3の場合で、アクセス要求がライト、
そして、指定レコードがキャッシュ上でヒット(ライト
ヒット)した場合に、プロセッサ103に確認され、当該
スロットが未反映スロットか、反応済スロットかを表
す。
第9図は、第6図におけるセグメント制御ブロックの
登録内容を示すテーブル構成図である。
セグメント制御ブロック355は、バックアップメモリ
ポインタ3551と、次セグメント制御ブロックポインタ35
52とから構成される。
バックアップメモリポインタ3551により、第6図にお
いて、トラック表1081のトラック(TR1)は、バックア
ップメモリ109のセグメント1092に接続される。また、
同様に第6図において、セグメント制御ブロック356
は、バックアップメモリポインタにより、セグメント10
93に接続され、また、次セグメント制御ブロックポイン
タ3552と同じ機能を有するポインタにより、セグメント
制御ブロック357に接続され、さらに、セグメント制御
ブロック357は、バックアップメモリポインタにより、
セグメント1094に接続される。このようにして、第9図
に示されたセグメント制御ブロックにより、第6図にお
けるトラック表1081と1082が、バックアップメモリ109
の各セグメントに接続される。
以下、第2図〜第9図に示されたテーブルに基づき、
第1図におけるディスク制御装置102の動作を詳細に説
明する。
まず、第1図において、キャッシュメモリとバックア
ップメモリが正常に動作している場合のディスク制御装
置の動作を説明する。
ディスク制御装置102内のプロセッサ103が、チャネル
制御装置101を介してホストコンピュータ100からのアク
セス要求を受け取ると、プロセッサ103は、この要求を
解読し、どのドライブに対するアクセス要求かを確認す
る。
ここでは、ドライブ110のトラック(1)のレコード
(1)に対する書き込み要求とする。この場合、プロセ
ッサ103は、ロック機構107に対して、信号機126を介
し、制御メモリ187の更新のためのロック要求を出す。
ロック機構107は、プロセッサ103とプロセッサ104
が、制御メモリ187やキャッシュディレクトリ105、ディ
レクトリ108を排他的に更新するための排他制御をハー
ド的に行う一種のアービタ回路として実現される。
ロック機構107から、信号機126を介して、制御メモリ
187に対するロック取得成功の応答が入ると、プロセッ
サ103は、制御メモリ187内のドライブステータステーブ
ル1870(第2図参照)の当該ドライブの論理ロック1876
(第2図参照)に「1」をセットして、その状態をロッ
ク中にする。
そのあと、ロック機構107に制御メモリ187のロック開
放を指示する。
ここで、第2図の論理ロック1876は、キャッシュ上の
データをアクセスする場合のドライブに関するプロセッ
サ間排他用のロックである。
続いて、ディスク制御装置102は、第2図のドライブ
ステータステーブル1870の当該ドライブのアクセスレベ
ル1873(第2図参照)を判定する。
第2図のアクセスレベル1873の値は「0」〜「3」の
値で表され、その内容は、リカバリステータス1874(第
2図参照)の値がオールゼロ(「0000」)のときは、チ
ャネル制御装置101から受け取るドライブに対するアク
セス要求の処理を、どのように行うべきかを規定するも
のである。すなわち、アクセスレベルが「0」の時は、
当該ドライブはアクセス禁止であり、エラーをチャネル
制御装置101に返す。
第2図のアクセスレベル1873が、非ゼロの時は、以下
の処理を行う。
ディスク制御装置102は、チャネル制御装置101からコ
マンドを受け取り、プロセッサ103がコマンドを解読
し、リード/ライトの区別(ここでは、ライトコマンド
とする)と、アクセス対象トラック番号(TR1)、およ
び、レコード番号(R1)を認識する。
ここで、第2図のアクセスレベル1873の値が「1」な
らば、当該ドライブのドライブステータステーブル1870
(第2図参照)の物理ロック1875(第2図参照)に
「1」をセットし、物理ロック1875(第2図参照)を確
保する。
第2図の物理ロック1875は、ドライブ上のデータをア
クセスする場合のドライブに関するプロセッサ間排他用
のロックである。
その後、当該ドライブの物理トラック上の指定レコー
ドを直接アクセスする。すなわちスルーアクセスする。
一方、第2図におけるアクセスレベル1873が「2」、
または、「3」の場合には、プロセッサ103は、キャッ
シュディレクトリ105内のドライブ110用のトラック表10
51(第6図、第7図参照)を検索し、トラック(TR1)
に対するキャッシュスロット1061(第6図参照)が既に
キャッシュメモリ106上にアロケートされているかどう
かを判定する。
具体的には、第7図におけるトラック表1051のトラッ
クアドレス10512(TR1)のスロット制御ブロックポイン
タ10513にスロット制御ブロック350(第6図、第8図参
照)へのポインタがアロケートされているか否かを調べ
る。
第7図のスロット制御ブロックポインタ10513がNULL
でなければ、スロット制御ブロック350(第6図参照)
へのポインタがアロケートされており、これをトラック
ヒットと呼ぶ。
ここでは、ヒットしたものとする。
この場合、プロセッサ103は、第8図のスロット制御
ブロック350内のスロットロックステータス3501を判定
し、当該スロットを他のプロセッサがロック中(この時
スロットロックステータス3501は「1」)か否かを判定
する。
ここで、第8図におけるスロットロックステータス35
01は、キャッシュメモリ106とチャネル制御装置101間の
データ転送、および、キャッシュメモリ106とドライブ1
10間のデータ転送のために、第6図における各スロット
1061、1063に関してプロセッサ間排他するためのロック
である。
ここでは、当該スロットを他プロセッサがロック中で
ない(第8図におけるスロットロックステータス3501は
「0」)ものとする。
この時、プロセッサ103は、第8図において、スロッ
ト制御ブロック350のスロットロックステータス3501を
「1」に、すなわち、「ロック中」に書き替える。続い
て、プロセッサ103は、第6図において、スロット制御
ブロック350からキャッシュメモリ106内のデータ格納エ
リアにあるスロット1061に対して張られたキャッシュポ
インタ3503(第8図参照)を読み出して、当該スロット
1061上におけるレコード(R1)の格納位置をサーチす
る。
さて、第2図におけるアクセスレベル1873の値が
「2」の場合、アクセス要求がリードならば、ヒットし
たキャッシュ上のレコードを読み出してチャネル制御装
置101に転送し、アクセス要求がリードで、かつ、指定
レコードがキャッシュ上でミスした場合と、アクセス要
求がライトの場合には、スルーアクセスを行う。
スルーアクセス後は、未だ使用されていない(すなわ
ち、第6図におけるトラック表1051、1052等にリンクさ
れていない)キャッシュ上の空きスロット1064、1065
(第6図参照)をポイントするスロット制御ブロック
を、1つのキューに集めたキャッシュディレクトリ105
内の空きスロットキュー320(第6図参照)から、空き
スロットの制御ブロックを1つ、例えば、空きスロット
制御ブロック353を取り出し、スルーアクセスを行った
当該トラックのデータをドライブ110からキャッシュメ
モリ106上の空きスロット1064へロードする。
一方、第2図のアクセスレベル1873の値が「3」の場
合で、かつ、ホストコンピュータ100からのアクセス要
求がライトで、指定レコードがキャッシュメモリ106上
でヒットした場合(ライトヒット)には、次の処理を行
う。
プロセッサ103は、ヒットしたスロット制御ブロック3
50(第8図参照)のスロットデータステータス3502(第
8図参照)を調べ、それが「1」、すなわち未反映スロ
ットであることを知る。
未反映スロットにライトヒットした場合、第6図にお
けるバックアップメモリ109のディレクトリ108の同一ド
ライブのトラック表1081を調べ、セグメント制御ブロッ
ク355へのポインタを得て、第9図におけるセグメント
制御ブロック355のバックアップメモリポインタ3551に
より、当該スロットのバックアップメモリ109上のデー
タ格納位置を得る。
一方、反映済スロットにライトヒットした場合には、
バックアップメモリ109に、キャッシュメモリ106への書
き込みデータを格納するメモリエリアとして、空きセグ
メントキュー330(第6図参照)から必要最小限の個数
のセグメント制御ブロック358、359(第6図参照)を取
り出し、取り出し順にセグメント制御ブロックの次のセ
グメント制御ブロックポインタ3532(第9図参照)でリ
ンクさせて、バックアップメモリディレクトリ108上の
当該セグメント1095、1096(第6図参照)にリンクす
る。
これらの処理のあと、プロセッサ103は、チャネル制
御装置101に対し、ホストコンピュータ100からの書き込
みレコードデータの転送を要求する。そして、プロセッ
サ103は、ホストコンピュータ100からのレコード書き込
みデータを、チャネル制御装置101を介して、キャッシ
ュスロット1061(第6図参照)上のレコード(R1)のフ
ィールド、および、バックアップメモリ109のスロット1
092(第6図参照)上のレコード(R1)のフィールド
に、同時に転送する。さらに、プロセッサ103は、キャ
ッシュディレクトリ105上の当該スロット制御ブロック3
50のスロットデータステータス3502(第8図参照)に
「1」を設定する。
そして、キャッシュメモリ106およびバックアップメ
モリ109へのレコード(R1)データの転送が終了した時
点で、チャネル制御装置101に対してドライブ110へのデ
ータ書き込み終了の報告を返す。
この結果、ライトヒットの場合には、書き込みデータ
は、キャッシュメモリ106およびバックアップメモリ109
上に未反映スロットとして二重に保留される。
このような未反映スロットがディスク制御装置102内
に、ある本数溜ると、チャネル制御装置101からのアク
セス要求を処理していない任意のプロセッサ(例えば、
プロセッサ104)が、当該するドライブ110、120に、複
数トラック分纏めて書き込み、バックアップメモリ109
のセグメント制御ブロック355〜357(第6図参照)を空
きスロットキュー330(第6図参照)に戻す。これを纏
め書き動作と呼ぶ。
以上が、正常時におけるディスク制御装置102の動作
説明である。
さて、以上の動作を行うディスク制御装置102におい
て、キャッシュメモリ106、または、バックアップメモ
リ109のいずれかがアクセス不能の障害となると、ディ
スク制御装置102内において、未反映スロットが一重化
の状態となり、データの保全上好ましくない。
そのため、この様な状態では、障害処理として、一重
化状態となった未反映スロットをドライブ110、120の対
応する物理トラックに書き出す必要がある。
以下、メモリの障害発生時におけるディスク制御装置
102の動作説明を行う。
第10図は、第1図におけるディスク制御装置の処理動
作を示すフローチャートである。
ステップ1000、1001、1002は、上述した正常時の処理
におけるチャネル制御装置101からのアクセス要求の受
け付けと、それに対する当該ドライブ110、120(第1図
参照)の論理ロック確保処理である。
ステップ1001で、もし論理ロックが確保出来なけれ
ば、デバイスビジー待ちとして、チャネル制御装置101
にリトライ要求を返す(ステップ1017)。
論理ロックが確保できたならば、(ステップ1002)、
続いて、ドライブステータステーブル1870(第2図参
照)の見直しフラグ1872(第2図参照)がセットされて
いるか否かを調べ(ステップ1003)、セットされていれ
ば、当該ドライブについてリカバリステータスとアクセ
スレベルの見直しを行う(ステップ1004)。
ここで、リカバリステータスとアクセスレベルの見直
し処理(ステップ1004)の詳細を第11図に示し、その説
明を行う。
第11図は、第1図におけるディスク制御装置のリカバ
リステータスとアクセスレベルの見直し処理動作を示す
フローチャートである。
まず、制御メモリ187(第1、2図参照)中のキャッ
シュ状態1880(第2図参照)とバックアップメモリ状態
1890(第2図参照)のステータスを、また、ドライブス
テータステーブル1870(第2図参照)からアクセス対象
ドライブに関する反映未完了フラグ1877(第2図参照)
を読み出す(ステップ5000)。
ここで、キャッシュ状態1880(第2図参照)のステー
タスコードが「0」の場合、正常アクセス可能、「1」
の場合、保守のための閉鎖によりアクセス不可、「2」
の場合、ディレクトリ情報の論理障害によりアクセス不
可、「3」の場合、メモリのハード障害によりアクセス
不可であることを意味する。
バックアップメモリ状態1890(第2図参照)に関して
も同様である。
尚、ディレクトリ情報の論理障害とは、例えば、プロ
セッサ障害等で、前述した第6図におけるキャッシュデ
ィレクトリ内の空きスロットキュー320の操作が完結出
来なかった場合等に対応するものである。
次に、ドライブの反映未完了フラグ1877(第2図参
照)が「1」の場合、当該ドライブのキャッシュメモリ
上、または、バックアップメモリ上の未反映レコードデ
ータがドライブに未書き込みである可能性があることを
意味している。
ドライブの反映未完了フラグが「0」の場合、当該ド
ライブのキャッシュメモリ上、または、バックアップメ
モリ上には、当該ドライブの未反映レコードデータが、
存在しないことを意味する。
さて、反映未完了フラグ1877(第2図参照)が「1」
の場合、第4図に示した決定表に従い、当該ドライブの
リカバリステータス1874(第2図参照)を決定する(ス
テップ5002)。さらに、第5図に示した決定表に従い、
当該ドライブのアクセスレベル1873(第2図参照)を決
定する(ステップ5003)。
このようにして、リカバリレベル、または、アクセス
レベルを決定した後、当該ドライブの見直しフラグをオ
フする(ステップ5004)。
以上がリカバリステータスおよびアクセスレベル見直
し処理の説明である。
再び、第10図のフローチャートに戻り、リカバリステ
ータスの内容判定処理(ステップ1005)以降のフローを
説明する。
リカバリステータスが「0000」の場合は、前述の正常
処理の方法に従い、アクセス要求を処理する(ステップ
1006)。
リカバリステータスが「1000」または「1001」の場合
は、後述するキャッシュデステージ処理(1)(ステッ
プ1007)を行う。
リカバリステータスが「0100」の場合は、当該スロッ
トのロックの確保を確認し(ステップ1008)、確保した
後、(ステップ1009)、後述するキャッシュデステージ
処理(2)(ステップ1010)を行う。
また、リカバリステータスが「001*」(*はdon′t
careの意味で、「1」と「0」のどちらがきても構わな
い)の場合は、後述するバックアップメモリデステージ
処理(1012)を行う。
そして、当該スロットロックステータスをゼロクリア
して(ステップ1014)、当該ドライブの物理ロック、お
よび、論理ロックをゼロクリアして(1015)、処理を終
了する。
以下、キャッシュデステージ処理(1)(ステップ10
07)、キャッシュデステージ処理(2)(ステップ101
0)、そして、バックアップメモリデステージ処理(ス
テップ1012)の詳細な説明を順に行う。
第12図は、第1図におけるディスク制御装置のキャッ
シュデステージ処理(1)動作を示すフローチャートで
ある。
まず、当該ドライブの物理ロックの確保を確認し(ス
テップ2000)、確保出来なければ、物理ロック待ちをセ
ットして(ステップ2012)、処理を終了する。
物理ロックを確保したならば、当該ドライブの物理ロ
ックを「1」にセットし(ステップ2001)、チャネル制
御装置からアクセス要求を受けた自プロセッサと当該ド
ライブを接続し(ステップ2002)、キャッシュディレク
トリを用いて、前述したヒットミス判定を行う(ステッ
プ2003)。
ヒットの場合、当該スロットのスロット制御ブロック
に設定されたスロットデータステータスを参照し、それ
が未反映スロットか否かを判定する(ステップ2004)。
未反映スロットであれば、当該スロットをキャッシュ
メモリから当該ドライブの対応する物理トラックに書き
込んだ後(ステップ2005)、リカバリステータスのキュ
ー更新可否18744(第3図参照)を判定し、更新可の場
合のみ、ドライブに書き込んだスロットのスロット制御
ブロックを空きキュー320(第6図参照)に戻す(ステ
ップ2007)。
そして、チャネル制御装置101から受け取ったコマン
ドの種別を解析し(ステップ2008)、リードの場合に
は、当該ドライブ上の物理トラックから指定レコードを
リードし(ステップ2010)、ライトの場合には、当該ド
ライブ上の物理トラックへ指定レコードをライトする
(ステップ2009)。
以上が、キャッシュデステージ処理(1)の内容であ
る。
第13図は、第1図のディスク制御装置のキャッシュデ
ステージ処理(2)動作の内容を示すフローチャートで
ある。
まず、キャッシュディレクトリ105(第1図参照)を
用いて、前述したヒットミス判定を行う(ステップ300
0)。
ヒットの場合、当該スロットのスロット制御ブロック
に設定されたスロットデータステータスを参照し、それ
が未反映スロットか否かを判定する(ステップ3001)。
反映済スロットであれば、そのままチャネル制御装置
101(第1図参照)から受け取ったコマンドの種別を解
析し(3002)、リードの場合は、キャッシュ上の当該ス
ロット上の指定レコードをリードして(ステップ3013)
処理を終了する。
未反映スロットであれば、当該ドライブの物理ロック
を確保する(ステップ3003)。確保出来なければ、物理
ロック待ち(ステップ3012)として処理を終了する。
確保できれば(ステップ3004)、チャネル制御装置10
1(第1図参照)からアクセス要求を受けた自プロセッ
サと当該ドライブを接続(ステップ3005)、再度、キャ
ッシュディレクトリ105(第1図参照)によりヒットミ
スを判定する(ステップ3006)。
ヒットしていれば、当該スロットをキャッシュメモリ
から当該ドライブの対応する物理トラックに書き込んだ
後(ステップ3007)、ドライブに書き込んだスロットの
スロット制御ブロックを空きキュー320(第6図参照)
に戻す(ステップ3008)。
そして、チャネル制御装置101から受け取ったコマン
ドの種別がライトの場合には、当該ドライブ上の物理ト
ラックへ、指定レコードをライトし(ステップ3011)、
リードの場合は、当該ドライブ上の物理トラックから、
指定レコードをリードする(ステップ3010)。
以上が、キャッシュデステージ処理(2)の内容であ
る。
次に、ステップ1012のバックアップメモリデステージ
処理の内容を説明する。
第14図は、第1図におけるディスク制御装置のバック
アップメモリデステージ処理動作を示すフローチャート
である。
まず、当該ドライブの物理ロックを確保する(ステッ
プ4000)。もし、確保出来なければ、物理ロック待ちと
して(ステップ4008)処理を終了する。
確保できれば(ステップ4001)、チャネル制御装置10
1からアクセス要求を受けた自プロセッサと当該ドライ
ブを接続し(ステップ4002)、バックアップメモリディ
レクトリ108(第1図参照)を用いて、前述したヒット
ミス判定を行う(ステップ4003)。
ヒットの場合、当該セグメント中の未反映レコード
を、バックアップメモリ109(第1図参照)から当該ド
ライブの対応する物理トラックに書き込んだ後(ステッ
プ4004)、チャネル制御装置101から受け取ったコマン
ドの種別を解析する(ステップ4005)。
ステップ4005において、コマンドがリードの場合、当
該ドライブ上の物理トラックから指定レコードをリード
し(4006)、ライトの場合は、当該ドライブ上の物理ト
ラックに指定レコードをライトする(ステップ4007)。
以上がバックアップメモリデステージ処理の内容であ
る。
さて、以上説明した処理は、いずれも、チャネル制御
装置101(第1図参照)からのコマンド受け付けを契機
として、ディスク制御装置102(第1図参照)内の未反
映レコードをドライブに書き込む処理である。
しかし、データの保全上は、チャネル制御装置101
(第1図参照)からのコマンドが来ない場合にも、ディ
スク制御装置102(第1図参照)内の未反映レコードを
ドライブに書き込む必要がある。
これを実現するために、第1図において、ディスク制
御装置102内の各プロセッサ103、104は、未反映レコー
ド検索と書き込み処理を自主的に行う。
第15図は、第1図におけるディスク制御装置の未反映
レコード検索と書き込み処理動作を示すフローチャート
である。
まず、ディスク制御装置102に接続する全ドライブに
ついて、ドライブステータステーブル1870(第2図参
照)の反映未完了フラグ1877(第2図参照)が「0」か
否かを調べる(ステップ8000)。
非「0」の全ドライブについて、それぞれリカバリス
テータス1874(第2図参照)を調べ(ステップ8003)、
その値に応じて以下の処理を行う。
すなわち、リカバリステータスが「0000」または「11
11」の場合は、何もせずに処理を終了する。
リカバリステータスが「1000」または「1001」の場合
は、キャッシュディレクトリ105(第2図参照)から当
該ドライブの未反映トラックアドレスを1本検索し(ス
テップ8004)、そのトラックについて、前述したキャッ
シュデステージ処理(1)を行う。
リカバリステータスが「0100」の場合は、同じくキャ
ッシュディレクトリ105(第2図参照)から、当該ドラ
イブの未反映トラックアドレスを1本検索し(ステップ
8005)、そのスロットのロックを確保する(ステップ80
07)。
尚、この際、第10図で述べたチャネルコマンド処理が
当該スロットのロック待ちをしているか否かを調べる
(ステップ8012)。もし、チャネルコマンド処理がロッ
ク待ちをしていれば、何もしないで処理を終了する。そ
して、チャネルコマンド処理がロック待ちをしていなけ
れば、そのトラックについて、スロットロックを確保
し、前述したキャッシュデステージ処理(2)を行う。
また、リカバリステータスが「001*」の場合は、バ
ックアップメモリディレクトリ108(第1図参照)から
当該ドライブの未反映トラックアドレスを1本検索し
(ステップ8006)、そのトラックについて前述したバッ
クアップメモリデステージ処理を行う。
その後、当該スロットのロックステータスをゼロクリ
アし(ステップ8008)、当該ドライブの物理ロックをゼ
ロクリアする(ステップ8009)。そして、当該ドライブ
に、未だ未反映トラックが残っているか否かを判定し
(ステップ8010)、残っていなければ、当該ドライブの
反映未完了フラグをゼロクリアし、見直しフラグを
「1」に設定する(ステップ8011)。
以上の処理を、ディスク制御装置102(第1図参照)
に接続する全ドライブについて、ドライブステータステ
ーブル1870(第2図参照)の反映未完了フラグがゼロと
なるまで、ある周期で繰り返す。
以上が未反映レコード検索と書き込み処理の内容であ
る。
以上説明した実施例において、第10図に示した障害時
のチャネルコマンド処理により、チャネル制御装置101
を介したホストコンピュータ100からのアクセス要求を
受け付けた契機で、その処理と並行に、ディスク制御装
置102内の未反映トラックを、ドライブに安全に書き込
むことが出来る。
さらに、第15図に示した未反映トラック検索とデステ
ージ処理を、マルチプロセッサ環境下で、第10図に示し
た障害時のチャネルコマンド処理と並行して実行するこ
とにより、ホストコンピュータ100からのアクセス要求
が来ないドライブについても、ディスク制御装置102内
の未反映トラックをドライブに安全に書き込むことが出
来る。
尚、本実施例では、未反映レコード検索と書き込み処
理でキャッシュディレクトリ105、または、バックアッ
プメモリディレクトリ108から検索する未反映トラック
の本数を1本としたが、チャネル制御装置101からディ
スク制御装置102へのアクセス要求の入力頻度に応じ
て、この本数を可変にしても良い。
また、本実施例では、チャネル制御装置101からのア
クセス要求処理の場合、未反映トラックをドライブに書
き込んだ後、ドライブ上にデータを書き込む方法を取っ
たが、キャッシュメモリ106上に未反映トラックがある
場合では、キャッシュメモリ106上のスロットに、チャ
ネル制御装置101からの書き込みデータを反映させた後
に、当該スロットをドライブに反映しても良い。
さらに、バックアップメモリデステージ処理等の、バ
ックアップメモリ上の未反映セグメントのドライブへの
書き込み動作においては、バックアップメモリのメモリ
容量や、メモリ管理の通常時におけるオーバーヘッドを
削減するために、トラック単位のロック手段の変わり
に、ドライブ単位のロック手段を持たせ、1トラック単
位でシーケンシャルに行なっても良い。
このように、本実施例によれば、ディスク制御装置内
のキャッシュメモリや、バックアップメモリ、または、
プロセッサ等の障害のために、キャッシュメモリやバッ
クアップメモリが正常にアクセス出来なくなり、ディス
ク制御装置内の未反映データが一重化状態となった場
合、チャネル制御装置からドライブに対するアクセス要
求を処理しつつ、安全に、かつ、速やかに、未反映デー
タをドライブに書き出すことができるため、ディスク制
御装置による纏め書き動作の信頼性を向上させることが
出来る。
〔発明の効果〕
本発明によれば、キャッシュの障害時にドライブを占
有することなく、キャッシュ上の未反映データのドライ
ブへの書き込みを可能とし、システムの信頼性と可用性
を向上させることが可能である。
【図面の簡単な説明】
第1図は本発明を施したキャッシュディスクサブシステ
ムの一実施例を示すブロック構成図、第2図は第1図の
制御メモリ内に格納されている各ステータスを示すテー
ブル構成図、第3図は第2図におけるドライブステータ
スのリカバリステータスの構成内容を示すテーブル構成
図、第4図は第3図のリカバリステータスの状態の決定
条件を示すマトリクス図、第5図は第2図におけるアク
セスレベルの状態の決定条件を示すマトリクス図、第6
図は第1図におけるキャッシュディレクトリとキャッシ
ュメモリおよびバックアップメモリディレクトリとバッ
クアップメモリの格納内容を示すテーブル構成図、第7
図は第6図におけるトラック表の登録内容を示すテーブ
ル構成図、第8図は第6図におけるスロット制御ブロッ
クの登録内容を示すテーブル構成図、第9図は第6図に
おけるセグメント制御ブロックの登録内容を示すテーブ
ル構成図、第10図は第1図におけるディスク制御装置の
ドライブアクセス要求処理動作を示すフローチャート、
第11図は第1図におけるディスク制御装置のリカバリス
テータスとアクセスレベルの見直し処理動作を示すフロ
ーチャート、第12図は第1図におけるディスク制御装置
のキャッシュデステージ処理(1)動作を示すフローチ
ャート、第13図は第1図のディスク制御装置のキャッシ
ュデステージ処理(2)動作の内容を示すフローチャー
ト、第14図は第1図におけるディスク制御装置のバック
アップメモリデステージ処理動作を示すフローチャー
ト、第15図は第1図におけるディスク制御装置の未反映
レコード検索と書き込み処理動作を示すフローチャート
である。 100:ホストコンピュータ,101:チャネル制御装置,102:デ
ィスク制御装置,103,104:プロセッサ,105:キャッシュメ
モリディレクトリ,106:キャッシュメモリ,107:ロック機
構,108:バックアップメモリディレクトリ,109:バックア
ップメモリ,110,120:ドライブ,126:信号線,187:制御メ
モリ,320:空きスロットキュー,330:空きセグメントキュ
ー,350〜354:スロット制御ブロック,355〜357:セグメン
ト制御ブロック,358,359:空きセグメント制御ブロック,
1051,1052:トラック表,1061,1062:未反映スロット,106
3:反映済スロット,1064,1065:空きスロット,1081,1082:
トラック表,1092〜1094:セグメント,1095,1096:空きセ
グメント,1870:ドライブステータス,1871:ドライブ番
号,1872:見直しフラグ,1873:アクセスレベル,1874:リカ
バリステータス,1875:物理ロック,1876:論理ロック,187
7:反映未完了,1880:キャッシュメモリ状態,1890:バック
アップメモリ状態,3501:スロットロックステータス,350
2:スロットデータステータス,3503:キャッシュメモリへ
のポインタ,3551:バックアップメモリポインタ,3552:次
セグメント制御ブロックポインタ,10511:ドライブ番号,
10512:トラックアドレス,10513:スロット制御ブロック
ポインタ,18741:キャッシュデステージ中&リードスル
ー,18742:キャッシュデステージ中&リードヒット可,18
743:バックアップメモリデステージ中,18744:キュー更
新可否。
フロントページの続き (72)発明者 栗原 謙三 神奈川県川崎市麻生区王禅寺1099番地 株式会社日立製作所システム開発研究所 内 (72)発明者 本間 繁雄 神奈川県小田原市国府津2880番地 株式 会社日立製作所小田原工場内 (72)発明者 山本 彰 神奈川県川崎市麻生区王禅寺1099番地 株式会社日立製作所システム開発研究所 内 (56)参考文献 特開 昭64−76346(JP,A) 特開 昭63−148348(JP,A) (58)調査した分野(Int.Cl.6,DB名) G06F 12/08 G06F 3/06

Claims (5)

    (57)【特許請求の範囲】
  1. 【請求項1】大容量のディスクドライブと上位のホスト
    コンピュータとに接続され、該ホストコンピュータから
    の上記ディスクドライブへのデータのリード/ライト要
    求に対する処理を、キャッシュメモリと該キャッシュメ
    モリをバックアップするバックアップメモリを介して行
    ない、上記キャッシュメモリと上記バックアップメモリ
    のいずれか一方が障害でアクセスできなくなった場合に
    は、いずれか正常な方にライトされたデータを上記ディ
    スクドライブに書き込むキャッシュ付ディスク制御装置
    の障害処理方法において、 上記データの上記ディスクドライブへの書き込みを予め
    定められたトラック単位で行なう第1の処理と、 上記トラック単位での上記データの上記ディスクドライ
    ブへの各書き込み処理の前に、上記ホストコンピュータ
    からのリード/ライト要求の有無を判別する第2の処理
    とを有し、 上記ホストコンピュータからのリード/ライト要求が、
    無ければ上記予め定められたトラック単位での上記デー
    タの上記ディスクドライブへの書き込みを行ない、有れ
    ば上記ホストコンピュータからのリード/ライト要求に
    対する処理を行なうことを特徴とするキャッシュ付ディ
    スク制御装置の障害処理方法。
  2. 【請求項2】請求項1に記載のキャッシュ付ディスク制
    御装置の障害処理方法において、上記第2の処理で有と
    判別した上記ホストコンピュータからのリード/ライト
    要求が上記第1の処理で上記ディスクドライブに書き込
    むトラックに対するものであるか否かを判別し、上記リ
    ード/ライト要求が上記ディスクドライブに書き込むト
    ラックに対するものでなければ上記ホストコンピュータ
    からのリード/ライト要求に対応する処理の終了を待っ
    た後、また、上記ディスクドライブに書き込むトラック
    に対するものであれば上記ホストコンピュータからのリ
    ード/ライト要求に対応する処理の前に、上記予め定め
    られたトラック単位での上記データの上記ディスクドラ
    イブへの書き込みを行なうことを特徴とするキャッシュ
    付ディスク制御装置の障害処理方法。
  3. 【請求項3】請求項1に記載のキャッシュ付ディスク制
    御装置の障害処理方法において、上記第2の処理の判別
    で上記ホストコンピュータからのリード/ライト要求が
    有り、該リード/ライト要求が、上記第1の処理で上記
    ディスクドライブに書き込むトラックに対するものであ
    れば、上記ホストコンピュータからの上記リード/ライ
    ト要求に対応する処理を、上記キャッシュメモリと上記
    バックアップメモリのいずれか正常な方に対して行な
    い、さらに上記ホストコンピュータからの要求がライト
    要求であれば、該ライト要求に対応する処理を上記正常
    な方に対して行なった後、該正常な方のデータを上記予
    め定められたトラック単位で上記ディスクドライブへ書
    き込むことを特徴とするキャッシュ付ディスク制御装置
    の障害処理方法。
  4. 【請求項4】請求項2、もしくは、請求項3のいずれか
    に記載のキャッシュ付ディスク制御装置の障害処理方法
    において、上記ディスクドライブを複数接続し、各ディ
    スクドライブに、上記キャッシュメモリと上記バックア
    ップメモリ上ではライト処理されているが上記ディスク
    ドライブにはライトされていない未反映データの存在を
    許可するか否かを示す情報を付加し、上記未反映データ
    の存在を許可する情報を有するディスクドライブのみを
    処理の対象とすることを特徴とするキャッシュ付ディス
    ク制御装置の障害処理方法。
  5. 【請求項5】請求項1に記載のキャッシュ付ディスク制
    御装置の障害処理方法において、上記バックアップメモ
    リが正常な方の場合、上記第1の処理の代わりに、上記
    データの上記ディスクドライブへの書き込みを上記ディ
    スクドライブ単位で行なう処理を用いることを特徴とす
    るキャッシュ付ディスク制御装置の障害処理方法。
JP1303967A 1989-11-22 1989-11-22 キャッシュ付ディスク制御装置の障害処理方法 Expired - Lifetime JP2830218B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP1303967A JP2830218B2 (ja) 1989-11-22 1989-11-22 キャッシュ付ディスク制御装置の障害処理方法
US07/615,929 US5390186A (en) 1989-11-22 1990-11-20 Method of fault handling for a disk control unit with built-in cache

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1303967A JP2830218B2 (ja) 1989-11-22 1989-11-22 キャッシュ付ディスク制御装置の障害処理方法

Publications (2)

Publication Number Publication Date
JPH03164844A JPH03164844A (ja) 1991-07-16
JP2830218B2 true JP2830218B2 (ja) 1998-12-02

Family

ID=17927438

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1303967A Expired - Lifetime JP2830218B2 (ja) 1989-11-22 1989-11-22 キャッシュ付ディスク制御装置の障害処理方法

Country Status (2)

Country Link
US (1) US5390186A (ja)
JP (1) JP2830218B2 (ja)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5437022A (en) * 1992-12-17 1995-07-25 International Business Machines Corporation Storage controller having additional cache memory and a means for recovering from failure and reconfiguring a control unit thereof in response thereto
JP2963298B2 (ja) * 1993-03-26 1999-10-18 富士通株式会社 二重化共有メモリにおける排他制御命令のリカバリ方法および計算機システム
JP2905373B2 (ja) * 1993-10-01 1999-06-14 富士通株式会社 ディスク制御装置及びその制御方法
US5614914A (en) * 1994-09-06 1997-03-25 Interdigital Technology Corporation Wireless telephone distribution system with time and space diversity transmission for determining receiver location
US5548788A (en) * 1994-10-27 1996-08-20 Emc Corporation Disk controller having host processor controls the time for transferring data to disk drive by modifying contents of the memory to indicate data is stored in the memory
US5615335A (en) * 1994-11-10 1997-03-25 Emc Corporation Storage system self-test apparatus and method
JP3583829B2 (ja) * 1995-04-13 2004-11-04 株式会社日立製作所 外部記憶サブシステムの制御方法および制御装置
JPH096546A (ja) * 1995-06-19 1997-01-10 Toshiba Corp ディスク制御システム
US5941994A (en) * 1995-12-22 1999-08-24 Lsi Logic Corporation Technique for sharing hot spare drives among multiple subsystems
US5761705A (en) * 1996-04-04 1998-06-02 Symbios, Inc. Methods and structure for maintaining cache consistency in a RAID controller having redundant caches
US5787461A (en) * 1996-08-12 1998-07-28 Roadrunner Technology, Inc. High speed optical disk drive caching executable and non-executable data
JP3204143B2 (ja) * 1997-01-06 2001-09-04 日本電気株式会社 ディスクキャッシュの制御方法
US5958068A (en) * 1997-04-14 1999-09-28 International Business Machines Corporation Cache array defect functional bypassing using repair mask
FR2762462B1 (fr) * 1997-04-21 1999-05-28 Alsthom Cge Alcatel Systeme a stations receptrices de donnees installees en reseau
WO1999040516A1 (en) * 1998-02-04 1999-08-12 Hitachi, Ltd. Disk cache control method, disk array device, and storage device
US6961838B2 (en) * 2000-06-02 2005-11-01 Hewlett-Packard Development Company, L.P. Generating updated virtual disks using distributed mapping tables accessible by mapping agents and managed by a centralized controller
US6591335B1 (en) 2000-09-29 2003-07-08 Emc Corporation Fault tolerant dual cache system
US6604171B1 (en) 2000-09-29 2003-08-05 Emc Corporation Managing a cache memory
JP2005071196A (ja) * 2003-08-27 2005-03-17 Hitachi Ltd ディスクアレイ装置、及びその障害情報の制御方法
US7421535B2 (en) * 2004-05-10 2008-09-02 International Business Machines Corporation Method for demoting tracks from cache
US8205058B2 (en) * 2004-12-10 2012-06-19 International Business Machines Corporation Resource management for data storage services
JP2006227856A (ja) * 2005-02-17 2006-08-31 Hitachi Ltd アクセス制御装置及びそれに搭載されるインターフェース
US9152823B2 (en) * 2005-04-22 2015-10-06 Storagecraft Technology Corporation Systems, methods, and computer readable media for computer data protection
US7966450B2 (en) * 2005-09-01 2011-06-21 Micron Technology, Inc. Non-volatile hard disk drive cache system and method
JP2007199975A (ja) * 2006-01-26 2007-08-09 Hitachi Ltd データ処理システム及びデータ処理方法
EP2035930A2 (en) * 2006-06-08 2009-03-18 Xeround Systems Ltd. Method and system for backing up data and for facilitating streaming of records in replica-based databases
US20100251013A1 (en) * 2009-03-26 2010-09-30 Inventec Corporation Method for processing bad block in redundant array of independent disks
US8850114B2 (en) 2010-09-07 2014-09-30 Daniel L Rosenband Storage array controller for flash-based storage devices
JP5915079B2 (ja) * 2011-10-27 2016-05-11 富士通株式会社 書込制御プログラム、書込制御方法、書込制御装置およびシステム
TWI612420B (zh) * 2015-12-15 2018-01-21 仁寶電腦工業股份有限公司 硬碟提示燈的處理裝置
US11341063B2 (en) * 2019-01-31 2022-05-24 Dell Products L.P. Systems and methods for safely detecting indeterminate states of ranges in a self-encrypting storage resource

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3896419A (en) * 1974-01-17 1975-07-22 Honeywell Inf Systems Cache memory store in a processor of a data processing system
US4044337A (en) * 1975-12-23 1977-08-23 International Business Machines Corporation Instruction retry mechanism for a data processing system
US4357656A (en) * 1977-12-09 1982-11-02 Digital Equipment Corporation Method and apparatus for disabling and diagnosing cache memory storage locations
US4819154A (en) * 1982-12-09 1989-04-04 Sequoia Systems, Inc. Memory back up system with one cache memory and two physically separated main memories
JPS6079447A (ja) * 1983-10-07 1985-05-07 Hitachi Ltd キヤツシユ付デイスクサブシステム
US5201041A (en) * 1988-12-29 1993-04-06 International Business Machines Corporation Cache bypass apparatus
US5124987A (en) * 1990-04-16 1992-06-23 Storage Technology Corporation Logical track write scheduling system for a parallel disk drive array data storage subsystem

Also Published As

Publication number Publication date
JPH03164844A (ja) 1991-07-16
US5390186A (en) 1995-02-14

Similar Documents

Publication Publication Date Title
JP2830218B2 (ja) キャッシュ付ディスク制御装置の障害処理方法
KR101470713B1 (ko) 버퍼링된 저장을 이용하여 트랜잭션들을 가속화하기 위한 메커니즘들
US7853825B2 (en) Methods and apparatus for recovering from fatal errors in a system
US5379398A (en) Method and system for concurrent access during backup copying of data
JP2703479B2 (ja) タイム・ゼロ・バックアップ・セッションの安全保護機能を有するデータ処理方法及びシステム
JP2557172B2 (ja) タイムゼロ・バックアップ・コピー・プロセスにおける副ファイル状態のポーリングのための方法およびシステム
US6760814B2 (en) Methods and apparatus for loading CRC values into a CRC cache in a storage controller
US6772283B2 (en) Disk control device and method processing variable-block and fixed-block accesses from host devices
US5551003A (en) System for managing log structured array (LSA) of DASDS by managing segment space availability and reclaiming regions of segments using garbage collection procedure
US5197055A (en) Idle demount in an automated storage library
US4924466A (en) Direct hardware error identification method and apparatus for error recovery in pipelined processing areas of a computer system
US6463503B1 (en) Method and system for increasing concurrency during staging and destaging in a log structured array
US5239650A (en) Preemptive demount in an automated storage library
JPH0458051B2 (ja)
JPH0575134B2 (ja)
JPH0820986B2 (ja) 書き込みエラー検出用チェック・ビットの処理方法
US6101574A (en) Disk control unit for holding track data in non-volatile cache memory
US5694570A (en) Method and system of buffering data written to direct access storage devices in data processing systems
US6336164B1 (en) Method and system for preventing deadlock in a log structured array
US5586290A (en) Cache system of external storage device
US20050154832A1 (en) Consistency evaluation of program execution across at least one memory barrier
US5815656A (en) Method of validating memory structures in data processing systems
JP3814521B2 (ja) データ処理方法および装置
JP2973425B2 (ja) 障害処理方法およびそのための装置
JP3483296B2 (ja) 情報処理装置

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20070925

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20080925

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20080925

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20090925

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20090925

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20100925

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20100925

Year of fee payment: 12