JP2003346432A - データ記憶装置およびデータ処理方法 - Google Patents

データ記憶装置およびデータ処理方法

Info

Publication number
JP2003346432A
JP2003346432A JP2002148290A JP2002148290A JP2003346432A JP 2003346432 A JP2003346432 A JP 2003346432A JP 2002148290 A JP2002148290 A JP 2002148290A JP 2002148290 A JP2002148290 A JP 2002148290A JP 2003346432 A JP2003346432 A JP 2003346432A
Authority
JP
Japan
Prior art keywords
error correction
error
sector
register
circuit
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
JP2002148290A
Other languages
English (en)
Inventor
Katsuhiko Kato
勝彦 加藤
Takashi Kuroda
尚 黒田
Hiroshi Uchiike
寛 内池
Yasuhiro Takase
康弘 高瀬
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
Priority to JP2002148290A priority Critical patent/JP2003346432A/ja
Priority to US10/411,549 priority patent/US7107510B2/en
Publication of JP2003346432A publication Critical patent/JP2003346432A/ja
Priority to US11/530,195 priority patent/US7530009B2/en
Priority to US11/872,166 priority patent/US8001447B2/en
Priority to US11/872,091 priority patent/US8010879B2/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/25Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
    • G11B2220/2508Magnetic discs
    • G11B2220/2516Hard disks

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

