JPH06208476A - 冗長アレイパリティキャッシングシステム - Google Patents

冗長アレイパリティキャッシングシステム

Info

Publication number
JPH06208476A
JPH06208476A JP5008578A JP857893A JPH06208476A JP H06208476 A JPH06208476 A JP H06208476A JP 5008578 A JP5008578 A JP 5008578A JP 857893 A JP857893 A JP 857893A JP H06208476 A JPH06208476 A JP H06208476A
Authority
JP
Japan
Prior art keywords
block
redundancy
old
data
data block
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
JP5008578A
Other languages
English (en)
Inventor
William T Fuller
ティー フラー ウィリアム
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tandem Computers Inc
Original Assignee
Tandem Computers Inc
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 Tandem Computers Inc filed Critical Tandem Computers Inc
Publication of JPH06208476A publication Critical patent/JPH06208476A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

(57)【要約】 【目的】 冗長記憶アレイシステムのI/O特性を改善
するため、所要記憶ユニットアクセス数を最小限に抑制
し、記憶サブシステム特性を改善する。 【構成】 RRR−パリティキャッシュ5及びRRR−
パリティブロックを判定しRRRパリティキャッシュ5
に対してキャッシュするコントローラ3を有する。RR
R−パリティブロックは、古いデータブロック及びこれ
と同じ冗長度行から読み出された古いパリティブロック
の排他的論理和に等しい。 【効果】 RRR−パリティブロックをキャッシングす
ることにより、書き込みインテンシブ記憶ユニット作用
は最大3I/Oアクセス分低減される。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、コンピュータシステム
におけるデータ記憶、特に冗長記憶アレイシステムの入
出力特性を改善する方法及び装置に関する。
【0002】
【従来の技術】データ処理システムは、一般に、一又は
複数の記憶ユニットを備えている。この記憶ユニット
は、少なくとも一の中央処理装置(CPU)に接続され
る。記憶ユニットの機能は、CPUが特定のデータ処理
タスクを実行する際に用いるデータ及びプログラムを記
憶することである。現在のコンピュータシステムには、
種々のタイプの記憶ユニットが使用されている。典型的
なコンピュータシステムは、一又は複数の大容量テープ
ユニット及び/又はディスクドライブ(磁気、光学又は
半導体)を備えている。
【0003】最近では、極めて信頼性の高いディスクア
レイデータ記憶システムが市販されている。カリフォル
ニア大学バークレーの研究グループは、“A Case for R
edundant Arrays of Inexpensive Disks(RAID)”,Patt
erson et al.,Proc.ACM SIGMOID,1988.6に、“廉価デ
ィスクの冗長アレイ(RAID)”というアーキテクチ
ャとして5つのアーキテクチャを示し、多くの異なるタ
イプのディスクアレイを記載している。
【0004】そのうちRAID1アーキテクチャでは、
「ミラー」データ記憶を構成するよう複数のデータ記憶
ユニットが対で使用され、各データ記憶ユニットの全デ
ータの複製コピーが、対を成す他のデータ記憶ユニット
上に保持される。RAID1アーキテクチャは、特にタ
ンデムコンピュータ社によって数多く製造されている。
【0005】RAID2アーキテクチャでは、データの
各ワードや各ワードに対する誤り検出訂正(EDC)ビ
ットが、各ビット毎にそれぞれ別体のディスクドライブ
に記憶される。例えば米国特許第4,722,085号
(発明者:フローラ他)に開示されているディスクドラ
イブメモリは、複数の比較的小さく独立して動作するデ
ィスクサブシステムを用いて、大規模、大容量で極めて
高いフォールトトレランス及び極めて広いデータ転送帯
域幅を有するディスクドライブを実現している。データ
オーガナイザは、32ビットの各データワードに7ビッ
トのEDCを付加することにより、誤り検出訂正機能を
付与している。EDCとしては、周知のハミングコード
を用いる。この結果得られる39ビットのワードは、3
9個のディスクドライブに各ディスク当たり1ビットず
つ書き込まれる。従って、39個のディスクドライブの
内のいずれかが故障したとしても、残りの38ビットを
用い、さらに各ディスクドライブから順次読み出される
各データワードをワードバイワードベースで用いること
により、元の39ビットを再現できる。これにより、高
いフォールトトレランスを得ることが可能である。
【0006】RAID3アーキテクチャの基本的な発想
は、各ディスクドライブ記憶ユニット内部にフォールト
又はデータエラーを検出する手段を持たせる点にある。
従って、誤りの位置を検出するための付加的な情報を記
憶する必要がない。すなわち、簡易型のパリティベース
誤り訂正を用いることができる。このアークテクチャで
は、故障が生じ得る全ての記憶ユニットの内容の排他的
論理和が求められ、これによりパリティ情報が生成され
る。得られたパリティ情報は、単一の冗長記憶ユニット
に記憶される。もしある記憶ユニットが故障したなら
ば、その記憶ユニット上のデータは、他の記憶ユニット
上のデータと冗長記憶ユニット上のパリティ情報との排
他的論理和を求めることによって再構築できる。必要で
あれば、故障したを新たな記憶ユニットと交換し、再構
築されたデータをその上に記憶させることも可能であ
る。このような構成は、RAID1のようにミラー記憶
のためのディスクを必要とするアーキテクチャより有利
である。すなわち、誤り訂正等のための冗長な記憶ユニ
ットが、N個の記憶ユニット当たり1個で済む。RAI
D3アーキテクチャの他の特徴としては、RAID2と
同様に各ディスクドライブが接続状態で動作することの
他、単一のディスクドライブがパリティユニットとして
使用されることが挙げられる。RAID3アーキテクチ
ャをインプリメントした例としては、マイクロポリス社
パラレルドライブアレイモデル1804SCSIがあ
る。これは、4個のディスクドライブを並列かつ同期さ
せて使用すると共に、冗長パリティドライブ1個使用し
たものである。4個のディスクドライブのいずれかが故
障した場合、パリティディスクドライブ上に記憶された
パリティビットを用いることで対処できる。RAID3
システムの他の例は、Ouchi の米国特許第4,092,
732号に記載されている。
【0007】RAID4アーキテクチャは、RAID3
アーキテクチャと同様のパリティ誤り訂正技術を用いて
いるが、次の各点でより改良されたものである。まず、
各ディスクドライブのアクチュエータの動作を分離する
ことにより小ファイルのランダム読み出し性能を向上さ
せている。また、ブロックストライピングとして知られ
るように、各ディスクにデータを読み出し及び書き込む
際の最小単位(通常はディスクセクタ)をより大きくす
ることができる。RAID4アーキテクチャは、更に、
パリティユニットとして使用される記憶ユニットが1個
である点を特徴としている。
【0008】RAID5アーキテクチャは、パリティ誤
り訂正技術及び独立アクチュエータの点で、RAID4
アーキテクチャと共通する思想に基づいている。ただ
し、使用可能な全ディスクドライブにデータ及びパリテ
ィ情報を分散させることによって、書き込み特性を改善
している。通常、セットを構成するN+1個の記憶ユニ
ット(いわゆる冗長群)は、それぞれ、同じ大きさのア
ドレス領域(ブロック)の集合として扱われる。通常、
各記憶ユニットのブロック数は等しい。冗長群中の各記
憶ユニットは個別にアドレス空間を形成しており、各記
憶ユニットにおいて同じアドレス範囲を占有するブロッ
クの集合はストライプと呼ばれる。従って、各ストライ
プは、N+1個のブロックから構成されている。これら
のうちN個はデータブロック、他の1個はパリティブロ
ックである。パリティブロックは、当該ストライプのパ
リティ情報から構成されている。ストライプが異なる
と、パリティブロックが存在するブロックも異なる。冗
長群中のデータを変形(modify)するたびに実行される
パリティ更新動作は、従って、逐次異なる記憶ユニット
に分散して実行されるため、ある特定の記憶ユニットに
パリティ更新動作が集中することはない。例えば、ある
RAID5システムが5個のディスクドライブから構成
されているとする。このシステムでは、第1ストライプ
のパリティ情報は第5ドライブに、第2ストライプのパ
リティ情報は第4ドライブに、第3ストライプのパリテ
ィ情報は第3ドライブに、それぞれ書き込まれるといっ
た具合に、ストライプの番号とドライブの番号はヘリカ
ルな関係を有している(もちろん、他の関係も可能であ
る)。従って、RAID4のようにあるディスクドライ
ブが全パリティ情報を記憶することはない。RAID5
は、例えばクラーク他の米国特許第4,761,785
号に記載されている。
【0009】
【発明が解決しようとする課題】RAID4と同様に、
RAID5には、データブロックの変形の際にリードモ
ディファイドライトシーケンスが必要である。このシー
ケンスは、少なくとも4個の記憶ユニットに対する入出
力(I/O)アクセス、すなわち2個の読み出し及び2
個の書き込みから構成されている。具体的には、古いパ
リティブロックと古いデータブロックとが読み出され、
両者の排他的論理和が求められ、得られた排他的論理和
と新たなデータブロックとの排他的論理和が求められ
る。これにより得られるパリティブロックと上記新たな
データブロックはその後ディスクドライブへ書き込まれ
る。古いパリティブロックと古いデータブロックに係る
合計2個の読み出し動作は平行して実行でき、同様に、
新たなパリティブロックと新たなデータブロックに係る
合計2個の書き込み動作も平行して実行できる。従っ
て、RAID4又はRAID5におけるデータブロック
の変形には、予備的な読み出し動作が不要である従来の
ディスクでのそれよりも長い時間がかかる。すなわち、
RAID4又はRAID5においてデータブロックの変
形に係る書き込み動作を実行するにためには、読み出し
を実行した後ディスクドライブが回転して前位置に戻る
まで、待たなければならない。この回転待ち時間だけ
で、通常、データ変形動作に必要な時間のほぼ50%を
占める。更に、データ変形動作を継続している間、2個
のディスク記憶ユニットが占有されるため、システム全
体のスループットが制限されてしまう。
【0010】更に、一般には、第5の記憶ユニットに対
するI/Oアクセスも発生する。すなわち、初期的に新
たなデータを生成するには、ほとんどの場合古いデータ
ブロックが読み出され、その後CPUでデータ変形動作
が実行されることにより新たなデータブロックが生成さ
れるが、新たなパリティブロックを演算するためには記
憶ユニットコントローラが古いデータブロックを再度読
み出さなければならない。このような第5のI/Oアク
セスは、CPUで新たなデータブロックを完全に生成
し、かつ新たなデータブロックを古いデータブロックブ
ロック上に重ね書きする場合にのみ、回避されうる。
【0011】このような書き込み特性ペナルティを有す
るにもかかわらず、RAID5は、一般に普及し始めて
いる。それは、冗長度、良好な読み出し特性、優れた書
き込み特性を付与するためのオーバヘッドコストを抑え
つつ、高データ信頼性を実現しているからである。しか
しながら、やはり、冗長アレイデータ記憶サブシステム
の性能を改善できることが望まれている。特に、必要と
なる記憶ユニットアクセス数を最小限に抑制することに
よってRAID5記憶サブシステムの性能を改善するこ
とが、要望されている。
【0012】本発明は、これらの問題を解決するもので
ある。
【0013】
【課題を解決するための手段】本発明は、冗長記憶アレ
イシステムの入出力特性を改善する方法及び装置を提供
するものである。特に、本発明は、冗長記憶アレイシス
テムのコントローラ内に配置された“特殊パリティ”キ
ャッシング手段と、“残存冗長度行パリティ”(RRR
−パリティ)ブロックたる量を求めキャッシングするコ
ントローラ手段と、を備える。RRR−パリティブロッ
クは、ある冗長度行の古いデータ(OD)ブロックと等
しい。このODブロックは、同一の冗長度行から読み出
された古いパリティ(OP)ブロックとの排他的論理和
演算の対象となる。ODブロックには有用なデータが含
まれている必要はなく、冗長度行のパリティブロックを
演算するために使用されるビットパターンを見るための
ものであることに注意せよ。RRR−パリティブロック
をキャッシングすることにより、書き込みインテンシブ
記憶ユニット動作は、最大3入出力(I/O)アクセス
分まで低減可能である。
【0014】本発明においては、ODブロックが読み出
される際、対応するRRR−パリティブロックとの関連
でパリティキャッシング手段がチェックされる。これに
は次の2つの場合がある。
【0015】(1)第1の場合は、キャッシュミスの場
合である。この場合には、読み出されたODブロックに
対応するOPブロックも読み出され、これらに基づきR
RR−パリティブロックが演算及びキャッシングされ
る。この場合、前にアクセスされていないODブロック
を読み出しRRR−パリティを発生するために、合計2
回の記憶ユニットI/Oアクセスが必要である。
【0016】(2)第2の場合は、キャッシュヒットの
場合である。この場合には、所望のODブロックに対応
するRRR−パリティブロックが既にキャッシュされて
いるため、ODブロックの再読み出しのみで足りる。こ
の場合、前にアクセスされたODブロックを読み出すた
めに、合計1回の記憶ユニット入出力アクセスが必要で
ある。
【0017】いずれの場合でも、読み出されたODブロ
ックのCPUへの転送は、キャッシュチェック及び対応
するOPブロックの読み出しと、独立して実行される。
【0018】このような動作によって記憶装置上のデー
タを変形する場合としては、3種類の場合がある。第1
の場合は、ODブロックを変形して新たなデータ(N
D)ブロックを生成する場合である。第2の場合は、O
Dブロックに基づかずにCPUでNDブロックを生成
し、NDブロックをODブロック上に重ね書きする場合
である。第3の場合は、先に書き込まれたデータブロッ
クをCPUで再度変形し、対応する最近書き込まれたデ
ータブロック上に重ね書きする場合である。
【0019】第1の場合には、CPUは記憶ユニットか
らODブロックを読み出し、データを変形してNDブロ
ックを生成する。NDブロックを書き込む際、パリティ
キャッシング手段は、対応するRRR−パリティブロッ
クとの関連でチェックされる。これにはさらに、2種類
の状況がある。
【0020】(1)第1の状況は、キャッシュミスであ
る。この状況では、重ね書きすべきODブロックが、対
応するOPブロックと共に読み出される。さらに、読み
出されたOPブロックとODブロックの排他的論理和が
求められ、これによりRRR−パリティブロックが生成
される。生成されたRRR−パリティブロックは、パリ
ティキャッシュ手段により記憶される。さらに、RRR
−パリティブロックとNDブロックの排他的論理和演算
により、新たなパリティ(NP)ブロックが生成され
る。生成されたNPブロック及びNDブロックは、記憶
ユニットへ書き込まれる。このように、キャッシュミス
があった場合にODブロックに基づくNDブロックを書
き込むために、原読み出し動作に必要な入出力アクセス
数に加え、4回の記憶ユニット入出力アクセスが、必要
となる。
【0021】(2)第2の状況は、キャッシュヒットで
ある。この状況では、すでにある時点において、重ね書
きすべきODブロックが読み出されさらに対応するRR
R−パリティブロックが得られていると見なすことがで
きる。この場合には、ODブロック及びOPブロックを
再び読み出す必要がない。その代わりに、NDブロック
とRRR−パリティブロックの排他的論理和演算が行わ
れ、NPブロックが生成される。NPブロック及びND
ブロックは、記憶ユニットへ書き込まれる。このよう
に、キャッシュヒットがあった場合にODブロックに基
づくNDブロックを書き込むために、合計2回の記憶ユ
ニット入出力アクセスが、必要となる。
【0022】第2の場合には、CPUは、ODブロック
に重ね書きすべきNDブロックを生成させる。CPUは
それ自身でNDブロックを生成するので、ODブロック
を読み出してこれをCPUへ伝送する記憶ユニット入出
力アクセスは必要なくなる。NDブロックを書き込む際
には、対応するRRR−パリティブロックに対してパリ
ティキャッシング手段がチェックされる。この場合、次
の2種類の状況が存在する。
【0023】(1)第1の状況はキャッシュミスであ
る。この状況では、重ね書きすべきODブロックが対応
するOPブロックと共に読み出される。さらに、OPブ
ロックとODブロックの排他的論理和演算によりRRR
−パリティブロックが生成され、パリティキャッシング
手段に記憶される。NPブロックは、RRR−パリティ
ブロックとNDブロックの排他的論理和演算により生成
される。NPブロック及びNDブロックは、記憶ユニッ
トへ書き込まれる。このように、キャッシュミスがある
場合にODブロックに基づかないCPU生成NDブロッ
クを書き込むためには、合計4回の記憶ユニットI/O
アクセスが必要となる。
【0024】(2)第2の状況はキャッシュヒットであ
る。この状況では、重ね書きすべきODブロックは最近
読み出されておりRRR−パリティブロックは既にキャ
ッシュされていると見なすことができる。ODブロック
とOPブロックの再読み出しは必要ない。その代わり、
NDブロックとRRR−パリティブロックの排他的論理
和演算により、NPブロックが生成される。NPブロッ
ク及びNDブロックは記憶ユニットへ書き込まれる。こ
のように、キャッシュヒットが存在する場合にODブロ
ックに基づかないCPU生成NDブロックを初期的に書
き込むために、合計2回の記憶ユニットI/Oアクセス
が、必要となる。
【0025】第3の場合は、先の2つの場合のキャッシ
ュヒット状況の続きである。すなわち、NDブロックが
CPUによって更に変形されることによりND´ブロッ
クが生成されたとき、書き込み動作においてキャッシュ
ヒットが再び発生した時には、対応するRRR−パリテ
ィブロックとND´ブロックの排他的論理和演算により
新たなパリティブロックNP´が生成され、ND´ブロ
ックとNP´ブロックが記憶ユニットに書き込まれる。
このように、最近書き込まれたNDブロックを変形書き
込みするために、合計2回の記憶ユニットI/Oアクセ
スが、必要となる。
【0026】また、本発明は、RRR−パリティブロッ
ク生成動作を、キャッシュミスが存在するODブロック
の読み出し毎には行わないように構成できる。この場
合、代わりに、RRR−パリティブロックを、書き込み
サイクル上のキャッシュミス後にのみ発生させる。これ
により、先に述べた全ての読み出しに対し、冗長度行の
パリティ記憶ユニットへのI/Oアクセスを省略するこ
とができる。
【0027】本発明の好適な実施例の詳細は、添付の図
面及び以下の説明に記載されている。本発明の詳細が認
識できれば、多くの付加的更新や変形は当業者にとって
自明となろう。
【0028】
【実施例】この欄の記載を通じて示される好適な各実施
例は、本発明方法がこれに限定されるものではなく、例
示的なものとして考えるべきである。
【0029】背景的情報 図1は、一般化された従来技術に係るRAIDシステム
のブロック図である。図に示されるように、CPU1
は、入出力(I/O)バス2によりアレイコントローラ
3に接続されている。アレイコントローラ3は、一又は
複数のデバイスバス、例えばSCSIバス4により、複
数の記憶ユニットS〜Sの各々に接続されている。
ただし、図では5個になっているが、これは一例にすぎ
ない。アレイコントローラ3は、CPU1から独立して
記憶ユニットS〜Sを制御するプログラマブルマル
チタスクプロセッサを有するのが好ましい。このような
プロセッサとしては、例えば、MIPS社(カリフォル
ニア州サニーベール)製のMIPS R3000 RI
SCプロセッサ(商品名)を用いることができる。
【0030】記憶ユニットS〜Sは、種々の方法に
て、一又は複数の冗長度群へ分割しグループ分けするこ
とができる。しかし、説明の簡略化のため、以下に述べ
る例では、全記憶ユニットS〜Sを包含する単一の
冗長度群のみを用いる。
【0031】当該技術分野において周知のように、各記
憶ユニットS〜Sは、データ又は冗長度情報を記憶
する複数のブロックを有している。このような冗長記憶
アレイの最も一般的な形態では、冗長度情報は、冗長度
行又はストライプにおける全データブロックの単なる排
他的論理和である。冗長度行又はストライプは、単一尾
冗長度群(ここでは全記憶ユニットS〜S)に亘る
複数のブロックにより構成される。従って、全冗長度情
報が一の記憶ユニット、例えばS5に記憶されるRAI
D4アーキテクチャにおいて、各記憶ユニットS〜S
が200個のブロックB1〜B200を有し、各冗長
度行が1ブロックの深さを有するとすると、ある行nの
冗長度又はパリティのPは、次の式により演算され、S
上に記憶される。
【0032】P=S1n EOR S2n EOR
3n EOR S4n 同様に、記憶ユニットS〜Sのいずれかが故障した
場合に、故障した記憶ユニット上の全データブロック
は、他の記憶ユニット上の対応するデータブロック及び
パリティブロックから演算・再構築できることが周知で
ある。これは、各ブロックの排他的論理和演算により実
現できる。例えば、記憶ユニットSが故障した場合に
は、S上のデータは、次のように、ブロックバイブロ
ックベースで再演算できる。
【0033】SData=P EOR S2n
EOR S3n EOR S4n 好適な実施例の構造 図2は、本発明の好適な実施例のブロック図である。こ
の図が図1と異なる点は、アレイコントローラ3に接続
されたRRR−パリティキャッシュ5を備えている点で
ある。この図では、RRR−パリティキャッシュ5はア
レイコントローラ3と別個の部品として示されている
が、アレイコントローラ3の回路の一部としてもよい。
【0034】一般に、キャッシュは、小容量の高速固体
ランダムアクセスメモリ(RAM)である。通常は、よ
り低速のデータ記憶ユニット、例えばペリフェラルデー
タ記憶ユニット上の情報の一部を記憶する。これによ
り、低速記憶媒体から直接読み出す場合と異なり、必要
な情報を必要なときにキャッシュから高速で得られる。
一般に、プロセッサがペリフェラルデータ記憶ユニット
へ読み出し要求を発すると、まずキャッシュがチェック
され、アドレスされたデータが存在し有効であるかどう
か判定される。この判定が成立する(キャッシュヒッ
ト)と、データはキャッシュからプロセッサへ供給され
る。逆に成立しない場合(キャッシュミス)、データは
ペリフェラルデータ記憶装置から読み出され、プロセッ
サに供給される。加えて、新たに読み出されたデータ
は、今後のアクセスのためにキャッシュ内に記憶され
る。もしキャッシュに十分な空きスペースが存在しない
場合には、新たに読み出されたデータはキャッシュ内の
より古いデータに重ね書きされる。
【0035】本発明においては、RRR−パリティキャ
ッシュ5は、記憶ユニットS1〜S5から読み出された
データをキャッシングするだけのものではない。RRR
−パリティキャッシュ5は、記憶ユニットS1〜S5の
内容から求めた情報をキャッシングするために使用され
る。特に、RRR−パリティキャッシュ5は、残存冗長
度行パリティ(RRR−パリティ)ブロックたる量を記
憶する。ある冗長度行RRR−パリティブロックは、同
じ冗長度行から読み出され現在存在しているデータブロ
ック又は古いパリティ(OP)ブロックと、同じ冗長度
行から読み出され現在存在している又は古いデータ(O
D)ブロックと、の排他的論理和に等しい。すなわち、 RRR−パリティ=OP EOR OD ただし、ODブロックは有用なデータを有している必要
はない。ODブロックは、ある冗長度行のパリティブロ
ックを演算するために使用されたビットパターンを示す
ものである。このように、例えば、記憶ユニットが最初
に初期化されたとき、各データ記憶領域は特殊化された
又はランダムなビットパターンを含むこととなる。各デ
ータブロックの内容にかかわらず、冗長度ブロックは、
冗長度行における全データブロックの実際の(現在の)
内容から演算されなければならない。
【0036】RRR−パリティキャッシュ5は、あるい
は物理的に分離されたキャッシュユニットとして、ある
いはアレイコントローラ3内のメモリの一部として、種
々の方法で実現できる。その際、キャッシュをアドレス
及び制御するための専用ハードウェアや、アレイコント
ローラ3のタスクとして実行されるコンピュータプログ
ラムを用いる。更に、RRR−パリティキャッシュ5に
係るキャッシングアルゴリズムには、キャッシュ内でデ
ータをパージするための周知アルゴリズムのいずれかと
することができる。例えば、“Least Recently Used ”
アルゴリズムによれば、キャッシュ内に記憶されている
情報の使用頻度がトラック毎に保持され、キャッシュが
記憶空間外にあるときに、最も最近に使用された情報が
パージされる。
【0037】好適な実施例では、アレイコントローラ3
がRRR−パリティブロックを演算できかつこのブロッ
クをRRR−パリティキャッシュ5に記憶させることが
できるよう、RRR−パリティキャッシュ5がアレイコ
ントローラ3に接続されている。同様に、アレイコント
ローラ3は、RRR−パリティキャッシュ5内に記憶さ
れるべき対応するRRR−パリティブロックが、先の読
み書きにより得られたか否かを判定すべく、記憶ユニッ
トS1〜S5いずれかの特定のデータブロックに対する
読み出し要求によってアレイコントローラ3がRRR−
パリティキャッシュ5をアドレスする。このような目的
のためにキャッシュをどのようにアクセスしチェックす
るかということは、当業界において周知である。
【0038】RRR−パリティキャッシュ5でキャッシ
ュヒットが発生したかキャッシュミスが発生したかによ
り、アレイコントローラ3は、記憶ユニットS〜S
のI/Oアクセスに関して異なる処理を実行する。
【0039】従来技術の方法 従来技術と本発明との相違をよりよく明確化するため、
図3にRAIDシステムに対する読み出し及び書き込み
の従来技術の方法を示したハイレベルフローチャートを
掲げる。図3における各ステップを、以下に述べる。
【0040】図3に示すように、データブロックを記憶
ユニットS1〜S5に書き込ませる経路は2つある。第
1の経路では、コントローラ3はCPU1からの読み出
しコマンドを受信する(300)。アレイコントローラ
3は、要求されたODブロックのアドレスを発生させ、
一又は複数の記憶ユニットS〜SからODブロック
を読み出し、そしてODブロックをCPU1へ伝送する
(301)。
【0041】CPU1は、ODブロックのデータを、ユ
ーザのアプリケーションプログラムに従って変形する。
ODブロックが変形されると、該ブロックは更新された
又は新たなデータ(ND)ブロックに変換される(30
2)。その後、CPU1はNDブロックをアレイコント
ローラ3に伝送し、記憶ユニットS〜Sへの書き込
みに供する(303)。
【0042】記憶ユニットS〜SのRAID特性を
保持するため、アレイコントローラ3は再び、対応ND
ブロックによって重ね書きされる各ODブロックを読み
出し(304)、同じ冗長度行中の各対応OPブロック
を読み出す(305)。アレイコントローラ3は、その
後、次式で示すように、OPブロック、ODブロック、
及びNDブロックの排他的論理和を求めることにより、
更新された又は新たなパリティ(NP)ブロックを演算
する(306)。
【0043】 NP=OP EOR OD EOR ND 最後に、アレイコントローラ3は、NDブロックを記憶
ユニットS〜S上の適切な位置へ書き込み(30
7)、新たに演算されたNPブロックを、その冗長度行
に係る冗長度情報を有する記憶ユニット上の適切な位置
へ書き込む(308)。
【0044】ODブロック及びOPブロックの読み出し
(304及び305)、そしてNDブロック及びNPブ
ロックの書き込み(307及び308)は、図3ではシ
ーケンシャルに示されているが、これらのステップは周
知の方法で平行して実行される。その理由は、各ブロッ
クは別個の記憶ユニット上にあって該各ユニットは互い
に独立的に機能するからである。もちろん、読み出しは
書き込みより先に行われる。
【0045】CPU1が記憶ユニットS〜Sに記憶
された既存のODブロックから独立してNDブロックを
発生させるとき、動作の他のモードが発生する。例え
ば、CPU1は、バックアップテープ又は他の装置から
伝送されたデータを受信しているか、あるいは記憶ユニ
ットS〜S内に記憶されたデータへ前もってアクセ
スすることを必要としない直接ユーザ入力に基づく情報
を発生している。この結果、動作経路は、上述した各ス
テップとは若干異なることになる。図3にもどって、C
PU1が独立NDブロック(309)を発生させた後、
当該CPU1はNDブロックをアレイコントローラ3に
書き込みのために伝送する(303)。その後の、ND
ブロックによって重ね書きされるODブロックのアクセ
ス、対応するOPブロックのアクセス(305)、NP
ブロックの演算(306)、並びにNDブロック及びN
Pブロックの書き込み(307及び308)の各ステッ
プは同じである。
【0046】図3が示すように、後にCPU1によって
変形されるODブロックの前読み出しの場合、記憶ユニ
ットS〜Sに対する合計5回のI/Oアクセスが、
NDブロックの書き込み及びアレイシステムの冗長度特
性の維持のために必要となる。図3において、I/Oア
クセスは特にシンボル<I/O>によって記されている
ことに留意せよ。ODブロックから独立したNDブロッ
クがCPU1において発生する場合、NDブロックを記
憶しそして記憶ユニットS〜S上に冗長度情報を更
新するために4回のI/Oアクセスが必要となる。
【0047】本発明の第1実施例 図4及び図5は、本発明を用いたRAIDシステムに対
する読み出し及び書き込みの第1方法を示すハイレベル
フローチャートである。図4及び図5に示した各ステッ
プを下に説明する。
【0048】図3に示した従来技術の方法同様にして、
第1動作モードでは、アレイコントローラ3はCPU1
から読み出しコマンドを受信する(400)。アレイコ
ントローラ3は、その後RRR−パリティキャッシュ5
をアドレスして、要求されたデータに対応するRRR−
パリティブロックがキャッシュ1内に含有されているか
どうかを判定する(401)。もしそうでなければ(キ
ャッシュミス)、アレイコントローラ3は要求されたO
Dブロックを関連記憶ユニットS1〜S5から読み出し
CPU1へ伝送する(402)。アレイコントローラ3
は動作を継続し、要求されたODブロックと同じ冗長度
行からOPブロックを読み出す(403)。そしてアレ
イコントローラ3は、式RRR−パリティ=OP
ODを用いてその冗長度行のRRR−パリティブロッ
クを演算し、演算されたRRR−パリティブロックをR
RR−パリティキャッシュ5に記憶させる(キャッシン
グする)(404)。
【0049】一方、もしアレイコントローラ3がマッチ
ングRRR−パリティブロックがRRR−パリティキャ
ッシュ5内にあると判定(キャッシュヒット)(40
1)したならば、アレイコントローラ3は、要求された
ODブロックを読み出してこれを単純にCPU1へ伝送
する(405)。キャッシュヒットの意味は、要求され
たODブロックに対応するRRR−パリティブロックが
すでにキャッシュされているということである。従っ
て、ODブロックのみが再び読み出されればすむ。いず
れの場合においても、ODブロックのCPU1への伝送
は、アレイコントローラ3によってキャッシュチェッキ
ングから独立して実行され、またRRR−パリティブロ
ックを演算するための対応するOPブロックの必要な読
み出しから独立して行われる。本発明の実施において、
402又は405におけるODブロックのCPU1への
読み出し及び伝送動作は、401においてなされた決定
前又は該決定と平行して実行することができる。これ
は、ODブロックを可能なかぎり迅速にCPU1へ伝送
することによって性能が向上されるからである。
【0050】要求されたODブロックがCPU1によっ
て受信された後、CPU1はODブロックを変形してN
Dブロックを生成する(406)。もしNDブロックが
記憶されるのであれば、CPU1はNDブロックをアレ
イコントローラ3へ伝送して記憶ユニットS1〜S5へ
の書き込みに供する(407)。書き込みコマンドに応
答して、アレイコントローラ3は、受信したNDブロッ
クに対応するRRR−パリティブロックをキャッシュが
有しているかどうかを判定すべく、RRR−パリティキ
ャッシュ5をチェックする(408)。すなわち、アレ
イコントローラ3は、RRR−パリティキャッシュ5を
アドレスし、NDブロックが書き込まれる冗長度行デー
タブロック位置が前にアクセスされ、そして対応するR
RR−パリティブロックが演算及びキャッシュされてい
るかどうかを判定する。そうでない場合(キャッシュミ
ス)には、アレイコントローラ3はNDブロックにより
重ね書きされるデータブロックアドレスからODブロッ
クを読み出し(409)、同じ冗長度行から、対応する
OPブロックを読み出す(410)。その後、アレイコ
ントローラ3は、任意の周知のキャッシングアルゴリズ
ムを用いてODブロック及びOPブロックから新たなR
RR−パリティブロックを演算及びキャッシングする
(411)。アレイコントローラ3は、また、NPブロ
ックを、RRR−パリティブロックとNDブロックとの
排他的論理和として(あるいは、これに代えてOPブロ
ックと、ODブロックと、そしてNDブロックと、の排
他的論理和として)演算する(412)。アレイコンピ
ュータ3はその後NDブロック(413)及びNPブロ
ック(414)を記憶ユニットS〜S上の適切な位
置に書き込む。
【0051】もし書き込まれるNDブロックに対応する
RRR−パリティブロックがRRR−パリティキャッシ
ュ5内に見いだされるのであれば(キャッシュヒット)
(408)、アレイコントローラ3はキャッシュされた
RRR−パリティブロック及びNDブロックからNPブ
ロックを演算し(412)、更新動作を完了するために
NDブロック(403)及びNPブロック(414)の
書き込みをする、だけでよい。
【0052】従来技術と同様、CPU1が既存のODブ
ロックから独立してNDブロックを発生する時には別の
経路が存在する(415)。このような各NDブロック
は、CPU1によってアレイコントローラ3へ伝送さ
れ、記憶ユニットS〜Sへ書き込まれる(40
7)。RRR−パリティキャッシュを試験する残存動作
(408)及びこれに従ってつづくスルーステップシー
ケンス409〜412又は412〜414は、上述した
通りである。
【0053】ODブロックの初期読み出し中にキャッシ
ュミスが生じ(401)、またRRR−パリティブロッ
クの発生(404)にもかかわらずこのODブロックに
基づくNDブロックの書き込み中に後段のキャッシュミ
スが発生(408)し得ることに留意されなければなら
ない。これはNDブロックに対する書き込み動作が開始
する前における他のデータブロックへの介入(interven
e )I/Oアクセスにより、RRR−パリティキャッシ
ュ5から対応RRR−パリティブロックをパージできる
からである。
【0054】図4及び図5に示した種々の可能経路にお
けるI/Oアクセスの検査から明らかなように、多くの
場合I/Oアクセス数は、すなわちRead Modified Writ
e 動作に対しては4回のI/Oアクセス、そして初期Re
ad Modified Write 動作に対しては5回のI/Oアクセ
スを必要とする従来技術よりも低い。すべての経路は、
ショートハンド形態で次のように特徴づけられる: (1)キャッシュミス後の初期読み出し及びキャッシュ
ヒット後の書き込み(ステップシーケンス401〜40
4、406〜408、412〜414)… 4回のI/
Oアクセス(従来技術よりも1向上) (2)キャッシュミス後の初期読み出し及びキャッシュ
ミス後の書き込み(ステップシーケンス401〜40
4、406〜414)… 6回のI/Oアクセス(従来
技術よりも1劣化) (3)キャッシュヒット後の初期読み出し及びキャッシ
ュヒット後の書き込み(ステップシーケンス401、4
05〜408、412〜414)… 3回のI/Oアク
セス(従来技術よりも2向上) (4)キャッシュヒット後の初期読み出し及びキャッシ
ュミス後の書き込み(ステップシーケンス401、40
5〜414)… 5回のI/Oアクセス(従来技術と同
じ) (5)初期読み出しなしでのNDブロック発生、そして
キャッシュヒット後の書き込み(ステップシーケンス4
15、407〜408、412〜414)… 2回のI
/Oアクセス(従来技術よりも2向上) (6)初期読み出しなしでのNDブロック発生、そして
キャッシュミス後の書き込み(ステップシーケンス41
5、407〜414)… 4回のI/Oアクセス(従来
技術と同じ) このように、6通りの可能なシーケンスタイプのうち、
3個は従来技術における対応動作よりも少ないI/Oア
クセスを有し、2個は従来技術における対応動作と同じ
数のI/Oアクセスを有し、1個は従来技術における対
応動作よりも多いI/Oアクセスを有している。
【0055】最悪の場合、対応するRRR−パリティブ
ロックをもたないODブロックの読み出しのために2回
のI/Oアクセス(402及び403)が必要とされ、
その後、ODブロックの書き込み動作が発生するより先
に、RRR−パリティキャッシュ5からパージされる。
このようなパージには、ODブロック及びOPブロック
の再読み出しを必要とし(409及び410)、これに
続いて総計6回のI/Oアクセスに対してNDブロック
及びNPブロックの書き込みが行われる(413及び4
14)。
【0056】しかし、もっと普通の場合には、まずOD
ブロック及びOPブロックが読み出され、2回のI/O
アクセスに対してRRR−パリティブロックが演算及び
キャッシュされる(402〜404)。その後、もしO
Dブロックから求めたNDブロックが、RRR−パリテ
ィキャッシュ5からの対応するRRR−パリティブロッ
クのパージが発生する前に書き込まれるならば、NDブ
ロック及びNPブロックは総計4回のI/Oアクセスに
対して2回の付加I/Oアクセスのみで書き込むことが
できる。より重要な場合でも、もしCPU1内の同じデ
ータブロックが再び変更されると、このNDブロック
(ND´)に対する経路が415で開始される。再び、
もしND´ブロックがRRR−パリティキャッシュ5か
らの対応RRR−パリティブロックのパージが発生する
前に書き込まれるならば、ND´ブロック及び付随する
NPブロックは、ND´ブロックの書き込みによる総計
2回のI/Oアクセスに対して2回の付加I/Oアクセ
スのみで書き込むことが可能である。前に書き込まれか
つRRR−パリティキャッシュ5に対応するRRR−パ
リティブロックを有するデータブロックへの付加変更
は、2回のI/Oアクセスのみで完了する。あるタイプ
の処理においては、同じデータブロックに対するこのよ
うな反復変更は頻繁に生じ、このために従来技術と比し
て少ないI/Oアクセス数を要求する処理回数が増大す
る。
【0057】本発明の第2実施例 図6及び図7は、本発明を用いたRAIDシステムに対
する読み出し及び書き込みの第2の方法を示したハイレ
ベルフローチャートである。図6及び図7に示した各ス
テップを、以下に説明する。
【0058】図4及び図5に示した方法と同じように、
第1動作モードでは、アレイコントローラ3はCPU1
から読み出しコマンドを受信する(500)。アレイコ
ントローラ3は要求されたODブロックを速やかに読み
出し、これをCPU1へ伝送する(501)。
【0059】要求されたODブロックがCPU1によっ
て受信された後、CPU1はODブロックを変形してN
Dブロックを生成する(502)。もしNDブロックが
記憶されるのであれば、CPU1はNDブロックを記憶
ユニットS1〜S5への書き込みのためにアレイコント
ローラ3へ伝送する(503)。書き込みコマンドに応
答して、アレイコントローラ3はRRR−パリティキャ
ッシュ5をチェックして、受信されたNDブロックが対
応するRRR−パリティブロックをキャッシュに有して
いるかどうかを判定する(504)。すなわち、アレイ
コントローラ3はRRR−パリティキャッシュ5をアド
レスし、NDブロックが書き込まれる冗長度行データブ
ロック位置が前にアクセスされているかどうか、そして
対応するRRR−パリティブロックが演算及びキャッシ
ュされているかどうかを判定する。もしそうでないので
あれば(キャッシュミス)、アレイコントローラ3はN
Dブロックにより重ね書きされるデータブロックアドレ
スからODブロックを読み出し(505)、同じ冗長度
行から対応OPブロックを読み出す(506)。アレイ
コントローラ3はその後、周知のキャッシングアルゴリ
ズムを用いてODブロック及びOPブロックから新たな
RRR−パリティブロックを演算及びキャッシングする
(507)。アレイコントローラ3はまた、NPブロッ
クを、RRR−パリティブロック及びNDブロックの排
他的論理和として(あるいは、OPブロックと、ODブ
ロックと、NDブロックと、の排他的論理和として)演
算する(508)。そして、アレイコントローラ3は、
記憶ユニットS1〜S5上の適切な位置へNDブロック
及びNPブロックを書き出す(それぞれ509及び51
0)。
【0060】もし書き込まれるNDブロックに対応する
RRR−パリティブロックがRRR−パリティキャッシ
ュ5内に見いだされる(キャッシュヒット)ならば(5
04)、アレイコントローラ3は、キャッシュされたR
RR−パリティブロック及びNDブロックからのNPブ
ロックを演算し(508)、そして更新動作を完了する
ためにNDブロック(509)及びNPブロック(51
0)を書き出すだけですむ。
【0061】上述した第1実施例同様、CPU1が既存
のODブロックから独立してNDブロックを発生する時
に、別の経路が存在する(511)。このようなNDブ
ロックはCPU1によってアレイコントローラ3へ伝送
され、記憶ユニットS1〜S5へ書き込まれる(50
3)。RRR−パリティキャッシュのテストの残存動作
(504)及びこれに従って続くスルーステップシーケ
ンス505〜510又は508ー510は上述した通り
である。
【0062】本発明のこの第2実施例においては、各R
RR−パリティブロックの発生は、キャッシュミスが存
在するODブロックのすべての読み出しのたびに起きる
わけではない。そうではなくて、RRR−パリティブロ
ックは、書き込みサイクルにおけるキャッシュミス後に
のみ発生するものである。これにより、全ての読み出し
に対して冗長度行のパリティ記憶ユニットへのI/Oア
クセスを実行する必要はなくなる。アプリケーションの
中には、I/Oアクセスの全数が本実施例では上記第1
実施例と比べて少なくなるものもある。
【0063】図6及び図7に示した種々の可能経路に係
るI/Oアクセスの試験から明らかなように、I/Oア
クセス数は、多くの場合、Read Modified Write 動作に
対して4回、「初期Read Modified Write 」動作に対し
ては5回である従来技術よりもかなり低い。全ての経路
は、次のようなショートハンド形態で特徴づけられる。
【0064】(1)キャッシュヒット後の初期読み出し
及び書き込み(ステップシーケンス501〜504、5
08〜510)… 3I/Oアクセス(従来技術より2
向上) (2)キャッシュミス後の初期読み出し及び書き込み
(ステップシーケンス501〜510)… 5I/Oア
クセス(従来技術と同じ) (3)初期読み出し、及びキャッシュヒット後の書き込
みなしのNDブロック発生(ステップシーケンス51
1、503〜504、508〜510)… 2I/Oア
クセス(従来技術より2向上) (4)初期読み出し、キャッシュミス後の書き込みなし
のNDブロック発生(ステップシーケンス511、50
3〜510)… 4I/Oアクセス(従来技術と同じ) このように、4個の可能動作シーケンスタイプのうち、
2個が従来技術における対応動作よりもI/Oアクセス
が少なく、2個が従来技術における対応動作と同じI/
Oアクセス数を有する。
【0065】まとめ 本発明は、冗長記憶アレイシステムのI/O特性を改善
するための方法及び装置を提供するものである。特に、
本発明は、冗長記憶アレイシステムに対する特殊RRR
−パリティキャッシュと、RRR−パリティブロックを
決定及びキャッシングするための手段と、を備えてい
る。本発明は、多数のブロックが読み出され、その後に
これらのブロックの一部に対して書き込み動作が行われ
る上記の表により示されたものよりもI/Oアクセス動
作を大きく節約することができる。RRR−パリティブ
ロックをキャッシングすることにより、書き込みインテ
ンシブ記憶ユニット動作は、従来技術に比して最大3回
のI/Oアクセス分低減させることができる。
【0066】本発明の多くの実施例を記載してきた。し
かしながら、種々の変更が本発明の技術思想及び範囲か
ら逸脱することなく実施可能であることが理解される。
たとえば、本発明はRAID3、RAID4、又はRA
ID5システムでも使用可能である。さらに、排他的論
理和により発生したパリティに加えて又は該パリティに
代えて、エラー補正方法を必要な冗長度情報に対して用
いることができる。米国特許出願番号第270,713
号(発明の名称 「アレイ型ディスクドライブシステム
及び方法」; 出願日 1988年11月14日; 本
発明の被譲渡人へ譲渡済み)には、Reed-Solomon符号が
開示されている。この文献に記載されている構造及び方
法によれば、排他的及びReed-Solomon(又は他のシステ
ム)冗長度双方が使用されるならば、本発明は2個の記
憶ユニットの損失を収納することができる。さらに、図
4乃至図7には特定のステップシーケンスが示されてい
るが、他の等価シーケンスが同じ機能を達成することが
可能とする。たとえば、図4及び図5においては、OD
ブロックを読み出すステップ(402又は405)は、
対応するRRR−パリティブロックに対してRRR−パ
リティキャッシュ5のチェッキングに先立つ。従って、
本発明は図示した特定の実施例に限定されるものではな
く、添付の特許請求の範囲によってのみ限定されるもの
であることが理解されなければならない。
【図面の簡単な説明】
【図1】一般化された従来技術RAIDシステムのブロ
ック図である。
【図2】 本発明に係るパリティキャッシングアレイコ
ントローラのブロック図である。
【図3】 RAIDシステムに対する読み出し書き込み
の従来技術方法を示すハイレベルフローチャートであ
る。
【図4】 本発明を用いたRAIDシステムに対する第
1読み出し及び書き込み動作を示すハイレベルフローチ
ャートである。
【図5】 本発明を用いたRAIDシステムに対する第
1読み出し及び書き込み動作を示すハイレベルフローチ
ャートである。
【図6】 本発明を用いたRAIDシステムに対する読
み出し及び書き込み動作の第2の方法を示すハイレベル
フローチャートである。
【図7】 本発明を用いたRAIDシステムに対する読
み出し及び書き込み動作の第2の方法を示すハイレベル
フローチャートである。
【符号の説明】 1 CPU 2 I/Oバス 3 アレイコントローラ 4 デバイスバス 5 RRR−パリティキャッシュ S1〜S5 記憶ユニット

