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
Application number
JP5515857A
Other languages
English (en)
Inventor
チェン ユー ピン
ヒッツ ディヴィッド
Original Assignee
オースペックス システムズ インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by オースペックス システムズ インコーポレイテッド filed Critical オースペックス システムズ インコーポレイテッド
Publication of JPH07504527A publication Critical patent/JPH07504527A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/222Non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/312In storage controller

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. 1.データ転送するためにホストコンピュータシステムに接続されたデータ記憶 システムにおいて、 a)複数のデータ記憶装置と、 b)複数のデータ転送チャンネルとを備え、各々の上記データ記憶チャンネルは 、上記データ記憶装置の各1つに接続されへ各々のデータ転送チャンネルは、デ ータバッファと、該データバッファと上記データ記憶装置の上記各1つとの間の データの転送を自律的に制御する手段とを含んでおり、更に、c)データを不揮 発性ランダムアクセス記憶するメモリ手段と、d)データを転送するためのイン ターフェイス手段と、e)上記データ転送チャンネルと、上記メモリ手段と、上 記インターフェイス手段との間に選択的なデータ転送結合を与えるデータ手段と 、f)上記データ手段に接続されて、上記データ転送チャンネルと、上記メモリ 手段と、上記インターフェイス手段との間のデータの転送を指令する制御手段と を備え、上記制御手段は、この制御手段に応答する直接メモリアクセス制御手段 であって、上記インターフェイス手段と上記データバッファとの間、上記インタ ーフェイス手段と上記メモリ手段との間、及び上記メモリ手段と上記データバッ ファとの間でデータをバースト転送するための直接メモリアクセス制御手段を含 むことを特徴とするデータ記憶システム。
  2. 2.上記メモリ手段は、上記データ記憶装置の各1つによって記憶するように向 けられるデータのキャッシュページを記憶し、上記データ記憶システムは、更に 、データの各キャッシュページの状態及び行き先を定める制御データを不揮発性 ランダムアクセス記憶するための制御メモリ手段を備えている請求項1に記載の データ記憶システム。
  3. 3.データのキャッシュページの状態は空き及び使用中を含み、上記制御手段は 、データの転送を上記インターフェイスから所定の第1のキャッシュページへ選 択的に向け、そして上記制御手段は、所定の第2のキャッシュページの状態を定 める制御データを変更する請求項2に記載のデータ記憶システム。
JP5515857A 1992-03-09 1993-03-04 高性能の不揮発性ram保護式の書き込みキャッシュアクセラレータシステム Pending JPH07504527A (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (6)

* Cited by examiner, † Cited by third party
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) 情報処理装置