(57)【要約】 【課題】 符号のオーバー・ヘッドを大きくすることな
くより大きな誤り訂正を可能にする。 【解決手段】 ユーザ・データ(セクタ)0、ユーザ・
データ(セクタ)1およびユーザ・データ(セクタ)2
の排他的論理和(XOR)をとったものを仮想のユーザ
・データとすることでセクタ0〜2に相関関係が生じ、
その仮想ユーザ・データにC1よりも大きな誤り訂正能
力を持つC2を生成することにより、C1で誤り訂正不
能(Uncorrectable)であっても、C2によって誤り訂
正を行えるようになる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ハード・ディスク
・ドライブに代表されるデータ記憶装置に関し、特に、
データ記憶媒体から読み出したデータが有するエラー訂
正に関するものである。
【0002】
【従来の技術】ハード・ディスク・ドライブは最も普及
しているコンピュータの外部記憶装置の一つである。ハ
ード・ディスク・ドライブの記憶媒体である磁気ディス
クは、周知のようにディスク表面を木の年輪状に分割し
たトラックをさらに放射状に区切ったセクタをデータの
記憶最小単位としている。ハード・ディスク・ドライブ
は、磁気ディスクに記憶されているデータを読み出し、
または磁気ディスクにデータを書き込むための磁気ヘッ
ドを備えている。この磁気ヘッドは、VCM(Voice Co
il Motor)によって揺動するアクチュエータ機構に装着
されている。磁気ヘッドがデータの読み出しまたはデー
タの書き込みを行う場合、アクチュエータ機構を駆動す
ることにより、磁気ヘッドを所定のトラックに移動かつ
位置決めする。磁気ヘッドは、磁気ディスク上に記憶さ
れたサーボ情報を手がかりに所定の位置への移動制御が
なされる。
【0003】ハード・ディスク・ドライブにおいて、単
位面積当たりの記憶密度が非常に大きなものとなって、
信号処理系のS/Nが低くなり、磁気ディスク上の磁気
的欠陥の存在が無視できなくなる。そのため、磁気ディ
スク上のデフェクトが存在しても読み書きされるデータ
の信頼性を高めるために、エラー訂正が重要になってき
ている。エラー訂正は、読み出したデータがエラーを含
んでいる場合などに行われる。エラーは、磁気ディスク
上に形成された磁気層の剥がれや、磁気ヘッドとの擦れ
によるスクラッチ、磁気ディスク上のゴミなどにより発
生する。ハード・ディスク・ドライブは、このエラー訂
正のために磁気ディスク上に、図7に示すように、1セ
クタのデータ(通常512bytes)毎に、それに基づく
パリティを数10バイト付加している。このパリティを
ECC(エラー訂正符号:Error Correcting Code)と
いう。各セクタのユーザ・データ(User Data)だけを
情報語としてECCを生成しており、他のセクタのユー
ザ・データとの相関関係はない。ユーザ・データの読み
出し時には、ハード・ディスク・ドライブに設けられた
ECC回路で生成されたECCデータと読み出されたパ
リティ(ECC)からエラー位置の検出を行うとともに
エラー訂正処理が施される。
【0004】昨今のハード・ディスク・ドライブでは、
記憶密度の向上によりTA(Thermal Asperity)やスク
ラッチ等が発生すると一度に数十バイト(Bytes)から
数百バイトのユーザ・データが破壊されてしまう。その
ために、ECCの誤り訂正能力の向上が要求されるが、
ECCの誤り訂正能力を向上させる為には、より冗長度
を持たせる必要があるが、冗長度を大きくしていくとデ
ィスク・フォーマット(Disk format)上に占めるEC
C割合(符号のオーバー・ヘッド(Overhead))が増大
していくことになる。しかも、一般に符号のオーバー・
ヘッドが15%を超えるとエラー訂正による利益は0に
なるといわれている。
【0005】従来は各セクタをそれぞれ独立した情報語
として扱い、そのそれぞれの情報語に対してECCを付
加していた。この場合には、付加したECCの能力を超
える誤りが生じると誤り訂正が不能(Uncorrectable)
になるので、稀に発生するより大きな誤りを訂正できる
ようにするためには、より大きなECCを付加する必要
があるので、符号のオーバー・ヘッドが大きくなってし
まうという問題があった。この問題に対して、ECCを
多重符号化する手法が有効である。例えば、3重符号化
する場合には、各セクタに対するECCをC1、4セク
タに対するC1よりも誤り訂正能力の大きいECCをC
2、8セクタに対するC2よりも誤り訂正能力の大きい
ECCをC3とし、C2の情報語は連続する4セクタの
ユーザ・データの排他的論理和、C3の情報語は連続す
る8セクタの排他的論理和とする。この手法を、本明細
書では、ISFと称する。
【0006】ここで、図8および図9に基づいて、IS
Fについて説明する。図8には、磁気ディスク上のセク
タ(Sector)0からセクタ7まで8つのセクタが記載さ
れている。セクタ0〜7の各々にECCとしてC1が、
またセクタ3にはC2が、さらにセクタ7にはC3が含
まれている。図9に示すように、セクタ0(ユーザ・デ
ータ0)、セクタ1(ユーザ・データ1)およびセクタ
2(ユーザ・データ2)の排他的論理和(XOR)をと
ったものを仮想のユーザ・データとすることでセクタ0
〜2に相関関係が生じ、その仮想ユーザ・データにC1
よりも大きな誤り訂正能力を持つC2を生成することに
より、C1で誤り訂正不能(Uncorrectable)であって
も、C2によって誤り訂正を行えるようになる。しか
も、C1はC2を含んでいるので、C2として実際に磁
気ディスク上に記憶するのは、C2−C1バイトだけで
ある。このようにすることによって、C1で訂正不能な
誤りが発生した場合には、4セクタをリードすることで
C2による誤り訂正を可能にし、C2で誤り訂正不能で
あった場合には、8セクタをリードすることでC3によ
る誤り訂正を可能にすることができる。しかも、大きな
誤り訂正能力をもつECCであるC2およびC3は複数
セクタに対して1回しか記憶しないので、従来よりも符
号のオーバー・ヘッドを大きくすることなくより大きな
誤り訂正を可能にする。なお、以上の例ではC2を1つ
含む4つのセクタの集合をブロックまたはC2ブロック
という。
【0007】図8において、セクタ3ではC2がC1よ
り前に、セクタ7ではC3がC2より前に記憶されてい
るが、これは、C2やC3はC1の情報語であること、
及び、C2やC3をC1の後ろに置くフォーマットにす
る場合には、ユーザ・データのライト時にライト・バッ
ファが必要になり、処理が非常に複雑になるため、ゲー
ト数削減と処理の簡略化のために、このようなフォーマ
ットを用いることが望ましい。例えば、C1を52バイ
ト,C2を16バイト,C3を40バイトとした場合に
は、従来のハード・ディスク・ドライブでは13%のオ
ーバー・ヘッドで最大66バイトの誤り訂正しか可能で
ないのに対し、ISFによれば10.6%のオーバー・
ヘッドで最大104バイトの誤り訂正が可能になるもの
である。1セクタに付加するECCのバイト数が限界に
近づいている今日の状況を打破しながら、より大きな誤
り訂正能力を発揮できる可能性を秘めたISFは、非常
に魅力的な符号化方法である。
【0008】
【発明が解決しようとする課題】そこで本発明ではIS
Fを具体的に実現するための周辺技術を提供することに
より、従来ではハード・エラーになっていた100バイ
ト程度の大きな消去やスクラッチ等によるハード・エラ
ーを防ぐことを可能にしたデータ記憶装置を提供するこ
とを課題とする。また本発明は、そのようなデータ記憶
装置に用いるデータ処理方法を提供することを課題とす
る。
【0009】
【課題を解決するための手段】以下では、まず上記課題
を達成するために、ISFを具体的に実現する上でのい
くつかの問題点を掲げ、その問題点を解決するための手
段を逐次述べていくことにする。
【0010】上述した例では、C2の情報語は、連続す
る4セクタのユーザ・データの排他的論理和(XOR)
をとったもの、C3の情報語は、連続する8セクタのユ
ーザ・データの排他的論理和をとったものにする必要が
ある。DVD ドライブ等のように積符号を採用してい
る装置では、磁気ディスクへのライト時に、一旦SRA
M(Static Random Access Memory)等のバッファにユ
ーザ・データを格納しながらエンコード(Encode:符号
化)をしているが、バッファを使用したエンコードの場
合には、一旦SRAMに格納した後にSRAMから読み
出す操作が入ること、しかも、ISFにおいて、C2の
エンコード時に4セクタのデータの排他的論理和を計算
したユーザ・データをSRAMに格納してからエンコー
ドする方法をとった場合には、実際にライトするセクタ
は4セクタであるのに5セクタ分のユーザ・データをエ
ンコードする必要があるためにどうしてもライト時のパ
フォーマンス(performance)が悪化してしまうことが
挙げられる。
【0011】次に、ISFでは、例えば、4セクタ毎に
C2、8セクタ毎にC3を持つことは先に述べたが、C
2、C3を持たないセクタはC3−C1分、C3を持た
ずにC2を持つセクタはC3−C2分の00hをC1の
情報語としてユーザ・データの後でエンコーダに入力す
る必要があり、C1とC3の誤り訂正能力の違いがこの
ダミーの00hを入力する回数に関係してくる。C3
は、オフライン(Offline)でデコード(Decode:復号
化)することを前提としており、C3によってスクラッ
チ等により大きなバーストエラーを訂正する目的である
ことから、C1とC3との誤り訂正能力の開きは大き
く、C1のみのセクタで00hを入力する数は56バイ
ト程度必要である。4インターリーブ(Interleave)を
採用する場合には、インターリーブ当たりでは10バイ
ト程度となる。ここで、56バイトの00hを入力する
ということは、バイト・エンコーダ(Byte encoder)の
場合には、56サイクル(cycle)が必要になる。シス
テム・クロックで56サイクルも00hを入力している
と、ECCが再生される前に次のセクタのユーザ・デー
タが来てしまうので、エンコーダは、バイト幅でなくマ
ルチ・ワード(Multi−Word)幅のエンコーダを用意す
る必要がある。つまり、システム・クロックで56サイ
クルのダミーの00hを入力(Zero feed)する時間が
作れないことも問題となる。
【0012】以上の問題に対して、本発明は、ユーザ・
データを含む複数のセクタを有するディスク状記憶媒体
と、ホストから転送される書き込みコマンドまたは読み
出しコマンドに基づいて、ディスク状記憶媒体に対して
書き込み処理または読み出し処理を行うヘッドと、読み
出し処理時にユーザ・データに発生したエラーを訂正す
るエラー訂正手段と、を備え、エラー訂正手段は、所定
のセクタに含まれるユーザ・データに基づいてシンドロ
ームを生成するシンドローム生成器と、シンドローム生
成器で生成されたシンドロームを格納する第1のレジス
タと、シンドローム生成器で生成されたシンドローム
を、後続するセクタについてのシンドローム生成時に格
納する第2のレジスタと、所定のセクタに含まれる全て
のユーザ・データについてのシンドローム生成が終了し
た後に、第1のレジスタに格納されている値と、第2の
レジスタに格納されている値との排他的論理和をとり、
かつこの排他的論理和を第2のレジスタに格納する排他
的論理和実行回路と、を含むことを特徴とするデータ記
憶装置を提供する。
【0013】本発明によるエラー訂正手段は、読み出し
コマンドの開始を検知するとともに、この検知結果を第
1のレジスタおよび第2のレジスタに向けて出力するコ
マンド開始検知手段を含む。そして、第1のレジスタお
よび第2のレジスタは、前記検知結果を受けてその格納
状態がクリアされる。つまり、読み出しコマンドが開始
する時点では、第1のレジスタおよび第2のレジスタは
何も格納していない状態にある。そして、この状態か
ら、当該コマンドにかかる先頭セクタに含まれるユーザ
・データに基づいて生成されたシンドロームを第1のレ
ジスタが格納する。このとき、第2のレジスタは未だク
リア状態が維持されている。本発明のデータ記憶装置に
従えば、先頭セクタに含まれる全てのユーザ・データに
ついてのシンドローム生成が終了した後に、第1のレジ
スタに格納されている値と、第2のレジスタに格納され
ている値との排他的論理和をとり、この排他的論理和を
第2のレジスタに格納する。先頭セクタに続く後続セク
タの転送が開始された旨の信号を受けると、第1のレジ
スタの格納状態がクリアされる。その後、第1のレジス
タは、後続セクタに含まれるユーザ・データに基づいて
シンドローム生成器で生成されたシンドロームを格納す
る。そして、排他的論理和回路は、後続セクタに含まれ
る全てのユーザ・データについてのシンドローム生成が
終了した後に、第1のレジスタに格納されている値と、
第2のレジスタに格納されている値との排他的論理和を
とり、この排他的論理和を第2のレジスタに格納する。
【0014】本発明のデータ記憶装置において、エラー
訂正手段は、セクタが多重符号化された所定のエラーコ
ード(誤り訂正符号またはエラー訂正コード)を含むべ
き特定セクタか否かを判別するセクタ判別手段を含むこ
とができる。この場合、このセクタ判別手段が特定セク
タを判別した後の所定の時期に、第2のレジスタの格納
状態がクリアされる。後述するOTFにおいて、4セク
タ目にC2が付加されることを前提とすると、4セクタ
目についての以上の処理が終了すると、次の4セクタの
処理の準備のために、第2のレジスタをクリアするので
ある。
【0015】以上のデータ記憶装置によれば、以下のデ
ータ処理方法が実現される。すなわち本発明のデータ処
理方法は、複数のセクタの各々に付加される第1のエラ
ー訂正コードと、所定数のセクタから構成されるブロッ
クごとに所定のセクタに付加されかつ第1のエラー訂正
コードよりも訂正能力の大きい第2のエラー訂正コード
を用いてユーザ・データのエラー訂正を行うデータ処理
方法であって、読み出しコマンドの開始を検知するとと
もにこの検知結果に基づいて第1のレジスタおよび第2
のレジスタの格納状態をクリアし、所定のセクタに含ま
れるユーザ・データに基づいてシンドロームを生成し、
シンドロームを第1のレジスタに格納し、所定のセクタ
に含まれる全てのユーザ・データについてのシンドロー
ム生成が終了した後に、第1のレジスタに格納されてい
る値と、第2のレジスタに格納されている値との排他的
論理和を計算し、排他的論理和の結果を第2のレジスタ
に格納することを特徴としている。
【0016】さて、前述したISFは複数セクタを情報
語として扱うのではなく、複数のセクタのユーザ・デー
タの相互関係(排他的倫理和)をとったものを情報語とす
ることで、C2で見れば、4セクタのデータが誤り訂正
可能であるのに体の拡大をしなくても良いという点が優
れている。しかし、このことは同時に、その4セクタの
うちの1セクタだけがC1で誤り訂正不能な場合には訂
正可能であるが、複数セクタのすべてがC1で誤り訂正
不能な場合には、C2でも誤り訂正不能であることを意
味している。よって、ISFでは、C1またはC2で訂
正可能な誤りが見つかった場合には、その誤りの分のシ
ンドロームの更新(syndrome update)をC2,C3のシ
ンドロームに対して行う必要がある。しかも、上層レベ
ルの符号語(C2)でオン・ザ・フライ・コレクション
(on-the-fly correction:OTF)を行いたい場合に
は必須である。なお、OTFとは、データを順次読み出
しながら、データの転送を中断することなくエラー訂正
を行う手法をいう。しかし、上層レベルの符号語(C
2)でOTFが行われないのであれば、4セクタまたは
8セクタ全てのエラー位置/値(Location/Pattern)
をSRAM等に保持しておくことにより、ファーム・ウ
ェア(firmware)がMPUを介してシンドロームを修正
することも可能である。
【0017】一般にシンドロームを修正する際には、以
下の式を使用する。 Syn(n)=PAT×α(LOC×n) PAT:エラー値、LOC:エラー位置、α:ガロア体
のシンボル n:0からC3の次数−1まで C2は、C1で訂正不能なセクタの誤り訂正を可能にす
ること、C3はC2で訂正不能なセクタの誤り訂正を可
能にすることが目的である。したがって、C2の次数は
C1よりも高く、C3の次数はC2より高い。よって、
C2,C3のシンドロームを修正する際には、多量の汎
用乗算器や作業用のレジスタ群が必要になる。加えて、
そのセクタの全てのエラー位置/値が解けて、CRC等
による検証が終了してから、シンドロームの更新を行わ
ないと、実は、誤った修正(Mis-correction)をしてい
たり、インターリービング(Interleaving)を用いてい
る場合には、いずれかのインターリーブだけ訂正不能で
あった場合に、誤ってシンドロームの更新をしたり、修
正可能な(Correctable)インターリーブのみシンドロ
ームの更新をしてしまうと、セクタ・バッファ上に格納
されているデータは修正されていないのに、シンドロー
ムからの計算では誤りが報告されないという事が起きて
しまう。したがって、CRC等による検証のあとで、高
速にシンドロームの更新を行う必要がある。また、シン
ドロームの更新で使用するαのLOC×n乗の値を得る
ためにn回だけROMにアクセスをした場合には、非常
に多いサイクル(cycle)を要するので現実的でないと
いう問題がある。
【0018】以上の問題点について、本発明は、ユーザ
・データを含む複数のセクタを有するディスク状記憶媒
体と、ホストから転送される書き込みコマンドおよび読
み出しコマンドに基づいて、ディスク状記憶媒体に対し
て書き込み処理または読み出し処理を行うヘッドと、読
み出し処理時にデータに発生したエラーを訂正するエラ
ー訂正手段と、を備え、エラー訂正手段は、複数のセク
タの各々に付加される第1のエラー訂正コードと、所定
数のセクタからなるブロックごとにセクタに付加されか
つ第1のエラー訂正コードよりも訂正能力の大きい第2
のエラー訂正コードを用いてエラー訂正を行うものであ
って、ユーザ・データに基づいてシンドロームを生成す
るシンドローム生成器と、シンドローム生成器で生成さ
れたシンドロームに基づいて誤り位置多項式および誤り
評価多項式を求めるユークリッド回路と、誤り位置多項
式および誤り評価多項式を解くチェーン・サーチ回路
と、チェーン・サーチ回路による誤り位置多項式および
誤り評価多項式の解の妥当性を検証する検証回路と、を
備え、第1のエラー訂正コードによるエラー訂正処理が
終了した後のシンドロームの更新のための演算処理を、
ユークリッド回路およびチェーン・サーチ回路を用いて
行う構成としたことを特徴とするデータ記憶装置を提供
する。本発明のデータ記憶装置は、エラー訂正手段がも
ともと備えているユークリッド回路、チェーン・サーチ
回路を用いてシンドローム更新のための演算処理を行う
ため、以上の問題点を解消することができる。
【0019】本発明のデータ記憶装置において、ユーク
リッド回路は汎用乗算器を、またチェーン・サーチ回路
は第3のレジスタを備え、演算処理を汎用乗算器で行う
ことにより第1の演算結果を取得し、この第1の演算結
果を第3のレジスタに一時的に保持することができる。
例えば、αのLOC×n乗の値を汎用乗算器で求め、こ
の結果をチェーン・サーチ回路内の第3レジスタに一時
的に保持することができる。また本発明のデータ記憶装
置において、汎用乗算器は、第3のレジスタに一時的に
保管された前記演算処理の結果を用いてさらに演算処理
を行うことにより第2の演算結果を得ることができる。
例えば、チェーン・レジスタに一時的に保持してあるα
のLOC×n乗の値とエラー値との積を求めることがで
きる。さらに本発明のデータ記憶装置において、第2の
演算結果に基づくシンドローム更新のための値を生成し
かつ一時的に保持することを、ユークリッド回路が有す
る第4のレジスタを用いて行うことができる。例えば、
第2の演算結果と第4のレジスタの値との排他的論理和
を計算しながら、この結果を第4のレジスタに保持す
る。
【0020】以上のデータ記憶装置によれば、以下のデ
ータ処理方法が提供されるすなわち本発明のデータ処理
方法は、複数のセクタの各々に付加される第1のエラー
訂正コードと、所定数のセクタからなるブロックごとに
セクタに付加されかつ第1のエラー訂正コードよりも訂
正能力の大きい第2のエラー訂正コードを用いてエラー
訂正を行うデータ処理方法であって、ユーザ・データに
基づいてシンドロームを生成し、生成されたシンドロー
ムに基づいて誤り位置多項式および誤り評価多項式を求
め、誤り位置多項式および前記誤り評価多項式を解き、
チェーン・サーチ回路による誤り位置多項式および誤り
評価多項式の解の妥当性を検証するステップを備えてい
る。そして、第1のエラー訂正コードによるエラー訂正
処理が終了した後のシンドロームの更新のための演算処
理を、誤り位置多項式および誤り評価多項式を求める回
路および誤り位置多項式および誤り評価多項式を解く回
路を用いて行うことを特徴とする。
【0021】多重符号を採用しているシステムで任意の
数の複数セクタの排他的論理和等の計算を施したものを
情報語として、その仮想セクタにECCとしてC2を付
加し、このC2による訂正内容の検証用CRCを専用に
持った場合には、C2ブロック単位毎にC2復号検証用
のCRCの記憶領域を確保する必要がある。そうする
と、C2、C3、C4等多重化を大きくして符号のオー
バー・ヘッドを減らそうとしても、各ECC用のCRC
のために効果的にオーバー・ヘッドを減らせなくなる。
また、C2ブロック内のセクタで訂正可能な誤りが見つ
かった際には、そのエラー位置/値を使用して、シンド
ロームと各CRCの値も修正する必要が生じるのでゲー
ト数の増加または、デコード・レイテンシーを大きくす
る要因になるという問題がある。
【0022】以上の問題点について、本発明は、ユーザ
・データを含む複数のセクタを有するディスク状記憶媒
体と、ホストから転送される書き込みコマンドおよび読
み出しコマンドに基づいて、ディスク状記憶媒体に対し
て書き込み処理または読み出し処理を行うヘッドと、読
み出し処理時にユーザ・データに発生したエラーを訂正
するエラー訂正手段と、を備え、エラー訂正手段は、複
数のセクタの各々に付加される第1のエラー訂正コード
と、所定数のセクタからなるブロックごとにセクタに付
加されかつ第1のエラー訂正コードよりも訂正能力の大
きい第2のエラー訂正コードを用いてエラー訂正を行う
ものであって、ユーザ・データに基づいてエラー訂正内
容検証用の巡回冗長検査符号CRCを生成しかつ保持す
るCRC生成回路と、第1のエラー訂正コードによるエ
ラー訂正が不能であった場合に、リード時CRC生成回
路で生成したCRCを保持するCRC保持回路と、CR
C生成回路またはCRC保持回路のいずれかに保持され
ているCRCを検証に用いることを選択する検証用CR
C選択回路と、検証用CRC選択回路で選択されたCR
Cを用いてCRCの検証を行うCRC検証回路と、を備
えたことを特徴とするデータ記憶装置を提供する。本発
明のデータ記憶装置によれば、各セクタに付加されてい
る第1のエラー訂正コードによるCRCのみで第2のエ
ラー訂正コードの復号結果の検証を行うことが可能にな
るので、多重符号化を行った場合でも、それに応じた数
のCRC符号を追加する必要がない。
【0023】本発明のデータ記憶装置は、ディスク状記
憶媒体から転送されるユーザ・データに基づいて第1の
エラー訂正コードおよび第2のエラー訂正コードのシン
ドロームを生成するシンドローム生成器と、生成された
シンドロームに基づいてエラー位置およびエラー値を算
出するエラー情報算出回路とを備えることができる。こ
の場合、CRC検証回路は、エラー位置およびエラー値
とリード時CRC生成回路で生成されかつ保持されたC
RCとを比較することによりエラー訂正内容の検証を行
うことができる。
【0024】また本発明のデータ記憶装置において、検
証用CRC選択回路は、第2のエラー訂正コードを含む
セクタをエラー訂正の対象とする際にはCRC保持回路
に保持されているCRCを選択する。このとき、CRC
検証回路は、CRC保持回路に保持されているCRCを
用いてエラー訂正内容の検証を行う。
【0025】以上のデータ記憶装置によれば、以下のデ
ータ処理方法が実現される。すなわち本発明のデータ処
理方法は、複数のセクタの各々に付加される第1のエラ
ー訂正コードと、所定数のセクタからなるブロックごと
にセクタに付加されかつ第1のエラー訂正コードよりも
訂正能力の大きい第2のエラー訂正コードを用いてユー
ザ・データのエラー訂正を行うデータ処理方法であっ
て、ユーザ・データに基づいて検証用の巡回冗長検査符
号CRCを生成し、第1のエラー訂正コードによるエラ
ー訂正が不能であった場合にCRCを保持し、第2のエ
ラー訂正コードを含むセクタをエラー訂正の対象とする
際には保持されているCRCを用いてエラー訂正内容の
検証を行うことを特徴とする。
【0026】図10に従来のOTF実行時のタイミング
・チャートを示す。この図中のAとBのタイミングで
は、それぞれセクタ1のライトとセクタ0のOTF(re
ad-modify-write)、セクタ2のライトとセクタ1のO
TFが重なっている。このために、メモリの帯域として
は非常に大きな損失(Loss)になってしまうという問題
がある。
【0027】以上の問題点について、本発明では、ユー
ザ・データを含む複数のセクタを有するディスク状記憶
媒体と、ホストから転送される書き込みコマンドまたは
読み出しコマンドに基づいて、ディスク状記憶媒体に対
して書き込み処理または読み出し処理を行うヘッドと、
読み出し処理時にユーザ・データに発生したエラーを訂
正するエラー訂正手段と、を備え、エラー訂正手段は、
複数のセクタの各々に付加される第1のエラー訂正コー
ドと、所定数のセクタからなるブロックごとにセクタに
付加されかつ第1のエラー訂正コードよりも訂正能力の
大きい第2のエラー訂正コードに基づいてエラー訂正を
行うものであって、ディスク状記憶媒体から転送された
ユーザ・データを格納する第1のバッファと、第1のバ
ッファからユーザ・データを読み出しながら第1のエラ
ー訂正コードに基づいてエラー訂正処理を施すエラー訂
正処理回路と、第1のエラー訂正コードに基づいてエラ
ー訂正が施されたユーザ・データおよび第1のエラー訂
正コードに基づくエラー訂正が不能であったユーザ・デ
ータを格納する第2のバッファと、を備えたことを特徴
とするデータ記憶装置を提供する。
【0028】本発明のデータ記憶装置において、第1の
エラー訂正コードに基づいたエラー訂正が不能であった
セクタの位置情報を保持する位置特定手段を備え、エラ
ー訂正処理回路は、第2のバッファに格納された第1の
エラー訂正コードに基づくエラー訂正が不能であったユ
ーザ・データを第2のバッファから読み出すとともに、
位置特定手段が保持する位置情報を用いて、第2のエラ
ー訂正コードに基づくエラー訂正処理を行うことが望ま
しい。なお、セクタの位置情報は、ブロック内のセクタ
の位置を特定したものとすることができる。
【0029】また本発明のデータ記憶装置において、第
2のバッファに格納された第1のエラー訂正コードに基
づくエラー訂正が不能であったユーザ・データが、第2
のエラー訂正コードを用いてもエラー訂正が不能と判断
された場合には、第2のバッファは、位置情報に対応す
るセクタのユーザ・データを第2のバッファから読み出
すとともに、エラー訂正処理を施すことなく、その状態
で外部に転送する。
【0030】以上のデータ記憶装置によれば、以下のデ
ータ処理方法が実現される。すなわち本発明のデータ処
理方法は、複数のセクタの各々に付加される第1のエラ
ー訂正コードと、所定数のセクタからなるブロックごと
にセクタに付加されかつ第1のエラー訂正コードよりも
訂正能力の大きい第2のエラー訂正コードを用いてユー
ザ・データのエラー訂正を行うデータ処理方法であっ
て、ディスク状記憶媒体から転送されたユーザ・データ
を第1のバッファに格納し、第1のバッファに格納され
たユーザ・データを読み出しながら第1のエラー訂正コ
ードに基づいてエラー訂正処理を施して第2のバッファ
に転送し、第2のバッファに格納された第1のエラー訂
正コードに基づくエラー訂正が不能であったユーザ・デ
ータを第2のバッファから読み出すとともに、第2のエ
ラー訂正コードに基づくエラー訂正処理を行うことを特
徴とする。
【0031】
【発明の実施の形態】以下、ハード・ディスク・ドライ
ブ1に適用した例に基づいて本発明の実施の形態を説明
する。図1はハード・ディスク・ドライブ1の基本構成
を示すブロック図である。図1に示すように、データ記
憶装置としてのハード・ディスク・ドライブ(HDD)
1は、スピンドルモータ(図示せず)によって回転され
る磁気ディスク2を備えている。磁気ディスク2に対し
てユーザ・データのリード/ライトを実行する磁気ヘッ
ド3は、アクチュエータ・アーム5の一端部に設けられ
ている。この磁気ヘッド3は、データを書き込むライト
・ヘッドと、磁気ディスク2からデータを読み出すリー
ド・ヘッドとから構成される。アクチュエータ・アーム
5の他端部に設けられたVCM(ボイス・コイル・モー
タ)コイル4と永久磁石とからなるVCMによって、磁
気ディスク2上の所定の位置に向けてシークがなされ
る。
【0032】図1において、AE(Arm Electronics)6
はアクチュエータ・アーム5に装着され、磁気ヘッド3
のリード・ヘッドにバイアス電流を供給すると共に磁気
ディスク2に記憶されたデータを読み出すリード・ヘッ
ドの微小再生信号を増幅する一方、書き込み時にはライ
ト・ヘッドに書き込み電流を供給する。制御部7は、ア
クチュエータ・アーム5の動作を制御しかつデータの読
み書きを実行する電子回路を含む。制御部7は、VCM
制御部8を通じてアクチュエータ・アーム5のシーク動
作を制御し、さらにリード・ライト・チャネル9を通じ
て磁気ヘッド3の読み書き動作の制御をする。リード・
ライト・チャネル9はHDC(ハード・ディスク・コン
トローラ)/MPU10に接続される。リード・ライト
・チャネル9は、データのディジタル信号と、磁気ヘッ
ド3に供給されまた磁気ヘッド3で生成された電流信号
とを双方向に変換する。
【0033】HDC/MPU10にはメモリ(RAM)
11と、ホスト・インターフェース12を介してホスト
・コンピュータ14が接続される。HDC/MPU10
は、RAM11の制御、RAM11と磁気ディスク2間
でのデータの転送、IDテーブルの作成、およびサーボ
・データから位置エラー信号(PES:Position Error
Signal)を生成し、磁気ヘッド3の位置情報をMPUに
送る。また、後述するエラー訂正処理にかかわる一連の
動作を実行する。RAM11には、装置起動時に磁気デ
ィスク2から読み出された装置制御用のマイクロ・コー
ド、IDテーブル等が格納される。HDC/MPU10
のMPUにはメモリ(ROM)13およびVCM制御部
8が接続される。MPUはホスト・コンピュータ14か
ら送られたコマンドを解釈してHDCにIDテーブルを
作成させ、さらにコマンドで指定されたアドレスに対し
てデータの読み書きを行なうように命令し、また磁気ヘ
ッド3を所定のトラックにシークするための制御情報
を、HDCで生成された磁気ヘッド3の位置情報に基づ
いてVCM制御部8に送る。VCM制御部8は、MPU
からの制御情報に基づいて、磁気ヘッド3を所定のトラ
ックに位置付けるようにVCMを駆動する。ROM13
には、装置の起動に必要なマイクロ・コードが格納され
ている。
【0034】図2は、HDC/MPU10の構成概要を
示している。図2に示すように、HDC/MPU10
は、ホスト・コンピュータ14との間のデータ転送を主
たる機能とするホスト・コントロール・ブロック(Host
control block)20を備えている。HDC/MPU1
0は、MPU40とのインター・フェースおよびDRA
M、SRAM等のメモリ・デバイス等へのインター・フ
ェースとして機能するメモリ・マネージャ・ブロック
(Memory manager block)30を備えている。HDC/
MPU10は、リード・ライト・チャネル9へのデータ
転送を担うドライブ・コントロール・ブロック(Drive
control block)50を備えている。さらに、HDC/
MPU10は、データのリード時に発生するエラーを訂
正する機能を有するECCプロセッサ・ブロック(EC
C Processorblock)60を備えている。
【0035】次に、ECCプロセッサ・ブロック60の
構成を示す図3に基づいて、本実施の形態によるエラー
訂正の概要について説明する。なお、本実施の形態によ
るエラー訂正は、図8および図9に基づいて説明したI
SFを用いている。したがって、C1、C2等の用語は
図8および図9に基づく説明と同義で用いる。また、図
8および図9に基づく説明も本実施の形態の一部を構成
することになる。ECCプロセッサ・ブロック60は、
ユーザ・データのライト時には、ドライブ・コントロー
ル・ブロック50から転送されるユーザ・データ(U
D)に基づいてエンコーダ・シンドローム生成器62内
のエンコーダ回路を使用してECC符号を生成し、かつ
生成した符号をドライブ・コントロール・ブロック50
に渡して、ユーザ・データとともに磁気ディスク2へ記
憶する。ユーザ・データのリード時には、リード・ライ
ト・チャネル9を介して磁気ディスク2からリードされ
たユーザ・データおよびECCをドライブ・コントロー
ル・ブロック50が受け取り、ECCプロセッサ・ブロ
ック60転送する。
【0036】ECCプロセッサ・ブロック60におい
て、エンコーダ・シンドローム生成器62のシンドロー
ム生成回路を使用してシンドロームの生成を行うと同時
に、第1バッファコントロール回路68内の第1バッフ
ァへ、当該ユーザ・データを格納する。シンドローム生
成回路によるシンドロームの生成が終了したら、ECC
プロセッサ・ブロック60は、ユークリッド(Euclid)
回路80にシンドロームを転送し、エラー位置多項式と
エラー評価多項式を構築する。2つの方程式が完成する
と、その方程式をチェーン・サーチ(chien search)回
路90で解いて、解けた誤り位置(Error location:E
L)および誤り値(Error pattern:EP)を、エラー
位置/値レジスタ74に格納する。全ての方程式が解け
たところで、CRC検証回路110は、解けた誤りの妥
当性を検証する。
【0037】(第1の特徴部分)次に、図3に基づいて
本実施の形態によるハード・ディスク・ドライブ1の第
1の特徴について説明する。この第1の特徴は、コマン
ドの開始を識別するコマンド開始検知回路(command st
art det.)66、C2を含むセクタか否かを判別する
C2判別回路(C2sector det.)67および第1レジ
スタ63の出力と第2レジスタ65の出力との排他的論
理和を計算する回路(XOR回路)64を設けた点にあ
る。以上の回路の動作は、以下の説明から明らかとな
る。
【0038】リード/ライトのオペレーションを行う際
には、コマンド開始検知回路66が、コマンドの開始を
示すCS信号を検知して、第1レジスタ63と第2レジ
スタ65に向けて格納状態をクリアすることを指示する
CL信号を出力する。第1レジスタ63と第2レジスタ
65は、このCL信号でクリアされる。エンコーダ・シ
ンドローム生成器62は、主に固定乗算器から構成さ
れ、ユーザ・データが1バイト転送されるごとに、この
回路で積和が行われて、その値を第1レジスタ63がラ
ッチ(Latch)する。この値は、リード時はシンドロー
ムであり、ライト時はパリティである。一連のデータの
中で最後のデータのエンコードまたはシンドローム生成
が終了するタイミングで、ドライブ・コントロール・ブ
ロック50からラスト・データ(LD)信号が出力され
る。このLD信号が出力されたところでXOR回路64
は、1セクタ分のデータで生成したC2のパリティまた
はシンドロームが格納されている第1レジスタ63の値
と第2レジスタ65の値の排他的論理和を計算して、そ
の結果を第2レジスタ65に保持させる。
【0039】次のセクタのデータ転送が始まるときに、
セクタ・スタート(SS)信号が出力されるので、それ
を受けて第1レジスタ63はクリアされる。しかし、第
2レジスタ65は、セクタ・スタート(SS)信号では
クリアされずに、先行するセクタで生成したC2パリテ
ィまたはシンドロームを保持したままでいる。
【0040】次に2セクタ目の最後のデータについての
エンコードまたはシンドローム生成が終了したところ
で、ラスト・データ(LD)信号が出力される。このタ
イミングで、XOR回路64は、2セクタ目のデータか
ら生成されたC2パリティまたはシンドロームが保持さ
れている第2レジスタ65の値と1セクタ目のデータか
ら生成されたC2パリティまたはシンドロームの値との
排他的論理和を計算し、その値を第1レジスタ63に保
持する。この操作によって、2セクタのデータの排他的
論理和を情報語とするC2パリティまたはシンドローム
が生成される。C2の1ブロックが4セクタから構成さ
れる場合には、同様の操作を3セクタ目、4セクタ目と
行えば、4セクタ分のデータの排他的論理和を情報語と
したC2パリティ、シンドロームの計算を他のメモリ素
子を用いることなく実行することができる。
【0041】ここで、C2の1ブロックが4セクタから
構成される場合には、4セクタ目がC2を含むブロック
なので、C2判別回路67は、4セクタ目のセクタ・ス
タート(SS)信号が出力された後から次のセクタのセ
クタ・スタート(SS)信号が出力されるまで、C2信
号を継続して第2レジスタ65に向けて出力する。C2
信号とセクタ・スタート(SS)信号がアクティブ(ac
tive)になったら、第2レジスタ65はクリアされて、
次の4セクタの排他的論理和後の情報語の生成の準備に
入る。
【0042】以上の処理操作において、第2レジスタ6
5のクリアを、CS信号が発せられた時とC2を含むセ
クタの処理が終了して後続のセクタの転送開始時に行っ
ている。したがって、所定のC2ブロック内の任意のセ
クタからC2を含むセクタまでのライトをした場合に
は、そのライトを開始した任意のセクタからC2を含む
セクタまでは、C2の符号語であるので、C2の誤り訂
正能力を使用することが可能になる。このことは、所定
のC2ブロックを全てC2の符号語としたい場合に、ラ
イトするセクタはそのブロックの途中からという際に、
ライト対象でないセクタを一旦リードして、ライト対象
ではないセクタもC2パリティの計算に含めてから、実
際のライトを開始するというオペレーションを行わなく
てもよいことを意味している。したがって、ライトした
セクタからリードを行えば、C2の訂正能力を使用する
ことができるために、ライトの前のリードのオペレーシ
ョンを省いても、C2の誤り訂正能力を使用できなくな
るセクタを最小限に抑えることができる。
【0043】また、本実施の形態によるハード・ディス
ク・ドライブ1は、エンコーダ・シンドローム生成器6
2は、ユーザ・データをSRAM等のメモリ素子に一旦
格納する必要がないので、リード・リファレンス・クロ
ックで動作することができる。しかも、第1レジスタ6
3および第2レジスタ65は、ECCプロセッサ・ブロ
ック60が元々備えている回路を用いることができる。
したがって、ゲート数の増加は、XOR回路64に付随
する部分に関するものに抑えることができる。また、C
2部分のエンコードも各セクタを磁気ディスク2にライ
トしながら行えばよいので、ライト前にSRAM等のメ
モリ素子にユーザ・データを一旦入出力することに起因
する符号化遅延によるライト・パフォーマンスの悪化を
防止することが可能である。
【0044】(第2の特徴部分)次に、本実施の形態に
よる第2の特徴部分について図3および図4に基づいて
説明する。なお、図4は図3の一部を抜粋しかつ具体化
したものである。この第2の特徴部分は、C1によるエ
ラー訂正が終了した後に行うC2、C3の更新を、シン
ドローム更新に関するゲート数の増加を招くことなく高
速で行うことで、C2によるOTFを実現すること、お
よびC3以上のECCのオフライン計算用のシンドロー
ムを提供する点にある。第2の特徴部分は、C3レベル
まで使用しているハード・ディスク・ドライブ1であっ
て、エンコーダ・シンドローム生成器62等が使用して
いる第2レジスタ65がゲート数削減のためにリード/
ライト・チャネル9のクロックを、また他のブロックは
ハード・ディスク・ドライブ1のシステム・クロックで
動作している場合を前提としている。
【0045】ECCコントロール回路100がC1によ
るエラー位置/値を解いてCRC検証回路110による
検証が終了し、かつ正しくエラー訂正できたと判断され
ると、シンドローム修正の状態となる。以上の前提のよ
うに、第2レジスタ65と他のブロックとは、非同期の
クロックで動作しているので、最初に、ユークリッド回
路80中の第4−1レジスタ82および第4−2レジス
タ83を0にリセットする。ECCコントロール回路1
00中のシンドローム更新コントロール(Syndromeupda
te control)回路102は、シンドローム更新のプロセ
スおよび使用するエラー位置/値を選択する役目を持つ
ステート(State)を動作させ、CRC検証回路110
中のエラー位置/値セレクタ(Error location/patter
n selector)111を使用して、最初に使用するエラー
位置/値を選択する。選択されたエラー位置(LOCと
して示す)をCRC検証回路110中のPower R
OM112のアドレスとして入力し、αのLOC乗の値
をROMOUTとして得る。前述のようにシンドローム
を更新する際には、以下の式を使用する。 Syn(n)=PAT×α(LOC×n) n:0〜C3の次数
−1
【0046】チェーン・サーチ回路90中の第3レジス
タ91は、αのLOC乗の値を保持し、ユークリッド回
路80中の汎用乗算機81を使用しながら、C3の次数
までの(LOC×n)乗を計算する。必要なαの(LO
C×n)乗の値が第3レジスタ91に得られたところ
で、汎用乗算機81にエラー値と各αの(LOC×n)
乗の値との積を計算する。得られた値を第4−1レジス
タ82および第4−2レジスタ83に保持する。次に2
つ目のエラー位置からシンドロームの次数分の全てのα
の(LOC×n)乗の値が得られたら、そのエラー値と各
αの(LOC×n)乗との積を計算し、第4−1レジスタ
82に保持されている値と排他的論理和をとりながら第
4−1レジスタ82に、第4−2レジスタ83に保持さ
れている値と排他的論理和をとりながら第4−2レジス
タ83に保持する。次に3つ目のエラー位置からシンド
ロームの次数分の全てのαの(LOC×n)乗の値が得ら
れたら、そのエラー値と各αの(LOC×n)乗との積を
計算し、第4−1レジスタ82に保持されている値と排
他的論理和をとりながら第4−1レジスタ82に、第4
−2レジスタ83に保持されている値と排他的論理和を
とりながら第4−2レジスタ83に保持する。
【0047】以上の操作を全ての誤りについて行うこと
で、全ての解けた誤りのシンドロームの差分を求めるこ
とができる。最後にこの差分(図4にはUPDT_SY
Nnとして示す)を第2レジスタ65のC2、C3の各
次数の項と排他的論理和をとりながら、第2レジスタ6
5に格納することにより、訂正可能であった誤りの分だ
けシンドロームを更新することができる。インターリー
ブを使用している場合には、上記操作をインターリーブ
の数分行えばよい。
【0048】以上、本実施の形態による第2の特徴は、
エラー位置からαのLOCを得るところだけにROMを
使用し、αの(LOC×n)乗を得るためには、ユーク
リッド回路80中の汎用乗算器81を使用し、またチェ
ーン・サーチ回路90の第3レジスタ91をαの(LO
C×n)乗を一時保管する作業レジスタとして使用し、
さらにユークリッド回路80中の第3レジスタ82およ
び第4レジスタ83にシンドローム更新させる差分の値
の格納に使用している。したがって、ゲート数を増加さ
せることなく、最大速度の計算サイクルを達成すること
ができる。ひいては、新たなゲートをほとんど追加する
ことなく、C2のシンドローム更新に基づくC2のOT
F、およびC2で訂正不能であった場合に即座にC3の
復号を与えるための更新されたC3のシンドロームを提
供することが可能になる。
【0049】(第3の特徴部分)次に、本実施の形態に
よる第3の特徴部分について図5に基づいて説明する。
なお、図5は、図3の一部を抜粋し、しかも部分的に具
体化したものである。ここでの説明は、理解を容易にす
るために、符号の多重化レベルは2としてC1、C2ま
での符号を使用するものとする。そして、C2は、4セ
クタのユーザ・データの排他的論理和をとったデータを
情報語とする符号であるものとし、セクタ0からセクタ
3まで順にリードし、セクタ1がC1による訂正が不能
であった場合を前提として説明する。セクタ0のユーザ
・データに基づいて、ECCコントロール回路100
は、C1用のシンドローム、C2用のシンドロームの生
成を行い、同時にリード時CRC生成回路71は、磁気
ディスク2から転送されてきた誤りが含まれている可能
性のあるユーザ・データを使用して、検証用CRCを生
成する。ECC コントロール回路100は、シンドロ
ームが完成したら、エラー位置/値を計算する。CRC
検証回路110は、そのエラー位置/値を使用し、その誤
りが発生した時に対応する値に検証用CRCが一致する
か否かチェックする。このときはC1のデコードなの
で、C2のデコードを示すC2_DECは0である。こ
のとき、検証用CRC選択回路73は、リード時CRC
生成回路71の出力を選択している。ECCコントロー
ル回路100はエラー位置/値を使用してC2用に生成
しておいたシンドロームを更新する。
【0050】次にセクタ1のユーザ・データが転送され
てくるとECCコントロール回路100は、セクタ0の
時と同様にエラー位置/値を計算するが、セクタ1で訂
正不能だった場合には、その旨の信号としてC1_UN
Cを1にしてリードCRC生成回路71の出力をC2復
号検証用CRC保持回路72にコピーする。次にセクタ
2もセクタ0の時と同様のC1についてのデコード操作
を行い、C2用のシンドロームの更新やCRCの検証を
行う。次にセクタ3も同様にC1のデコード操作を行
う。しかし、セクタ3はC2を含むセクタなので、C1
のデコードの終了と同時に、C2のデコードを行う。C
2のデコードでエラー位置/値が解けた場合には、検証
用CRC選択回路73はセクタ1がC1_UNCのとき
に保持しているC2復号検証用保持回路72の値を検証
用CRCとして選択する。一方、CRC検証回路110
はこの検証用CRCを用いて訂正内容の検証を行う。
【0051】以上の操作によって、各セクタに元々付加
されているC1 ECCの修正誤り(Mis-correction)
検出用のCRCのみでC2のデコード結果の検証を行う
ことが可能になり、上位レベルの符号について検証用の
CRC符号を追加する必要がない。また、以上ではC2
までについて説明したが、符号の多重化が進めば進むほ
ど、各符号のCRCの削減により符号のオーバー・ヘッ
ドを減らすことが可能になる。しかも、各符号用として
のCRCが無いため、各セクタの誤りが解けた際に、そ
のCRCの値を更新する必要がなくなるので、CRCを
更新するための回路の削減およびデコード遅延(Decodi
ng Latency)の短縮も実現している。
【0052】(第4の特徴点)次に、本実施の形態による
第4の特徴部分について図6に基づいて説明する。な
お、図6は、図3の一部を抜粋し、しかも部分的に具体
化したものである。第4の特徴部分は、ダブル・バッフ
ァ(Double buffer)構造を用いたバッファ訂正(Buffe
red correction)を採用しているところにある。はじめ
に、バッファ訂正とは、磁気ディスク2からリードした
データを、一旦HDC内のSRAM等からなるバッファ
に格納しておき、そのセクタのデコードが終了したら、
エラー訂正を行いながら、セクタ・バッファ120へセ
クタ・データを転送する方式である。先に説明したよう
に、従来のOTFは、メモリの帯域を大きくロスさせ
る。この弊害を除去するのが、バッファ訂正である。
【0053】図11に、バッファを1つにした単純な形
態のバッファ訂正のタイミング・チャートを示す。この
図を見ると明らかなようにセクタ・バッファへのアクセ
スはOTF後のデータのライトしか存在しないので、図
10に示した従来のOTFに割かれていた帯域損失を無
くすことが可能である。したがって、安価なDRAMや
動作周波数の低いDRAMでの高速なデータ転送レート
への対応を可能にしている。
【0054】ここでは、符号の多重化レベルは2として
C1、C2までの符号を使用する場合に、C2レベルま
でOTFを実現することを考える。C1については以上
で説明した従来のバッファ訂正を行い、C2について
は、当該セクタがセクタ・バッファ120に転送された
後に、セクタ・バッファ120上でC2のOTFをした
とする。この場合、C1のOTFによるセクタ・バッフ
ァの帯域ロスは0であるが、C2のOTFがセクタ・バ
ッファの帯域を低くする要因となってしまう。そもそ
も、C1のOTFを、一旦読み出した後に訂正を行って
再度書き込む(RMW)で行う余裕がないためにバッフ
ァ訂正したにもかかわらず、C1より大きな誤り訂正能
力をもつC2のOTFをRMWで行うと、セクタ・バッ
ファ120の帯域ロスは大きくなる。
【0055】C2のデコードを行うためには連続した4
セクタのリードが必要である。C2でOTFする対象に
なるセクタは、その4セクタの内のいずれであるかが決
まってない。したがって、C2のOTFを行う際には、
C1によるOTFが施された連続する4セクタを対象と
する必要がある。そこで、リードが終了して誤り訂正ま
で完了したLBA(Logical Block Address)の管理を
容易にするために、本実施の形態では、ダブル・バッフ
ァ構造を用いてOTFを行う。
【0056】次に、図6に基づいて、ダブル・バッファ
構造を用いたOTF制御の内容について説明する。な
お、図6では第1バッファ681と第2バッファ691
は別々に描かれているが、実際には、単一のSRAMで
実現すればよく、アドレス空間の特定アドレスを境界と
して、第1バッファ681、第2バッファ691とする
ことができる。まず、ECCコントロール回路100
は、ユーザ・データを第1バッファコントロール回路6
8に転送し、第1バッファ681に格納する。
【0057】その後、ECCコントロール回路100が
セクタ0のC1によるECCのデコードを終了した時点
で、第1バッファコントロール回路68はセクタ0のユ
ーザ・データを第1バッファ681から読み出しながら
ECCプロセッサ・ブロック60から得られたエラー位
置/値を使用してOTF(C1_OTFとして示す)を
行なう。しかも訂正されたセクタ0のユーザ・データを
第2バッファコントロール回路69に転送し、第2バッ
ファ691に格納する。第1ドライブバッファコントロ
ール回路68は必ず1セクタ単位で第2バッファ691
にユーザ・データを転送する。ECCコントロール回路
100中の、セクタ・カウンタ101は、処理されるセ
クタごとに1ずつ増加していくが、毎C2セクタ毎に0
にクリアされる。したがって、このセクタ・カウンタ1
01の値により、C2ブロック内におけるセクタの位置
を特定することができる。もし、C1のデコードで訂正
誤りエラー(Uncorrectable error)が発生したとEC
Cコントロール回路100が判断した場合には、そのと
きのセクタ・カウンタ101の値に対応するセクタにつ
いて、C2のデコードが終了した時にOTFを行う。ま
た、C2のデコードでも訂正不能エラーが発生したとE
CCコントロール回路100が判断した場合には、第2
バッファ691からの転送を停止するセクタを特定する
情報(UNC_SEC_C1として示す)として転送停止
コントロール回路70に渡す。
【0058】ECCコントロール回路100はC2 E
CCが含まれたセクタを読み取って、そのセクタのC1
のデコードが終了し、しかも、そのC2ブロック内にC
1のデコードで訂正不能エラーが発生していた場合に
は、C2のデコードを行う。C2のデコードでC1が訂
正不能エラーだったセクタが誤り訂正可能と判断される
と、転送停止コントロール回路70は、UNC_SEC_
C1をOTFの対象とするセクタとしての情報をOTF
_SECとして、XFR_STP_CNTにC2ブロック
内のセクタ数(4)をセットして、第2バッファコント
ロール回路69に渡す。第2バッファコントロール回路
69は第2バッファ691からセクタ0のユーザ・デー
タ、セクタ1のユーザ・データ、セクタ2のユーザ・デ
ータ、セクタ3のユーザ・データと順に読み出しなが
ら、メモリ・マネージャ・ブロック30にC2ブロック
分(4セクタ)のユーザ・データを転送しながら、OT
F_SECが示すセクタになったら、C2デコードの時
にECCコントロール回路100から得られたエラー位
置/値を使用して、OTF(C2 OTF)を行う。第
2バッファコントロール回路69は、C2によるデコー
ドで訂正不能エラー(Uncorrectable error)が発生し
ない限り,かならずC2ブロック(4セクタ)単位の転
送を行う。
【0059】以上の動作によって、セクタ・バッファの
帯域のロスなしで、C2ブロックのOTFおよび連続す
るC2ブロックのOTFを実現することが可能になる。
この第2バッファ691からメモリ・マネージャ・ブロ
ック30への転送の際にメモリ・マネージャ・ブロック
30が各セクタのユーザ・データを全て受け取った度に
正しく再生された (Valid)なセクタを示すLBA情報を
+1ずつ増加させることで従来と同様に必ず+1でLB
A情報の管理をしていくことが可能になる。
【0060】次に、C1のデコードで訂正不能であった
セクタがC2のデコードでも訂正不能であると判断され
た時の動作について言及する。C2のデコードで訂正不
能(Uncorrectable)と判断された時に、ECCコント
ロール回路100は、その旨の信号としてC2_UNC
を出力する。転送停止コントロール回路70は、C2_
UNCを受けてXFR_STP_CNTをUNC_SEC_
C1にセットする。そのあと第2バッファコントロール
回路69は第2バッファ691からXFR_STP_CN
Tが示す分のセクタをリードしてセクタ・バッファ12
0へ転送する。この時にはC2のデコードで訂正不能だ
ったので、OTFは行われない。さらにこの方式では、
1セクタ分のエラー位置/値をC1およびC2について
それぞれ保持しておけば実現できるので、エラー位置/
値を保持するためのレジスタを4セクタ分持たなくても
良いというメリットもある。
【0061】
【発明の効果】以上説明した本発明によれば、ISFを
サポートしたECCプロセッサの開発によって、従来で
はハード・エラーになっていた100バイト程度の大き
な消去やスクラッチ等によるハード・エラーを防ぐこと
が可能になった。そして、デコーダやシンドローム更新
回路等をできる限りC1およびC2と共用した設計とす
ることで、可能な限りロジック・サイズを小さく抑える
ことができる。しかも、符号のオーバー・ヘッドも従来
に比べて低く抑えられているので、誤り訂正能力の向上
も期待することができる。
【図面の簡単な説明】
【図1】 本実施の形態によるハード・ディスク・ドラ
イブの構成を示すブロック・ダイアグラムである。
【図2】 本実施の形態によるハード・ディスク・ドラ
イブのHDC/MPUの構成概要を示す図である。
【図3】 本実施の形態によるHDC/MPUのECC
プロセッサ・ブロックの構成概要を示す図である。
【図4】 本実施の形態による第2の特徴部分を説明す
るために、図3の一部を抜粋した図である。
【図5】 本実施の形態による第3の特徴部分を説明す
るために、図3の一部を抜粋した図である。
【図6】 本実施の形態による第4の特徴部分を説明す
るために、図3の一部を抜粋した図である。
【図7】 従来の符号語を示す図である。
【図8】 ISFによるフォーマットを示す図である。
【図9】 ISFによる符号語の生成を説明する図であ
る。
【図10】 従来のOTFの動作を示すタイミング・チ
ャートである。
【図11】 従来のバッファ訂正の動作を示すタイミン
グ・チャートである。
【符号の説明】
1…ハード・ディスク・ドライブ、2…磁気ディスク、
3…磁気ヘッド、4…VCMコイル、5…アクチュエー
タ・アーム、6…AE(アーム・エレクトロニクス)、
7…制御部、8…VCM制御部、9…リード・ライト・
チャネル、10…HDC/MPU、11…RAM、12
…ホスト・インターフェース、13…ROM、14…ホ
スト・コンピュータ、20…ホスト・コントロール・ブ
ロック、30…メモリ・マネージャ・ブロック、40…
MPU、50…ドライブ・コントロール・ブロック、6
0…ECCプロセッサ・ブロック、62…エンコーダ・
シンドローム生成器、63…第1レジスタ、64…XO
R回路、65…第2レジスタ、66…コマンド開始検知
回路、67…C2判別回路、68…第1バッファコント
ロール回路、69…第2バッファコントロール回路、7
0…転送停止コントロール回路、71…リード時CRC
生成回路、72…C2復号検証用CRC保持回路、73
…検証用CRC選択回路、74…エラー位置/値レジス
タ、80…ユークリッド回路、81…汎用乗算器、82
…第4−1レジスタ、83…第4−2レジスタ、90…
チェーン・サーチ回路、91…第3レジスタ、100…
ECCコントロール回路、101…セクタ・カウンタ、
102…シンドローム更新コントロール回路、110…
CRC検証回路、111…エラー位置/値セレクタ、1
12…Power ROM、110…CRC検証回路、
120…セクタ・バッファ
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI テーマコート゛(参考) G06F 11/10 330 G06F 11/10 330A H03M 13/15 H03M 13/15 (72)発明者 加藤 勝彦 神奈川県藤沢市桐原町1番地 日本アイ・ ビー・エム株式会社 藤沢事業所内 (72)発明者 黒田 尚 神奈川県藤沢市桐原町1番地 日本アイ・ ビー・エム株式会社 藤沢事業所内 (72)発明者 内池 寛 神奈川県藤沢市桐原町1番地 日本アイ・ ビー・エム株式会社 藤沢事業所内 (72)発明者 高瀬 康弘 神奈川県藤沢市桐原町1番地 日本アイ・ ビー・エム株式会社 藤沢事業所内 Fターム(参考) 5B001 AA04 AC01 AC02 AD04 5J065 AA01 AB01 AC03 AD04 AE06 AG02 AH04 AH05 AH06

