説明

エラー訂正回路及び記憶装置

【課題】記憶装置の誤り訂正技術に関し、誤り訂正能力を向上する。
【解決手段】データのシンドローム値を計算し、シンドローム値からエラー訂正するエラー訂正回路(30,34,36,38)と、本データを読み出し、エラー訂正不可なら、ミラーデータを読み出し、共に、訂正を失敗した時に、本データとミラーデータとの読出しデータを比較して、誤り箇所を特定する回路(46)と、特定した中から、順次誤り位置と大きさの情報を取り出してシンドローム値を補正する補正回路(48,50)と、特定の誤り位置と大きさで、更にデータを補正する補正回路(40)とを設ける。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、記憶装置や通信装置に使用される誤り訂正符号を含むデータのエラー訂正回路及び記憶装置に関し、特に、ECC(Error Correction Code)を付与したデータブロックの誤り訂正のためのエラー訂正回路及び記憶装置に関する。
【背景技術】
【0002】
磁気ディスク装置等の記憶装置や通信系の分野においては、記録再生過程や、伝送路において生じたデータの誤りを訂正するため、誤り訂正符号(ECC:Error Correction Code)を用いた誤り訂正技術が、広く普及している。
【0003】
このECC符号として、リード・ソロモン(RS:Reed Solomon)符号が、利用されている。RS符号は、記録データに、予めRS符号化を行い、記録再生過程を経て再生されたビット列に対し、RS復号化を行い、ビット列に含まれる誤りを検出・訂正する。即ち、RS符号は、シンボル単位の訂正能力に優れており、特に、バースト誤りの検出、訂正能力に優れている。
【0004】
また、誤り訂正符号技術として、反復復号形式が利用されている。反復復号とECCとを組み合わせて、誤り検出・訂正能力を向上できる(例えば、特許文献1参照)。
【0005】
図16は、従来のRS符号を用いた誤り訂正回路の説明図である。磁気ディスク等の記憶ディスク100から磁気ヘッド等のリード素子102で読み出されたデータ(読み取り信号)は、データ復調回路110で、復調される。データ復調回路110は、例えば、PRチャネル回路と、反復復号器とで構成される。
【0006】
エラー訂正回路130は、ECC復号器で構成される。エラー訂正回路(以下、ECC復号器という)130は、シンドローム演算回路120と、誤り位置解読回路122と、誤りの大きさ解読回路124と、データ補正回路128と、解読エラー判定回路126とを備える。
【0007】
シンドローム演算回路120は、データ復調回路110の復号器からの復号列を受け、復号列のシンドローム値を計算する。誤り位置解読回路122は、計算されたシンドローム値から誤り位置の連立方程式を計算し、誤り位置を特定する。誤りの大きさ解読回路124は、計算されたシンドロームから誤りの大きさの連立方程式を計算し、誤りの大きさを解読する。
【0008】
解読エラー判定回路126は、誤り位置解読回路122の誤り位置と、誤りの大きさ解読回路124の誤りの大きさとから、訂正能力を超えているかを判定し、判定結果を出力する。データ補正回路128は、訂正能力を超えていない場合、特定された誤り位置、誤りの大きさにより、データを補正し、誤り訂正データを出力する。
【0009】
このようなエラー訂正では、例えば、リード・ソロモン(15,11)符号では、符号ブロック数nが「15」、情報ブロック数kが「11」、検査ブロック数(n−k)が「4」であり、訂正可能最大シンボル数は、(n−k)/2=2である。
【特許文献1】特開平11−330985号公報
【発明の開示】
【発明が解決しようとする課題】
【0010】
従来技術では、読出して誤り訂正できなかった場合、再度、データを読み込んで誤り訂正していた。更に、訂正に失敗した場合には、再度これらを読出し誤り訂正を繰り返すだけであった。
【0011】
データの誤りが、ランダム性の誤りであれば、再度読み出すことで、位置と個数が変化するため、誤り数が、ECCの訂正数以下になった場合、データが再現できる。
【0012】
しかしながら、記録密度上がり、媒体欠陥が無視できなくなると、再度読み出しても、毎回、媒体欠陥箇所で、データを誤る。そして、媒体欠陥による誤りが、ECCの訂正能力を超えた場合、データが消滅する異常事態になる。通信速度が速くなった場合も同様である。
【0013】
従って、本発明の目的は、誤り訂正性能を向上するためのエラー訂正回路及び記憶装置を提供することにある。
【0014】
又、本発明の他の目的は、媒体欠陥に対して、誤り訂正能力を向上するためのエラー訂正回路及び記憶装置を提供することにある。
【課題を解決するための手段】
【0015】
この目的の達成のため、記憶装置は、同一のデータが、複数個所に記録された記憶媒体と、前記記憶媒体のデータを読み出すヘッドと、前記ヘッドの読み取り信号を復調する復調回路と、前記復調回路からの読み出しデータのシンドローム値を計算し、前記シンドローム値から誤り位置を特定し、特定した誤り位置の読み出しデータを訂正して、誤り訂正データを出力する誤り訂正回路と、前記ヘッドの読み出し動作を制御する制御回路とを有する。
【0016】
そして、前記誤り訂正回路は、前記シンドローム値を補正する回路と、前記訂正したデータを補正する回路とを有し、前記制御回路は、第1の個所のデータを読み出し、前記第1の個所の読み出しデータの前記誤り訂正回路からの誤り訂正の失敗を受け、第2の個所の同一データを読み出し、前記誤り訂正回路で、前記第2の個所の読み出しデータの誤り訂正を行うとともに、前記第2の個所の読み出しデータの前記誤り訂正回路からの誤り訂正の失敗を受け、前記誤り訂正回路に、補正指示し、前記誤り訂正回路は、前記補正指示に応じて、前記第1の個所と第2の個所の読み出しデータの比較により、誤り箇所を特定し、特定した誤り位置と大きさの情報により、前記シンドローム値を補正して、誤り訂正を行い、前記誤り位置と大きさで、前記誤り訂正されたデータを補正する。
【0017】
又、エラー訂正回路は、入力されたデータのシンドローム値を計算するシンドローム計算部と、前記シンドローム値から誤り位置を特定し、特定した誤り位置の読み出しデータを訂正して、誤り訂正データを出力する誤り訂正部と、前記データと同一のミラーデータを受け、前記両データの比較により、誤り箇所を特定する回路と、前記特定された誤り箇所の前記シンドローム値を補正する回路と、前記訂正したデータを補正する回路とを有する。
【発明の効果】
【0018】
本データを読み出し、エラー訂正不可なら、ミラーデータを読み出し、共に、訂正を失敗した時に、本データとミラーデータとの読出しデータを比較して、誤り箇所を特定する。特定した中から、順次誤り位置と大きさの情報を取り出してシンドローム値を補正して、誤り訂正を行う。更に、ECCで、正常に訂正できた場合に、特定の誤り位置と大きさで、更にデータを補正するため、見掛け上誤り訂正能力が向上する。
【発明を実施するための最良の形態】
【0019】
以下、本発明の実施の形態を、記憶装置、データ読み出し・訂正、データ読み出し・訂正処理、他の実施の形態の順で説明するが、本発明は、この実施の形態に限られない。
【0020】
(記憶装置)
図1は、本発明の一実施の形態の記憶装置のブロック図、図2は、図1のデータ形式としてのガロア体の説明図、図3は、図2のガロア体での加算の説明図、図4は、図2のガロア体での乗算の説明図、図5は、図1の誤り位置解読回路の説明図、図6は、図1の誤りの大きさ解読回路の説明図である。図1では、記憶装置として、磁気ディスク装置を示す。
【0021】
磁気ディスク10は、各トラックは、セクター単位にデータが記録される。この実施の形態では、磁気ディスク10の複数個所に同一のデータを記録する。例えば、データ11Aを記録し、データ11Aのミラーデータ11Bを、磁気ディスクの180度回転した位置に書き込む。尚、ミラーデータ11Bは、データ11Aと同じデータである。
【0022】
このデータは、次のようにして、記録される。記録データは、CRC符号(Cyclic Redundancy Code)が付加され、その後に、MTR符号(Maximum Transition Run Code)やRLL(Run Length Limited)符号などの拘束条件が満たされるデータ列に変換される。そして、そのデータ列に、ECC符号として、RS(Reed Solomon)パリティ列を付加する。
【0023】
ECC符号化されたデータ列は、磁化反転が隣接する箇所で、反転間隔を多少広げる補償処理を施される。記録補償されたデータ列に従い、図示しない記録ヘッド(ライトヘッド)のライト電流を発生し、記録ヘッドを駆動して、磁気ディスク10に記録を行う。
【0024】
次に、再生時を説明する。再生の際は、磁気ディスク10のデータ11A,11Bを、再生ヘッド(リードヘッド)12が読み出し、アナログ電圧(読み出し信号)を復調回路20に出力する。復調回路20は、読み出し信号を、読み出しデータに復調する。復調回路20は、例えば、可変利得アンプ(VGA)、ローパスフィルタ、A/Dコンバータ、FIRフィルタ、反復復号器で構成される。
【0025】
可変利得アンプが、読み出し信号を振幅調整し、ローパスフィルタ(LPF)が、振幅調整されたリード信号の高周波数域をカットし、A/Dコンバータ(ADC)そのアナログ出力をデジタル信号へ変換する。その後、FIR(Finite Impulse Response)フィルタが、PR(Partial Response)波形等化を行った後、反復復号器に出力する。
【0026】
反復復号器は、尤度を用いて反復復号を行う。例えば、Max−log−MAP(Maximum A Posteriori)アルゴリズム、SOVA(Soft-Output Viterbi Algorithm)及び雑音予測機能付SOVA(NPSOVA: Noise Predictive SOVA)などを用いる。
【0027】
反復復号された判定出力は、ECC復号器70に入力し、ECC復号器70は、ECCを用いて、誤り訂正を行う。ECC復号器70は、シンドローム演算部30と、誤り位置多項式解読部34と、誤りの大きさ解読部36と、データ補正部38と、解読エラー判定回路42とを備える。
【0028】
このECC復号器70は、巡回符号で知られているガロア体演算を行う。図2により、ガロア体を説明する。図2は、原始多項式F(x)=x+x+1であるガロア体GF(2)のべき乗表現と、対応するベクトル表現と、対応する10進表現との関係を示す。即ち、4ビットのベクトル表現(2進表現)に対し、10進表現は、「0」〜「15」の値で対応する。一方、べき乗表現(ガロア体表現)は、「0」〜「α14」で、各ベクトル表現に対応する。
【0029】
次に、ガロア体での加算を説明する。図3は、10進表示でのガロア体の加算例を示す。例えば、10進表示の「3」(=α)+「3」(=α)は、10進表示の「0」(=0)であり、10進表示の「3」(=α)+「4」(=α)は、10進表示の「7」(=α10)である。
【0030】
又、ガロア体での乗算を説明する。図4は、10進表示でのガロア体の乗算例を示す。例えば、10進表示の「3」(=α)×「3」(=α)は、10進表示の「5」(=α)であり、10進表示の「3」(=α)+「4」(=α)は、10進表示の「12」(=α)である。
【0031】
図1に戻り、シンドローム値演算部30は、復調回路20からの復号列のシンドロームS〜Sn−k−1を計算し、計算したシンドローム値(係数)を保存する。例えば、リード・ソロモン(15,11)符号では、符号ブロック数nが「15」、情報ブロック数kが「11」、検査ブロック数(n−k)が「4」であり、訂正可能最大シンボル数は、(n−k)/2=2であるから、シンドロームSo〜S3を計算する。
【0032】
誤り位置解読部34は、作成されたシンドローム多項式S〜Sn−k−1から、図5に示す誤り位置に関する連立方程式の誤り位置多項式を計算する。図5の誤り位置に関する連立法定式は、一般式で記載してあり、左辺のシンドロームS(n−k)/2−1〜Sn−k−1を、シンドロームS〜Sn−k−2と、位置Xに関する係数σ1〜σ(n−k)/2との積で表す連立方程式である。
【0033】
この連立方程式を、解いて、誤り多項式を因数分解して、係数σ1〜σ(n−k)/2を演算し、下記式(1)に、位置Xを順次代入し、σe(X)=0となる位置Xを、誤り位置と解読する。この位置Xは、例えば、ブロック番号に対応する。
【0034】
【数1】

