誤り訂正回路及びデータ記憶装置
【課題】インタリーブされたデータ列にECC冗長シンボルを作成し、ECC符号化するECC符号器において、バーストエラーに対する訂正能力を向上する。
【解決手段】データ列をインタリーブする際に、データ列の冗長シンボルの挿入位置のデータを、順番のインタリーブ位置からスキップして、次のインタリーブ位置に振り分け、各インタリーブのデータ列の冗長シンボルを生成する。このため、データ列でのインタリーブの並びが、均一に分散し、バーストエラーに対する訂正能力を向上できる。
【解決手段】データ列をインタリーブする際に、データ列の冗長シンボルの挿入位置のデータを、順番のインタリーブ位置からスキップして、次のインタリーブ位置に振り分け、各インタリーブのデータ列の冗長シンボルを生成する。このため、データ列でのインタリーブの並びが、均一に分散し、バーストエラーに対する訂正能力を向上できる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、インタリーブされたデータ列の誤り訂正符号(ECC)を作成し、データ列に誤り訂正符号(ECC)を付加する誤り訂正回路及びデータ記憶装置に関する。
【背景技術】
【0002】
信号再生分野において、誤り訂正技術の重要性が増加している。特に、ECC(Error Correction Code)による誤り訂正方法は、広く利用されている。例えば、ハードディスクドライブ(HDD)では、データを、ディスク媒体に書きこむ際に、データからECCの冗長シンボルを作成し、データに付加し、付加したデータ列を書き込む。
【0003】
この際に、磁気記録では、符号に拘束条件を与えている。例えば、RLL(Run Length Limited)の拘束長を与えている。このため、このRLLの拘束長を守るために、ECCの冗長シンボルを、RLLでエンコード(符号化)されたデータの間に、挿入する方法を採用している。
【0004】
一方、一般に、訂正コードワードが、そのECCの訂正可能コード長を超えた場合、インタリーブを用いて、訂正を行っている。HDDでの、ECCのインタリーブは、バーストエラーを、各インタリーブに分散することが主な目的であり、ディスク媒体に書き込むデータを、順に、各インタリーブに割り当てる方法を採用している。
【0005】
図8は、従来のインタリーブにおけるECC符号化方法の説明図である。図8は、4個のインタリーブを持ち、8シンボル毎に、冗長シンボルが挿入される例で説明する。
【0006】
図8において、データ100のブロック内の数字が、シンボル番号である。例えば、データ100は、3300シンボルで構成される。4インタリーブである場合には、データ100のシンボルを順番に、4つのインタリーブに振り分ける。この4つのインタリーブブロック102毎に、図8の横方向に、ECCの冗長シンボルを生成する。
【0007】
例えば、インタリーブ1には、冗長シンボルP1−1,P1−2,・・・、P1−32を、インタリーブ2には、P2−1〜P2−32,インタリーブ3には、P3−1〜P3−32,インタリーブ4には、P4−1〜P4−32を生成する。
【0008】
生成した冗長シンボルを、元のデータ列100の8シンボル毎に、9シンボル番目毎の位置に挿入する。従って、元のデータ列100の8シンボル毎に、ECCの冗長シンボルが挿入されたデータ列106が得られる。このデータ列を、ディスク媒体に記録する。
【0009】
このインタリーブにより、データシンボルは、4シンボル毎に、異なるECCの冗長シンボルが付与されるため、バーストエラーが生じた場合、例えば、データシンボルD1〜D8にバーストエラーが生じても、各インターリーブにエラーが分散され、インタリーブのECCの冗長シンボルを用いて、訂正が可能となる。
【0010】
このような複数インタリーブでのECC符号化は、例えば、特許文献1等に記載されている。
【先行技術文献】
【特許文献】
【0011】
【特許文献1】特開2006−031825号公報
【発明の概要】
【発明が解決しようとする課題】
【0012】
従来は、ECCの冗長シンボルを、インタリーブ毎に、生成した後、その冗長シンボルを、ユーザーデータに挿入していたため、データ列内で、インタリーブされたデータブロックの位置がずれ、均等にインタリーブを分散されなくなる場合がある。その結果、同じインタリーブに属するシンボルが連続して、ディスク媒体に書き込まれる部分が出現し、バーストエラーに対して、同じインタリーブに、エラーが偏ってしまう。
【0013】
例えば、図9のデータ列110では、同じインタリーブに属するECCの冗長シンボルP1−1と、データシンボルD9が連続しており、矢印のようなバーストエラーが発生した場合、インタリーブブロック112で見ると、インタリーブ1には、エラーが2個、インタリーブ2には、エラーが1個、インタリーブ3には、エラーが0個、インタリーブ4には、エラーが1個となってしまい、エラーに偏りが生じる。
【0014】
従って、本発明の目的は、符号化の拘束長を維持しつつ、データ列内で、同一インタリーブのデータシンボルとECCの冗長シンボルとが、連続することを防止するための誤り訂正回路及びデータ記憶装置を提供することにある。
【課題を解決するための手段】
【0015】
この目的の達成のため、誤り訂正回路は、データ列を、インタリーブ数M(M>=2)の各インタリーブ位置に振り分け、各インタリーブされたデータ列に対し、冗長シンボルを作成し、前記データ列のN(N>=2)シンボル毎に、前記データ列に前記作成した冗長シンボルを挿入して、ECC符号化データを作成するECC符号器と、前記冗長シンボルが挿入されたデータ列を、インタリーブ数M(M>=2)の各インタリーブ位置に振り分け、各インタリーブされたデータ列に対し、各インタリーブされたデータ列の冗長シンボルを用いて、誤り訂正するECC復号器とを有し、前記ECC符号器は、前記データ列の前記冗長シンボルの挿入位置に対応する各データを、振り分ける順番のインタリーブ位置の次のインタリーブ位置に、振り分けて、前記各インタリーブされたデータ列に対し、冗長シンボルを作成する。
【0016】
又、データ記憶装置は、記録データ列を、インタリーブ数M(M>=2)の各インタリーブ位置に振り分け、各インタリーブされたデータ列に対し、冗長シンボルを作成し、前記データ列のN(N>=2)シンボル毎に、前記データ列に前記作成した冗長シンボルを挿入して、ECC符号化データを作成するECC符号器と、前記ECC符号器からの前記ECC符号化データを、記録媒体に記録する記録ユニットと、前記記録媒体から前記冗長シンボルが挿入されたデータ列を読み出す読み出しユニットと、前記読み出された冗長シンボルが挿入されたデータ列を、インタリーブ数M(M>=2)の各インタリーブ位置に振り分け、各インタリーブされたデータ列に対し、前記読み出された冗長シンボルが挿入されたデータ列を、各インタリーブされたデータ列の冗長シンボルを用いて、誤り訂正するECC復号器とを有し、前記ECC符号器は、前記データ列の前記冗長シンボルの挿入位置に対応する各データを、振り分ける順番のインタリーブ位置の次のインタリーブ位置に、振り分けて、前記各インタリーブされたデータ列に対し、冗長シンボルを作成する。
【発明の効果】
【0017】
データ列をインタリーブする際に、データ列の冗長シンボルの挿入位置のデータを、順番のインタリーブ位置からスキップして、次のインタリーブ位置に振り分け、各インタリーブのデータ列の冗長シンボルを生成するため、データ列でのインタリーブの並びが、均一に分散し、バーストエラーに対する訂正能力を向上できる。
【図面の簡単な説明】
【0018】
【図1】本発明のデータ記憶装置の一実施の形態の外観図である。
【図2】本発明の一実施の形態のデータ記憶装置の記録再生系のブロック図である。
【図3】本発明の一実施の形態のECC符号化処理の説明図である。
【図4】図3の一実施の形態のバーストエラー発生時の訂正処理の説明図である。
【図5】図2のECC符号器のブロック図である。
【図6】図2のECC復号器のブロック図である。
【図7】図6のECC訂正回路のブロック図である。
【図8】従来のインタリーブによるECC符号化方法の説明図である。
【図9】従来のECC符号化方法の訂正能力の説明図である。
【発明を実施するための形態】
【0019】
以下、本発明の実施の形態を、データ記憶装置、ECC符号化、ECC符号化及び復号化構成、他の実施の形態の順で説明する。
【0020】
(データ記憶装置)
図1は、本発明のデータ記憶装置の一実施の形態の外観図である。図1は、データ記憶装置として、磁気ディスク装置(ハードディスクドライブ)を例に示す。図1に示すように、ディスクエンクロージャ(DEという)1は、磁気ディスク装置の各構成要素を収容する。DE1内では、磁気記録媒体である磁気ディスク3が、スピンドルモータ4の回転軸に設けられている。
【0021】
DE1に取り付けられたスピンドルモータ4は、磁気ディスク3を回転する。アクチュエータ(VCMという)5は、アーム(ヘッドアクチュエータという)52を回転する。アーム52に設けられたサスペンションの先端には、磁気ヘッド53が設けられている。従って、VCM5は、磁気ヘッド53を磁気ディスク3の半径方向に移動する。アクチュエータ5は、回転軸を中心に回転するボイスコイルモータ(VCM)で構成される。
【0022】
図1では、磁気ディスク装置に、1枚の磁気ディスク3が搭載され、2つの磁気ヘッド53が、同一のアクチュエータ5で同時に駆動される。磁気ヘッド53は、リード素子と、ライト素子とからなる。磁気ヘッド53は、スライダに、磁気抵抗(MR)素子を含むリード素子を積層し、その上にライトコイルを含むライト素子を積層して、構成される。
【0023】
磁気ディスク3の外側には、磁気ヘッド53を磁気ディスク3から退避し、パーキングするためのランプ機構54が設けられる。
【0024】
又、図1のDE1の下部には、プリント回路アッセンブリ(制御回路部)が設けられ、プリント回路アッセンブリには、図2以下で説明するハードディスクコントローラ(HDC)、マイクロコントローラ(MCU)、リード/ライトチャネル回路(RDC)、サーボコントロール回路、データバッファ(RAM)、ROM(リードオンリーメモリ)が設けられる。
【0025】
図2は、本発明の一実施の形態の記録再生系の主要部の回路ブロック図である。図2に示すように、磁気ディスク装置の記録再生系は、大きく分けて、ハードディスクコントローラ(HDC)8、リードチャネル(RDC)7、そしてプリアンプ6とからなる。
【0026】
先ず、記録系を説明する。記録データ列は、HDC8に入力する。HDC8内では、CRC符号器80は、記録データからCRC(Cyclic Redundacy Code)を作成し、記録データ列に作成したCRCを付加する。記録(RLL)符号器82は、CRCを付加された記録データ列を、RLL(Run Length Limited)符号などの拘束条件が満たされる列に変換する。そして、ECC符号器83は、記録符号器82の出力データ列に、ECC(Error Correction Code)の冗長シンボルを付加する。
【0027】
HDC8のECC符号器83からの出力データ列は、RDC7に入力する。RDC7では、ライト同期補償器71が、出力データ列を、ライトクロックに同期して、補正する。このライト同期補償されたデータ列を、ドライバ72が、記録データ列に増幅し、プリアンプ6に送出する。
【0028】
プリアンプ6では、ドライバ60が、この記録データ列に従い、記録ヘッド53−1へライト電流を発生する。
【0029】
次に、再生系を説明する。再生ヘッド53−2からのアナログ電圧は、プリアンプ6のアンプ62によって、増幅された後、RDC7に出力される。RDC7においては、増幅されたアナログ信号が、可変利得アンプ(VGA:Variable Gain Amp)73、ローパスフィルタ(LPF)74、AD(アナログ・デジタル)コンバータ(ADC)75を経由して、デジタル信号へ変換される。
【0030】
FIR(Finite Impulse Response)フィルタ76が、PR波形等化を行った後、ビタビ(Viterbi)検出器などの反復復号器78が、最尤復号を行う。
【0031】
反復復号器78から出力された復号ビット列は、HDC8のECC復号器85に入力される。ECC復号器85は、リードソロモン(RS)符号を用いて、誤り訂正を行う。ECC復号が成功した場合は、ECC復号器85の出力データ列は、記録(RLL)復号器87、CRC復号器89を経て、再生データとして出力される。
【0032】
図3は、図2のECC符号器83の符号化処理の説明図、図4は、図3による符号化データのバーストエラーの訂正動作の説明図である。図3では、図8と同様のデータ列100を、4インタリーブし、8シンボル毎に、冗長シンボルを挿入する例を示す。
【0033】
まず、ECCの冗長シンボル生成の説明を行う。冗長シンボル生成を行うために、データ入力する際、冗長シンボル(ECC)生成回路は、1データシンボル入力毎に、そのデータを入力するインタリーブ番号を「1」増加させていき、インタリーブ番号が、M(図3では、「4」)まで、行ったら、1番目のインタリーブに戻すという操作繰り返す。ただし、冗長シンボルが挿入される部分は、インタリーブをスキップするため、入力されたデータが、(N−1)シンボルの倍数になるときは(図3では、N=9)、次に、データを入力するインタリーブ番号を、「2」増加する。この結果、RLLでエンコードされたデータ列の各シンボルの属するインタリーブが、データ先頭から最後に冗長シンボルが挿入される部分までの間、(N−1)シンボル毎に、1スキップされることになる。
【0034】
図3で具体的に説明する。ECC生成回路は、インタリーブ毎に、図3のインタリーブブロック200の横方向に、1インタリーブにつき、32シンボル、4インタリーブで128シンボルの冗長シンボルを生成する。ここで、インタリーブブロック200において、9×L(L=1,2,3,・・、128)シンボル目は、ECCの冗長シンボルのために空けておくので、ECCの冗長シンボル生成回路は、8×128=1024シンボル目まで、8シンボル毎に、1インタリーブスキップする。例えば、データシンボルD9は、インタリーブ1に入力されず、インタリーブ2に入力され、データシンボルD17は、インタリーブ2に入力されず、インタリーブ3に入力される。
【0035】
このECCの冗長シンボル生成回路では、インタリーブブロックにおいて、スキップされた部分のデータは、左につまるので、各インタリーブとデータシンボルとの対応を示すインタリーブブロック200は、データシンボルが左に詰まったブロック202となり、このインタリーブブロック202の横方向に、冗長シンボルを生成することと同じになる。即ち、インタリーブ1は、データシンボルD1,D5,D12,・・から、冗長シンボルを生成する。
【0036】
次に、冗長シンボルの挿入の説明を行う。冗長シンボル生成において、入力データの各シンボルの属するインタリーブが、(N−1)シンボル毎に、1スキップされているので、挿入部分で、スキップされたインタリーブに属する冗長シンボルを、1シンボルずつ順に挿入していく。
【0037】
ここで、Iを「1」から「T」(尚、Tは、総冗長シンボル数)までの整数とすると、スキップされたインタリーブの番号は、データ先頭から、順に、I×N%M(=(I×N)/Mの余り)(但し、(I×N)%M=0のときは、M)となる。つまり、(I×N%M)番目のインタリーブの冗長シンボルが、(N−1)シンボル毎に挿入される。
【0038】
図3では、N=9,M=4であるから、RDCへの入力データフォーマット204は、以下のように作成される。I=1では、(I×N%M)=9%4=1であるから、1インタリーブ目の冗長シンボルP1−1を、N=9番目に挿入する。I=2では、18%2=2であるから、2インタリーブ目の冗長シンボルP2−1を、N*2=18番目に挿入する。I=3では、27%3=3となるので、3インタリーブ目の冗長シンボルP3−1を、N*3=27番目に挿入する。I=4では、36%4=0となるので、4インタリーブ目の冗長シンボルP4−1を36番目に挿入する。尚、「0」は、「4」として扱う。
【0039】
データをリードし、ECC復号するときには、挿入されているI×N番目(I=1〜総冗長シンボル数)の冗長シンボルを、I×N%M(I×N%M=0のときは、M)番目のインタリーブに戻した後、冗長シンボル生成時と同様に、データ先頭から最後に冗長シンボルが挿入される部分までの間、(N−1)シンボル毎に、次の1インタリーブをスキップして、各インタリーブのシンドロームを生成する。エラーがあった場合、通常のECC訂正を行う。
【0040】
このように、記録系には、インタリーブブロックで、図3のように、空けておいた部分に、各インタリーブの冗長シンボルが挿入され、図3のデータ列204の順番で送信される。このため、図4のデータ列において、矢印のようなバーストエラーが発生した場合、図4の対応するインタリーブブロック202−1に示すように、各インタリーブにエラーが、1個ずつとなり、エラーに偏りが生じない。即ち、図4のインタリーブブロック202−1のブロックの下線を引いた部分が、バーストエラーに対応し、各インタリーブ1〜4で、エラーが、1個ずつとなる。
【0041】
このように、あらかじめ冗長シンボルを挿入する部分のインタリーブをとばして、冗長シンボルを生成する。その後、とばされた部分のインタリーブにあてはまる冗長シンボルを、順に挿入していく。これにより、媒体に記録されるデータのインタリーブの並びが、均一に分散する。尚、デコードの際も、生成した順序と同じ順序で、シンドローム(Syndrome)を生成し、訂正を行う。
【0042】
(ECC符号化及び復号化構成)
次に、ECC符号化及び復号化構成を説明する。図5は、図2のECC符号器83のブロック図である。図5において、ECC符号器83は、FIFO(Fast In Fast Out)メモリ10と、ECC生成回路12と、セレクタ16とで構成される。
【0043】
RLL符号化されたデータ列(セクタデータ)は、FIFOメモリ10と、ECC生成回路12に並列に入力される。ECC生成回路12は、セクタデータが、全部入力された時点で、ECCの冗長シンボル生成を完了する。セレクタ16は、セクタデータの全部が、FIFOメモリ10、ECC生成回路12へ入力された後、FIFOメモリ10から出力されるセクタデータの8シンボルおきに、ECC生成回路12からのECCのパリティを挿入し、データ列を出力する。
【0044】
ECC生成回路12は、インタリーブ回路20と、各インタリーブのECC生成回路22−1〜22−4と、セレクタ24とで構成される。インタリーブ回路20には、RLL符号化データ列が、D1,D2,D3,・・・の順に、入力される。インタリーブ回路20は、この順番で、入力されるデータ列を、それぞれのインタリーブのECC生成回路22−1〜22−4へ振り分ける順番を、従来方式と変更し、前述のように、1024シンボル目まで、データが8シンボル入力される毎に、入力されるインタリーブを、1つスキップする。
【0045】
各インタリーブのECC生成回路22−1〜22−4は、入力されたデータシンボルから、ECCのパリテイを生成する。例えば、インタリーブのECC生成回路22−1〜22−4は、入力されたデータシンボルD1,D5,D12,D16,・・から、ECCのパリテイP1−1.P1−2,P1−3、・・・を生成する。
【0046】
セレクタ24は、インタリーブ番号の順番で、各インタリーブのECC生成回路22−1〜22−4からのECCのパリテイを選択し、ECCパリテイを、P1−1,P2−1,P3−1,P4−1の順で、出力する。
【0047】
このようにして、図3で説明したような、ECC符号化されたデータ列が、得られる。
【0048】
次に、ECC復号化構成を説明する。図6は、図2のECC復号器85のブロック図、図7は、図6のECC訂正回路のブロック図である。
【0049】
図6に示すように、ECC復号器85は、データ並び替え回路30と、FIFOメモリ32と、ECC訂正回路34とで構成される。
【0050】
データ並び替え回路30は、磁気ディスク3から読み取られたセクタデータを、RDC7(図2参照)より、受ける。並び替え回路30は、8データシンボル毎に、ECCパリテイが付加されたデータ列から、ECCパリテイを抜き出し、データシンボル列D1,D2.・・・の後ろに、ECC(冗長シンボル)パリテイP1−1,P2−1,P3−1,P4−1,P1−2、P2−2・・に置き換える。
【0051】
この置き換えられたデータ列は、FIFOメモリ32へ格納されると同時に、ECC訂正回路34へ入力される。ECC訂正回路34は、データシンボル列と、ECCの冗長シンボルから、ECCのシンドロームを生成し、誤り位置を求める。そして、ECC訂正回路34は、FIFOメモリ32内のデータシンボルに対して、誤り訂正を行う。訂正が完了すると、FIFOメモリ32から、データシンボル列D1,D2,D3,・・・が、RLL復号器87へ出力される。出力されたデータ列は、RLL復号器87で復号される。
【0052】
図7により、ECC訂正回路34を説明する。ECC訂正回路34は、インタリーブ回路40と、各インタリーブのシンドローム計算回路42−1〜42−4と、セレクタ44と、BMA(バーレカンプマッシ法の演算器)46と、チエーンサーチ実行回路48とを有する。
【0053】
インタリーブ回路40は、データ並び替え回路30から、データ部D1,D2,・・・と、ECCの冗長シンボル部P1−1,P2−1,P3−1、・・・が、順に入力される。インタリーブ回路40は、各インタリーブのシンドローム計算回路42−1〜42−4に、振り分ける順番を、従来方式と変更し、データ部は、1024シンボル目まで、8シンボルデータが入力される毎に、インタリーブをひとつスキップする。又、ECCの冗長シンボル部P1−1,・・・は、順番通りに並んでいるので、インタリーブをスキップしないで、振り分ける。
【0054】
各インタリーブのシンドローム計算回路42−1〜42−4は、入力されたデータ列から、データ列のシンドローム多項式(多項式の係数s1,s2,..)を計算する。このようにして、データ部、ECCの冗長シンボル部の全てが入力され、各インタリーブのシンドロームが確定する。
【0055】
BMA(誤り位置多項式計算器)46は、バーレカンプマッシ法により、シンドローム多項式から、誤り位置多項式を計算する。バーレカンプマッシ法では、周知のように、多項式の初期値から始めて、生成多項式の次数と同じ回数だけ多項式の更新を繰り返すことで、誤り位置多項式を計算する。
【0056】
BMA46は、セレクタ44から、各インタリーブのシンドローム計算回路42−1〜42−4から、計算したシンドロームを受け、前述の誤り位置多項式を計算し、ECCの訂正能力範囲内のエラーがあるかを判定する。
【0057】
チェーンサーチ実行回路48は、BMA46で、エラーがあると判断されたインタリーブについて、チェーンサーチにより誤り位置を求め、且つチェーンサーチで誤り位置が特定された場合は、誤り値を計算する。
【0058】
この誤り位置と、誤り値により、FIFOメモリ32の該当する位置のデータシンボルが、訂正される。このようにして、図4で説明したように、データシンボルの誤り訂正が行われる。
【0059】
(他の実施の形態)
上述の実施の形態では、ECCが、4インタリーブの構成で、挿入する間隔が、9シンボル毎の例で説明したが、挿入する間隔が、7シンボル毎であっても良い。7シンボル毎の場合、例えば、ECCを生成する際には、冗長シンボルを、最初に挿入する部分が、インタリーブの3番目、次の挿入位置が、インタリーブの2番目、次の挿入位置が、1番目に対応するため、出力されるECCの冗長シンボルの順番を切り替える。又、ECC訂正を行う際には、入力されるECCの冗長シンボルの順番が、P3−1,P2−1,P1−1、P4−1、・・・となるため、対応するインタリーブに、これに対応するECCの冗長シンボルを入力する。
【0060】
又、インタリーブ数Mを、4で説明したが、本発明は、インタリーブ数が、2以上で有効であり、ECCの冗長シンボルを挿入する間隔は、ECCの冗長シンボル挿入後に、RDCに送信するデータが、RLLの拘束長を守れるような間隔であることが好ましい。
【0061】
更に、この実施の形態では、ECCが4インタリーブの構成で、挿入する間隔が、9シンボル毎の例であったが、挿入する間隔が、8シンボルや10シンボルなど、インタリーブ数「4」に対し、最大公約数が、「1」以外の場合、スキップされるインタリーブが偏ってしまうおそれがあり、インタリーブ数Mに対し、挿入する間隔が、最大公約数が、「1」であることが、望ましい。
【0062】
その上、磁気ディスク装置の記録再生系で説明したが、光媒体、半導体メモリ等の他のデータ記憶装置の記録再生系や、通信装置の符号化及び復調系にも、適用できる。
【0063】
以上、本発明は、以下の付記を包含する。
【0064】
(付記1)データ列を、インタリーブ数M(M>=2)の各インタリーブ位置に振り分け、各インタリーブされたデータ列に対し、冗長シンボルを作成し、前記データ列のN(N>=2)シンボル毎に、前記データ列に前記作成した冗長シンボルを挿入して、ECC符号化データを作成するECC符号器と、前記冗長シンボルが挿入されたデータ列を、インタリーブ数M(M>=2)の各インタリーブ位置に振り分け、各インタリーブされたデータ列に対し、各インタリーブされたデータ列の冗長シンボルを用いて、誤り訂正するECC復号器とを有し、前記ECC符号器は、前記データ列の前記冗長シンボルの挿入位置に対応する各データを、振り分ける順番のインタリーブ位置の次のインタリーブ位置に、振り分けて、前記各インタリーブされたデータ列に対し、冗長シンボルを作成することを特徴とする誤り訂正回路。
【0065】
(付記2)前記ECC復号器は、前記冗長シンボルが挿入されたデータ列を、前記データ列と、前記冗長シンボルとに並び替え、前記データ列の前記冗長シンボルの挿入位置に対応する各データを、振り分ける順番のインタリーブ位置の次のインタリーブ位置に、振り分けて、前記各インタリーブされたデータ列に対し、各インタリーブされたデータ列の冗長シンボルを用いて、誤り訂正することを特徴とする付記1の誤り訂正回路。
【0066】
(付記3)前記ECC符号器の前記インタリーブ数Mと、挿入位置Nとの最大公約数が、「1」であることを特徴とする付記1の誤り訂正回路。
【0067】
(付記4)前記ECC符号器は、前記データ列を格納するメモリと、前記データ列をインタリーブ数M(M>=2)の各インタリーブ位置に振り分け、各インタリーブされたデータ列に対し、冗長シンボルを作成するECC生成回路と、前記メモリの前記データ列のN(N>=2)シンボル毎に、前記データ列に前記作成した冗長シンボルを挿入して、ECC符号化データを作成する作成回路とを有することを特徴とする付記1の誤り訂正回路。
【0068】
(付記5)前記ECC生成回路は、前記データ列をインタリーブ数M(M>=2)の各インタリーブ位置に振り分けるインタリーブ回路と、各インタリーブされたデータ列に対し、冗長シンボルを作成するECC生成回路とを有することを特徴とする付記4の誤り訂正回路。
【0069】
(付記6)前記ECC復号器は、前記冗長シンボルが挿入されたデータ列を、前記データ列と、前記冗長シンボルとに並び替える並び替え回路と、前記並び替えたデータ列を格納するメモリと、前記並び替えたデータ列の前記冗長シンボルの挿入位置に対応する各データを、振り分ける順番のインタリーブ位置の次のインタリーブ位置に、振り分けて、前記各インタリーブされたデータ列に対し、各インタリーブされたデータ列の冗長シンボルを用いて、前記メモリのデータ列の誤り訂正を行うECC訂正回路とを有することを特徴とする付記2の誤り訂正回路。
【0070】
(付記7)前記ECC訂正回路は、前記データ列をインタリーブ数M(M>=2)の各インタリーブ位置に振り分けるとともに、データ列の前記冗長シンボルの挿入位置に対応する各データを、振り分ける順番のインタリーブ位置の次のインタリーブ位置に、振り分けるインタリーブ回路と、各インタリーブされたデータ列に対し、シンドロームを計算するシンドローム計算回路と、前記各インターリーブのシンドロームから誤り位置及び誤り値を特定する誤り特定回路とを有することを特徴とする付記6の誤り訂正回路。
【0071】
(付記8)前記ECC訂正回路は、前記データ列を、RLL符号化されたデータ列を受けることを特徴とする付記1の誤り訂正回路。
【0072】
(付記9)記録データ列を、インタリーブ数M(M>=2)の各インタリーブ位置に振り分け、各インタリーブされたデータ列に対し、冗長シンボルを作成し、前記データ列のN(N>=2)シンボル毎に、前記データ列に前記作成した冗長シンボルを挿入して、ECC符号化データを作成するECC符号器と、前記ECC符号器からの前記ECC符号化データを、記録媒体に記録する記録ユニットと、前記記録媒体から前記冗長シンボルが挿入されたデータ列を読み出す読み出しユニットと、前記読み出された冗長シンボルが挿入されたデータ列を、インタリーブ数M(M>=2)の各インタリーブ位置に振り分け、各インタリーブされたデータ列に対し、前記読み出された冗長シンボルが挿入されたデータ列を、各インタリーブされたデータ列の冗長シンボルを用いて、誤り訂正するECC復号器とを有し、前記ECC符号器は、前記データ列の前記冗長シンボルの挿入位置に対応する各データを、振り分ける順番のインタリーブ位置の次のインタリーブ位置に、振り分けて、前記各インタリーブされたデータ列に対し、冗長シンボルを作成することを特徴とするデータ記憶装置。
【0073】
(付記10)前記ECC復号器は、前記冗長シンボルが挿入されたデータ列を、前記データ列と、前記冗長シンボルとに並び替え、前記データ列の前記冗長シンボルの挿入位置に対応する各データを、振り分ける順番のインタリーブ位置の次のインタリーブ位置に、振り分けて、前記各インタリーブされたデータ列に対し、各インタリーブされたデータ列の冗長シンボルを用いて、誤り訂正することを特徴とする付記9のデータ記憶装置。
【0074】
(付記11)前記ECC符号器の前記インタリーブ数Mと、挿入位置Nとの最大公約数が、「1」であることを特徴とする付記9のデータ記憶装置。
【0075】
(付記12)前記ECC符号器は、前記データ列を格納するメモリと、前記データ列をインタリーブ数M(M>=2)の各インタリーブ位置に振り分け、各インタリーブされたデータ列に対し、冗長シンボルを作成するECC生成回路と、前記メモリの前記データ列のN(N>=2)シンボル毎に、前記データ列に前記作成した冗長シンボルを挿入して、ECC符号化データを作成する作成回路とを有することを特徴とする付記9のデータ記憶装置。
【0076】
(付記13)前記ECC生成回路は、前記データ列をインタリーブ数M(M>=2)の各インタリーブ位置に振り分けるインタリーブ回路と、各インタリーブされたデータ列に対し、冗長シンボルを作成するECC生成回路とを有することを特徴とする付記12のデータ記憶装置。
【0077】
(付記14)前記ECC復号器は、前記冗長シンボルが挿入されたデータ列を、前記データ列と、前記冗長シンボルとに並び替える並び替え回路と、前記並び替えたデータ列を格納するメモリと、前記並び替えたデータ列の前記冗長シンボルの挿入位置に対応する各データを、振り分ける順番のインタリーブ位置の次のインタリーブ位置に、振り分けて、前記各インタリーブされたデータ列に対し、各インタリーブされたデータ列の冗長シンボルを用いて、前記メモリのデータ列の誤り訂正を行うECC訂正回路とを有することを特徴とする付記10のデータ記憶装置。
【0078】
(付記15)前記ECC訂正回路は、前記データ列をインタリーブ数M(M>=2)の各インタリーブ位置に振り分けるとともに、データ列の前記冗長シンボルの挿入位置に対応する各データを、振り分ける順番のインタリーブ位置の次のインタリーブ位置に、振り分けるインタリーブ回路と、各インタリーブされたデータ列に対し、シンドロームを計算するシンドローム計算回路と、前記各インタリーブのシンドロームから誤り位置及び誤り値を特定する誤り特定回路とを有することを特徴とする付記14のデータ記憶装置。
【0079】
(付記16)前記記録データ列をRLL符号化し、前記ECC符号器に入力するRLL符号器を更に有することを特徴とする付記9のデータ記憶装置。
【0080】
(付記17)前記誤り訂正されたデータ列をRLL復号化するRLL復号器を更に有することを特徴とする付記16のデータ記憶装置。
【0081】
(付記18)前記記憶媒体の前記書込みユニット及び読み出しユニットが、前記記憶媒体にデータを書き込み、読み出すヘッドからなることを特徴とする付記9のデータ記憶装置。
【産業上の利用可能性】
【0082】
データ列をインタリーブする際に、データ列の冗長シンボルの挿入位置のデータを、順番のインタリーブ位置からスキップして、次のインタリーブ位置に振り分け、各インタリーブのデータ列の冗長シンボルを生成するため、データ列でのインタリーブの並びが、均一に分散し、バーストエラーに対する訂正能力を向上できる。
【符号の説明】
【0083】
1 ディスク(データ記憶)装置
3 記憶媒体(磁気ディスク)
4 スピンドルモータ
5 アクチュエータ(VCM)
6 プリアンプ
7 リードチャネル
8 ハードディスクコントローラ
53 ヘッド(磁気ヘッド)
52 遠方イレーズ管理テーブル
82 RLL符号器
83 ECC符号器
85 ECC復号器
86 RLL復号器
10 FIFOメモリ
12 ECC生成回路
16 セレクタ
20 インタリーブ回路
22−1〜22−4 ECC生成回路
24 セレクタ
30 並べ替え回路
32 FIFOメモリ
34 ECC訂正回路
40 インタリーブ回路
42−1〜42−4 シンドローム計算回路
44 セレクタ
46、48 誤り位置計算回路
【技術分野】
【0001】
本発明は、インタリーブされたデータ列の誤り訂正符号(ECC)を作成し、データ列に誤り訂正符号(ECC)を付加する誤り訂正回路及びデータ記憶装置に関する。
【背景技術】
【0002】
信号再生分野において、誤り訂正技術の重要性が増加している。特に、ECC(Error Correction Code)による誤り訂正方法は、広く利用されている。例えば、ハードディスクドライブ(HDD)では、データを、ディスク媒体に書きこむ際に、データからECCの冗長シンボルを作成し、データに付加し、付加したデータ列を書き込む。
【0003】
この際に、磁気記録では、符号に拘束条件を与えている。例えば、RLL(Run Length Limited)の拘束長を与えている。このため、このRLLの拘束長を守るために、ECCの冗長シンボルを、RLLでエンコード(符号化)されたデータの間に、挿入する方法を採用している。
【0004】
一方、一般に、訂正コードワードが、そのECCの訂正可能コード長を超えた場合、インタリーブを用いて、訂正を行っている。HDDでの、ECCのインタリーブは、バーストエラーを、各インタリーブに分散することが主な目的であり、ディスク媒体に書き込むデータを、順に、各インタリーブに割り当てる方法を採用している。
【0005】
図8は、従来のインタリーブにおけるECC符号化方法の説明図である。図8は、4個のインタリーブを持ち、8シンボル毎に、冗長シンボルが挿入される例で説明する。
【0006】
図8において、データ100のブロック内の数字が、シンボル番号である。例えば、データ100は、3300シンボルで構成される。4インタリーブである場合には、データ100のシンボルを順番に、4つのインタリーブに振り分ける。この4つのインタリーブブロック102毎に、図8の横方向に、ECCの冗長シンボルを生成する。
【0007】
例えば、インタリーブ1には、冗長シンボルP1−1,P1−2,・・・、P1−32を、インタリーブ2には、P2−1〜P2−32,インタリーブ3には、P3−1〜P3−32,インタリーブ4には、P4−1〜P4−32を生成する。
【0008】
生成した冗長シンボルを、元のデータ列100の8シンボル毎に、9シンボル番目毎の位置に挿入する。従って、元のデータ列100の8シンボル毎に、ECCの冗長シンボルが挿入されたデータ列106が得られる。このデータ列を、ディスク媒体に記録する。
【0009】
このインタリーブにより、データシンボルは、4シンボル毎に、異なるECCの冗長シンボルが付与されるため、バーストエラーが生じた場合、例えば、データシンボルD1〜D8にバーストエラーが生じても、各インターリーブにエラーが分散され、インタリーブのECCの冗長シンボルを用いて、訂正が可能となる。
【0010】
このような複数インタリーブでのECC符号化は、例えば、特許文献1等に記載されている。
【先行技術文献】
【特許文献】
【0011】
【特許文献1】特開2006−031825号公報
【発明の概要】
【発明が解決しようとする課題】
【0012】
従来は、ECCの冗長シンボルを、インタリーブ毎に、生成した後、その冗長シンボルを、ユーザーデータに挿入していたため、データ列内で、インタリーブされたデータブロックの位置がずれ、均等にインタリーブを分散されなくなる場合がある。その結果、同じインタリーブに属するシンボルが連続して、ディスク媒体に書き込まれる部分が出現し、バーストエラーに対して、同じインタリーブに、エラーが偏ってしまう。
【0013】
例えば、図9のデータ列110では、同じインタリーブに属するECCの冗長シンボルP1−1と、データシンボルD9が連続しており、矢印のようなバーストエラーが発生した場合、インタリーブブロック112で見ると、インタリーブ1には、エラーが2個、インタリーブ2には、エラーが1個、インタリーブ3には、エラーが0個、インタリーブ4には、エラーが1個となってしまい、エラーに偏りが生じる。
【0014】
従って、本発明の目的は、符号化の拘束長を維持しつつ、データ列内で、同一インタリーブのデータシンボルとECCの冗長シンボルとが、連続することを防止するための誤り訂正回路及びデータ記憶装置を提供することにある。
【課題を解決するための手段】
【0015】
この目的の達成のため、誤り訂正回路は、データ列を、インタリーブ数M(M>=2)の各インタリーブ位置に振り分け、各インタリーブされたデータ列に対し、冗長シンボルを作成し、前記データ列のN(N>=2)シンボル毎に、前記データ列に前記作成した冗長シンボルを挿入して、ECC符号化データを作成するECC符号器と、前記冗長シンボルが挿入されたデータ列を、インタリーブ数M(M>=2)の各インタリーブ位置に振り分け、各インタリーブされたデータ列に対し、各インタリーブされたデータ列の冗長シンボルを用いて、誤り訂正するECC復号器とを有し、前記ECC符号器は、前記データ列の前記冗長シンボルの挿入位置に対応する各データを、振り分ける順番のインタリーブ位置の次のインタリーブ位置に、振り分けて、前記各インタリーブされたデータ列に対し、冗長シンボルを作成する。
【0016】
又、データ記憶装置は、記録データ列を、インタリーブ数M(M>=2)の各インタリーブ位置に振り分け、各インタリーブされたデータ列に対し、冗長シンボルを作成し、前記データ列のN(N>=2)シンボル毎に、前記データ列に前記作成した冗長シンボルを挿入して、ECC符号化データを作成するECC符号器と、前記ECC符号器からの前記ECC符号化データを、記録媒体に記録する記録ユニットと、前記記録媒体から前記冗長シンボルが挿入されたデータ列を読み出す読み出しユニットと、前記読み出された冗長シンボルが挿入されたデータ列を、インタリーブ数M(M>=2)の各インタリーブ位置に振り分け、各インタリーブされたデータ列に対し、前記読み出された冗長シンボルが挿入されたデータ列を、各インタリーブされたデータ列の冗長シンボルを用いて、誤り訂正するECC復号器とを有し、前記ECC符号器は、前記データ列の前記冗長シンボルの挿入位置に対応する各データを、振り分ける順番のインタリーブ位置の次のインタリーブ位置に、振り分けて、前記各インタリーブされたデータ列に対し、冗長シンボルを作成する。
【発明の効果】
【0017】
データ列をインタリーブする際に、データ列の冗長シンボルの挿入位置のデータを、順番のインタリーブ位置からスキップして、次のインタリーブ位置に振り分け、各インタリーブのデータ列の冗長シンボルを生成するため、データ列でのインタリーブの並びが、均一に分散し、バーストエラーに対する訂正能力を向上できる。
【図面の簡単な説明】
【0018】
【図1】本発明のデータ記憶装置の一実施の形態の外観図である。
【図2】本発明の一実施の形態のデータ記憶装置の記録再生系のブロック図である。
【図3】本発明の一実施の形態のECC符号化処理の説明図である。
【図4】図3の一実施の形態のバーストエラー発生時の訂正処理の説明図である。
【図5】図2のECC符号器のブロック図である。
【図6】図2のECC復号器のブロック図である。
【図7】図6のECC訂正回路のブロック図である。
【図8】従来のインタリーブによるECC符号化方法の説明図である。
【図9】従来のECC符号化方法の訂正能力の説明図である。
【発明を実施するための形態】
【0019】
以下、本発明の実施の形態を、データ記憶装置、ECC符号化、ECC符号化及び復号化構成、他の実施の形態の順で説明する。
【0020】
(データ記憶装置)
図1は、本発明のデータ記憶装置の一実施の形態の外観図である。図1は、データ記憶装置として、磁気ディスク装置(ハードディスクドライブ)を例に示す。図1に示すように、ディスクエンクロージャ(DEという)1は、磁気ディスク装置の各構成要素を収容する。DE1内では、磁気記録媒体である磁気ディスク3が、スピンドルモータ4の回転軸に設けられている。
【0021】
DE1に取り付けられたスピンドルモータ4は、磁気ディスク3を回転する。アクチュエータ(VCMという)5は、アーム(ヘッドアクチュエータという)52を回転する。アーム52に設けられたサスペンションの先端には、磁気ヘッド53が設けられている。従って、VCM5は、磁気ヘッド53を磁気ディスク3の半径方向に移動する。アクチュエータ5は、回転軸を中心に回転するボイスコイルモータ(VCM)で構成される。
【0022】
図1では、磁気ディスク装置に、1枚の磁気ディスク3が搭載され、2つの磁気ヘッド53が、同一のアクチュエータ5で同時に駆動される。磁気ヘッド53は、リード素子と、ライト素子とからなる。磁気ヘッド53は、スライダに、磁気抵抗(MR)素子を含むリード素子を積層し、その上にライトコイルを含むライト素子を積層して、構成される。
【0023】
磁気ディスク3の外側には、磁気ヘッド53を磁気ディスク3から退避し、パーキングするためのランプ機構54が設けられる。
【0024】
又、図1のDE1の下部には、プリント回路アッセンブリ(制御回路部)が設けられ、プリント回路アッセンブリには、図2以下で説明するハードディスクコントローラ(HDC)、マイクロコントローラ(MCU)、リード/ライトチャネル回路(RDC)、サーボコントロール回路、データバッファ(RAM)、ROM(リードオンリーメモリ)が設けられる。
【0025】
図2は、本発明の一実施の形態の記録再生系の主要部の回路ブロック図である。図2に示すように、磁気ディスク装置の記録再生系は、大きく分けて、ハードディスクコントローラ(HDC)8、リードチャネル(RDC)7、そしてプリアンプ6とからなる。
【0026】
先ず、記録系を説明する。記録データ列は、HDC8に入力する。HDC8内では、CRC符号器80は、記録データからCRC(Cyclic Redundacy Code)を作成し、記録データ列に作成したCRCを付加する。記録(RLL)符号器82は、CRCを付加された記録データ列を、RLL(Run Length Limited)符号などの拘束条件が満たされる列に変換する。そして、ECC符号器83は、記録符号器82の出力データ列に、ECC(Error Correction Code)の冗長シンボルを付加する。
【0027】
HDC8のECC符号器83からの出力データ列は、RDC7に入力する。RDC7では、ライト同期補償器71が、出力データ列を、ライトクロックに同期して、補正する。このライト同期補償されたデータ列を、ドライバ72が、記録データ列に増幅し、プリアンプ6に送出する。
【0028】
プリアンプ6では、ドライバ60が、この記録データ列に従い、記録ヘッド53−1へライト電流を発生する。
【0029】
次に、再生系を説明する。再生ヘッド53−2からのアナログ電圧は、プリアンプ6のアンプ62によって、増幅された後、RDC7に出力される。RDC7においては、増幅されたアナログ信号が、可変利得アンプ(VGA:Variable Gain Amp)73、ローパスフィルタ(LPF)74、AD(アナログ・デジタル)コンバータ(ADC)75を経由して、デジタル信号へ変換される。
【0030】
FIR(Finite Impulse Response)フィルタ76が、PR波形等化を行った後、ビタビ(Viterbi)検出器などの反復復号器78が、最尤復号を行う。
【0031】
反復復号器78から出力された復号ビット列は、HDC8のECC復号器85に入力される。ECC復号器85は、リードソロモン(RS)符号を用いて、誤り訂正を行う。ECC復号が成功した場合は、ECC復号器85の出力データ列は、記録(RLL)復号器87、CRC復号器89を経て、再生データとして出力される。
【0032】
図3は、図2のECC符号器83の符号化処理の説明図、図4は、図3による符号化データのバーストエラーの訂正動作の説明図である。図3では、図8と同様のデータ列100を、4インタリーブし、8シンボル毎に、冗長シンボルを挿入する例を示す。
【0033】
まず、ECCの冗長シンボル生成の説明を行う。冗長シンボル生成を行うために、データ入力する際、冗長シンボル(ECC)生成回路は、1データシンボル入力毎に、そのデータを入力するインタリーブ番号を「1」増加させていき、インタリーブ番号が、M(図3では、「4」)まで、行ったら、1番目のインタリーブに戻すという操作繰り返す。ただし、冗長シンボルが挿入される部分は、インタリーブをスキップするため、入力されたデータが、(N−1)シンボルの倍数になるときは(図3では、N=9)、次に、データを入力するインタリーブ番号を、「2」増加する。この結果、RLLでエンコードされたデータ列の各シンボルの属するインタリーブが、データ先頭から最後に冗長シンボルが挿入される部分までの間、(N−1)シンボル毎に、1スキップされることになる。
【0034】
図3で具体的に説明する。ECC生成回路は、インタリーブ毎に、図3のインタリーブブロック200の横方向に、1インタリーブにつき、32シンボル、4インタリーブで128シンボルの冗長シンボルを生成する。ここで、インタリーブブロック200において、9×L(L=1,2,3,・・、128)シンボル目は、ECCの冗長シンボルのために空けておくので、ECCの冗長シンボル生成回路は、8×128=1024シンボル目まで、8シンボル毎に、1インタリーブスキップする。例えば、データシンボルD9は、インタリーブ1に入力されず、インタリーブ2に入力され、データシンボルD17は、インタリーブ2に入力されず、インタリーブ3に入力される。
【0035】
このECCの冗長シンボル生成回路では、インタリーブブロックにおいて、スキップされた部分のデータは、左につまるので、各インタリーブとデータシンボルとの対応を示すインタリーブブロック200は、データシンボルが左に詰まったブロック202となり、このインタリーブブロック202の横方向に、冗長シンボルを生成することと同じになる。即ち、インタリーブ1は、データシンボルD1,D5,D12,・・から、冗長シンボルを生成する。
【0036】
次に、冗長シンボルの挿入の説明を行う。冗長シンボル生成において、入力データの各シンボルの属するインタリーブが、(N−1)シンボル毎に、1スキップされているので、挿入部分で、スキップされたインタリーブに属する冗長シンボルを、1シンボルずつ順に挿入していく。
【0037】
ここで、Iを「1」から「T」(尚、Tは、総冗長シンボル数)までの整数とすると、スキップされたインタリーブの番号は、データ先頭から、順に、I×N%M(=(I×N)/Mの余り)(但し、(I×N)%M=0のときは、M)となる。つまり、(I×N%M)番目のインタリーブの冗長シンボルが、(N−1)シンボル毎に挿入される。
【0038】
図3では、N=9,M=4であるから、RDCへの入力データフォーマット204は、以下のように作成される。I=1では、(I×N%M)=9%4=1であるから、1インタリーブ目の冗長シンボルP1−1を、N=9番目に挿入する。I=2では、18%2=2であるから、2インタリーブ目の冗長シンボルP2−1を、N*2=18番目に挿入する。I=3では、27%3=3となるので、3インタリーブ目の冗長シンボルP3−1を、N*3=27番目に挿入する。I=4では、36%4=0となるので、4インタリーブ目の冗長シンボルP4−1を36番目に挿入する。尚、「0」は、「4」として扱う。
【0039】
データをリードし、ECC復号するときには、挿入されているI×N番目(I=1〜総冗長シンボル数)の冗長シンボルを、I×N%M(I×N%M=0のときは、M)番目のインタリーブに戻した後、冗長シンボル生成時と同様に、データ先頭から最後に冗長シンボルが挿入される部分までの間、(N−1)シンボル毎に、次の1インタリーブをスキップして、各インタリーブのシンドロームを生成する。エラーがあった場合、通常のECC訂正を行う。
【0040】
このように、記録系には、インタリーブブロックで、図3のように、空けておいた部分に、各インタリーブの冗長シンボルが挿入され、図3のデータ列204の順番で送信される。このため、図4のデータ列において、矢印のようなバーストエラーが発生した場合、図4の対応するインタリーブブロック202−1に示すように、各インタリーブにエラーが、1個ずつとなり、エラーに偏りが生じない。即ち、図4のインタリーブブロック202−1のブロックの下線を引いた部分が、バーストエラーに対応し、各インタリーブ1〜4で、エラーが、1個ずつとなる。
【0041】
このように、あらかじめ冗長シンボルを挿入する部分のインタリーブをとばして、冗長シンボルを生成する。その後、とばされた部分のインタリーブにあてはまる冗長シンボルを、順に挿入していく。これにより、媒体に記録されるデータのインタリーブの並びが、均一に分散する。尚、デコードの際も、生成した順序と同じ順序で、シンドローム(Syndrome)を生成し、訂正を行う。
【0042】
(ECC符号化及び復号化構成)
次に、ECC符号化及び復号化構成を説明する。図5は、図2のECC符号器83のブロック図である。図5において、ECC符号器83は、FIFO(Fast In Fast Out)メモリ10と、ECC生成回路12と、セレクタ16とで構成される。
【0043】
RLL符号化されたデータ列(セクタデータ)は、FIFOメモリ10と、ECC生成回路12に並列に入力される。ECC生成回路12は、セクタデータが、全部入力された時点で、ECCの冗長シンボル生成を完了する。セレクタ16は、セクタデータの全部が、FIFOメモリ10、ECC生成回路12へ入力された後、FIFOメモリ10から出力されるセクタデータの8シンボルおきに、ECC生成回路12からのECCのパリティを挿入し、データ列を出力する。
【0044】
ECC生成回路12は、インタリーブ回路20と、各インタリーブのECC生成回路22−1〜22−4と、セレクタ24とで構成される。インタリーブ回路20には、RLL符号化データ列が、D1,D2,D3,・・・の順に、入力される。インタリーブ回路20は、この順番で、入力されるデータ列を、それぞれのインタリーブのECC生成回路22−1〜22−4へ振り分ける順番を、従来方式と変更し、前述のように、1024シンボル目まで、データが8シンボル入力される毎に、入力されるインタリーブを、1つスキップする。
【0045】
各インタリーブのECC生成回路22−1〜22−4は、入力されたデータシンボルから、ECCのパリテイを生成する。例えば、インタリーブのECC生成回路22−1〜22−4は、入力されたデータシンボルD1,D5,D12,D16,・・から、ECCのパリテイP1−1.P1−2,P1−3、・・・を生成する。
【0046】
セレクタ24は、インタリーブ番号の順番で、各インタリーブのECC生成回路22−1〜22−4からのECCのパリテイを選択し、ECCパリテイを、P1−1,P2−1,P3−1,P4−1の順で、出力する。
【0047】
このようにして、図3で説明したような、ECC符号化されたデータ列が、得られる。
【0048】
次に、ECC復号化構成を説明する。図6は、図2のECC復号器85のブロック図、図7は、図6のECC訂正回路のブロック図である。
【0049】
図6に示すように、ECC復号器85は、データ並び替え回路30と、FIFOメモリ32と、ECC訂正回路34とで構成される。
【0050】
データ並び替え回路30は、磁気ディスク3から読み取られたセクタデータを、RDC7(図2参照)より、受ける。並び替え回路30は、8データシンボル毎に、ECCパリテイが付加されたデータ列から、ECCパリテイを抜き出し、データシンボル列D1,D2.・・・の後ろに、ECC(冗長シンボル)パリテイP1−1,P2−1,P3−1,P4−1,P1−2、P2−2・・に置き換える。
【0051】
この置き換えられたデータ列は、FIFOメモリ32へ格納されると同時に、ECC訂正回路34へ入力される。ECC訂正回路34は、データシンボル列と、ECCの冗長シンボルから、ECCのシンドロームを生成し、誤り位置を求める。そして、ECC訂正回路34は、FIFOメモリ32内のデータシンボルに対して、誤り訂正を行う。訂正が完了すると、FIFOメモリ32から、データシンボル列D1,D2,D3,・・・が、RLL復号器87へ出力される。出力されたデータ列は、RLL復号器87で復号される。
【0052】
図7により、ECC訂正回路34を説明する。ECC訂正回路34は、インタリーブ回路40と、各インタリーブのシンドローム計算回路42−1〜42−4と、セレクタ44と、BMA(バーレカンプマッシ法の演算器)46と、チエーンサーチ実行回路48とを有する。
【0053】
インタリーブ回路40は、データ並び替え回路30から、データ部D1,D2,・・・と、ECCの冗長シンボル部P1−1,P2−1,P3−1、・・・が、順に入力される。インタリーブ回路40は、各インタリーブのシンドローム計算回路42−1〜42−4に、振り分ける順番を、従来方式と変更し、データ部は、1024シンボル目まで、8シンボルデータが入力される毎に、インタリーブをひとつスキップする。又、ECCの冗長シンボル部P1−1,・・・は、順番通りに並んでいるので、インタリーブをスキップしないで、振り分ける。
【0054】
各インタリーブのシンドローム計算回路42−1〜42−4は、入力されたデータ列から、データ列のシンドローム多項式(多項式の係数s1,s2,..)を計算する。このようにして、データ部、ECCの冗長シンボル部の全てが入力され、各インタリーブのシンドロームが確定する。
【0055】
BMA(誤り位置多項式計算器)46は、バーレカンプマッシ法により、シンドローム多項式から、誤り位置多項式を計算する。バーレカンプマッシ法では、周知のように、多項式の初期値から始めて、生成多項式の次数と同じ回数だけ多項式の更新を繰り返すことで、誤り位置多項式を計算する。
【0056】
BMA46は、セレクタ44から、各インタリーブのシンドローム計算回路42−1〜42−4から、計算したシンドロームを受け、前述の誤り位置多項式を計算し、ECCの訂正能力範囲内のエラーがあるかを判定する。
【0057】
チェーンサーチ実行回路48は、BMA46で、エラーがあると判断されたインタリーブについて、チェーンサーチにより誤り位置を求め、且つチェーンサーチで誤り位置が特定された場合は、誤り値を計算する。
【0058】
この誤り位置と、誤り値により、FIFOメモリ32の該当する位置のデータシンボルが、訂正される。このようにして、図4で説明したように、データシンボルの誤り訂正が行われる。
【0059】
(他の実施の形態)
上述の実施の形態では、ECCが、4インタリーブの構成で、挿入する間隔が、9シンボル毎の例で説明したが、挿入する間隔が、7シンボル毎であっても良い。7シンボル毎の場合、例えば、ECCを生成する際には、冗長シンボルを、最初に挿入する部分が、インタリーブの3番目、次の挿入位置が、インタリーブの2番目、次の挿入位置が、1番目に対応するため、出力されるECCの冗長シンボルの順番を切り替える。又、ECC訂正を行う際には、入力されるECCの冗長シンボルの順番が、P3−1,P2−1,P1−1、P4−1、・・・となるため、対応するインタリーブに、これに対応するECCの冗長シンボルを入力する。
【0060】
又、インタリーブ数Mを、4で説明したが、本発明は、インタリーブ数が、2以上で有効であり、ECCの冗長シンボルを挿入する間隔は、ECCの冗長シンボル挿入後に、RDCに送信するデータが、RLLの拘束長を守れるような間隔であることが好ましい。
【0061】
更に、この実施の形態では、ECCが4インタリーブの構成で、挿入する間隔が、9シンボル毎の例であったが、挿入する間隔が、8シンボルや10シンボルなど、インタリーブ数「4」に対し、最大公約数が、「1」以外の場合、スキップされるインタリーブが偏ってしまうおそれがあり、インタリーブ数Mに対し、挿入する間隔が、最大公約数が、「1」であることが、望ましい。
【0062】
その上、磁気ディスク装置の記録再生系で説明したが、光媒体、半導体メモリ等の他のデータ記憶装置の記録再生系や、通信装置の符号化及び復調系にも、適用できる。
【0063】
以上、本発明は、以下の付記を包含する。
【0064】
(付記1)データ列を、インタリーブ数M(M>=2)の各インタリーブ位置に振り分け、各インタリーブされたデータ列に対し、冗長シンボルを作成し、前記データ列のN(N>=2)シンボル毎に、前記データ列に前記作成した冗長シンボルを挿入して、ECC符号化データを作成するECC符号器と、前記冗長シンボルが挿入されたデータ列を、インタリーブ数M(M>=2)の各インタリーブ位置に振り分け、各インタリーブされたデータ列に対し、各インタリーブされたデータ列の冗長シンボルを用いて、誤り訂正するECC復号器とを有し、前記ECC符号器は、前記データ列の前記冗長シンボルの挿入位置に対応する各データを、振り分ける順番のインタリーブ位置の次のインタリーブ位置に、振り分けて、前記各インタリーブされたデータ列に対し、冗長シンボルを作成することを特徴とする誤り訂正回路。
【0065】
(付記2)前記ECC復号器は、前記冗長シンボルが挿入されたデータ列を、前記データ列と、前記冗長シンボルとに並び替え、前記データ列の前記冗長シンボルの挿入位置に対応する各データを、振り分ける順番のインタリーブ位置の次のインタリーブ位置に、振り分けて、前記各インタリーブされたデータ列に対し、各インタリーブされたデータ列の冗長シンボルを用いて、誤り訂正することを特徴とする付記1の誤り訂正回路。
【0066】
(付記3)前記ECC符号器の前記インタリーブ数Mと、挿入位置Nとの最大公約数が、「1」であることを特徴とする付記1の誤り訂正回路。
【0067】
(付記4)前記ECC符号器は、前記データ列を格納するメモリと、前記データ列をインタリーブ数M(M>=2)の各インタリーブ位置に振り分け、各インタリーブされたデータ列に対し、冗長シンボルを作成するECC生成回路と、前記メモリの前記データ列のN(N>=2)シンボル毎に、前記データ列に前記作成した冗長シンボルを挿入して、ECC符号化データを作成する作成回路とを有することを特徴とする付記1の誤り訂正回路。
【0068】
(付記5)前記ECC生成回路は、前記データ列をインタリーブ数M(M>=2)の各インタリーブ位置に振り分けるインタリーブ回路と、各インタリーブされたデータ列に対し、冗長シンボルを作成するECC生成回路とを有することを特徴とする付記4の誤り訂正回路。
【0069】
(付記6)前記ECC復号器は、前記冗長シンボルが挿入されたデータ列を、前記データ列と、前記冗長シンボルとに並び替える並び替え回路と、前記並び替えたデータ列を格納するメモリと、前記並び替えたデータ列の前記冗長シンボルの挿入位置に対応する各データを、振り分ける順番のインタリーブ位置の次のインタリーブ位置に、振り分けて、前記各インタリーブされたデータ列に対し、各インタリーブされたデータ列の冗長シンボルを用いて、前記メモリのデータ列の誤り訂正を行うECC訂正回路とを有することを特徴とする付記2の誤り訂正回路。
【0070】
(付記7)前記ECC訂正回路は、前記データ列をインタリーブ数M(M>=2)の各インタリーブ位置に振り分けるとともに、データ列の前記冗長シンボルの挿入位置に対応する各データを、振り分ける順番のインタリーブ位置の次のインタリーブ位置に、振り分けるインタリーブ回路と、各インタリーブされたデータ列に対し、シンドロームを計算するシンドローム計算回路と、前記各インターリーブのシンドロームから誤り位置及び誤り値を特定する誤り特定回路とを有することを特徴とする付記6の誤り訂正回路。
【0071】
(付記8)前記ECC訂正回路は、前記データ列を、RLL符号化されたデータ列を受けることを特徴とする付記1の誤り訂正回路。
【0072】
(付記9)記録データ列を、インタリーブ数M(M>=2)の各インタリーブ位置に振り分け、各インタリーブされたデータ列に対し、冗長シンボルを作成し、前記データ列のN(N>=2)シンボル毎に、前記データ列に前記作成した冗長シンボルを挿入して、ECC符号化データを作成するECC符号器と、前記ECC符号器からの前記ECC符号化データを、記録媒体に記録する記録ユニットと、前記記録媒体から前記冗長シンボルが挿入されたデータ列を読み出す読み出しユニットと、前記読み出された冗長シンボルが挿入されたデータ列を、インタリーブ数M(M>=2)の各インタリーブ位置に振り分け、各インタリーブされたデータ列に対し、前記読み出された冗長シンボルが挿入されたデータ列を、各インタリーブされたデータ列の冗長シンボルを用いて、誤り訂正するECC復号器とを有し、前記ECC符号器は、前記データ列の前記冗長シンボルの挿入位置に対応する各データを、振り分ける順番のインタリーブ位置の次のインタリーブ位置に、振り分けて、前記各インタリーブされたデータ列に対し、冗長シンボルを作成することを特徴とするデータ記憶装置。
【0073】
(付記10)前記ECC復号器は、前記冗長シンボルが挿入されたデータ列を、前記データ列と、前記冗長シンボルとに並び替え、前記データ列の前記冗長シンボルの挿入位置に対応する各データを、振り分ける順番のインタリーブ位置の次のインタリーブ位置に、振り分けて、前記各インタリーブされたデータ列に対し、各インタリーブされたデータ列の冗長シンボルを用いて、誤り訂正することを特徴とする付記9のデータ記憶装置。
【0074】
(付記11)前記ECC符号器の前記インタリーブ数Mと、挿入位置Nとの最大公約数が、「1」であることを特徴とする付記9のデータ記憶装置。
【0075】
(付記12)前記ECC符号器は、前記データ列を格納するメモリと、前記データ列をインタリーブ数M(M>=2)の各インタリーブ位置に振り分け、各インタリーブされたデータ列に対し、冗長シンボルを作成するECC生成回路と、前記メモリの前記データ列のN(N>=2)シンボル毎に、前記データ列に前記作成した冗長シンボルを挿入して、ECC符号化データを作成する作成回路とを有することを特徴とする付記9のデータ記憶装置。
【0076】
(付記13)前記ECC生成回路は、前記データ列をインタリーブ数M(M>=2)の各インタリーブ位置に振り分けるインタリーブ回路と、各インタリーブされたデータ列に対し、冗長シンボルを作成するECC生成回路とを有することを特徴とする付記12のデータ記憶装置。
【0077】
(付記14)前記ECC復号器は、前記冗長シンボルが挿入されたデータ列を、前記データ列と、前記冗長シンボルとに並び替える並び替え回路と、前記並び替えたデータ列を格納するメモリと、前記並び替えたデータ列の前記冗長シンボルの挿入位置に対応する各データを、振り分ける順番のインタリーブ位置の次のインタリーブ位置に、振り分けて、前記各インタリーブされたデータ列に対し、各インタリーブされたデータ列の冗長シンボルを用いて、前記メモリのデータ列の誤り訂正を行うECC訂正回路とを有することを特徴とする付記10のデータ記憶装置。
【0078】
(付記15)前記ECC訂正回路は、前記データ列をインタリーブ数M(M>=2)の各インタリーブ位置に振り分けるとともに、データ列の前記冗長シンボルの挿入位置に対応する各データを、振り分ける順番のインタリーブ位置の次のインタリーブ位置に、振り分けるインタリーブ回路と、各インタリーブされたデータ列に対し、シンドロームを計算するシンドローム計算回路と、前記各インタリーブのシンドロームから誤り位置及び誤り値を特定する誤り特定回路とを有することを特徴とする付記14のデータ記憶装置。
【0079】
(付記16)前記記録データ列をRLL符号化し、前記ECC符号器に入力するRLL符号器を更に有することを特徴とする付記9のデータ記憶装置。
【0080】
(付記17)前記誤り訂正されたデータ列をRLL復号化するRLL復号器を更に有することを特徴とする付記16のデータ記憶装置。
【0081】
(付記18)前記記憶媒体の前記書込みユニット及び読み出しユニットが、前記記憶媒体にデータを書き込み、読み出すヘッドからなることを特徴とする付記9のデータ記憶装置。
【産業上の利用可能性】
【0082】
データ列をインタリーブする際に、データ列の冗長シンボルの挿入位置のデータを、順番のインタリーブ位置からスキップして、次のインタリーブ位置に振り分け、各インタリーブのデータ列の冗長シンボルを生成するため、データ列でのインタリーブの並びが、均一に分散し、バーストエラーに対する訂正能力を向上できる。
【符号の説明】
【0083】
1 ディスク(データ記憶)装置
3 記憶媒体(磁気ディスク)
4 スピンドルモータ
5 アクチュエータ(VCM)
6 プリアンプ
7 リードチャネル
8 ハードディスクコントローラ
53 ヘッド(磁気ヘッド)
52 遠方イレーズ管理テーブル
82 RLL符号器
83 ECC符号器
85 ECC復号器
86 RLL復号器
10 FIFOメモリ
12 ECC生成回路
16 セレクタ
20 インタリーブ回路
22−1〜22−4 ECC生成回路
24 セレクタ
30 並べ替え回路
32 FIFOメモリ
34 ECC訂正回路
40 インタリーブ回路
42−1〜42−4 シンドローム計算回路
44 セレクタ
46、48 誤り位置計算回路
【特許請求の範囲】
【請求項1】
データ列を、インタリーブ数M(M>=2)の各インタリーブ位置に振り分け、各インタリーブされたデータ列に対し、冗長シンボルを作成し、前記データ列のN(N>=2)シンボル毎に、前記データ列に前記作成した冗長シンボルを挿入して、ECC符号化データを作成するECC符号器と、
前記冗長シンボルが挿入されたデータ列を、インタリーブ数M(M>=2)の各インタリーブ位置に振り分け、各インタリーブされたデータ列に対し、各インタリーブされたデータ列の冗長シンボルを用いて、誤り訂正するECC復号器とを有し、
前記ECC符号器は、前記データ列の前記冗長シンボルの挿入位置に対応する各データを、振り分ける順番のインタリーブ位置の次のインタリーブ位置に、振り分けて、前記各インタリーブされたデータ列に対し、冗長シンボルを作成する
ことを特徴とする誤り訂正回路。
【請求項2】
前記ECC復号器は、前記冗長シンボルが挿入されたデータ列を、前記データ列と、前記冗長シンボルとに並び替え、前記データ列の前記冗長シンボルの挿入位置に対応する各データを、振り分ける順番のインタリーブ位置の次のインタリーブ位置に、振り分けて、前記各インタリーブされたデータ列に対し、各インタリーブされたデータ列の冗長シンボルを用いて、誤り訂正する
ことを特徴とする請求項1の誤り訂正回路。
【請求項3】
前記ECC符号器の前記インタリーブ数Mと、挿入位置Nとの最大公約数が、「1」である
ことを特徴とする請求項1の誤り訂正回路。
【請求項4】
記録データ列を、インタリーブ数M(M>=2)の各インタリーブ位置に振り分け、各インタリーブされたデータ列に対し、冗長シンボルを作成し、前記データ列のN(N>=2)シンボル毎に、前記データ列に前記作成した冗長シンボルを挿入して、ECC符号化データを作成するECC符号器と、
前記ECC符号器からの前記ECC符号化データを、記録媒体に記録する記録ユニットと、
前記記録媒体から前記冗長シンボルが挿入されたデータ列を読み出す読み出しユニットと、
前記読み出された冗長シンボルが挿入されたデータ列を、インタリーブ数M(M>=2)の各インタリーブ位置に振り分け、各インタリーブされたデータ列に対し、前記読み出された冗長シンボルが挿入されたデータ列を、各インタリーブされたデータ列の冗長シンボルを用いて、誤り訂正するECC復号器とを有し、
前記ECC符号器は、前記データ列の前記冗長シンボルの挿入位置に対応する各データを、振り分ける順番のインタリーブ位置の次のインタリーブ位置に、振り分けて、前記各インタリーブされたデータ列に対し、冗長シンボルを作成する
ことを特徴とするデータ記憶装置。
【請求項5】
前記ECC符号器の前記インタリーブ数Mと、挿入位置Nとの最大公約数が、「1」である
ことを特徴とする請求項4のデータ記憶装置。
【請求項1】
データ列を、インタリーブ数M(M>=2)の各インタリーブ位置に振り分け、各インタリーブされたデータ列に対し、冗長シンボルを作成し、前記データ列のN(N>=2)シンボル毎に、前記データ列に前記作成した冗長シンボルを挿入して、ECC符号化データを作成するECC符号器と、
前記冗長シンボルが挿入されたデータ列を、インタリーブ数M(M>=2)の各インタリーブ位置に振り分け、各インタリーブされたデータ列に対し、各インタリーブされたデータ列の冗長シンボルを用いて、誤り訂正するECC復号器とを有し、
前記ECC符号器は、前記データ列の前記冗長シンボルの挿入位置に対応する各データを、振り分ける順番のインタリーブ位置の次のインタリーブ位置に、振り分けて、前記各インタリーブされたデータ列に対し、冗長シンボルを作成する
ことを特徴とする誤り訂正回路。
【請求項2】
前記ECC復号器は、前記冗長シンボルが挿入されたデータ列を、前記データ列と、前記冗長シンボルとに並び替え、前記データ列の前記冗長シンボルの挿入位置に対応する各データを、振り分ける順番のインタリーブ位置の次のインタリーブ位置に、振り分けて、前記各インタリーブされたデータ列に対し、各インタリーブされたデータ列の冗長シンボルを用いて、誤り訂正する
ことを特徴とする請求項1の誤り訂正回路。
【請求項3】
前記ECC符号器の前記インタリーブ数Mと、挿入位置Nとの最大公約数が、「1」である
ことを特徴とする請求項1の誤り訂正回路。
【請求項4】
記録データ列を、インタリーブ数M(M>=2)の各インタリーブ位置に振り分け、各インタリーブされたデータ列に対し、冗長シンボルを作成し、前記データ列のN(N>=2)シンボル毎に、前記データ列に前記作成した冗長シンボルを挿入して、ECC符号化データを作成するECC符号器と、
前記ECC符号器からの前記ECC符号化データを、記録媒体に記録する記録ユニットと、
前記記録媒体から前記冗長シンボルが挿入されたデータ列を読み出す読み出しユニットと、
前記読み出された冗長シンボルが挿入されたデータ列を、インタリーブ数M(M>=2)の各インタリーブ位置に振り分け、各インタリーブされたデータ列に対し、前記読み出された冗長シンボルが挿入されたデータ列を、各インタリーブされたデータ列の冗長シンボルを用いて、誤り訂正するECC復号器とを有し、
前記ECC符号器は、前記データ列の前記冗長シンボルの挿入位置に対応する各データを、振り分ける順番のインタリーブ位置の次のインタリーブ位置に、振り分けて、前記各インタリーブされたデータ列に対し、冗長シンボルを作成する
ことを特徴とするデータ記憶装置。
【請求項5】
前記ECC符号器の前記インタリーブ数Mと、挿入位置Nとの最大公約数が、「1」である
ことを特徴とする請求項4のデータ記憶装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【公開番号】特開2010−218631(P2010−218631A)
【公開日】平成22年9月30日(2010.9.30)
【国際特許分類】
【出願番号】特願2009−64270(P2009−64270)
【出願日】平成21年3月17日(2009.3.17)
【出願人】(309033264)東芝ストレージデバイス株式会社 (255)
【Fターム(参考)】
【公開日】平成22年9月30日(2010.9.30)
【国際特許分類】
【出願日】平成21年3月17日(2009.3.17)
【出願人】(309033264)東芝ストレージデバイス株式会社 (255)
【Fターム(参考)】
[ Back to top ]