JPH0812614B2 - データ・ブロックを訂正する装置 - Google Patents

データ・ブロックを訂正する装置

Info

Publication number
JPH0812614B2
JPH0812614B2 JP4198326A JP19832692A JPH0812614B2 JP H0812614 B2 JPH0812614 B2 JP H0812614B2 JP 4198326 A JP4198326 A JP 4198326A JP 19832692 A JP19832692 A JP 19832692A JP H0812614 B2 JPH0812614 B2 JP H0812614B2
Authority
JP
Japan
Prior art keywords
data
dasds
dasd
block
blocks
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.)
Expired - Lifetime
Application number
JP4198326A
Other languages
English (en)
Other versions
JPH05197579A (ja
Inventor
ミゲール・マリオ・ブラウム
ノーマン・ケン・アウチ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH05197579A publication Critical patent/JPH05197579A/ja
Publication of JPH0812614B2 publication Critical patent/JPH0812614B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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

Landscapes

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

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、N+2個のDASD配
列内の2個までの使用不可能なDASDに記憶されたデ
ータ列の部分の多項式コード化訂正方法及び装置に関す
る。
【0002】
【従来技術】DASD配列へのストライピング及びパリ
ティ符号化の記録及びモデュロ2加算による単一DAS
D不良からの回復 オオウチの米国特許第4,092,732号は、セグメ
ント化されブロック・インターリーブされたパリティ領
域のコーディングと、データ及び記憶境界が同一の拡が
りを持つDASDの配列の対応するものへの書き込みを
開示し、特許請求した最初のものであった。この特徴
は、後に米国特許第4,775,978号に再び記載さ
れた。
【0003】このような外部記憶システムでは、ブロッ
クの訂正は、故障したDASDの識別を必要とする。こ
れは、ハミング・コードで行なうことができる。しかし
ながら、このようなコードは通常、ブロック・インター
リーブされたDASD配列よりも、むしろビットで用い
るものであり、パターソンその他著「低価格ディスクの
冗長配列(RAID)の場合」(報告番号第UCB/C
SD87/391,1987年12月,コンピュータサ
イエンス学科,カルフォルニア大学バークレイ校)に報
告されているように、冗長性専用のDASDの数は、全
体のかなりの部分を占めることになる。
【0004】対照的に、オオウチに記載されているブロ
ック・インターリーブ及び簡素なパリティ・コーディン
グは、ほぼ無限のパリティ領域またはストライピング幅
を許容し、1つの冗長DASDのみを伴えばよいもので
ある。しかしながら、任意の故障したDASDの識別
は、スレショルドECC再試行又はその同等物等によっ
て独立に得なければならない。ダンフィその他の米国特
許第4,914,656号も参照すべきである。
【0005】B−隣接コード ワトキンソン著「デジタル記録のためのコーディング」
(フォーカルプレス・オブ・バターウオース・サイエン
ティフィック出版、1990年著作権登録)の第119
−130頁には、2つの未知数を有する2つのブール方
程式(シンドロームS(0)、S(1))を生じるデジ
タル・オーディオ記録におけるバースト誤りの訂正のた
めのB−隣接コードが記載されている。2つの冗長バイ
トR(0)、R(1)についても記載がある。R(0)
は、データ列全体に渡ってXORを包含し、一方、R
(1)は、前記データ列全体に渡る有限フィールド多項
式処理から結果的に得られるものである。
【0006】シンドロームは、R(0)とR(1)とを
含むB−隣接コード・パリティ・チェック・マトリクス
Hによって定義され、1つ以上のブロックを読むときに
決定されるモデュロ2加算である。有利なことに、いず
れかのシンドロームによって占められる2つまでの誤り
のブロックは、非ゼロの指示を与える。シンドロームを
処理することによって、これらのブロックは訂正され
る。即ち、訂正されたブロックは、検出されたシンドロ
ームの容易に計算可能な関数となる。
【0007】B−隣接コーディングは、米国特許第3,
745,528号により最初に開示され、特許請求され
たものである。
【0008】データ可用性、冗長性及びホット・スペア
リング DASDの不良からの最も早い回復は、第2の記録領域
上に記憶された完全な複製データ即ち鏡像データの組に
電子的に切り変えることである。明らかに、これは記憶
用のコストを倍増させる。オオウチやダンフィが記載し
ているように、DASD配列は、ある配列において1つ
のDASDが不良となる確率は高いが、一方、DASD
の不良が同時に起こる確率は低いということを前提とし
ている。更に、単一の不良を有していたシステムを耐故
障状態に戻すには、ホット・スペアリング(hot s
paring)が用いられる。
【0009】ダンフィが定義しているように、ホット・
スペアリングは、1つ以上のDASDを確保し、ある領
域内のDASDが故障した後、その領域を予備と置き換
え、そうしなければ使用不可能なブロックをその予備上
に再構築することを含む。DASDの不良と予備DAS
D上へのデータの再構築の完了とによって定義される時
間間隔以内にDASDの不良がネスト(nest)され
ないのであれば、データが使用できない平均時間は、実
際は非常に長いものとなる。更に、オオウチ及びダンフ
ィによる単一DASD訂正+スペアリングは、アイドル
状態の、即ち冗長なDASDの数を最少に保つものであ
る。
【0010】2個までのDASD不良に対する配列デー
タの再構築 ブラウムその他の米国特許第5、271、012号(1
991年2月11日出願)は、2個までのDASDが故
障したとき、(M−1)*Mビットのデータ配列をコー
ディングし、M個の同期DASD配列上に再構築する方
法を教示している(Mは素数)。単一パリティの対は、
トポロジカル・トーラスを包含する、対角線方向のメイ
ジャ(major)及び交差する行メイジャの順のデー
タ配列方向に反復的にコード化される。2個以上のDA
SDが使用不可能になったときにデータを再構築するに
は、対角線が逆向きに傾斜したコーディング・ステップ
を反復し、再構築した配列を書き込むことを必要とす
る。
【0011】データ誤り及び消去 「データ誤り」は、ランダム・ノイズ又はバースト・プ
ロセスの結果としての記憶された値の変化を意味するも
のである。11100100のような二進値を記憶する
システムにおいては、残留磁気状態が変化して、いくつ
かの1が0になり、またいくつかの0が1になるような
ことがある。この二進値は、11000101のように
なることもある。ここでは、左から3番目と8番目の位
置がランダム・エラーである。バースト源による一連の
誤りは、11111110のようになることがある。最
初の連続した7つの位置は上書きされたものであり、3
−7の位置が実際に誤り状態である。
【0012】「消去」とは、記憶位置においていずれか
のデータ値を除去することである。例えば、データ列1
xxxx100は位置2−5の全ての二進値を省略した
ものである。
【0013】
【発明が解決しようとする課題】本発明の目的は、デー
タ誤り、消去及びDASDの不良がある場合のDASD
配列の可用性を向上させる方法及び手段を創造すること
である。
【0014】本発明の関連する目的は、単一パリティ・
コードではなく、多項式生成されたコードを用いて、N
+2個のDASD配列における2個までの使用不可能な
DASDの消去を含む、データ内容の符号化及び再構築
のための方法及び手段を創造することである。
【0015】本発明の更に他の関連する目的は、N+2
個の配列における2個以上のDASDのいずれかのサブ
グループからのソフト誤りを呈するブロックを動的且つ
同時に訂正するために、前記方法及び手段が誤りのブロ
ックを高速に処理することである。
【0016】
【課題を解決するための手段】これらのそして他の目的
は、DASD配列内の2個までの使用不可能なDASD
上に記憶されているデータ列bの部分をB−隣接コーデ
ィングを用いて訂正する方法及び手段によって充足され
る。この方法のステップは、(a)故障したDASDの
独立した識別、及び(b)残りのDASD上の同じデー
タ列のブロックから得られた1対のシンドロームの形成
及び解を含む。シンドローム対(S(0)、S(1))
は、2つの未知数の2つの独立したブール方程式からな
る。
【0017】各データ列bは、N個のデータブロック+
2個の冗長ブロックにセグメント化され、N+2個の対
応するDASDに書き込まれる。冗長ブロック(R
(0)、R(1))は、データ列にわたって計算され
る。第1の冗長ブロックR(0)は、N個のデータブロ
ックの排他的オアであり、第2の冗長ブロックR(1)
は下降累乗(declining power)された
有限フィールド(ガロア体)での基本要素(a(N-i)
とN個の他のブロックのモジュロ2のデータ値(b
(i))との積のモジュロ2加算である。R(0)とR
(1)は、各セグメント化されたデータ列に付加されて
おり、
【数6】 のように表される。b(i)とb(j)が使用不可能な
ブロックである場合、それらを再生する最初のステップ
は、シンドロームS(0)とS(1)とを評価すること
である。このために、b(i)とb(j)とはシンドロ
ーム計算のためのデフォルト値として0に等しく設定さ
れる。また、シンドロームの決定用に、符号化用と同じ
回路が用いられる。シンドロームは陽に
【数7】 のように与えられる。シンドロームS(0)とS(1)
との関数としての使用不可能なブロックb(i)及びb
(j)は
【数8】 のようになる。
【0018】ブロックb(i)及び冗長ブロックR
(0)が使用不可能であれば、シンドロームS(1)の
関数としてのb(i)は
【数9】 b(i)=a(i+1)*S(l) 最後に、ブロックb(i)及び冗長ブロックR(1)が
使用不可能であれば、シンドロームS(0)の関数とし
てのb(i)は
【数10】 b(i)=S(0) のように与えられる。
【0019】本発明の方法及び手段における誤り訂正の
パイプライン処理は、ハードの誤りのみならずソフトの
誤りの検出及び訂正を容易にするものであることが発見
された。即ち、高速な処理は、ブロックのソフトの誤り
の動的な訂正を可能にし、そのような訂正を任意の2個
までの使用不可能なDASDからのブロックの静的再構
築に限定しない。この点において、速度は、予め記憶さ
れた情報と反復的計算構造との利用に由来する。これら
は、エラーのブロックを定義するブール方程式の項の重
複処理を可能とするものである。
【0020】更に詳細には、パイプライン処理の実施例
においては、パス(path)を設け、有限算術フィー
ルドのプリミティブ(primitive)の多項式項
の各々に対する予め記憶されたブール値のマトリクス表
示を用いて、各シンドロームからの誤りのブロックb
(i)及びb(j)を訂正するようにしている。パイプ
ラインのパスは、2つの未知数の2つの線形ブール方程
式b(i)及びb(j)を解くために第1のマトリクス
乗算、第1の加算、第2の乗算、及び第2の加算を含ん
でいる。
【0021】
【実施例】まず最初に、RAID3型のDASD配列に
おけるデータの流れを簡単に説明する。このDASD配
列では、各データ列がセグメント化即ちストライプさ
れ、冗長符号化がデータ列を交差して行われ、ブロック
は、アドレスされたパリティ領域内の対応するDASD
に書き込まれる。実際のトラックに書き込む前に、DA
SDによってECCブロックが付加される。この後、D
ASDの不良及び「ホット・スペアリング」の議論が続
く。
【0022】2個までの使用不可能なDASDのデータ
内容の静的訂正、および各データ列内の2個までのエラ
ーブロックの動的訂正は代数的コード操作に関係するの
で、生成多項式を例に、二進有限フィールドのサブフィ
ールド拡張におけるプリミティブの累乗の形成について
述べる。これに続いて、DASD配列に書き込んだ、又
はそこから読み出されたデータ列のセグメント化された
ブロックに適用するB−隣接コーディングの誤り訂正の
態様において用いられる冗長式の部分的導出を説明す
る。
【0023】次に、冗長性及び誤り訂正に関係する累乗
係数に対する予め記憶された配列値を用いる本発明に係
るデータ列及びその冗長ブロックのパイプライン処理が
記述される。これに続いて、具体例が説明される。
【0024】DASD配列の読み出し及び書き込み動作
の概要 まず、図1を参照すると、インテリジェントなパリティ
発生・ストライピング・バッファ(PSB)7に、並列
パス11、13、15、17を介して結合されている第
1及び第2のDASDパリティ群を含む配列が示されて
いる。CPU1及びCPU2から形成されたプロセッサ
配列がデータ・制御バス9に結合されている。
【0025】プロセッサ1又は3が発した読み出し及び
書き込みコマンドは、標準のアクセシング・プロトコル
及びバス9と共有メモリ5を介してのPSB7へのデー
タ移動によって、DASDのパリティ群へのテーブル管
理されたアクセス・パス(table directe
d access path)を確立する。論理ファイ
ルの論理処理はPSB7で実行される。これに関して、
論理処理は、ストライピング(データの直列/並列変
換)とパリティ発生の両方及びチェックを含む。DAS
Dへ及びそこからのパスはテーブルで管理されている。
原則として、読み出し及び書き込みの独立変数において
特定されたアドレスは、配列記憶アドレス・テーブルを
介してPSB7によって、PSB7と必要なパリティ群
のDASD上の位置との間の実際の物理的パスに変換さ
れる。
【0026】書き込みコマンドを実行するために、PS
B7は、最初にプロセッサからの新しいデータをバッフ
ァし、ストライプされた即ちインターリーブされたブロ
ックの要素が書き込まれるDASDパリティ群からのN
バイトのデータ列を読み取ってバッファし、B−隣接コ
ード、古いデータ、古い冗長バイト及び新しいデータと
関連のある冗長バイトを反復的に再計算し、修正された
データ列を再びDASDパリティ群に書き込まなければ
ならない。
【0027】読み出し動作に対しては、PSB7は、プ
ロセッサからの読み出しコマンドに応答して、書き込み
動作とは逆の動作を連続的に行なう。即ち、読み出すべ
きデータを抽出しなくてはならないデータ列をPSB7
にバッファし、適切な冗長バイトを試験し、更に、アド
レスされたデータをバス9を介して共有メモリ5に転送
する。
【0028】DASDの不良とホット・スペアリング アクセス中のデータの読み出しの間にDASDの不良が
発生した場合、PSB7は多数の代替物から1つを選択
することができる。これらは、本発明の方法による、
(1)読み出しコマンドの再試行又は(2)残りのDA
SDからのデータの再構築のいずれかによる不良データ
のオンザフライ(on−the−fly)再発生を含
む。
【0029】読み出しコマンドを発するプロセッサ1ま
たは3に関して、1つの戦略は、読み出したデータの移
動の完了後にのみ、不良の発生をプロセッサに通知する
ことである。これにより、パークその他の方法で、各パ
リティ群専用に確保されたDASDから、即ちプール
(pool)からの予備DASDによる代用をプロセッ
サが制御できる。DISABLE、RECONSTRU
CTのようなプロセッサ・コマンドに応答して、PBS
7は、故障したDASDのテーブル・ディレクトリ・パ
ス(table directory path)を予
備DASDへのディレクトリ・パスの代わりに用いるテ
ーブルによって、故障したDASDを指定の予備DAS
Dと置換させることができる。次に、故障したDASD
上のデータを、指定した予備DASDに再構築すること
ができる。
【0030】一実施例では、PSB7は、DASDの可
用性のビット・マップ及びDASDのアドレス・マップ
を記憶している。そこで、可用性マップ及びアドレス・
マップは、各アクセス・コマンドの処理中に参照され
る。マップの変更は、DISABLE及びRECONS
TRUCTコマンドを用いて、プロセッサから発するこ
とができる。このような実施では、永久アドレスが予備
DASDに割り当てられる。不良の通知後、プロセッサ
1または3はDASDのマップをアドレスすることがで
きる。可用性マップ及びアドレス・マップは、各アクセ
ス・コマンドの処理中に参照される。マップの変更は、
DISABLE及びRECONSTRUCTIONコマ
ンドを用いて、プロセッサによって発せられる。この実
施では、永久アドレスが予備DASDに割り当てられ
る。不良の通知後、プロセッサは、 (1)なにもしないことを選択する;又は (2)予備DASDのアドレスを、2個までの故障した
DASDアドレスと交換させるコマンドを発生する;及
び (3)以下に説明する再構成方法にしたがって、パリテ
ィと残りのデータDASDとを足したもののモジュロ2
加算によって、2個までの故障したDASDの内容を、
割り当てられた予備DASD上に再構成することができ
る。
【0031】尚、予備のフォーマットされたDASDを
他のDASDとオンラインで動的に代用することを「ホ
ット・スペアリング」と名付ける。
【0032】有限多項式フィールドの構成 q進のシンボル(q=2B)に対するエラー訂正コード
を用いてB−隣接二進シンボルのクラスタの訂正ができ
ることは、よく知られている。概して、B−隣接コード
は、冗長ブロックの1つに対する各データ列にわたる二
進の基礎有限フィールドの高次拡張フィールドのサブフ
ィールド、及びその他の冗長ブロックに対する列にわた
る排他的オア(モジュロ2加算)の要素を用いることに
よって発生される。
【0033】例示のために、DASD配列に書き込まれ
る又はそこから読み出される各データ列は、3ビットの
バイト/セグメントのN個のセグメントに分割できるも
のとする。23即ち8項の{GF(23)=GF(8)}
のガロア即ち有限フィールドを、1+x+x3の形の生
成多項式を用いて構成する。このような処理は、プリミ
ティブ・エレメント(primitive eleme
nt)「a」の累乗として、長さ3の二進ベクトルの書
き込みを可能とする。モジュロ2の算術は、フィールド
にわたって加算及び乗算を支配する。
【0034】したがって、ベクトル110は
【数11】 として表される。より詳細には、p(x)=1+x+x
3=0のプリミティブ多項式(primitive p
olynomial)が与えられれば、モジュロ2の算
術では、x3=1+xとなる。
【0035】「a」を3ビット・ベクトルに対するGF
(8)におけるプリミティブ・エレメントとする。
0,a1,a2の関数としての多項式は下記の表1に示
すとおりである:
【表1】 表1から、0−要素、即ち000は、aの累乗として表
すことができない。また、a7に対するベクトルは10
0である。
【0036】B−隣接コード及び多項式の冗長的側面 以下の説明では、各データ列は、7データ・バイト(3
ビット/バイト)+2冗長バイト、それぞれ、b
(0)、b(1)、...b(6)及びR(0)、R
(1)からなるものとする。コードは、データ・バイト
がその所与の順序を保つ形状であり、2つの冗長バイト
は列に対して計算され、それに付加される。誤り検出
は、各DASDへのバイト・アクセス・パスに沿って独
立して決定される。その手段は、対応するDASDへの
各パスに沿って個別に計算されチェックされ、各記録さ
れたバイトに付加されるECCバイトを含んでもよい。
従って、独立のコード手段は、b(i)及びb(j)は
誤りであったが、その誤り又は消去を訂正する情報を有
していないことを示すことになる。
【0037】多項式フィールドは、GF(256)即ち
GF(28)又はそれ以上に対して定義できる。そのよ
うに定義すると、各データ列をそれより大きなサイズの
「ブロック」に分割することができる。この状況では、
各「ブロック」に付加されるECCバイトのブロック長
に対する比率は小さくなる。したがって、記憶効率はよ
り大きくなる。
【0038】各コードは、その「パリティ・チェック・
マトリクス」によって部分的に定義される。このマトリ
クスは、符号化及び復号に対する冗長及びシンドローム
の関係を決定する。本発明で用いるB−隣接コードに対
して、そのパリティ・チェック・マトリクスは
【表2】 のように表すことができる。
【0039】任意の与えられたデータ列b(0)、b
(1)、..、b(6)に対しても、冗長バイトはそれ
ぞれ
【数12】 によって決定される。
【0040】各累乗項ajは、上述の表から得られたベ
クトル値を有する。したがって、多項式項「a5*b
(1)」はベクトル積(111)*b(1)として計算
される。この積の結果は3ビット・ベクトルである。R
(1)は、結果として得られた3ビット・ベクトル積を
排他的オア処理することによって決定された3ビット・
ベクトルである。より一般的には、各ajの係数はマト
リクスの形状を取ることができる。後の例では、各係数
は3x3の予め記憶されたマトリクスとして表される。
【0041】R(0)及びR(1)は、確認されると、
Nバイトのデータ列に付加され、N+2バイトの列を形
成する。それはセグメント化され、アドレス可能領域を
構成するN+2個のDASDに記録される。
【0042】B−隣接コードを用いた訂正の冗長的側面 受け取った各セグメント化された列は
【表3】 の形状を有している。
【0043】B−隣接コードは、1対のシンドロームS
(0)及びS(1)を仮定する。この場合、上述のパリ
ティ・チェック・マトリクスHにしたがって、S
(0),S(1)は
【数13】 のように与えられる。
【0044】ブロックb(i)及びb(j)は使用不可
能であると仮定する。また、誤りでないならば、b’
(k)=b(k)とする。これは、少なくとも1バイト
の誤りがなければ、S(0)=0及びS(1)=0であ
ることを意味する。
【0045】シンドロームは、データ列を読み出す毎に
確認される。したがって、それらは全ての回復の目的の
ために使用することができる。したがって、バイトb
(i)及びb(j)が使用不可能ならば、
【数14】 が成り立つ。上記式は、2つの未知数の2つのブール線
形方程式である。
【0046】検出したシンドロームS(0)及びS
(1)の関数として、b(i)及びb(j)を解くと、
【数15】 のようになる。
【0047】別の不良 ブロック/DASD b(0)、..b(6)のいずれ
か2つを消去すると、再生は、式(5)及び(6)にし
たがってb(i)及びb(j)を直接計算することによ
って行われる。ブロックR(0)及びR(1)を消去し
た場合、後のある時点に式(1)及び(2)にしたがっ
て再計算することによって、訂正を行なうことができ
る。しかしながら、ブロックb(i)及びR(0)又は
b(i)及びR(1)のいずれかを消去した場合、回復
は修正されたルートに沿って進むことになる。b(i)
とR(0)を消去した場合、
【数16】 S(1)=a(6−i)*b(i)mad2 が生じる。この式は1つの未知数を有する1つのブール
線形方程式を構成する。これを解くと、
【数17】 b(i)=a(i+1)*S(l) を得る。
【0048】R(0)は、後のある時点で式(1)を用
いて再計算することができる。
【0049】b(i)とR(1)を消去した場合、S
(0)=b(i)が求まる。これにより、b(i)の直
接的な計算が可能になる。R(1)は後のある時点で式
(2)を用いて再計算することができる。
【0050】3x3マトリクスによる有限フィールドに
おける要素の表現 二進有限フィールドにおいて、1は乗算的アイデンティ
ティを表し、0は加算的アイデンティティを示す。ま
た、プリミティブ多項式は p(x)= 1+x+x3
0である。したがって、
【表4】 である。
【0051】a2からa7までの累乗の各々は
【表5】 のように計算される。なお、マトリクスatは予め記憶
される。また、マトリクス1/[a(j-i)+1]も記憶
される。例示の実施例では、インデックスi、jは、整
数範囲0≦i<j≦6にあり、したがって、j−iは範
囲[1、6]にある。
【0052】j−i=1に対して、
【表6】 j−i=2に対して、
【表7】 j−i=3に対して、
【表8】 j−i=4に対して、
【表9】 j−i=5に対して、
【表10】 j−i=6に対して、
【表11】 である。
【0053】パイプライン処理及び予め記憶されたマト
リクス 次に図2は、図1に示したパリティ・ストライピング・
バッファ・ロジック7に用いられる論理回路を示してい
る。ロジック7は、CPUからの読み出し及び書き込み
要求によって、対応する読み出しチャンネル209又は
書き込みチャンネル211を介して、アドレスされたデ
ータを処理する。書き込みチャンネル方向では、各デー
タ列b(0)、..、b(6)は、一時的にI/Oバッ
ファ201に記憶された後、パス205を通って冗長性
決定論理回路215及び217に並列に印加される。ま
た、データ列内の非ゼロ・バイトの指示はマトリクス記
憶部213に印加される。これらの指示は、効果的に、
任意のベクトル乗算にマトリクスを使用できるようにす
る。
【0054】冗長性決定論理回路215及び217は、
前記のブール方程式(1)及び(2)にしたがって、冗
長バイトR(1)及びR(0)を計算する。この複雑な
組み合わせ回路は、ラングドン著「コンピュータの設
計」(著作権登録1982年、コンピュティーチ・プレ
ス、サンホセ、CA、LC81−71785)第463
−505頁に記載された論理ゲート、及び第506−5
57頁に記載されたシーケンシャル・ロジックを用いて
いる。この組み合わせ論理は、前記のようにマトリクス
の累乗を表す予め記憶された回路に基づいている。
【0055】冗長バイトR(0)及びR(1)はデータ
・バイトb(0)、...、b(6)に付加される。後
者はレジスタ219内にある。次に、冗長性決定論理回
路215、217及びレジスタ219の内容は、同時に
パス228、230、232を介してストライピング・
バッファ・ロジック229へ送出される。ストライピン
グ・バッファ・ロジック229はこのバイトをパス23
1へ加える。これは、図1のDASD配列の各々に対し
て、対応する書き込みパス11、13、15、17、1
8を備えている。パス11−18の各々は、独立した書
き込み及び読み出し導体で構成されている。また、EC
Cの付加は、DASD制御ロジックの独立した機能であ
り、本発明の一部とは看做されない。
【0056】配列読み出しコマンドに応答して、アドレ
スされた列を形成するデータ及び冗長バイトは、対応す
るDASDからパス218を介して読み出しチャンネル
209のストライピング・バッファ・ロジック220へ
送られる。ストライピング・バッファ・ロジック220
及び229は、前記読み出し及び書き込みチャンネル間
の単一の時分割装置として実施するのが好ましい。任意
のDASDの故障の指示の発生は、DASDにより装置
222に対して与えられる。したがって、誤ったデータ
列のバイトのアイデンティティは、シンドローム・ロジ
ック221に知らされることになる。
【0057】シンドローム・ロジック221の目的は、
前記ブール方程式(3)及び(4)にしたがって、DA
SDの不良の発生と一致する2つまでの非ゼロ信号S
(0)及びS(1)を与えることである。誤りのb
(i)及び/又はb(j)のバイトのアイデンティティ
がわかっているので、S(0)とS(1)のシンドロー
ム決定には、デフォルト値000が用いられる。認識で
きるように、式(3)及び(4)は、指示されたバイト
の単純なS(0)排他的オア(XOR)処理の場合を包
含している。しかしながら、S(1)はマトリクス乗算
及び排他的オア動作を包含しているが、これは、組み合
わせ論理における簡単な動作として当該技術分野内のも
のである。
【0058】書き込みチャンネルを介するデータ列の処
理の場合のように、読み出しチャンネル用のストライピ
ング・バッファ・ロジック220はマトリクス記憶部2
13’に非ゼロ・バイトの指示を与える。したがって、
シンドローム・ロジック221及びパイプライン・プロ
セッサ227に必要とされるマトリクス乗算に対して、
マトリクスが使用可能となる。
【0059】パイプライン・プロセッサ227は、種々
の成分の重畳された部分的計算によって、ブール式
(5)及び(6)で表現される関係のパイプライン処理
を実施するために設計された。
【0060】
【数18】 であるとすると、パイプラインは
【表12】 の次数の成分を計算する。
【0061】パイプライン・プロセッサ227を実施す
るための組み合わせ論理回路及び指示されたテーブル参
照動作の実行は、当該技術分野内にある。予め記憶され
たマトリクスa6−−a1の可用性は、コード・プリミテ
ィブ「a」の多項式累乗の導出を不要とするうえ、逆マ
トリクスを計算する必要性も除去する。逆項1/[a+
(j-i)1]は各場合において、「a」の累乗と等価であ
る。
【0062】前記のように、B−隣接コードにおいて
は、GF(23)に対するプリミティブ・ターム(pr
imitive term)「a」の累乗の各々は、指
定された3x3ビットのマトリクスで表すことができ
る。また、これらのマトリクスの各々を予め記憶するこ
ともできる。更に、指示されたベクトル(mXr*rX
n=mXn)の乗算を実行するための論理回路を非常に
簡素化することができる。
【0063】例えばパイプライン処理を用いたデータ再
生 図1及び図2を再び参照して、DASD配列は、少なく
とも7つのデータ+2個の冗長DASDの1つの領域を
含むものとする。更に、各データ列は、次のような7つ
のデータバイトb(0)..b(6)とバイトR(0)
及びR(1)とからなるものと仮定する。
【0064】配列制御器ロジック7に元来転送されるも
のとして:
【表13】 制御器は、対応するDASDにデータと共に書き込まれ
る冗長バイトR(0)及びR(1)を決定し、付加す
る:
【表14】 引き続いてDASD配列から制御器7へ回収された同一
のデータ列は
【表15】 のようになっているとする。
【0065】シンドロームS(0)、S(1)の計算の
ために、バイトb’(1)及びb’(4)の値は000
であるとする。これは、システムはECCスレショルド
検出の従来の議論によりb(1)及びb(4)に対応す
るDASDが使用不可能であるという独立した知識を有
しているという事実から導き出される。
【0066】
【表16】 パイプライン動作は、シンドローム・ロジックS(0)
及びS(1)の出力から開始し、それらを適切な予め記
憶されたマトリクスと組み合わせる。この例では、バイ
トb’(1)及びb’(4)(及び対応するDASD)
は次のようにして再生させることができる。
【0067】I.a(j+i)*S(1)を形成する。ここ
で、i=1,j=4及びj−i=3である:
【表17】 II.
【表18】 を形成する。
【0068】III.
【表19】 を形成する。
【0069】IV.
【数19】 を形成する。
【0070】拡張 本発明のブロック・パリティ・コーディング、書き込
み、及び配列再構築の原理は、情報を並列に記憶する多
くのトラックからなる磁気的又は光学的マルチトラック
・テープ上のデータ記憶にも拡張することができる。ト
ラックの各ビットまたはバイトは、異なるトラックの同
じ場所の各ビットまたはバイトと同期している。時々、
1つ以上のトラックの信号が失われると、ユーザは全ト
ラックを使用できなくなるので、消去されたトラックで
失われた情報を回収するためにコーディングが用いられ
る。磁気的又は光学的マルチトラック・テープ記憶装置
の論理処理は、DASD配列で用いたのと同じ誤り検出
及び訂正様式で進む。
【図面の簡単な説明】
【図1】ストライピング・パリティ符号化、スペアリン
グ及び予備に対するデータ再実行を示す同期DASDの
配列の図。
【図2】本発明に係るパイプライン復号化を示す図。
【符号の説明】 1、3...CPU 5...共有メモリ 7...パリティ・ストライピング・バッファ(PS
B) 9...バス 11、13、15、17...並列パス
フロントページの続き (72)発明者 ノーマン・ケン・アウチ アメリカ合衆国95120、カリフォルニア州 サン・ノゼ、ヴュー・クレスト・コート 20248番地 (56)参考文献 特開 昭62−293355(JP,A) 特公 昭52−15190(JP,B2)

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】各々複数ビットから成るN個のデータ・ブ
    ロックb(0),..,b(N−1)及び2個の冗長ブ
    ロックR(0)、R(1)から形成される各記号列にお
    ける2個までのブロックであって、同期的にアクセス可
    能なN+2個のDASDの領域にわたって記憶されてい
    るブロックをコーディングしデータ・ブロックを訂正す
    る装置であって、 (a) B−隣接型の有限フィールド・コードのプリミ
    ティブ・エレメントの多項式累乗a(N-1)
    (N-2)......a(0)のマトリクス表示を記憶する
    記憶手段と、 (b) 各記号列に応答するエンコーダであって、前記
    記憶手段にアクセスして処理中のブロックb(i)(i
    は整数区間[0、N−1]にある)にインデックスされ
    た多項式累乗a(N-1),a(N-2)......a(0)の表
    示を取り出す手段を備え、b(0),..,b(N−
    1)のモデュロ加算としてR(0)を計算し、b
    (0),..,b(N−1)と前記多項式累乗
    (N-1),a(N-2)......a(0) との積のモジュロ
    加算としてR(1)を計算する手段と、を備えるエンコ
    ーダと、 (c) 前記領域内の2個までの故障したDASDを識
    別する識別手段と、 (d) 前記識別手段と結合したデコーダであって、前
    記記憶手段にアクセスして処理中のブロックb(i)
    (iは整数区間[0、N−1]にある)にインデックス
    された多項式累乗a(N-1),a(N-2)......a(0)
    の表示を取り出す手段を備え、第1のシンドロームS
    (0)をb(0),..,b(N−1),R(0)のモ
    デュロ加算として計算し、第2のシンドロームS(1)
    をb(0),..,b(N−1),R(1)と前記多項
    式累乗a(N-1),a(N-2)......a(0) との積およ
    びR(1)のモジュロ加算として計算する手段とを備え
    るデコーダと、 (e) 2個までの誤りのデータ・ブロックb(i),
    b(j)をS(0)及びS(1)の関数として解き、S
    (1)の関数である誤りのb(i)とb(0),..,
    b(N−1)にわたるモデュロ加算であるR(0)とを
    解き、更に、S(0)の関数であるb(i)とb
    (0),..,b(N−1)にわたる多項式処理である
    R(1)とを解く手段と、 を具備することを特徴とするデータ・ブロックを訂正す
    る装置。
  2. 【請求項2】前記記憶手段は、a(N-1)
    (N-2).....a(0)の形の記憶されたマトリクス表
    示に加え、1/[a(j-1)+1]の形の逆多項式累乗の
    マトリクス表示を記憶することを特徴とする請求項1記
    載のデータ・ブロックを訂正する装置。
  3. 【請求項3】手段(e)で計算されたブロックb
    (i)、b(j)を用いて、各々のブロックを、N個の
    使用可能なDASDとその他のDASDのうちの2個ま
    でのDASDとに記憶し、再書き込みする手段を備えて
    いることを特徴とする請求項1記載のデータ・ブロック
    を訂正する装置。
  4. 【請求項4】前記複数のDASDは、2個までの別に確
    保されたDASDを含んでおり、前記再構築する手段
    は、前記ブロックの各々を、前記領域のN個の使用可能
    なDASD上に、及び前記2個までの別に確保されたD
    ASD上に書き込む手段を備えていることを特徴とする
    請求項1記載のデータ・ブロックを訂正する装置。
  5. 【請求項5】複数のDASDと、CPU読み取り及び書
    き込みコマンドに応答して、複数のDASDのうちの少
    なくともN+2個のDASDの少なくとも1個の不良な
    独立したパリティ領域から同期的にデータ列をアクセス
    するアクセス手段を備えたCPU用外部記憶装置におい
    て、 前記アクセス手段が、 (a) B−隣接型の有限フィールド・コードのプリミ
    ティブ・エレメントの多項式累乗a(N-1)
    (N-2)......a(0)のマトリクス表示を記憶する
    記憶手段と、 (b)前記記憶手段にアクセスして処理中のブロックb
    (i)(iは整数区間[0、N−1]にある)にインデ
    ックスされた多項式累乗a(N-1),a(N-2)......
    (0)の表示を取り出す手段を備え、各CPU書き込み
    コマンドに応答して、各データ列をN個のブロックb
    (0),b(1),.. ,b(N−1)にセグメント
    化し、モデュロ2の関係、即ち 【数1】 にしたがって、前記データ列にわたって定義された第1
    及び第2の冗長ブロックR(0)、R(1)を付加し、
    列b(0),..,b(N−1),R(0),R(1)
    をN+2個のDASDの領域に書き込む手段と、 (c) 前記領域内の2個までの使用不可能なDASD
    を識別する識別手段と、 (d) 前記記憶手段にアクセスして処理中のブロック
    b(i)(iは整数区間[0、N−1]にある)にイン
    デックスされた多項式累乗a(N-1)
    (N-2)......a(0)の表示を取り出す手段を備
    え、前記識別手段に応答して、前記故障したDASDを
    含む領域上に記憶されている各データ列をモデュロ2の
    関係、即ち 【数2】 にしたがって1対のシンドロームを計算することによっ
    て処理する手段と、 (e) それぞれのモデュロ2の関係、即ち b(i)及びb(j)が誤りの場合のみ、 【数3】 b(i)及びR(0)が誤りの場合のみ、 【数4】 b(i)=a(i+1)*S(l) b(i)及びR(1)が誤りの場合のみ、 【数5】 b(i)=S(0), にしたがって、S(0)又はS(1)又は両方から、b
    (i)又はb(i)及びb(j)を再生してR(0)及
    びR(1)を誤りのとき再計算し、前記領域内の使用可
    能なDASD及び前記複数の内2個までの他の使用可能
    なDASD上に前記データ列を再書き込みする手段と、 を具備することを特徴とする外部記憶装置。
JP4198326A 1991-08-29 1992-07-24 データ・ブロックを訂正する装置 Expired - Lifetime JPH0812614B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US751950 1991-08-29
US07/751,950 US5333143A (en) 1991-08-29 1991-08-29 Method and means for b-adjacent coding and rebuilding data from up to two unavailable DASDS in a DASD array

Publications (2)

Publication Number Publication Date
JPH05197579A JPH05197579A (ja) 1993-08-06
JPH0812614B2 true JPH0812614B2 (ja) 1996-02-07

Family

ID=25024217

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4198326A Expired - Lifetime JPH0812614B2 (ja) 1991-08-29 1992-07-24 データ・ブロックを訂正する装置

Country Status (2)

Country Link
US (1) US5333143A (ja)
JP (1) JPH0812614B2 (ja)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2550239B2 (ja) * 1991-09-12 1996-11-06 株式会社日立製作所 外部記憶装置システム
US5412668A (en) * 1994-09-22 1995-05-02 International Business Machines Corporation Parity striping feature for optical disks
US5778009A (en) * 1995-06-14 1998-07-07 Quantum Corporation Dedicated ALU architecture for 10-bit Reed-Solomon error correction module
US5862312A (en) * 1995-10-24 1999-01-19 Seachange Technology, Inc. Loosely coupled mass storage computer cluster
US6449730B2 (en) 1995-10-24 2002-09-10 Seachange Technology, Inc. Loosely coupled mass storage computer cluster
US6021463A (en) * 1997-09-02 2000-02-01 International Business Machines Corporation Method and means for efficiently managing update writes and fault tolerance in redundancy groups of addressable ECC-coded sectors in a DASD storage subsystem
US6061824A (en) * 1998-03-05 2000-05-09 Quantum Corporation Pipelined error correction for minimizing disk re-reading in hard drives
US6148430A (en) * 1998-05-15 2000-11-14 Quantum Corporation Encoding apparatus for RAID-6 system and tape drives
US6557123B1 (en) 1999-08-02 2003-04-29 Inostor Corporation Data redundancy methods and apparatus
US7093182B2 (en) * 1999-08-02 2006-08-15 Inostor Corporation Data redundancy methods and apparatus
US7062702B2 (en) * 2001-03-14 2006-06-13 Hewlett-Packard Development Company, L.P. Efficient parity operations
US7315976B2 (en) * 2002-01-31 2008-01-01 Lsi Logic Corporation Method for using CRC as metadata to protect against drive anomaly errors in a storage array
US7131050B2 (en) 2002-02-28 2006-10-31 Lsi Logic Corporation Optimized read performance method using metadata to protect against drive anomaly errors in a storage array
US7350126B2 (en) * 2003-06-23 2008-03-25 International Business Machines Corporation Method for constructing erasure correcting codes whose implementation requires only exclusive ORs
US7428691B2 (en) * 2003-11-12 2008-09-23 Norman Ken Ouchi Data recovery from multiple failed data blocks and storage units
US7555701B2 (en) * 2004-11-04 2009-06-30 Adaptec, Inc. Method and system for recovering from multiple drive failures
US7380088B2 (en) * 2005-02-04 2008-05-27 Dot Hill Systems Corp. Storage device method and apparatus
US7219289B2 (en) * 2005-03-15 2007-05-15 Tandberg Data Corporation Multiply redundant raid system and XOR-efficient method and apparatus for implementing the same
US7568122B2 (en) * 2005-03-16 2009-07-28 Dot Hill Systems Corporation Method and apparatus for identifying a faulty component on a multiple component field replaceable unit
TWI285313B (en) * 2005-06-22 2007-08-11 Accusys Inc XOR circuit, RAID device capable of recover a plurality of failures and method thereof
JP4718340B2 (ja) * 2006-02-02 2011-07-06 富士通株式会社 ストレージシステム、制御方法及びプログラム
US7822887B2 (en) * 2006-10-27 2010-10-26 Stec, Inc. Multi-channel solid-state storage system
US7765339B2 (en) 2006-10-27 2010-07-27 Stec, Inc. Distributed addressing in solid-state storage
US7958280B2 (en) * 2006-10-27 2011-06-07 Stec, Inc. Parallel data transfer in solid-state storage
JP2008197886A (ja) * 2007-02-13 2008-08-28 Nec Corp ストレージ装置及びその制御方法
KR20080080882A (ko) * 2007-03-02 2008-09-05 삼성전자주식회사 Ecc용 레이어를 구비하는 다층 구조 반도체 메모리 장치및 이를 이용하는 에러 검출 및 정정 방법
JP5278115B2 (ja) * 2009-03-31 2013-09-04 日本電気株式会社 冗長符号生成方法及び装置、データ復元方法及び装置、並びにraid記憶装置
US8850114B2 (en) * 2010-09-07 2014-09-30 Daniel L Rosenband Storage array controller for flash-based storage devices
US20120059976A1 (en) 2010-09-07 2012-03-08 Daniel L. Rosenband Storage array controller for solid-state storage devices
US8161212B1 (en) * 2010-09-22 2012-04-17 Xilinx, Inc. Data operations across parallel non-volatile input/output devices
JP5131379B2 (ja) * 2011-12-09 2013-01-30 富士通株式会社 Raid装置及びガロア体の積演算処理方法
US9300329B2 (en) * 2012-11-08 2016-03-29 Sk Hynix Memory Solutions Inc. Turbo-product codes (TPC) with interleaving
US9559727B1 (en) 2014-07-17 2017-01-31 Sk Hynix Memory Solutions Inc. Stopping rules for turbo product codes
CN107633116B (zh) * 2017-08-25 2020-12-25 中国船舶重工集团公司第七一九研究所 一种多故障检测序列计算方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3745538A (en) * 1971-06-01 1973-07-10 Western Electric Co Bistable optical device
JPS5215190A (en) * 1975-07-28 1977-02-04 Olympus Optical Co Endscope
US4092732A (en) * 1977-05-31 1978-05-30 International Business Machines Corporation System for recovering data stored in failed memory unit
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
US4914656A (en) * 1988-06-28 1990-04-03 Storage Technology Corporation Disk drive memory

Also Published As

Publication number Publication date
US5333143A (en) 1994-07-26
JPH05197579A (ja) 1993-08-06

Similar Documents

Publication Publication Date Title
JPH0812614B2 (ja) データ・ブロックを訂正する装置
US5351246A (en) Method and means for coding and rebuilding that data contents of unavailable DASDs or rebuilding the contents of DASDs in error in the presence of reduced number of unavailable DASDs in a DASD array
US5271012A (en) Method and means for encoding and rebuilding data contents of up to two unavailable DASDs in an array of DASDs
US5579475A (en) Method and means for encoding and rebuilding the data contents of up to two unavailable DASDS in a DASD array using simple non-recursive diagonal and row parity
US4949342A (en) Code error detecting method
US7409625B2 (en) Row-diagonal parity technique for enabling efficient recovery from double failures in a storage array
JP5102776B2 (ja) ストレージアレイにおける三重故障からの効率的な復旧を可能にする三重パリティ技術
US7315976B2 (en) Method for using CRC as metadata to protect against drive anomaly errors in a storage array
US5375128A (en) Fast updating of DASD arrays using selective shadow writing of parity and data blocks, tracks, or cylinders
US6289471B1 (en) Storage device array architecture with solid-state redundancy unit
JP2605271B2 (ja) エラー訂正及びチエツク装置
US6891690B2 (en) On-drive integrated sector format raid error correction code system and method
JP2614415B2 (ja) データ記録読取方法および装置
JP2000134111A (ja) 単一ビットのエラ―を訂正し、対になった二重ビットのエラ―を検出する装置と方法
JPS6349245B2 (ja)
JP4300462B2 (ja) 情報記録再生方法及び装置
JP4988418B2 (ja) 回転する記憶媒体の複数の層にデータを読み書きする方法、プログラム及びデータ記憶装置
JP2750316B2 (ja) データのコーディング及び再生方法
JP3288724B2 (ja) ディスクアレイ内の不完全な書込を追跡する方法、およびこのような方法を行なうディスク記憶システム
JP2605270B2 (ja) エラー訂正及びチエツク装置
JP3259688B2 (ja) データ処理回路
JPS6187279A (ja) 復号回路
JPS6231070A (ja) 誤り検出訂正方式
JPS6320921A (ja) エラ−訂正方法
JPS6334776A (ja) 符号誤り検査訂正装置