【0035】
次に、誤りの大きさ解読部36は、ブロック内の誤りの大きさ(数値)を解読する。誤りの大きさ解読部36は、作成されたシンドローム多項式S〜Sn−k−1と位置X、誤りの大きさの値eとの関係式である図6に示す誤り大きさに関する多項式(連立方程式)を解いて、下記式(2)により、誤りの大きさ(ブロック内の値)e〜e(n−k)/2を演算する。この誤りの大きさeが、例えば、ブロック内のデータ値に対応し、1ブロックが、「0」〜「255」(8ビット)であれば、誤りの大きさは、「1」〜「255」の値をとる。
【0036】
【数2】

【0037】
解読エラー判定回路42は、誤り位置解読部34と、誤りの大きさ解読部36からの誤り位置と、誤りの大きさを受け、訂正能力を越えているかを判定する。そして、制御回路60に訂正可、又は訂正不可を通知する。
【0038】
データ修正回路38は、訂正可能な場合、特定された誤り位置の誤りの大きさ(値)を修正し、誤り訂正データを出力する。
【0039】
本実施の形態では、更に、復調回路20からのデータを保持する読み出しバッファ22と、復調回路20からのミラーデータ11Bと、読み出しバッファ22のデータ11Aとの差分を演算する差分演算器46と、差分演算器46の差分演算結果から、エラー位置/大きさを特定するエラー特定部48を設ける。
【0040】
更に、エラー特定部48のエラー位置/大きさにより、シンドローム演算部30からのシンドローム値S〜Sn−k−1を補正するシンドローム補正部50と、シンドローム演算部30と、シンドローム補正部50との出力を切り替える第1のスイッチ32と、エラー特定部48のエラー位置/大きさにより、データ修正部40からの訂正データを補正するデータ補正部40と、データ修正部38と、データ補正部40との出力を切り替える第2のスイッチ44とを設ける。
【0041】
制御回路60は、図7以下で説明するように、読み取り動作と、ECC復号動作を制御する。
【0042】
(データ読み出し・訂正)
図7は、本データ11A,ミラーデータ11B、差分、シンドローム補正値の関係図、図8は、ミラーデータ11Bのシンドロームと補正されたシンドロームの関係図である。図7及び図8により、図1による誤り訂正動作を説明する。
【0043】
図7は、リード・ソロモン(15,11)符号の例を示し。符号ブロック数nが「15」、情報ブロック数kが「11」、検査ブロック数(n−k)が「4」である。即ち、ブロック番号「0」〜「3」の4ブロックが、検査ブロックであり、ブロック番号「4」〜「14」の11ブロックが、情報ブロックである。
【0044】
各ブロックを構成する本データが、ガロア体表記で、図7のような値とし、ミラーデータが、ガロア体表記で、図7のような値となったとする。図7の例では、本データは、7,10、13番目のブロックで誤りが検出され、そのデータ値が、各々、α、α、αであるとする。即ち、訂正可能最大シンボル数は、(n−k)/2=2を越えている。
【0045】
次に、本データの訂正可能範囲を越えているため、ミラーデータ11Bを読みだす。図7の例では、ミラーデータは、4,7、10番目のブロックで誤りが検出され、そのデータ値が、各々、α10、α、αであるとする。即ち、訂正可能最大シンボル数は、(n−k)/2=2を越えている。
【0046】
本実施例では、本データとミラーデータを比較した場合には、同一位置及び同一大きさの誤りが生じた場合以外は、以下の3つのケースがある。
【0047】
(1)本データだけに誤りがある。図7では、情報ブロック番号13の例である。
【0048】
(2)ミラーデータと本データとが、同一位置に、異なる大きさの誤りが生じた。図7では、情報ブロック番号10の例である。
【0049】
(3)ミラーデータだけに誤りが生じた。図7では、情報ブロック番号4の例である。
【0050】
(1)の場合には、検出したエラー位置と、大きさは、ミラーデータの誤り訂正に無関係である。(2)の場合には、検出したエラーの大きさは、両者の差分である。(3)の場合は、検出したエラー位置と大きさは、ミラーデータに誤りそのものである。
【0051】
従って、本データ、ミラーデータとも誤り訂正不可の場合に、(3)のケースを検出し、ミラーデータのシンドロームから、(3)の誤りのシンドロームを取り除き、補正することにより、ECC訂正前に、ミラーデータの誤り箇所を減らす。これにより、ECCの誤り訂正の能力が向上する。
【0052】
又、ミラーデータだけの誤り位置と、大きさが特定されるため、ECC訂正後、その位置のデータを別途補正する。
【0053】
図1の構成で説明すると、差分演算器46が、ミラーデータ11Bと、読み出しバッファ22のデータ11Aとの差分(図7も参照)を演算する。そして、エラー特定部48が、差分が存在し、且つ(3)のケースの場合を検出し、エラー位置(図7では、ブロック番号4)、大きさ(図7では、ガロア体表記α10)を、シンドローム補正回路50と、データ補正回路40に出力する。
【0054】
図7では、そのエラー位置及び大きさに対応するシンドローム値を示し、4つの項からなる。ここでは、ブロック番号4、大きさα10に対し、α10、α10α、α10α2*4、α10α3*4の4つのシンドローム値である。この時、制御回路60の制御により、第1のスイッチ32は、シンドローム補正回路50を選択し、第2のスイッチ44は、データ補正回路40を選択する。
【0055】
シンドローム補正回路50では、受けたエラー位置と大きさとから、ミラーデータのシンドロームを補正する。図8に示すように、ミラーデータのシンドロームが、S0〜S3である場合に、シンドローム補正回路50は、図7の4つのシンドローム値を、シンドロームS0〜S3に加算して、補正されたシンドロームS’0〜S’3を作成する。
【0056】
このガロア体加算により、図8に示すように、ミラーデータのシンドロームS0〜S3に、4ブロック目に対応するシンドローム値を加算するため、補正されたシンドロームS’0〜S’3は、4ブロック目に対応するシンドローム値がキャンセルされ、図7の7、10ブロック目のみとなる。このため、ECCのエラー訂正可能範囲を越えないため、ミラーデータの補正されたシンドロームから、ECC訂正が可能となる。
【0057】
又、4ブロック目のエラーは、ECC訂正されないため、補正回路40が、4ブロック目のエラーを、通知された位置と、大きさで補正する。
【0058】
このようにして、記憶媒体上に、同じデータを、等分割角度毎に、複数個所に書込んでおき、本データを読み出し、エラー訂正不可なら、ミラーデータを読み出し、共に、訂正を失敗した時に、本データとミラーデータとの読出しデータを比較して、誤り箇所を特定する。特定した中から、順次誤り位置と大きさの情報を取り出してシンドローム値を補正して、誤り訂正を行う。
【0059】
更に、ECCで、正常に訂正できた場合に、特定の誤り位置と大きさで、更にデータを補正するため、見掛け上誤り訂正能力が向上する。
【0060】
(データ読み出し・訂正処理)
次に、制御回路60が実行する読み出し・訂正処理を説明する。図9及び図10は、本発明の一実施の形態の読み出し・訂正処理フロー図、図11乃至図15は、その誤り訂正動作例の説明図である。
【0061】
図11乃至図15を参照して、図9及び図10の処理を説明する。
【0062】
(S10)先ず、読み出し処理では、第1のスイッチ32は、シンドローム演算部30側の「a」を選択し、第2のスイッチ44は、データ修正部38側の「a」を選択している。制御回路60は、アクテイブヘッド12の現在のセクター位置とシリンダ位置を読み取る。周知のように図示しない磁気ディスク10のサーボ情報を、ヘッド12で読み出し、図示しないサーボ復調回路で、読み出し信号を復調し、セクター位置、シリンダ位置を得る。制御回路60は、読み出し対象のセクターとシリンダ位置と、本データのセクター位置、シリンダ位置との距離、及び読み出し対象のセクターとシリンダ位置と、ミラーデータのセクター位置、シリンダ位置との距離とを計算する。
【0063】
(S12)制御回路60は、距離の比較により、ヘッド12の現在位置から最も近い位置のデータの位置にシークする。従って、最初にシークされた位置のデータが、本データとみなす。このように、図1の2つのデータ11A,11Bの内、ヘッドの現在位置に近いデータにアクセスするため、ミラーデータを設けた効果として、アクセスタイムを短縮できる。
【0064】
(S14)制御回路60は、ヘッド12にデータの読み取りを指示する。ヘッド12が読み取った本データ11Aの読み取り信号は、復調回路20で、復調され、読み出しバッファ22に格納される。これとともに、復調された読み出しデータから、シンドローム演算部30が、シンドロームを計算し、誤り位置解読部34に出力する。誤り位置解読部34は、図5で説明したように、誤り位置に関する連立方程式を解いて、誤り位置を解読する。又、誤りの大きさ解読部36は、図6で説明したように、誤りの大きさを解読する。解読エラー判定回路42は、誤り位置解読部34と、誤りの大きさ解読部36からの誤り位置と、誤りの大きさを受け、訂正能力を越えているかを判定する。そして、制御回路60に訂正可、又は訂正不可を通知する。
【0065】
(S16)訂正可の場合、データ修正回路38は、解読した誤り位置と、大きさから、誤り訂正を行い、スイッチ44を介し、制御回路60に出力する。制御回路60は、訂正可の通知を受けると、データ修正回路38の誤り訂正データを取り込み、正常終了する。
【0066】
(S18)一方、ステップS14で、訂正不可の通知を受けると、制御回路60は、ヘッド12の位置を、ミラーデータ11Bの位置にシークする。従って、2回目にシークされた位置のデータを、ミラーデータとみなす。
【0067】
(S20)制御回路60は、ヘッド12にデータの読み取りを指示する。ヘッド12が読み取ったミラーデータ11Bの読み取り信号は、復調回路20で、復調され、復調された読み出しデータから、シンドローム演算部30が、シンドロームを計算し、誤り位置解読部34に出力する。誤り位置解読部34は、図5で説明したように、誤り位置に関する連立方程式を解いて、誤り位置を解読する。又、誤りの大きさ解読部36は、図6で説明したように、誤りの大きさを解読する。解読エラー判定回路42は、誤り位置解読部34と、誤りの大きさ解読部36からの誤り位置と、誤りの大きさを受け、訂正能力を越えているかを判定する。そして、制御回路60に訂正可、又は訂正不可を通知する。訂正可の場合、ステップS16の正常終了に進む。
【0068】
(S22)一方、ステップS20で、訂正不可の通知を受けると、制御回路60の指示により、第1のスイッチ32は、シンドローム補正部50側の「b」を選択し、第2のスイッチ44は、データ補正部40側の「b」に切り替わる。そして、差分演算器46が、復調回路20のミラーデータ11Bと、読み出しバッファ22のデータ11Aとの差分(図11参照)を演算する。そして、エラー特定部48が、差分が存在し、且つ前述の(3)のケースの場合を検出し、エラー位置(図11では、ブロック番号4)、大きさ(図11では、α10=7(10進表記))を、シンドローム補正回路50と、データ補正回路40に出力する。
【0069】
(S24)シンドローム補正回路50では、エラー位置と大きさを順次取り出し、ミラーデータのシンドロームを補正する。図11では、そのエラー位置及び大きさに対応するシンドローム値を示し、4つの項からなる。ここでは、ブロック番号4、大きさα10=7(10進表記)に対し、α10=7(10進表記)、α10α=9(10進表記)、α10α2*4=8(10進表記)、α10α3*4=11(10進表記)の4つのシンドローム値である。以下、説明の理解のため、ガロア体表記と、対応する10進表記とを併用する。図12に示すように、ミラーデータ11Bのシンドロームが、S〜Sである場合に、シンドローム補正回路50は、図11の4つのシンドローム値を、シンドロームS〜Sに加算して、補正されたシンドロームS’〜S’を作成する。
【0070】
このガロア体加算により、図8に示すように、ミラーデータのシンドロームS0〜S3に、4ブロック目に対応するシンドローム値を加算するため、補正されたシンドロームS’〜S’は、4ブロック目に対応するシンドローム値がキャンセルされ、図11の7、10ブロック目のみとなる。このため、ECCのエラー訂正可能範囲を越えないため、ミラーデータの補正されたシンドロームから、ECC訂正が可能となる。
【0071】
(S26)補正されたシンドロームS’〜S’は、スイッチ50を介し、誤り位置解読部34に出力される。誤り位置解読部34は、図5で説明したように、誤り位置に関する連立方程式を解いて、誤り位置を解読する。図13は、図12の例の誤り位置連立方程式を示す。即ち、誤り位置連立方程式は、以下の(3)式のようである。
【0072】
【数3】