Claims (28)

    【特許請求の範囲】
  1. 【請求項1】 データ及び冗長度情報をブロック形態で
    記憶する複数の故障独立型データ記憶ユニットと、 上記複数のデータ記憶ユニットに係る残存冗長度行パリ
    ティブロックのキャッシングを受け一時的に記憶するキ
    ャッシング手段と、 上記複数のデータ記憶ユニット及びキャッシング手段に
    接続された記憶ユニットコントローラ手段と、 を備え、 記憶ユニットコントローラ手段が、 上記複数のデータ記憶ユニットからのデータブロック及
    び冗長度ブロックの読み出し並びに上記複数のデータ記
    憶ユニットへのデータブロック及び冗長度ブロックの書
    き込みを制御し、 上記複数のデータ記憶ユニットに係る残存冗長度行パリ
    ティブロックを演算し、 演算された残存冗長度行パリティブロックをキャッシン
    グ手段にキャッシングすることを特徴とする冗長記憶ア
    レイシステム。
  2. 【請求項2】 請求項1記載のシステムにおいて、記憶
    ユニットコントローラ手段が、あるデータブロックに対
    応する残存冗長度行パリティブロックがキャッシング手
    段に記憶されているか否かを判定することを特徴とする
    冗長記憶アレイシステム。
  3. 【請求項3】 請求項1記載のシステムにおいて、少な
    くとも一のデータ記憶ユニットから読み出されたデータ
    ブロックと、このデータブロックに対応しかつ少なくと
    も一のデータ記憶ユニットから読み出された冗長度ブロ
    ックと、の排他的論理和演算により、各残存冗長度行パ
    リティブロックが演算されることを特徴とする冗長記憶
    アレイシステム。
  4. 【請求項4】 データ及び冗長度情報をブロック形態で
    記憶する複数の故障独立型データ記憶ユニットと、 上記複数のデータ記憶ユニットに係る残存冗長度行パリ
    ティブロックのキャッシングを受け一時的に記憶するキ
    ャッシング手段と、 上記複数のデータ記憶ユニット及びキャッシング手段に
    接続された記憶ユニットコントローラ手段と、 を備え、 記憶ユニットコントローラ手段が、 プロセッサから受信する少なくとも一のコマンドに応じ
    て少なくとも一のデータ記憶ユニットから古いデータブ
    ロックを読み取り、 キャッシング手段と通信することにより上記古いデータ
    ブロックに対応する残存冗長度行パリティブロックが当
    該キャッシング手段に記憶されているかどうかを判定
    し、記憶されていない場合には、少なくとも一のデータ
    記憶ユニットから上記古いデータブロックに対応する古
    い冗長度ブロックを読み出し、上記古いデータブロック
    及び上記古い冗長度ブロックから残存冗長度行パリティ
    ブロックを演算し、演算した残存冗長度行パリティブロ
    ックをキャッシング手段にキャッシングすることを特徴
    とする冗長記憶アレイシステム。
  5. 【請求項5】 請求項4記載のシステムにおいて、上記
    古いデータブロックと上記古い冗長度ブロックとの排他
    的論理和演算により、残存冗長度行パリティブロックが
    演算されることを特徴とする冗長記憶アレイシステム。
  6. 【請求項6】 データ及び冗長度情報をブロック形態で
    記憶する複数の故障独立型データ記憶ユニットと、 上記複数のデータ記憶ユニットに係る残存冗長度行パリ
    ティブロックのキャッシングを受け一時的に記憶するキ
    ャッシング手段と、 上記複数のデータ記憶ユニット及びキャッシング手段に
    接続され制御手段を含む記憶ユニットコントローラと、 を備え、 制御手段が、 プロセッサから新たなデータブロックを受信し、 キャッシング手段と通信することにより、上記新たなデ
    ータブロックに対応しかつキャッシング手段に記憶され
    ている残存冗長度行パリティブロックを再生し、キャッ
    シング手段に当該残存冗長度行パリティブロックがキャ
    ッシング手段に記憶されていない場合には、少なくとも
    一のデータ記憶ユニットから上記新たなデータブロック
    に対応する古いデータブロックを読み出し、少なくとも
    一のデータ記憶ユニットから上記新たなデータブロック
    に対応する古い冗長度ブロックを読み出し、上記古いデ
    ータブロック及び上記古い冗長度ブロックから、上記新
    たなデータブロックに対応する残存冗長度行パリティブ
    ロックを演算し、演算された残存冗長度行パリティブロ
    ックをキャッシング手段にキャッシングし、 上記新たなデータブロック及びこれに対応する上記残存
    冗長度行パリティブロックから新たに冗長度ブロックを
    生成し、 生成した新たな冗長度ブロックを少なくとも一のデータ
    記憶ユニットに書き込み、 上記新たなデータブロックを上記古いデータブロック上
    に重ね書きすることにより、 データブロックをモディファイすることを特徴とする冗
    長記憶アレイシステム。
  7. 【請求項7】 請求項6記載のシステムにおいて、上記
    古いデータブロックと上記古い冗長度ブロックとの排他
    的論理和演算により、上記残存冗長度行パリティブロッ
    クが演算されることを特徴とする冗長記憶アレイシステ
    ム。
  8. 【請求項8】 請求項6記載のシステムにおいて、上記
    古いデータブロック、上記古い冗長度ブロック及び上記
    新たなデータブロックの排他的論理和演算により、上記
    新たな冗長度ブロックが演算されることを特徴とする冗
    長記憶アレイシステム。
  9. 【請求項9】 データ及び冗長度情報をブロック形態で
    記憶する複数の故障独立型データ記憶ユニットと、 上記複数のデータ記憶ユニットに係る残存冗長度行パリ
    ティブロックのキャッシングを受け一時的に記憶するキ
    ャッシング手段と、 上記複数のデータ記憶ユニット及びキャッシング手段に
    接続され制御手段を含む記憶ユニットコントローラと、 を備え、 制御手段が、 プロセッサから少なくとも一のコマンドを受信して少な
    くとも一のデータ記憶ユニットから第1の古いデータブ
    ロックを読み出し、 キャッシング手段と通信することにより第1の古いデー
    タブロックに対応する第1の残存冗長度行パリティブロ
    ックがキャッシング手段に記憶されているか否かを判定
    し、記憶されていない場合には、少なくとも一のデータ
    記憶ユニットから第1の古いデータブロックに対応する
    第1の古い冗長度ブロックを読み出し、第1の古いデー
    タブロック及び第1の古い冗長度ブロックから第1の残
    存冗長度行パリティブロックを演算し、演算された第1
    の残存冗長度行パリティブロックをキャッシング手段に
    キャッシングし、 第1の古いデータブロックをプロセッサに送信し、 プロセッサから新たなデータブロックを受信し、 キャッシング手段と通信することにより上記新たなデー
    タブロックに対応しかかつキャッシング手段に記憶され
    ている第2の残存冗長度行パリティブロックを再生し、
    第2の残存冗長度行パリティブロックがキャッシング手
    段に記憶されていない場合には、少なくとも一のデータ
    記憶ユニットから上記新たなデータブロックに対応する
    第2の古いデータブロックを読み出し、少なくとも一の
    データ記憶ユニットから上記新たなデータブロックに対
    応する第2の古い冗長度ブロックを読み出し、第2の古
    いデータブロック及び第2の古い冗長度ブロックから第
    2の残存冗長度行パリティブロックを演算し、演算され
    た第2の残存冗長度行パリティブロックをキャッシング
    手段にキャッシングし、 上記新たなデータブロック及び上記第2の残存冗長度行
    パリティブロックから新たな冗長度ブロックを生成し、 少なくとも一のデータ記憶ユニットに上記新たな冗長度
    ブロックを書き込み、 上記新たなデータブロックを第2の古いデータブロック
    上に重ね書きすることにより、 データブロックをモディファイすることを特徴とする冗
    長記憶アレイシステム。
  10. 【請求項10】 請求項9記載のシステムにおいて、第
    1又は第2の古いデータブロックとこれに対応する第1
    又は第2の古い冗長度ブロックとの排他的論理和演算に
    より、第1又は第2の残存冗長度行パリティブロックが
    それぞれ演算されることを特徴とする冗長記憶アレイシ
    ステム。
  11. 【請求項11】 請求項9記載のシステムにおいて、第
    2の古いデータブロック、第2の古い冗長度ブロック及
    び上記新たなデータブロックの排他的論理和演算によ
    り、上記新たな冗長度ブロックが生成されることを特徴
    とする冗長記憶アレイシステム。
  12. 【請求項12】 データ及び冗長度情報をブロック形態
    で記憶する複数の故障独立型データ記憶ユニットと、 上記複数のデータ記憶ユニットに係る残存冗長度行パリ
    ティブロックのキャッシングを受け一時的に記憶するキ
    ャッシング手段と、 上記複数のデータ記憶ユニット及びキャッシング手段に
    接続され制御手段を含む記憶ユニットコントローラと、 を備え、 プロセッサから少なくとも一のコマンドを受信して少な
    くとも一のデータ記憶ユニットから第1の古いデータブ
    ロックを読み出し、 第1の古いデータブロックをプロセッサに送信し、 プロセッサから新たなデータブロックを受信し、 キャッシング手段と通信することにより上記新たなデー
    タブロックに対応しかつキャッシング手段に記憶されて
    いる残存冗長度行パリティブロックを再生し、この残存
    冗長度行パリティブロックがキャッシング手段に記憶さ
    れていない場合には、少なくとも一のデータ記憶ユニッ
    トから上記新たなデータブロックに対応する第2の古い
    データブロックを読み出し、少なくとも一のデータ記憶
    ユニットから上記新たなデータブロックに対応する古い
    冗長度ブロックを読み出し、第2の古いデータブロック
    及び上記古い冗長度ブロックから上記新たなデータブロ
    ックに対応する残存冗長度行パリティブロックを演算
    し、演算された残存冗長度行パリティブロックをキャッ
    シング手段にキャッシングし、 上記新たなデータブロック及び上記残存冗長度行パリテ
    ィブロックから上記新たなデータブロックに対応する新
    たな冗長度ブロックを生成し、 少なくとも一のデータ記憶ユニットに上記新たな冗長度
    ブロックを書き込み、 上記新たなデータブロックを上記第2の古いデータブロ
    ック上に重ね書きすることにより、 データブロックをモディファイすることを特徴とする冗
    長記憶アレイシステム。
  13. 【請求項13】 請求項12記載のシステムにおいて、
    第2の古いデータブロックと上記古い冗長度ブロックと
    の排他的論理和演算により、上記残存冗長度行パリティ
    ブロックが演算されることを特徴とする冗長記憶アレイ
    システム。
  14. 【請求項14】 請求項12記載のシステムにおいて、
    第2の古いデータブロック、上記古い冗長度ブロック及
    び上記新たなデータブロックの排他的論理和演算によ
    り、上記新たな冗長度ブロックが生成されることを特徴
    とする冗長記憶アレイシステム。
  15. 【請求項15】 コントローラと、コントローラに接続
    されたキャッシュメモリと、コントローラに接続されデ
    ータ及び冗長度情報をブロック形態で記憶する複数の故
    障独立型データ記憶ユニットと、を含む冗長記憶アレイ
    システムにおいて、 上記複数のデータ記憶ユニットに係る残存冗長度行パリ
    ティブロックをキャッシングするステップを有すること
    を特徴とする入出力特性改善方法。
  16. 【請求項16】 請求項15記載の方法において、ある
    データブロックに対応する残存冗長度行パリティブロッ
    クがキャッシュメモリに記憶されているか否かを判定す
    るステップを有することを特徴とする入出力特性改善方
    法。
  17. 【請求項17】 請求項15記載の方法において、少な
    くとも一のデータ記憶ユニットから読み出されたデータ
    ブロックと、このデータブロックに対応しかつ少なくと
    も一のデータ記憶ユニットから読み出された冗長度ブロ
    ックと、の排他的論理和演算により、各残存冗長度行パ
    リティブロックが演算されることを特徴とする入出力特
    性改善方法。
  18. 【請求項18】 コントローラと、コントローラに接続
    されたキャッシュメモリと、コントローラに接続されデ
    ータ及び冗長度情報をブロック形態で記憶する複数の故
    障独立型データ記憶ユニットと、を含む冗長記憶アレイ
    システムにおいて、 少なくとも一のコマンドをプロセッサから受信するステ
    ップと、 受信したコマンドに応じて少なくとも一のデータ記憶ユ
    ニットから古いデータブロックを読み出すステップと、 上記古いデータブロックに対応する残存冗長度行パリテ
    ィブロックがキャッシュメモリに記憶されているか否か
    を判定し、記憶されていない場合には、少なくとも一の
    データ記憶ユニットから上記古いデータブロックに対応
    する古い冗長度ブロックを読み出し、上記古いデータブ
    ロック及び上記古い冗長度ブロックから残存冗長度行パ
    リティブロックを演算し、演算された残存冗長度行パリ
    ティブロックをキャッシュメモリにキャッシングするス
    テップと、 を有することを特徴とする入出力特性改善方法。
  19. 【請求項19】 請求項18記載の方法において、上記
    古いデータブロックと上記古い冗長度ブロックとの排他
    的論理和演算により上記残存冗長度行パリティブロック
    が演算されることを特徴とする入出力特性改善方法。
  20. 【請求項20】 コントローラと、コントローラに接続
    されたキャッシュメモリと、コントローラに接続されデ
    ータ及び冗長度情報をブロック形態で記憶する複数の故
    障独立型データ記憶ユニットと、を含む冗長記憶アレイ
    システムにおいて、 プロセッサから新たなデータブロックを受信するステッ
    プと、 上記新たなデータブロックに対応しかつキャッシュメモ
    リに記憶されている残存冗長度行パリティブロックを再
    生し、記憶されていない場合には、少なくとも一のデー
    タ記憶ユニットから上記新たなデータブロックに対応す
    る古いデータブロックを読み出し、少なくとも一のデー
    タ記憶ユニットから上記新たなデータに対応する古い冗
    長度ブロックを読み出し、上記古いデータブロック及び
    上記古い冗長度ブロックから上記新たなデータブロック
    に対応する残存冗長度行パリティブロックを演算し、演
    算された残存冗長度行パリティブロックをキャッシュメ
    モリにキャッシングするステップと、 上記新たなデータブロック及び上記残存冗長度行パリテ
    ィブロックから新たな冗長度ブロックを生成するステッ
    プと、 少なくとも一のデータ記憶ユニットに上記新たな冗長度
    ブロックを書き込むステップと、 上記古いデータブロック上に上記新たなデータブロック
    を重ね書きするステップと、 を有することを特徴とする入出力特性改善方法。
  21. 【請求項21】 請求項20記載の方法において、上記
    古いデータブロックと上記古い冗長度ブロックとの排他
    的論理和演算により、上記残存冗長度行パリティブロッ
    クが演算されることを特徴とする入出力特性改善方法。
  22. 【請求項22】 請求項20記載の方法において、上記
    古いデータブロック、上記古い冗長度ブロック及び上記
    新たなデータブロックの排他的論理和演算により、上記
    新たな冗長度ブロックが生成されることを特徴とする入
    出力特性改善方法。
  23. 【請求項23】 コントローラと、コントローラに接続
    されたキャッシュメモリと、コントローラに接続されデ
    ータ及び冗長度情報をブロック形態で記憶する複数の故
    障独立型データ記憶ユニットと、を含む冗長記憶アレイ
    システムにおいて、 少なくとも一のコマンドをプロセッサから受信するステ
    ップと、 このコマンドに応じて少なくとも一のデータ記憶ユニッ
    トから第1の古いデータブロックを読み出すステップ
    と、 第1の古いデータブロックに対応する第1の残存冗長度
    行パリティブロックがキャッシュメモリに記憶されてい
    るか否かを判定し、記憶されていない場合には、少なく
    とも一のデータ記憶ユニットから第1の古いデータブロ
    ックに対応する第1の古い冗長度ブロックを読み出し、
    第1の古いデータブロック及び第1の古い冗長度ブロッ
    クから第1の残存冗長度行パリティブロックを演算し、
    演算された第1の残存冗長度行パリティブロックをキャ
    ッシュメモリにキャッシングするステップと、 第1の古いデータブロックをプロセッサに送信するステ
    ップと、 プロセッサから新たなデータブロックを受信するステッ
    プと、 上記新たなデータブロックに対応する第2の残存冗長度
    行パリティブロックをキャッシュメモリから再生し、キ
    ャッシュメモリに第2の残存冗長度行パリティブロック
    が記憶されていない場合には、少なくとも一のデータ記
    憶ユニットから第2の古いデータブロックを読み出し、
    少なくとも一のデータ記憶ユニットから第2の古い冗長
    度ブロックを読み出し、第2の古いデータブロック及び
    第2の古い冗長度ブロックから第2の残存冗長度行パリ
    ティブロックを演算し、演算された第2の残存冗長度行
    パリティブロックをキャッシュメモリにキャッシングす
    るステップと、 上記新たなデータブロック及び第2の残存冗長度行パリ
    ティブロックから新たな冗長度ブロックを生成するステ
    ップと、 少なくとも一のデータ記憶ユニットに上記新たな冗長度
    ブロックを書き込むステップと、 第2の古いデータブロック上に上記新たなデータブロッ
    クを重ね書きするステップと、 を有することを特徴とする入出力特性改善方法。
  24. 【請求項24】 請求項23記載の方法において、第1
    又は第2の古いデータブロックとこれに対応する第1又
    は第2の古い冗長度ブロックとの排他的論理和演算によ
    り、第1又は第2の残存冗長度行パリティブロックがそ
    れぞれ演算されることを特徴とする入出力特性改善方
    法。
  25. 【請求項25】 請求項23記載の方法において、第2
    の古いデータブロック、第2の古い冗長度ブロック及び
    上記新たなデータブロックの排他的論理和演算により、
    上記新たな冗長度ブロックが生成されることを特徴とす
    る入出力特性改善方法。
  26. 【請求項26】 コントローラと、コントローラに接続
    されたキャッシュメモリと、コントローラに接続されデ
    ータ及び冗長度情報をブロック形態で記憶する複数の故
    障独立型データ記憶ユニットと、を含む冗長記憶アレイ
    システムにおいて、 少なくとも一のコマンドをプロセッサから受信するステ
    ップと、 このコマンドに応じて少なくとも一のデータ記憶ユニッ
    トから第1の古いデータブロックを読み出すステップ
    と、 第1の古いデータブロックをプロセッサへ伝送するステ
    ップと、 プロセッサから新たなデータブロックを受信するステッ
    プと、 上記新たなデータブロックに対応しかつキャッシュメモ
    リに記憶されている残存冗長度行パリティブロックを再
    生し、記憶されていない場合には、少なくとも一のデー
    タ記憶ユニットから上記新たなデータブロックに対応す
    る第2の古いデータブロックを読み出し、少なくとも一
    のデータ記憶ユニットから上記新たなデータブロックに
    対応する古い冗長度ブロックを読み出し、第2の古いデ
    ータブロック及び古い冗長度ブロックから上記新たなデ
    ータブロックに対応する残存冗長度行パリティブロック
    を演算し、演算された残存冗長度行パリティブロックを
    キャッシュメモリにキャッシングするステップと、 上記新たなデータブロック及び上記残存冗長度行パリテ
    ィブロックから新たな冗長度ブロックを生成するステッ
    プと、 少なくとも一のデータ記憶ユニットに上記新たな冗長度
    ブロックを書き込むステップと、 上記第2の古いデータブロック上に上記新たなデータブ
    ロックを重ね書きするステップと、 を有することを特徴とする入出力特性改善方法。
  27. 【請求項27】 請求項26記載の方法において、第2
    の古いデータブロックと古い冗長度ブロックの排他的論
    理和演算により、上記残存冗長度行パリティブロックが
    演算されることを特徴とする入出力特性改善方法。
  28. 【請求項28】 請求項26記載の方法において、第2
    の古いデータブロック、古い冗長度ブロック及び上記新
    たなデータブロックの排他的論理和演算により、上記新
    たな冗長度ブロックが生成されることを特徴とする入出
    力特性改善方法。
