JPH06505584A - キャッシュメモリ - Google Patents
キャッシュメモリInfo
- Publication number
- JPH06505584A JPH06505584A JP4508296A JP50829692A JPH06505584A JP H06505584 A JPH06505584 A JP H06505584A JP 4508296 A JP4508296 A JP 4508296A JP 50829692 A JP50829692 A JP 50829692A JP H06505584 A JPH06505584 A JP H06505584A
- Authority
- JP
- Japan
- Prior art keywords
- data
- storage device
- cache memory
- mass storage
- cache
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operations
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1435—Saving, restoring, recovering or retrying at system level using file system or storage system metadata
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing 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
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2015—Redundant power supplies
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/22—Employing cache memory using specific memory technology
- G06F2212/222—Non-volatile memory
- G06F2212/2228—Battery-backed RAM
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/31—Providing disk cache in a specific location of a storage system
- G06F2212/312—In storage controller
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Library & Information Science (AREA)
- Quality & Reliability (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるため要約のデータは記録されません。
Description
【発明の詳細な説明】
キャッシュメモリ
1亙旦1
本発明は、ソリッドステート記憶装置と回転磁気ディスク装置の組合わせを包含
する高性能コンピュータデータ記憶装置に関するものである。
支釆立亘1
多数のコンピュータデータ記憶システムが存在しており、それらは回転磁気ディ
スク装置に対するフロントエンドとしである程度ソリッドステートメモリ装置を
使用している。典型的なキャッシュシステムは、一連の磁気ディスク上に記憶さ
れたデータに対する保持区域として単一のソリッドステートメモリユニットを使
用し、その際に高速キャッシュメモリ内にある情報を格納即ち記憶させることを
可能とし、その際に比較的低速のディスクメモリのみを使用する場合に比較して
速度性能を増加させており、即ち、所望のデータが高速キャッシュメモリ内に収
納される時間の割合を増加させ、その際にデータがディスクドライブのみに格納
即ち記憶される場合と比較してアクセスをより高速のものとすることを可能とし
ている。このようなシステムのブロック図を図1に示しである。ホストコンピュ
ータ101が、例えばSC5I等のホストインターフェース104を介しキャッ
シュユニット103を介してディスク102−1乃至102−Nの全ストリング
と通信を行う。ディスク102へ送給され且つそこがら供給される全てのデータ
は、ホストインターフェース104、とキャッシュユニット103と、ディスク
インターフェース105とから構成されるキャッシュ−ディスクデータ経路を介
して通過する。キャッシュユニット103はデータのキャッシングを管理し且つ
ポストコンピュータ101からの要求に応える。キャッシュユニット103の主
要な構成要素は、マイクロプロセサ103−1.キャッシュ管理ハードウェア1
03−2、キャッシュ管理ファームウェア103−3、アドレスルックアップテ
ーブル103−4、ソリッドステートキャッシュメモリ103−5を包含してい
る。
図1の従来のキャッシュシステムは、頻繁にアクセスされるデータをソリッドス
テートメモリ区域内に保持し、同一のデータがディスク媒体上においてアクセス
される場合に得られるものよりもそのデータに対してより迅速なアクセスを与え
ることを意図したものである。通常、このようなキャッシュシステムは、あるホ
ストコンピュータに取付けた場合及びある作業量のもとでは極めて効果的なもの
である。
然しなから、幾つかの欠点も存在しており、且つある条件下においては。このよ
うなキャッシュシステムは同様のキャッシュを行わない装置によって得られるも
のよりも低い性能レベルを表わす。従来のキャッシュ付ディスク装置の所望の性
能より低い性能とさせる要因の幾つかについて検討する。
ディスクストリング102における全てのディスクと関連して単一のキャッシュ
メモリ103−5が使用されている。いずれかのディスクからのデータは任意の
与えられた時間においてキャッシュメモリ103−5内に存在している場合があ
る。ビジーデータ即ち頻繁にアクセスされるデータはそれが存在するディスクド
ライブに拘らず、キャッシュ動作を行うことが望ましい。ホストのコマンド即ち
命令に応える場合、そのデータがキャッシュメモリ103−5内に存在するか否
か及びキャッシュメモリ103−5内におけるそのデータの位置の決定は、通常
、ハツシング手法及びテーブルサーチ操作によって行われる。ハツシング方法及
びテーブルサーチは、それら自身の時間遅延を導入する場合があり、そのことは
キャッシュユニット自身の目的を阻害する場合がある。
性能はキャツシュヒツト率に非常に敏感である。
キャッシュ動作のためのオーバーヘッド及び待ち時間のために、典型的なストリ
ング指向型キャッシュシステムにおける低いヒツト率は、キャッシュを行わない
ディスクストリングの場合よりも全体的に低下した性能となる場合がある。
ディスク装置102の容量と相対的なキャッシュメモリ103−5の寸法は通常
小さなものである。
低いヒツト率を救済するための一見明白な技術は、キャッシュメモリ103−5
の寸法を増大させることである。然しなから、キャッシュメモリ103−5の寸
法には上限があり、それを超えてより大きな容量を加えてもそれから得られる利
点は限界的なものであることが判明している。キャッシュメモリ103−5の容
量が制限されている場合、多様なデータセグメントにわたっての多数の要求が、
キャッシュメモリ103−5内に所望のデータを維持するためにキャッシュシス
テムの容量を使い果たす。しばしば、すぐ後で再使用するデータが、ホストコン
ピュータ101からの新たな要求を取扱うためにキャッシュメモリ103−5内
に場所を確保するために、時期尚早にデキャッシュ動作、即ちキャッシュメモリ
から取除かれる。その結果は、キャツシュヒツト率が低下する。キャツシュヒツ
ト率が低下すると、ディスクアクセスの回数が増加し、ディスクアクセスの回数
が増加すると、データ経路上での競合が増加する。その結果、自己破壊的サイク
ルが発生する。
「バックグラウンド」キャッシュアヘッド動作は制限されている。何故ならば、
このような動作によって転送されるデータは、ホストコンピュータ】01からの
直接的な要求に応えるために転送されるデータと同一の経路を介して移動するも
のであり、しばしばそのようなデータと競合を発生する。キャッシュユニット1
03とディスクストリング102との間のデータ経路は容易に過負荷状態となる
場合がある。ホストコンピュータ101からの要求に応えるためか又はキャッシ
ュ管理の目的のために、ディスクストリング102内のいずれかのディスクへ又
はそのディスクからの全てのデータは、キャッシュ−ディスク経路を横断して移
動する。このことは、ディスクストリング102からキャッシュメモリ103−
5への大量なデータのプレフェッチ動作が発生する場合には、障害を発生する。
ディスクストリング102からキャッシュメモリ103−5内へデータをプレフ
ェッチするための各試みは、潜在的に、ディスクストリング102のディスクド
ライブのうちのいずれかとホストコンピュータ101との間で通信されているデ
ータとその経路に関して競合を発生する。その結果、キャッシュメモリ103−
5内へのデータのプレフェッチ動作は妥当な程度に制限されねばならず、ある限
界を超えてキャッシュメモリ103−5の寸法を増加させることはキャッシュシ
ステムの性能において対応する改善を発生するものではない。このことは一連の
関連した現象を発生する。キャッシュアヘッド管理は、しばしば、キャッシュ動
作されたデータから充足されなかった各ホスト読取りコマンドに関し先んじて読
取動作を行うことに制限されている。この技術は、キャッシュメモリ103−5
とディスクストリング102との間の経路に対して待機する要求の待ち状態を増
加させるキャッシュアヘッドの傾向を最小とさせることに貢献する。然しなから
、キャッシュ動作が基礎とする概念のうちの一つは、データアクセスが、妥当な
程度に短い時間フレーム内において与えられた局所性内に集中する傾向があると
いうことである。例えば、データセグメントは、逐次的な態様でしばしばアクセ
スされる。キャッシュアヘッド動作を読取ミスの関数に制限することは、キャツ
シュヒツト率を低下させるネガティブな効果を有する場合がある。何故ならば、
このような制限は、データアクセスの局所性を利用するということを阻止するか
又は劣化させる場合があるからである。
ストリングキャッシュの性能を最適化させるために多種類のアルゴリズム及び形
態が考案されている。
はぼ普遍的に受入れられている概念は、最も最近でなく使用された即ち最も古い
(LRU)測定を基礎にしたキャッシュされたデータセグメントの保持及び置換
を包含している。新しいデータに対して場所を空けるためにデータをデキャッシ
ュすること即ちキャッシュメモリから取除くことは、テーブルによって管理され
、該テーブルは、各キャッシュされたブロックのデータに対して、その相対的な
時間を与える。何故ならば、それが最後にアクセスされたものだからである。使
用されるアルゴリズムに依存して、このプロセスは、更に、潜在的な測定可能な
時間遅延を有するテーブルサーチの何らかの形態となることが可能である。
キャッシュメモリ103−5は、通常、揮発性であり、該ユニットに対するパワ
ーが取除かれると、データは喪失する。この特性は、不意の停電の可能性と結合
されて、通常、ホストコンピュータ103からキャッシュストリングへ転送され
るデータを取扱うためのライトスルー即ち全書き構成を課していた。このような
構成においては、ホストコンピュータ】03からの全書きは直接ディスクに対し
て書込まれ、ディスク速度において処理が行われ、これらの動作は通常ディスク
動作に関連する低い転送率、待ち時間、シークの全ての本来的な時間遅延に露呈
される。ギャッシュユニット103は、ディスクインターフェース105を介し
てディスクドライブ102のストリングと通信を行う。
l肚立1尤
コンピュタ動作及び処理能力は、しばしば、周辺のデータの読取りに必要とされ
る時間によって制限を受ける。ソリッドステート記憶装置は高速の応答を有して
いるが、それはメガバイトの記憶当たり比較的高いコストにおいてのものである
。回転磁気ディスク、光ディスク、又はその他の大量記憶媒体は、メガバイト当
たり比較的低いコストで高い記憶容量を与えるが、その応答速度は低いものであ
る。本発明によれば、大量記憶装置のものに近付(メガバイトあたりのコストで
もって、ソリッドステート記憶装置の速度に近い速度を与えるソリッドステート
と大量記憶装置のハイブリッド装置が提供される。本発明をより良く説明するた
めに、磁気ディスク媒体に関する実施例について説明を行う。然しなから、理解
すべきことであるが、本発明は、光デイスク装置等のその他のタイプの大量記憶
装置にも同様に適用可能なものである。
本発明は幾つかの特徴に基づいており、それらの特徴としては、回転磁気ディス
ク媒体、充分なソリッドステート記憶容量、ディスク装置とソリッドステート記
憶装置との間のプライベートチャンネル、独特のデータ管理を実施するマイクロ
プロセサ、独特のプレフェッチ手順、並列動作能力等である。本発明のハイブリ
ッド記憶媒体は、いずれの作業量に対しても通常の磁気ディスク速度より低い速
度で実際的な動作を行うことなしに、多数のタイプのコンピュータ作業量に対し
てほぼソリッドステート速度で動作を行う。
回転磁気ディスク媒体は、装置に大容量を与えるために使用されており、ソリッ
ドステート記憶装置は、高速応答能力を本装置に与えるために使用されている。
ソリッドステート媒体を直接的に単一の磁気ディスク装置と関連させることによ
って、プライベートなデータ通信線が確立され、該通信線はホストと本装置との
間の通常のデータ転送と、ソリッドステートメモリとディスクとの間の転送との
間の競合を回避する。このプライベートデータチャンネルは、事実上、二つの格
納媒体の間の無制限の対話を可能としている。充分なるソリッドステートメモリ
を使用することにより、複数個の同時的にアクティブなデータストリームに対し
てのデータの効率的なメンテナンスを可能としている。メモリ装置の管理は、−
個又はそれ以上のマイクロプロセサを介して行われ、該マイクロプロセサはデー
タのインテリジェントな配置を行うために歴史的且つ予測的データアクセスを使
用する。時間臨界的経路においてはテーブルサーチを使用することはない。ソリ
ッドステートメモリ内に格納されているデータへのホストのアクセスはソリッド
ステート速度において行われ、磁気ディスク上に格納されているデータへのホス
トのアクセスはディスク装置速度において行われる。殆どの条件下において、ホ
ストから本装置へ送給される全てのデータはソリッドステート速度において取扱
われる。
作業量及び現在のIloの特性がそのようなモードが最適な動作モードであるこ
とを表わす場合に、本装置が疑似的磁気ディスクモードに入るようにインテリジ
ェンスが実現されている。このモードシフトは性能を高いレベルに維持すること
を助ける。更に、歴史的情報に基づいて、実現したインテリジェンスは近い将来
のホスト−装置I10100取扱いを最適化させるために、本装置内における動
作上の優先度をシフトさせることが可能である。
゛ の な90
図1は典型的な従来のキャッシュ型ディスクコンピュータデータ格納システムの
ブロック図。
図2は本発明に基づいて構成したキャッシュ型ディスクコンピュータデータ記憶
装置の一実施例を示したブロック図。
図3は本発明を具体化するハードウェア形態の一実施例を示したブロック図。
図4は本発明の一実施例の動作を示したフローチャート図。
図5は図4のホストコマンドステップの動作をより詳細に説明したフローチャー
ト図。
図6は図5の解析したホストI10コマンド動作の一実施例の動作を示したフロ
ーチャート図。
図7は図6のセットアツプトラックアドレスリスト動作をより詳細に示したフロ
ーチャート図。
図8は図7のアドレス変換をより詳細に示したフローチャート図。
図9は図5に示したキャッシュ読取ヒツト動作を示したフローチャート図。
図10は図5に示したキャッシュ読取ミス動作を ゛より詳細に示したフローチ
ャート図。
図11は図5のキャッシュ書込ヒツト動作を示したフローチャート図。
図12は図5のキャッシュ書込ミス動作を示したフローチャート図。
図13は図5のシークキャッシュミス動作を示したフローチャート図。
図14は図6.13.15のデキャッシュLRU動作を示したフローチャート図
。
図15は図4のキャッシュアヘッド動作を示したフローチャート図。
図16は図15のキャッシュアヘッド決定動作を示したフローチャート図。
図17は図4のバックグラウンドスイープ動作開始の動作を示したフローチャー
ト図。
図18は図4に示したホストI10完了におけるバックグラウンドスィーブ開始
のステップを示したフローチャート図。
図19は図7.18.20に示したバックグラウンドイベント動作発生を示した
フローチャート図。
図20は図4のバックグラウンドスイープ継続ステップの動作を示したフローチ
ャート図。
図21はパワーダウン制御動作を示したフローチャート図。
図22は図21に示した最終的バックグラウンドスィーブ動作を示したフローチ
ャート図。
L旦翌朋
表F−1乃至F−4は夫々表T−1乃至T−4の構成を示している。
表T−1はホストCPUからの最初のI10100処理の前のアドレス変換(A
DT)テーブルにおける値の一例を示している。
表T−2はホストCPUからの最初のI10100処理前の最も最近でなく使用
した即ち最も古い(LRU)テーブルにおける値の一例を示している。
表T−3は最も最近でな(使用した即ち最も古い(LRU)テーブルを示してい
る。
表T−3a乃至T−3eは種々の数のI10動作後のADTテーブルを示してい
る。
表T−4は通常の利用期間中コンピュータシステム動作から抽出されるI10コ
マンドのサンプルを示している。これらのI10コマンド、及び中間のコマンド
は、表T−1乃至T−3に示した如く、サンプル予測LRU及びADTテーブル
用の基礎である。
アドレス変換、
セクタアドレスのトラックアドレス及び該トラック内のセクタオフセットへの変
換。
キャッシュアヘッドファクタ、近接ファクタ、各トラックヒツト又は再ヒツトに
おいて、多数のIloを満足させるのに充分なキャッシュされたデータは、現在
のIloに関与したデータの現在の位置の前及び/又は後に留まることが可能で
ある。これら二つの残存するエリアのいずれかが設定した数のIloよりもより
少ない場合には、キャッシュアヘッドが活性化される。その最小数の潜在的なI
loがキャッシュアヘッドファクタ即ち近接ファクタである。
アドレス変換テーブル、ADTテーブルディスクトラック識別子とソリッドステ
ートメモリアドレスとの間の関係を維持するテーブルであり、それは、必要に応
じて、その他の情報も保持する。
キャッシュ
全体としてユニット内のユーザデータを保持するソリッドステートメモリエリア
。
CPUセクタ
論理セクタの用語の説明を参照。
ディスク、磁気ディスク、回転磁気ディスク回転磁気媒体ディスクドライブのこ
とである。
ディスクセクタアドレス
磁気ディスクユニット上の物理的セクタのアドレス。
ディスクサーバ、
回転磁気ディスクへの書込み及びそれからの読取りを取扱うユニットの論理的セ
クション。
ディスクトラックアドレス、トラックアドレスディスク上の与えられたトラック
における第一セクタのデータのアドレス。これらのアドレスは回転磁気ディスク
上の物理的位置に対応している。工10動作において特定された各セクタアドレ
スは、トラックアドレス及びそのトラック内のセクタオフセットへ変換すること
が可能である。
DMA、ダイレクトメモリアクセス
プロセサを関与させることなしにメモリからメモリへのデータの転送。
DRAM、ダイナミックランダムアクセスメモリソリッドステートメモリ装置と
して使用される一個又はそれ以上のチップ。
EDAC。
エラー検知及び補正
EEPROM。
電気的消去可能プログラム可能リードオンリメモリEPROM、消去可能書込可
能リードオンリメモリ。
ホスト、
本ユニットが取付けられているコンピュータ。
ホストサーバ、
ホストコンピュータとインターフェースする本ユニットの部分。
Ilo、
セクタ数としてのホストI10要求の寸法。
LRU (Least−Recent 1y−Used)、データ格納トラック
に関して、最も長い時間にわたりアクセスされなかったもの。
LRUテーブル、
キャッシュ効率に与える影響が最も少ない状態でどのソリッドステートメモリデ
ータエリアを再使用することが可能であるかをユニットのコントローラが決定す
ることを可能とする情報に関するテーブル。
MRU (Most−Recently−Used)データ格納トラックに関し
て、最も最近にアクセスされたもの。
ノーマルモード、
最適な性能レベルに発達するためにその通常の優先変を使用することの可能な装
置の状態。
ナル、ナル値、
フィールドが空であると考えられる状態を表わすテーブルフィールドにおける値
であって、使用状態に依存して、それは、0であるか、又はフィールドのビット
構成が受付けることの可能な最高の値である。
物理的トラック、ディスクトラック、
ディスク上の完全なデータトラックで、ディスクユニットの一つのブラタ上の一
つの完全な磁気バンド。
近接ファクタ
各トラックヒツト又は再ヒツトにおいて、多数のIloを満足するのに充分なデ
ータは、現在のIloに関与するデータの現在の位置の前及び/又は後に留まる
ことが可能である。これら二つの残存するエリアのうちのいずれかが設定した数
のIloよりも少ない場合には、キャッシュアヘッドが活性化される。その最小
数の潜在的なIloがキャッシュアヘッドファクタ即ち近接ファクタ。
読取ミス最大寸法、
セクタ数としてのホスト読取トランズアクションの寸法であり、それは、その寸
法を超えた場合には、該トランズアクションを疑似的ディスクモードで処理させ
る。
リサイクル、
LRU位置への到着を超えてのキャッシュ内のトラックの保持を記述するために
使用される用語であり、このような保持は、キャッシュアヘッド動作の結果とし
てキャッシュを行なうようになったか又はそれがリサイクル作用の恩恵を被るも
のの最後のものであったためにある時間においてそのトラックが再使用されたと
いう事実に基づくものである。
SC5I(Small Computer System Interfece
)、
例えばホストコンピュータに対するディスク装置などの装置をインターフェース
するためのプロトコルに適用される名称である。
SC5I制御チャンネル、
SC3Iプロトコルを使用する装置間の物理的接続であって、ケーブルによって
接続された論理的制御器から構成されている。
セクタ、
ディスクトラックの論理的サブユニットであって、ディスク上のデータの最も小
さなアドレス可能な単位。
ソリッドステートメモリ、ソリッドステート装置、SSD。
例えばDRAM等のソリッドステート装置から構成されたメモリ媒体。
SSDトラックアドレス、
与えられたディスクトラックの最初のセクタの最初のバイトが存在するソリッド
ステートメモリ内のアドレス。
トラック、論理的トラック、論理的ブロック、ディスク上の論理的データトラッ
ク又はSSDにおけるその等偽物は、ディスク上の物理的トラックと同一である
場合もない場合もある(ディスクユニットの一つのブラタ上の一つの完全なる磁
気バンド)。
注意すべきことであるが、I10動作は一つを超えた論理的ブロックを関与させ
る場合がある。
トラック寸法、
ディスクトラック内にあると考えられるセクタ数であって、これは、ディスクト
ラック内の実際のセクタ数と等しい場合も等しくない場合もある。
ユニット(単位)、
ユニットの指定は以下に説明する。
緊急モード、
少な(とも磁気ディスクレベル性能を維持するために優先度をシフトせねばなら
ない装置の状態。
書込ミス最大寸法、
それを超えた場合に、トランズアクションを疑似的ディスクモードで処理させる
セクタ数としてのホスト書込トランズアクションの寸法。
本発明によれば、コンピュータ周辺データ格納(記憶)装置が提供され、それは
、ソリッドステートメモリと回転ディスクメモリとの組合わせを有しており、こ
の装置は、磁気ディスク媒体の速度に近付いたメガバイトあたりのコストでのソ
リッドステート速度に近い速度を有する大容量の磁気ディスクを有している。説
明の便宜上、ディスク媒体に関して実施例の説明を行なう。然しなから、理解す
べきことであるが、本発明は、光デイスク装置等のその他のタイプの大量記憶装
置に同様に適用可能である。
本発明のこの装置は、回転磁気ディスク媒体からその大記憶容量が得られている
。その高速性能は、二つの記憶媒体の間のプライベートチャンネル、−組の独特
のデータ管理アルゴリズムを使用した複数個のマイクロプロセサ、独特のプレフ
ェッチ手順、並列動作能力、充分なソリッドステートメモリの組合わせから得ら
れている。このハイブリッド記憶媒体は、いずれの作業量に対しても通常の磁気
ディスク速度以下で決して実際的な動作を行うことなしに、殆どのタイプのコン
ピュータ作業量に対してソリッドステートメモリの速度に近い速度で全体的な性
能を与える。
ホストコンピュータに対して、本発明装置は単一の直接的にアドレス可能な実体
であるように見える。
本装置内においての、ソリッドステートメモリと一つ又はそれ以上の磁気ディス
ク装置との組合わせによって、本装置内にプライベートなデータ通信線が確立さ
れ、それはホストと本装置との間の通常のデータ転送とソリッドステートメモリ
とディスク媒体との間の転送との間の競合を回避している。このプライベートな
データチャンネルは、ホストコンピュータと上述した本装置との間の通信と実際
上競合なしで、二つの記憶媒体の間の制限のないデータ転送を行うことを可能と
している。充分なるソリッドステートメモリを使用することにより、複数個の同
時的に活性なデータストリームに対してデータの効率的な保持を行うことを可能
とする。メモリ管理は、歴史的活動に基づいたデータアクセスを予測するマイク
ロプロセサを介して行われる。データは管理アルゴリズムに基づいてディスク媒
体からソリッドステートメモリ内へ移動され、そのことは、時間臨界的経路にお
いてテーブルサーチを使用することを必要とすることはない。ソリッドステート
メモリ内に格納されているデータへのホストコンピュータのアクセスはソリッド
ステート速度に近いものであり、磁気ディスク上に格納されているデータへのア
クセスは磁気ディスク速度に近いものである。ホストから本装置へ送給される全
てのデータは、チャンネル能力によってのみ制限されるソリッドステート速度に
おいて転送される。
バー゛ウェアの手口
本発明に基づいて構成した装置を図2に示しである。メモリ装置200は、独立
的なモジュールであり、それは外界との三つの接触点を有している。その主要な
コンタクトは、ホストインターフェース204を介してのホストコンピュータ2
01との接触である。ホストインターフェース204は、例えば、専用SC5I
制御プロセサを有しており、それはホストコンピュータ201とメモリマネジャ
205との間の通信を取扱う。オペレータインターフェースがコンソール207
を介して設けられており、それはユーザがメモリ装置200の全体的な制御を行
うことを可能とする。別のコンタクト即ち接触点はデュアルインライン即ちPC
コンピュータ接続であって、それはメモリ装置200の動作状態又はユニットの
ステータスを調べるためのものである。
メモリマネジャ205はディスクドライブ210(又は高容量メモリ装置)及び
ソリッドステートメモリ208の二つの格納媒体内へのデータの格納及びそれら
からのデータの検索を管理するのに必要な全ての機能を取扱う。メモリマネジャ
205は、一つ又はそれ以上のマイクロプロセサ205−1等と、関連するファ
ームウェア205−2と、例えばアドレス変換(A D T)テーブル205−
3及び最も最近でなく使用した(LRU)テーブル205−4等の管理テーブル
から構成されている。
ソリッドステートメモリ208は、その経験に基づいて、メモリマネジャ205
がホストコンピュータ201に対して最も有用であるか又は近い将来において有
用なものとなる蓋然性が最も高いと思われるデータに対して使用される。
磁気ディスク201は全てのデータに対しての究極的な格納装置即ち記憶装置で
あり、必要とされる大きな記憶容量を与える。ディスクインターフェース209
は、メモリマネジャ205とディスクドライブ210との間の通信を取扱うため
の別の専用の制御プロセサ(例えば、SC5Iプロセサ)として作用する。
機能的エラー及び動作上の統計に関する情報は、診断モジュール−エラーロガー
206によって維持される。モジュール206へのアクセスは、デュアルインラ
イン202又はコンソール207のいずれかによって行われる。コンソール20
7は、本ユニットの電源を入れたり外したりすること、エラーロガーの読取又は
リセット動作、又は本ユニットの統計の調査等の動作に対しメモリ装置200へ
のオペレータのアクセスとして作用する。
メモリ装置200は、パワーバックアップシステム203を有しており、それは
再充電可能なバッテリを具備している。バックアップシステム203は、通常の
パワーが中断された場合に、メモリ装置200へのパワーの供給を維持するため
のものである。
このようなパワーの中断が発生すると、メモリマネシャ205は必要な動作を行
って、ソリッドステートメモリ208内に格納されている全てのアップデートさ
れたデータを、メモリ装置200をシャットダウンする前に、磁気ディスク21
0上へ供給する。
図3は本発明の一実施例のハードウェア制御器ブロックを示している。図3に示
した如く、ハードウェア制御器300は三つのI10ポート301,302゜3
03を与えている。I10ポート301及び302は、ハードウェア制御器30
0を一つ又はそれ以上のホストコンピュータ201 (図2)へ接続するために
使用される差動的SC5Iポートである。I10ポート303はシングルエンド
SC5Iポートであり、制御器300をディスクドライブ210 (本実施例に
おいては、5.25インチの磁気ハードディスクドライブ)へ接続するために使
用されている。
ディスクドライブ210はホストコンピュータ201から制御器300内へ流れ
るデータに対しての長期的な非揮発性の記憶装置を与えている。「差動的」及び
「シングルエンド」という用語は、SC5Iポートの特定の電気的特性に関する
ものであって、これら二つの間の最も顕著な差異は、許容可能なI10ケーブル
長の分野に存在している。I10ポート301.302,303のSC5Iに関
する側面については、それら以外のものにおいては、同一である。
キャッシュメモリ308 (メモリ208に対応)は大型の高速メモリであって
、ダイナミックな態様で、現在アクティブ即ち活性なデータ及び潜在的にアクテ
ィブなデータを格納するために使用される。
キャッシュメモリ308の格納容量は、任意の寸法に選択することが可能であり
、図3に図示した実施例においては、64メガバイトの格納容量を有している。
キャッシュメモリ308は16メガワードとして構成されており、各ワードは四
個のデータバイト(32ビツト)及び7ビツトのエラー補正コードから構成され
ている。典型的には、キャッシュメモリ308の格納容量は、それと共に動作す
る一つ又はそれ以上の磁気ディスク210(図2)の格納容量の100%に対し
約0.5%の範囲内に選択される。キャッシュメモリ308の小さな部分が、キ
ャッシュ動作を管理するために必要とされるテーブルを格納するために使用され
るか、又は、この目的のために異なったメモリ(図示していないがマイクロコン
トローラ305によりアクセス可能なもの)が使用される。
EDAC回路306が、キャッシュメモリ308に対してエラー検知及び補正機
能を行う。この実施例においては、EDAC回路306はキャッシュメモリ30
8に書込まれた各32ビツトデータワードに対し7ビツトのエラー補正コードを
発生し、この情報は、それが発生されたデータワードと共に、キャッシュメモリ
308へ書込まれる。このエラー補正コードは、キャッシュメモリ308へ最後
に書込まれてからそのデータが崩壊していないことを検証するために、キャッシ
ュメモリ308からデータが検索される場合に、EDAC回路306により検査
される。この実施例に対して選択された修正ハミングコードは、EDAC回路3
06が、発生する全ての単一ビットエラーを補正し且つ発生する全ての20ビツ
ト及び多くのマルチビットエラーを検知することを可能としている。
エラーロガー307は、EDAC回路306によって検知されたエラーの記録を
与えるために使用されている。エラーロガー307によって記録された情報は、
解析及び/又は表示を行うためにマイクロコントローラ305によつて検索され
る。この情報は、マイクロコントローラ305によって特定のビットエラー(単
一ビットエラーの場合)又は特定のワードエラー(20ビツトエラーの場合)を
識別することを可能とするのに充分に詳細なものである。
EDAC回路306が単一ビットエラーを検知する場合には、そのデータがその
データにより要求されたインターフェース(プロセサ/キャッシュインターフェ
ース論理311.ホスト/キャッシュインターフェース論理311及び312、
及びディスク/キャッシュインターフェース論理313)へ転送される場合に補
正される。又、このエラー条件を処理することを可能とするための信号がマイク
ロコントローラ305へ送給される(それは、エラーロガー307の内容に基づ
いてのエラーの解析、そのエラーを揉消すことを試み、且つそのエラーがソフト
であるか又はハードであるかを決定するためにその揉消しの結果の解析が関与す
る)。
EDAC回路306が20ビツトエラーを検知する場合には、信号がマイクロコ
ントローラ305へ送給される。マイクロコントローラ305は何等かのデータ
が崩壊したことを認識する。その崩壊がADT又はLRUテーブル内において発
生した場合には、現在欠陥性のテーブルを他のものから再構築し、次いで両方の
テーブルをキャッシュメモリ308の異なった部分へ再配置させる試みが行われ
る。
ユーザデータを保持するキャッシュメモリ308のエリアにおいて崩壊が発生し
た場合には、マイクロコントローラ305は新たなデータ転送コマンドを受付け
ることを拒否する前に、可及的に多くのデータを救済する試みを行う(例えば、
キャッシュメモリ308の適宜の部分をディスクドライブ210へ転送する)。
ホストコンピュータ201からのステータス要求に対する任意の応答は、メモリ
装置200がもはや適切に動作をしていないことを認識するためにホストコンピ
ュータ201を使用することが可能である情報を有している。
マイクロコントローラ305は、プログラム可能(書込可能)コントロールプロ
セサ314(例えば、インテルコーポレーションから入手可能な80C196マ
イクロコントローラ)、64キロバイトのEPROMメモリ315、I10ポー
ト301,302,303と、キャッシュメモリ308と、EDAC306と、
エラーロガー307と、ホスト/キャッシュインターフェース論理311及び3
12と、ディスク/キャッシュインターフェース論理313と、プロセサ/キャ
ッシュインターフェース論理316と、直列ポート309とをプログラム可能コ
ントロールプロセサ314が制御することを可能とするためのハードウェアを有
している。
プログラム可能コントロールプロセサ314は、直接的に実行することが可能で
ある形態に変換されているソフトウェアプログラムによって支配される機能を実
行する。これらのソフトウェアプログラムはEPROMメモリ315内に格納さ
れている。
一実施例においては、ホスト/キャッシュインターフェース論理セクション31
1及び312は基本的に同一なものである。各ホスト/キャッシュインターフェ
ース論理セクションはDMA、バイト/ワード、ワード/バイト、キャッシュメ
モリ308へのアクセスを得るために対応するI10ボート(311の場合は3
01,312の場合は302)に対して必要とされるアドレスレジスタハードウ
ェアを有している。各ホスト/キャッシュインターフェース論理セクションは、
更に、マイクロコントローラ305を介して制御を行うことを可能とするハード
ウェアを有している。この実施例においては、I10ポート301及び302は
8ビツト(バイト)のデータ経路幅を有している。キャッシュメモリ308は3
2ビツト(ワード)のデータ経路幅を有している。
ディスク/キャッシュインターフェース論理313はホスト/キャッシュインタ
ーフェース論理セクション311及び312に類似している。それは、ディスク
I10ポート303がキャッシュメモリ308へのアクセスを獲得するのに必要
なりMA、パイ゛ト/ワード、ワード/バイト、アドレスレジスタハードウェア
を有している。ディスク/キャッシュインターフェース論理313は、更に、マ
イクロコントローラ305を介しての制御を可能とするハードウェアを有してい
る。この実施例においては、I10ボート303は8ビツト(バイト)のデータ
経路幅を有している。
プロセサ/キャッシュインターフェース論理316は、ホスト/キャッシュイン
ターフェース論理セクション311及び312及びディスク/キャッシュインタ
ーフェース論理313に類似している。それは、プログラム可能コントロールプ
ロセサ314がキャッシュメモリ308へのアクセスを獲得するために必要とさ
れるDMA、半ワード/ワード、ワード/半ワード、アドレスレジスタハードウ
ニアラ有している。プロセサ/キャッシュインターフェース論理316は、更に
、マイクロコントローラ305を介しての制御を可能とするためのハードウェア
を有している。この実施例においては、プログラム可能コントロールプロセサ3
14は16ビツト(半ワード)のデータ経路幅を有している。
直列ポート309は、システム200に対して人のインターフェースを与えるた
めに外部装置(例えば、小型コンピュータ)の接続を可能としている。
直列ポート309は、診断の開始、診断結果の報告、システム200の動作パラ
メータのセットアツプ、システム200の性能のモニタ、システム200内部に
記録されたエラーの検討を行うことを可能とする。他の実施例においては、直列
ポート309は、外部装置から制御プログラム格納部(例えば、メモリ315が
EPROMではなくEEPROMで実現されている場合)へ異なる及び/又は改
良されたソフトウェアプログラムを転送することを可能としている。
′テーブルのフ −マ・・
アドレス変換(ADT)テーブルのフォーマットLRUテーブルと共に、アドレ
ス変換テーブルは、キャッシュ動作を管理するために必要な情報を維持している
。ADTテーブル内には二つのセクションが存在しており、即ちインデックスさ
れた即ち表の形式の部分と、−組のインデックスされていない即ち単一値項目で
ある。
ADTテーブルのインデックスされていない部分は、二つのタイプのデータフィ
ールドを有しており、即ち第一のデータフィールドはキャッシュ管理に基本的な
項目であり、第二のデータフィールドは本ユニットの性能の記録を維持するデー
タ項目に関するものである。
インデックスされていない項目の第一グループ、即ちキャッシュ管理に必要なも
のに対するグループは、以下の単一値項目を有している。
(1)ADT−CNL
キャッシュされるディスクスピンドル上のトラック数であり、それはADTテー
ブル内のライン数に等しい。これはレディキャッシュユニットが構成される時に
セットされ、本ユニットが動作中は変化されることはない。
(2)ADT−HEAD−POS
キャッシュディスクの読取/書込ヘッドの現在位置。これはヘッドが位置決めさ
れる毎にアップデートされる。
(3)ADT−SWEEP−DIR
バックグラウンド書込みの現在のスィーブが進行している方向。これは、スイー
プがディスクを横断してその方向を逆転することにアップデートされる。
(4)ADT−MOD−COUNT
ホストからの書込みによって修正されており且つディスクサーバーによりディス
クへの書込みを現在待機しているキャッシュ内のトラックの総数。これは、ホス
トによって修正されていないキャッシュトラックがアップデートされる場合に1
だけ増加され、且つそれは修正されるキャッシュトラックがキャッシュディスク
ヘコビーされる毎に1だけ減少される。
第ニゲループのインデックスされていない項目は、ユニットの性能を記録する項
目であって、且つ本ユニットの現在の動作特性を計算するためにそれらの全てが
使用される。それらは、以下の単一値項目を包含している。
(1)ADT−READ−HITS
最後のリセットから発生したキャッシュ読取ヒツトの数。この値は、PC/コン
ソールからリセット動作によりゼロヘセットされる。それは、キャッシュメモリ
内に存在するデータが完全に満足する各読取I10に対しlだけインクリメント
される。
(2)ADT−READ−MI 5SES最後のリセット以来遭遇したキャッシ
ュ読取ミスの回数。この値は、PC/コンソールからのリセット動作によりゼロ
ヘセットされる。キャッシュメモリ内に存在するデータから完全に満足されるこ
との出来ない各読取I10に対しlだけインクリメントされる。
(3)ADT−WRI TE−HI TS最後のリセット以来遭遇したキャッシ
ュ書込ヒツトの回数。この値は、PC/コンソールからのリセット動作によって
ゼロヘセットされる。対応する−つ又はそれ以上のトラックがキャッシュメモリ
内に見つかった場合に各書込I10に対して1だけインクリメントされる。
(4)ADT−WRI TE−MI S S ES最後のリセット以来遭遇した
書込ミスの回数。この値はPC/コンソールからのリセット動作によりゼロヘセ
ットされる。一つ又はそれ以上の対応するトラックがキャッシュメモリ内に見つ
からない場合に各書込I10に対してlだけインクリメントされる。
スピンドル上の各データトラックに対し表部骨内に1本のラインが存在している
。1本のラインはそのライン番号即ちインデックスによって参照される。
そのライン番号はディスク上のトラック番号に直接的に対応している。ホストが
ディスク上のデータへアクセスするか又は修正することを所望する場合、開始セ
クタアドレスを参照し且つアクセス又は修正されるべきセクタ数を表示すること
により行われる。
キャッノユを行うためには、開始セクタアドレスがトラック識別子へ変換され且
つそのトラック内においてオフセットされる。
ディスクセクタアドレスはそれをトラック当たりのセクタ数によって割算するこ
とにより、トラック番号及びセクタオフセットへ変換される。その残り(余り)
は該トラック内へのオフセットである。その商はトラック識別子であり且つAD
Tテーブル内へのインデックスである。このインデックスを使用して、特定した
ディスクトラックの条件をADTテーブル内のデータから直接的に決定すること
が可能であり、キャツシュヒツト又はミスを決定するためにサーチが必要とされ
ることはない。
各ADTラインは以下の項目を有している。
(1)ADT−5LOT
このADTテーブルラインのインデックスと同一の数のディスクトラック内に保
持されるデータを有するキャッシュスロット数。構成上、ADT−5LOT内の
値は、キャッシュしたディスクトラックに関連したLRUテーブル内のラインを
指し示している。ディスクトラックがキャッシュ内にない場合には、このフィー
ルド内の値は無意味であり且つそのナル値ヘセットされる。何等テーブル装置な
しでキャツシュヒツトを完全にサービスすることが可能であるのはこのフィール
ドによるものである。このフィールド内のナル値は、対応するディスクトラック
゛がキャッシュ内に格納されていないことを示している。このフィールドは、
トラックがSSDエリア内へエンターされるか又はそこから取除かれる度にアッ
プデートされる。
(2) ADT−MOD I F I ED対応するキャッシュされたトラック
がホストからの書込動作によって修正されているか否か従うてキャッシュからデ
ィスクヘコピーする必要があるか否かを表わすフラッグ。
′に されていない LRU テーブルのム1ニヱユ止
LRUテーブルはキャッシュされたデータのトラックが最初にアクセスされた時
間に関する情報を維持している。この情報はキャッシュされていないデータトラ
ックをキャッシュ内に配置されねばならない場合にどのキャッシュスロットが上
書きのために使用可能であるかを本ユニットが常に注意するために必要である。
その内容は、又、ADTテーブル内に保持されているデータに対する冗長性を与
え、従ってシステムの信頼性に貢献する。
LRUテーブル内には二つのセクションが存在しており、即ちインデックス付即
ち表部分と、−組のインデックスされていない即ち単一値項目である。
LRUテーブルのインデックスされていない部分は、キャッシュプロセスを管理
するのに必要なデータを有している。表部分はLRUチェーン動作目的のための
ポインタ、ADTテーブル内へのポインタ、及びリサイクルコントロールマーカ
ーから構成されている。
キャッシュされていないディスクトラックに対してキャッシュエリアが必要な場
合にどのキャッシュしたトラックを上書きするかをシステムが決定するのはこの
LRU情報及びADTテーブル情報によるものである。インデックスされていな
い項目は、キャッシュ管理のために必要であり、且つ以下の単一値項目を有して
いる。
(1)LRU−CNL
キャッシュエリア内のトラック等価スロット数であり、これはLRUテーブル内
のライン数と等しい。
(2)LRU−LRU
LRU−LRUテーブル要素は、最も長い時間にわたり不変のままとされたキャ
ッシュされたデータを有するキャッシュエリアトラックスロットを指し示す。そ
れは、参照されたスロットに対する新たな活動がそれを最も最近に使用されたも
のではないものとする場合にアップデートされる。参照されたスロットは、新た
なデータをキャッシュ内に書込まねばならない場合の上書きをするための第一候
補者である。
(3)LRU−MRU
LRU−MRUテーブル要素は、ホストによって最も最近に参照されたキャッシ
ュされたデータを有するキャッシュエリアトラックスロットを指し示す。
LRU−MRUは、ホストからの読取又は書込のいずれかによってトラックが影
響を受ける度にアップデートされる。その時に、アクセスされるトラックのアド
レスはLRU−MRU内に配置され、且つLRUチェーンがLRUテーブルのイ
ンデックスされた部分においてアップデートされる。
キャッシュデータエリア内の各データトラックスロットに対し表部針内に一本の
ラインが存在している。一本のラインはそのライン番号即ちインデックスによっ
て参照される。そのライン番号は、キャッシュデータエリア内の一つのスロット
に直接対応している。
各LRUテーブルラインはポインタフィールドとその他のコントロールフィール
ドとを有している。
(1)LRU−TRACK
対応するキャッシュスロット内に現在存在しているディスクトラックを参照する
ADTラインへのポインタ。構成上、この値は、又、存在する場合にそのデータ
が現在対応するキャッシュスロット内に存在するディスクトラックの識別子であ
る。
(2)LRU−LAST
これはキャッシュデータスロットの双方向チェーンの一部である。LRU−LA
STは次に古い(使用上)キャッシュスロットへのポインタである。このスロッ
トが最も古い場合には、LRU−LASTはゼロを有している。
(3)LRU−NEXT
これは、キャッシュデータスロットの双方向チェーンの他の半分である。LRU
−NEXTは次に新しい(使用上)キャッシュスロットへのポインタである。こ
のスロットが最も新しいものである場合には、LRU−NEXTはゼロを有して
いる。
(4)LRU−CACHED−LOW
有効なキャッシュされたデータを有するこのキャッシュされたトラックの最も低
いセクタのトラック関連番号を有するフィールド。
(5)LR(J−CACHED−HIGH有効なキャッシュされたデータを有す
るこのキャッシュされたトラックの最も高いセクタのトラック関連番号を有する
フィールド。
(6)LRU−MOD−LOW
修正されたキャッシュされたデータを有するこのキャッシュされたトラックの最
も低いセクタのトラック関連番号を有するフィールド。
(7)LRU−MOD−HI GH
修正されたキャッシュされたデータを有するこのキャッシュされたトラックの最
も高いセクタのトラック関連番号を有するフィールド。
(8)LRU−LOCKED
対応するキャッシュされたトラックが、現在、例えばディスクから獲得されたか
、ホストによづて修正されたか、又はキャッシュコントローラによってディスク
へ書込まれたか等の何等か動作のターゲットであるか否かを表わすフラッグであ
り、このような活動はその他のある動作に対してはトラックを使用不能なものと
させる。
(9)LRU−RECYCLE
対応するトラックがリサイクル用の候補者であるか否かを表わす単一ビットマー
カー。それは、トラックが再使用される場合にはl (オン)ヘセットされ、そ
のトラックがリサイクルされる場合(MRU位置へ移動される場合)は、0(オ
フ)ヘセットされる。キャッシュアヘッド決定の結果としてトラックがキャッシ
ュ内へ持込まれる場合には、それは初期的にOヘセソトされる。キャッシュミス
を満足させるために持込まれるトラックの場合、それは1ヘセツトされる。
1二1互辺1
初期的ADTテーブル
ユニットが最初にパワーオンされると、ADTテーブルは不定状態となる。動作
可能状態となるためには、それらの適宜のテーブル要素内へ初期値をエンターせ
ねばならない。ADTテーブルのインデックスしていないフィールドに対する初
期値は以下の如くである。
ADT−CNLフィールドは、トラック数としてキャッシュディスクの寸法ヘセ
ットされねばならない。
ADT−HEAD−POSフィールドは、ヘッドが現在ディスクの端部にあるこ
とを表わすためにゼロヘセットされる。このことは真実である場合もない場合も
あるが、そのことは重要ではない。それは、ディスクへの最初のアクセスで正し
くされる。
ADT−5WEEP−D I Rフィールドは、ヘッドが上方向(トラックアド
レスに基づいて)に移動することを表わすために1へ任意的にセットされる。
このことは、最初のバックグラウンドスィーブの開始で補正される。
ADT−MOD−COUNTフィールドは、ディスクヘコビーされるべ(修正さ
れたトラックがキャッシュ内に待機していない事実を反映するために0ヘセツト
される。
ADT−READ−HI TSフィールドは、読取動作期間中にキャツシュヒツ
トが発生しなかった事実を反映するために0ヘセツトされる。
ADT−READ−MI 5SESフイールドは、読取動作期間中にキャッシュ
ミスが発生しなかった事実を反映するために0ヘセツトされる。
ADT−WRITE−HITSフィールドは、書込動作期間中にキャツシュヒツ
トが発生しなかった事実を反映するために0ヘセツトされる。
ADT−WRITE−MI 5SESフイールドは、書込動作期間中にキャッシ
ュミスが発生しなかった事実を反映するために0ヘセツトされる。
ADTテーブルの全てのラインの全てのインデックスされたフィールドは、初期
的に0ヘセツトされ、トラックがキャッシュ内に存在しないことを表わす。
rLRUテーブル
ユニットが最初にターンオンされると、LRUテーブルは不定状態にある。動作
可能状態となるためには、それらの適宜のテーブル要素内に初期値がエンターさ
れねばならない。チェーンフィールドを初期化させるために多数の許容可能な方
法が存在しているが、簡単な方法が選択され且つそれについて以下に説明する。
LRUテーブルのインデックスされていないフィールドに対する初期値は以下の
如くである。
LRU−CNLフィールドは、トラック等価スロットの数としてキャッシュの寸
法ヘセットされねばならない。
LRU−LRUフィールドは、最も古いものとして最も低い番号の付いたキャッ
シュスロットを表わすために1ヘセツトされる。これは、選択されたチェーン値
についてい(場合の任意的な選択である。
LRU−MRUフィールドは、最も最近に使用されたものとして最も高いキャッ
シュスロット表わすためにLRU−CNLと等しくセットされる。これは、選択
された初期的チェーン値についていく場合の任意的な選択である。
LRUテーブルのインデックスされたフィールドに対する初期値は以下の如くで
ある。
LRUテーブルの全てのラインのLRU−TRACKフィールドは、ディスクデ
ータトラックが現在キャッシュ内に保持されていないことを表わすために0ヘセ
ツトされる。
LRUテーブルの全てのラインのLRU−LAST ’フィールドは、そのライ
ンのインデックス−1ヘセツトされる。この作用は、LRU−NEXT値に対す
る設定と共に、キャッシュ始動動作に適したチェーン化リストを発生する。
LRUテーブルの最も高いものを除いた全てのラインのLRU−NEXTフィー
ルドは、そのラインのインブックスミ+1ヘセツトされる。最も高いラインのL
RU−NEXT値はOヘセットされる。これらの設定は、LRU−LAST値に
対する設定と共に、キャッシュ始動動作に適したチェーン化リストを発生する。
全てのラインのLRU−CACHED−LOWフィールドは、ディスクトラック
のどの部分も現在キャッシュ内に保持されていないことを表わすためにそのナル
値ヘセットされる。
全てのラインのLRU−CACHED−HI GHフィールドは、ディスクトラ
ックのどの部分も現在キャッシュ内に保持されていないことを表わすためにその
ナル値ヘセットされる。
全てのラインのLRU−MOD−LOWフィールドは、現在キャッシュ内に保持
されているディスクトラックのどの部分も修正された条件にないことを表わすた
めにそのナル値ヘセットされる。
全てのラインのLRU−MOD−HI GHフィールドは、現在キャッシュ内に
保持されているディスクトラックのどの部分も修正条件にないことを表わすため
にそのナル値ヘセットされる。
LRUテーブルの全てのラインのLRU−LOCKEDフィールドは、どのキャ
ッシュスロットも現在ロックされていないことを表わすために0ヘセツトされる
。
LRUテーブルの全てのラインのLRU−RECYCLEフィールドは、どのス
ロットも現在リサイクル用の候補者ではないことを表わすためにOヘセットされ
る。
、ADT−−プル
動作状態ADTテーブル例は、最初の(サンプル)Iloが発生した後及びシス
テムが完全な活性条件に到達した後の条件を示している。これらの完全な活性例
は、ADTテーブル内容の状態に関しいくつかのIloの影響を示している。こ
れらの例の中には、更に、キャッシュからディスクへ修正したトラックを書込ん
だバックグラウンドスイープの効果も設けられている。これらの特定のサンプル
動作の詳細な説明はLRUテーブルの説明において後に説明する。
jLRUテーブル
動作状態LRUテーブル例は、最初のIloが発生した後及びシステムが完全な
活性条件に到達した後の条件を示している。これらの完全な活性例は、LRUテ
ーブル内容の状態に関しいくつかのIloの効果を示している。
サンプル■ 0の 日
説明の便宜上、Iloの一つのサンプルを詳細に説明すべ(選択した。説明のた
めに選択したものは動作箇所において作用のトレースからとられたI10番号1
,1000,1001.1002であり、それらは説明したシステム内に投影さ
れたものとして表4に詳細に示しである。サンプルI10の以下の説明はADT
テーブルとLRUテーブルの両方に関する効果を包含している。
I10動作番号lに関連した作用:
(1)このIloはディスクトラック番号46及び47が関与する読取であり、
何もキャッシュ内に存在しないので、それはキャッシュミスである。トラック4
6の一部とトラック47の全てがキャッシュ内へ持込まれる。ADTテーブルは
修正されてキャッシュ内のこれらのトラックの位置を示し、今キャッシュされた
各トラックの量が記録され、チェーンが再連結されてMRUとなるべきトラック
及びMRUの次のトラックを示し、且つそれらは両方ともリサイクル用にマーク
が付けられる。それらは、チェーン内のLRU位置に到達するまでに少なくとも
一度使用されているので、それらはリサイクル用のマークが付けられる。
(2)トラック47におけるIloの端部からの距離及び110寸法に基づいて
、トラック48のプレフェッチが開始される。この活動は、ADTテーブル及び
LRUテーブル内に反映されることはない。
何故ならば、それは現在のIloの完了後にバックグラウンド動作として開始さ
れるからである。
999I10が発生した後に、ADTテーブル及びLRUテーブルはあるステー
タスに到達している。
I10番号1000はセクタアドレス14,190において開始する68個のセ
クタの読取である。これはディスクトラック56のセクタ11乃至78を占有す
る。これらの条件に基づいて、以下の作用はI10動作番号1000に関連して
いる。
(1)このIloはキャッシュ内に存在しないトラック56が関与する読取であ
り、その所要の部分はキャッシュ内に持込まれねばならない。この必要とされる
データをフェッチする間に、要求されたデータの端部からそのトラックの端部ま
でのトラック56の部分もフェッチされる。ここでこのことが行われるのは、そ
れを行うのに最も便利な時間だからであり、且つプレフェッチ規則を満足させる
。LRUテーブルは、トラック56のキャッシュ動作を反映すべくアップデート
され、且つこのデータがフェッチされるスロットがLRUチェーン内のMRU位
置に配置される。
(2)トラック56をキャッシュするための場所を確保するために、古いLRU
トラックはデキャッシュ即ちキャッシュメモリから取除かれる。
(3)読取I10動作はバックグラウンドスィーブに対する必要性に影響を与え
るものではない。ディスクヘコピーする必要があるトラックはキャッシュ内に三
つあり、この条件は現在のIloによって不変のまま留まる。
(4)いくつかのキャッシュスロットがリサイクル用にマークが付けられており
、該チェーンのLRU端部におけるスロット及びそれを指し示すスロットを包含
している。プレフェッチが開始される前に、これらはMRU位置及びMRUの次
の位置へ移動され、且つそれらのリサイクルマーカーは取除かれる。
(5)トラック57は既にキャッシュ内に存在しているので、そのためのプレフ
ェッチは必要ではない。
(6)Ilo (68個のセクタ)の寸法及びトラック56内の最初のセクタへ
の現在のIloの近接度は、トラック55がキャッシュアヘッド作用によってプ
レフェッチされるべきであることを表わす。そのプレフェッチはバックグラウン
ド動作として開始される。LRUチェーン及びリサイクル状態に基づいて、トラ
ック55はスロット3内ヘキヤツシユされる。しばらくの間、それはチェーン内
のMRU位置を占有する。
I10動作番号1001に関連した作用:(1)Iloloooによって開始さ
れたトラック55のプレフェッチは現在完了している。
(2)I10番号1001はトラック61のセクタ191−256及びトラック
62のセクタl−2が関与する書込である。それらを参照するLRUテーブル及
びADTテーブルはアップデートされる。
(3)このI10作用は二つのキャッシュしたトラックを修正しており、ディス
クへ書込まれることが必要なトラックの総数をバックグラウンドスイープ用のト
リガ点とさせる。
(4)バックグラウンドスイープが開始され、且つキャッシュからディスクへ修
正したトラックの書込を開始する。
(5)バックグラウンドスイープはディスクスピンドルを使用するので、本ユニ
ットがキャッシュ内へのトラック60のプレフェッチを検討する場合であっても
、キャッシュアヘッドが開始されることはない。
I10動作番号1002に関連した作用:(1)バックグラウンドスイープがキ
ャッシュからディスクへの全ての修正したトラックの書込を完了しており、従っ
て、それは次いで休眠状態となっている。
(2)l101002は、既にキャッシュ内に存在するトラック204が関与す
る書込であった。そのトラックは、修正されたものとしてADTテーブル内にマ
ークが付けられている。LRUテーブルにおいて、スロット番号13内のトラッ
ク214はMRU−LRUチェーンから取除かれており、且つ修正された量がL
RU−MOD−LOWフィールド及びLRU−MOD−HI GHフィールド内
に記録される。
(3)トラック214内の現在のIloの位置がキャッシュアヘッド動作の充分
な根拠を与えるためにトラックの端部に充分近いものであるので、トラック21
5のプレフェッチが開始される。この作用は、l101002に対するADTテ
ーブル及びLRUテーブル内には表われない。何故ならば、それは、現在のIl
oの完了後にバックグラウンドにおいて発生するからである。
(4)トラック215のプレフェッチが開始されているので、トラック213は
プレフェッチのために考慮されることはない。
l」ユニ1辷立」二二
フ −ムラエア
本発明のメモリコントローラは、それが取扱うことを必要とする作用が存在しな
い場合には準体眠状態となる。図4のフローチャートに示した如(、コントロー
ラを活性状態とさせる三つのタイプの発生原因がある。
(1)ホストコンピュータがコマンドを送給する場合
(2)バックグラウンドスイープがイベントを完了する場合
(3)バックグラウンドスイープがタイムアウトする場合
可能である限り、ホストコンピュータのコマンドは他のメモリ装置の活動に対し
て優先度が与えられている。従って、ホストからのコマンドが受取られると、そ
れはすぐにホストコマンドハンドラへ渡される。そのコマンドによって要求され
る活動乃至は作用が完了すると、メモリコントローラはバックグラウンドスイー
プが活性状態であるか否かを決定す ゛る。活性状態にない場合には、バックグ
ラウンドステータスを検査し、且つ、後にバックグラウンドチェックに関して説
明する如(、適宜の作用が行なわれる。バックグラウンドステータスチェックに
続いて、キャッシュアヘッドステータスがチェックされ、そのことについては後
にキャッシュアヘッドステータスに関して説明する。次いで、該コントローラは
次のホストからのコマンドを待つ。該コントローラはその時には完全に非活性状
態にない場合があり、バックグラウンドスィーブ又はキャッシュアヘッドのいず
れかが何等かのディスク活動を開始させたが又は継続して行っている場合がある
からである。バックグラウンドが活性状態にあることが判明すると、その活動は
、後にバックグラウンド継続に関して説明する如(、もはややるべき直接的な仕
事が存在しなくなる時まで継続して行われる。
バックグラウンドスィーブがコマンドを完了すると、該コントローラはスイープ
がその注意を必要とすることを表わす信号によってインタラブド(中断)が与え
られる。その時には、該コントローラは、待機しているものがある場合には、次
のスィーブイベントを開始し、且つバックグラウンド継続に関して後に説明する
如く、必要性に基づいて次のスィーブイベントをセットアツプする。各スイープ
イベントの完了時に、該コントローラは、そのスイープを継続する必要性がある
か否かを決定する。そのような必要性が存在しない場合には、バックグラウンド
スイープは休眠状態とされる。いずれの場合においても、該コントローラがその
ハウスキーピングを完了すると、それは非活性状態となりその次のタスクを待機
する。
バックグラウンドスィーブは二つの方法のうちのいずれかによって活性化させる
ことが可能である。
即ち、設定した数のキャッシュされたトラックが修正された場合及びキャッシュ
からディスクへ書込を行う必要性がある場合に活性化される。このスイープは、
又、タイムアウトによって活性化される場合がある。スィーブが非活性状態にあ
り、且つ予め設定した量の時間を超えて待機しているキャッシュからディスクへ
書込まれることを待機している修正されたトラックが存在する場合にタイムアウ
トが発生する。タイムアウトが発生すると、該コントローラはスイープがその注
意を必要とする信号を受取る。
該コントローラはバックグラウンドスイープを開始しくバックグラウンド開始の
説明を参照)、且つ適宜のハウスキーピングを完了した後に、その注意を必要と
する次のコマンド又はイベントを待つ。バックグラウンドスイープ自身は、それ
をサービスするための直接的な必要性が存在しなくなるまで動作を継続して行う
。その時に、それも休眠状態とされる。
ホス コマン゛ 理
ホストコンピュータからコマンドが受取られると、それには最も高い可能な優先
度が与えられ且つ図5に示した如くに取扱われる。どのような活動乃至は作用が
必要とされているかを決定するために、このコマンドは解析されねばならない。
ファームウェアの一部は、その目的のために専用とされている(ホストコマンド
解析の説明を参照)。コマンドの解析は、コマンドのタイプ(読取、書込、シー
ク又はその他)を決定し、且つ意味がある場合には、キャツシュヒツト/ミスの
決定を行う。この解析は、更に、後にそのコマンドのサービスを行う場合に使用
する一つ又はそれ以上のラインからなるテーブルをセットアツプする。
そのコマンドが読取であり且つそれがキャッシュから完全にサービスすることが
可能である場合(即ち、キャツシュヒツト)、そのコマンドはコントローラの読
取ヒツト部分によりサービスされる(読取ヒツト処理の説明参照)。
読取のいずれかの部分がキャッシュされたトラックからサービスすることができ
ない場合(即ち、キャッシュミス)、そのコマンドはコントローラの読取ミス部
分へ渡される(読取ミス処理の説明参照)。
そのコマンドが書込であり且つその動作に関与する全てのトラックが既にキャッ
シュ内に存在する場合には、そのコマンドはコントローラの書込ヒツト部分によ
りサービスされる(書込ヒツト処理の説明参照)。
その書込のいずれかの部分がキャッシュされていない一つ又はそれ以上のトラッ
クを関与させる場合には、そのコマンドはコントローラの書込ミス部分へ渡され
る(書込ミス処理の説明参照)。
そのコマンドがシークであり且つターゲットトラックが既にキャッシュされてい
る場合には、何等の作用が必要とされることはない。そのターゲットトラックが
キャッシュされていない場合には、そのコマンドはコントローラのシークミス部
分へ渡される(シークミス処理の説明参照)。
ホス I Oコマン゛
図6に示した如(、ホストコマンドの解析は、その動作に関与する各トラックの
位置を有するトラックアドレスリストを形成することを包含している(トラック
アドレスリストセットアツプの説明参照)。
各このようなトラックに対して、そのリストは、それが既にキャッシュ内に存在
する場合には、キャッシュ内のトラックの現在の位置を有しており、又は、この
コマンド及び関連したキャッシュ用活動が完了した後にキャッシュ内に存在する
。トラックが既にキャッシュされていない場合には、それをキャッシュ内に配置
させる空間が探し出され、且つその空間内に存在する現在のトラックはデキャッ
シュされる、即ちキャッシュから取除かれる。この解析は、コントローラ論理を
促進させることが可能であるようにキャツシュヒツト/ミスフラッグをセットす
ることを包含している。
う・・ アドレス変換 のセ・・ ア・・ブ図7に示した如く、トラックアドレ
スリストをセットアツプするコントローラセグメントは、I10ディスクトラッ
クを決定するためにI10セクタアドレス及び寸法を使用する(アドレス変換の
説明参照)。関与するトラック数も決定され、且つその各々に対して、その動作
に関与するトラックの部分が計算される。
714旦ス亙遣
図8はこの変換動作を示している。セクタアドレスをトラック寸法で割算するこ
とによってトラックアドレスへ変換することが可能である。その場合の商はトラ
ック番号であり、且つその残りはセクタが存在するトラック内へのオフセットで
ある。
胱」L旦!L上」L作
図9を参照して説明する。読取ヒツトはキャッシュされたデータから完全に充足
される。コントローラのこのモジュールに到達するために、コマンドの解析が行
われ且つトラックアドレステーブルがセットアツプされる。この予備的な作業が
完了すると、ホスト読取コマンドがサブコマンドコントロールとしてトラックア
ドレステーブルの各ラインを使用することによって満足させることが可能である
。全ての影響を受けるトラックの全ての必要とされる部分は既にキャッシュ内に
あるので、全ての必要とされるデータはキャッシュからホストへ直接送給するこ
とが可能である。ホストへデータを転送することに加えて、このモジュールは影
響を受けたトラックを再度チェーン化させてLRUテーブル内において最も最近
に使用されたトラックとなる。
L1土ス11
読取ミス(図10)はディスクから部分的に又は完全に満足される。コントロー
ラのこのモジュールに到達するために、コマンドが解析され且つトラックアドレ
ステーブルがセットアツプされる。この予備的作業が完了すると、ホスト読取コ
マンドはサブコマンドコントロールとしてトラックアドレステーブルの各ライン
を使用することにより満足させることが可能である。寸法がREAD−MI S
S−MAXSIZE(読取−ミス−最大寸法)を超えるIloの場合には、キャ
ッシュに何等影響を与えることなしにディスクからホストへ直接的にキャッシュ
されていない部分が送られる。寸法がREAD−MISS−MAXS I ZE
を超えないIloの場合には、動作はユニットの現在のモードに基づいて取扱わ
れる。
本ユニットが緊急モードにない場合には、既にキャッシュ内にあるトラックセグ
メントに対しては、データはキャシュからホストへ直接的に送給することが可能
である。キャッシュ内に存在しないトラックセグメントの場合には、データはデ
ィスクからホストへ送給され、且つ同時的に、要求されたデータの第一セクタか
らそのトラックの終端へのトラック部分がキャッシュへ送られる。対応するLR
UテーブルラインのLRU−CACHED−LOW及びLRU−CACHED−
HI GHフィールドがキャッシュへ持込まれたトラックの部分を反映すべ(セ
ットされる。
本ユニットが緊急モードにある場合には、キャッシュ内に存在しないトラックに
対しては、データは、キャッシュ内へエンターされることなしに、ディスクから
ホストへ直接的に送給される。
いずれのモードにおいても、データをホストへ送給することに加えて、このモジ
ュールは影響されキャッシュされたトラックを再度チェーン化してLRUテーブ
ル内において最も最近に使用されたスロットとなる。
1立旦ユ上11
書込ヒツト(図11)は完全にキャッシュ内において取扱われる。コントローラ
のこのモジュールに到達するために、コマンドが解析され且つトラックアドレス
テーブルがセットアツプされる。この予備的作業が完了すると、ホスト書込コマ
ンドは、サブコマンドコントロールとしてトラックアドレステーブルの各ライン
を使用することによって満足させることが可能である。全ての影響されたトラッ
クは既にキャッシュ内に表わされているので、全てのデータは部分的トラックの
転送後のステージングに対する懸念なしに、ホストからキャッシュへ直接的に送
給することが可能である。キャッシュへデータを転送することに加えて、このモ
ジュールは、そのスロットがLRUチェーンにリンクされた場合には、LRUチ
ェーンから影響を受けたキャッシュスロットを取除く。全ての場合において、対
応するLRU−MOD−LOW、LRU−MOD−HI GHlLRU−CAC
HED−LOW、LRU−CACHED−HIGHフィールドは、この新たなデ
ータが存在することを反映するためにアップデートされる。
1点上ス1准
110寸法がWRITE−MI SS−MAXS IZE(書込−ミス−最大寸
法)を超える場合には、キャシュされていないトラック又はトラックセグメント
とがキャッシュに何等影響を与えることなしに直接的にディスクへ書込まれる。
寸法がWRITE−MI SS−MAXS I ZEを超えルコとのなイI10
の場合にはその動作はユニットの現在のモードに基づいて取扱われる。本ユニッ
トが通常モードで動作している場合には、書込ミスはキャッシュ内において完全
に取扱われるが、データのディスクへの書込を可能とし且つ図12に示した如く
関与した部分的トラックのキャッシュ内へディスクからのデータの転送後のステ
ージングを制御するために、LRU−CACHED−LOW、LRU−CAC)
IED−HIGH,LRU−MOD−LOW、LRU−MOD−HI G Hフ
ィールド内への情報を配置させることを必要とする。コントローラのこのモジュ
ールに到達するためには、コマンドを解析し、且つトラックアドレステーブルを
セットアツプする。この予備的作業が完了すると、ホスト書込コマンドは、サブ
コマンドコントロールとしてトラックアドレステーブルの各ラインを使用するこ
とによって満足させることが可能である。これはキャッシュミスであるので、影
響を受けるトラックの幾つか又は全てはキャッシュ内に存在することはなく、然
しなから、全てのデータはホストからキャッシュへ直接的に送給することが可能
である。
キャッシュコントローラはトラック又はいずれかの部分的トラックにおけるギャ
ップを充填するためにデータの転送後のステージングのための責任を有している
。実際には、転送に関与した最初のトラック及び/又は最後のトラックのみが部
分的トラックとなることが可能であり、全ての内部のトラックは充填トラックで
なければならず、従って、いずれの場合においても転送後のステージングを必要
とするものでない。転送後のステージングを必要とするトラックの場合には、コ
ントローラはキャッシュイベントのリストをセットアツプし、全ての必要とされ
るトラックセグメントをキャッシュ内へ持込み、キャッシュされたトラックの一
体性を維持する。キャッシュへデータを転送することに加えて、このモジュール
はLRUチェーンから影響されたトラックを除去する。本ユニットが緊急モード
で動作している場合には、書込ミスの取扱いが、現在キャッシュされていないト
ラックに対するキャッシュをバイパスし、そのデータをホストからディスクへ直
接的に送給する。LRUテーブル及びADTテーブルは影響されている場合のあ
るキャッシュされたトラックに対してアップデートされる。
シー キ ・・シ ミス
図13に示した如く、コントローラはシークコマンドを無視するオプションを有
している。何故ならば、コントローラは、究極的には、爾後の関連したI10コ
マンドを充足する責任があるからである。
ターゲットトラックが既にキャッシュ内に存在しているシークコマンドの場合に
は、何等コントローラの作用は必要ではなく又適切なものでもない。ターゲット
トラックがキャッシュ内に存在していないシークコマンドの場合には、コントロ
ーラは、そのシークが指向されているディスクがビジーでない場合には、そのタ
ーゲットトラックをキャッシュする。この作用は、読取又は書込コマンドによっ
て追従されない限り、ホストはシークコマンドを送給することがないという仮定
に基づいている。シークが指向されているディスクが、シークコマンドがホスト
から受取られた場合にビジーである場合には、そのシークコマンドは無視される
。
う・・ のデキ ・・シュ
発生する全てのキャッシュミスI10に対し、且つ全てのキャッシュアヘッド動
作に対して、データの何等力)の前にキャッシュした一つ又はそれ以上のトラッ
クはデキャッシュ即ちキャッシュから取り除かれねばならない。L RUテーブ
ルの主要な機能は、データのどのキャッシュしたトラックがデキャッシュ即ちキ
ャッシュから取除くための最良の候補者であるかをコントローラが迅速に決定す
ることを可能とすることである。図14に図示したデキヤツシユ用モジュールは
、デキャッシュされるべきトラックを選択する。通常、その最後の利用から最も
長い経過時間を有するトラックがデキャッシュされべきトラックである。これは
LRUテーブルのLRU−LRU要素によって指し示されるトラックである。L
RU−LRUポインタは、最も最近でな(使用された即ち最も古いトラックへ常
にポイント即ち指し示すような態様で維持される。
第一条件は、トラックが非活性状態でなければならないことであり、即ち、この
時刻において何等かの活動の主題でないことである。殆どの活動がLRU−LR
Uスポットからそれを再配置させるので、LRU−LRUトラックが何等かの活
動を有することは極めて蓋然性が低い。然しなから、その蓋然性はデキヤツシユ
用アルゴリズムによってカバーされる。
トラックをデキャッシュすることが可能である前に充足されねばならない第二条
件は、デキャッシュされるべきトラックはリサイクル用の候補者であってはなら
ないということである。それが最初にキャッシュされてから再使用されているか
又はそれが最後にリサイクルされてから再使用されているトラックはデキャッシ
ュされない。その代わりに、このようにキャッシュされたトラックはMRU位置
ヘリサイクルされ、且つそのリサイクルマーカーが取除かれる。このように、こ
のようなトラックは、それが最後にリサイクルされてから、又は、キャッシュア
ヘッドトラックの場合には、それが最初にキャッシュされた時から再使用されて
いないトラックよりもより長い時間の間キャッシュに留まることが許容される。
この手順の効果は、使用されたものよりもより速いレートでLRUリストを介し
て使用されていないキャッシュアヘッドトラックが下方向へ移動することを可能
とし、且つより有用なトラックがより長い時間の間キャッシュ内に留まることを
可能とする。
上述した理由のいずれかに対して、LRU−LRUトラックがデキャッシュする
ことが不可能な場合には、LRUチェーンは次のLRU候補者へポイント即ち指
し示す。LRUトラックがリサイクルされることは異常なことではないが、デキ
ヤツシユ用モジュールが、デキャッシュされるべきスロットを捜し出すために一
つを超えたリサイクルされていないLRUスロットを検査することが必要となる
ことは極めて異常な条件である。
デキャッシュ用の実際の候補者が識別された場合には、LRUテーブルとADT
テーブルの両方がアップデートされて、選択された候補者がもはやキャッシュさ
れていないことを反映する。これは、マイナーな量の作業であり、何等ディスク
の活動が関与することはない。
キ ・・シュアへ・・ ゛
キャツシュヒツト及び管理動作は図15に示しである。コントローラが、そのI
loがキャツシュヒツトであったか又はキャシュミスであったかに否かに拘らず
、読取動作である全てのホストI10の後にキャッシュアヘッドを試みる。ホス
トから本装置へデータを書込む動作は、何等キャッシュアヘッド動作を必要とす
るものではない。何故ならば、デー夕は、常にホストからキャッシュのSSD内
へ受付けることが可能だからである。然しなから、読取キャッシュアヘッド作用
はバックグラウンド型の活動であり、ディスクとキャッシュとの間のプライベー
トチャンネルを使用するのみであり、それは、ホストI10活動に対しユニット
の応答時間に関して非常に小さなネガティブの影響を有している。その影響を更
に制限するために、キャッシュアヘッドには、入力するホストI10要求よりも
低い優先度が与えられる。
キャッシュアヘッド活動を制限する主要な要因は、殆どのホス1−Iloに続く
その動作の必要性が欠乏することである。図16のフローチャートに示した如(
、I10局所性の特徴はキャッシュアヘッド活動を現在のIloを満足したトラ
ックを超えて近い将来のホストI10がデータをアクセスする蓋然性のある条件
へ制限する。I10局所性アルゴリズムは現在のI10ブロック寸法を使用し且
つ影響されるトラック内の位置を使用して現在のIloが位置されていた現在の
トラックの「端部」がどれほど近いかを決定する。隣接するトラックに対する必
要性なしにこの同一のトラックから充分な数の同一の寸法のIloを満足させる
ことが可能であることが決定される場合には、キャッシュアヘッドが実施される
ことはない。
キャッシュアヘッドに対しては二つの候補者が存在する・に過ぎない。即ち、そ
れらは、ホストI10に関与するものの直後の単一のトラック及びホストI10
のものの直前のトラックである。これらのトラックは、しばしば、前のキャッシ
ュアヘッド活動によって既にキャッシュされているので、キャッシュアヘッド活
動は大概自己制限的プロセスである。
任意の与えられたホストI10に対して−っのトラックのみがキャシュアヘッド
処理され、ホストI10に続くトラックは主要な候補者である。それが既にキャ
ッシュされていない場合であって、且つ近接ファクタがキャッシュアヘッドが発
生すべきであることを表わす場合には、順方向トラックがこの時にキャッシュさ
れる。それに続くトラックが既にキャッシュされている場合には、ホストI10
に先行するトラックが考慮され、それが既にキャッシュされていない場合であっ
て、且つ近接ファクタがキャシュすることを所望する場合には、この先行するト
ラックはこの時にキャッシュされる。勿論、これらの候補者トラックの両方が前
にキャッシュされている場合には、キャッシュアヘッドモジュールは何等キャッ
シュ動作をする必要性がない。
このキャッシュアヘッドキャッシュバック特徴から非常に重要な利点が発生する
。関連するトラックがシーケンシャルモードでホストによってアクセスされる場
合には、そのシーケンスは与えられたディスクエリアにおいて最初にアクセスさ
れたものから順方向または逆方向のいずれかである。キャッシュアヘッドアルゴ
リズムの特性によって、非生産的なキャッシュアヘッドは、任意の与えられたト
ラッククラスタにおける初期的トラックから誤った方向に存在する一つのトラッ
クを関与するに過ぎない。このことは、近接アルゴリズムと結合されて、キャッ
シュアヘッド動作を、アクセスの方向に対して自己適合性のものとさせる。
バ・・ ゛ラウン゛スイープ
ホストからの書込I10がコントローラによってサービスされる場合には、ホス
トからのデータはキャッシュ内に配置される。それは、バックグラウンドにおい
てキャッシュからディスクへ書込まれ、■10をサービスするのに必要とされる
時間に関してディスク動作の影響を最小とさせる。このビくツクグラウンド活動
を取扱うモジュールはバックグラウンドスイープモジュールである。スィーブ活
動を制限するため、且つスピンドルに対する競合を制限するために修正されたト
ラックの部分のみがスィーブ期間中にSSDからディスクへ書込まれる。更なる
効率を達成するためにバックグラウンドスィーブモジュールは、それが使用可能
状態となるやいなやキャッシュからディスクへ常にデータをコピーするものでは
ない。そうではなく、ある最小数の修正したトラックが動作状態となる前にコピ
ーされるべき待機するまでそれが休眠状態に留まる。キャッシュからディスクヘ
コピーされる前に単一の修正されたトラックが非常に長い時間待機することを回
避するために、バックグラウンドスイープは、タイムアウトによっても活性化さ
れる。従って、いずれかの修正されたトラックがある最小時間待機しており、か
つそのスィーブが非活性状態でない場合にはそのスイープは活性化される。その
スイープがキャッシュからディスクへトラックの全ての修正した部分をコピーし
た後に、それは休眠状態へ復帰する。
スィーブタイムアラ
何らかのキャッシュされたデータトラックが修正され且つディスク上の対応する
トラックがある最小時間が経過した後にアップデートされていない場合にタイム
アウトが発生する。タイムアウトが発生すると、定義上、ディスクヘコピーされ
ることを必要とする少なくとも一個のキャッシュされたトラックが存在する。こ
の時に、バックグラウンドは活性状態へ変化される。タイムアウトモジュール(
図17)は、更に、最初のバックグラウンドイベントをセットアツプさせ(バッ
クグラウンドイベント発生の説明参照)、且つディスクをアクセスするためにホ
ストとの競合が存在しない場合には、そのイベントの実行が開始される。このイ
ベントが開始された後に、一つが必要であると知られている場合には次のイベン
トもセットアツプされ且つ後の実行のために保持される。これらの事柄が行われ
ると、バックグラウンドスィーブはその動作を継続するか又は休眠状態へ復帰す
るかの条件を待機する。
左乙二1■上
各ホストI10動作の完了時にスィーブ開始モジュール(図18)にエンターす
る。三つのケースのうちの一つが存在する場合がある。第一のケースはスイープ
が休眠状態であり、且つこの時にスイープをイネーブルさせるためにディスクヘ
コピーされることを待機する充分な数の修正されたトラックが存在しない場合で
ある。この場合には、最も一般的なものであり、この時に取られるべき作用は存
在しない。
第二のケースにおいては、スイープが活性状態であり、且つバックグラウンドイ
ベントが動作状態である。この状態においては、この時に新たな作用が必要とさ
れることはない。
最後のケースにおいては、スィーブが活性状態であるが、どのバックグラウンド
イベントも現在動作状態にはない。これらの条件下において、バックグラウンド
、イベントが発生され(スイープイベント発生の説明を参照)且つ、適切である
場合には、この実行が開始される。
スイープイペン の
バックグラウンドスイープイベントの発生の必要性は、ディスクが関与するその
他の進行中の活動が存在しないということに基づいている。何らかのこのような
活動が進行中である場合に図19のイベント発生モジュールにエンターすると、
同等イベントが発生されることはない。
時折、イベント発生モジュールは、ディスクヘコピーされるべく待機している修
正したトラックがもはや存在していないことを見出す。この場合には、バックグ
ラウンドスイープは休眠状態へ復帰される。
その他の時間においては、バックグラウンドスイープは活性モードにあるが、一
時的に中断されてホストI10をサービスするより高い優先度の活動を取扱う。
このような中断はバックグラウンドスィーブが再開始されることを必要とする。
それは、直接的にディスクヘッドにおいてではないがそれに最も近い修正された
トラックを見出すことによって行い、そのトラックへのシークを開始し、次いで
そのトラックに対する書込イベントをセットアツプする。この書込イベントは後
になるまで回避されることがないが、それが存在することは、可能である場合に
はこの書込が次ぎに行うべきことであることをスイープ継続モジュール(継続モ
ジュールの説明)へ知らせる。
このバックグラウンド書込を取扱う方法の効果は、ホスト動作に関しての影響を
最小とすることである。
コントローラは、バックグラウンドシークと対応する書込動作との間でのI10
ミスをサービスする機会を有している。このいずれもがホストI10キャツシュ
ヒツトをサービスすることに何等顕著な影響を有するものではない。何故ならば
、ヒツトは常にすぐに処理されるからである。ディスクはヒツトに関与すること
はない。
スイープは、トラック内の全てのセクタが修正されているか、又はそれらのセク
タの幾つかのみが発生されているかに依存して、修正されたトラックの書込を異
なった態様で取扱う。更に、完全に修正されたトラックの数及び部分的に修正さ
れたトラックの数は、両方とも、個々のトラックをディスクに書込むための優先
度の設定において考慮される。部分的に修正されたものの数と比較してより大き
な数の完全に修正されたトラックが存在する場合には、完全に修正されたトラッ
クにはスィーブ動作によって優先性が与えられる。
キャッシュからディスクへの修正したトラックの書込は、対応するLRU−MO
D−LOW及びLRU−MOD−HI GH値によって定義される如(、トラッ
クの修正された部分のみを取扱うことに制限される。修正されたトラック又はト
ラックセグメントがディスクへ書込まれると、チェーン化されていないステータ
ス内に存在していたトラックのキ↑ツシュスロットが、そのトラックが部分的に
修正されたものであるに過ぎない場合には、MRU位置においてLRUチェーン
内に配置され、且つそのトラックが完全に修正されたものである場合にはLRU
位置に配置される。同時に、対応するLRU−MOD−LOW及びLRU−MO
D−HI GHフィールドは、それらのナル値ヘセットされて、キャッシュされ
たデータのどの部分も対応するディスクトラック内のものと異なるものではない
ことを表わす。
各〕ニニノ」E總
図20のフローチャートに図示した如く、各バックグラウンドスィーブイベント
は、シークであるが又は書込であるかに拘らず、スィーブの爾後の作用に対して
待機するイベントを準備する。従って、シークの開始は常に爾後の関連した書込
イベントを準備し、書込の開始は、別のトラックがディスクへ書き込まれること
を待機している場合には、爾後の無関係のシークイベントを準備する。
継続モジュールは、各スイープイベントを完了すると、エンターされる。ホスト
がディスクを必要とするI10コマンドを発生すると(換言すると、キャッシュ
ミス)、バックグラウンドスィーブシーケンスが中断され且つ待機用イベントが
消去される。
この動作はホストのコマンドのサービスを迅速化させるために取られ、且つ待機
状態にあるスィーブイベントのタイプに拘らずに取られる。それはバックグラウ
ンドシーク作用を浪費する結果となる場合がある。このことは許容可能なもので
ある。中止された書込は時間が許す場合に後に取扱われる。勿論、シークである
か書込であるかに拘らずスィーブコマンドが実際に開始されると、それはアボー
ト即ち中断される場合がある。スイープ動作が中断された後にスイープ継続モジ
ュールにエンターすると、それはイベント発生モジュール(イベント発生説明を
参照)を使用してスイープシーケンスを再開始させる。
最後に、継続モジュールが、今完了したスィーブ動作が書込であったことを判別
し、且つディスクヘコピーされるためにもはや修正されたトラックが待機状態に
ない場合には、スィーブは休眠状態とされる。
パワー ラン ′
図21のフローチャートに図示した如(、ファームウェア部分は、本ユニットが
それへのラインパワー即ち商用電源が降下したこを検知する場合に喚起される。
本ユニット内のデータの幾つかは修正された状態でキャッシュ部分に存在し且つ
ディスクへの転送を待機している場合があるので、修正された部分がディスクへ
書込まれるまではキャッシュメモリ上にはパワー即ち電力が維持されねばならな
い。従って、ラインパワー即ち商用電源がなくなると、本ユニットをバッテリバ
ックアップユニットヘスイッチさせる。バッテリバックアップユニットは、メモ
リ装置がインテリジェントシャットダウンプロセスを介して動作する間パワーを
供給する。
パワーが降下する場合にホストがメモリ装置とのデータ転送のプロセス中である
場合には、シャットダウンコントローラは進行中の転送を完了することを可能と
させる。次いで、それはホストとの更なるトランズアクションを開始することを
阻止する。
従って、シャットダウンコントローラはソリッドステートメモリからディスクへ
データトラックの任意の修正した部分をコピーするためのバックグラウンドスィ
ーブを開始せねばならず、従ってコントローラ及びメモリ回路へのパワーが完全
にシャットオフされた場合にそれが喪失されることはない。スィーブが完了した
後に(それは2.3秒かかるに過ぎない)、ソリッドステートメモリ内の全ての
データはディスク上にも存在する。この点において、ディスクスピンドルはパワ
ーダウンさせることが可能であり、バッテリ上の負荷を減少させる。殆どの停電
は短い期間のものである。従って、コントローラは継続しである時間の量制御回
路及びソリッドステートメモリヘバッテリパワーを供給する。この期間中に外部
パワーが回復されると、コントローラはスピンドルにパワーを与え且つ外部パワ
ーへスイッチハックする。この場合には、ソリッドステートメモリ内に歴史的デ
ータを再度確立させる必要性なしに動作を進行させることが可能である。いずれ
の場合にも、最終的なシャットダウンの前に回転磁気ディスク上に全てが格納さ
れているのでデータが危険な状態となることはない。
、・バ・・り ラウン゛スイープ
最終的バックグラウンドスィーブ(図12)は、ソリッドステートメモリがら磁
気ディスクへトラックの修正した部分をコピーする。通常このようなトラック又
はトラックの部分は数個に過ぎないものである。何故ならば、この状態に到達す
ることの可能な数はシステムの動作によって意図的に制限されているからである
。最終的スイープはバックグラウンドスイープの通常動作のために開発された論
理を利用する。
スイープは、通常動作期間中のタイムアウトに対してのものとほぼ同一の態様で
開始される。トラックをコピーする必要がない場合には、スイープは休眠状態の
ままとされ、且つ更なるスィーブ動作が必要とされることはない。いずれかのト
ラックをコピーすることが必要である場合には、スィーブ開始体が最初のバック
グラウンドシークをセットアツプすると共に開始し、更に関連した書込イベント
をセットアツプする。この第一シークの完了値に、制御はバックグラウンド継続
モジュールへ移行し、該モジュールは交互に前に発生した待機用イベントを実行
し且つ次のイベントを発生し且つそれを待機ステータスとさせる。コピーすべき
修正したトラックが残存していない場合には、スィーブは完了される。
パラメータ び日
本明細書は特定の量又は識別が与えられていない項目を参照している。これらは
同等絶対的な限界又は制限を課することがないように意図的に量を特定しないま
まとしである。説明の便宜上且つ公知の実施可能な寸法及び識別を与えるために
、サンプル形態に対して満足のいくセットと共に、以下の範囲の値及び識別子を
提供する。
バックグラウンドスイープトリガ、修正トラック数範囲:l乃至選択したディス
ク上のトラック数サンプル形態−5
バックグラウンドスイープトリガ、時間範囲1139秒乃至無限
サンプル形態:5秒
マイクロプロセサ用のEPROMメモリ寸法範囲:非特定
サンプル形態:64キロバイト
ハードウェアマイクロプロセサコントローラ候補者:任意の適宜の使用可能なプ
ロセササンプル形態:80C196,24M Hzパワーダウン、キャッシュホ
ールド時間範囲二〇秒乃至バッテリバックアップユニットにより課される制限
サンプル形態:5分
回転磁気ディスク容量
寸法範囲:任意の使用可能なディスク容量サンプル形態:675メガバイトフオ
ーマツト済scs 4コントローラ
候補者;任意の適宜の使用可能なコントローラ装置サンプル形態:NCR53C
90A
セクタ寸法
寸法範囲:ホストシステム及び選択したディスクドライブに対して任意の適宜の
もの
サンプル形態:180バイト
トラック当たりのセクタ数
範囲:選択したディスク及びホストシステムにとって適宜のもの
サンプル形態=256
ソリッドステートメモリ寸法
寸法範囲:lメガバイト乃至取付けたりディスク容量の100%の容量
サンプル形態:32メガバイト
トラック寸法
寸法範囲:lセクタ乃至選択したディスクドライブにとって適切な任意の寸法
サンプル形態:256セクタ
デイスク当たりのトラック数
範囲:選択したディスク上で使用可能な任意のものサンプル形態=14650
テープルフ −マ・・
表F−1
アドレス変換(ADT)テーブルフォーマット−非インデツクス要素
ユニ二Lk」[旦 盈−一一皿
ADT−CNL キャッシュしたディスクスピンドル上のトラック数、
ADTテーブル内のライン
数と等しい。
ADT−HEAD−POSキャッシュディスクの読取/書込ヘッドの位置
ADT−5WEEP−現在のDISK 5ERVERDIR(ディスクサーノ<
−)スイー
プの方向、
l=スィーブは低から高へ
進行
0=スイープは高から低へ
進行
ADT−MOD−COUNTホストからの書込によって修正されており且つ現在
デ
イスフサ−バーによるディ
スフへの書込を待機してい
るキャッシュ内のトラック
の総数。
ADT −MOD −URGENT修正された条件にある場合には最適性能を維
持するた
めに本装置をして優先度を
シフトさせるキャラシュス
ロットの数
ADT −READ −HITS最後のリセット以来遭遇したキャッシュ読取ヒ
ツトの
数
ADT −READ −MISSES最後のリセット以来遭遇した読取ミスの数
ADT−WRI TE最後のリセット以来遭遇し−HI T S た書込ヒツト
の数
ADT−WRI TE最後のリセット以来遭遇し−MISSES た書込ミスの
数
表F−2
アドレス変換テーブルフォーマット−インデックス要素
立:J5L1月1太1 1上目1所
(INDEX) (ADT−CNL)ADTテーブルインデックス、対応す
るディスクトラツ
ク数と等価。各デ
ィスクトラック対
し−個のADTテー
プルラインが存在
する。
ADT−5LOT (LRU−CNL):のADTインデックスに対応するデー
タのディスクトラ
ツクを有するキャ
ッシュスロットの
数、又ディスクト
ラックに関連した
LRUテーブル内
のラインを指し示
ッンユ内にない場
合には、このフィー
ルドはその事実を
表わすためにその
ナル値ヘセットさ
れる。
ADT −MODIFIED 1 この(キャッシュされた)トラック
がホストからの書
込動作により修正
されているか否か、
込まれる必要があ
るか否かを表わす
フラッグ。
0=このトラック(キ
ャッシュされてい
る場合)は修正さ
れておらず且つデ
ィスクへ書込まれ
る必要はiヱい。
l=このトラックは
ディスクへ書込ま
れる必要がある。
表F−3
最も最近でなく使用された(LRU)テーブルフ1−マット−非インデツクス要
素
1二1基皿上 1−訓
LRU−CNL LRUテーブル内のライン数、キャッシュエリア内の
スロット数と等しい。
LRU−LRU LRUチェーンの最も最近でなく使用された即ち最も
古い端部へのポインタ。
LRU−MRU LRUチェーンの最も最近でな(使用された即ち最も
古い端部へのポインタ
表F−4
最も最近でなく使用したテーブルフォーマット−インデックス要素
Lニエ互Ut太1 1且且j
LRU −TRACK (ADT −CNL)このキャッシュスロット内に格納
さ
れたデータに対す
るディスクトラッ
ク番号、又そのデ
ィスクトラックに
関連したADTテー
プル内のラインを
1旨し示す。
LRU−NEXT (LRU−CNL)LRUチェーン内の次のリンクへのポ
インタ
0=これはチェーン
内の最後の(MRU)
リンクである。
LRU −TRACK (ADT −CNL)このキャッシュスロット内に格納
さ
れたデータに対す
るディスクトラッ
ク番号、又、その
ディスクトラック
に関連したADTテー
プル内のラインを
指し示す。
LRU−CACHED (TRACK 5IZE)有効なデータを有−LOW
するキャッシュし
たトラック内の最
も低いトラック関
連セクタ番号
LRU−CACHED (TRACK 5IZE)有効なデータを有−HIGH
するキャッシュし
たトラック内の最
も高いトラック関
連セクタ番号
L RU−M OD (TRACK 5IZE)修正したデータを−LOW 有
するキャッシュ
したトラック内の
最も低いトラック
関連セクタ番号
L RU −M OD (TRACK 5IZE)修正したデータを−HIGH
有するキャッシュ
したトラック内の
最も高いトラック
関連セクタ番号
LRU −LOCKED 1 例えばディスクから獲得したか、キャラ
シュコントローラに
よってディスクへ書
込まれる等のこの(キ
ャッシュした)トラ
ツクが現在何等かの
動作のターゲットで
あるか否かを表わす
ユした)はロックさ
れておらず、それは
何等かの動作のため
に使用可能である。
1=この(キャッジ
ュした)トラックは
ロックされており、
それは、この時は、
別の対立する動作の
ターゲットとなるこ
とは不可能である。
LRU−RECYCLE 1 リサイクルマーカー、0=これはリサイク
ル用の候補者では
ない。
表T−1
・ADTテーブル
ADTテーブルはいずれのディスクトラックもキャッシュされていないことを表
わすために初期条件に設定される。尚、「*」はナル値を表わしている。
ADT −CNL = 14628
ADT −HEAD −PO5= 0
ADT −5WEEP −DIR= IADT−MOD−COUNT = O
ADT−MOD−URGENT= 16ADT−READ−HITS = 0
ADT −READ −MISSES = 0ADT −WRITE−HITS
= 0ADT −WRITE −MISSES= 0DISK 5SD
TRACK 5LOT MODIFIED(ADT −CNL)
表T−2
・LRUテーブル
LRUテーブルは、キャッシュ動作の開始期間中に最小の特別の処理でもって初
期的動作が進行することを可能とすべ(任意的にチェーン化される。
表はMRUからLRUの順番でリセットされている。
尚、「*」はナル値を表わしている。
(スロット1は任意的にLRUと指定)去」ユニ」L立
一つのI10100後のADTテーブル(トラック16及び47が関与する読取
)注:「*」はナル値を表わしている。
ADT −CNL = 14628
ADT −HEAD −1)O5= 47ADT −5WEEP −DIR=
IADT−MOD−COUNT = O
ADT−MOD−URGENT= 16ADT −READ −HITS =
0ADT −READ −MISSES = IADT −WRITE −HI
TS = 0ADT −WRITE −MISSES= 0DISK 5SD
TRACK 5LOT 口IFIED COMMENTS46 1 0 読取ミ
スから゛(2トラツク)47 2 0 読取ミスから(2トラ・ツク)48 *
0
(ADT−CNL) ”
表]ユニ二よ
一つのI10100後のLRUテーブル(トラック46が関与する読取)
表」ユニ」L且
1000回のI10100後のLRUテーブルl101000はトラック56が
関与する読取である。テーブルはMRUからLRUの順番にリストされている。
注=「*」はナル値を表わしている。
16 2 20 57 127 256 * * OO21216461532
56* * OO122225218+ 256 * * OO2241267
1256* * OO
41522411256* * OO
151044221256* * OOlo 6 15 43 1 256 *
* OO8310’58 1 256 * * OO3062151256*
* OO
(スロット3は現在LRUスロット)
以下のスロットは修正されているが、修正した部分をディスクへ書込むことによ
って未だにクリーニングしておらず、従って、それらはチェーン化されていない
。
7**4512JE追 l 2 0 0II * * 44 191 256
191 256 0 013 * * 214 55 256 55 122
0 0表ユユニ3d
1000回I10動作の後のLRUテーブルl101000はトラック56が関
与する読取であだ。
表はMRUからLRUの順番にリストしである。
注=「*」はナル値を表わしている。
(スロット3は未だにLRUスロットである。)以下のスロットは修正されてい
るが、修正した部分をディスクへ書込むことによって未だにクリーニングしてお
らず、従って、それらはチェーン化されていない。5個のトラックを修正してい
るので、バックグランドスイープはターンオンされる。
表」ユニ」L且
1002番目のI10100後のLRUテーブル(トラック214が関与する書
込)
テーブルはMRUからLRUの順番にリストされである。
注:「*」はナル値を表わしている。
(ス艷ソト3は未だにLRUスロットである。)以下のスロットは修正されてい
るが、修正部分をディスクへ書込むことにより未だにクリーニングしておらず、
従って、それらはチェーン化されていない。1個のトラックが修正されているに
過ぎないので、バックグランドスイープは不活性状態のままである。
13 * * 214 55 256 55 122 0 0表−一土
fFi のサンプルT。
LRU及びADTテーブル例は、実際の動作するコンピュータシステムから取ら
れたI10サンプルに基づくものであり且つシステムの環境に投影されている。
各I10に対して、以下の情報が使用可能である。
1 11.742 68 46.47 読取46で開始し47で終る1000
14.190 68 56 読取は完全に56中1001 15.550 68
61.62 書込61テ開始し62で終了1002 54.582 68 2
14 書込は完全に214中以上、本発明の具体的実施の態様について詳細に説
明したが、本発明は、これら具体例にのみ限定されるべきものではな(、本発明
の技術的範囲を逸脱することなしに種々の変形が可能であることは勿論である。
FIC,URE 1
F工GURE 2
F工GURE 3
FIGURE 16
FIGURE 19
r工GURE 20
F工GURE 22
フロントページの続き
(81)指定国 EP(AT、BE、CH,DE。
DK、ES、FR,GB、GR,IT、LU、MC,NL、SE)、AU、CA
、JP、KR
Claims (34)
- 1.キャッシュメモリシステムにおいて、大量記憶装置、 キャッシュメモリ、 前記大量記憶装置及び前記キャッシュメモリヘパワーを供給するパワーサブシス テム、前記パワーサブシステムは通常の電源及び補助電源からパワーを受取るも のであり、 前記パワーサブシステムヘの前記通常の電源が中断されたことを検知する手段、 前記通常の電源が中断された場合に前記キャッシュメモリの通常の動作を終了さ せる手段、前記中断が検知された場合に前記キャッシュメモリから前記大量記憶 装置へのデータの書込手段、前記中断の後に前記キャッシュメモリから大量記憶 装置へ前記データを書込んだ後に前記パワーサブシステムから前記大量記憶装置 及び前記キャッシュメモリヘのパワーをシャットダウンする手段、を有すること を特徴とするキャッシュメモリシステム。
- 2.大量記憶装置とキャッシュメモリとを具備するキャッシュメモリシステムの 動作方法において、前記大量記憶装置から選択したデータを前記キャッシュメモ リ内に格納し、 前記キャッシュメモリ内に格納される各データの使用の相対的最近性を表わす最 も最近でなく使用された(LRU)テーブルを維持し、 前記キャッシュメモリ内に格納される各新たなデータに対し前記LRUテーブル の上部へエントリを付加し、 前記LRUエントリと関連した前記キャッシュメモリ内に格納されているデータ が使用された場合に前記LRUテーブル内の各エントリに対しフラッグをセット し、 前記LRUテーブルの底部に到達する各LRUテーブルエントリに対して、前記 フラッグがセットされているか否かを決定し、前記フラッグがセットされている 場合には、前記フラッグのセットを解除し且つ前記エントリを前記LRUテーブ ルの上部へ配置させ、且つ前記フラッグがセットされていない場合には、前記L RUテーブルから前記エントリを除去し且つ前記LRUテーブルエントリと関連 する前記キャッシュメモリ内の前記データをデキャッシュする、 上記各ステップを有することを特徴とする方法。
- 3.請求項2において、更に、前記LRUテーブルエントリが前記LRUテーブ ルへ付加される場合に選択したLRUテーブルエントリに対し前記フラッグをセ ットするステップを有することを特徴とする方法。
- 4.大量記憶装置とキャッシュメモリとを具備するキャッシュメモリシステムの 動作方法において、前記大量記憶装置内に格納されているデータヘのアクセスを シークし、 アクセスが要求されたデータを有する前記大量記憶装置の第一選択サブセクショ ンの第二側部とアクセスが要求されたデータの第一側部との間の第一距離を決定 し、 前記第一距離及び単一のI/O動作で転送することが予定されたデータ量に基づ いて使用可能なI/O動作の回数を決定し、 前記使用可能なI/O動作の回数が予め選択した臨界的回数未満であるか否かを 決定し、前記使用可能なI/O動作回数が前記予め選択した臨界的な回数未満で ある場合には、前記第一選択サブセクションの前記第一側部に隣接して位置した 前記大量記憶装置の第二選択サブセクション内のデータを前記キャッシュメモリ 内へコピーする、上記各ステップを有することを特徴とする方法。
- 5.請求項4において、前記第一距離が、アクセスが要求されるデータの端部か ら前記大量記憶装置の隣接したサブセクションの開始部へ測定した順方向距離で あることを特徴とする方法。
- 6.請求項4において、前記第一距離が、アクセスが要求されたデータの開始部 から前記大量記憶装置の隣接するサブセクションの端部へ測定した逆方向距離で あることを特徴とする方法。
- 7.請求項4において、前記大量記憶装置の前記選択したサブセクションが論理 ブロックであることを特徴とする方法。
- 8.請求項4において、更に、 前記使用可能なI/O動作の回数が前記予め選択した臨界的な回数を超えている 場合に、アクセスが要求されたデータを有する前記大量記憶装置の前記第一選択 サブセクションの第二側部とアクセスが要求されたデータの第一側部との間の第 二距離を決定し、前記第二距離と単一のI/O動作で転送することが予測される データ量とに基づいて使用可能なI/O動作の回数を決定し、前記使用可能なI /Oの動作回数が予め選択した臨界的な回数未満であるか否かを決定し、且つ、 前記使用可能なI/O動作の回数が前記予め選択した臨界的な回数未満である場 合には、前記第一選択サブセクションの前記第二側部に隣接して位置した前記大 量記憶装置の第三選択サブセクション内の前記データを前記キャッシュメモリ内 へコピーする、 ことを特徴とする方法。
- 9.キャッシュメモリシステムにおいて、各論理ブロックが複数個のセクタを有 している複数個の論理ブロックによって組織された大量記憶装置、 前記大量記憶装置と関連した選択したデータを一時的に格納するキャッシュメモ リ、 前記大量記憶装置のどの論理ブロック情報が前記キャッシュメモリ内に現在格納 されているデータに対応しているかを表わす情報を格納するための論理ブロック アドレスルックアップテーブル、前記論理ブロックアドレスルックアップテーブ ルは、前記大量記憶装置の各論理ブロックに対し一個のフラッグを有しており、 前記フラッグは前記論理ブロックに関連するデータが現在前記キャッシュメモリ 内に格納されているか否かを表わす、 ことを特徴とするキャッシュメモリシステム。
- 10.請求項9において、前記論理ブロックアドレスルックアップテーブルは、 前記大量記憶装置の各論理ブロックと関連した独特のシーケンシャルな論理ブロ ック番号によってインデックスされていることを特徴とするキャッシュメモリシ ステム。
- 11.請求項10において、更に、前記大量記憶装置の論理ブロック番号を前記 論理ブロックアドレスルックアップテーブルの前記シーケンシャルな論理ブロッ ク番号へ変換するアドレス変換手段が設けられていることを特徴とするキャッシ ュメモリシステム。
- 12.請求項11において、前記アドレス変換手段が、論理ブロック番号に等し い商と前記シーケンシャルなセクタ番号に対応する前記大量記憶装置の前記論理 ブロック内のセクタ番号に等しい残りとを与えるために、シーケンシャルなセク タ番号を前記大量記憶装置の論理ブロック当たりのセクタ数で割算する手段を有 することを特徴とするキャッシュメモリシステム。
- 13.大量記憶装置とメモリとを具備するキャッシュメモリシステムの動作方法 において、各論理ブロックが複数個のセクタを有する複数個の論理ブロックへ前 記大量記憶装置を組織化し、前記大量記憶装置の各論理ブロックと関連した一個 のエントリを有する論理ブロックアドレスルックアップテーブルを維持し、前記 各エントリは関連したシーケンシャルな論理ブロック番号を有すると共に、前記 大量記憶装置の関連した論理ブロックに対応するデータが現在前記キャッシュメ モリ内に格納されているか否かを表わすフラッグを有している、上記各ステップ を有することを特徴とする方法。
- 14.請求項13において、更に、 前記大量記憶装置の開始から選択した論理ブロック内の選択したセクタヘのセク タ数を計算することによって前記大量記憶装置内の前記選択した論理ブロック内 の前記選択したセクタの関数として前記論理ブロックアドレスルックアップテー ブル内の所望のシーケンシャルなセクタアドレスをアクセスし、前記計算を使用 して前記大量記憶装置の前記選択した論理ブロック内の前記選択したセクタと関 連する前記キャッシュメモリの前記シーケンシャルなセクタアドレスを派生させ る、 上記各ステップを有することを特徴とする方法。
- 15.請求項13において、更に、 商と残りとを派生させるために前記大量記憶装置内の論理ブロック当たりのセク タ数によって前記選択したシーケンシャルなセクタアドレスを割算することによ って前記論理ブロックアドレスルックアップテーブル内の選択したシーケンシャ ルセクタアドレスの関数として前記大量記憶装置内の選択した論理ブロック内の 所望のセクタヘアクセスし、前記商を使用して前記大量記憶装置の前記選択した 論理ブロックを派生し、 前記残りを使用して前記大量記憶装置の前記選択した論理ブロックの前記選択し たセクタを派生する、上記各ステップを有することを特徴とする方法。
- 16.大量記憶装置とキャッシュメモリとを具備するキャッシュシステムの動作 方法において、前記大量記憶装置内の選択した位置に対応する位置において前記 キャッシュヘデータを書込み、前記大量記憶装置へ書込む前に前記キャッシュメ モリヘのデータの書込みの間の経過時間を決定し、前記経過時間が所定の時間を 超える場合には、前記キャッシュメモリから前記大量記憶装置ヘデータを書込む 、 上記各ステップを有することを特徴とする方法。
- 17.大量記憶装置とキャッシュメモリとを具備するキャッシュシステムの動作 方法において、前記大量記憶装置内の選択した位置に対応する位置において前記 キャッシュメモリへデータを書込み、前記大量記憶装置へ書込む前に前記キャッ シュメモリへ書込んだデータの量を決定し、 前記データの量が所定の量を超える場合には、前記キャッシュメモリから前記大 量記憶装置ヘデータを書込む、 上記各ステップを有することを特徴とする方法。
- 18.請求項16において、前記大量記憶装置が複数個のトラックを有しており 、且つ前記キャッシュメモリから前記大量記憶装置ヘデータを書込むステップが 、前記大量記憶装置へ未だに書込まれていない前記キャッシュメモリからのデー タを書込むステップを有しており、前記データは前記大量記憶装置の現在選択し たトラックと相対的なその位置によって選択されることを特徴とする方法。
- 19.請求項18において、前記データは前記現在選択したトラックに関し前記 大量記憶装置の最も近いトラックに対応するデータとして選択されることを特徴 とする方法。
- 20.請求項17において、前記大量記憶装置が複数個のトラックを有しており 、且つ前記キャッシュメモリから前記大量記憶装置ヘデータを書込むステップが 、前記大量記憶装置へい未だに書込まれていない前記キャッシュメモリからのデ ータを書込むステップを有しており、前記データは前記大量記憶装置の現在選択 されたトラックと相対的なその位置によって選択されることを特徴とする方法。
- 21.請求項20において、前記データは前記現在選択されたトラックに関し前 記大量記憶装置の最も近いトラックに対応するデータとして選択されることを特 徴とする方法。
- 22.各々が複数個のブロックとして組織されており且つ各ブロックが複数個の セクタを有するキャッシュメモリと大量記憶装置とを具備するキャッシュメモリ の動作方法において、 前記大量記憶装置からの選択したデータを前記キャッシュメモリ内に格納し、 前記キャッシュメモリ内に格納されている各ブロックのデータを使用の相対的最 先性及び現在のデータを有する前記ブロック内のセクタを表わす最も最近でなく 使用した(LRU)テーブルを維持し、前記キャッシュメモリ内に格納されたデ ータの各新たなブロックに対し前記LRUテーブルの上部にエントリを付加し、 前記LRUエントリに関連した前記キャッシュメモリ内に格納されたデータが使 用された場合に前記LRUテーブル内の各ブロックエントリに対しフラッグをセ ットし、 前記LRUテーブルの底部に到達する各LRUブロックエントリに対して、前記 フラッグがセットされているか否かを決定し、前記フラッグがセットされている 場合には、前記フラッグのセットを解除し且つ前記LRUテーブルの上部へ前記 エントリを配置させ、且つ前記フラッグがセットされていない場合には、前記L RUテーブルから前記エントリを削除し、且つ前記LRUテーブルエントリと関 連する前記キャッシュメモリ内の前記ブロックのデータをデキャッシュする、 上記各ステップを有することを特徴とする方法。
- 23.請求項22において、更に、前記キャッシュメモリ内に格納された各ブロ ックのデータのどのセクタが修正されたかを表わすデータを前記LRUテーブル 内に維持するステップを有することを特徴とする方法。
- 24.請求項22において、前記キャッシュメモリ内に格納された各ブロックに 対して、与えられたブロックの全てのセクタがキャッシュされることは必要では ないが、キャッシュされたデータの間にセクタギャップを存在させることなしに キャッシュされたデータのセクタを隣接した状態に維持することを特徴とする方 法。
- 25.キャッシュメモリシステムにおいて、各論理ブロックが複数個のセクタを 有する複数個の論理ブロックによって組織された大量記憶装置、前記大量記憶装 置と関連する隣接した組の有効セクタの選択したデータを一時的に格納するキャ ッシュメモリ、前記隣接した組の有効セクタは隣接した組の修正したセクタを包 含する可能性があり、前記大量記憶装置での論理ブロックは前記キャッシュメモ リ内に現在格納されているデータに対応するかを表わす情報を格納する論理ブロ ックアドレスルックアップテーブル、 前記論理ブロックアドレスルックアップテーブルは、前記大量記憶装置の各論理 ブロックに対し一つのフラッグを有しており、前記フラッグは、前記論理ブロッ クに関連するデータが現在前記キャッシュメモリ内の格納されているか否かを表 わし、前記論理ブロックルックアップテーブルは、更に、前記論理ブロック内に どのセクタが有効セクタ及び修正されたセクタを有しているかを表わす各論理ブ ロックに関連したデータを格納している、 ことを特徴とするキャッシュメモリシステム。
- 26.請求項25において、前記論理ブロックアドレスルックアップテーブルが 、前記大量記憶装置の各論理ブロックと関連した独特のシーケンシャルな論理ブ ロック番号によってインデックスされていることを特徴とするキャッシュメモリ システム。
- 27.請求項26において、前記大量記憶装置の論理ブロック番号を前記論理ブ ロックアドレスルックアップテーブルの前記シーケンシャルな論理ブロック番号 へ変換するアドレス変換手段が設けられていることを特徴とするキャッシュメモ リシステム。
- 28.請求項27において、前記アドレス変換手段が、前記論理ブロック番号に 等しい商と、前記シーケンシャルなセクタ番号に対応する前記大量記憶装置の前 記論理ブロック内のセクタ番号と等しい残りとを与えるために、前記アドレス変 換手段が、シーケンシャルなセクタ番号を前記大量記憶装置の論理ブロック当た りのセクタ数によって割算する手段を有していることを特徴とするキャッシュメ モリシステム。
- 29.請求項22において、そのトラックが修正したデータを有している場合に は、前記LRUテーブルの脱チェーン化メンバーとしてLRUトラックエントリ に対してフラッグが立てられることを特徴とするキャッシュメモリシステム。
- 30.請求項29において、その修正したデータが前記大量記憶装置へ書込まれ た後にトラックエントリを前記LRUテーブルのチェーン化したメンバーとさせ ることを特徴とするキャッシュメモリシステム。
- 31.請求項30において、前記トラックエントリが、前記大量記憶装置へ書込 む前に前記トラックの全てのセクタが修正された場合には、前記LRUテーブル の底部においてチェーン化したメンバーとされることを特徴とするキャッシュメ モリシステム。
- 32.請求項30において、前記トラックエントリが、前記大量記憶装置へ書込 む前に前記トラックの全てより少ないセクタが修正された場合には、前記LRU テーブルの上部においてチェーン化したメンバとされることを特徴とするキャッ シュメモリシステム。
- 33.大量記憶装置とキャッシュメモリとを具備するキャッシュメモリシステム の動作方法において、 前記大量記憶装置から選択したデータを前記キャッシュメモリ内に格納し、 前記キャッシュメモリから所望のデータを得ることが可能である場合には前記キ ャッシュメモリからデータを読取り、 アクセスされるべき所望のデータに基づいて前記キャッシュメモリ内に格納され ているデータを周期的にアップデートし、 選択した寸法のデータがアクセスされることを所望する場合には前記大量記憶装 置を直接的にアクセスする、 上記各ステップを有することを特徴とする方法。
- 34.請求項33において、前記選択した寸法が、前記キャッシュメモリ内に格 納されている修正されていないデータの量の関数であることを特徴とする方法。
Applications Claiming Priority (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US860,731 | 1986-05-07 | ||
| US66502191A | 1991-03-05 | 1991-03-05 | |
| US665,021 | 1991-03-05 | ||
| US86073192A | 1992-02-21 | 1992-02-21 | |
| PCT/US1992/001845 WO1992015933A1 (en) | 1991-03-05 | 1992-03-05 | Cache memory system and method of operating the cache memory system |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH06505584A true JPH06505584A (ja) | 1994-06-23 |
Family
ID=27099109
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP4508296A Pending JPH06505584A (ja) | 1991-03-05 | 1992-03-05 | キャッシュメモリ |
Country Status (7)
| Country | Link |
|---|---|
| US (1) | US5353430A (ja) |
| EP (1) | EP0574531A4 (ja) |
| JP (1) | JPH06505584A (ja) |
| AU (5) | AU661304B2 (ja) |
| CA (1) | CA2105085A1 (ja) |
| MX (1) | MX9200970A (ja) |
| WO (1) | WO1992015933A1 (ja) |
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2004506256A (ja) * | 2000-06-23 | 2004-02-26 | インテル・コーポレーション | 不揮発性キャッシュ |
| JP2010244532A (ja) | 2009-04-02 | 2010-10-28 | Lsi Corp | ストレージアレイでミラー化されたキャッシュボリュームを用いることでドライブオーバーヘッドを軽減するシステム |
| WO2012160514A1 (en) * | 2011-05-23 | 2012-11-29 | International Business Machines Corporation | Caching data in a storage system having multiple caches |
| US8825952B2 (en) | 2011-05-23 | 2014-09-02 | International Business Machines Corporation | Handling high priority requests in a sequential access storage device having a non-volatile storage cache |
| US8996789B2 (en) | 2011-05-23 | 2015-03-31 | International Business Machines Corporation | Handling high priority requests in a sequential access storage device having a non-volatile storage cache |
Families Citing this family (88)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5594885A (en) * | 1991-03-05 | 1997-01-14 | Zitel Corporation | Method for operating a cache memory system using a recycled register for identifying a reuse status of a corresponding cache entry |
| US5590300A (en) * | 1991-03-05 | 1996-12-31 | Zitel Corporation | Cache memory utilizing address translation table |
| CA2285089C (en) * | 1991-11-12 | 2000-05-09 | Ibm Canada Limited-Ibm Canada Limitee | Logical mapping of data objects using data spaces |
| US5553307A (en) * | 1992-04-17 | 1996-09-03 | Hitachi, Ltd. | Method and device for transferring noncontiguous blocks in one transfer start by creating bit-map indicating which block is to be transferred |
| GB2273179A (en) * | 1992-12-02 | 1994-06-08 | Ibm | Cache indexing in interative processes. |
| JP2784440B2 (ja) * | 1993-04-14 | 1998-08-06 | インターナショナル・ビジネス・マシーンズ・コーポレイション | データ・ページの転送制御方法 |
| JP3600257B2 (ja) * | 1993-05-31 | 2004-12-15 | 富士通株式会社 | 情報処理装置及びキャッシュ制御装置 |
| US5452440A (en) * | 1993-07-16 | 1995-09-19 | Zitel Corporation | Method and structure for evaluating and enhancing the performance of cache memory systems |
| GB2286267A (en) | 1994-02-03 | 1995-08-09 | Ibm | Energy-saving cache control system |
| US5584007A (en) * | 1994-02-09 | 1996-12-10 | Ballard Synergy Corporation | Apparatus and method for discriminating among data to be stored in cache |
| US5588129A (en) * | 1994-02-09 | 1996-12-24 | Ballard; Clinton L. | Cache for optical storage device and method for implementing same |
| US5491810A (en) * | 1994-03-01 | 1996-02-13 | International Business Machines Corporation | Method and system for automated data storage system space allocation utilizing prioritized data set parameters |
| US5606681A (en) * | 1994-03-02 | 1997-02-25 | Eec Systems, Inc. | Method and device implementing software virtual disk in computer RAM that uses a cache of IRPs to increase system performance |
| US5577226A (en) * | 1994-05-06 | 1996-11-19 | Eec Systems, Inc. | Method and system for coherently caching I/O devices across a network |
| US5719988A (en) * | 1994-05-31 | 1998-02-17 | Tektronix, Inc. | Dynamically paged non-volatile random access video store |
| US5696931A (en) * | 1994-09-09 | 1997-12-09 | Seagate Technology, Inc. | Disc drive controller with apparatus and method for automatic transfer of cache data |
| JPH0883148A (ja) * | 1994-09-13 | 1996-03-26 | Nec Corp | 磁気ディスク装置 |
| US5687347A (en) * | 1994-09-19 | 1997-11-11 | Matsushita Electric Industrial Co., Ltd. | Data providing device, file server device, and data transfer control method |
| US5649110A (en) * | 1994-11-07 | 1997-07-15 | Ben-Nun; Michael | Traffic shaping system with virtual circuit table time stamps for asynchronous transfer mode networks |
| US5696932A (en) * | 1995-05-16 | 1997-12-09 | International Business Machines Corporation | Method and system for estimating minumun requirements on a cache in a computer based storage system |
| EP0744696B1 (en) * | 1995-05-22 | 2001-10-24 | LSI Logic Corporation | Data transfer method and apparatus |
| US6412045B1 (en) | 1995-05-23 | 2002-06-25 | Lsi Logic Corporation | Method for transferring data from a host computer to a storage media using selectable caching strategies |
| US5748874A (en) * | 1995-06-05 | 1998-05-05 | Mti Technology Corporation | Reserved cylinder for SCSI device write back cache |
| US5894564A (en) * | 1995-06-07 | 1999-04-13 | International Business Machines Corporation | System for identifying memory segment bounded by previously accessed memory locations within data block and transferring thereof only when the segment has been changed |
| US5649153A (en) * | 1995-06-19 | 1997-07-15 | International Business Machines Corporation | Aggressive adaption algorithm for selective record caching |
| US5751993A (en) * | 1995-09-05 | 1998-05-12 | Emc Corporation | Cache management system |
| US5706467A (en) * | 1995-09-05 | 1998-01-06 | Emc Corporation | Sequential cache management system utilizing the establishment of a microcache and managing the contents of such according to a threshold comparison |
| JP3477689B2 (ja) * | 1995-12-07 | 2003-12-10 | 株式会社日立製作所 | 磁気ディスク制御装置 |
| US5742789A (en) * | 1995-12-28 | 1998-04-21 | Emc Corporation | Dynamically adaptive data retrieval for a disk drive storage system |
| AU3483997A (en) * | 1996-06-18 | 1998-01-07 | Zitel Corporation | Novel cache memory structure and method |
| US6189080B1 (en) * | 1996-09-20 | 2001-02-13 | Emc Corporation | Minimum read rate throughput in a disk cache system |
| US6112278A (en) * | 1996-09-30 | 2000-08-29 | Lsi Logic Corporation | Method to store initiator information for SCSI data transfer |
| 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 |
| US6553476B1 (en) * | 1997-02-10 | 2003-04-22 | Matsushita Electric Industrial Co., Ltd. | Storage management based on predicted I/O execution times |
| US5896517A (en) * | 1997-08-18 | 1999-04-20 | Bull Hn Information Systems Inc. | High performance processor employing background memory move mechanism |
| US5860101A (en) * | 1997-12-17 | 1999-01-12 | International Business Machines Corporation | Scalable symmetric multiprocessor data-processing system with data allocation among private caches and segments of system memory |
| US5893163A (en) * | 1997-12-17 | 1999-04-06 | International Business Machines Corporation | Method and system for allocating data among cache memories within a symmetric multiprocessor data-processing system |
| US6134636A (en) * | 1997-12-31 | 2000-10-17 | Intel Corporation | Method and apparatus for storing data in a memory array |
| US6098153A (en) * | 1998-01-30 | 2000-08-01 | International Business Machines Corporation | Method and a system for determining an appropriate amount of data to cache |
| US6490597B1 (en) * | 1999-07-14 | 2002-12-03 | Ericsson Inc. | Stored data object management and archive control |
| JP4078010B2 (ja) | 2000-03-03 | 2008-04-23 | 株式会社日立グローバルストレージテクノロジーズ | 磁気ディスク装置及び情報記録方法 |
| US6772288B1 (en) * | 2000-09-06 | 2004-08-03 | Stmicroelectronics, Inc. | Extended cache memory system and method for caching data including changing a state field value in an extent record |
| US6725342B1 (en) * | 2000-09-26 | 2004-04-20 | Intel Corporation | Non-volatile mass storage cache coherency apparatus |
| JP2002123479A (ja) * | 2000-10-17 | 2002-04-26 | Hitachi Ltd | ディスク制御装置およびそのキャッシュ制御方法 |
| US6785767B2 (en) * | 2000-12-26 | 2004-08-31 | Intel Corporation | Hybrid mass storage system and method with two different types of storage medium |
| US6745212B2 (en) * | 2001-06-27 | 2004-06-01 | International Business Machines Corporation | Preferential caching of uncopied logical volumes in an IBM peer-to-peer virtual tape server |
| EP1280063A3 (en) * | 2001-07-27 | 2005-03-30 | Fujitsu Limited | Cache control methods and apparatus for hard disk drives |
| US6915353B2 (en) * | 2001-08-01 | 2005-07-05 | Hewlett-Packard Development Company, L.P. | Method and apparatus for avoiding unnecessary computer peripheral calibration activities |
| US7275135B2 (en) * | 2001-08-31 | 2007-09-25 | Intel Corporation | Hardware updated metadata for non-volatile mass storage cache |
| WO2003025755A2 (en) * | 2001-09-14 | 2003-03-27 | Seagate Technology Llc | sETHOD AND SYSTEM FOR CACHE MANAGEMENT ALGORITHM SELECTION |
| US20030074524A1 (en) * | 2001-10-16 | 2003-04-17 | Intel Corporation | Mass storage caching processes for power reduction |
| US6907499B2 (en) * | 2002-01-31 | 2005-06-14 | Seagate Technology Llc | Interrupting disc write operations to service read commands |
| EP1361516A3 (en) * | 2002-04-30 | 2011-05-18 | Hitachi, Ltd. | Method and system for backing up power supply of disk array device |
| US7539608B1 (en) * | 2002-05-10 | 2009-05-26 | Oracle International Corporation | Techniques for determining effects on system performance of a memory management parameter |
| US7336678B2 (en) * | 2002-07-31 | 2008-02-26 | Intel Corporation | State-based jitter buffer and method of operation |
| US6938184B2 (en) | 2002-10-17 | 2005-08-30 | Spinnaker Networks, Inc. | Method and system for providing persistent storage of user data |
| US7912954B1 (en) | 2003-06-27 | 2011-03-22 | Oesterreicher Richard T | System and method for digital media server load balancing |
| US7500055B1 (en) * | 2003-06-27 | 2009-03-03 | Beach Unlimited Llc | Adaptable cache for dynamic digital media |
| JP2005284497A (ja) * | 2004-03-29 | 2005-10-13 | Hitachi Ltd | 中継装置、管理サーバ、中継方法および認証方法 |
| US7321521B2 (en) | 2004-07-02 | 2008-01-22 | Seagate Technology Llc | Assessing energy requirements for a refreshed device |
| JP2006031383A (ja) * | 2004-07-15 | 2006-02-02 | Hitachi Global Storage Technologies Netherlands Bv | リアルタイム性能向上方式を実装したディスク装置 |
| US7360112B2 (en) * | 2005-02-07 | 2008-04-15 | International Business Machines Corporation | Detection and recovery of dropped writes in storage devices |
| US7177222B2 (en) * | 2005-03-04 | 2007-02-13 | Seagate Technology Llc | Reducing power consumption in a data storage system |
| GB0507912D0 (en) * | 2005-04-20 | 2005-05-25 | Ibm | Disk drive and method for protecting data writes in a disk drive |
| US7461202B2 (en) * | 2005-05-03 | 2008-12-02 | International Business Machines Corporation | Method and apparatus using hard disk drive for enhanced non-volatile caching |
| 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 |
| US7332883B1 (en) * | 2005-06-17 | 2008-02-19 | Marvell International Ltd. | Method and apparatus for initializing operation of a disk drive |
| US7937257B2 (en) * | 2005-10-10 | 2011-05-03 | Oracle International Corporation | Estimating performance of application based on automatic resizing of shared memory for messaging |
| US20080016274A1 (en) * | 2006-07-13 | 2008-01-17 | Xing-Jia Wang | Method of protecting cache memory data in storage system |
| US9052826B2 (en) * | 2006-07-28 | 2015-06-09 | Condusiv Technologies Corporation | Selecting storage locations for storing data based on storage location attributes and data usage statistics |
| US20090132621A1 (en) * | 2006-07-28 | 2009-05-21 | Craig Jensen | Selecting storage location for file storage based on storage longevity and speed |
| US7870128B2 (en) | 2006-07-28 | 2011-01-11 | Diskeeper Corporation | Assigning data for storage based on speed with which data may be retrieved |
| US7930507B2 (en) * | 2006-09-18 | 2011-04-19 | Sandisk Il Ltd. | Method of providing to a processor an estimated completion time of a storage operation |
| US20090089514A1 (en) * | 2007-09-28 | 2009-04-02 | Durgesh Srivastava | Implementing Asynchronous Request for Forcing Dynamic Memory into Self Refresh |
| US8352716B1 (en) | 2008-01-16 | 2013-01-08 | American Megatrends, Inc. | Boot caching for boot acceleration within data storage systems |
| US8799429B1 (en) | 2008-05-06 | 2014-08-05 | American Megatrends, Inc. | Boot acceleration by consolidating client-specific boot data in a data storage system |
| JP4636118B2 (ja) * | 2008-05-12 | 2011-02-23 | 株式会社デンソー | 電子機器及びプログラム |
| US9582222B2 (en) | 2009-04-30 | 2017-02-28 | Western Digital Technologies, Inc. | Pre-cache similarity-based delta compression for use in a data storage system |
| US9413527B2 (en) | 2009-04-30 | 2016-08-09 | HGST Netherlands B.V. | Optimizing signature computation and sampling for fast adaptive similarity detection based on algorithm-specific performance |
| US9176883B2 (en) | 2009-04-30 | 2015-11-03 | HGST Netherlands B.V. | Storage of data reference blocks and deltas in different storage devices |
| US8307164B2 (en) | 2009-12-15 | 2012-11-06 | International Business Machines Corporation | Automatic determination of read-ahead amount |
| US9009401B2 (en) | 2012-07-27 | 2015-04-14 | International Business Machines Corporation | Multi-updatable least recently used mechanism |
| CN104951239B (zh) * | 2014-03-26 | 2018-04-10 | 国际商业机器公司 | 高速缓存驱动器、主机总线适配器及其使用的方法 |
| US10007446B2 (en) * | 2015-05-05 | 2018-06-26 | Macronix International Co., Ltd. | Method, apparatus, and storage medium for writing data into persistent storage device |
| CN105242971B (zh) * | 2015-10-20 | 2019-02-22 | 北京航空航天大学 | 面向流式处理系统的内存对象管理方法及系统 |
| US11294812B2 (en) * | 2020-08-04 | 2022-04-05 | International Business Machines Corporation | Obtaining cache resources for expected writes to tracks in a write set after the cache resources were released for the tracks in the write set |
| CN114780370B (zh) * | 2022-05-10 | 2025-02-14 | 中国平安财产保险股份有限公司 | 基于日志的数据修正方法、装置、电子设备及存储介质 |
Family Cites Families (16)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB1515376A (en) * | 1975-07-09 | 1978-06-21 | Int Computers Ltd | Data storage systems |
| GB1545169A (en) * | 1977-09-22 | 1979-05-02 | Burroughs Corp | Data processor system including data-save controller for protection against loss of volatile memory information during power failure |
| EP0066766B1 (en) * | 1981-06-05 | 1988-08-10 | International Business Machines Corporation | I/o controller with a dynamically adjustable cache memory |
| US4468730A (en) * | 1981-11-27 | 1984-08-28 | Storage Technology Corporation | Detection of sequential data stream for improvements in cache data storage |
| US4530054A (en) * | 1982-03-03 | 1985-07-16 | Sperry Corporation | Processor-addressable timestamp for indicating oldest written-to cache entry not copied back to bulk memory |
| US4523206A (en) * | 1982-03-03 | 1985-06-11 | Sperry Corporation | Cache/disk system with writeback regulation relative to use of cache memory |
| US4607346A (en) * | 1983-03-28 | 1986-08-19 | International Business Machines Corporation | Apparatus and method for placing data on a partitioned direct access storage device |
| US4611289A (en) * | 1983-09-29 | 1986-09-09 | Coppola Anthony F | Computer power management system |
| US4959774A (en) * | 1984-07-06 | 1990-09-25 | Ampex Corporation | Shadow memory system for storing variable backup blocks in consecutive time periods |
| DE3686291T2 (de) * | 1985-05-29 | 1993-03-11 | Toshiba Computer Eng | Cache-anordnung mit einem lru-verfahren und magnetscheibensteuereinrichtung mit einer solchen anordnung. |
| JPS63100555A (ja) * | 1986-10-17 | 1988-05-02 | Hitachi Ltd | 情報記録再生装置 |
| US4843542A (en) * | 1986-11-12 | 1989-06-27 | Xerox Corporation | Virtual memory cache for use in multi-processing systems |
| JPS63305445A (ja) * | 1987-06-08 | 1988-12-13 | Fujitsu Ltd | 電源切断時のデ−タ書込み方式 |
| US4888691A (en) * | 1988-03-09 | 1989-12-19 | Prime Computer, Inc. | Method for disk I/O transfer |
| US5133060A (en) * | 1989-06-05 | 1992-07-21 | Compuadd Corporation | Disk controller includes cache memory and a local processor which limits data transfers from memory to cache in accordance with a maximum look ahead parameter |
| JPH03295071A (ja) * | 1990-04-13 | 1991-12-26 | Seiko Epson Corp | ディスクドライブ装置 |
-
1992
- 1992-03-05 WO PCT/US1992/001845 patent/WO1992015933A1/en not_active Ceased
- 1992-03-05 AU AU15780/92A patent/AU661304B2/en not_active Ceased
- 1992-03-05 JP JP4508296A patent/JPH06505584A/ja active Pending
- 1992-03-05 EP EP92908618A patent/EP0574531A4/en not_active Withdrawn
- 1992-03-05 MX MX9200970A patent/MX9200970A/es not_active IP Right Cessation
- 1992-03-05 CA CA002105085A patent/CA2105085A1/en not_active Abandoned
-
1993
- 1993-10-20 US US08/139,559 patent/US5353430A/en not_active Expired - Fee Related
-
1995
- 1995-09-11 AU AU30585/95A patent/AU673488B2/en not_active Ceased
-
1996
- 1996-11-19 AU AU71851/96A patent/AU683001B2/en not_active Ceased
- 1996-11-19 AU AU71852/96A patent/AU681834B2/en not_active Ceased
- 1996-11-19 AU AU71850/96A patent/AU7185096A/en not_active Abandoned
Cited By (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2004506256A (ja) * | 2000-06-23 | 2004-02-26 | インテル・コーポレーション | 不揮発性キャッシュ |
| JP2010244532A (ja) | 2009-04-02 | 2010-10-28 | Lsi Corp | ストレージアレイでミラー化されたキャッシュボリュームを用いることでドライブオーバーヘッドを軽減するシステム |
| JP2013047965A (ja) * | 2009-04-02 | 2013-03-07 | Lsi Corp | ストレージアレイでミラー化されたキャッシュボリュームを用いることでドライブオーバーヘッドを軽減するシステム |
| WO2012160514A1 (en) * | 2011-05-23 | 2012-11-29 | International Business Machines Corporation | Caching data in a storage system having multiple caches |
| GB2506042A (en) * | 2011-05-23 | 2014-03-19 | Ibm | Caching data in a storage system having multiple caches |
| US8745325B2 (en) | 2011-05-23 | 2014-06-03 | International Business Machines Corporation | Using an attribute of a write request to determine where to cache data in a storage system having multiple caches including non-volatile storage cache in a sequential access storage device |
| US8788742B2 (en) | 2011-05-23 | 2014-07-22 | International Business Machines Corporation | Using an attribute of a write request to determine where to cache data in a storage system having multiple caches including non-volatile storage cache in a sequential access storage device |
| GB2506042B (en) * | 2011-05-23 | 2014-07-30 | Ibm | Determining whether to cache storage system writes in a non-volatile cache |
| US8825952B2 (en) | 2011-05-23 | 2014-09-02 | International Business Machines Corporation | Handling high priority requests in a sequential access storage device having a non-volatile storage cache |
| US8996789B2 (en) | 2011-05-23 | 2015-03-31 | International Business Machines Corporation | Handling high priority requests in a sequential access storage device having a non-volatile storage cache |
Also Published As
| Publication number | Publication date |
|---|---|
| AU673488B2 (en) | 1996-11-07 |
| AU3058595A (en) | 1995-11-09 |
| CA2105085A1 (en) | 1992-09-06 |
| WO1992015933A1 (en) | 1992-09-17 |
| AU7185196A (en) | 1997-01-23 |
| US5353430A (en) | 1994-10-04 |
| AU661304B2 (en) | 1995-07-20 |
| EP0574531A4 (en) | 1995-03-08 |
| AU681834B2 (en) | 1997-09-04 |
| EP0574531A1 (en) | 1993-12-22 |
| AU683001B2 (en) | 1997-10-23 |
| AU7185296A (en) | 1997-01-23 |
| MX9200970A (es) | 1993-08-01 |
| AU7185096A (en) | 1997-01-23 |
| AU1578092A (en) | 1992-10-06 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| 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 | |
| US5325509A (en) | Method of operating a cache memory including determining desirability of cache ahead or cache behind based on a number of available I/O operations | |
| US5615353A (en) | Method for operating a cache memory using a LRU table and access flags | |
| US5590300A (en) | Cache memory utilizing address translation table | |
| US6338115B1 (en) | Advanced read cache management | |
| EP0077452B1 (en) | Data promotion in storage subsystems | |
| US4466059A (en) | Method and apparatus for limiting data occupancy in a cache | |
| US4875155A (en) | Peripheral subsystem having read/write cache with record access | |
| US6286080B1 (en) | Advanced read cache emulation | |
| US20090049255A1 (en) | System And Method To Reduce Disk Access Time During Predictable Loading Sequences | |
| JP4060506B2 (ja) | ディスク制御装置 | |
| CN1512353A (zh) | 性能改善的数据存储和方法 | |
| GB2357172A (en) | Raid storage system with logicaly partitioned cache | |
| US20020002658A1 (en) | Device and method for input/output control of a computer system for efficient prefetching of data based on lists of data read requests for different computers and time between access requests | |
| JP6417951B2 (ja) | ストレージ制御装置およびストレージ制御プログラム | |
| US6865648B1 (en) | Data structure for write pending | |
| EP4328755B1 (en) | Systems, methods, and apparatus for accessing data in versions of memory pages | |
| US11188480B1 (en) | System and method for cache directory TCAM error detection and correction | |
| US6772289B1 (en) | Methods and apparatus for managing cached CRC values in a storage controller | |
| JPH11506238A (ja) | キャッシュ管理システムにおける順次性検出用のシステムと方法 | |
| JP2010160544A (ja) | キャッシュメモリシステム及びキャッシュメモリの制御方法 | |
| JPH0773107A (ja) | ディスク・システムの制御方法 | |
| JP3335919B2 (ja) | ディスクキャッシュ制御装置 | |
| JP2854668B2 (ja) | ディスク・キャッシュ制御方式 | |
| JP3861061B2 (ja) | ディスクキャッシュ制御装置 |