(57)【特許請求の範囲】
【請求項１】
EEPRML、EEEPRML及びこれらのレスポンス係数を変えたMEEPRML、MEEEPRMLの最尤復号器で発生する誤りパターンのうちで予め選ばれたものが、０連続長を制限する変調符号化されたディジタル情報の予め設定された長さのデータブロック毎に予め設定された数のビットを有する冗長ビットを付加する形式で構成された符号化ブロックで発生したときに巡回符号による誤りシンドロームを用いることで誤り訂正する誤り訂正符号化方法であって、
冗長ビットの形式として、前記データブロックに０連続長制限ビットを連結したビット列に対する巡回符号の冗長ビットが０連続長の制限を満たすように前記０連続長制限ビットを設定し、前記連結したビット列に対する巡回符号の冗長ビットを修正後の冗長ビットとすることで冗長ビットの０連続長の制限を行うための０連続長制限ビットを有し、変調符号化されたディジタル情報列の予め設定された長さのデータブロックに該０連続長制限ビットを連結したビット列に対する巡回符号化冗長ビットが該０連続長制限ビットの後に付加されていることを特徴とする誤り訂正符号化方法。
【請求項２】
EEPRML、EEEPRML及びこれらのレスポンス係数を変えたMEEPRMLやMEEEPRMLの最尤復号器で発生する誤りパターンのうちで予め選ばれたものが、０連続長を制限する変調符号化されたディジタル情報の予め設定された長さのデータブロック毎に予め設定された数のビットを有する冗長ビットを付加する形式で構成された符号化ブロックで発生したときに巡回符号による誤りシンドロームを用いることで誤り訂正する誤り訂正符号化方法であって、
冗長ビットの形式として、前記データブロックに０連続長制限ビットを連結したビット列に対する巡回符号の冗長ビットが０連続長の制限を満たすように前記０連続長制限ビットを設定し、前記連結したビット列に対する巡回符号の冗長ビットを修正後の冗長ビットとすることで、冗長ビットの０連続長の制限を行うための０連続長制限ビットを有し、変調符号化されたディジタル情報列の予め設定された長さのデータブロックに該０連続長制限ビットを連結したビット列に対する巡回符号化冗長ビットが該データブロックと該０連続長制限ビットの間に挿入されていることを特徴とする誤り訂正符号化方法。
【請求項３】
請求項1または２に記載の誤り訂正符号化方法において、
EEPRML、EEEPRML及びこれらのレスポンス係数を変えたMEEPRMLやMEEEPRMLの最尤復号器で発生する誤りパターンを持つ誤りが符号化ブロックに１つ或いは符号化ブロック２つにまたがる形で１つ発生したときに、巡回符号による誤りシンドロームからトラップ復号法に誤りシンドロームのパターンと更新回数とのマッチングを併用して誤り位置と誤りパターンを算出することで誤り訂正が可能であることを特徴とする誤り訂正符号化方法。
【請求項４】
請求項１ないし３のいずれかに記載の誤り訂正符号化方法において、
巡回符号の生成多項式として16進表記で0x72CDを用いたことを特徴とする誤り訂正符号化方法。
【請求項５】
請求項４に記載の誤り訂正符号化方法において、
(0,6/6)の０連続長制限を満たすために該０連続長制限ビットとして３ビットを持つような誤り訂正符号化方法。
【請求項６】
請求項５に記載の誤り訂正符号化方法において、
該０連続長制限ビットの最上位が‘１’で固定されているような誤り訂正符号化方法。
【請求項７】
最尤復号器から得られた尤度情報を用いて誤りイベントの発生を検出し、該符号化ブロックで検出した誤りイベント数が２以上か否かによって、符号化ブロック内の誤りの放置・訂正の動作を切り換えることを特徴とした請求項３ないし６のいずれかに記載の誤り訂正方法。
【請求項８】
請求項１ないし７に記載の誤り訂正符号化方法のいずれかを用いた磁気記録再生装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、短い誤りを訂正するための冗長ビット部０連続長制限付き符号化方法の構成に関する。
【０００２】
【従来の技術】
磁気ディスク装置への高記録密度化の要望はますます高まっており、これを支える記録再生系の信号処理技術も高記録密度化に対応してきた。
【０００３】
図２は従来のEEPRMLにおけるディジタル情報の読み出し処理の流れを表わしたものである。ヘッドから読み出された信号１は、等化器２によって等化され、等化後の信号３から最尤復号器４によって、実際に記録されていた符号系列が推定される。推定された符号系列５は、ポストコーダ６を通って、16/17符号復調器１０によって対応する情報系列１１に復号される。対応する情報系列１１は、Reed-Solomon符号による誤り検出・訂正１２が行なわれる。
【０００４】
最尤復号器４における誤り系列は、正しい系列との距離が短いものが大半を占める。正しい系列との距離が短い誤り系列を調べるには、誤り流れ図を用いる。図３はEEPRMLにおける正しい系列との距離が8以内の誤り流れ図を簡略化したものである。各状態 (et-3 et-2 et-1 et) において、etは時刻tにおける誤りを示している。etが0のときは、対応するビットが誤っていないことを、+ のときはビット `0' が `1' に誤っていることを、- のときはビット `1' が `0' に誤っていることを表わす。また、流れ図の枝に付けられた数字は、対応する誤りの遷移によって増加する正しい系列との距離を示す。図３より、EEPRMLにおける最尤復号器４の誤り系列は、正しい系列との距離の短い順に ±(+-+)（連続3ビット誤り）、±(+-+-…)（連続4ビット以上の誤り）、±(+-+00+-+)の誤りであることわかる。実際の誤りの発生頻度は、正しい系列との距離の他に誤りの長さと雑音の相関が影響し、連続3ビット、1ビット、2ビット、5ビット、4ビットの順になる。但し、ここでの連続誤りは `0101‥‥' が `1010‥‥' に、或いはその逆方向に誤る形式になっている。
【０００５】
更に上位のPRMLを使ったり、パーシャルレスポンスの係数を少し動かたりしても、頻度順は、多少前後することはあるが誤りの傾向は変わらない。
【０００６】
【発明が解決しようとする課題】
最尤復号器４における変調符号上の短い誤りは、変調符号復調器１０によってバースト誤りへと拡大される。16/17変調符号を例にとると、最悪で4バイトまで拡大する。これは、誤りが16/17符号の末尾で発生し、ポストコーダ６によって次のコードワードに誤りが伝搬する場合の最悪値に相当する。このような誤りの拡大は、結果としてReed-Solomon符号の訂正能力を低下させることになる。
【０００７】
【課題を解決するための手段】
上記課題を解決するための手段として、本発明を用いた信号処理方式を図１に示す。
【０００８】
変調符号復調器１０の直前に簡単な誤り訂正８によって、最尤復号器４で発生し易いパターンの誤りのみ訂正する。これによって、変調符号復調器１０の後のバースト誤りの数を減らすことができる。
【０００９】
線型誤り訂正符号とは、訂正対象とする誤りであれば、誤りを検出するためのパリティ値（以下、誤りシンドローム）からその誤りが一意に求めることができるような誤り検出符号である、と言い換えることができる。fを誤り多項式から誤りシンドロームへの写像、E0を訂正対象となる誤り多項式全体とすると、f|E0（ｆの定義域をE0に制限した写像）は単射である（図４）。
【００１０】
誤り検出符号として、回路化が容易な巡回符号を用いる。巡回符号を使う場合、fは誤り多項式を巡回符号の生成多項式で割った剰余を求める操作に相当する。実際に誤りシンドロームを算出するには誤り検出器５０１を用いる。
【００１１】
誤り訂正のアルゴリズムは、トラップ復号法と呼ばれる巡回符号によるバースト誤り訂正の手法が知られているのでそれを用いる。これは、生成多項式g(x)に対し、xc ≡ 1 (mod g(x))であれば誤りシンドロームにxを掛けてg(x)で割った余りをとるのを繰り返すことで誤りパターンが出現することを利用した手法である。これより、少なくともg(x)はxを因数に持たないようなものを使う必要がある。
【００１２】
以下、巡回符号から構成された誤り訂正符号をCRCC（Cyclic Redundancy Check Code）と表記する。
【００１３】
以下、CRCCの構成について述べる。
【００１４】
f|E0が単射であることから、巡回符号の冗長ビット数p' とE0の要素数 #E0は数１の不等式を満たす。これに基づいてp' を決定する。
【００１５】
【数１】
2p' ≧ #E0              ……（数１）
p' をできるだけ小さくするために、すなわち訂正対象となる誤り多項式を必要最小限に抑えるために、発生頻度の高い誤りがCRCCの符号化ブロックに1か所、或いは符号化ブロック2つにまたがる形で1か所発生した場合のみ誤りを訂正するようなCRCCを構成する。
【００１６】
実際に訂正を行なう誤りパターンは、最尤復号器４で起こる誤りを図１におけるポストコーダ６に通した後のものであることに注意する。また、2つのCRCCの符号化ブロックにまたがるときはその一部分になる。
【００１７】
しかし変調符号化されたビット列を一定間隔kビットずつ毎に区切ったデータブロックに誤り検出器５０１によって、算出された巡回符号の冗長ビットを単純に付加するのではその部分で変調符号による０連続長制限が大きく崩れる。巡回符号の冗長ビットが剰余であることから、冗長ビット全てが `0' になることがあり得るからである。
【００１８】
そこで、付加する冗長ビット数をp(＞p' )とし、データブロックkビットに対応する冗長ビットから p-p' ビットの０連続長制限ビットを計算する。この０連続長制限ビットを用いて巡回符号の冗長ビットを修正することで０連続長の制限を行なうことにする。このとき、０連続長制限ビットと更新後の巡回符号の冗長ビットの組が、CRCCの符号化ブロックの冗長ビットとなる。冗長ビットの修正は、０連続長制限を満たし、かつkビットのデータブロックに冗長ビットを付加した系列がg(x)を生成多項式とする巡回符号語になるように行なう。この冗長ビットの修正は、０連続長制限ビットが冗長ビットの上位にあっても下位にあっても、殆ど同じ手順で冗長ビットの修正を行なうことができる。
【００１９】
【発明の実施の形態】
以下、本発明に係る誤り訂正符号及び誤り訂正装置の実施例について、図５〜１０を参照しながら説明する。
【００２０】
一例として、16/17 (0,6/6) 変調符号32コードワード（k＝544）毎に、０連続長制限ビット込みの冗長ビットをpビット付加するような符号長544＋pのCRCCで、EEPRMLと組み合わせることを想定したものを構成する。以下、誤りパターンを表現する際、誤っていることを「e」、誤っていないことを「o」と表記する。
【００２１】
プリコーダは1/(1+D2)、ポストコーダは1+D2とする。
【００２２】
０連続長制限ビットは冗長ビットの上位に置くように構成する。
【００２３】
EEPRMLにおける最尤復号器４の誤りの発生頻度の上位を占めるのは、連続1〜5ビット誤りであった。従って、訂正対象とする誤りパターンはポストコーダ６を通った後のパターンであるeoe、eeee、eeoee、eeooee、eeoooee、そしてこれらがCRCCの符号化ブロックでまたがるときに現われるパターンとすれば良い。E0はこれらがCRCCの符号化ブロック中に1つ現れるのに相当する誤り多項式全体となる。これを数２に示す。
【００２４】
【数２】
0004324276.tif 000002
【００２５】
誤りを訂正する際に誤訂正が起こり得る。誤訂正とは、訂正対象外の誤りに対応する誤りシンドロームが訂正対象になっている別の誤りに対応する誤りシンドロームと一致することで、訂正動作の結果として別の位置に誤りを増やす現象である。
【００２６】
従って、確率的に誤訂正を起こし難いことを誤り多項式を選ぶ基準とする。E0の次に発生し易い誤りに対応する誤り多項式全体E1を定める。E1の要素の誤りシンドロームが、E0の要素の誤りシンドロームのいづれにも一致しない、或いは一致したとしても問題が、極めて小さいときに誤訂正を起こし難いと見なす。
【００２７】
最尤復号器４において、連続1〜5ビット誤りの次に起こり易い誤りのパターンとして、残りの誤りパターンの中で距離が短いものである、連続6ビット以上の誤り、そして±(+-+00+-+)に対応するパターンeeeooeeeまで考える。これは距離8の誤りでE0に含まれない誤りパターンに相当する。
【００２８】
０連続長制限ビットと巡回符号の冗長ビットとその前後における０連続長制限は、16/17変調符号のそれと同じ (0,6/6) にすることを目標とする。このとき、図６に示す通り、プリコーダにビット列10000001が入力されたときの出力において±(+-+-…)の形の連続誤り（距離8）の長さは最大8まで起こり得ることがわかる。すなわち、E1で想定する連続誤り長は最大8まで考慮すれば良い。
【００２９】
従って、長さ8までの連続誤りをポストコーダ６に通したパターン、eeeooeeeをポストコーダ６に通したパターンeeoeeeeoee、そしてそれらがCRCCの符号化ブロックでまたがるときに現われるパターン全てがE0∪E1に含むようにE1を定めてやれば良い。
【００３０】
次に冗長ビットについて検討を行なう。212＜#E0＜213より、冗長ビット数pは16/17変調符号の符号長である17にしておけば充分である。符号長は561（＝17×32＋17）ビットとなる。
【００３１】
p＝17のとき、０連続長制限ビット数s:＝p−p' を2以下にはできない。つまり、生成多項式として17−s次の多項式をどう選んだとしても、０連続長制限(0,6/6) を満たすように０連続長制限ビットを採ることができないような巡回符号の冗長ビットが存在する。よって、０連続長制限ビット数を3、巡回符号の冗長ビット数p' を14とする。
【００３２】
冗長ビット数14の完全巡回符号の符号長は最大で214−1である。以下、一例として生成多項式として符号長が最大となる原始多項式をとる。このとき、目的の符号は、符号長214−1の完全巡回符号を長さ561ビットに短縮したものになる。トラップ復号法を行なう前には、誤りシンドロームを切り捨てたビット長に相当する回数だけ誤りパターンのチェックを省いた空回りをさせる必要がある。
【００３３】
しかし、単純に誤り検出器５０１で切り捨てたビット長に相当する回数のビットシフトを行なうと遅延が大きくなる。そこで、誤りシンドロームをx13,…,x,1を基底とするベクトルと見なし、固定の正方行列を誤りシンドロームのベクトルにかけるという形式で前記切り捨てたビット長に相当する回数の更新に対応する操作を表現する。この演算形式であれば行列やベクトルの次数が、余程大きくならない限り遅延は気にならなくなる。
【００３４】
図７は、生成多項式とすることで最尤復号器４において発生したE0に属する誤りを訂正可能でかつ長さ6の連続誤りでは誤訂正を起こさないような14次の原始多項式と、E1に属する誤りでの誤訂正の有無の一覧である。生成多項式 g(x)＝g14x14＋g13x13＋……＋g2x2＋g1x＋g0（gi＝0又は1、但しg0＝g14＝1）を g14214＋g13213＋……＋g222＋g12＋g0 の16進表記で表わしている。また、誤訂正によって増える誤りが、CRCCの冗長ビットに含まれる場合、冗長ビットが、取り除かれることによって、結果的に誤りを放っておいたのと等価になる。従って、このようなときは誤訂正と見なさないことにしている。図７の結果より、最尤復号器４における誤りパターンが連続8ビット以下の誤りであってもeeeooeeeであっても誤訂正を起こさない生成多項式は16進表記0x72CDのみである。
【００３５】
以下に述べるのは、生成多項式0x72CDにおけるCRCCの冗長ビットの計算の一例である。図８は説明における冗長ビットの構造を示す。
【００３６】
(1) 16/17符号32コードワードに対応する巡回符号の冗長ビットを誤り検出器５０１を使って算出する。
【００３７】
(2) (1)で求められた巡回符号の冗長ビットを c13 c12 ... c2 c1 c0 とするとき、０連続長制限ビット(s2,s1,s0)を数３、数４、数５のようにおく。
【００３８】
【数３】
0004324276.tif 000003
【００３９】
【数４】
0004324276.tif 000004
【００４０】
【数５】
0004324276.tif 000005
【００４１】
但し、上線は `0' と `1' の反転を、v は論理和（OR）を表わす。
【００４２】
（３）（s2,s1,s0）を０連続長制限ビットとして、１６／１７符号３２コードワードの後ろに０連続長制限ビット（s2,s1,s0）を連結したビット列に対応する巡回符号の冗長ビットc13’c12’ . . . c2’c1’c0’を誤り検出器５０１を使って算出する。この計算は、誤り検出器５０１に１６／１７符号３２コードワードに対応する巡回符号の冗長ビットc13 c12 . . . c2 c1 c0が計算結果として残っている状態から誤り検出器５０１にs2,s1,s0の順に入力することによって実現される。
【００４３】
この０連続長制限ビット（s2,s1,s0）は、１６／１７符号３２コードワードに対応する巡回符号の冗長ビットc13 c12 . . . c2 c1 c0の全ての組み合わせのそれぞれに対して０連続長が（0,6/6）を満たすようなビットの組（s2,s1,s0）を全探索して発見した対応の一例である。数３、数４、数５はこの対応をc13 c12 . . . c2 c1 c0からs2,s1,s0を決める真理値表と見なして真理値表を表す論理式を縮約した結果の一つとなっている。
【００４４】
数３、数４、数５を適切に変え、 c13 c12 ... c2 c1 c0 に (s2 x2+s1 x+s0)g(x) を加えるようにすれば０連続長制限ビットが冗長ビットの下位にある場合に対応できる。
【００４５】
以上のように構成されたCRCCにおける訂正アルゴリズムを図９を用いて説明する。[  ]で囲まれている番号は図に示された番号に対応している。
【００４６】
以下、多項式計算において「mod g(x)」と書くのが冗長であることとg(x)が原始多項式であることから、F2[x]（0と1からなる体を係数とし、xを不定元とする多項式全体）のg(x)による剰余類をGalois体の元と見なし、剰余類の不定元xをβと表わす。誤りシンドロームにβを掛けるというのは誤り検出器５０１にビット `0' を入力することで誤りシンドロームを更新することに相当する。
【００４７】
[９０１] 誤り検出器５０１によってCRCCの符号化ブロック561ビットにおける誤りシンドロームr(β)を算出する。
【００４８】
[９０２] 誤りの検出。r(β)＝0 なら誤り無しと見なして９１１のように訂正情報を設定する。
【００４９】
[９０３] 空回り処理。r(β)≠0 に定数β(214−1)−(561−14) をかけてr(β)を更新する。この操作は{β13,…,β,1}を基底とするベクトル空間に作用する行列として表現できる。βを掛ける操作を(214−1)−(561−14)回行なう必要は無い。
【００５０】
[９０４] r(β)が訂正対象となる誤りパターンの形のいづれかになっているかをβ13,…,β,1を基底とするベクトル値で調べる。誤りパターンのいづれかであれば誤りイベントはr(β)、誤り位置はr(β)を更新させた回数に応じて決まる（９１０）。この場合、誤りパターンと誤り位置が求められたので訂正可能。
【００５１】
[９０５] 2コードワードにまたがる形の誤りイベント（図中では(*)を付けている）は符号ブロックの最上位か最下位の付近に位置するはずなので、誤り位置との整合性によって訂正可能（９１０）か訂正不能（９０９）かを判断する。
【００５２】
[９０６] r(β)が訂正対象となる誤りパターンに相当する値でなければr(β)にβをかけてr(β)を更新する。
【００５３】
[９０７] 更新回数が561回を上回るときは訂正対象外の誤りが発生したということで９０９のように訂正情報を設定する。
【００５４】
[９０８] 訂正可能な場合は誤りを訂正する。その後、CRCCの冗長ビットを除く。
【００５５】
本実施例では、訂正対象となる誤りは符号化ブロック内に１イベントのものである。符号化ブロック内に発生した２イベントの誤りについては、誤訂正を起こすものが存在する。図１１は、２イベント誤りによる誤訂正を抑制するための方法の一例を示した図である。最尤復号器から得た尤度情報１１０１を用いて、尤度判定器１１０２は、誤りイベントの発生を推定する。尤度判定器１１０２が、誤りイベントの発生を推定したときはカウンタ１１０３の値を１増やす。しきい値判定器１１０４は、符号化ブロック内で推定誤りイベント数が２以上か否かで、CRCCによる短い誤りの訂正８の動作のON/OFF切換えを行なう。
【００５６】
図１０にCRCCを含む磁気ディスク装置（ＨＤＤ）１０００の構成の一例を示す。ＨＤＤ１０００は、磁気ディスク１００２と磁気ヘッド１００１とキャリッジ１００３とキャリッジ上に取り付けられたＲ／ＷＩＣ１００４とスピンドルモータ１００５、ＦＰＣ１００６等からなるヘッドディスクアセンブリ（ＨＤＡ）１０１０、信号処理ＬＳＩ（ＳＰＣ）１０１１とハードディスクコントローラチップ（ＨＤＣ）１０１２とサーボコントローラ（ＳＲＶＣ）１０１３、マイクロプロセッサ（ＭＰ）１０１４とＳＣＳＩチップ１０１５、ＲＯＭ１０１６、ＲＡＭ１０１７等からなるパッケージ基板（ＰＣＢ）１０３０とで構成される。そして、短い誤り訂正を行なうための符号化と訂正を行なう回路ＣＲＣＣ８はＳＰＣとＨＤＣの間に位置する。
【００５７】
【発明の効果】
変調符号による０連続長制限を崩すこと無く変調符号復調器１０の直前に最尤復号器４で高頻度で発生する誤りを構成が簡単なCRCCを用いて訂正することで記憶チャネルの信頼性が向上される。
【図面の簡単な説明】
【図１】本発明の誤り訂正方式を組み込んだ信号処理ブロック構成図。
【図２】従来の信号処理のブロック構成図。
【図３】  EEPRMLの最尤復号における誤り流れ図。
【図４】線形誤り訂正符号のイメージ図。
【図５】誤り検出器の回路構成図。
【図６】  16/17 (0,6/6) 符号において±(+-+-…)の形の連続誤り長が最大になる例を示す図。
【図７】構成例における冗長ビットの構成図。
【図８】生成多項式とすることで長さ6の連続誤りでは誤訂正を起こさないような14次の原始多項式と、E1に属する誤りでの誤訂正の有無の表。
【図９】  CRCCにおける誤りのチェックと訂正を行なうアルゴリズムの流れ図。
【図１０】  CRCCを含む磁気ディスク装置の構成を示す図。
【図１１】２イベント誤りによる誤訂正を抑制するための方法の一例を示した図。
【符号の説明】
１…ヘッドから読み出された信号、          ２…PR等化器、
３…PR等化器によって等化された後の信号、  ４…最尤復号器、
５…最尤復号器によって推定された符号系列、６…ポストコーダ、
７…ポストコード化された推定符号系列、  ８…CRCCによる誤り訂正器、
９…CRCCによって誤り訂正された後の推定符号系列、
１０…16/17符号復調器、１１…推定符号系列に対応する情報系列、
１２…Reed-Solomon符号による誤り訂正器、
１３…Reed-Solomon符号によって誤り訂正された後の情報系列、
５０１…CRCC誤り検出器、
９０１〜９１１…CRCCによる誤り検出・訂正アルゴリズムの説明に使用、
１０１１…信号処理ＬＳＩ（ＳＰＣ）、
１０１２…ハードディスクコントローラチップ（ＨＤＣ）、
１１０１…最尤復号器４から得られた尤度情報、
１１０２…誤り発生尤度判定器、１１０３…推定誤りイベントのカウンタ、
１１０４…誤り数のしきい値判定器。
【図１】
0004324276.tif 000006
【図２】
0004324276.tif 000007
【図３】
0004324276.tif 000008
【図４】
0004324276.tif 000009
【図５】
0004324276.tif 000010
【図６】
0004324276.tif 000011
【図７】
0004324276.tif 000012
【図８】
0004324276.tif 000013
【図９】
0004324276.tif 000014
【図１０】
0004324276.tif 000015
【図１１】
0004324276.tif 000016