JP5008578A 1992-01-21 1993-01-21 冗長アレイパリティキャッシングシステム Pending JPH06208476A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US823141 1992-01-21
US07/823,141 US5341381A (en) 1992-01-21 1992-01-21 Redundant array parity caching system

Publications (1)

Publication Number Publication Date
JPH06208476A true JPH06208476A (ja) 1994-07-26

Family

ID=25237912

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5008578A Pending JPH06208476A (ja) 1992-01-21 1993-01-21 冗長アレイパリティキャッシングシステム

Country Status (3)

Country Link
US (1) US5341381A (ja)
EP (1) EP0556945A3 (ja)
JP (1) JPH06208476A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006309640A (ja) * 2005-05-02 2006-11-09 Hitachi Ltd 記憶制御システム及び記憶制御方法

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5274799A (en) * 1991-01-04 1993-12-28 Array Technology Corporation Storage device array architecture with copyback cache
US5708668A (en) * 1992-05-06 1998-01-13 International Business Machines Corporation Method and apparatus for operating an array of storage devices
WO1993023803A1 (fr) * 1992-05-21 1993-11-25 Fujitsu Limited Appareil de commande pour pile de disques
US5636356A (en) * 1992-09-09 1997-06-03 Hitachi, Ltd. Disk array with original data stored in one disk drive and duplexed data distributed and stored in different disk drives
US5450415A (en) * 1992-11-25 1995-09-12 Matsushita Electric Industrial Co., Ltd. Boundary scan cell circuit and boundary scan test circuit
GB2273798A (en) * 1992-12-22 1994-06-29 Ibm Cache system for disk array.
JPH06332623A (ja) * 1993-05-24 1994-12-02 Mitsubishi Electric Corp アレイ型記録装置及び記録装置
JP3181001B2 (ja) * 1993-06-01 2001-07-03 インターナショナル・ビジネス・マシーンズ・コーポレ−ション キャッシュ・メモリ・システム並びにキャッシュ・メモリ・アクセス方法及びシステム
JP3119978B2 (ja) * 1993-09-22 2000-12-25 株式会社東芝 ファイル記憶装置及びそのファイル管理方法
US5572660A (en) * 1993-10-27 1996-11-05 Dell Usa, L.P. System and method for selective write-back caching within a disk array subsystem
JPH07134635A (ja) * 1993-11-10 1995-05-23 Nec Eng Ltd ディスクアレイ装置
US5530948A (en) * 1993-12-30 1996-06-25 International Business Machines Corporation System and method for command queuing on raid levels 4 and 5 parity drives
JPH07210335A (ja) * 1993-12-30 1995-08-11 Internatl Business Mach Corp <Ibm> データを読出し、書込み、及び変更する方法及び記憶装置
US5522032A (en) * 1994-05-05 1996-05-28 International Business Machines Corporation Raid level 5 with free blocks parity cache
JP3687111B2 (ja) * 1994-08-18 2005-08-24 株式会社日立製作所 記憶装置システムおよび記憶装置の制御方法
US5590320A (en) * 1994-09-14 1996-12-31 Smart Storage, Inc. Computer file directory system
US5412668A (en) * 1994-09-22 1995-05-02 International Business Machines Corporation Parity striping feature for optical disks
EP0707267A3 (en) * 1994-10-12 1996-07-03 Ibm Redundant arrangement of disk drives with asymmetrical mirroring and data processing methods for asymmetrical mirroring
US5497457A (en) * 1994-10-17 1996-03-05 International Business Machines Corporation Redundant arrays of independent libraries of dismountable media with parity logging
US5748885A (en) * 1994-12-23 1998-05-05 Emc Corporation Method and apparatus for reduction of I/O operations in persistent storage system
US5640506A (en) * 1995-02-15 1997-06-17 Mti Technology Corporation Integrity protection for parity calculation for raid parity cache
US5574882A (en) * 1995-03-03 1996-11-12 International Business Machines Corporation System and method for identifying inconsistent parity in an array of storage
US6532547B1 (en) 1995-06-16 2003-03-11 Emc Corporation Redundant peripheral device subsystem
US5860090A (en) * 1995-10-20 1999-01-12 Informix Software, Inc. Append-only storage in a disk array using striping and parity caching
US5862158A (en) * 1995-11-08 1999-01-19 International Business Machines Corporation Efficient method for providing fault tolerance against double device failures in multiple device systems
US5913927A (en) * 1995-12-15 1999-06-22 Mylex Corporation Method and apparatus for management of faulty data in a raid system
US5838892A (en) * 1995-12-29 1998-11-17 Emc Corporation Method and apparatus for calculating an error detecting code block in a disk drive controller
KR100208801B1 (ko) 1996-09-16 1999-07-15 윤종용 데이타 입/출력 성능을 향상시키기 위한 기억장치 시스템 및 그에 따른 데이타 복구정보 캐시구현방법
US6567889B1 (en) 1997-12-19 2003-05-20 Lsi Logic Corporation Apparatus and method to provide virtual solid state disk in cache memory in a storage controller
JPH11203056A (ja) 1998-01-19 1999-07-30 Fujitsu Ltd 入出力制御装置及びアレイディスク装置
US6173415B1 (en) 1998-05-22 2001-01-09 International Business Machines Corporation System for scalable distributed data structure having scalable availability
US6122754A (en) * 1998-05-22 2000-09-19 International Business Machines Corporation Method and system for data recovery using a distributed and scalable data structure
US6119244A (en) 1998-08-25 2000-09-12 Network Appliance, Inc. Coordinating persistent status information with multiple file servers
US6343984B1 (en) 1998-11-30 2002-02-05 Network Appliance, Inc. Laminar flow duct cooling system
US6769088B1 (en) * 1999-06-30 2004-07-27 Maxtor Corporation Sector-coding technique for reduced read-after-write operations
US6952797B1 (en) 2000-10-25 2005-10-04 Andy Kahn Block-appended checksums
US6766491B2 (en) 2001-05-09 2004-07-20 Dot Hill Systems Corp. Parity mirroring between controllers in an active-active controller pair
US7024586B2 (en) * 2002-06-24 2006-04-04 Network Appliance, Inc. Using file system information in raid data reconstruction and migration
US7478390B2 (en) * 2003-09-25 2009-01-13 International Business Machines Corporation Task queue management of virtual devices using a plurality of processors
US7496917B2 (en) * 2003-09-25 2009-02-24 International Business Machines Corporation Virtual devices using a pluarlity of processors
US7549145B2 (en) * 2003-09-25 2009-06-16 International Business Machines Corporation Processor dedicated code handling in a multi-processor environment
US7370163B2 (en) * 2004-05-03 2008-05-06 Gemini Storage Adaptive cache engine for storage area network including systems and methods related thereto
US7457980B2 (en) * 2004-08-13 2008-11-25 Ken Qing Yang Data replication method over a limited bandwidth network by mirroring parities
US20060036904A1 (en) * 2004-08-13 2006-02-16 Gemini Storage Data replication method over a limited bandwidth network by mirroring parities
US20060075281A1 (en) * 2004-09-27 2006-04-06 Kimmel Jeffrey S Use of application-level context information to detect corrupted data in a storage system
WO2007035863A2 (en) 2005-09-21 2007-03-29 Intermec Ip Corp. Radio frequency identification tags based on coalition formation
US8120461B2 (en) 2006-04-03 2012-02-21 Intermec Ip Corp. Automatic data collection device, method and article
US8002173B2 (en) 2006-07-11 2011-08-23 Intermec Ip Corp. Automatic data collection device, method and article
US7730347B1 (en) 2007-01-03 2010-06-01 Board Of Governors For Higher Education, State Of Rhode Island And Providence Plantations Data recovery system and method including a disk array architecture that provides recovery of data to any point of time
US8239706B1 (en) 2007-01-03 2012-08-07 Board Of Governors For Higher Education, State Of Rhode Island And Providence Plantations Data retrieval system and method that provides retrieval of data to any point in time
US7546955B2 (en) * 2007-03-16 2009-06-16 Intermec Ip Corp. Systems, devices, and methods for reading machine-readable characters and human-readable characters
US8370715B2 (en) * 2007-04-12 2013-02-05 International Business Machines Corporation Error checking addressable blocks in storage
KR100981064B1 (ko) 2009-02-18 2010-09-09 한국과학기술원 저널링 파일 시스템을 이용한 소프트웨어 레이드에서의 일관성 유지방법
US9329799B2 (en) * 2014-03-04 2016-05-03 Netapp, Inc. Background checking for lost writes and data corruption

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1447973A (en) * 1972-11-13 1976-09-02 Crosfield Electronics Ltd Image reproduction method and apparatus
US4092732A (en) * 1977-05-31 1978-05-30 International Business Machines Corporation System for recovering data stored in failed memory unit
US4467421A (en) * 1979-10-18 1984-08-21 Storage Technology Corporation Virtual storage system and method
US4562576A (en) * 1982-08-14 1985-12-31 International Computers Limited Data storage apparatus
FR2561428B1 (fr) * 1984-03-16 1986-09-12 Bull Sa Procede d'enregistrement dans une memoire a disques et systeme de memoire a disques
US4667326A (en) * 1984-12-20 1987-05-19 Advanced Micro Devices, Inc. Method and apparatus for error detection and correction in systems comprising floppy and/or hard disk drives
US4754397A (en) * 1985-02-15 1988-06-28 Tandem Computers Incorporated Fault tolerant modular subsystems for computers
JPS61264599A (ja) * 1985-05-16 1986-11-22 Fujitsu Ltd 半導体記憶装置
US4722085A (en) * 1986-02-03 1988-01-26 Unisys Corp. High capacity disk storage system having unusually high fault tolerance level and bandpass
US4761785B1 (en) * 1986-06-12 1996-03-12 Ibm Parity spreading to enhance storage access
US4775978A (en) * 1987-01-12 1988-10-04 Magnetic Peripherals Inc. Data error correction system
US4849978A (en) * 1987-07-02 1989-07-18 International Business Machines Corporation Memory unit backup using checksum
US4870643A (en) * 1987-11-06 1989-09-26 Micropolis Corporation Parallel drive array storage system
US4899342A (en) * 1988-02-01 1990-02-06 Thinking Machines Corporation Method and apparatus for operating multi-unit array of memories
US4993030A (en) * 1988-04-22 1991-02-12 Amdahl Corporation File system for a plurality of storage classes
US4989206A (en) * 1988-06-28 1991-01-29 Storage Technology Corporation Disk drive memory
US4914656A (en) * 1988-06-28 1990-04-03 Storage Technology Corporation Disk drive memory
US5134619A (en) * 1990-04-06 1992-07-28 Sf2 Corporation Failure-tolerant mass storage system
US5088081A (en) * 1990-03-28 1992-02-11 Prime Computer, Inc. Method and apparatus for improved disk access
US5130992A (en) * 1990-04-16 1992-07-14 International Business Machines Corporaiton File-based redundant parity protection in a parallel computing system
US5124987A (en) * 1990-04-16 1992-06-23 Storage Technology Corporation Logical track write scheduling system for a parallel disk drive array data storage subsystem
JPH0731582B2 (ja) * 1990-06-21 1995-04-10 インターナショナル・ビジネス・マシーンズ・コーポレイション パリティ保護データを回復するための方法および装置
US5265098A (en) * 1990-08-03 1993-11-23 International Business Machines Corporation Method and means for managing DASD array accesses when operating in degraded mode
US5208813A (en) * 1990-10-23 1993-05-04 Array Technology Corporation On-line reconstruction of a failed redundant array system
US5271012A (en) * 1991-02-11 1993-12-14 International Business Machines Corporation Method and means for encoding and rebuilding data contents of up to two unavailable DASDs in an array of DASDs
US5257391A (en) * 1991-08-16 1993-10-26 Ncr Corporation Disk controller having host interface and bus switches for selecting buffer and drive busses respectively based on configuration control signals

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006309640A (ja) * 2005-05-02 2006-11-09 Hitachi Ltd 記憶制御システム及び記憶制御方法
JP4648751B2 (ja) * 2005-05-02 2011-03-09 株式会社日立製作所 記憶制御システム及び記憶制御方法