Claims (20)

    【特許請求の範囲】
  1. 【請求項1】 ユーザ・データを含む複数のセクタを有
    するディスク状記憶媒体と、 ホストから転送される書き込みコマンドまたは読み出し
    コマンドに基づいて、前記ディスク状記憶媒体に対して
    書き込み処理または読み出し処理を行うヘッドと、 前記読み出し処理時に前記データに発生したエラーを訂
    正するエラー訂正手段と、を備え、 前記エラー訂正手段は、 所定の前記セクタに含まれる前記ユーザ・データに基づ
    いてシンドロームを生成するシンドローム生成器と、 前記シンドローム生成器で生成された前記シンドローム
    を格納する第1のレジスタと、 前記シンドローム生成器で生成された前記シンドローム
    を、後続するセクタについてのシンドローム生成時に格
    納する第2のレジスタと、 前記所定のセクタに含まれる全ての前記ユーザ・データ
    についてのシンドローム生成が終了した後に、前記第1
    のレジスタに格納されている値と、前記第2のレジスタ
    に格納されている値との排他的論理和をとり、かつ前記
    排他的論理和を前記第2のレジスタに格納する排他的論
    理和回路と、を含むことを特徴とするデータ記憶装置。
  2. 【請求項2】 前記エラー訂正手段は、 前記読み出しコマンドの開始を検知するとともにこの検
    知結果を前記第1のレジスタおよび前記第2のレジスタ
    に向けて出力するコマンド開始検知手段を含み、 前記第1のレジスタおよび前記第2のレジスタは、前記
    検知結果を受けてその格納状態がクリアされることを特
    徴とする請求項1に記載のデータ記憶装置。
  3. 【請求項3】 前記第1のレジスタは、 前記後続するセクタの転送が開始された旨の信号を受け
    てその格納状態がクリアされ、かつ前記後続するセクタ
    に含まれる前記ユーザ・データに基づいて前記シンドロ
    ーム生成器で生成されたシンドロームを格納し、 前記排他的論理和回路は、 前記後続するセクタに含まれる全ての前記ユーザ・デー
    タについてのシンドローム生成が終了した後に、前記第
    1のレジスタに格納されている値と、前記第2のレジス
    タに格納されている値との排他的論理和をとり、かつ前
    記排他的論理和を前記第2のレジスタに格納することを
    特徴とする請求項2に記載のデータ記憶装置。
  4. 【請求項4】 前記エラー訂正手段は、 前記セクタが多重符号化された所定のエラーコードを含
    む特定セクタか否かを判別するセクタ判別手段を含み、 前記セクタ判別手段が前記特定セクタを判別した後の所
    定の時期に、前記第2のレジスタの格納状態がクリアさ
    れることを特徴とする請求項3に記載のデータ記憶装
    置。
  5. 【請求項5】 前記エラー訂正手段は、 複数の前記セクタの各々に付加される第1のエラー訂正
    コードと、所定数の前記セクタからなるブロックごとに
    前記セクタに付加されかつ前記第1のエラー訂正コード
    よりも訂正能力の大きい第2のエラー訂正コードを用い
    てエラー訂正を行うものであることを特徴とする請求項
    1に記載のデータ記憶装置。
  6. 【請求項6】 ユーザ・データを含む複数のセクタを有
    するディスク状記憶媒体と、 ホストから転送される書き込みコマンドまたは読み出し
    コマンドに基づいて、前記ディスク状記憶媒体に対して
    書き込み処理または読み出し処理を行うヘッドと、 前記読み出し処理時に前記データに発生したエラーを訂
    正するエラー訂正手段と、を備え、 前記エラー訂正手段は、 複数の前記セクタの各々に付加される第1のエラー訂正
    コードと、所定数の前記セクタからなるブロックごとに
    前記セクタに付加されかつ前記第1のエラー訂正コード
    よりも訂正能力の大きい第2のエラー訂正コードを用い
    てエラー訂正を行うものであって、 前記ユーザ・データに基づいてシンドロームを生成する
    シンドローム生成器と、 前記シンドローム生成器で生成されたシンドロームに基
    づいて誤り位置多項式および誤り評価多項式を求めるユ
    ークリッド回路と、 前記誤り位置多項式および誤り評価多項式を解くチェー
    ン・サーチ回路と、 前記チェーン・サーチ回路による誤り位置多項式および
    誤り評価多項式の解の妥当性を検証する検証回路と、を
    備え、前記第1のエラー訂正コードによるエラー訂正処
    理が終了した後の前記シンドロームの更新のための演算
    処理を、前記ユークリッド回路および前記チェーン・サ
    ーチ回路を用いて行う構成としたことを特徴とするデー
    タ記憶装置。
  7. 【請求項7】 前記ユークリッド回路は汎用乗算器を、
    また前記チェーン・サーチ回路は第3のレジスタを備
    え、前記演算処理を前記汎用乗算器で行うことにより第
    1の演算結果を取得し、前記第1の演算結果を第3のレ
    ジスタに一時的に保持することを特徴とする請求項6に
    記載のデータ記憶装置。
  8. 【請求項8】 前記汎用乗算器は、前記第3のレジスタ
    に一時的に保管された前記演算処理の結果を用いてさら
    に前記演算処理を行うことにより第2の演算結果を得る
    ことを特徴とする請求項7に記載のデータ記憶装置。
  9. 【請求項9】 前記ユークリッド回路は第4のレジスタ
    を備え、前記第2の演算結果に基づくシンドローム更新
    のための値を生成しかつ一時的に保持することを特徴と
    する請求項8に記載のデータ記憶装置。
  10. 【請求項10】 ユーザ・データを含む複数のセクタを
    有するディスク状記憶媒体と、 ホストから転送される書き込みコマンドまたは読み出し
    コマンドに基づいて、前記ディスク状記憶媒体に対して
    書き込み処理または読み出し処理を行うヘッドと、 前記読み出し処理時に前記データに発生したエラーを訂
    正するエラー訂正手段と、を備え、 前記エラー訂正手段は、 複数の前記セクタの各々に付加される第1のエラー訂正
    コードと、所定数の前記セクタからなるブロックごとに
    前記セクタに付加されかつ前記第1のエラー訂正コード
    よりも訂正能力の大きい第2のエラー訂正コードを用い
    てエラー訂正を行うものであって、 前記ユーザ・データに基づいてエラー訂正内容検証用の
    巡回冗長検査符号CRCを生成しかつ保持するCRC生
    成回路と、 前記第1のエラー訂正コードによるエラー訂正が不能で
    あった場合に、前記リード時CRC生成回路で生成した
    前記CRCを保持するCRC保持回路と、 前記CRC生成回路または前記CRC保持回路のいずれ
    かに保持されている前記CRCを検証用として選択する
    検証用CRC選択回路と、 前記検証用CRC選択回路で選択された前記CRCを用
    いてエラー訂正の内容の検証を行うCRC検証回路と、
    を備えたことを特徴とするデータ記憶装置。
  11. 【請求項11】 前記ディスク状記憶媒体から転送され
    る前記ユーザ・データに基づいて前記第1のエラー訂正
    コードおよび前記第2のエラー訂正コードのシンドロー
    ムを生成するシンドローム生成器と、 前記シンドロームに基づいてエラー位置およびエラー値
    を算出するエラー情報算出回路とを備え、 前記CRC検証回路は、 前記エラー位置および前記エラー値と前記CRC生成回
    路で生成されかつ保持された前記CRCとを比較するこ
    とによりエラー訂正内容の検証を行うことを特徴とする
    請求項10に記載のデータ記憶装置。
  12. 【請求項12】 前記検証用CRC選択回路は、 前記第2のエラー訂正コードを含む前記セクタをエラー
    訂正の対象とする際には前記CRC保持回路に保持され
    ている前記CRCを選択し、 前記CRC検証回路は、 前記CRC保持回路に保持されている前記CRCを用い
    てエラー訂正内容の検証を行うことを特徴とする請求項
    10に記載のデータ記憶装置。
  13. 【請求項13】 ユーザ・データを含む複数のセクタを
    有するディスク状記憶媒体と、 ホストから転送される書き込みコマンドまたは読み出し
    コマンドに基づいて、前記ディスク状記憶媒体に対して
    書き込み処理または読み出し処理を行うヘッドと、 前記読み出し処理時に前記ユーザ・データに発生したエ
    ラーを訂正するエラー訂正手段と、を備え、 前記エラー訂正手段は、 複数の前記セクタの各々に付加される第1のエラー訂正
    コードと、所定数の前記セクタからなるブロックごとに
    前記セクタに付加されかつ前記第1のエラー訂正コード
    よりも訂正能力の大きい第2のエラー訂正コードに基づ
    いてエラー訂正を行うものであって、 前記ディスク状記憶媒体から転送された前記ユーザ・デ
    ータを格納する第1のバッファと、 前記第1のバッファから前記ユーザ・データを読み出し
    ながら前記第1のエラー訂正コードに基づいてエラー訂
    正処理を施すエラー訂正処理回路と、 前記第1のエラー訂正コードに基づいてエラー訂正が施
    された前記ユーザ・データおよび前記第1のエラー訂正
    コードに基づくエラー訂正が不能であったユーザ・デー
    タを格納する第2のバッファと、を備えたことを特徴と
    するデータ記憶装置。
  14. 【請求項14】 前記第1のエラー訂正コードに基づい
    たエラー訂正が不能であったセクタの位置情報を保持す
    る位置特定手段を備え、 前記エラー訂正処理回路は、 前記第2のバッファに格納された前記第1のエラー訂正
    コードに基づくエラー訂正が不能であったユーザ・デー
    タを前記第2のバッファから読み出すとともに、前記位
    置特定手段が保持する前記位置情報を用いて、前記第2
    のエラー訂正コードに基づくエラー訂正処理を行うこと
    を特徴とする請求項13に記載のデータ記憶装置。
  15. 【請求項15】 前記位置情報は、前記ブロック内のセ
    クタの位置を特定する情報であることを特徴とする請求
    項14に記載のデータ記憶装置。
  16. 【請求項16】 前記第2のバッファに格納された前記
    第1のエラー訂正コードに基づくエラー訂正が不能であ
    ったユーザ・データが、前記第2のエラー訂正コードを
    用いてもエラー訂正が不能と判断された場合には、 前記第2のバッファは、前記位置情報に対応する前記セ
    クタのユーザ・データを前記第2のバッファから読み出
    すとともに、その状態で外部に転送することを特徴とす
    る請求項14に記載のデータ記憶装置。
  17. 【請求項17】 複数のセクタの各々に付加される第1
    のエラー訂正コードと、所定数の前記セクタからなるブ
    ロックごとに前記セクタに付加されかつ前記第1のエラ
    ー訂正コードよりも訂正能力の大きい第2のエラー訂正
    コードを用いてユーザ・データのエラー訂正を行うデー
    タ処理方法であって、 前記読み出しコマンドの開始を検知するとともにこの検
    知結果に基づいて第1のレジスタおよび第2のレジスタ
    の格納状態をクリアし、 所定の前記セクタに含まれる前記ユーザ・データに基づ
    いてシンドロームを生成し、 前記シンドロームを第1のレジスタに格納し、 前記所定のセクタに含まれる全ての前記ユーザ・データ
    についてのシンドローム生成が終了した後に、前記第1
    のレジスタに格納されている値と前記第2のレジスタに
    格納されている値との排他的論理和を計算し、 前記排他的論理和の結果を前記第2のレジスタに格納す
    ることを特徴とするデータ処理方法。
  18. 【請求項18】 複数の前記セクタの各々に付加される
    第1のエラー訂正コードと、所定数の前記セクタからな
    るブロックごとに前記セクタに付加されかつ前記第1の
    エラー訂正コードよりも訂正能力の大きい第2のエラー
    訂正コードを用いてエラー訂正を行うデータ処理方法で
    あって、 前記ユーザ・データに基づいてシンドロームを生成し、 生成された前記シンドロームに基づいて誤り位置多項式
    および誤り評価多項式を求め、 前記誤り位置多項式および前記誤り評価多項式を解き、 前記チェーン・サーチ回路による前記誤り位置多項式お
    よび前記誤り評価多項式の解の妥当性を検証し、 前記第1のエラー訂正コードによるエラー訂正処理が終
    了した後の前記シンドロームの更新のための演算処理
    を、前記誤り位置多項式および誤り評価多項式を求める
    回路および前記誤り位置多項式および誤り評価多項式を
    解く回路を用いて行うことを特徴とするデータ処理方
    法。
  19. 【請求項19】 複数のセクタの各々に付加される第1
    のエラー訂正コードと、所定数の前記セクタからなるブ
    ロックごとに前記セクタに付加されかつ前記第1のエラ
    ー訂正コードよりも訂正能力の大きい第2のエラー訂正
    コードを用いてユーザ・データのエラー訂正を行うデー
    タ処理方法であって、 ユーザ・データに基づいてエラー訂正内容検証用の巡回
    冗長検査符号CRCを生成し、 前記第1のエラー訂正コードによるエラー訂正が不能で
    あった場合に前記CRCを保持し、 前記第2のエラー訂正コードを含む前記セクタをエラー
    訂正の対象とする際には保持されている前記CRCを用
    いてエラー訂正内容の検証を行うことを特徴とするデー
    タ処理方法。
  20. 【請求項20】 複数のセクタの各々に付加される第1
    のエラー訂正コードと、所定数の前記セクタからなるブ
    ロックごとに前記セクタに付加されかつ前記第1のエラ
    ー訂正コードよりも訂正能力の大きい第2のエラー訂正
    コードを用いてユーザ・データのエラー訂正を行うデー
    タ処理方法であって、 前記ディスク状記憶媒体から転送された前記ユーザ・デ
    ータを第1のバッファに格納し、 前記第1のバッファに格納された前記ユーザ・データを
    読み出しながら前記第1のエラー訂正コードに基づいて
    エラー訂正処理を施して第2のバッファに転送し、 第2のバッファに格納された前記第1のエラー訂正コー
    ドに基づくエラー訂正が不能であったユーザ・データを
    前記第2のバッファから読み出すとともに、前記第2の
    エラー訂正コードに基づくエラー訂正処理を行うことを
    特徴とするデータ処理方法。