この連立方程式を解き、σとσとを、図13のように、計算する。更に、図5で説明した式(2)は、この例では、図14に示すように、下記式(4)である。
【0073】
【数4】

図14に示すように、(4)式に、計算したσ1、σ2を代入し、且つX1を、「1」から順に代入すると、σ(1)〜σ(14)の値が得られる。この値が、「0」の場合の位置Xのべき乗表記の指数が、誤り位置として、解読される。この例では、10進表記X=7,11のべき乗表記α10、αの指数である「10」、「7」が、誤り位置として、解読される。
【0074】
誤りの大きさ解読部36は、図6で説明したように、誤りの大きさを解読する。図15に示すように、解読した誤り位置X1=11(べき乗表記=α)、X2=7(=べき乗表記α10)として、図6のように、各々位置の誤りの大きさe1,e2を計算する。即ち、誤りの大きさの連立方程式は、(2)式から下記式(5)となる。
【0075】
【数5】

【0076】
式(5)を解いて、Δを計算し、誤りの大きさe1,e2を、図15のように計算する。得られた結果は、e1=11(べき乗表記=α)、e2=4(べき乗表記=αとなり、図11と一致する。解読エラー判定回路42は、誤り位置解読部34と、誤りの大きさ解読部36からの誤り位置と、誤りの大きさを受け、訂正能力を越えているかを判定する。そして、制御回路60に訂正可、又は訂正不可を通知する。
【0077】
(S28)訂正可の場合、データ修正回路38は、解読した誤り位置と、大きさから、誤り訂正を行い、スイッチ44を介し、データ補正部40に出力する。補正回路40が、訂正から除外されたブロック(図11では、4ブロック目)のデータを、通知された位置と、大きさで補正する。制御回路60は、訂正可の通知を受けると、データ修正回路38の誤り訂正データを取り込み、正常終了する。
【0078】
(S30)一方、誤り訂正不可の場合には、制御回路60は、全ての誤り候補を取り出したかを判定する。制御回路60は、全ての誤り候補を取り出していないと判定すると、ステップS24に戻る。
【0079】
(S32)制御回路60は、全ての誤り候補を取り出したと判定すると、読み出し回数が、許容回数を越えたかを判定する。読み出し回数が、許容回数を越えていない場合には、図9のステップS18に戻る。即ち、再度、ミラーデータを読み出し、訂正する。一方、読み出し回数が、許容回数を越えていると、異常終了する。
【0080】
このように、記憶媒体上に、同じデータを、複数個所に書込んでおき、本データを読み出し、エラー訂正不可なら、ミラーデータを読み出し、共に、訂正を失敗した時に、本データとミラーデータとの読出しデータを比較して、誤り箇所を特定する。特定した中から、順次誤り位置と大きさの情報を取り出してシンドローム値を補正して、誤り訂正を行う。更に、ECCで、正常に訂正できた場合に、特定の誤り位置と大きさで、更にデータを補正するため、見掛け上誤り訂正能力が向上する。
【0081】
(他の実施の形態)
前述の実施の形態では、ECC符号として、リードソロモン符号で説明したが、BCH(Bose Chaudhari Hocquengham)符号等の他の符号を利用できる。又、誤り位置解読部34は、バーレカンプマッシ(BM)法により、シンドローム多項式を計算しても良い。バーレカンプマッシ法では、周知のように、多項式の初期値から始めて、生成多項式の次数と同じ回数だけ多項式の更新を繰り返すことで、誤り位置多項式を計算する。
【0082】
更に、磁気ディスク装置の記憶装置の適用の例で説明したが、光ディスク装置等の他の媒体記憶装置や、通信装置にも適用できる。
【0083】
以上、本発明を、実施の形態で説明したが、本発明は、その趣旨の範囲内で種々の変形が可能であり、これを本発明の範囲から排除するものではない。
【0084】
(付記1)同一のデータが、複数個所に記録された記憶媒体のデータを読み出すヘッドと、前記ヘッドの読み取り信号を復調する復調回路と、前記復調回路からの読み出しデータのシンドローム値を計算し、前記シンドローム値から誤り位置を特定し、特定した誤り位置の読み出しデータを訂正して、誤り訂正データを出力する誤り訂正回路と、前記ヘッドの読み出し動作を制御する制御回路とを有し、前記誤り訂正回路は、前記シンドローム値を補正する回路と、前記訂正したデータを補正する回路とを有し、前記制御回路は、第1の個所のデータを読み出し、前記第1の個所の読み出しデータの前記誤り訂正回路からの誤り訂正の失敗を受け、第2の個所の同一データを読み出し、前記誤り訂正回路で、前記第2の個所の読み出しデータの誤り訂正を行うとともに、前記第2の個所の読み出しデータの前記誤り訂正回路からの誤り訂正の失敗を受け、前記誤り訂正回路に、補正指示し、前記誤り訂正回路は、前記補正指示に応じて、前記第1の個所と第2の個所の読み出しデータの比較により、誤り箇所を特定し、特定した誤り位置と大きさの情報により、前記シンドローム値を補正して、誤り訂正を行い、前記誤り位置と大きさで、前記誤り訂正されたデータを補正することを特徴する記憶装置。
【0085】
(付記2)前記シンドローム値を補正する回路は、前記第2の個所の読み出しデータのシンドローム値を補正することを特徴とする付記1の記憶装置。
【0086】
(付記3)前記誤り訂正回路は、前記第1の個所と第2の個所の読み出しデータの比較により、前記第2の個所のデータのみの誤り箇所を特定する誤り特定回路を有することを特徴とする付記1の記憶装置。
【0087】
(付記4)前記誤り訂正回路は、読み出しデータのシンドローム値を計算する回路と、前記シンドローム値から誤り位置を特定する解読回路と、前記特定した誤り位置の読み出しデータを訂正して、誤り訂正データを出力するデータ修正回路とを有することを特徴とする付記1の記憶装置。
【0088】
(付記5)前記データは、検査ブロックと情報ブロックとで構成されたリード・ソロモン符号化されたデータであることを特徴とする付記1の記憶装置。
【0089】
(付記6)前記誤り訂正回路は、前記第1の個所の読み出しデータを保持する読み出しバッファと、前記第1の個所と第2の個所の読み出しデータを比較する比較回路と、前記比較回路の出力から、前記第2の個所のデータのみの誤り箇所を特定する誤り特定回路とを有することを特徴とする付記3の記憶装置。
【0090】
(付記7)前記制御回路は、前記第1の個所の読み出しデータの前記誤り訂正回路の誤り訂正成功を受け、前記誤り訂正回路の誤り訂正データを取り込み、且つ前記第2の個所のデータの読み出し処理を禁止することを特徴とする付記1の記憶装置。
【0091】
(付記8)前記制御回路は、前記第2の個所の読み出しデータの前記誤り訂正回路の誤り訂正成功を受け、前記誤り訂正回路の誤り訂正データを取り込み、且つ前記補正指示を禁止することを特徴とする付記7の記憶装置。
【0092】
(付記9)入力されたデータのシンドローム値を計算するシンドローム計算部と、前記シンドローム値から誤り位置を特定し、特定した誤り位置の読み出しデータを訂正して、誤り訂正データを出力する誤り訂正部と、前記データと同一のミラーデータを受け、前記両データの比較により、誤り箇所を特定する回路と、前記特定された誤り箇所の前記シンドローム値を補正する回路と、前記訂正したデータを補正する回路とを有することを特徴するエラー訂正回路。
【0093】
(付記10)前記シンドローム値を補正する回路は、前記ミラーデータのシンドローム値を補正することを特徴とする付記9のエラー訂正回路。
【0094】
(付記11)前記誤り訂正回路は、前記両データの比較により、前記ミラーデータのみの誤り箇所を特定する誤り特定回路を有することを特徴とする付記9のエラー訂正回路。
【0095】
(付記12)前記誤り訂正回路は、前記データのシンドローム値を計算する回路と、前記シンドローム値から誤り位置を特定する解読回路と、前記特定した誤り位置の読み出しデータを訂正して、誤り訂正データを出力するデータ修正回路とを有することを特徴とする付記9のエラー訂正回路。
【0096】
(付記13)前記データは、検査ブロックと情報ブロックとで構成されたリード・ソロモン符号化されたデータであることを特徴とする付記9のエラー訂正回路。
【0097】
(付記14)前記誤り訂正回路は、前記データを保持する読み出しバッファと、前記バッファのデータと前記ミラーデータを比較する比較回路と、前記比較回路の出力から、前記ミラーデータのみの誤り箇所を特定する誤り特定回路とを有することを特徴とする付記11のエラー訂正回路。
【0098】
(付記15)前記シンドローム値を計算する回路の出力側を、前記シンドローム値を補正する回路と、前記誤り訂正部とのいずれかに接続する第1のスイッチと、前記誤り訂正部の出力側を、前記データ補正回路に選択的に接続する第2のスイッチとを更に有することを特徴とする付記9のエラー訂正回路。
【0099】
(付記16)入力されたデータの前記誤り訂正部の誤り訂正成功を受け、前記誤り訂正部の誤り訂正データを取り込む制御回路を更に有することを特徴とする付記9のエラー訂正回路。
【0100】
(付記17)前記制御回路は、前記ミラーデータの前記誤り訂正部の誤り訂正成功を受け、前記誤り訂正部の誤り訂正データを取り込むことを特徴とする付記16のエラー訂正回路。
【産業上の利用可能性】
【0101】
本データを読み出し、エラー訂正不可なら、ミラーデータを読み出し、共に、訂正を失敗した時に、本データとミラーデータとの読出しデータを比較して、誤り箇所を特定する。特定した中から、順次誤り位置と大きさの情報を取り出してシンドローム値を補正して、誤り訂正を行う。更に、ECCで、正常に訂正できた場合に、特定の誤り位置と大きさで、更にデータを補正するため、見掛け上誤り訂正能力が向上する。
【図面の簡単な説明】
【0102】
【図1】本発明の一実施形態を示す記憶装置の再生系の構成図である。
【図2】図1に使用するガロア体表記の説明図である。
【図3】図2のガロア体加算の説明図である。
【図4】図2のガロア体乗算の説明図である。
【図5】図1の誤り位置解読部の説明図である。
【図6】図1の誤りの大きさ解読部の説明図である。
【図7】本発明のエラー訂正回路のエラー特定動作の説明図である。
【図8】本発明のシンドローム補正動作の説明図である。
【図9】図1の制御回路の読み出し処理フロー図(その1)である。
【図10】図1の制御回路の読み出し処理フロー図(その2)である。
【図11】図9及び図10のエラー特定動作の説明図である。
【図12】図9及び図10のシンドローム補正動作の説明図である。
【図13】図9及び図10の誤り位置解読の連立方程式の説明図である。
【図14】図9及び図10の誤り位置特定の説明図である。
【図15】図9及び図10の誤りの大きさ解読の説明図である。
【図16】従来の誤り訂正回路の説明図である。
【符号の説明】
【0103】
10 磁気ディスク(記憶媒体)
11A 本データ
11B ミラーデータ
12 ヘッド
20 復調回路
22 読み出しバッファ
30 シンドローム演算部
32 第1のスイッチ
34 誤り位置解読部
36 誤りの大きさ解読部
38 データ修正部
40 データ補正部
42 解読エラー判定回路
46 比較回路
48 エラー特定回路
50 シンドローム補正回路
60 制御回路
70 ECC復号器

【特許請求の範囲】
【請求項1】
同一のデータが、複数個所に記録された記憶媒体のデータを読み出すヘッドと、
前記ヘッドの読み取り信号を復調する復調回路と、
前記復調回路からの読み出しデータのシンドローム値を計算し、前記シンドローム値から誤り位置を特定し、特定した誤り位置の読み出しデータを訂正して、誤り訂正データを出力する誤り訂正回路と、
前記ヘッドの読み出し動作を制御する制御回路とを有し、
前記誤り訂正回路は、
前記シンドローム値を補正する回路と、
前記訂正したデータを補正する回路とを有し、
前記制御回路は、第1の個所のデータを読み出し、前記第1の個所の読み出しデータの前記誤り訂正回路からの誤り訂正の失敗を受け、第2の個所の同一データを読み出し、前記誤り訂正回路で、前記第2の個所の読み出しデータの誤り訂正を行うとともに、前記第2の個所の読み出しデータの前記誤り訂正回路からの誤り訂正の失敗を受け、前記誤り訂正回路に、補正指示し、
前記誤り訂正回路は、前記補正指示に応じて、前記第1の個所と第2の個所の読み出しデータの比較により、誤り箇所を特定し、特定した誤り位置と大きさの情報により、前記シンドローム値を補正して、誤り訂正を行い、前記誤り位置と大きさで、前記誤り訂正されたデータを補正する
ことを特徴する記憶装置。
【請求項2】
前記シンドローム値を補正する回路は、
前記第2の個所の読み出しデータのシンドローム値を補正する
ことを特徴とする請求項1の記憶装置。
【請求項3】
前記誤り訂正回路は、
前記第1の個所と第2の個所の読み出しデータの比較により、前記第2の個所のデータのみの誤り箇所を特定する誤り特定回路を有する
ことを特徴とする請求項1の記憶装置。
【請求項4】
入力されたデータのシンドローム値を計算するシンドローム計算部と、
前記シンドローム値から誤り位置を特定し、特定した誤り位置の読み出しデータを訂正して、誤り訂正データを出力する誤り訂正部と、
前記データと同一のミラーデータを受け、前記両データの比較により、誤り箇所を特定する回路と、
前記特定された誤り箇所の前記シンドローム値を補正する回路と、
前記訂正したデータを補正する回路とを有する
ことを特徴するエラー訂正回路。
【請求項5】
前記誤り訂正回路は、
前記データのシンドローム値を計算する回路と、
前記シンドローム値から誤り位置を特定する解読回路と、
前記特定した誤り位置の読み出しデータを訂正して、誤り訂正データを出力するデータ修正回路とを有する
ことを特徴とする請求項4のエラー訂正回路。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate


【公開番号】特開2010−152960(P2010−152960A)
【公開日】平成22年7月8日(2010.7.8)
【国際特許分類】
【出願番号】特願2008−328178(P2008−328178)
【出願日】平成20年12月24日(2008.12.24)
【出願人】(309033264)東芝ストレージデバイス株式会社 (255)
【Fターム(参考)】