Also Published As

Publication number Publication date
EP0556945A2 (en) 1993-08-25
US5341381A (en) 1994-08-23
EP0556945A3 (en) 1995-03-22

Similar Documents

Publication Publication Date Title
JPH06208476A (ja) 冗長アレイパリティキャッシングシステム
US5617530A (en) Storage device array architecture with copyback cache
US5488701A (en) In log sparing for log structured arrays
KR100255847B1 (ko) 레이드 제어기에서의 스트라이프 기록 방법
EP0482819B1 (en) On-line reconstruction of a failed redundant array system
US5504858A (en) Method and apparatus for preserving data integrity in a multiple disk raid organized storage system
JP3304115B2 (ja) 構成可能な冗長アレイ記憶装置
US5398253A (en) Storage unit generation of redundancy information in a redundant storage array system
JP3177242B2 (ja) データ記憶装置における書込みオペレーション識別子の不揮発性メモリ記憶
US6289471B1 (en) Storage device array architecture with solid-state redundancy unit
US5566316A (en) Method and apparatus for hierarchical management of data storage elements in an array storage device
US7861035B2 (en) Method of improving input and output performance of raid system using matrix stripe cache
US7464322B2 (en) System and method for detecting write errors in a storage device
US6832291B2 (en) Memory system for improving data input/output performance and method of caching data recovery information
US6766491B2 (en) Parity mirroring between controllers in an active-active controller pair
US7234024B1 (en) Application-assisted recovery from data corruption in parity RAID storage using successive re-reads
US5875460A (en) Disk array subsystem and data generation method therefor
EP0948770B1 (en) Error detection device and method
US5659677A (en) Data storage apparatus for disk array
JP2857289B2 (ja) ディスクアレイ装置
JPH04264910A (ja) コンピュータ外部記憶装置のデータ更新方法
JPH05313833A (ja) アレイ型ディスク駆動機構システム
WO1996041249A2 (en) Intelligent disk-cache memory