JP2002148290A 2002-05-22 2002-05-22 データ記憶装置およびデータ処理方法 Pending JP2003346432A (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2002148290A JP2003346432A (ja) 2002-05-22 2002-05-22 データ記憶装置およびデータ処理方法
US10/411,549 US7107510B2 (en) 2002-05-22 2003-04-10 Data storage device and data processing method
US11/530,195 US7530009B2 (en) 2002-05-22 2006-09-08 Data storage method and data storage device
US11/872,166 US8001447B2 (en) 2002-05-22 2007-10-15 Error correction method and apparatus for data storage device
US11/872,091 US8010879B2 (en) 2002-05-22 2007-10-15 Error correction method and apparatus for data storage device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002148290A JP2003346432A (ja) 2002-05-22 2002-05-22 データ記憶装置およびデータ処理方法

Publications (1)

Publication Number Publication Date
JP2003346432A true JP2003346432A (ja) 2003-12-05

Family

ID=29545231

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002148290A Pending JP2003346432A (ja) 2002-05-22 2002-05-22 データ記憶装置およびデータ処理方法

Country Status (2)

Country Link
US (4) US7107510B2 (ja)
JP (1) JP2003346432A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009521059A (ja) * 2005-12-23 2009-05-28 インテル コーポレイション ユーザレベル命令に応じた巡回冗長検査演算の実行
US7627725B2 (en) 2006-09-22 2009-12-01 Fujitsu Limited Stored data processing apparatus, storage apparatus, and stored data processing program

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI266182B (en) * 2003-03-11 2006-11-11 Via Tech Inc Method for generating error detection codes
CN100412979C (zh) * 2003-10-08 2008-08-20 宇田控股有限公司 错误码更正方法与装置
JP4112520B2 (ja) * 2004-03-25 2008-07-02 株式会社東芝 訂正符号生成装置、訂正符号生成方法、誤り訂正装置、および誤り訂正方法
US7203890B1 (en) 2004-06-16 2007-04-10 Azul Systems, Inc. Address error detection by merging a polynomial-based CRC code of address bits with two nibbles of data or data ECC bits
JP4598711B2 (ja) * 2006-03-30 2010-12-15 富士通株式会社 誤り訂正装置
US7685494B1 (en) * 2006-05-08 2010-03-23 Marvell International, Ltd. Error correction coding for varying signal-to-noise ratio channels
US7707481B2 (en) * 2006-05-16 2010-04-27 Pitney Bowes Inc. System and method for efficient uncorrectable error detection in flash memory
JP5064821B2 (ja) 2007-02-01 2012-10-31 マーベル ワールド トレード リミテッド 磁気ディスクコントローラおよび方法
JP5221044B2 (ja) * 2007-02-01 2013-06-26 マーベル ワールド トレード リミテッド 磁気ディスクコントローラおよび方法
JP5064820B2 (ja) * 2007-02-01 2012-10-31 マーベル ワールド トレード リミテッド 磁気ディスクコントローラおよび方法
US8020115B2 (en) * 2007-04-09 2011-09-13 Infineon Technologies Ag Apparatus, method and system for permanent storage of data
US8633537B2 (en) 2007-05-25 2014-01-21 Cypress Semiconductor Corporation Memory transistor with multiple charge storing layers and a high work function gate electrode
US8940645B2 (en) 2007-05-25 2015-01-27 Cypress Semiconductor Corporation Radical oxidation process for fabricating a nonvolatile charge trap memory device
US20090179253A1 (en) 2007-05-25 2009-07-16 Cypress Semiconductor Corporation Oxide-nitride-oxide stack having multiple oxynitride layers
US9449831B2 (en) 2007-05-25 2016-09-20 Cypress Semiconductor Corporation Oxide-nitride-oxide stack having multiple oxynitride layers
KR101034287B1 (ko) * 2007-06-15 2011-05-16 후지쯔 가부시끼가이샤 에러 정정 방법 및 연산기
US8276043B2 (en) * 2008-03-01 2012-09-25 Kabushiki Kaisha Toshiba Memory system
TW200947450A (en) * 2008-05-09 2009-11-16 A Data Technology Co Ltd Storage system capable of data recovery and method thereof
US8438455B2 (en) * 2008-12-31 2013-05-07 Intel Corporation Error correction in a solid state disk
US8874958B2 (en) * 2010-11-09 2014-10-28 International Business Machines Corporation Error detection in a mirrored data storage system
KR20120063329A (ko) * 2010-12-07 2012-06-15 삼성전자주식회사 에러 체크 및 정정기 및 그것을 포함하는 메모리 시스템
JP5426711B2 (ja) * 2011-06-08 2014-02-26 パナソニック株式会社 メモリコントローラ及び不揮発性記憶装置
US8645789B2 (en) * 2011-12-22 2014-02-04 Sandisk Technologies Inc. Multi-phase ECC encoding using algebraic codes
JP6028709B2 (ja) * 2013-10-18 2016-11-16 ソニー株式会社 記憶制御装置、記憶装置、情報処理システムおよびその記憶制御方法
US9557936B2 (en) * 2014-12-31 2017-01-31 Texas Instruments Incorporated Protection of memories, datapath and pipeline registers, and other storage elements by distributed delayed detection and correction of soft errors
US9792178B2 (en) 2015-01-26 2017-10-17 Spectra Logic, Corporation Progressive parity
US11455254B2 (en) * 2020-12-10 2022-09-27 Macronix International Co., Ltd. Flash memory system and flash memory device thereof

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5027357A (en) * 1988-10-14 1991-06-25 Advanced Micro Devices, Inc. ECC/CRC error detection and correction system
US5428630A (en) * 1993-07-01 1995-06-27 Quantum Corp. System and method for verifying the integrity of data written to a memory
US5629949A (en) * 1993-09-21 1997-05-13 Cirrus Logic, Inc. Error correction verification method and apparatus using CRC check remainders
US5661848A (en) * 1994-09-08 1997-08-26 Western Digital Corp Multi-drive controller with encoder circuitry that generates ECC check bytes using the finite field for optical data for appending to data flowing to HDA
US6125469A (en) * 1994-10-18 2000-09-26 Cirrus Logic, Inc. Error correction method and apparatus
US5812564A (en) * 1995-05-08 1998-09-22 Western Digital Corporation Disk drive with embedded finite field processor for error correction
JPH097307A (ja) * 1995-06-19 1997-01-10 Fujitsu Ltd 記憶装置及びフォーマット方法
US5844919A (en) * 1996-09-16 1998-12-01 Cirrus Logic, Inc. Sector and track level error correction system for disc storage systems
FR2776113A1 (fr) * 1998-03-13 1999-09-17 Thomson Multimedia Sa Dispositif de correction d'erreurs et lecteur de disque optique comportant un tel dispositif
US6317858B1 (en) * 1998-11-09 2001-11-13 Broadcom Corporation Forward error corrector
US6543026B1 (en) * 1999-09-10 2003-04-01 Lsi Logic Corporation Forward error correction apparatus and methods
US6694477B1 (en) * 2000-09-28 2004-02-17 Western Digital Technologies, Inc. Communication channel employing an ECC decoder enhanced by likely error events of a trellis sequence detector
JP3993035B2 (ja) * 2001-07-19 2007-10-17 松下電器産業株式会社 データ記録方法、記録媒体、および再生装置
JP3663377B2 (ja) * 2001-10-23 2005-06-22 インターナショナル・ビジネス・マシーンズ・コーポレーション データ記憶装置、読み出しデータの処理装置および読み出しデータの処理方法
US6903887B2 (en) * 2002-01-03 2005-06-07 International Business Machines Corporation Multiple level (ML), integrated sector format (ISF), error correction code (ECC) encoding and decoding processes for data storage or communication devices and systems
US7339873B2 (en) * 2003-07-07 2008-03-04 Sony Corporation Data recording/reproducing apparatus, data recording/reproducing method, program, and recording medium
US7536625B2 (en) * 2004-06-30 2009-05-19 Seagate Technology Llc Maintaining data integrity in a data storage system
JP4660353B2 (ja) * 2005-11-01 2011-03-30 株式会社東芝 記憶媒体再生装置
US7620875B1 (en) * 2006-03-07 2009-11-17 Xilinx, Inc. Error correction code memory system with a small footprint and byte write operation

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009521059A (ja) * 2005-12-23 2009-05-28 インテル コーポレイション ユーザレベル命令に応じた巡回冗長検査演算の実行
US9116684B2 (en) 2005-12-23 2015-08-25 Intel Corporation Performing a cyclic redundancy checksum operation responsive to a user-level instruction
US9262159B2 (en) 2005-12-23 2016-02-16 Intel Corporation Performing a cyclic redundancy checksum operation responsive to a user-level instruction
US9645884B2 (en) 2005-12-23 2017-05-09 Intel Corporation Performing a cyclic redundancy checksum operation responsive to a user-level instruction
US10379938B2 (en) 2005-12-23 2019-08-13 Intel Corporation Performing a cyclic redundancy checksum operation responsive to a user-level instruction
US11048579B2 (en) 2005-12-23 2021-06-29 Intel Corporation Performing a cyclic redundancy checksum operation responsive to a user-level instruction
US11899530B2 (en) 2005-12-23 2024-02-13 Intel Corporation Performing a cyclic redundancy checksum operation responsive to a user-level instruction
US7627725B2 (en) 2006-09-22 2009-12-01 Fujitsu Limited Stored data processing apparatus, storage apparatus, and stored data processing program

Also Published As

Publication number Publication date
US20030218816A1 (en) 2003-11-27
US8010879B2 (en) 2011-08-30
US20080155379A1 (en) 2008-06-26
US8001447B2 (en) 2011-08-16
US20080141099A1 (en) 2008-06-12
US7107510B2 (en) 2006-09-12
US20070022359A1 (en) 2007-01-25
US7530009B2 (en) 2009-05-05

Similar Documents

Publication Publication Date Title
JP2003346432A (ja) データ記憶装置およびデータ処理方法
US6687850B1 (en) Disk drive for storing sector-reconstruction sectors and for storing a sector-reconstruction status in sectors distributed around a disk
US6661591B1 (en) Disk drive employing sector-reconstruction-interleave sectors each storing redundancy data generated in response to an interleave of data sectors
JP3663377B2 (ja) データ記憶装置、読み出しデータの処理装置および読み出しデータの処理方法
JP2724934B2 (ja) リードソロモン誤り訂正装置
US6363511B1 (en) Device and method for decoding data streams from storage media
US6891690B2 (en) On-drive integrated sector format raid error correction code system and method
US6903887B2 (en) Multiple level (ML), integrated sector format (ISF), error correction code (ECC) encoding and decoding processes for data storage or communication devices and systems
JP2003167680A (ja) ディスク装置
KR100537577B1 (ko) 스트리밍 오디오비주얼 데이터를 디스크 드라이브에기록하는 방법
JP2004213765A (ja) イレージャ訂正機能の検証に適した記録再生制御装置、同制御装置を備えた記録再生装置、及びイレージャ訂正機能を検証する方法
US6457156B1 (en) Error correction method
US7131052B2 (en) Algebraic decoder and method for correcting an arbitrary mixture of burst and random errors
US6587977B1 (en) o,k,m,/m recording code
JP2006127635A (ja) 情報記憶装置
JP3279501B2 (ja) 大容量記憶装置用コントローラの誤り訂正及び誤り検出方法
JP2004079011A (ja) データ再生方法及びデータ再生装置
TW441195B (en) Signal decoding method
JP2008299978A (ja) ディスク・ドライブ装置及びディスクからのデータ再生方法
JP2845770B2 (ja) ディスクアレイ装置
JP2003177973A (ja) データ処理装置
JP5380556B2 (ja) ディスク記憶装置及びデータ復元方法
JP4652137B2 (ja) Dvdデータにアクセスするための方法
JP2001101020A (ja) 誤り訂正装置およびディスク装置
JP2002343033A (ja) 光ディスク記録方法及び記録再生装置