JPH07504527A - 高性能の不揮発性ram保護式の書き込みキャッシュアクセラレータシステム - Google Patents
高性能の不揮発性ram保護式の書き込みキャッシュアクセラレータシステムInfo
- Publication number
- JPH07504527A JPH07504527A JP5515857A JP51585793A JPH07504527A JP H07504527 A JPH07504527 A JP H07504527A JP 5515857 A JP5515857 A JP 5515857A JP 51585793 A JP51585793 A JP 51585793A JP H07504527 A JPH07504527 A JP H07504527A
- Authority
- JP
- Japan
- Prior art keywords
- data
- write
- cache
- memory
- volatile
- 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; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/124—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるため要約のデータは記録されません。
Description
【発明の詳細な説明】
高性能の不揮発性RAM保護式の書き込みキャッシュアクセラレータシステム
関連出願のクロスレファレンス
本発明は、本発明の譲受人に全て譲渡された以下の特許出願に関連している。
(PARALLEL Ilo NETWORx F+LB 5ERVERARC
)IITECTIJRB) J AUSP7209 ;2.1989年9月8日
に出願のヒッツ氏等により発明された特許出願第07/404.885号「マル
チプルファシリティオベレーティングシステムアーキテクチ+(lJtlLTI
PLE FACILITY 0PERATING SYSTEM AJICHI
TECTURR) J AUSPV210 ;
を用いたエンハンスドVMEバスプロトコル(RNHANCED VMRBUS
PROTOCOL UTILIZINGSYNC)IRONOUSHANDS
HノIINGANDBLOCKMODEDATATRANSFER)JAUSP
7211;接メモリアクセスコントo−ラ(BIG)l 5PEED、 FLP
、XIBLE 5OURCE/DESTINATION DATA BUR3T
DIRECT MEMORY ACCESS C0NTR0LLER)J A
USP7212 、及び5.1990年2月2日に出願のビット氏等により発明
された特許出願第07/474.350号「バスロッキングFIFOマルチプロ
セッサ型通信システム(Bus LOCKING FIFOMULTI−PRO
CESSORCOMIJLINICATION SYSTEM) J A[l5
PV213゜
発明の分野
本発明は、一般にキャッシュ構成のディスクコントローラに係り、より詳細には
、ディスク記憶プロセッサの一体的要素として確立された高性能の完全性保護型
書き込みデータキャッシュを備えたディスクコントローラシステムに係る。
先行技術の説明
夕記憶サブシステムの所要性能が相当に高まっている。特に、UNIX及び同様
のマルチタスクオペレーティングシステムは、典型的に、必要に応じてサブオペ
レーションに分割されたディスクデータ転送オペレーションを実行し、オペレー
ティングシステムのマルチタスク活動性をサポートする。従って、ディスクサブ
システムによって実行される実際のデータ転送オペレーションは充分に最適化さ
れず、それ故、全システム性能を直接的に低下させる。
UNIXオペレーティングシステムの通常使用される要素は、ネットワークファ
イルシステム(NFS)として知られている通信レイヤ0i1)である。NFS
レイヤは、リモートネットワークに接続されたコンピュータシステムのディスク
記憶サブシステムに便利に論理的にアクセスできるネットワーク制御プロトコル
を与える。NFSプロトコルの設計は、各原子的NFSオペレージ目ンがディス
ク記憶サブシステムめ予め存在するデータ転送状態を推測せずに行われるという
点で本質的にステートレス(無状態)である。従って、NFSに関連した多数の
データ転送オペレーションが、ディスク記憶サブシステムへ送られる際に繰り返
されると共に不充分に順序付けされることにもなる。
ディスク記憶サブシステムの性能を改善するための典型的な解決策は、読み取り
データキャッシュを特殊なRAMキャッシュメモリ内に構成するか或b)はコン
ピュータシステムのメインメモリアレー内に形成されたノくソファプール内に構
成するかのいずれかである。後者の解決策は、特に効果的である。というのは、
UNIXオペレーティングシステムのように、仮想的に参照されたメモリオブジ
ェクトを読み取りデータキャッシュに記憶できるからである。これは、ひ0ては
、仮想キャッシュを参照することにより読み取りデータ要求を満足するプロセス
を相当に潜在的に最適化できるようにし、しかも、更に時間のかかる仮想−物理
変換を必要としないし、又、ディスク記憶サブシステムによるデータ転送オペレ
ーションも必要としない。
別の特殊キャツシュRAM解決策は、典型的に、キャッシュを物理的なブロック
番号モードで動作する。この解決策によってもたらされる効果は、実際のサブシ
ステムディスクドライブのデータ転送帯域中を最大にするように物理的な読み取
りデータ転送を順序付けできることである。しかしながら、仮想的な参照性能が
失われる。
性能を高めるために書き込みデータキャッシュも利用されている。しかしながら
、ディスク記憶サブシステムによって記憶されるデータは、ディスクへの全ての
データ書き込みが完了するまで正確でないという点で、実質的なデータ完全性の
問題が生じる。全ての書き込みデータがディスクに対して適切に更新されない場
合のデータの崩壊を最小にするか又は防止するために多数の解決策が採用されて
いる。最も簡単で且つ最も一般的な解決策は、UNIXファイルシステム(UP
S)によって制御を受けるメインメモリにおいて書き込みキャッシュを構成しそ
してフラッシュアルゴリズムを構成して、キャッシュ内の全てのデータが充分頻
繁な時間制御ベースでディスクへと書き出されるようにすることである。この限
定された露出でも甚だ危険であると考えられる場合には、同期書き込みとして知
られているメカニズムが開発され広く応用されている。NFSプロトコルに適合
するために必要とされるこのメカニズムは、全てのデータ書き込みが、データ転
送を発したNFSサーバに完了として確認される前に、「安全な記憶装置」、典
型的に物理的なディスクへと完全に完了することを必要とする。これは、当然な
がら、各NFS書き込みごとに実質的な時間ペナルティを課するという問題があ
る。
更に、メインメモリの書き込みデータキャッシュは、不揮発性メモリにおいてバ
ッファを分離することによりデータのロスを実質的に免れることができる。この
解決策にも、多数の問題が関連しており、システムが再ブートされるときにオペ
レーティングシステムの状態の復帰をマネージすると共に、書き込みキャッシュ
からの書き込みをディスク記憶サブシステムへ確実に正しく完了できるよう確保
することが含まれる。この書き込みキャッシュ設計の利点は、全ての読み取り及
び書き込みデータがUNIXファイルシステムによって論理的に直接マネージさ
れることである。それ故、全ての重畳する読み取り及び書き込み要求は中央でマ
ネージしそして解決することができる。当然、それに対応する欠点は、書き込み
キャッシュバッファを理解しそして実施するようにUPSを変更しなければなら
ないことである。
従って、複雑なオペレーティングシステムの状況においてディスク記憶サブシス
テムに関連したキャッシュメモリのスループット及び制御を改善するための包本
発明の一般的な目的は、多数のデータ記憶装置に対し最適な書き込みキャッシュ
動作をサポートするための不揮発性キャッシュRAMを組み込んだ高性能の記憶
処理システムを提供することである。
これは、本発明においては、ホストコンピュータシステムに接続できるデータ記
憶システムであって、ホストと複数のデータ記憶装置との間でデータを転送する
ためのデータ記憶システムを構成することにより達成される。データ記憶装置は
、複数のデータ転送チャンネルに接続さね、各データ記憶チャンネルは少なくと
も各1つのデータ記憶装置に接続される。各データ転送チャンネルは、データバ
ッファを備えていると共に、チャンネルのデータバッファとデータ記憶装置との
間で転送するための自立動作コントローラを備えている。データのキャッシュペ
ージを記憶するために不揮発性のランダムアクセス記憶メモリが設けられる。
インターフェイスはデータ記憶システムをホストに接続し、このインターフェイ
スを経てデータが転送される。再構成可能なデータ路は、データ転送チャンネル
と、不揮発性メモリと、インターフェイスとの間で選択的にデータ転送接続を行
えるようにする。コントローラは、データ路の構成を指令すると共に、インター
フェイスとチャンネルデータバッファとの間、インターフェイスと不揮発性メモ
リとの間、及び不揮発性メモリとチャンネルデータバッファとの間でデータをバ
ースト転送するための直接メモリアクセスコントローラを制御する。
不揮発性メモリに書き込みデータのキャッシュページを記憶することにより、デ
ータ書き込みの即座の確認をホストコンピュータシステムへ発行できる一方、コ
ントローラが不揮発性メモリにおけるデータのキャッシュページ間の関係を処理
して、不揮発性メモリからチャンネルデータバッファへデータのキャッシュペー
ジを移動するのに必要なその後のデータ転送動作を最適化することができるよう
にする。
従って、本発明の効果は、多数のデータ記憶チャンネルのマネージメントを一貫
した非常に一体化した仕方で直接的にサポートすることである。これで、データ
記憶装置の簡単で且つ複雑な制御アレーに対するサポートが透過的にマネージさ
れる。
本発明の別の効果は、正確及び不正確なオーバーラツプを含むオーバーラツプす
るデータ転送要求、書き込み後の読み取り及び書き込み後の書き込みという順序
のデータ転送の全ての組み合わせをマネージし適切に解決することである。
本発明の更に別の効果は、優先順位決め及び裁定機構を介してデータ転送要求を
待ち行列に入れることにより、増大するデータ転送活動度のもとてキャッシュか
らディスクへの書き込み転送動作が益々最適化されることである。
本発明の更に別の効果は、読み取り要求がキャッシュバイパスとして処理される
ことにより、キャッシュ書き込み要求を最適化するようにキャッシュを最大限に
使用できることである。更に、ファイルシステムの識別に基づいて書き込み要求
を選択的にキャッシュ処理する機能が与えられる。
本発明の更に別の効果は、本発明を完全に実施できるようにするために従来のマ
ルチタスクオペレーティングシステムのカーネルを最小限に変更するだけでよい
ことである。必要とされる唯一の変更は、カーネルのファイルシステム制御ソフ
トウェアが、特定の書き込み要求がキャッシュ処理されるべきか否かを識別でき
るようにすることである。かくて、本発明は、単離したものであり、従って、記
憶プロセッサの装置ドライバレベル内及びそれより上でのシステムソフトウェア
の特定の実施、機構及び動作には影響されない。装置ドライバに対する変更は不
要である。
本発明の更に別の効果は、オペレーティングシステムの再スタート時にデータの
有効キャッシュページの存在を識別すると共に、不揮発性キャッシュメモリに存
在すると分かっているデータに対し書き込み動作の適切な順序を再構成するため
の健全な機構を提供することである。不揮発性メモリに存在する有効キャッシュ
データの初期評価の一部分として、制御機構は、ドライブの記憶装置の構成を識
別し且つ照合するように維持される。
本発明の更に別の効果は、鏡像関係のドライブ記憶構成の存在を本発明の全ての
点に対して一貫した実質的に透過な動作方式で容易にマネージできることである
。
図面の簡単な説明
本発明のこれら及び他の意図された効果及び特徴は、全図面にわたって同様の部
分を同じ参照番号で示した添付図面を参照した以下の説明から容易に理解されよ
う。
図1は、マルチタスク、マルチユーザオペレーティングシステム環境において不
揮発性書き込みキャッシュを構成する従来の解決策を示すブロック図である。
図2は、本発明の好ましい実施例により高完全性の書き込みキャッシュアクセラ
レータサブシステムを用いたコンピュータシステムのブロック図である。
図3aは、本発明により構成された記憶プロセッササブシステムの好ましい実施
例の詳細なブロック図である。
図3bは、本発明の好ましい実施例によるデータチャンネルインターフェイスユ
ニットの簡単なブロック図である。
図30は、本発明により構成されたバッテリバックアップ機能付きの取り外し可
能な不揮発性メモリアレーの好ましいドータボード実施例の簡単なブロック図で
ある。
図4は、データ構造を制御するソフトウェアと、本発明の好ましい実施例におい
て実施された関連ハードウェアとの概略図である。
好ましい実施例の詳細な説明
マルチタスク、マルチユーザオペレーティングシステムをサポートするコンピュ
ータシステムの不揮発性書き込みデータキャッシュを構成する公知の解決策が図
1に示されている。この公知システムIOは、ホストプロセッサ14を備え、こ
れは典型的な形態でVMEバックプレーンバスに接続さね、このバスは、メイン
メモリアレー16及びディスクサブシステム18を更にサポートし、これは、従
来の5C3I又は5C3I−2データトランザクシヨンオペレーシヨンを直接サ
ポートするディスクコントローラを含んでいる。不揮発性ランダムアクセスメモ
リ(RAM)アレー20も、バス12によってサポートされる。不揮発性RAM
アレー20は、少なくとも、ディスクシステム18へ最終的に送られる書き込み
データを維持する。通常のシステム電力が存在しない場合に不揮発性RAMアレ
ー20への電力を維持するためにバッテリ22が設けられている。バッテリ22
は、不揮発性RAMアレー20に存在するキャッシュデータをシステム10の電
力サイクルを通して維持できるようにし、これにより、不揮発性RAMアレー2
0に維持されたデータをエラー回復プロセスの一部分としてディスクサブシステ
ム18に対して更新できるようにする。
システムIOの効果は、不揮発性RAMアレー20を経てデータ書き込み動作を
指令することができ、ディスクサブシステム18の見掛は上の性能を実質的に増
加できることである。即ち、保留中の書き込み要求がディスクサブシステム18
に対して完了するまで実行プロセスの更に別の動作を待機しなければならない場
合には、不揮発性RAMアレー20に対する書き込みの完了により書き込み確認
を直ちに返送できるようにする。従って、ディスクサブシステムの書き込みアク
セス速度と不揮発性RAMアレー20の書き込みアクセス速度との比に比例して
見掛は上の性能が高められる。
システム10を厳密に検討すると、特にシステム10のデータ転送負荷が増加す
るにつれて、多数の欠陥が明らかとなる。ディスクに関連した全てのデータ転送
動作はホストプロセッサ14を経て処理しなければならないので、不揮発性RA
Mアレー20へのデータ書き込みに続いて、結局は、ホストプロセッサ14への
返送転送を行い、その後、ディスクサブシステム18へ実際のデータ書き込みを
行わねばならない。しかしながら、バス12のデータ帯域中には限度がある。
従って、システムlOの設計解決策は、約50%と推定される実質的に大きなバ
ス負荷係数を招き、これは、特にデータ要求活動度と共に増加する。更に、不揮
発性RAMアレー20からディスクサブシステム18へのデータ転送は、他のデ
ータトランザクションに対して優先順位が低くなり勝ちであるから、不揮発性R
AMアレー20は、通常は、急速にデータでいっばいになる傾向となり、ホスト
14が不揮発性RAMアレー20にデータを書き込むよう要求する場合に著しく
低速な環境を招くが、初期の書き込み動作を許すためには最初に充分な量のキャ
ッシュデータを不揮発性RAMアレー20からホスト14ヘフラツシユして戻さ
ねばならない。
更に、システムlOの制約は、不揮発性RAMアレー20のデータをシステムI
Oの動作を通して動的に且つシステム再スタートに続くエラー回復ルーチンの一
部としてマネージする必要があることである。前者の場合に、不揮発性RAMア
レー20に存在するデータを追跡するに必要な制御構造は、必要なマネージメン
ト動作をスピードアップするためにホストプロセッサ14によりホスト自身のロ
ーカルメモリに記憶されるのが望ましい。しがしながら、このような構造は、シ
ステム停止時に失われる。それ故、このマネージメント制御構造は、不揮発性R
AMアレー20内のキャッシュデータの一体的な要素として維持されねばならな
い。不都合なことに、このような制御構造をアクセスするたびに、バス12にわ
たり更にトラフィックが生じ、それに対応してシステム10の全性能が著しく低
減し勝ちとなる。
本発明により構成された高性能の書き込みキャッシュシステム3oが図2に示さ
れている。ここでは、ホストプロセッサ32、メインメモリ34、ファイルプロ
セッサ36及び記憶プロセッサ38が高速バス12によって相互接続されている
。バス12及び高速データ転送プロトコルと、ホストプロセッサ32、メインメ
モリ34、ファイルプロセッサ36及び記憶プロセッサ38の好ましい構造設計
及び実施については、最初に述べた出願中の関連特許出願に詳細に開示されてお
り、これら特許出願は参考としてここに取り上げるものである。
記憶プロセッサ38は、バッテリバックアップ44をもつ不揮発性RAMアレー
42を備え、これは、ディスク4oのアレーのいずれか1つに意図された書き込
みデータを選択的に記憶し、ディスクは、10本の並列5C8Iデータチヤンネ
ルにおいて1つ程度のドライブから60程度のドライブまで番号付けされる。
システム30のアーキテクチャは、完全に一貫したもので、本発明によれば、少
なくとも3つまでの完全に機能的に独立して動作する記憶プロセッサ38をそれ
に各々取り付けられる不揮発性RAMアレー42及びバックアップバッチ’J
44と共にバス12に接続できるようにする。バス12とリモートNFSクライ
エント及びサーバとの間のデータの転送は、1つ以上のイーサネット型ローカル
エリアネットワーク(LAN)48を直接サポートするネットワークプロセッサ
46によって与えられる。
好ましい状況においては、NFS型のデータ転送要求がネットワークプロセッサ
46を経て処理され、ファイルプロセッサ36へ通される。次いで、ファイルプ
ロセッサ36は、NFS要求参照データの記憶位置を識別し、この制御情報を記
憶プロセッサ38へ通す。従って、記憶プロセッサ38は、本質的に物理的なレ
ベルで動作し、与えられた制御情報は、ディスクを使用するデータを指定し、そ
して5CSIドライブの場合には、論理セクタallを指定する。従って、全て
の書き込みキャッシュ制御動作及び回復手順は、本発明によれば、コンピュータ
システム30により実行されるオペレーティングシステムの従来の境界の実質的
に外で行われる。即ち、書き込みキャッシュ制御、エラー回復制御及び書き込み
データ最適化動作は、記憶プロセッサ38に対してインターフェイス制御すると
いう役割をもつオペレーティングシステム装置ドライバレベルよりも低いレベル
で行われる。
本発明を完全に利用するために必要とされる唯一の基本的なカーネルレベルの変
更は、ファイルプロセッサ36によって実行されるUNIXファイルシステム制
御コードにおいて実施される。特に、本発明は、/etc/fstabといった
システム管理レベルファイルを使用し、書き込みキャッシュ処理を受けるものと
して迅速に処理されるべきファイルシステムをmIIするものである。デフオー
ルドな環境は、書き込みデータ動作をキャッシュ処理すべきでない。書き込みデ
ータキャッシュ処理を受けるべきファイルシステムを識別することにより、ファ
イルプロセッサ36は、書き込みデータを伴うデータ転送要求の処理中に、記憶
プロセッサ38へ送られるデータ書き込み要求メツセージの形式によってデータ
書き込みをキャッシュ処理できるかどうか−1すするのが好ましい。この機能は
、UNIXオペレーティングシステムの5unO3実施において/(root)
及び典型的には/usrファイルシステムを非キャッシュ処理のままにすべきで
あるという点で実質的に重要なものである。本発明の最終的に意図することは、
全ての書き込みデータ動作が最終的にディスク40への適切なデータ転送で進め
られることを確保することであるが、不揮発性RAMのエラー回復を行いそして
残っているキャッシュ処理書き込みデータをディスク40へ復帰させる前の移行
段階として、少なくともrootファイルシステムは、オペレーティングシステ
ムの少なくともメンテナンスモードレベルへ初期化するのに必要な正しい動作が
確保されねばならないことを必要とする。
システム30により実行されるオペレーティングシステムへの唯一の他の変更は
、システム管理ユーザレベルプログラムを追加して、不揮発性RAMアレー42
の状態を管理し、統計情報を収集し、そして不揮発性RAMアレー42の現在状
態を得ることである。このユーザレベルプログラムは、記憶プロセッサ38によ
って直接実行される低レベルの埋め込まれた制御ルーチンへメツセージを最終的
に通すことができるだけでよい。これらシステムレベルコマンドは、次のものを
含む。
1、In1t二のオプションは、通常、rc、boot中に自動的に実行する。
これは、不揮発性RAMアレーを初期化し、これをオフ状態にする。不揮発性R
AMアレー42の内容を検査する際に、記憶プロセッサ38が未書き込みのキャ
ッシュページを見つけた場合は、記憶プロセッサ38は、データをディスク40
へ転送するように書き込みデータフラッシュ動作を試みる。書き込みが首尾良く
いった場合には、不揮発性RAMアレーがオフ状態に入れら札使用のための準脩
がなされる。さもなくば、不揮発性RAMアレーはダーティ状態に入れられ、こ
れは、不揮発性RAMアレー42がディスク4oへ書き込むことのできないキャ
ッシュページを含んでいることを指示する。不揮発性RAMアレー42に関連さ
れそして不揮発性RAMに維持された制御構造体の処理中に欠陥が生じた場合に
は、不揮発性RAMアレーが不良チェック和状態に入れられる。ディスクへの書
き込みは欠陥となって、ディスクエラーとなるが又はディスク4oの構成の変更
となる。システム管理部は、a)データを投棄して継続し;b)データエラーの
根本的な原因を修正してデータ書き込みを再試みし;c)システムを再構成して
再ブートし:そしてd)データをセーブして継続する、というオプションを有す
る。記憶プロセッサカ坏揮発性RAMアレー42をオフ状態に入れることができ
ない場合には、エラーメツセージがホストプロセッサ32へ返送されそして最終
的にはシステム管理部へ返送されて、エラー状態を表す。
2.0n Cpage count):これは、不揮発性RAMアレー42をオ
ン状態に入れる。このコマンドは、不揮発性RAMアレー42の状態が現在オフ
である場合だけ認識される。オプションのpage count値は、システム
管理部が、書き込みキャッシュ処理に使用されるべきキャッシュページの最大使
周数より小さいキャッシュページ数を指定できるようにする。IMバイトx32
データスペースにおいては、128個の8にバイトキャッシュページを割り当て
ることができる。デフオールドは、不揮発性RAMアレー42内の使用できる全
てのメモリをキャッシュページとして使用することである。より少数のキャッシ
ュページの使用は、書き込みキャッシュの性能の評価に使用するものである。
3、Off:これは、不揮発性RAMアレー42をオフ状態へ戻す。このコマン
ドは、不揮発性RAMアレー42が現在オン状態にある場合だけ確認される。
状態が変化する際には、記憶プロセッサ38は、不揮発性RAMアレー42によ
って記憶された全ての未書き込みのキャッシュページデータをディスク40ヘフ
ラツシユするよう試みる。フラッシュが失敗すると、不揮発性RAMアレー42
はダーティ状態に入る。
4、Purge:不揮発性RAMアレー42がダーティであるときに、このコマ
ンドは、不揮発性RAMアレー42のキャッシュページに存在する全ての未書き
込みのデータを廃棄させ、不揮発性RAMアレー42の状態を強制的にオフにす
る。
5、Flush:不揮発性RAMアレー42がオン状態又はダーティ状態にある
ときに、このコマンドは、不揮発性RAMアレー42の全ての未書き込みデータ
をディスク40へ転送するための書き込み動作を開始するように記憶プロセッサ
38に指令する。不揮発性RAMアレー42の状態は、状態が最初にオンであっ
て書き込みデータ転送動作において書き込み欠陥に遭遇しない場合はオンのまま
であり、又は最初の状態がダーティであるか又は書き込み欠陥が生じた場合はダ
ーティに保たわ、そして最初の状態がダーティであって且つ書き込み欠陥が生じ
ない場合はオフに保たれる。
6.5tate:このコマンドは、不揮発性RAMアレー42の現在状態を報告
して戻すように記憶プロセッサ38に指令する。
7、Error:このコマンドは、不揮発性RAMアレー42にそのとき維持さ
れている現在書き込みできないキャッシュページのリストを返送するように記憶
プロセッサ38に指令する。
多段のメツセージ通過プロトコルは、これらコマンドを実施するのに使用される
。一般に、プロセッサ、例えば、ホストプロセッサ32によって128バイトメ
ツセージが構成され、メインメモリ34の指定領域へ転送される。次いで、単一
ワード(32ビツト巾)のメツセージ記述子がホストプロセッサにより、例えば
、記憶プロセッサ38上のコマンドFIFOへ直接通過される。このメツセージ
記述子は、メインメモリ34におけるメツセージの位置と、そのメツセージに対
してとるべき処置に関する基本的な情報とを謬1すする。典型的に、記憶プロセ
ッサ38は、メインメモリから記憶プロセッサ38上のローカルメモリへ少なく
ともメツセージのイメージコピーを転送する役目を果たす。次いで、記憶プロセ
ッサ38は、メツセージを評価し、そしてそれに対応するファンクションを適宜
実行する。次いで、記憶プロセッサ38は、メインメモリ内の元のメツセージを
応答メツセージで実質的にオーバーライドし、この応答メツセージは、例えば、
要求された動作の完了状態を与えそして不揮発性RAMアレー42の状態を報告
する。次いで、記憶プロセッサ38は、発信側プロセッサ、通常はファイルプロ
セッサ36に存在するコマンドFIFOへ応答メツセージ記述子を送信する。こ
の応答メツセージ記述によって識別されたメインメモリ34内の応答メツセージ
を検査する際に、発信側プロセッサは、メツセージによって与えられる情報を得
ることができる。
本発明の好ましい実施例に基づいて構成された記憶プロセッサ50の詳細なブロ
ック図が図3aに示されている。マイクロプロセッサ52は、記憶プロセッサ5
0の全体的な動作を指令する。マイクロプロセッサ52は、ローカルプロセッサ
バス54に接続され、このバスには、ROM5B、スタティックRAM58、及
び不揮発性RAM60のユニットが取り付けられる。ROM56は、マイクロプ
ロセッサ52をブートさせそしてホストオペレーティングシステムのイメージコ
ピーをホストプロセッサ32ヘロードさせそしてその後にマイクロプロセッサ5
2によって独立して実行されるべき制御プログラムの実行可能なイメージをホス
トプロセッサ32を経て受け取ってプロセッサ32.36.38及び46間の共
働動作を確立するに充分な実行可能なプログラムを含むのが好ましい。この実行
可能なイメージは、スタティックRAMアレー58にロードされてそこから実行
される。又、スタティックRAMアレー58は、本発明の説明上、データ転送要
求のアクティブな待ち行列を含むワーキングプログラム変数及び制御構造体を記
憶するのにも使用される。不揮発性RAMユニット60は、2つの重要な制御構
造体、即ちテーブルlに定義された不揮発性制御構造体nvcntl、及びテー
ブル2に基づいて各々定義されたnvbuf制御構造体のアレーとを維持するよ
うに用いられる。
5truct nvcntl [
int 聰gic;
不揮発性データバッファ制御構造体:
5truct nvbuf l
1nt 5equence no;
int 5ector;
単一のnvcnt を制御構造体のみが維持される。しかしながら、nvbuf
制御構造体の数は、本発明の好ましい実施例では、記憶プロセッサ50により使
用するように同時に割り当てることのできるキャッシュページの数によって定め
られる。
又、ローカルバス54には、メツセージ記述子を受け取るのに使用されるコマン
ドFIFO64と、メツセージ記述子を送信するのに使用されるコマンドレジス
タ70と、メツセージを送信及び受信するのに使用されるデータバッファ82と
が接続される。コマンドFIFO64及びコマンドレジスタ70の両方は、\内
部データバス66に接続さね、このバスは、VMEインターフェイスユニット6
2を経てバス12に接続される。又、内部データバス66は、両方向性レジスタ
74を経、中間データバス94を経、第2の両方向性レジスタ78を経、第2の
データバス80を経て、最終的にデータバッファ82に接続される。又、第2の
データバス80には、本発明の好ましい実施例では、10個のデータチャンネル
インターフェイスユニット86゜ないし86.のアレーも接続される。図3bに
示されたように、各データチャンネルインターフェイスユニット86は、第2の
データバス80と5C5Iインターフエイスコントローラ87との間に設けられ
たデータバッファ85を備え、これは、少なくとも5C3I周辺装置とデータバ
ッファ85との間のデータ転送に対して自律動作を行うことができる。
更に、バッテリ状態指示信号は本質的にバッテリ88からローカルバス54に与
えられ、マイクロプロセッサ52によって状態を監視できるようにする。
マイクロプロセッサ52のサポートにおいて、自律的に動作するDMAコントロ
ーラ72が設けられ、VMEインターフェイスユニット62、データチャンネル
インターフェイスユニット86のデータバッファ85、データバッファ82、そ
して最後に不揮発性キャッシュメモリ76の間でのデータのDMAバースト転送
を制御する。この不揮発性キャッシュメモリ76は、書き込みキャッシュデータ
を両方向転送するために中間データバス94に接続される。
DMAコントローラ72は、バーストデータ転送の動作を選択し、開始しそして
指令するために、種々の制御及びアドレス信号を制御バス84に発生する。本発
明の好ましい実施例によれば、各バースト転送は、128バイトより成る。VM
Eインターフェイスユニット62からのキャッシュデータ書き込みは、レジスタ
74により不揮発性キャッシュメモリ76へ通され、DMAコントローラ72に
より制御バス84のアドレスライン部分を経て与えられたアドレスに記憶される
。同様に、DMAコントローラ72は、不揮発性キャッシュメモリ76がら両方
向性レジスタ78を経て1つ以上のデータチャンネルインターフェイスユニット
86のバッファ85へ至る書き込みデータのDMAバースト転送を制御する。
従って、不揮発性メモリアレー76を記憶プロセッサ5oの他部分と密接に一体
化するための最適で容易に再構成できるデータ路が確立される。
しかしながら、本発明の技術によれば、記憶プロセッサ5oそれ自体が主たる欠
陥であってもよい。従って、不揮発性メモリユニット6o及び不揮発性キャッシ
ュメモリ76は、記憶プロセッサ50の他部分から取り外しできるドータカード
において実施されるのが好ましい。実際に、記憶プロセッサ5oは、不揮発性R
AMユニット60及び不揮発性キャッシュメモリ76が存在しない場合に、デー
タキャッシュ能力なしでも、動作を継続することが充分可能である。
図30に示すように、ドータカードユニット98は、不揮発性RAMユニット6
0と不揮発性キャッシュメモリ76をそれらのエンティティに支持している。
アドレスライン54°、84°及びデータライン54”、94がドータカード9
8から延びていて、記憶プロセッサ50の残り部分に相互接続できるようになっ
ている。又、ドータカード98には感知スイッチユニット96も含まれており、
これは、標準的なシステム電源V+からバッテリバックアップ電源90VBAT
への電源スイツチ機能を果たす。又、この感知スイッチ96は、システム電源の
状態及び低バッテリ状態を感知しそしてそれに対応する信号を制御ライン92に
与えるという機能も果たす。
本発明の価値は、NFS書き込み動作をサポートする際の動作を考慮したときに
最も良く説明できよう。書き込みキャッシュ処理のない従来のコンピュータシス
テムでは、NFS書き込み動作は、典型的に、それを完了するために平均30ミ
リ秒を必要とする。というのは、書き込みをディスクに対し物理的に完了しなけ
ればならないからである。NFSのステートレス(無状態)設計により、データ
書き込みはディスクサブシステムと同期される必要がある。即ち、書き込みデー
汐転送の確認の前に書き込みをディスクに対し完全に完了しなければならず、N
FS書き込み要求を開始するプロセスは、確認を受け取るまで阻止されたままと
なる。
本発明より、不揮発性のキャッシュメモリ76を用いた同等のNFS書き込み動
作は、NFS書き込みを約1ミリ秒未満で完了することができる。同期NFS書
き込みプロトコルに違反することはない。というのは、データが不揮発性キャッ
シュメモリに安全に記憶されるまで、書き込みの確認が返送されないからである
。当然、このようなデータの完全性は、最終的にディスクに書き込まれるまで確
保されねばならない。
ロードされたシステムでは、キャッシュ式NFS書き込みと、非キャッシュ式N
FS書き込みとの相違が大きなものとなる。典型的なNFSクライエントは、多
数の同時NFS動作をマネージするために多数の基本的なI10デーモン(B1
0D)を使用している。イーサネットネットワークを経てのNFS書き込み動作
の典型的な遅延は、約42ミリ秒程度であり、即ちイーサネット搬送に7ミリ秒
、ネットワークプロトコル処理に3.5ミリ秒であり、ファイルシステム処理に
1.5ミリ秒であり、そしてディスクアクセス及びデータ返送に30ミリ秒であ
る。
単一のNFS書き込み動作では、イノード(inode)及びデータアクセス並
びに更新に対して1つないし4つ、典型的に2つないし3つの同期書き込みが必
要となる。これらのアクセスは典型的に順次のものであり、従って、時間累積の
ものである。多数のNFS書き込みデータブロックがネットワークを経て高速で
次々に転送される場合であって、NFSデータ書き込み動作を並列に実行できる
ようにする4つのBIODの典型的な場合でも、NFS書き込みを生じる最初の
4つに約140ミリ秒程度を要する。というのは、最後の書き込みが完了して確
認されるまでクライエントが待機しなければならないからである。
本発明の書き込みキャッシュでは、高速の次々のデータ書き込み動作は、約40
ミリ秒以下に匹敵する合計経過時間で不揮発性キャッシュメモリに対して完了さ
せることができる。更に、本発明は、書き込みデータを不揮発性キャッシュメモ
リに維持することにより、物理的なディスクシステムに対してその後に必要とさ
れるデータ転送動作を実質的に最適化する機会が与えられるという効果を有する
。特に、UNIXオペレーティングシステムの場合には、UPSは、ファイルデ
ータを順次に書き込みながらイノード及びそれに関連した間接的ブロックを繰り
返し書き込もうとする。本発明は、効果的にオーバーライドされたブロックを破
棄し、そして逐次のデータブロックを単一の連続する書き込み動作で転送するよ
う合体することにより、不揮発性キャッシュメモリに存在するデータを最適化す
る。不揮発性キャッシュメモリ76内でのブロックのオーバーライド及び合体は
、書き込みキャッシュデータをディスクへ転送するのに必要な物理的なディスク
転送動作を直接的に排除しそしてその数及び性質を大巾に最適化する。
本発明によれば、書き込みデータが不揮発性キャッシュメモリに留まる時間の長
さは、記憶プロセッサ50のデータ転送負荷に比例する。即ち、キャッシュ書き
込みは、一般に、読み取り及び非キャッシュ書き込みデータ転送動作が連続的に
行われている限り、不揮発性キャッシュメモリ76に保持される。しかしながら
、遅延した書き込みデータを不揮発性キャッシュメモリ76に維持することによ
り得られる最適化の程度は、書き込みデータが遅延される時間量と共に増大する
。従って、記憶プロセッサ50の書き込みデータ動作の最適化は、少なくとも部
分的な補償において、読み取り及び非キャッシュ書き込みデータ転送活動度の増
加又は継続と共に増大する傾向となる。
記憶プロセッサ50を通してのデータ転送動作に含まれる主データ構造及びサポ
ートハードウェアの簡単なブロック図が図4に示されている。システム100は
、一般に、102に受け取られるメツセージに応答した記憶プロセッサ50の動
作を説明するものであり、最終的には、ブロックデータ転送を制御するためのD
MA制御信号を制御ライン84に発生する動作を説明するものである。このプロ
セスは、記憶プロセッサ50のSRAMユニット58内に好ましくは制御構造体
として形成されたアクティブな要求待ち行列104と、不揮発性RAMユニット
60内に形成されたnvcntt制御構造体121と、これも不揮発性RAMユ
ニット60内に形成されたnvbufアレー制御構造体122と、SRAMユニ
ット58に全て制御構造体として形成された遅延書き込み待ち行列123、DM
A待機待ち行列126及びバッファ待機待ち行列130とを用いることによりマ
イクロプロセッサ52によってマネージされる。更に、好ましくは、8192バ
イトデータページで各々構成されたキャッシュページのアレーが、不揮発性キャ
ッシュメモリ76内の固定の連続位置に形成される。
アクティブな待ち行列104、遅延書き込み待ち行列123、DMA待機待ち行
列126、バッファ待機待ち行列130、不揮発性制御構造体121、及び不揮
発性バッファアレー122は、SRAMユニット5B及び不揮発性RAMユニッ
ト60におけるそれらの構造により、データ制御アクセスアクセス経路136に
よって表されたときにマイクロプロセッサ52によって直接アクセスすることが
できる。従って、マイクロプロセッサ52は、これらの構造体間でデータ及び制
御情報の転送を直接実施することができる。更に、マイクロプロセッサは、DM
Aプロセッサ114と通信するのに使用されるDMAチャンネルバッファ110
ヘデータ及び制御アクセスする。DMAチャンネルバッファ110とDMAプロ
セッサ114は、−緒に、図3aに示すDMAコントローラ72を形成する。
高速DMAコントローラ及びその動作は、参考としてここに取り上げる[高速で
融通性のあるソース7行き先データバーストの直接メモリアクセスコントローラ
(HIGH5PEED、 FLEXIBLE 5OURCE/DESTINAT
ION DATA BUR3T DIRECT MEl[lqY ACCESS
CONTROLLER)Jと題する出願中の関連特許出願に詳細に開示されてい
る。
DMAチャンネルバッファ110は、好ましくは、チャンネル動作制御構造体の
アレーを記憶するのに用いられる二重ポート付きメモリである。これらチャンネ
ル動作制御構造体の各々は、DMAプロセッサ114に対し、各データ転送動作
を定めるよう同一にフォーマットされる。本発明の好ましい実施例では、12個
の重要なりMAチャンネルがある。これらチャンネルのうちの10個は、10個
のSC8Iデータチャンネルインターフェイスユニットに対応する。別のチャン
ネルは、VMEインターフェイスユニット62から不揮発性キャッシュメモリ7
6へのキャッシュ書き込みデータの転送を制御するのに使用される。12番目の
DMAチャンネルは、VMEインターフェイスユニット62とデータバッファ8
2との間のメツセージの転送を制御する。
DMAプロセッサ114は、自律的状態マシンとして動作して、DMAチャンネ
ルバッファ110を絶え間なく走査しそして準備ができたと分かったDMAチャ
ンネル制御構造体の各々に対しDMAチャンネル動作を開始する。DMAプロセ
ッサ114は、データソースと行き先との間でデータの128バイトブロックを
高速転送するよう指令できるので(これは、5C3Iインターフエイスコントロ
ーラ87がその関連バッファ85と5C3I周辺装置との間でデータを転送でき
る速度よりも著しく速い速度である)、DMAプロセッサ114は、DMAチャ
ンネル制御バッファ110の繰り返し再評価の結果として多数のデータ転送動作
を効果的にインターリーブすることができる。DMAプロセッサ114が、対応
するDMAチャンネルに対するチャンネル制御構造体によって指定された全デー
タ転送を完了すると、DMA転送終了割り込みがチャンネル割り込みラインl1
6を経てマイクロプロセッサ52に与えられる。次いで、マイクロプロセッサ5
2は、割り込みサービスルーチンの一部として、要求待ち行列及び制御構造体1
04.123.126.130.12L122の内容を効果的に再評価し、自由
となったDMA転送チャンネルに対し別のデータ転送要求が保留となっているか
どうかを決定する。候補の要求が識別された場合には、マイクロプロセッサ52
は、要求エントリから必要な制御情報を処理して、DMAチャンネルバッファ1
10内にDMA制御構造体を完成させる。新たなりMA制御構造体が構成される
と、DMA制御構造体にフラグがセットさね、その次の繰り返しパスにおいて、
それに対応するチャンネルDMA転送を開始するためにこの新たなりMA制御構
造体を考慮するようにDMAプロセッサ114に信号する。
nvcnt 1制御構造体121は、テーブルlに示されたnvcntl構造体
の単一のインスタンスを含む。変数magicは、不揮発性RAMユニット6゜
及び不揮発性キャッシュ76が初期化されそして有効な書き込みデータを記憶で
きることを指示するために所定値、好ましくはFF0O55AA (16進)に
セットされる。その他の値は、不揮発性RAMユニット60及びキャッシュメモ
リ76が初期化されないことを指示すると考えられる。変数cache pag
ecntは、使用することのできる固定の8にバイトのキャッシュページの整数
カウントにより不揮発性キャッシュメモリ76のサイズを指定する。アレー変数
disk 5erial noは、記憶プロセッサ50に取り付けられた全ての
ディスクドライブに対しディスクドライブシリアル番号を記憶するのに用いられ
る。本発明の好ましい実施例においては、各ディスクドライブは、特定のディス
クドライブユニットを識別する独特の番号で電子的にシリアル化される。更に、
変数check sumは、nvcnt1制御構造体に対して従来計算されてい
るチェック和の値を保持している。このチェック和の値を計算し直すことにより
プロセッサ52はnvcnt 1制御構造体121のデータ完全性をチェックす
ることができる。
nvbuf制御バッファアレー122は、不揮発性キャッシュメモリ76に存在
するキャッシュページと1対lの対応を有するnvbuf構造体のアレーを含ん
でいる。各nvbufデータ構造体に維持されたデータは、オペレーティングシ
ステムの再スタートに続きマイクロプロセッサ52により評価する際に、対応す
る遅延した書き込み待ち行列エントリを再構成するのに充分である。特に、変数
5equence noは、キャッシュデータ書き込み要求のカウント値の順序
を維持する。キャッシュページ割り当ての順序、ひいては、それに対応する要求
の順序は、再構成された遅延書き込み待ち行列123に保留されることのある繰
り返しの又はオーバーラツプするデータ書き込みの順序を復帰するの際に当然重
要となる。マイクロプロセッサ52がシーケンス番号を2*32−1から0ヘラ
ツブすることが稀に生じたときに、マイクロプロセッサ52は、全ての有効なn
vbuf制御構造体に存在するシリアル番号を調整し、シーケンス番号が少なき
込みデータを最終的に受け取るべき論理的ディスクセクタの隣接シーケンスとを
直接m11する。実際に、ディスク番号は、ディスク40へ最終的にキャッシュ
データを転送するのに使用されるDMAチャンネル及びデータチャンネルインタ
ーフェイスユニット86を識別する。変数5tateは、対応するキャッシュペ
ージが有効なデータを含むか又は再使用のために空いているかを本質的にmlす
るフラグ値である。最終的に、変数check sumは、nvbuf制御構造
体の特定の対応するインスタンス内のデータに対応する従来計算されているチェ
ック相位を保持するのに使用される。このチェック相位は、特に、特定のnvb
uf制御構造体が監視されている間にシステム欠陥がある場合に、nvbuf制
御構造体のデータ完全性を保護するのに使用される。この場合に、欠陥チェック
和比較によって示されるように変更が失敗に終わったnvbuf制御構造体に関
連した書き込みデータのみが崩壊したと考えられる。従って、特定のキャッシュ
ページに対し書き込みデータ完全性のロスが最小にされる。当然、nvcn t
1制御構造体121に対する記憶されたチャック和と再計算されたチャック和
の値の比較が欠陥となったとすれば、全書き込みキャッシュの完全性に挑戦され
る。
本発明の好ましい実施例では、この挑戦は、NVRAMユニット60及び不揮発
性キャッシュメモリ76を単にパージしそして完全に再初期化することにより、
解決される。
記憶プロセッサ50は、不揮発性キャッシュメモリ76を5つの状態:非初期化
、オフ、ダーティ、オン、及び不良チェック和、の1つに維持する。パワーアッ
プ時における不揮発性キャッシュメモリ76のデフオールド状態は、非初期化で
ある。従って、その後の一連のメツセージがマイクロプロセッサ52によって受
け取られ(NVRAMを初期化しそしてNVRAMをイネーブルする)、不揮発
性キャッシュメモリ76をオン状態に入れるようマイクロプロセッサ52に指令
するまで、データ書き込みのキャッシュ処理は行われない。
不揮発性キャッシュメモリ76をマネージするためにマイクロプロセッサ52に
よって受け取ることのできるキャッシュ制御メツセージは、不揮発性キャッシュ
メモリ76を制御するためにシステム管理部のユーザインターフェイスにおいて
発行可能なコマンドを並列化する。管理メツセージは、InitializeN
VRAM、Enable NVRAM5Di 5able NVRAM、Pur
ge Data及びFlush Dataである。In1tialize NV
RAMメツセージは、通常、rc、bootの実行から続く自動システム構成動
作中に発行される。バッファ82を経てIn1Nalize NVRAMメツセ
ージを受け取ると、マイクロプロセッサ52は、nVcntl制御構造体121
における変数magicの値を検査する。この値が所定のmagic値にセット
されない場合には、nvcnt l及びnvbuf制御構造体121.122が
再初期化されるか又は初めて初期化され、ログメツセージがシステムコンソール
へと発行さね、そして不揮発性キャッシュメモリ76の状態がオフにセットされ
る。magic値が適切である場合には、nvcntl制御チェック和が照合さ
れる。この照合が失敗した場合には、制御構造体121.122及び有効キャッ
シュページの全てが崩壊である考えられる。それ故、不揮発性キャッシュメモリ
76の状態は不良チェック和にセットされる。不揮発性キャッシュメモリ76の
状態をオフに変えるには制御構造体のパージが必要とされる。しかしながら、チ
ェック和が正しいと照合された場合には、nvbuf制御構造体の各々が走査さ
ね、キャッシュページに未書き込みのキャッシュデータが存在するかどうかの判
断がなされる。nvbuf制御構造体が有効とマークされたが、対応するチェッ
ク和照合で失敗した場合には、不揮発性メモリの完全性に欠陥があるとみなされ
、不揮発性キャッシュメモリ76は、不良チェック和状態に入れられる。しかし
ながら、各々の有効なそしてチェック和照合されたnvbuf制御構造体に対し
、マイクロプロセッサ52は、nvcntt制御構造体121内のディスクシリ
アル番号をディスクから読み取られた実際のディスクドライブのシリアル番号で
照合する。適切な一致が見つかりそして有効なキャッシュページが存在する場合
には、マイクロプロセッサ52は、キャッシュページデータを対応するディスク
ドライブへ書き込みし始める。ディスクシリアル番号の照合又はキャッシュペー
ジ書き込みの試みが失敗に終わった場合には、不揮発性キャッシュメモリ76は
ダーティ状態にセットされる。ディスクシリアル番号の照合は失敗したが、有効
なキャッシュページは存在しない場合には、nvcnt1制御構造体のシリアル
番号が更新される(自動再構成)。キャッシュページ書き込みの試みの失敗がシ
ステム管理部により典型的に不良セクタのマツピングを通じて修正可能である場
合は、システム管理部のユーザレベルフラッシュコマンド及びその後のFlus
h Dataメツセージに応答して開始されるその後の書き込み動作は正しく完
了することができる。全ての有効キャッシュページがディスクに首尾良く書き込
まれると、不揮発性キャッシュメモリ76は、オフ状態に入れられる。最終的に
、不揮発性キャッシュメモリの状態は、In1tialize NVRAMメツ
セージに応答して復帰される。
Enable NVRAMメツセージは、不揮発性キャッシュメモリの書き込み
キャッシュファンクションをイネーブルしそして状態をオンにセットするように
マイクロプロセッサ52に指令する。このメツセージは、不揮発性キャッシュメ
モリ76の現在状態がオフであるときだけ受け入れられる。
Disable NVRAMメツセージは、不揮発性キャッシュメモリの書き込
みキャッシュファンクションをディスエイプルするようにマイクロプロセッサ5
2に指令する。まず、未書き込みの全てのキャッシュページがディスク40ヘフ
ラツシユされる。フラッシュキャッシュ書き込みが完全に首尾良くいったかどう
かに基づいて、不揮発性キャッシュメモリの状態は、オフ(首尾良くいった)又
はダーティ(フラッシュ書き込みが失敗した)にセットされる。この場合も、メ
ツセージの完了状態がDisable NVRAMメツセージに対するメツセー
ジ応答において返送される。
Purge Dataメツセージは、未書き込みの全てのキャッシュページを不
揮発性キャッシュメモリ76からパージしそして不揮発性制御構造体121゜1
22及びキャッシュページの全てを再初期化するようにマイクロプロセッサに指
令する。次いで、不揮発性キャッシュメモリ76の状態は、オフにセットされる
。
更に、Flush Dataメツセージは、不揮発性キャッシュメモリ76から
ディスク40へのキャッシュデータの書き込みを強制的に行う。このコマンドは
、不揮発性キャッシュメモリの状態がダーティであるか又はオンであるときに受
け入れられる。従って、フラッシュデータメツセージは、典型的に、不良セクタ
のようなディスク媒体エラーが再マツプされた後に未書き込みのキャッシュデー
タをフラッシュするのに用いられる。フラッシュキャッシュ書き込みが首尾良く
いったときには、状態がオフに変更される。さもなくば、状態はダーティにセッ
トされたままとなる。
実際のデータ転送を指令するために3つの付加的なメツセージが記憶プロセッサ
50に送られる。これらのメツセージは、Write Dataメツセージ、N
V Write Dataメツセージ及びRead Dataメツセージを含む
。Write Dataメツセージは、VMEインターフェイスユニット62か
ら直接ディスク40へ転送されるべきデータの非キャッシュ処理書き込みを要求
する。このメツセージは、全てのメツセージと同様に、バッファ82へ実際に転
送され、マイクロプロセッサ52によって処理される。次いで、アクティブな待
ち行列104において対応するエントリがなされ、この一連の段階がライン10
8によって論理的に示されている。本発明の好ましい実施例では、アクティブな
待ち行列104は、まずDMAチャンネルによりそしてセクタにより分類される
エレベータ待ち行列として動作する。即ち、アクティブな待ち行列104への非
キャッシュ処理書き込み要求の挿入は、まず、disk numberに基づき
、次いで、ディスクドライブに使用される並列な5C8Iチヤンネルの番号によ
り必要に応じて並び替え、そしてセクタに基づいて、順序を維持するよう実行さ
れる。従って、アクティブな待ち行列104は、単−又は多数の先入れ先出し待
ち行列ではなくて、多数のエレベータ待ち行列として効果的に動作し、これらエ
レベータ待ち行列の各々は、対応するDMAチャンネルのデータ転送要求を待ち
行列処理する。
アクティブな待ち行列104の各エントリは、それに対応するDMAチャンネル
制御構造体を構成するに充分な情報を含み、この制御構造体は、ライン112に
よって一般的に指示されたように、マイクロプロセッサ52によりDMAチャン
ネルバッファ110へ転送することができる。
アクティブな待ち行列104に存在する非キャッシュ処理書き込み動作に対応す
るDMA転送終了割り込みを受け取ると、マイクロプロセッサ52は、確認応答
メツセージの返送を開始し、非キャッシュ処理書き込みエントリをアクティブな
待ち行列104から削除し、そして最終的にDMAチャンネルバッファ110へ
の空きDMAチャンネルに対し次に続くアクティブな待ち行列要求を促す。
Read Dataメツセージは、非キャッシュ処理のWrite Dataメ
ツセージと実質的に同様に処理される。Read Dataメツセージは、ライ
ン106で一般的に示されたように、アクティブな待ち行列104の適当なエレ
ベータ待ち行列にエントリが形成されるようにする。最終的に、読み取りデータ
は、DMAプロセッサ114の動作によって得られると同時に、VMEインター
フェイスユニット62を経てメインメモリ34に記憶される。次いで、Read
Dataメツセージに対する応答がマイクロプロセッサ52によって発行され
る。次いで、この読み取りデータメツセージに対応するアクティブな待ち行列の
エントリが削除される。
最終的に、NV Write Dataメツセージは、マイクロプロセッサ52
により、不揮発性キャッシュメモリ76へのデータ書き込み動作を実行するため
のディレクティブとして処理される。NV書き込みメツセージに対応するエント
リは、ライン120で一般的に示されたように、遅延書き込み待ち行列123へ
となされる。不揮発性キャッシュメモリ76におけるキャッシュページが直ちに
使用できるかどうかに基づき、エントリは、キャッシュ書き込みライン124に
より一般的に示されたようにDMA待機待ち行列126へとなされる(キャッシ
ュページが使用できる)か、又はライン128により一般的に示されたようにバ
ッファ待機待ち行列130へとなされる(全てのキャッシュページが現在使用中
である)。
遅延書き込み待ち行列123におけるエントリは、非キャッシュ処理書き込みエ
ントリと実質的に等価である。キャッシュ書き込みに対するDMA待機待ち行列
126のエントリは、DMAチャンネルバッファ110に対してDMAチャンネ
ル制御構造体を構成するに充分な情報を含んでいる。マイクロプロセッサ52は
、DMA待機待ち行列126を先入れ先出し待ち行列として動作し、DMAチャ
ンネルバッファ110へ促進するためのエントリを選択する。VMEインターフ
ェイスユニット62から不揮発性キャッシュメモリ76へのDMA転送の完了時
に、DMA待機待ち行列126のエントリが削除され、遅延書き込み待ち行列1
23及びnvbuf制御構造体122の対応するエントリは、書き込みデータを
保持するキャッシュページの識別及び有効性を反映するように更新される。次い
で、確認応答メツセージを発行することができる。
一般に、アクティブな待ち行列104が空であるときには、マイクロプロセッサ
52は、遅延書き込み待ち行列123を検査して、アクティブな待ち行列104
へ促進するためのエントリを選択する。一般に、不揮発性キャッシュメモリ76
からディスク40へ行うことのできる最大の単一データ転送を定めるエントリは
、アクティブな待ち行列104へ促進されるものとして選択される。このデータ
がディスクへ首尾良く転送されると、それに対応するキャッシュページがマイク
ロプロセッサ52により空きとしてマークされる。次いで、バッファ待機待ち行
列130が検査され、最も古い待ち行列エントリがもしあれば、DMA待機待ち
行列126へ促進される。バッファ待機待ち行列130の対応エントリは削除さ
れるが、DMA待機待ち行列126の新たになされたエントリは、上記のように
DMA待機待ち行列126へ直接与えられるかのように処理される。
最終的に、多数のメツセージをマイクロプロセッサ52へ供給して、不揮発性キ
ャッシュメモリ76の状態、条件及び性能に関する情報を得ることができる。
第1のメツセージ、Read Dirty Li5t又は5tateメツセージ
は、不揮発性キャッシュメモリ76の現在状態を与えるか又は各ダーティキャッ
シュページのセクタ、セクタカウント、ディスク番号及び状態を含むダーティキ
ャッシュページのリストを与える応答メツセージをマイクロプロセッサ52から
得る。状態又はダーティページリスト応答の選択は、マイクロプロセッサ52へ
送られるRead Dirty Li5t又は5tateメツセージに与えられ
るフラグバイトによって確立される。
好ましくはホストプロセッサ32により周期的なベースで実行される状態モニタ
デーモン(statd)によって発行されるNVRAM 5tatusメツセー
ジは、使用されるキャッシュページの数、キャッシュを待機するメツセージの数
及びDMAハードウェアを待機するメツセージの数を指定する応答メツセージを
準備するようにマイクロプロセッサ52に指令する。又、遅延書き込み待ち行列
123を通してマネージされる書き込みデータに対する平均待機時間、並びに不
揮発性キャッシュメモリの書き込み、合体した書き込み、不揮発性キャッシュメ
モリ76を経て取り扱われる正確及び不正確なオーバーラツプ書き込みの合計数
も返送される。
読み取り及び書き込みデータメツセージ並びに記憶プロセッサ50を通るデータ
転送の全てをマネージする際にはマイクロプロセッサ52によって多数の書き込
みキャッシュ保護及び性能最適化が実行される。次々の読み取り及び書き込み動
作の順序を維持しなければならないので、全てのキャッシュ書き込みメツセージ
には受け取った順序でマイクロプロセッサ52によりシーケンス番号が指定さL
そして読み取り及び非キャッシュ処理書き込みメツセージの順序が受信時にチェ
ックされマネージされる。
NV Write Dataメツセージの場合には、マイクロプロセッサ52は
、メツセージを受け取るや否や、キャッシュページへの実際の書き込みデータ転
送のタイミングに係わりなくメツセージを遅延書き込み待ち行列123に入力す
る。これは、マイクロプロセッサ52がそれに続く読み取り及び書き込みメツセ
ージをオーバーラツプするセクタアドレスで直ちに走査しそして識別できるよう
にする。NV Write Dataメツセージによって定められたデータが不
揮発性キャッシュメモリ76におけるキャッシュページに転送されるや否や、マ
イクロプロセッサ52によって確認応答メツセージが発行される。従って、オー
バーラツプした又は前の隣接したデータがディスク4oへと書き出されてしまう
前に、別のオーバーラツプ又は隣接する書き込みデータブロックが受け取られて
、不揮発性キャッシュメモリ76へ転送されそして確認されるおそれが高くなる
。従って、これらの2つ以上のオーバーラツプ又は隣接するデータブロックを合
体することによってその後のディスク書き込み動作を最適化する機会が得られる
。Read Dataメツセージの場合には、マイクロプロセッサ52が遅延書
き込み待ち行列123を受信時に直ちに走査し、存在するオーバーラツプするN
V Write Dataメツセージがデータを待機するものであるか或いは不
揮発性キャッシュメモリ76に完全に存在するデータを有するものであるがを判
断する。本発明によれば、その後のRead Dataメツセージによってオー
バーラツプされたNV Write Dataメツセージは、アクティブな待ち
行列104へ直ちに促される。Read Dataメツセージもアクティブな待
ち行列104へ挿入されるが、その促されたNV Write Dataメツセ
ージの後方であり、それに続いて実行される。この書き込み及び読み取りシーケ
ンスの順序シーケンスがこのように注意を払われない場合には、読み取り動作は
適切に完了するが、不適切なデータを返送する。
NV Write Dataメツセージは、本発明の好ましい実施例では、NF
Sデータ書き込み要求のデフオールドサイズ及び特性である8にページ境界に整
列された単一の8にバイトデータ転送に制限される。これらの基準に合致しな1
rlNV Write Dataメツセージは、本発明の好ましい実施例では、
非キャッシュ処理のWrite Dataメツセージとして処理される。これら
の制約は、不揮発性キャッシュメモリ76内のキャッシュページの配置を制御す
るだめの動的な記憶割り当てアルゴリズムを使用することにより軽減できるが、
このような付加的な複雑さは、NFSサーバの使用が主たる動作である場合は一
般的に必要でないと分かっている。
上記基準に合致するNV Write Dataメツセージについては、不揮発
性キャッシュメモリ76にキャッシュページが割り当てられる。キャッシュペー
ジを割り当てられない場合には、メツセージはバッファ待機待ち行列130に効
果的に挿入される。マイクロプロセッサ52がキャッシュページを解放するたび
に、バッファ待機待ち行列130が走査される。NV Write Dataメ
ツセージを最初に受け取った際に又はキャッシュページが解放された後にキャッ
シュページが使用できるようになると、NV Write Dataメツセージ
は、DMA待機待ち行列12Bに挿入される。さもなくば、DMA待機待ち行列
126が空である場合には、NVキャッシュメモリ書き込みを制御するためのD
MAチャンネルを直ちに使用することができる。次いで、不揮発性キャッシュメ
モリ書き込みに対するDMAチャンネルバッファ制御構造体にDMA制御構造体
が形成される。DMA待機待ち行列は、DMAプロセッサ114が不揮発性キャ
ッシュメモリのDMAチャンネルに対応するDMA転送終了割り込みを発行する
たびにマイクロプロセッサ52によって再評価される。
NV Write Dataメツセージに対する全てのデータがキャッシュペー
ジへ転送されてしまうと、nvbu f制御構造体の対応するインスタンスが、
その対応するキャッシュページに対して更新される。次いで、マイクロプロセッ
サ52により確認応答メツセージが発行される。これは、書き込みデータカ坏揮
発性キャッシュメモリ内に適切に且つ完全に記憶され、従って、ディスク4oへ
更に転送される前にシステム遮断した場合に保護されるよう確保する。
本発明によれば、各メツセージに対応するデータがキャッシュページへ完全にフ
ェッチされたかどうかを表すために遅延書き込み待ち行列123の各エントリに
フラグが組み合わされる。このフラグは、同期書き込みを正しく取り扱うべきで
ある場合に対応する書き込み確認応答メツセージがマイクロプロセッサ52によ
って発生される前に更新されねばならない。即ち、DMA待機待ち行列126の
待ち行列最上部に保留となっているデータ転送要求の完了に関連してフラグが更
新される。この完了は、不揮発性キャッシュメモリのDMAチャンネルに対応す
るDMA転送終了割り込みの発生によって表される。NV Write Dat
aメツセージに対応するDMA待機待ち行列126のエントリは、nvbuf制
御構造体122の更新の後であって且つマイクロプロセッサ52によるキャッシ
ュ書き込み確認応答メツセージの発生の前に削除される。特に、確認応答メツセ
ージは、非トリビアル応答を送るべきである場合の全ての応答メツセージと同様
に、まずバッファ82に形成される。次いで、マイクロプロセッサ52は、DM
Aバッファ82からVMEインターフェイスユニット62のDMA転送チャンネ
ルに対しDMAチャンネルバッファ110にDMAチャンネル制御構造体を構成
する。トリビアル応答の場合は、コマンドレジスタ70を経て発信側プロセッサ
のコマンドFIFOにヌル応答メツセージ記述子が書き込まれる。両方の場合に
、マイクロプロセッサ52は、次いで、遅延書き込み待ち行列123のエントリ
を処理するように自由に復帰する。
連続するデータブロック書き込みは、多数のキャッシュページに及ぶ単一のディ
スク要求によって応対されるように合体される。繰り返しのデータブロックが識
別されそして初期のシーケンス番号が付けられたインスタンスが削除される。
即ち、遅延書き込み待ち行列123がサーチされて、オーバーラツプする書き込
み要求があるかどうか最初に決定される。オーバーラツプする書き込みが見つか
った場合には、オーバーラツプが正確又は不正確と決定される。正確なオーバー
ラツプとは、2つの書き込みデータ要求が厳密に同じディスクの同じセクタを参
照(アドレス)することを意味する。このような場合には、最初の書き込み要求
が単に破棄され、そしてそれに対応するキャッシュページが解放される。それに
続くデータ書き込みを最終的にディスクへと行えるよう確保するために、その手
前のデータ書き込みキャッシュページは、その後続するデータ書き込みブロック
がフェッチ完了するまで解放されず、そしてデータチャンネルインターフェイス
ユニット86への以前のデータブロックの転送がまだスタートされていない場合
だけ別のキャッシュページに存在する。
不正確なオーバーラツプとは、2つの書き込みがそれらのアドレスされたセクタ
の一部分だけオーバーラツプすることを意味する。本発明の好ましい実施例では
、第1の書き込みが遅延書き込み待ち行列123からアクティブな待ち行列10
4へと直ちに促される。この即時の移動は、第1の書き込みが、その後続するオ
ーバーラツプ書き込みがディスクへ転送される前にディスクへのデータ転送を生
じるよう確保する。少なくとも第1の不正確な書き込みをディスクへ書き込む前
にシステムが再スタートした場合には、nvbuf制御構造体122において識
別されるキャッシュページが2つになる。システム再スタートの結果として、ア
クティブな待ち行列及び遅延待ち行列104.123の両方が失われる。しかし
ながら、nvbuf制御構造体の各々に存在するシーケンス番号変数は、マイク
ロプロセッサ52により、遅延書き込み待ち行列123の再構成と、2つのオー
バーラツプするキャッシュページのうちの手前のページのa31Jとに使用する
ことができる。2つのオーバーラツプするキャッシュページのうちの手前のペー
ジに対応するエントリは、アクティブな待ち行列104において直接再構成でき
るが、その後続キャッシュページに対するメツセージエントリは遅延書き込み待
ち行列123に人力される。
2つのメツセージエントリが、同じディスク及びオーバーラツプセクタアドレス
でアクティブな待ち行列104に存在するときには、それらが先入れ先出しの順
序で応対される。従って、2つのメツセージは、それらの適切な順序で応対され
、これにより、ディスクデータの完全性を保持する。
アクティブな待ち行列104が空であることをマイクロプロセッサ52が検出す
ると、遅延書き込み待ち行列123がサーチされて、最大数のセクタに対する書
き込みデータ転送を定めるNV Write Dataメツセージが見つけられ
る。このアルゴリズムは、合体した書き込みに対して最も高い優先順位を与えそ
して最大数のキャッシュページをできるだけ速やかに解放する。又、このアルゴ
リズムは、特にUNIXファイルシステムでは、データブロックの書き込みが典
型的に逐次であるが、イノード及び間接的ブロックの書き込みが典型的に繰り返
し性であることを確認する。連続セクタの大きなブロックを表す逐次の合体した
書き込みは、高い優先順位でディスクへ書き出される。これとは逆に、小さなセ
クタ書き込みブロックは、イノード及び間接的ブロック書き込みの実質的に高い
割合を有し、それ故、繰り返し書き込みのために高い破棄率を受けることになる
。更に、これもUNIXファイルシステムで典型的であるが、データ書き込みが
通常集群化し、従って、アクティブな待ち行列104が長い時間中にわたって空
でない状態に保たれる場合にデータが合体するおそれが高(なる。従って、本発
明の遅延書き込み制御アルゴリズムは、はぼ全てのロード状態のもとて最適化状
態を保とうとする。
考慮しなければならない別の環境は、NV Write Dataメツセージが
アクティブな待ち行列104へ促進されて、キャッシュページへのデータフェッ
チの完了の前にDMAプロセッサ114によって処理される準備ができる場合で
ある。この例においては、マイクロプロセッサ52は、データフェッチが完了す
るまで、対応する5C3Iデータチヤンネルインターフエイスユニツト86をイ
ネーブルする状態を保つ。即ち、5C5Iデータ転送は、この5C8Iチヤンネ
ルに対応するDMA転送終了割り込みの受け取りに応答してマイクロプロセッサ
52によって開始される。
処理しなければならない別の環境は、鏡像関係の書き込みデータディスクドライ
ブの使用を伴うものである。本発明の好ましい実施例によれば、鏡像書き込みは
、UPS及び装置ドライバの動作を介して、2つの並列なディスク書き込みメツ
セージを発生する。それ故、2つの個別のキャッシュページが割り当てられ、別
々にフェッチされる。遅延書き込み待ち行列123における多数の不揮発性書き
込みメツセージの存在をマネージするのに必要な更に別の処理は、2つのディス
ク書き込みが鏡像ドライブへ向けられることとは独立している。従って、このよ
うなキャッシュページをマネージするのに特殊な命令は必要とされない。という
のは、各キャッシュページが各ディスクに書き込まれるからである。
NV Write Dataメツセージを伴う最終的な環境は、ディスク又は媒
体の欠陥があって、NV Write Dataメツセージが遅延書き込み待ち
行列123又はアクティブな待ち行列104に保持されることになりそしてそれ
に対応するキャッシュページが不揮発性キャッシュメモリ76に持続されている
場合に生じる。ディスクへのキャッシュベージデータ書き込みが欠陥となるので
、キャッシュページは解放されず、データが保存される。しかしながら、それに
対応するnvbuf制御構造体122は、ダーティとマークされ、その後のキャ
ブシュファンクシコンは、マイクロプロセッサ52によってディスエイプルされ
る。好ましくは、エラーログメツセージがマイクロプロセッサ52により最終的
にシステムコンソールへと発生さね、システム管理部に知らせる。これは、ディ
スクハードウェア又は媒体の欠陥の固定を試みるように手動で介在できるように
する。欠陥を固定できる場合には、システム管理部によりマイクロプロセッサ5
2にフラッシュメツセージを向けることができ、キャッシュベージデータをディ
スクへ潜在的に適切に書き込めると共に状態をダーティからオフへリセットでき
るようにする。次いで、システム管理部は、NV書き込みメツセージを回収する
ためにNVRAMイネーブル信号を発生することができる。
更に別の複雑さは、NV書き込み及びオーバーラツプ読み取りがアクティブな待
ち行列104へ適切に移動されたが、書き込みデータ転送に欠陥が生じた場合に
ある。nvbuf制御構造体122における対応エントリは、前記のように、ダ
ーティとマークされる。本発明の好ましい実施例によれば、オーバーラツプ読み
取り要求は、マイクロプロセッサ52によって返送された媒体エラ一応答メツセ
ージを有し、ダーティなNV Write Dataメツセージが遅延書き込み
待ち行列123へ戻される。従って、同じディスク及びDMAチャンネルへのそ
の後の要求は、アクティブな待ち行列104を通して処理されるが、ダーティな
NV Write Data要求は、その後の読み取り及び書き込みと比較する
ために遅延書き込み待ち行列123に維持される。遅延書き込み待ち行列123
に既に存在するダーティなNV Write Data要求にオーバーラツプす
るその後の書き込み要求は、ダーティな書き込みの発生時にキャッシュ処理機能
がディスエイプルされているので、不揮発性キャッシュメモリ76を通して処理
されない。むしろ、この要求は、ディスクへの書き込みを試みるようにアクティ
ブな待ち行列104を通して処理することができる。この後続要求が首尾良くい
くかどうかに係わりなく、遅延書き込み待ち行列123におけるダーティな書き
込み要求は、不要物として直ちに除去される。欠陥があった場合には、媒体エラ
一応答メツセージがマイクロプロセッサ52によって返送され、その後の要求が
削除される。ダーティなNV書き込みに続いてオーバーラツプする読み取りがあ
る場合には、媒体エラ一応答メツセージがマイクロプロセッサ52によって直ち
に返送される。従って、遅延書き込み待ち行列123は、媒体又はI\−ドウエ
アエラーが存在する中でデータの完全性をマネージしそして維持するのに使用し
続けられる。即ち、ダーティなNV書き込みブロックにオーバーラツプするその
後の読み取り及び書き込みは、遅延書き込み待ち行列l会3のサーチによりマイ
クロプロセッサ52によってa3+1され、システム管理部の指示のもとてその
後のオーバーラツプする書き込み又は不揮発性キャッシュメモリ76のパージに
よって無効化されない限り及び無効化されるまでキャッシュ処理データを維持す
るように適当な処置がとられる。
以上、包含的に高い性能の書き込みキャッシュアクセラレータシステムを説明し
た。このシステムは、広範囲に変化するデータ転送負荷のもとて効率的な設計及
び最適な性能を維持しつつも、実質的に高い潜在的な複雑さを生じる高性能デー
タチャンネルのアレーに対して書き込みキャッシュ処理を与える能力を提供する
。
以上の教示に鑑み、当然ながら、本発明の多数の修正及び変更が考えられるので
、本発明は、添付の請求の範囲内で、上記とは異なる仕方で実施できることを理
解されたい。
(従来例)
FIG、−2
+■
FIG、−3c
Claims (3)
- 1.データ転送するためにホストコンピュータシステムに接続されたデータ記憶 システムにおいて、 a)複数のデータ記憶装置と、 b)複数のデータ転送チャンネルとを備え、各々の上記データ記憶チャンネルは 、上記データ記憶装置の各1つに接続されへ各々のデータ転送チャンネルは、デ ータバッファと、該データバッファと上記データ記憶装置の上記各1つとの間の データの転送を自律的に制御する手段とを含んでおり、更に、c)データを不揮 発性ランダムアクセス記憶するメモリ手段と、d)データを転送するためのイン ターフェイス手段と、e)上記データ転送チャンネルと、上記メモリ手段と、上 記インターフェイス手段との間に選択的なデータ転送結合を与えるデータ手段と 、f)上記データ手段に接続されて、上記データ転送チャンネルと、上記メモリ 手段と、上記インターフェイス手段との間のデータの転送を指令する制御手段と を備え、上記制御手段は、この制御手段に応答する直接メモリアクセス制御手段 であって、上記インターフェイス手段と上記データバッファとの間、上記インタ ーフェイス手段と上記メモリ手段との間、及び上記メモリ手段と上記データバッ ファとの間でデータをバースト転送するための直接メモリアクセス制御手段を含 むことを特徴とするデータ記憶システム。
- 2.上記メモリ手段は、上記データ記憶装置の各1つによって記憶するように向 けられるデータのキャッシュページを記憶し、上記データ記憶システムは、更に 、データの各キャッシュページの状態及び行き先を定める制御データを不揮発性 ランダムアクセス記憶するための制御メモリ手段を備えている請求項1に記載の データ記憶システム。
- 3.データのキャッシュページの状態は空き及び使用中を含み、上記制御手段は 、データの転送を上記インターフェイスから所定の第1のキャッシュページへ選 択的に向け、そして上記制御手段は、所定の第2のキャッシュページの状態を定 める制御データを変更する請求項2に記載のデータ記憶システム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US84853992A | 1992-03-09 | 1992-03-09 | |
US848,539 | 1992-03-09 | ||
PCT/US1993/001911 WO1993018461A1 (en) | 1992-03-09 | 1993-03-04 | High-performance non-volatile ram protected write cache accelerator system |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH07504527A true JPH07504527A (ja) | 1995-05-18 |
Family
ID=25303567
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP5515857A Pending JPH07504527A (ja) | 1992-03-09 | 1993-03-04 | 高性能の不揮発性ram保護式の書き込みキャッシュアクセラレータシステム |
Country Status (7)
Country | Link |
---|---|
US (1) | US5701516A (ja) |
EP (1) | EP0630499A4 (ja) |
JP (1) | JPH07504527A (ja) |
KR (1) | KR950700573A (ja) |
AU (1) | AU662973B2 (ja) |
CA (1) | CA2131627A1 (ja) |
WO (1) | WO1993018461A1 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005078161A (ja) * | 2003-08-28 | 2005-03-24 | Canon Inc | 記録装置 |
JP2009187552A (ja) * | 2008-02-11 | 2009-08-20 | Nvidia Corp | 電力制御システム及び電力制御方法 |
US8041904B2 (en) | 2004-05-03 | 2011-10-18 | Microsoft Corporation | Non-volatile memory cache performance improvement |
Families Citing this family (191)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69614291T2 (de) * | 1995-03-17 | 2001-12-06 | Lsi Logic Corp | (n+i) Ein/Ausgabekanälesteuerung, mit (n) Datenverwaltern, in einer homogenen Software-Programmierbetriebsumgebung |
AU5790596A (en) * | 1995-06-07 | 1996-12-30 | Tricord Systems, Inc. | Intelligent disk-cache memory |
US6098128A (en) | 1995-09-18 | 2000-08-01 | Cyberstorage Systems Corporation | Universal storage management system |
US5948062A (en) * | 1995-10-27 | 1999-09-07 | Emc Corporation | Network file server using a cached disk array storing a network file directory including file locking information and data mover computers each having file system software for shared read-write file access |
US5996047A (en) * | 1996-07-01 | 1999-11-30 | Sun Microsystems, Inc. | Method and apparatus for caching file control information corresponding to a second file block in a first file block |
US5893140A (en) * | 1996-08-14 | 1999-04-06 | Emc Corporation | File server having a file system cache and protocol for truly safe asynchronous writes |
KR100229897B1 (ko) * | 1997-01-10 | 1999-11-15 | 윤종용 | 직접 메모리 억세스 전송방법에 따른 타이밍 모드선택장치 |
US6119212A (en) * | 1997-04-23 | 2000-09-12 | Advanced Micro Devices, Inc. | Root size decrease on a UNIX based computer system |
US5968170A (en) * | 1997-04-23 | 1999-10-19 | Advanced Micro Devices, Inc. | Primary swap size increase on a UNIX based computer system |
US5991860A (en) * | 1997-04-23 | 1999-11-23 | Advanced Micro Devices, Inc. | Root file system size increase on a unix based computer system |
US5964874A (en) * | 1997-04-23 | 1999-10-12 | Advanced Micro Devices, Inc. | Swap size decrease on a UNIX based computer system |
US6049856A (en) * | 1997-05-27 | 2000-04-11 | Unisys Corporation | System for simultaneously accessing two portions of a shared memory |
US6081807A (en) * | 1997-06-13 | 2000-06-27 | Compaq Computer Corporation | Method and apparatus for interfacing with a stateless network file system server |
KR100231707B1 (ko) * | 1997-08-04 | 2000-01-15 | 정선종 | 통신 장비의 디엠에이 처리 방법 및 그 장치 |
US6427173B1 (en) | 1997-10-14 | 2002-07-30 | Alacritech, Inc. | Intelligent network interfaced device and system for accelerated communication |
US6389479B1 (en) | 1997-10-14 | 2002-05-14 | Alacritech, Inc. | Intelligent network interface device and system for accelerated communication |
US6807581B1 (en) | 2000-09-29 | 2004-10-19 | Alacritech, Inc. | Intelligent network storage interface system |
US6658480B2 (en) | 1997-10-14 | 2003-12-02 | Alacritech, Inc. | Intelligent network interface system and method for accelerated protocol processing |
US6697868B2 (en) | 2000-02-28 | 2004-02-24 | Alacritech, Inc. | Protocol processing stack for use with intelligent network interface device |
US8621101B1 (en) | 2000-09-29 | 2013-12-31 | Alacritech, Inc. | Intelligent network storage interface device |
US7133940B2 (en) | 1997-10-14 | 2006-11-07 | Alacritech, Inc. | Network interface device employing a DMA command queue |
US7076568B2 (en) | 1997-10-14 | 2006-07-11 | Alacritech, Inc. | Data communication apparatus for computer intelligent network interface card which transfers data between a network and a storage device according designated uniform datagram protocol socket |
US6757746B2 (en) | 1997-10-14 | 2004-06-29 | Alacritech, Inc. | Obtaining a destination address so that a network interface device can write network data without headers directly into host memory |
US7237036B2 (en) | 1997-10-14 | 2007-06-26 | Alacritech, Inc. | Fast-path apparatus for receiving data corresponding a TCP connection |
US6687758B2 (en) | 2001-03-07 | 2004-02-03 | Alacritech, Inc. | Port aggregation for network connections that are offloaded to network interface devices |
US7284070B2 (en) * | 1997-10-14 | 2007-10-16 | Alacritech, Inc. | TCP offload network interface device |
US8539112B2 (en) | 1997-10-14 | 2013-09-17 | Alacritech, Inc. | TCP/IP offload device |
US7042898B2 (en) | 1997-10-14 | 2006-05-09 | Alacritech, Inc. | Reducing delays associated with inserting a checksum into a network message |
US8782199B2 (en) | 1997-10-14 | 2014-07-15 | A-Tech Llc | Parsing a packet header |
US7185266B2 (en) | 2003-02-12 | 2007-02-27 | Alacritech, Inc. | Network interface device for error detection using partial CRCS of variable length message portions |
US7174393B2 (en) | 2000-12-26 | 2007-02-06 | Alacritech, Inc. | TCP/IP offload network interface device |
US6427171B1 (en) | 1997-10-14 | 2002-07-30 | Alacritech, Inc. | Protocol processing stack for use with intelligent network interface device |
US7089326B2 (en) | 1997-10-14 | 2006-08-08 | Alacritech, Inc. | Fast-path processing for receiving data on TCP connection offload devices |
US6434620B1 (en) | 1998-08-27 | 2002-08-13 | Alacritech, Inc. | TCP/IP offload network interface device |
US6591302B2 (en) | 1997-10-14 | 2003-07-08 | Alacritech, Inc. | Fast-path apparatus for receiving data corresponding to a TCP connection |
US7167927B2 (en) | 1997-10-14 | 2007-01-23 | Alacritech, Inc. | TCP/IP offload device with fast-path TCP ACK generating and transmitting mechanism |
US6226680B1 (en) | 1997-10-14 | 2001-05-01 | Alacritech, Inc. | Intelligent network interface system method for protocol processing |
US5872993A (en) * | 1997-12-01 | 1999-02-16 | Advanced Micro Devices, Inc. | Communications system with multiple, simultaneous accesses to a memory |
US6081883A (en) * | 1997-12-05 | 2000-06-27 | Auspex Systems, Incorporated | Processing system with dynamically allocatable buffer memory |
US6023737A (en) * | 1998-04-24 | 2000-02-08 | International Business Machines Corporation | Multi-stage pipelined data coalescing for improved frequency operation |
US7664883B2 (en) | 1998-08-28 | 2010-02-16 | Alacritech, Inc. | Network interface device that fast-path processes solicited session layer read commands |
US6260125B1 (en) * | 1998-12-09 | 2001-07-10 | Ncr Corporation | Asynchronous write queues, reconstruction and check-pointing in disk-mirroring applications |
US6549988B1 (en) | 1999-01-22 | 2003-04-15 | Ilya Gertner | Data storage system comprising a network of PCs and method using same |
US8225002B2 (en) | 1999-01-22 | 2012-07-17 | Network Disk, Inc. | Data storage and data sharing in a network of heterogeneous computers |
US6725348B1 (en) | 1999-10-13 | 2004-04-20 | International Business Machines Corporation | Data storage device and method for reducing write misses by completing transfer to a dual-port cache before initiating a disk write of the data from the cache |
EP1912124B8 (en) | 1999-10-14 | 2013-01-09 | Bluearc UK Limited | Apparatus and system for implementation of service functions |
US6421742B1 (en) * | 1999-10-29 | 2002-07-16 | Intel Corporation | Method and apparatus for emulating an input/output unit when transferring data over a network |
US6745321B1 (en) * | 1999-11-08 | 2004-06-01 | International Business Machines Corporation | Method and apparatus for harvesting problematic code sections aggravating hardware design flaws in a microprocessor |
CA2381191A1 (en) * | 2000-06-02 | 2001-12-13 | Inrange Technologies Corporation | Enhanced channel adapter |
US6938039B1 (en) | 2000-06-30 | 2005-08-30 | Emc Corporation | Concurrent file across at a target file server during migration of file systems between file servers using a network file system access protocol |
US6823336B1 (en) | 2000-09-26 | 2004-11-23 | Emc Corporation | Data storage system and method for uninterrupted read-only access to a consistent dataset by one host processor concurrent with read-write access by another host processor |
US6571259B1 (en) | 2000-09-26 | 2003-05-27 | Emc Corporation | Preallocation of file system cache blocks in a data storage system |
US6725342B1 (en) * | 2000-09-26 | 2004-04-20 | Intel Corporation | Non-volatile mass storage cache coherency apparatus |
US8019901B2 (en) | 2000-09-29 | 2011-09-13 | Alacritech, Inc. | Intelligent network storage interface system |
US6625591B1 (en) | 2000-09-29 | 2003-09-23 | Emc Corporation | Very efficient in-memory representation of large file system directories |
US6609164B1 (en) * | 2000-10-05 | 2003-08-19 | Emc Corporation | Data storage system having separate data transfer section and message network with data pipe DMA |
US6785767B2 (en) * | 2000-12-26 | 2004-08-31 | Intel Corporation | Hybrid mass storage system and method with two different types of storage medium |
US7054927B2 (en) | 2001-01-29 | 2006-05-30 | Adaptec, Inc. | File system metadata describing server directory information |
US6990547B2 (en) * | 2001-01-29 | 2006-01-24 | Adaptec, Inc. | Replacing file system processors by hot swapping |
US20020161850A1 (en) | 2001-01-29 | 2002-10-31 | Ulrich Thomas R. | Data path accelerator for storage systems |
US6862692B2 (en) | 2001-01-29 | 2005-03-01 | Adaptec, Inc. | Dynamic redistribution of parity groups |
US20020138559A1 (en) * | 2001-01-29 | 2002-09-26 | Ulrich Thomas R. | Dynamically distributed file system |
US6990667B2 (en) | 2001-01-29 | 2006-01-24 | Adaptec, Inc. | Server-independent object positioning for load balancing drives and servers |
US7051332B2 (en) * | 2001-05-21 | 2006-05-23 | Cyberscan Technology, Inc. | Controller having a restart engine configured to initiate a controller restart cycle upon receipt of a timeout signal from a watchdog timer |
US20050097342A1 (en) * | 2001-05-21 | 2005-05-05 | Cyberscan Technology, Inc. | Trusted watchdog method and apparatus for securing program execution |
US7979740B2 (en) * | 2001-05-21 | 2011-07-12 | Mudalla Technology, Inc. | Gaming machine having game play suspension and resumption features using biometrically-based authentication and method of operating same |
US6944717B2 (en) * | 2001-07-27 | 2005-09-13 | Fujitsu Limited | Cache buffer control apparatus and method using counters to determine status of cache buffer memory cells for writing and reading data therefrom |
US7275135B2 (en) * | 2001-08-31 | 2007-09-25 | Intel Corporation | Hardware updated metadata for non-volatile mass storage cache |
US6718405B2 (en) * | 2001-09-20 | 2004-04-06 | Lsi Logic Corporation | Hardware chain pull |
US6996670B2 (en) * | 2001-10-05 | 2006-02-07 | International Business Machines Corporation | Storage area network methods and apparatus with file system extension |
US20030074524A1 (en) * | 2001-10-16 | 2003-04-17 | Intel Corporation | Mass storage caching processes for power reduction |
US20030121835A1 (en) * | 2001-12-31 | 2003-07-03 | Peter Quartararo | Apparatus for and method of sieving biocompatible adsorbent beaded polymers |
US7496689B2 (en) | 2002-04-22 | 2009-02-24 | Alacritech, Inc. | TCP/IP offload device |
US7543087B2 (en) | 2002-04-22 | 2009-06-02 | Alacritech, Inc. | Freeing transmit memory on a network interface device prior to receiving an acknowledgement that transmit data has been received by a remote device |
US7376950B2 (en) * | 2002-05-08 | 2008-05-20 | Intel Corporation | Signal aggregation |
US7546364B2 (en) * | 2002-05-16 | 2009-06-09 | Emc Corporation | Replication of remote copy data for internet protocol (IP) transmission |
US7337241B2 (en) | 2002-09-27 | 2008-02-26 | Alacritech, Inc. | Fast-path apparatus for receiving data corresponding to a TCP connection |
US7191241B2 (en) | 2002-09-27 | 2007-03-13 | Alacritech, Inc. | Fast-path apparatus for receiving data corresponding to a TCP connection |
US20040078508A1 (en) * | 2002-10-02 | 2004-04-22 | Rivard William G. | System and method for high performance data storage and retrieval |
US8041735B1 (en) | 2002-11-01 | 2011-10-18 | Bluearc Uk Limited | Distributed file system and method |
US7457822B1 (en) | 2002-11-01 | 2008-11-25 | Bluearc Uk Limited | Apparatus and method for hardware-based file system |
EP1573550A2 (en) * | 2002-11-07 | 2005-09-14 | Koninklijke Philips Electronics N.V. | Method and device for persistent-memory management |
US7356622B2 (en) * | 2003-05-29 | 2008-04-08 | International Business Machines Corporation | Method and apparatus for managing and formatting metadata in an autonomous operation conducted by a third party |
CA2433254A1 (en) * | 2003-06-25 | 2004-12-25 | Ibm Canada Limited - Ibm Canada Limitee | System and method for warm shutdown and restart of a buffer pool |
US7076598B2 (en) * | 2003-09-09 | 2006-07-11 | Solid State System Co., Ltd. | Pipeline accessing method to a large block memory |
US7555504B2 (en) * | 2003-09-23 | 2009-06-30 | Emc Corporation | Maintenance of a file version set including read-only and read-write snapshot copies of a production file |
US7865485B2 (en) | 2003-09-23 | 2011-01-04 | Emc Corporation | Multi-threaded write interface and methods for increasing the single file read and write throughput of a file server |
JP2005115857A (ja) * | 2003-10-10 | 2005-04-28 | Sony Corp | ファイル記憶装置 |
US7302520B2 (en) * | 2003-12-02 | 2007-11-27 | Spinnaker Networks, Llc | Method and apparatus for data storage using striping |
US7698289B2 (en) * | 2003-12-02 | 2010-04-13 | Netapp, Inc. | Storage system architecture for striping data container content across volumes of a cluster |
US6996070B2 (en) | 2003-12-05 | 2006-02-07 | Alacritech, Inc. | TCP/IP offload device with reduced sequential processing |
US7096297B2 (en) * | 2004-03-19 | 2006-08-22 | International Business Machines Corporation | System and method for delaying an interrupt request until corresponding data is provided to a destination device |
US8352697B2 (en) * | 2004-05-17 | 2013-01-08 | Sandisk Il Ltd. | Method of managing files for optimal performance |
US7177782B2 (en) * | 2004-06-18 | 2007-02-13 | Lenovo (Singapore) Pte. Ltd. | Methods and arrangements for capturing runtime information |
US8248939B1 (en) | 2004-10-08 | 2012-08-21 | Alacritech, Inc. | Transferring control of TCP connections between hierarchy of processing mechanisms |
US7490197B2 (en) | 2004-10-21 | 2009-02-10 | Microsoft Corporation | Using external memory devices to improve system performance |
JP2006252733A (ja) * | 2005-03-14 | 2006-09-21 | Fujitsu Ltd | 媒体記憶装置及び媒体記憶装置のライト系経路診断方法。 |
US7543179B2 (en) * | 2005-03-21 | 2009-06-02 | Intel Corporation | Error management topologies |
US7412619B2 (en) * | 2005-03-21 | 2008-08-12 | Intel Corporation | Integrated circuit capable of error management |
US7904649B2 (en) | 2005-04-29 | 2011-03-08 | Netapp, Inc. | System and method for restriping data across a plurality of volumes |
US7698334B2 (en) * | 2005-04-29 | 2010-04-13 | Netapp, Inc. | System and method for multi-tiered meta-data caching and distribution in a clustered computer environment |
US7245527B2 (en) * | 2005-05-16 | 2007-07-17 | Freescale Semiconductor, Inc. | Nonvolatile memory system using magneto-resistive random access memory (MRAM) |
EP1949214B1 (en) | 2005-10-28 | 2012-12-19 | Network Appliance, Inc. | System and method for optimizing multi-pathing support in a distributed storage system environment |
US7457928B2 (en) * | 2005-10-28 | 2008-11-25 | International Business Machines Corporation | Mirroring system memory in non-volatile random access memory (NVRAM) for fast power on/off cycling |
US7738500B1 (en) | 2005-12-14 | 2010-06-15 | Alacritech, Inc. | TCP timestamp synchronization for network connections that are offloaded to network interface devices |
US8914557B2 (en) | 2005-12-16 | 2014-12-16 | Microsoft Corporation | Optimizing write and wear performance for a memory |
US20070203978A1 (en) * | 2006-02-09 | 2007-08-30 | Mats Ljungqvist | Reduction of I/O-operations in a server at a trading system |
US7418529B2 (en) * | 2006-05-12 | 2008-08-26 | Apple Inc. | Method and apparatus for communicating with an embedded controller which includes a reference to metadata objects within a computing device |
US7580291B2 (en) * | 2006-06-08 | 2009-08-25 | Atmel Corporation | Data register with efficient erase, program verify, and direct bit-line memory access features |
US7620784B2 (en) * | 2006-06-09 | 2009-11-17 | Microsoft Corporation | High speed nonvolatile memory device using parallel writing among a plurality of interfaces |
US7999817B1 (en) | 2006-11-02 | 2011-08-16 | Nvidia Corporation | Buffering unit to support graphics processing operations |
US8139071B1 (en) * | 2006-11-02 | 2012-03-20 | Nvidia Corporation | Buffering unit to support graphics processing operations |
US7921258B1 (en) | 2006-12-14 | 2011-04-05 | Microsoft Corporation | Nonvolatile disk cache for data security |
US8301673B2 (en) | 2006-12-29 | 2012-10-30 | Netapp, Inc. | System and method for performing distributed consistency verification of a clustered file system |
US8489811B1 (en) | 2006-12-29 | 2013-07-16 | Netapp, Inc. | System and method for addressing data containers using data set identifiers |
US8312046B1 (en) | 2007-02-28 | 2012-11-13 | Netapp, Inc. | System and method for enabling a data container to appear in a plurality of locations in a super-namespace |
US7827350B1 (en) | 2007-04-27 | 2010-11-02 | Netapp, Inc. | Method and system for promoting a snapshot in a distributed file system |
US20090006664A1 (en) * | 2007-06-01 | 2009-01-01 | Jagadeesh Sankaran | Linked DMA Transfers in Video CODECS |
US7797489B1 (en) | 2007-06-01 | 2010-09-14 | Netapp, Inc. | System and method for providing space availability notification in a distributed striped volume set |
JP4977554B2 (ja) * | 2007-08-22 | 2012-07-18 | 株式会社日立製作所 | キャッシュメモリ上のデータをバックアップする機能を備えたストレージシステム |
US8495276B2 (en) * | 2007-10-12 | 2013-07-23 | HGST Netherlands B.V. | Power saving optimization for disk drives with external cache |
US8156415B1 (en) * | 2007-12-26 | 2012-04-10 | Marvell International Ltd. | Method and system for command queuing in disk drives |
US7688753B1 (en) * | 2007-12-28 | 2010-03-30 | Emc Corporation | Selection of a data path based on one or more performance characteristics of a computer system |
US7996607B1 (en) | 2008-01-28 | 2011-08-09 | Netapp, Inc. | Distributing lookup operations in a striped storage system |
US8307180B2 (en) | 2008-02-28 | 2012-11-06 | Nokia Corporation | Extended utilization area for a memory device |
US8539513B1 (en) | 2008-04-01 | 2013-09-17 | Alacritech, Inc. | Accelerating data transfer in a virtual computer system with tightly coupled TCP connections |
US8370717B1 (en) | 2008-04-08 | 2013-02-05 | Marvell International Ltd. | Method and apparatus for flexible buffers in an XOR engine |
US20090282194A1 (en) * | 2008-05-07 | 2009-11-12 | Masashi Nagashima | Removable storage accelerator device |
US8190699B2 (en) * | 2008-07-28 | 2012-05-29 | Crossfield Technology LLC | System and method of multi-path data communications |
US8341286B1 (en) | 2008-07-31 | 2012-12-25 | Alacritech, Inc. | TCP offload send optimization |
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 |
US8868831B2 (en) | 2009-09-14 | 2014-10-21 | Oracle International Corporation | Caching data between a database server and a storage system |
US7953774B2 (en) | 2008-09-19 | 2011-05-31 | Microsoft Corporation | Aggregation of write traffic to a data store |
US10430338B2 (en) | 2008-09-19 | 2019-10-01 | Oracle International Corporation | Selectively reading data from cache and primary storage based on whether cache is overloaded |
US9306793B1 (en) | 2008-10-22 | 2016-04-05 | Alacritech, Inc. | TCP offload device that batches session layer headers to reduce interrupts as well as CPU copies |
US9003118B2 (en) * | 2009-01-09 | 2015-04-07 | Dell Products L.P. | Systems and methods for non-volatile cache control |
US8117388B2 (en) * | 2009-04-30 | 2012-02-14 | Netapp, Inc. | Data distribution through capacity leveling in a striped file system |
US8874824B2 (en) | 2009-06-04 | 2014-10-28 | Memory Technologies, LLC | Apparatus and method to share host system RAM with mass storage memory RAM |
US8249099B2 (en) * | 2009-08-27 | 2012-08-21 | Texas Instruments Incorporated | External memory data management with data regrouping and channel look ahead |
US9785561B2 (en) * | 2010-02-17 | 2017-10-10 | International Business Machines Corporation | Integrating a flash cache into large storage systems |
US9146875B1 (en) * | 2010-08-09 | 2015-09-29 | Western Digital Technologies, Inc. | Hybrid drive converting non-volatile semiconductor memory to read only based on life remaining |
US9280477B2 (en) * | 2010-12-13 | 2016-03-08 | Seagate Technology Llc | Data storage management in a memory device |
JP5742542B2 (ja) * | 2011-07-25 | 2015-07-01 | 富士通株式会社 | ストレージ装置及びその負荷状態低減方法 |
US10592416B2 (en) | 2011-09-30 | 2020-03-17 | Oracle International Corporation | Write-back storage cache based on fast persistent memory |
US9417998B2 (en) | 2012-01-26 | 2016-08-16 | Memory Technologies Llc | Apparatus and method to provide cache move with non-volatile mass memory system |
US9311226B2 (en) | 2012-04-20 | 2016-04-12 | Memory Technologies Llc | Managing operational state data of a memory module using host memory in association with state change |
US9063908B2 (en) | 2012-05-31 | 2015-06-23 | Oracle International Corporation | Rapid recovery from loss of storage device cache |
US9164804B2 (en) | 2012-06-20 | 2015-10-20 | Memory Technologies Llc | Virtual memory module |
US9026736B1 (en) | 2012-08-06 | 2015-05-05 | Netapp, Inc. | System and method for maintaining cache coherency |
TWI597606B (zh) * | 2012-08-14 | 2017-09-01 | 緯創資通股份有限公司 | 電腦系統與其儲存裝置管理方法 |
US9274954B1 (en) | 2012-12-18 | 2016-03-01 | Netapp, Inc. | Caching data using multiple cache devices |
US10380021B2 (en) | 2013-03-13 | 2019-08-13 | Oracle International Corporation | Rapid recovery from downtime of mirrored storage device |
US9324128B2 (en) * | 2013-03-14 | 2016-04-26 | Intel Corporation | Techniques for improving rendering efficiency |
US10642837B2 (en) | 2013-03-15 | 2020-05-05 | Oracle International Corporation | Relocating derived cache during data rebalance to maintain application performance |
US9772793B2 (en) | 2013-09-20 | 2017-09-26 | Oracle International Corporation | Data block movement offload to storage systems |
JP2014182855A (ja) * | 2013-03-19 | 2014-09-29 | Toshiba Corp | ディスク記憶装置及びデータ保存方法 |
US9430383B2 (en) | 2013-09-20 | 2016-08-30 | Oracle International Corporation | Fast data initialization |
US9798655B2 (en) | 2013-09-20 | 2017-10-24 | Oracle International Corporation | Managing a cache on storage devices supporting compression |
US10229161B2 (en) | 2013-09-20 | 2019-03-12 | Oracle International Corporation | Automatic caching of scan and random access data in computing systems |
CN103631534B (zh) * | 2013-11-12 | 2017-01-11 | 北京兆芯电子科技有限公司 | 数据存储系统以及其管理方法 |
US9696922B2 (en) * | 2013-12-24 | 2017-07-04 | Hitachi, Ltd. | Storage system |
US9779023B1 (en) * | 2015-06-30 | 2017-10-03 | EMC IP Holding Company LLC | Storing inline-compressed data in segments of contiguous physical blocks |
US20170153994A1 (en) * | 2015-11-30 | 2017-06-01 | Robert J. Royer, Jr. | Mass storage region with ram-disk access and dma access |
US10614038B1 (en) | 2015-12-28 | 2020-04-07 | EMC IP Holding Company LLC | Inline deduplication of compressed data |
US9880743B1 (en) | 2016-03-31 | 2018-01-30 | EMC IP Holding Company LLC | Tracking compressed fragments for efficient free space management |
US10127615B1 (en) | 2016-06-14 | 2018-11-13 | Chicago Stock Exchange, Inc. | System and method for delaying an executable instruction that would otherwise be executable immediately upon arrival at an executing system |
US10303530B1 (en) * | 2016-06-14 | 2019-05-28 | Chicago Stock Exchange, Inc. | System and method for sequentially interleaving undelayed and intentionally delayed executable instructions |
US9985649B1 (en) | 2016-06-29 | 2018-05-29 | EMC IP Holding Company LLC | Combining hardware and software approaches for inline data compression |
US10133667B2 (en) | 2016-09-06 | 2018-11-20 | Orcle International Corporation | Efficient data storage and retrieval using a heterogeneous main memory |
US10331573B2 (en) | 2016-11-04 | 2019-06-25 | Oracle International Corporation | Detection of avoidable cache thrashing for OLTP and DW workloads |
US10761756B1 (en) | 2016-12-28 | 2020-09-01 | EMC IP Holding Company LLC | Compressing data in line using weighted compression budgets |
US10467222B1 (en) | 2016-12-30 | 2019-11-05 | EMC IP Holding Company LLC | Recovering compressed data to reduce data loss |
US10409496B1 (en) | 2017-04-27 | 2019-09-10 | EMC IP Holding Company LLC | Write tagging for selective avoidance of inline compression |
US10803039B2 (en) | 2017-05-26 | 2020-10-13 | Oracle International Corporation | Method for efficient primary key based queries using atomic RDMA reads on cache friendly in-memory hash index |
US11194498B1 (en) | 2017-07-28 | 2021-12-07 | EMC IP Holding Company LLC | Inline compression with small-write compression avoidance |
US10719446B2 (en) | 2017-08-31 | 2020-07-21 | Oracle International Corporation | Directly mapped buffer cache on non-volatile memory |
US10802766B2 (en) | 2017-09-29 | 2020-10-13 | Oracle International Corporation | Database with NVDIMM as persistent storage |
US11086876B2 (en) | 2017-09-29 | 2021-08-10 | Oracle International Corporation | Storing derived summaries on persistent memory of a storage device |
US10732836B2 (en) | 2017-09-29 | 2020-08-04 | Oracle International Corporation | Remote one-sided persistent writes |
US10956335B2 (en) | 2017-09-29 | 2021-03-23 | Oracle International Corporation | Non-volatile cache access using RDMA |
TWI645289B (zh) * | 2017-10-31 | 2018-12-21 | 慧榮科技股份有限公司 | 資料儲存裝置以及非揮發式記憶體操作方法 |
US10698819B2 (en) * | 2017-12-14 | 2020-06-30 | SK Hynix Inc. | Memory system and operating method thereof |
US10725861B2 (en) * | 2018-06-28 | 2020-07-28 | Intel Corporation | Error correction code memory security |
US10877693B2 (en) * | 2018-06-29 | 2020-12-29 | Intel Corporation | Architecture for dynamic transformation of memory configuration |
US10446203B1 (en) | 2018-08-14 | 2019-10-15 | Micron Technology, Inc. | Write cycle execution based on data comparison |
CN109388590B (zh) * | 2018-09-28 | 2021-02-26 | 中国电子科技集团公司第五十二研究所 | 提升多通道dma访问性能的动态缓存块管理方法和装置 |
WO2020077518A1 (zh) * | 2018-10-16 | 2020-04-23 | 华为技术有限公司 | 一种混合存储设备及访问方法 |
US10949346B2 (en) | 2018-11-08 | 2021-03-16 | International Business Machines Corporation | Data flush of a persistent memory cache or buffer |
JP2020086483A (ja) * | 2018-11-15 | 2020-06-04 | 株式会社日立製作所 | 計算機システム及び記憶デバイスの制御方法 |
CN113051199A (zh) * | 2019-12-26 | 2021-06-29 | 阿里巴巴集团控股有限公司 | 数据传输方法及装置 |
US11620246B1 (en) * | 2022-05-24 | 2023-04-04 | Ambiq Micro, Inc. | Enhanced peripheral processing system to optimize power consumption |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3771137A (en) * | 1971-09-10 | 1973-11-06 | Ibm | Memory control in a multipurpose system utilizing a broadcast |
US4075686A (en) * | 1976-12-30 | 1978-02-21 | Honeywell Information Systems Inc. | Input/output cache system including bypass capability |
US4268907A (en) * | 1979-01-22 | 1981-05-19 | Honeywell Information Systems Inc. | Cache unit bypass apparatus |
US4868734A (en) * | 1984-04-30 | 1989-09-19 | Unisys Corp. | Variable rate improvement of disc cache subsystem |
US4500954A (en) * | 1981-10-15 | 1985-02-19 | International Business Machines Corporation | Cache bypass system with post-block transfer directory examinations for updating cache and/or maintaining bypass |
US4476526A (en) * | 1981-11-27 | 1984-10-09 | Storage Technology Corporation | Cache buffered memory subsystem |
US4504902A (en) * | 1982-03-25 | 1985-03-12 | At&T Bell Laboratories | Cache arrangement for direct memory access block transfer |
US4669043A (en) * | 1984-02-17 | 1987-05-26 | Signetics Corporation | Memory access controller |
JPS60235269A (ja) * | 1984-05-08 | 1985-11-21 | Toshiba Corp | デ−タ転送制御装置 |
US4779189A (en) * | 1985-06-28 | 1988-10-18 | International Business Machines Corporation | Peripheral subsystem initialization method and apparatus |
US4763244A (en) * | 1986-01-15 | 1988-08-09 | Motorola, Inc. | Paged memory management unit capable of selectively supporting multiple address spaces |
JPS63172359A (ja) * | 1987-01-12 | 1988-07-16 | Fujitsu Ltd | 直接メモリアクセスシステム |
US4831520A (en) * | 1987-02-24 | 1989-05-16 | Digital Equipment Corporation | Bus interface circuit for digital data processor |
US4972316A (en) * | 1987-03-30 | 1990-11-20 | International Business Machines Corporation | Method of handling disk sector errors in DASD cache |
KR920010185B1 (ko) * | 1987-09-30 | 1992-11-19 | 유니시스 코포레이숀 | 디스크 접근시간을 기초한 명령선택을 갖는 캐쉬/디스크 시스템. |
US4888691A (en) * | 1988-03-09 | 1989-12-19 | Prime Computer, Inc. | Method for disk I/O transfer |
JPH0664838B2 (ja) * | 1988-09-02 | 1994-08-22 | 松下電器産業株式会社 | 光デイスクファイル装置 |
US4905141A (en) * | 1988-10-25 | 1990-02-27 | International Business Machines Corporation | Partitioned cache memory with partition look-aside table (PLAT) for early partition assignment identification |
US4965717A (en) * | 1988-12-09 | 1990-10-23 | Tandem Computers Incorporated | Multiple processor system having shared memory with private-write capability |
US5119485A (en) * | 1989-05-15 | 1992-06-02 | Motorola, Inc. | Method for data bus snooping in a data processing system by selective concurrent read and invalidate cache operation |
US5185694A (en) * | 1989-06-26 | 1993-02-09 | Motorola, Inc. | Data processing system utilizes block move instruction for burst transferring blocks of data entries where width of data blocks varies |
US5163131A (en) * | 1989-09-08 | 1992-11-10 | Auspex Systems, Inc. | Parallel i/o network file server architecture |
US5179702A (en) * | 1989-12-29 | 1993-01-12 | Supercomputer Systems Limited Partnership | System and method for controlling a highly parallel multiprocessor using an anarchy based scheduler for parallel execution thread scheduling |
US5175825A (en) * | 1990-02-02 | 1992-12-29 | Auspex Systems, Inc. | High speed, flexible source/destination data burst direct memory access controller |
US5388243A (en) * | 1990-03-09 | 1995-02-07 | Mti Technology Corporation | Multi-sort mass storage device announcing its active paths without deactivating its ports in a network architecture |
US5206939A (en) * | 1990-09-24 | 1993-04-27 | Emc Corporation | System and method for disk mapping and data retrieval |
US5333294A (en) * | 1990-10-09 | 1994-07-26 | Compaq Computer Corporation | Configurable data width direct memory access device with a read address counter and a write address counter which increments the addresses based on the desired data transfer width |
US5297258A (en) * | 1991-11-21 | 1994-03-22 | Ast Research, Inc. | Data logging for hard disk data storage systems |
US5283884A (en) * | 1991-12-30 | 1994-02-01 | International Business Machines Corporation | CKD channel with predictive track table |
-
1993
- 1993-03-04 CA CA002131627A patent/CA2131627A1/en not_active Abandoned
- 1993-03-04 EP EP93907168A patent/EP0630499A4/en not_active Withdrawn
- 1993-03-04 WO PCT/US1993/001911 patent/WO1993018461A1/en not_active Application Discontinuation
- 1993-03-04 JP JP5515857A patent/JPH07504527A/ja active Pending
- 1993-03-04 AU AU37869/93A patent/AU662973B2/en not_active Ceased
-
1994
- 1994-09-09 KR KR1019940703157A patent/KR950700573A/ko not_active Application Discontinuation
-
1996
- 1996-01-19 US US08/588,203 patent/US5701516A/en not_active Expired - Lifetime
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005078161A (ja) * | 2003-08-28 | 2005-03-24 | Canon Inc | 記録装置 |
US8041904B2 (en) | 2004-05-03 | 2011-10-18 | 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 |
JP2009187552A (ja) * | 2008-02-11 | 2009-08-20 | Nvidia Corp | 電力制御システム及び電力制御方法 |
Also Published As
Publication number | Publication date |
---|---|
AU3786993A (en) | 1993-10-05 |
CA2131627A1 (en) | 1993-09-16 |
US5701516A (en) | 1997-12-23 |
KR950700573A (ko) | 1995-01-16 |
WO1993018461A1 (en) | 1993-09-16 |
EP0630499A4 (en) | 1996-07-24 |
EP0630499A1 (en) | 1994-12-28 |
AU662973B2 (en) | 1995-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH07504527A (ja) | 高性能の不揮発性ram保護式の書き込みキャッシュアクセラレータシステム | |
US6810440B2 (en) | Method and apparatus for automatically transferring I/O blocks between a host system and a host adapter | |
US6105075A (en) | Scatter gather memory system for a hardware accelerated command interpreter engine | |
US7383290B2 (en) | Transaction processing systems and methods utilizing non-disk persistent memory | |
US6230240B1 (en) | Storage management system and auto-RAID transaction manager for coherent memory map across hot plug interface | |
US7373438B1 (en) | System and method for reprioritizing high-latency input/output operations | |
US6542960B1 (en) | System and method for parity caching based on stripe locking in raid data storage | |
JP2675928B2 (ja) | 速度差が大きい協同プロセッサ間のメッセージ・キュー処理 | |
US6799244B2 (en) | Storage control unit with a volatile cache and a non-volatile backup cache for processing read and write requests | |
US6088740A (en) | Command queuing system for a hardware accelerated command interpreter engine | |
US20070162658A1 (en) | Data transfer apparatus, storage device control apparatus and control method using storage device control apparatus | |
US5978856A (en) | System and method for reducing latency in layered device driver architectures | |
EP0207288A2 (en) | Peripheral subsystem initialization method and apparatus | |
US6425053B1 (en) | System and method for zeroing data storage blocks in a raid storage implementation | |
JPH07105126A (ja) | インターフェース・システムおよび方法 | |
JPH1185618A (ja) | 仮想メモリ変換を制御する方法 | |
JP3266470B2 (ja) | 強制順序で行う要求毎ライト・スルー・キャッシュを有するデータ処理システム | |
US5363502A (en) | Hot stand-by method and computer system for implementing hot stand-by method | |
US6513142B1 (en) | System and method for detecting of unchanged parity data | |
US6801954B1 (en) | Method and apparatus to concurrently operate on multiple data movement transactions in a disk array subsystem | |
US8006001B2 (en) | Method and apparatus for manipulating direct memory access transfers | |
US7136972B2 (en) | Apparatus, system, and method for distributed management in a storage system | |
JP3206580B2 (ja) | Dmaデータ転送制御方法及び入出力処理装置 | |
JPS62151970A (ja) | ロツクバイトアクセス方式 | |
JPH07253924A (ja) | 情報処理装置 |