JPS63247853A - Dasdキヤツシユ管理方法 - Google Patents

Dasdキヤツシユ管理方法

Info

Publication number
JPS63247853A
JPS63247853A JP63032994A JP3299488A JPS63247853A JP S63247853 A JPS63247853 A JP S63247853A JP 63032994 A JP63032994 A JP 63032994A JP 3299488 A JP3299488 A JP 3299488A JP S63247853 A JPS63247853 A JP S63247853A
Authority
JP
Japan
Prior art keywords
page
cache
error
sector
list
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.)
Granted
Application number
JP63032994A
Other languages
English (en)
Other versions
JPH0564814B2 (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPS63247853A publication Critical patent/JPS63247853A/ja
Publication of JPH0564814B2 publication Critical patent/JPH0564814B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1816Testing
    • 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
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)
  • Spectrometry And Color Measurement (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 A、産業上の利用分野 本発明は、記憶媒体の欠陥によるディスク・セクタ・エ
ラーを取り扱えるように、直接アクセス記憶装置(DA
SD)キャッシュを備えたデータ処理システムの動作方
法を改良することに関する。
具体的には、DASDキャッシュの不良セクタを取扱う
問題に対する低コストの解決策を提供する、高性能パー
ソナル・コンピュータの動作方法に関する。
B、従来技術 処理装置で処理すべき情報を記憶するためにハード・デ
ィスク・ドライブを使用することはよく知られている。
情報は、シリンダおよびそれぞれ所定の数のバイトを含
むセクタの所定のパターンに応じてディスクに記憶され
る。ドライブは複数のヘッドを持ち、データが記憶され
るディスクの各面に1つのヘッドが対応する。データは
ディスクから一時に1セクタずつ読み取られる。所望の
セクタにアクセスするには、まずヘッドを所望のセクタ
を含むシリンダに移動させ、所望のセクタに達するまで
ディスクをヘッド上で回転させなければならない。所望
のセクタに達すると、そのセクタを読み取り、その内容
をバッファに入れる。ディスク上のデータにアクセスす
るのに必要な合計時間を考えると、ヘッドの物理的な移
動の間に主な遅延が発生する。したがって、処理に大量
の入出力動作が必要なとき、性能を向上させるには、ヘ
ッド移動量をできるだけ減少させるのが非常に望ましい
DASDキャッシングは周知の技術であり、ヘッドの移
動量および物理的入出力動作量を減少させ′ ることに
よりシステムの性能を向上させる方法を提供する。こう
した技術によると、主記憶装置の一部をキャッシュとし
て使って、データのセクタのページを記憶する。所望の
セクタに最初にアクセスするとき、そのセクタだけでな
くその周囲の1つまたは複数のセクタもキャッシュに読
み込まれ、こうしたセクタへのその後のアクセスはディ
スク・ドライブ速度ではなく主記憶装置速度で行なわれ
る。次に処理するデータが前に処理されたデータの近く
に記憶されている確率が高いので、性能の改善が得られ
る。
C0発明が解決しようとする問題点 ディスク記憶媒体に欠陥があることから、当技術で周知
の一つの問題が発生する。すなわち、こうした欠陥を含
むセクタは不良とみなされ、使用できない。こうした不
良セクタは通常フォーマット化によって識別され、単に
不良セクタを飛び越すことでそうしたセクタが後で使用
されないようにされている。キャッシング・システムで
は、正常なセクタが初めにキャッシュに読み込まれたと
きに、同じページの付近のセクタがエラーを含んでいた
り不良の場合があるので、問題は一層複雑になる。本発
明者等に周知の従来技術の範囲内では、この問題は2つ
の方法で解決されてきた。第1の方法では、不良セクタ
を含むどのページも不良とみなし、エラー信号またはメ
ツセージをユーザに送る。第2の方法では、正常なセク
タだけがキャッシュに送られるようにディスク・コント
ローラを構成することができる。こうした解決策はハー
ドウェアによる解決策であり、比較的複雑で実行にコス
トがかかる。本発明は、ソフトウェアまたはプログラミ
ングによって容易に実施できる、比較的低コストで、高
性能のパーソナル・コンピュータに特に有益な効果的で
低コストの解決策を提供する方法を対象としている。
本発明の一目的は、DASDキャッシング・システムで
ディスク・セクタ・エラーを取り扱う新規な方法を提供
することにある。
もう一つの目的は、DASDキャッシング・システムを
備えたパーソナル・コンビエータでセクタ・エラーを取
り扱う低コストの解決策を提供することにある。
もう一つの目的は、周知のハードウェアをプログラミン
グすることで容易に実施できる、DASDキャッシング
・システムでセクタ・エラーを取り扱う方法を提供する
ことにある。
もう一つの目的は、ディスク・エラーを取り扱う問題を
容易に解決しながらユーザーに対して透明なキャッシン
グ機能をもたらす、市販のディスク・オペレーティング
・システム(DO8)で容易に使用できる方法を提供す
ることにある。
D0問題点を解決するための手段 要約すると、本発明によれば、複数セクタを含む各ペー
ジが主記憶装置に読み込まれるとき、各セクタが正常か
不良かに関する情報を記憶する独立したテーブルが構成
される。任意のセクタへの連続アクセスは、こうしたテ
ーブル内の情報を参照または検索し、不良またはエラー
であると指摘されたセクタを飛び越すことによって行な
われる。
E、実施例 以下の説明は2つの部分に分かれている。第1の部分で
はDASDキャッシュの一般的動作および本発明の方法
が機能する環境について説明する。
第2の部分では媒体エラーをどのように取り扱うかにつ
いて詳細に説明する。しかし、当然のことながら、本発
明の真髄は特定のソフトウェア実施態様ではなく、方法
にある。
キャッシュ この方法は、IBMパーソナル・コンピュータATなど
従来のデータ処理システム10で実施するのが好ましい
。こうしたシステム10は一般にプロセッサ12とそれ
に接続された主記憶装置14および入出力(Ilo)装
置15から構成される。こうしたシステムは、それぞれ
ディスク・ドライブ18に接続されている1つまたは複
数のディスク・コントローラ16を含むことがある。キ
ャッシュ20とデータ・バッファ21は主記憶装置14
内のデータ構造として形成されており、データ・バッフ
ァ21は、DO8により、ディスク・ドライブ18から
転送中のデータの各セクタを緩衝記憶するのに使用され
る。
第2図では、キャッシュ20は、多数のキャッシュ・ペ
ージ22−1ないし22−nを含むページ構造21を含
んでいる。キャッシュ20はさらにハツシュ・テーブル
24、フリー・リスト・ポインタ2B、LRUポインタ
28、MRUポインタ30およびエラー・リスト31を
含む。それらの詳細についてはこれから説明する。これ
ら6つの部分はキャッシュの大きさにかかわらず常に存
在する。
キャッシュ・ページ22:記憶中のキャッシュ・ページ
の構造を定義する。それは、どの物理ページが表わされ
ているかをタグ付けする情報、LRUリストの一部、ハ
ツシュ・テーブル競合リストの一部およびセクタごとに
まとめられたキャッシュ・ページの実際のデータを含ん
でいる。
LRUポインタ28:キャッシュ内において不使用期間
が最も長いキャッシュ・ページ(LRUページ)を指す
。すなわち、キャッシュ内のその他のページはすべてL
RUポインタが指すLRUページよりも最近にアクセス
されたものである。
MRUポインタ30:キャッシュの最も最近使用された
キャッシュ・ページ(MRUページ)を指す。すなわち
、キャッシュ内のどのページもMRUポインタが指すM
RUページよりも最近にはアクセスされていない。
キャッシュ・ハツシュ・テーブル24:このテーブルは
キャッシュ・ページを指すポインタのベクトルである。
このベクトルの長さは311項目である。セクタが要求
されると、キャッシュはその要求を捕捉してハツシング
によりこのテーブルにアクセスし、そのセクタがキャッ
シュ内にあるかどうかを判定する。ハツシュ・テーブル
を使用すれば、たとえどんなに多数のページがキャッシ
ュにあっても、そのセクタがキャッシュ内にあるかどう
かを判定するのにほとんど時間がかからない。
フリー・リスト・ポインタ28:これはキャッシュで現
在使用中でないキャッシュ・ページを指す。最初、キャ
ッシュ内のページはすべてこのリストに入っている。あ
るページがキャッシュにないことがわかると、そのペー
ジはフリー・リストから取り出されてキャッシュに入れ
られる。
エラー・リスト31:以下で詳細に説明するこのデータ
構造は、ページ・エラーの履歴を示すのに使用される。
表1にキャッシュ・ページ22のフィールドをリストす
る。この構造の各フィールドは以下で定義する。すべて
のポインタが2バイトで保持されていることに注意され
たい。これはインテル8088/8018B/8028
6/8038Bフアミリーのようなセグメント化アーキ
テクチャに対応する。ポインタに記憶される値はセグメ
ント(8088/80188)またハセレクタ(8゜2
86/80386)である。0の仮定オフセットが各デ
ータ構造と関連づけられている。
様々なフィールドの意味は次の通りである。
フィールド1:このフィールドは、ページ内のどのセク
タがあり、どのセクタが有効データを含んでいるか、お
よびエラーによりどのセクタが喪失しているかを示すビ
ットまたはフラグを含む。
フィールド2:このフィールドは、この特定ページがど
のドライブに含まれているかを判定する。
フィールド3:このフィールドは、ドライブ上のページ
の開始セクタの相対ブロック・アドレス(RBA)を含
む。
フィールド4:このフィールドは、このページよりも前
に使用された次のページを指す。これがLRUページで
ある場合、このフィールドは値Oを含む。このフィール
ドはフリー・リストでページを一緒にリンクするのにも
使われる。
フィールド5:このフィールドは、このページよりも最
近使用された次のページを指す。これがMRUページで
ある場合、このフィールドは値0を含む。
フィールド6:このフィールドはハツシュ・テーブルの
競合リストにある次ページを指す。
フィールド7:このフィールドはハツシュ・テーブルの
競合リストにある前ページを指す。
フィールド8:このフィールドはDASDから落ちたペ
ージのデータを含む。このページが複数回参照される場
合、要求されるページの部分は、装置から読み取られる
のではなくこのバッファからコピーされる。
フィールド     内容        バイト1 
  存在フラグ       2 2   ドライブID        13    R
BA           44    LRUリスト
の次ページ 25    LRUリストの前ページ 2
6   競合リストの次ページ  2 7   競合リストの前ページ  2 8   ページ・バッファ    1〜8セクタ表1 
キャッシュ・ページ22 各RBAは次式によって決まる。
RBA=((CN x NH)十HN)x  SPT+
SN           (式1)ただし、CNはシ
リンダ番号、NHはドライブ1台当たりのヘッド数、H
Nはヘッド番号、SPTはトラック1本当たりのセクタ
数、SNはセクタ番号である。
ハツシュ指標は次式によって決まる。
ハツシュ指標=RBA  shr log (ページ・
サイズ) mod 311            (
式2)ただし、shrはページ・サイズの2を底とする
対数に応じたビット数だけ右にシフトされたRBA。
ページ・サイズは1ページのセクタ数、−〇dは剰余を
戻すモジューロ関数である。
ハツシュ・テーブルの長さとしては、比較的大きな素数
である311が好ましい。311は大きな素数なので、
キャッシュのアクセス中にアプリケーションがその値ま
たはその値の倍数をたびたび使用することはまずない。
これにより、アプリケーションがハツシュ・アルゴリズ
ムと同期する機会が減少して競合チェーンが短くなるの
で、ハツシュは迅速に解決できる。
第3図で、テーブル24の様々な指標位置0−310は
、0を含むか、またはこうした位置に連鎖された最初の
そしておそらく唯一の、キャッシュ・ページを指すポイ
ンタを含む。選択されたハツシュ・テーブル項目が値0
を含む場合、その項目が1旨すページはなく、そのペー
ジはキャッシュに入っていない。これは「ページ不在」
と見なされる。たとえば指標位置1は、ゼロを含み、キ
ャッシュ内にその指標と関連するページがないことを示
す。一方、ハツシュ・テーブル項目が0でない場合、そ
この値がキャッシュ・ページ22を指すポインタとして
使用される。キャッシュ・ページ内のドライブおよびR
BAが要求されたドライブおよびRBAと比較される。
それらが同じであることがわかると、それはrページ・
ヒツト」と見なされ、要求されたページはキャッシュ内
にある。
それらが同じでない場合、このページ内の次競合ページ
値が次のキャッシュ・ページを指すのに使用される。こ
のフィールドに値0が入っていた場合、競合チェーンの
終端に達したのであり、要求されたページはキャッシュ
内にない。これも「ぺ一ジ不在」である。図のように、
ページAないしFがテーブル24から求められ、異なる
長さの3つの個別チェーンを形成する。
ページ22がキャッシュ内で見つかった場合、見つかっ
たページが競合チェーンの先頭にくるように、ハツシュ
・テーブル項目の競合チェーンが再配列される。ここで
の考えは、競合チェーンがMRUの順に並んでいる場合
、最近使用されたページが再びアクセスされる確率が高
いために、競合チェーンを下る走査が、短くなるという
ものである。キャッシュ・ページが複数の物理セクタを
表わす場合、とくにそうである。
ページがキャッシュにないことがわかると、新しいペー
ジが割り振られる(このことを実行する手段そのものに
ついては後で説明する)。ページはディスクから読み取
られ、ページ・バッフ1(フィールド8)に入れられる
。新しいキャッシュ・ページ構造は、ページがキャッシ
ュにないことを判定するのに使われたのと同じアルゴリ
ズムでハツシュ・テーブルに対して構成される。重要な
違いが1つある。ハツシュ・テーブル項目の競合チェー
ンは変更されない。代わりに、競合チェーンの先頭に新
しいページが挿入されるので、競合チェーンは依然とし
てMRUの順に並んでいる。さらに、LRUリストのポ
インタは最も最近使用されたものとしてこのページを示
すように再配列される。
要求されたセクタがキャッシュにないことがわかったと
きだけ、新しいページ22がキャッシュ20に入れられ
る。その方法は前項で説明した。
この項では、ページを実際にどう割り振ればキャッシュ
構造に入れることができるようになるか説明する。ペー
ジを割り振る方法は2つある。キャッシュ・フリー・リ
ストに1つまたは複数のページがある場合、その1ペー
ジがフリー・リストから取り除かれて、新しいページに
割り振られる。
キャッシュ・フリー・リストにページがない場合、LR
Uポインタ28が指すページがキャッシュ構造から取り
除かれ、新しいページに再び割り振られる。第4図にキ
ャッシュ・フリー・リストの構造を示す。フリー・リス
ト・ポインタ26はリストの先頭にあるキャッシュ・ペ
ージ22を指し、ポインタ・フィールドの1つが次のフ
リー・ページを指す。最初、すべてのキャッシュ・ペー
ジがフリー・リストにあり、どのページもハツシュ・テ
ーブルまたはLRUリストで指されていない。
ディスクに要求が出され、キャッシュ・ページ不在があ
る場合、ページ22がフリー・リストから次々に取り除
かれ、遂にはフリー・リストのページがなくなる。そう
なると、LRUリストに基づいてページが再使用される
。第5図にLRUリストの構造を示す。リストの終端は
LRUポインタ28およびMRUポインタ30により示
され、リスト中の各ページ22は次ページおよび前ペー
ジを指すポインタによって連鎖されている。
キャッシュは常にLRUリストからページを取り除く前
にフリー・リストから割り振ろうと試みるので、キャッ
シュが作動すれば、キャッシュに更に多くのページを動
的に追加することができる。
キャッシュがソフトウェアのみで実施されている場合、
これは特に望ましい。この背後にある理由は、オペレー
ティング・システムが、主記憶装置が完全には利用され
ていないことを知り、未使用の記憶域の一部(または全
部)をキャッシュに与えれば記憶域が活用できると判定
できることである。
逆(キャッシュからページを取り除く)も、LRUリス
トの終端から1つまたは複数のページを取り除くことに
よって可能である。これは、ページが記憶装置内で物理
的に連続しているとは限らないので望ましくないことが
ある。しかし、十分に精巧なオペレーティング・システ
ムがあれば、記憶装置の断片化は問題にならない。
ページが(ヒツトまたは割り振り中の新しいページによ
って)キャッシュ内でアクセスされるとき、そのページ
はLRUリストの現在の位置から取り出され、MRUポ
インタが指すリストの先頭に移される。キャッシュ・ペ
ージ構造はポインタに基づいているので、LRUリスト
内でのページの移動は、既知のやり方でポインタ値を移
動しさえすれば実行できる。
キャッシュ・ピニング(キャッシュに単数または複数の
ページを常駐させること)がこの設計で容易に実行され
る。ページをピニングするには、L RU IJストか
らページを取り出すだけでよい。
ページはLRUリストから再割振りされるので、LRU
リストにないページは決して再割振りされない。ピニン
グが望ましいのは、ある数ページがキャッシュに保持さ
れるほど頻繁にアクセスされないときである。こうする
と、ディレクトリ、割振りビット・マツプ、システム・
ファイルなどのファイル・システム構造を大型ファイル
の読取りによってフラッシュさせることなくキャッシュ
内に保持して、高性能を得ることができる。有用な形で
キャッシュ・ピニングを実行するには、キャッシュとオ
ペレーティング・システムまたは少なくともそのユーテ
ィリティの間の協力が望ましい。
ユーティリティは、別の合図があるまで要求されたペー
ジをLRUリス士に入れないようにとキャッシュに合図
する。次いで、ユーティリティはセクタ、ファイルなど
を読み取り、その後すべてのキャッシュ要求でLRUリ
ストにページを入れるようにとキャッシュに合図する。
キャッシュは、一部のページがLRUリストの一部では
なく、従ってアクセスされてもLRUリストに挿入して
はならない場合があることを認識する必要がある。これ
は、キャッシュ・ヒツトが起こったとき、フィールド4
および5(表1参照)が0であるかどうか調べることに
よって行なえる。
それらが0である場合、ページはLRUに入れられない
。こうしてピニングをサポートするのに特殊ビットやフ
ラグをキャッシュ・ページ構造に含める必要がない。
第6図に、本発明の方法がCACHESYSと呼ばれる
一連の処理手順でどう具体化されるかを一般的に示す。
この手順は、通常のプログラムおよびハードウェアと対
話して本発明の方法を実行する。アプリケーション・プ
ログラム40がディスク18からデータを読み取る必要
があるとき、DO842が呼び出され、DO842は、
通常の割込み13Hを用いて、基本人出カシステム(B
iO2)44を呼び出す。CACHESYS50はDO
842とBIO844の間に挿入され、以下で詳細に説
明する様々な処理手順を捕捉し実行するための割込み処
理ルーチンとして構成できる。
CACHESYS50はDO8に対してはBIO844
として働いているように見え、BIO844にとっては
DO842のように見える。すなわち、CACHESY
S50の動作はDO342およびBIO844に対して
透明である。B I O・。
44の制御下で、ディスク18からのデータはハードウ
ェア4θから主記憶装置14のデータ・バッファ21に
転送され、そこで通常のやり方でDO8を介してアプリ
ケーション・プログラムにとって利用可能になる。CA
CHESY;850が作動しているとき、および割込み
13Hの捕捉に応答して、必要なデータを含む所望のセ
クタがすでにドライブ・キャッシュ20にある場合、そ
のデータはバッファ21に入れられ、アプリケーション
・プログラムにとって利用可能になる。データがキャッ
シュ20にない場合、CACHESYS50はBIO8
44を呼び出して、ディスク18からバッファ21にデ
ータを読み取らせる。そこから、データはアプリケーシ
ョン・プログラム40にとって利用可能になる。さらに
、こうしたデータを初めて使用する場合、データはキャ
ッシュ20にも入れられてその後の動作で利用できるよ
うになる。さらに、近くの連続するセクタも事前に取り
出されてキャッシュ20に読み込まれる。
第7図では、割込みの受取りによって処理手順50が呼
び出されると、ステップ100で、所望のセクタのRB
Aからハツシュ・テーブル24への指標を計算する(式
2参照)。ステップ102で、その指標のところのハツ
シュ・テーブルの内容をページ・ポインタとして取り出
し、ステップ104でページ・ポインタがゼロに等しく
競合チェーンの終端を示しているかどうか判定する。
ゼロに等しい場合、ステップ106で新しいページが読
み取られ、ステップ108で新しいページがキャッシュ
に入れられる。その後、ステップ110でDO8とアプ
リケーションに戻る。
ステップ104の結果として、ページ・ポインタがゼロ
に等しくない場合、ステップ112および114で、ペ
ージ・ポインタが所望のページを指しているかどうかを
判定する。これは、ステップ112で、まずページ・ポ
インタ・ドライブ仕様とデータを含む所望のドライブと
を比較することによって行なわれ、それが同じドライブ
の場合、ステップ114で、ページ・ポインタのRBA
がRBAマスクとの論理積を取ったRBAと比較される
。ステップ112と114で否定の結果が出た場合、ス
テップ116で競合チェーンの次のページを指すように
ページ・ポインタを更新し、ステップ104に戻る。所
望のページに達すると、ステップ114から118に移
る。
ステップ118ないし130の一般的な目的は、要求さ
れたセクタがキャッシュ・ページにあるかどうか検査す
ることである。そこにある場合、ステップ130の結果
が肯定となってステップ110に戻り、セクタ・データ
がそのキャッシュ・ページ22からバッファ21に転送
される。ない場合は、ステップ130の結果が否定とな
ってステップ106に戻り、所望のセクタを含むページ
を読み取る。ステップ118ないし130の間に何が起
こるかを理解するために、ここで新しいページがどのよ
うにキャッシュに読み込まれるかを考察することが望ま
しい。
ステップ106は一般的なステップであり、それに関す
る詳細なステップが第8図ないし第12図に示しである
。しかし、これらの様々なステップについて詳細に説明
する前に、そこで使用するいくつかの変数とデータ構造
に関して説明を行なっておく。
エラー処理 この処理で使用する様々な変数の意味を表2にリストす
る。これらの変数は処理の開始時に初期設定される。エ
ラー・リスト31(第2図)は、第13図に概略的に示
すように、エラー・ハツシュ・テーブル150、競合チ
ェーン152およびフリー・リスト154を含み、1ペ
ージに1項目である。競合チェーン152とフリー・リ
スト154は、第3図および第4図に関連して説明した
処理手順と同様に構成され処理される。ハツシュ・テー
ブルを使用するのは、エラー・リストが比較的小さくて
も、物理的入出力があるたびにそれが走査され、従って
探索時間をできるだけ短くすることが望ましいからであ
る。ハツシュ・テーブル150は長さ64指標であり、
この長さが選ばれたのは、それが2のべき乗であり、ペ
ージRBAが除算ではなくシフトとマスクで容易に操作
できるからである。項目の素数ではなくこの数が選ばれ
た理由は、ディスク上のエラーが普通はぼ均一に分布し
ており、キャッシュが物理入出力を実行するたびにこの
テーブルがアクセスされるので、速度が非常に重要だか
らである。ハツシュ・テーブル150はエラー・リスト
項目の競合チェーン152を指す。
19文        」り末 RBA:      読み込まれるページのRBAバッ
ファ・ポインタ: データが読み込まれる場所を 指すポインタ ページ・サイズ: 1ページのセクタ数(2,4または
8) RBAマスク:   =NOT(ページ・サイズ−1)
(すなわち、0FFFF FFFC) RBAシフト:   log2(ページ・サイズ)(す
なわち、ページ・サイズ が2.4または8の場合1. 2または3) SECカウント・マスク: ページ・サイズ−1 エラー・マスク二 ページ・サイズを表わす数と同数の
1ビツトを1ワード内 で右寄せしたもの(すなわち、 ページ・サイズが2.4また は8の場合0003.000 Fまたは0OFF) 表2 変数 表3(下記)に、エラー・リストの各項目の構造を定義
する。
フィールド 前車        バイト1     
存在フラグ     2 2      ドライブID      13    
 ブロック・アドレス 4 4     次競合項目     2 5     前競合項目     2 フイールド      1韮 1  このフィールドはあるページのどのセクタにエラ
ーがあるかを示す1組のフラグまたはビットを含む。不
良セクタはフィールド内の対応する位置におけるOピッ
トで示され、有効データを含むセクタは1ビツトで示さ
れる。
2  このフィールドはページが含まれているドライブ
のドライ、ブ番号を含む。
3  これはページの最初のセクタのRBAである。
4  このフィールドは競合チェーン中の次のエラー・
リスト項目を指す。
5  このフィールドは競合チェーン中の前のエラー・
リスト項目を指す。
表3 エラー・リスト構造 第8図では、ステップ132で新しいページの読込み処
理が始まる。第8図に示した一般的処理は、キャッシュ
が読み込むべきページにエラーがあることを検出したか
どうかを判定するものである。ステップ132で、所望
のセクタのRBAとRBAマスクの論理積を取り、ステ
ップ134でその結果を使ってエラー・ハツシュ・テー
ブル150への指標を計算する。指標の計算は、RBA
シフトの量だけステップ132の結果を右にシフトした
ときのモジューロ64演算からの剰余として出される。
次に、ステップ136で、変数ポインタが、134から
計算された指標のところにあるエラー・ハツシュ・テー
ブルの内容に設定される。ポインタがゼロに設定されて
いない場合、ステップ138から140に分岐し、競合
チェーンのエラー項目がある状態を表わす。次に、ステ
ップ140でドライブIDがエラーが発生したページを
含むドライブのIDと同じであるかどうかを判定する。
同じでない場合、ステップ144でポインタを指標づけ
し、競合チェーンの次の項目に進む。ステップ140の
結果が肯定である場合、ステップ142で、所望のRB
Aがエラー・リスト項目のそれと対応しているかどうか
を判定する。
そうでない場合、ステップ144でポインタを指標づけ
し、競合チェーンの次の項目に進む。ステップ138の
結果が肯定であると、関連するページに以前エラーがな
かったこと、およびディスク・コントローラに単一コマ
ンドを送ってページのセクタ数を読み取ることによりペ
ージ全体の読取りが試みられることを示す。ステップ1
42の判定が肯定であると、そのページに以前エラーが
あったこと、およびディスク・コントローラに複数のコ
マンドを送ってその度に1セクタずつページの読取りが
行なわれることを示す。
第9図で、BIosの呼出しによって、ステップ180
でページ・サイズ、1ページ当たりのセクタ数および開
始セクタのRBAを獲得する。読取り中にエラーが発生
しなかった場合、ステップ162から164に分岐し、
そこで、すべてのセクタがそのページにあることを示す
存在ビットをセットする。すなわち、こうしたセクタの
読取り中に不良セクタやエラーに出会わず、有効データ
が各セクタに入っている。ステップ166でそのセクタ
が読み込まれるデータ・バッフ121のアドレスを指す
変数現ポインタを設定する。次いで、ステップ168な
いし176で、示された様々な変数を初期設定する。次
に、BIosを呼び出し、ステップ178で、現RBA
に関連する1つのセクタが読み取られる。エラーが発生
しない場合、ステップ180からステップ182に分岐
する。
こうした読取り中にエラーが発生した場合、ステップ1
84でこうしたエラーに関連する存在フラグがビット・
マスクと排他的論理和をとることによってゼロに設定さ
れ、エラーすなわちセクタが不良であったことを示す。
次にステップ186で、ステップ178の読取り動作に
由来する戻りコードにしたがってエラー・コードを設定
する。ステップ182ないし188で、現RBA1現ポ
インタ、ビット・マスクおよびカウントを次のセクタを
指すように更新する。次に、ステップ190でカウント
がゼロになるまで処理が繰り返される。次いで、ステッ
プ192でいま読み取ったばかりのページがエラー・テ
ーブル31にあるかどうかを判定する。
そのページがエラー・テーブルにない場合、ステップ1
92からステップ193(第10図)に分岐し、そこで
新しいエラー・ポインタを設定することによってエラー
・フリー・リスト154がら要素を得る。次いで、ステ
ップ194でエラー・フリー・リストが空かどうか、す
なわち新しい工ラー・フリー・ポインタがゼロに等しい
かどうかを判定する。等しい場合、ステップ194から
204に分岐し、そこで存在ビットとエラー・コードを
戻す。エラー・フリー・リストが空でない場合、ステッ
プ196ないし202で新しいエラー項目をエラー・ハ
ツシュ・テーブルに挿入する。
これを行なうには、ステップ196でエラー・フリー・
ポインタを次のエラー・フリー・ポインタに等しく設定
し、ステップ198で新しいエラー・ポインタを対応す
る存在ビットに等しく設定し、エラー・ハツシュ・テー
ブルの指標からの値に応じて次の新しいエラー・ポイン
タを設定し、次いでステップ202でエラー・ハツシュ
指標を新しいエラー・ポインタに設定する。
第11図の処理手順は、要求されたセクタに以前にエラ
ーがあったかどうかを検査するものである。ステップ2
06ないし218はステップ118ないし130と同一
であるが、入口点と出口点に応じて変わってくる。すな
わちこの変化のため、ステップ118ないし130では
要求されたセクタがキャッシュ・ページにあるかどうか
を検査し、すべてのセクタが1ページにあるときステッ
プ130で肯定の結果が得られる。結果が否定であると
、要求されたセクタのすべてが同一ページにあるのでは
なく、オペレーティング・システムが何らかの形のエラ
ー回復を実行しようとしなければならないことを示す。
他方、ステップ206ないし218は、要求されたセク
タに以前にエラーがあったかどうかを検査するのに使用
される。ステップ218の結果が肯定であると、そのペ
ージにはエラーがあるが要求されたセクタにはエラーが
ないことを示し、218の結果が否定であると、要求さ
れたセクタにエラーがあることを示す。
ステップ206で、RBAとSECカウント・マスクが
論理積をとられて、その結果が変数シフト・カウントに
記憶される。次にステップ208で、存在ビットをシフ
ト・カウントの量だけポインタの存在ビットを右にシフ
トしたものに等しく設定する。ステップ210でマスク
・シフトをページ・サイズからセクタの数を差し引いた
ものに等しく設定する。ステップ212でマスク・シフ
トに応じた量だけエラー・マスクを右にシフトさせるこ
とによってテスト・マスクを作成する。その後、ステッ
プ214で存在ビットとテスト・マスクの論理積を取り
、ステップ216でテスト・マスクの排他的論理和を取
り、ステップ218で結果をテストする。この処理手順
が有益なのは、ループや複数の判断経路に頼らずに、要
求されたセクタにエラーがあるかどうかを迅速に判定で
きるからである。以下に示す例を使えばもっとよく理解
できると思われる。この例では、ページ・サイズは8セ
クタで、最後にページを読み取ったときそのページのセ
クタ5(第6番目のセクタ)にエラーがあり、その対応
する存在ビットがゼロに設定されているものと仮定する
。表4に、要求されたセクタがエラーのあるページにあ
るが、要求されたセクタはエラーの1つではないとき処
理手順がどのように働くかの例を示す。表5には、以前
の読取り中に要求されたセクタにエラーがあったときの
、この処理手順の例を示す。この例では、そのページの
セクタ4から始まる2つのセクタを読み取る。
0000 0000 1111 1111  エラー・
マスク0000 0000 0000 0011  テ
スト・マスク0000 0000 1101 1111
  存在フラグ0000 0000 0001 101
1  ステップ2120000 0000 0000 
0011  ステップ214oooo  oooo  
oooo  oooo  ステップ216表4 要求セ
クタにエラーがない場合 0000 0000 1111 1111  エラー・
マスク0000 0000 0000 0011  テ
スト・マスク0000 0000 1101 1111
  存在フラグ0000 0000 0000 110
1  ステップ2120000 0000 0000 
0001  ステップ2140000 0000 00
00 0010  ステップ216表5 要求セクタに
エラーがある場合 第12図では、ステップ220はステップ218(第1
1図)での判定が否定であった結果であり、ポインタ存
在ビットに応じて存在ビットが設定される。ステップ2
22でカウントをページ・サイズに等しく設定する。ス
テップ224で現RBAをRBAに等しく設定し、ステ
ップ226で現ポインタをデータ・バッファへのポイン
タに等しく設定し、ステップ228でビット・マスクを
1に等しく設定する。次いで、ステップ230で、存在
ビットとビット・マスクの論理積をとることによって現
セクタに前にエラーがあったかどうかを判定する。その
結果がゼロでない場合、ステップ232で、BIO8呼
出しによって、現RBAの1セクタを読み取る。次にス
テップ234で、そうした読取り中にエラーがあったか
どうか判定する。エラーがあった場合、ステップ236
で、エラーが以前あったことを示すように存在ビットを
設定し、ステップ238でエラー・コードを保管する。
ステップ240で現RBAを増分することにより、ステ
ップ240とそれ以後のステップでは次のセクタに移動
する。次いで、242で現ポインタを1セクタ当たりの
バイト数で増分し、ステップ244でビット・マスクを
1つ左にシフトする。ステップ246でカウントを減分
する。
カウントがゼロになると、ステップ204に分岐する。
そうでなければ、ステップ248で、すべてのセクタが
読み取られたのではないと判定し、ステップ230に戻
ってこの処理を繰り返す。
以下に処理手順の動作を要約する。媒体の欠陥はキャッ
シュ・ページ構造中の存在フラグで管理される。ディス
クからページ読込みが試みられた時にエラーが戻される
と、キャッシュは以下に示す方式で回復する。
1、ページ、の最初のセクタに戻る。
2、一時に1セクタずつページ・バッファに読み込む。
セクタをうまく読み込むたびに、対応する存在ビットを
セットする。
3、セクタの読み取り中にエラーに遭遇すると、そのセ
クタの存在ビットがクリアされ(0にセットされ)、そ
のセクタが読み込まれているかのように当該のポインタ
が更新される。
4、ページのすべてのセクタが(一度に1つずつ)読み
取られると、存在ビットを走査して、キャッシュから要
求された1つまたは複数のセクタが喪失しているかどう
か、すなわち、対応する存在ビットがOにセットされて
いるかどうかを判定する。その場合、装置からの読み取
り中に受は取った最後のエラーが要求元に戻される。
要求に対応するページがキャッシュ中にすでにある場合
の手順はやや異なっている。これは、以下に示す方式で
処理される。
1、存在ビットを走査して、1つまたは複数の要求され
たセクタが喪失しているかどうかを判定する。どれも喪
失していない場合、キャッシュは正常の方式で動作し、
データは要求元に戻される。
2.1つまたは複数のセクタが喪失している場合、ディ
スクから読み取る必要のあるセクタだけが読み取られる
。読取り中にエラーに遭遇しなかった場合、当該のセク
タがキャッシュ・ページ中に存在していることが示され
、処理が続行する。
この方法を用いると、データを失ったりキャッシュを一
層複雑にすることもなく、キャッシュは媒体中のエラー
に対応する「穴」をもつことができる。また、キャッシ
ュがオペレーティング・システムのタスクをより難しく
することなく、エラーがあった場合にオペレーティング
・システムはオペレーションを再試行しデータを回復す
ることができる。
キャッシュがエラーに遭遇すると、ページのどのセクタ
にエラーがあるかを判定し、エラーのあるセクタに対応
する「穴」をページに残す。また、存在フラグと呼ばれ
る16ビツト値がエラー回復処理によって生成される。
これらのフラグにゼロ・ビットが含まれる場合、そのペ
ージは1つまたは複数のエラーをもつ。
ページにエラーがある場合、キャッシュはこのページに
以前にエラーがあったかどうかを判定する。キャッシュ
は、ページのRBAを用いたハツシングによりエラー・
リストにアクセスしてそのページがリスト中にあるかど
うか確かめることによってこれを行なう。そのページが
リストにない場合、リストに追加される。そのページに
以前にエラーがあった場合、以下のいずれか1つのこと
を行なうことができる。
1、以前の存在ビットを保持する。
2、存在ビットを作成したばかりの存在ビットで置き換
える。ソフトウェア・キャッシュが実施したのがこれで
ある。
3.2組の存在ビットの論理積をとり、その結果を保管
する。これは、あるページのあるセクタにエラーがあっ
た場合、特に要求しない限りそれは読み取られないこと
を意味する。
4.2組の存在ビットの論理和をとり、その結果を保管
する。これは、あるページのあるセクタがかつてうまく
読み取られた場合、キャッシュは常にその読取りを試み
ることを意味する。
すべての存在ビットがゼロである場合、その項目はエラ
ー・リストから取り出される(または少なくとも入れら
れない)。そうする理由はいくつかある。第1に、そう
するとエラー・リストをずっと小さくできる。そして、
オペレーティング・システムは製造上の媒体の欠陥があ
るときにはトラック全体の割振りを解除しようとするの
で、一般にこれらの領域の読取りを試みない。第2に、
ページに正常なセクタがない場合、オペレーティング・
システムは一般的なエラー回復状態にあり性能は重要で
はない。キャッシュはまたそのページにほとんど関係し
ないので、そのエラーの追跡によってスペースを浪費す
ることもない。
キャッシュに対して要求が出され、その結果キャッシュ
・ミスが発生したときは、システムは、まず読み取ろう
としていたページに以前にエラーがあったかどうかを判
定する。そのページに以前にエラーがあった場合、シス
テムは要求されたセクタの1つにエラーのフラグがつい
ていたかどうか確かめる。要求されたセクタにエラーが
なかった場合、エラーのあったセクタを飛び越して、そ
のページのセクタが一時に1つずつ読み取られる。
こうして、エラーは回避される。
要求されたセクタにエラーがあった場合、それはキャッ
シュによって読み取られるので、要求元によるエラーの
再試行が、許される。エラー回避が行なうことは、明示
的に要求されていない場合に、キャッシュが以前にエラ
ーがあったセクタを事前に取り出すのを、防止すること
だけである。
【図面の簡単な説明】
第1図は、本発明の方法が実施されるパーソナル・コン
ピュータ・システムの概略図である。 第2図は本発明で使用するキャッシュ・データ構造の概
略図である。 第3図はページがハツシュ・テーブルでどのように参照
されるかを示す概略図である。 第4図はフリー・ページ・リストを示す概略図である。 第5図はLRUリストを示す概略図である。 第6図は、様々なプログラムとハードウェアが一般的に
本発明にどのように関わっているかを示れ図である。 第13図はエラー・リスト・データ構造を示す概略図で
ある。 出願人  インターナショナル・ビジネス・マシーンズ
拳コーポレーション 代理人  弁理士  頓  宮  孝  −(外1名) 第 3 回 纂 4 図 第 5 口 トー LRUリスト上のAイ・lラユ公−ジー−′jF
、6  回

Claims (1)

  1. 【特許請求の範囲】 DASDから読み取られたデータを、所定数のセクタか
    ら成るページ単位で記憶するDASDキャッシュを備え
    たDASDキャッシュ・システムにおいて、 セクタ読取り要求に応答して、所望のセクタを含むペー
    ジを前記DASDから読み取り、セクタごとにエラーの
    有無を調べ、どのセクタにエラーがあるのかを示す標識
    を前記DASDキャッシュに記憶することを特徴とする
    DASDキャッシュ管理方法。
JP63032994A 1987-03-30 1988-02-17 Dasdキヤツシユ管理方法 Granted JPS63247853A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/032,214 US4972316A (en) 1987-03-30 1987-03-30 Method of handling disk sector errors in DASD cache
US32214 1987-03-30

Publications (2)

Publication Number Publication Date
JPS63247853A true JPS63247853A (ja) 1988-10-14
JPH0564814B2 JPH0564814B2 (ja) 1993-09-16

Family

ID=21863717

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63032994A Granted JPS63247853A (ja) 1987-03-30 1988-02-17 Dasdキヤツシユ管理方法

Country Status (18)

Country Link
US (1) US4972316A (ja)
EP (1) EP0284663B1 (ja)
JP (1) JPS63247853A (ja)
KR (1) KR940005786B1 (ja)
CN (1) CN1014565B (ja)
AT (1) ATE75070T1 (ja)
BE (1) BE1001066A4 (ja)
CA (1) CA1288870C (ja)
DE (2) DE3778347D1 (ja)
ES (1) ES2031114T3 (ja)
FR (1) FR2613506B1 (ja)
GB (1) GB2202976B (ja)
GR (1) GR3004931T3 (ja)
HK (1) HK65492A (ja)
IT (1) IT8819949A0 (ja)
MY (1) MY102811A (ja)
PH (1) PH27346A (ja)
SG (1) SG68092G (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008515112A (ja) * 2004-10-01 2008-05-08 イーエムシー コーポレイション 仮想順序付け書き込み
JP2011238176A (ja) * 2010-05-13 2011-11-24 Toshiba Corp 情報処理装置およびドライバ
JP2011238175A (ja) * 2010-05-13 2011-11-24 Toshiba Corp 情報処理装置およびドライバ
US8255645B2 (en) 2004-05-03 2012-08-28 Microsoft Corporation Non-volatile memory cache performance improvement
US10509730B2 (en) 2008-09-19 2019-12-17 Microsoft Technology Licensing, Llc Aggregation of write traffic to a data store
USRE49818E1 (en) 2010-05-13 2024-01-30 Kioxia Corporation Information processing method in a multi-level hierarchical memory system

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2637788B2 (ja) * 1988-09-02 1997-08-06 株式会社日立製作所 ディスクキャッシュ制御方式および情報処理システム
JP2954227B2 (ja) * 1989-02-15 1999-09-27 キヤノン株式会社 情報処理方法
US5347642A (en) * 1989-11-30 1994-09-13 Nec Electronics Inc. Cache memory management unit
US5287363A (en) * 1991-07-01 1994-02-15 Disk Technician Corporation System for locating and anticipating data storage media failures
WO1992008229A1 (en) * 1990-11-05 1992-05-14 Disk Technician Corporation System for locating and anticipating data storage media failures
JP2625609B2 (ja) * 1991-07-10 1997-07-02 インターナショナル・ビジネス・マシーンズ・コーポレイション ディスク記憶装置
JPH07504527A (ja) * 1992-03-09 1995-05-18 オースペックス システムズ インコーポレイテッド 高性能の不揮発性ram保護式の書き込みキャッシュアクセラレータシステム
US5420983A (en) * 1992-08-12 1995-05-30 Digital Equipment Corporation Method for merging memory blocks, fetching associated disk chunk, merging memory blocks with the disk chunk, and writing the merged data
US5309451A (en) * 1992-08-12 1994-05-03 Digital Equipment Corporation Data and parity prefetching for redundant arrays of disk drives
US5315602A (en) * 1992-08-12 1994-05-24 Digital Equipment Corporation Optimized stripe detection for redundant arrays of disk drives
US5404471A (en) * 1992-11-20 1995-04-04 International Business Machines Corp. Method and apparatus for switching address generation modes in CPU having plural address generation modes
US6384995B1 (en) 1992-12-23 2002-05-07 International Business Machines Corporation Apparatus and method for detecting defects in data storage devices
US5566324A (en) * 1992-12-24 1996-10-15 Ncr Corporation Computer apparatus including a main memory prefetch cache and method of operation thereof
GB2276255A (en) * 1993-02-17 1994-09-21 Andor Int Ltd Track buffer with embedded error data
US5646923A (en) * 1993-11-17 1997-07-08 International Business Machines Corporation System and method for hiding P-list entries for a disk from an initiator using a small computer system interface
MY112118A (en) * 1993-12-23 2001-04-30 Hitachi Global Storage Tech Netherlands B V System and method for skip-sector mapping in a data recording disk drive.
US5523903A (en) * 1993-12-23 1996-06-04 International Business Machines Corporation Sector architecture for fixed block disk drive
US5606685A (en) * 1993-12-29 1997-02-25 Unisys Corporation Computer workstation having demand-paged virtual memory and enhanced prefaulting
US5577227A (en) * 1994-08-04 1996-11-19 Finnell; James S. Method for decreasing penalty resulting from a cache miss in multi-level cache system
JP3254340B2 (ja) * 1994-11-10 2002-02-04 シャープ株式会社 記録再生装置および記録再生装置のための欠陥処理方法
US5671390A (en) * 1995-05-23 1997-09-23 International Business Machines Corporation Log structured array storage subsystem using LSA directory and LSA sub-directory stored in different storage media
US5737344A (en) * 1995-05-25 1998-04-07 International Business Machines Corporation Digital data storage with increased robustness against data loss
US5907672A (en) * 1995-10-04 1999-05-25 Stac, Inc. System for backing up computer disk volumes with error remapping of flawed memory addresses
US6043946A (en) * 1996-05-15 2000-03-28 Seagate Technology, Inc. Read error recovery utilizing ECC and read channel quality indicators
US5721816A (en) * 1996-07-29 1998-02-24 Kusbel; Paul F. Adaptive recovery of read and write errors in a disc drive
US6154331A (en) * 1996-10-01 2000-11-28 Lsi Logic Corporation Disk formatter write gate look-ahead device
US5845318A (en) * 1996-10-28 1998-12-01 International Business Machines Corporation Dasd I/O caching method and application including replacement policy minimizing data retrieval and storage costs
US6065100A (en) * 1996-11-12 2000-05-16 Micro-Design International Caching apparatus and method for enhancing retrieval of data from an optical storage device
US5960460A (en) * 1997-01-02 1999-09-28 Exabyte Corporation Non-intrusive replication of hard disk
US6392833B1 (en) 1998-07-13 2002-05-21 Seagate Technology, Llc Reducing self-excited mechanical resonances in a disc drive
US7089449B1 (en) * 2000-11-06 2006-08-08 Micron Technology, Inc. Recovering a system that has experienced a fault
US7234021B1 (en) * 2001-10-05 2007-06-19 Emc Corporation Methods and apparatus for accessing data elements using improved hashing techniques
JP4074806B2 (ja) * 2002-11-20 2008-04-16 ヒタチグローバルストレージテクノロジーズネザーランドビーブイ 不良セクタの探索方法、データ記録装置、プログラム
US7437593B2 (en) * 2003-07-14 2008-10-14 International Business Machines Corporation Apparatus, system, and method for managing errors in prefetched data
US7277993B2 (en) * 2003-12-03 2007-10-02 Intel Corporation Write-back disk cache
US7379952B2 (en) * 2004-01-30 2008-05-27 Oracle International Corporation Techniques for multiple window resource remastering among nodes of a cluster
US7962453B2 (en) 2004-04-26 2011-06-14 Oracle International Corporation Dynamic redistribution of a distributed memory index when individual nodes have different lookup indexes
US7490197B2 (en) 2004-10-21 2009-02-10 Microsoft Corporation Using external memory devices to improve system performance
US8250296B2 (en) * 2004-12-01 2012-08-21 Dell Products L.P. System and method for information handling system memory page mapping optimization
US20060200469A1 (en) * 2005-03-02 2006-09-07 Lakshminarayanan Chidambaran Global session identifiers in a multi-node system
US7536529B1 (en) 2005-06-10 2009-05-19 American Megatrends, Inc. Method, system, apparatus, and computer-readable medium for provisioning space in a data storage system
US7689766B1 (en) 2005-06-10 2010-03-30 American Megatrends, Inc. Method, system, apparatus, and computer-readable medium for integrating a caching module into a storage system architecture
US7814065B2 (en) 2005-08-16 2010-10-12 Oracle International Corporation Affinity-based recovery/failover in a cluster environment
US8914557B2 (en) 2005-12-16 2014-12-16 Microsoft Corporation Optimizing write and wear performance for a memory
US8631203B2 (en) 2007-12-10 2014-01-14 Microsoft Corporation Management of external memory functioning as virtual cache
US8352716B1 (en) 2008-01-16 2013-01-08 American Megatrends, Inc. Boot caching for boot acceleration within data storage systems
US8621154B1 (en) 2008-04-18 2013-12-31 Netapp, Inc. Flow based reply cache
US8161236B1 (en) 2008-04-23 2012-04-17 Netapp, Inc. Persistent reply cache integrated with file system
US8799429B1 (en) 2008-05-06 2014-08-05 American Megatrends, Inc. Boot acceleration by consolidating client-specific boot data in a data storage system
US9032151B2 (en) 2008-09-15 2015-05-12 Microsoft Technology Licensing, Llc Method and system for ensuring reliability of cache data and metadata subsequent to a reboot
US8032707B2 (en) 2008-09-15 2011-10-04 Microsoft Corporation Managing cache data and metadata
US8171227B1 (en) 2009-03-11 2012-05-01 Netapp, Inc. System and method for managing a flow based reply cache
US8700861B1 (en) * 2012-03-28 2014-04-15 Emc Corporation Managing a dynamic list of entries for cache page cleaning
US9798623B2 (en) * 2012-05-11 2017-10-24 Seagate Technology Llc Using cache to manage errors in primary storage
US9240210B2 (en) 2013-11-26 2016-01-19 Seagate Technology Llc Physical subsector error marking
KR102498668B1 (ko) * 2017-05-17 2023-02-09 삼성전자주식회사 플래시-인지 힙 메모리 관리 방법 및 호스트 장치
CN109582598B (zh) * 2018-12-13 2023-05-02 武汉中元华电软件有限公司 一种基于外部存储实现高效查找哈希表的预处理方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS608959A (ja) * 1983-06-29 1985-01-17 Fujitsu Ltd デイスク・キヤツシユ制御方法
JPS61133433A (ja) * 1984-11-30 1986-06-20 Nec Corp 書換え不能なデ−タ記録媒体における不良セクタ代替え処理方式
JPS61272821A (ja) * 1985-05-29 1986-12-03 Nec Corp 磁気デイスク制御装置
JPS6222162A (ja) * 1985-07-23 1987-01-30 Alps Electric Co Ltd デイスクキヤツシユ制御方式
JPS6356452U (ja) * 1986-09-29 1988-04-15

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3997876A (en) * 1972-06-07 1976-12-14 International Business Machines Corporation Apparatus and method for avoiding defects in the recording medium within a peripheral storage system
US4384487A (en) * 1974-09-30 1983-05-24 Browning Alva L Dynamically restrained inertial reference instrument and reliability sensor
US4148098A (en) * 1976-10-18 1979-04-03 Xerox Corporation Data transfer system with disk command verification apparatus
US4168541A (en) * 1978-09-25 1979-09-18 Sperry Rand Corporation Paired least recently used block replacement system
US4394732A (en) * 1980-11-14 1983-07-19 Sperry Corporation Cache/disk subsystem trickle
US4523275A (en) * 1980-11-14 1985-06-11 Sperry Corporation Cache/disk subsystem with floating entry
US4490782A (en) * 1981-06-05 1984-12-25 International Business Machines Corporation I/O Storage controller cache system with prefetch determined by requested record's position within data block
JPS5877034A (ja) * 1981-10-30 1983-05-10 Hitachi Ltd 記録方法
US4536836A (en) * 1981-11-27 1985-08-20 Storage Technology Corporation Detection of sequential data stream
US4780808A (en) * 1981-11-27 1988-10-25 Storage Technology Corporation Control of cache buffer for memory subsystem
US4498146A (en) * 1982-07-30 1985-02-05 At&T Bell Laboratories Management of defects in storage media
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 デイスクキヤツシユシステム
JPS59185931A (ja) * 1983-04-05 1984-10-22 Daikin Ind Ltd 空気調和装置
US4603380A (en) * 1983-07-01 1986-07-29 International Business Machines Corporation DASD cache block staging
DE3405073A1 (de) * 1984-02-13 1985-08-14 Siemens AG, 1000 Berlin und 8000 München Speicherungsverfahren fuer eine in fernmeldeanlagen, insbesondere fernsprechvermittlungsanlagen eingesetzte speichereinrichtung
US4916605A (en) * 1984-03-27 1990-04-10 International Business Machines Corporation Fast write operations
US4807110A (en) * 1984-04-06 1989-02-21 International Business Machines Corporation Prefetching system for a cache having a second directory for sequentially accessed blocks
US4631723A (en) * 1984-06-08 1986-12-23 Honeywell Information Systems Inc. Mass storage disk drive defective media handling
US4680703A (en) * 1984-06-25 1987-07-14 International Business Machines Corp. Data processing system with reorganization of disk storage for improved paging
US4637024A (en) * 1984-11-02 1987-01-13 International Business Machines Corporation Redundant page identification for a catalogued memory
US4685082A (en) * 1985-02-22 1987-08-04 Wang Laboratories, Inc. Simplified cache with automatic update
JPS61202381A (ja) * 1985-03-06 1986-09-08 Hitachi Ltd デイスク制御装置
JPH0756734B2 (ja) * 1985-05-27 1995-06-14 松下電器産業株式会社 情報記録再生装置
US4875155A (en) * 1985-06-28 1989-10-17 International Business Machines Corporation Peripheral subsystem having read/write cache with record access
JP2650891B2 (ja) * 1986-04-16 1997-09-10 株式会社日立製作所 回転形記憶装置の制御方法
US4814903A (en) * 1987-06-29 1989-03-21 International Business Machines Corporation Alternate storage areas in magnetooptical media
US4914530A (en) * 1987-09-21 1990-04-03 Plus Development Corporation Media defect management within disk drive sector format

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS608959A (ja) * 1983-06-29 1985-01-17 Fujitsu Ltd デイスク・キヤツシユ制御方法
JPS61133433A (ja) * 1984-11-30 1986-06-20 Nec Corp 書換え不能なデ−タ記録媒体における不良セクタ代替え処理方式
JPS61272821A (ja) * 1985-05-29 1986-12-03 Nec Corp 磁気デイスク制御装置
JPS6222162A (ja) * 1985-07-23 1987-01-30 Alps Electric Co Ltd デイスクキヤツシユ制御方式
JPS6356452U (ja) * 1986-09-29 1988-04-15

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8255645B2 (en) 2004-05-03 2012-08-28 Microsoft Corporation Non-volatile memory cache performance improvement
JP2013047979A (ja) * 2004-05-03 2013-03-07 Microsoft Corp 不揮発性メモリ・キャッシュの性能改善
US9405693B2 (en) 2004-05-03 2016-08-02 Microsoft Technology Licensing, Llc Non-volatile memory cache performance improvement
US10216637B2 (en) 2004-05-03 2019-02-26 Microsoft Technology Licensing, Llc Non-volatile memory cache performance improvement
JP2008515112A (ja) * 2004-10-01 2008-05-08 イーエムシー コーポレイション 仮想順序付け書き込み
US10509730B2 (en) 2008-09-19 2019-12-17 Microsoft Technology Licensing, Llc Aggregation of write traffic to a data store
JP2011238176A (ja) * 2010-05-13 2011-11-24 Toshiba Corp 情報処理装置およびドライバ
JP2011238175A (ja) * 2010-05-13 2011-11-24 Toshiba Corp 情報処理装置およびドライバ
US8407418B2 (en) 2010-05-13 2013-03-26 Kabushiki Kaisha Toshiba Information processing apparatus and driver
US8639881B2 (en) 2010-05-13 2014-01-28 Kabushiki Kaisha Toshiba Information processing apparatus and driver
USRE48127E1 (en) 2010-05-13 2020-07-28 Toshiba Memory Corporation Information processing apparatus and driver
USRE49818E1 (en) 2010-05-13 2024-01-30 Kioxia Corporation Information processing method in a multi-level hierarchical memory system

Also Published As

Publication number Publication date
KR880011667A (ko) 1988-10-29
JPH0564814B2 (ja) 1993-09-16
EP0284663A3 (en) 1989-03-22
IT8819949A0 (it) 1988-03-25
FR2613506A1 (fr) 1988-10-07
FR2613506B1 (fr) 1990-02-09
ATE75070T1 (de) 1992-05-15
EP0284663A2 (en) 1988-10-05
CN1014565B (zh) 1991-10-30
KR940005786B1 (ko) 1994-06-23
SG68092G (en) 1992-09-04
DE3810233C2 (ja) 1992-05-07
GB2202976B (en) 1991-10-09
HK65492A (en) 1992-09-11
CA1288870C (en) 1991-09-10
GR3004931T3 (ja) 1993-04-28
DE3778347D1 (de) 1992-05-21
BE1001066A4 (fr) 1989-06-27
GB2202976A (en) 1988-10-05
CN88100953A (zh) 1988-12-28
ES2031114T3 (es) 1992-12-01
DE3810233A1 (de) 1988-10-20
US4972316A (en) 1990-11-20
PH27346A (en) 1993-06-08
GB8728923D0 (en) 1988-01-27
EP0284663B1 (en) 1992-04-15
MY102811A (en) 1992-11-30

Similar Documents

Publication Publication Date Title
JPS63247853A (ja) Dasdキヤツシユ管理方法
US6192450B1 (en) Destage of data for write cache
US6119209A (en) Backup directory for a write cache
EP0072413B1 (en) A storage subsystem with hashed cache addressing
EP0086886B1 (en) Hierarchical data storage system for digital computers
US4466059A (en) Method and apparatus for limiting data occupancy in a cache
US5594885A (en) Method for operating a cache memory system using a recycled register for identifying a reuse status of a corresponding cache entry
EP0072108B1 (en) A multiple operating mode storage subsystem
EP0106212B1 (en) Roll mode for cached data storage
US5353430A (en) Method of operating a cache system including determining an elapsed time or amount of data written to cache prior to writing to main storage
US4420807A (en) Selectively holding data in a buffer for defective backing store tracks
US6351754B1 (en) Method and system for controlling recovery downtime
US5481691A (en) Cache page replacement using sequential LIFO and non-sequential LRU cast out
US5590300A (en) Cache memory utilizing address translation table
CN1148658C (zh) 利用高速缓存器管理raid存储系统的方法和系统
US6338115B1 (en) Advanced read cache management
JPS63244243A (ja) フアイルをオープンする方法
US5765193A (en) System for controlling a write operation involving data held in a write cache
JPS6326417B2 (ja)
JPS638851A (ja) キャッシュ・メモリ制御方式
JPH0667980A (ja) 4ブロックキャッシュメモリへのアクセスを最適化するためのキャッシュ論理システムおよびメインフレームコンピュータの高速キャッシュメモリへのアクセス時のダブルミスを防ぐ方法
JP3335919B2 (ja) ディスクキャッシュ制御装置
JPS60230247A (ja) デイスク制御装置
JPH07334425A (ja) ディスクキャッシュ制御方式
JPH02210561A (ja) ディスクキャッシュの管理方式

Legal Events

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