(第1実施形態)
第1実施形態を具体的に説明する前に、まず本第1実施形態にかかる記憶システム100について概要を述べる。本第1実施形態にかかる記憶システム100は、ハードディスクコントローラと、磁気ディスク装置と、リードチャネルとライトチャネルを含むリードライトチャネルと、を有する。ライトチャネルにおいては、符号化として、ランレングス制限符号化と、DCフリー符号化と、LDPC符号化とを実行する。また、リードチャネルにおいては、ビタビアルゴリズムなどを用いたデータ検出と、LDPC復号を行なう。このデータ検出は、DC成分が存在することによって検出精度が劣化することが知られている。さらに、検出精度が劣化することによりLDPC復号の訂正能力が低減する。したがって、本発明の第1実施形態においては、LDPC符号化を行なう前の段階において、DC成分を低減させるDCフリー符号化を行なう構成とした。なお、本第1実施形態にかかる記憶システム100は、LDPC符号化に限定されず、他の誤り訂正符号化方式、たとえば、ターボ符号化や畳込み符号化が実行される構成であってもよい。
DCフリー符号化は、異なる2つの系列のうち、よりDCフリー性の高い系列を選択することによって実現される。異なる2つの系列を生成するために、異なる2つの性質を有するRLL符号化を実行すると、2つ目のRLL符号化の回路が必要となる分、回路規模が増大する。また、回路規模の問題としないアプリケーションの場合であっても、異なる2つの性質を有するRLL符号化を実行した結果、双方の系列ともにDCフリー性が良いとは限らない。したがって、本発明の第1実施形態においては、同一のRLL符号化を実行することとした。
ここで、同一のRLL符号化を実行する場合、選択の対象となる系列が同一になるのを回避する必要がある。また、DCフリー特性の良い制限符号化系列が存在しない場合を避ける必要もある。そこで、本発明の第1実施形態においては、RLL符号化する前に、任意の信号系列と、任意の信号系列に所定の信号処理を実行した後の2つの系列とを対象とすることとした。これにより、生成される系列は全く異なるため、統計的にDCフリー性の良い系列が生成できる。また、この所定の信号処理を信号系列のビット数を変えずに実行することによって、符号化利得の減少を回避している。さらに、信号処理の処理内容を任意に変更することによって、さまざまな系列を生成できるので、選択の幅を広げられる。そのため、よりDCフリー特性の良い系列を生成することができることとなる。したがって、本発明の第1実施形態は、ハードディスクのような符号化率を低く設定できないようなアプリケーションにおいて好適となる。詳細は後述する。
以下、図面を用いて、本発明の第1実施形態について詳細に説明する。
図1は、本発明の第1実施形態に係る記憶システム100の構成を示す図である。図1の記憶システム100は、大きく分けて、ハードディスクコントローラ1(以下、「HDC1」と略記する。)、中央処理演算装置2(以下、「CPU2」と略記する。)、リードライトチャネル3(以下、「R/Wチャネル3」と略記する。)、ボイスコイルモータ/スピンドルモータ制御部4(以下、「VCM/SPM制御部4」と略記する。)、及びディスクエンクロージャ5(以下、「DE5」と略記する。)とから構成される。一般に、HDC1、CPU2、R/Wチャネル3、及びVCM/SPM制御部4は同一の基板上に構成される。
HDC1は、HDC1全体を制御する主制御部11、データフォーマット制御部12、誤り訂正符号化制御部13(以下、「ECC制御部13」と略記する。)、及びバッファRAM14を含む。HDC1は、図示しないインタフェース部を介してホストシステムと接続される。また、R/Wチャネル3を介して、DE5と接続されており、主制御部11の制御により、ホストとDE5の間でデータ転送する。このHDC1には、R/Wチャネル3で生成されるリードリファレンスクロック(RRCK)が入力される。データフォーマット制御部12は、ホストから転送されたデータをディスク媒体50上に記録するのに適したフォーマットに変換し、逆に、ディスク媒体50から再生されたデータをホストに転送するのに適したフォーマットに変換する。ディスク媒体50は、たとえば、磁気ディスクを含む。ECC制御部13は、ディスク媒体50から再生されたデータに含まれる誤りの訂正及び検出を可能にするために、記録するデータを情報シンボルとして、冗長シンボルを付加する。またECC制御部13は、再生されたデータに誤りが生じているかを判断し、誤りがある場合には誤りを訂正し、或いは誤りを検出する。但し、誤りが訂正できるシンボル数は有限であり、冗長データの長さに関係する。即ち、多くの冗長データを付加するとフォーマット効率が悪化するため、誤り訂正可能シンボル数とはトレードオフとなる。ECCとしてリードソロモン(RS)符号を利用して誤り訂正を実行する場合、(冗長シンボル数/2)個までの誤りを訂正できる。バッファRAM14は、ホストから転送されたデータを一時的に保存し、適切なタイミングでR/Wチャネル3に転送する。逆に、R/Wチャネル3から転送されたリードデータを一時的に保存し、ECC復号処理などの終了後、適切なタイミングでホストに転送する。
CPU2は、フラッシュROM21(以下、「FROM21」と略記する。)、及びRAM22を含み、HDC1、R/Wチャネル3、VCM/SPM制御部4、及びDE5と接続される。FROM21には、CPU2の動作プログラムが保存されている。
R/Wチャネル3は、ライトチャネル31とリードチャネル32とに大別され、HDC1との間で記録するデータ及び再生されたデータを転送する。また、R/Wチャネル3は、DE5と接続され、記録信号の送信、再生信号の受信を実行する。詳細は後述する。
VCM/SPM制御部4は、DE5中のボイスコイルモータ52(以下、「VCM52」と略記する。)とスピンドルモータ53(以下、「SPM53」と略記する。)を制御する。
DE5は、R/Wチャネル3と接続され、記録信号の受信、再生信号の送信を実行する。またDE5は、VCM/SPM制御部4と接続されている。DE5は、ディスク媒体50、ヘッド51、VCM52、SPM53、及びプリアンプ54等を有している。図1の記憶システム100においては、ディスク媒体50が1枚であり、且つヘッド51がディスク媒体50の一方の面側のみに配置されている場合を想定しているが、複数のディスク媒体50が積層配置された構成であってもよい。また、ヘッド51は、ディスク媒体50の各面に対応して設けられるのが一般的である。R/Wチャネル3により送信された記録信号は、DE5内のプリアンプ54を経由してヘッド51に供給され、ヘッド51によりディスク媒体50に記録される。逆に、ヘッド51によりディスク媒体50から再生された信号は、プリアンプ54を経由してR/Wチャネル3に送信される。DE5内のVCM52は、ヘッド51をディスク媒体50上の目標位置に位置決めするために、ヘッド51をディスク媒体50の半径方向に移動させる。また、SPM53は、ディスク媒体50を回転させる。
ここで、図2を用いて、R/Wチャネル3について説明する。図2は、図1のR/Wチャネル3の構成を示す図である。R/Wチャネル3は、大きく分けて、ライトチャネル31とリードチャネル32から構成される。
ライトチャネル31は、バイトインターフェース部301、スクランブラ302、ランレングス制限およびDCフリー符号化部303(以下、「RLL/DCフリー符号化部303」と略記する。)、低密度パリティチェック符号化部304(以下、「LDPC符号化部304」と略記する。)、書き込み補償部305(以下、「ライトプリコン部305」と略記する。)、ドライバ306を含む。
バイトインターフェース部301では、HDC1から転送されたデータが入力データとして処理される。メディア上に書き込むデータは1セクタ単位でHDC1から入力される。このとき1セクタ分のユーザデータ(512バイト)だけでなく、HDC1によって付加されたECCバイトも同時に入力される。データバスは通常1バイト(8ビット)であり、バイトインターフェース部301により入力データとして処理される。スクランブラ302はライトデータをランダムな系列に変換する。同じ規則のデータの繰り返しは、リード時における検出性能に悪影響を与え、エラーレートを悪化させるのを防ぐためである。
RLL/DCフリー符号化部303は0の最大連続長を制限するためのものである。0の最大連続長を制限することにより、自動利得制御部317(以下、「AGC317」と略記する。)などに適したデータ系列にする。さらに、直流成分を低減し、データ検出能力の向上を図り、もって誤り訂正能力の向上を図る。詳細は後述する。
LDPC符号化部304は、データ系列をLDPC符号化して冗長ビットであるパリティビットを含む系列を生成する役割を有する。LDPC符号化は、生成行列と呼ばれるk×nの行列に、長さkのデータ系列を左から掛け合わせることで実行する。この生成行列に対応する検査行列Hに含まれる各要素は、0もしくは1であり、1の数が0の数に比べて少ないことから、低密度パリティ検査符号(Low Density Parity Check Codes)と呼ばれている。この1と0の配置を利用することによって、LDPC繰返復号部にて、効率的にエラーを訂正できる。
ライトプリコン部305は、メディア上の磁化遷移の連続による非線形歪を補償する回路である。ライトデータから補償に必要な規則を検出し、正しい位置で磁化遷移が生ずるようにライト電流波形を予め調整をする。ドライバ306は擬似ECLレベルに対応した信号を出力するドライバである。ドライバ306からの出力は図示しないDE5に送られ、プリアンプ54を通してヘッド51に送られ、ライトデータがディスク媒体50上に記録される。
リードチャネル32は、可変利得増幅器311(以下、「VGA311」と略記する。)、ローパスフィルタ312(以下、「LPF312」と略記する。)、AGC317、アナログ/デジタル変換器313(以下、「ADC313」と略記する。)、周波数シンセサイザ314、フィルタ315、ソフト出力検出部320、LDPC繰返復号部322、同期信号検出部321、ランレングス制限/DCフリー復号部323(以下、「RLL/DCフリー復号部323」と略記する。)、デスクランブラ324とから構成されている。
VGA311及びAGC317は、図示しないプリアンプ54から送られたデータのリード波形の振幅を調整する。AGC317は理想的な振幅と実際の振幅を比較し、VGA311に設定すべきゲインを決定する。LPF312は、カットオフ周波数とブースト量を調整することができ、高周波ノイズの低減と部分応答(Partial Response。以下、「PR」と略記する。)波形への等化の一部を担う。LPF312でPR波形への等化を行うが、ヘッドの浮上量変動、媒体の不均一性、モータの回転変動などの多くの要因により、アナログのLPFによる完全な等化は難しいので、後段に配置され、よりフレキシビリティに富んだフィルタ315を用いて、再度PR波形への等化を行う。フィルタ315は、そのタップ係数を適応的に調整する機能を有していてもよい。周波数シンセサイザ314は、ADC313のサンプリング用クロックを生成する。
ADC313は、AD変換により直接同期サンプルを得る構成とした。なお、この構成の他に、AD変換により非同期サンプルを得る構成であってもよい。この場合は、ゼロ相リスタート部、タイミング制御部、及び補間フィルタをさらにADC313の後段に設ければよい。非同期サンプルから同期サンプルを得る必要があり、これらのブロックがその役割を担う。ゼロ相リスタート部は初期位相を決定するためのブロックで、できるだけ早く同期サンプルを得るために用いられる。初期位相を決定した後は、タイミング制御部で理想的なサンプル値と実際のサンプル値を比較し、位相のずれを検出する。これを用いて補間フィルタのパラメータを決定することにより、同期サンプルを得ることができる。
ソフト出力検出部320は、符号間干渉に伴う復号特性の劣化を回避するために、ビタビアルゴリズムの一種であるソフト出力ビタビアルゴリズム(Soft−Output Viterbi Algorithm。以下、「SOVA」と略記する。)が用いられる。すなわち、近年の磁気ディスク装置の記録密度の上昇に伴い、記録された符号間の干渉が大きくなり、復号特性が劣化するといった課題を解決するため、これを克服する方式として符号間干渉による部分応答を利用した最ゆう復号(Partial Response MaximumLikeihood。以下、「PRML」と略記する。)方式を用いる。PRMLは、再生信号の部分応答のゆう度を最大にする信号系列を求める方式である。
ソフト出力検出部320としてSOVA方式が用いられている場合、軟判定値を出力する。例えば、SOVAの出力として、(−0.71、+0.18、+0.45、−0.45、−0.9)という軟判定値が出力されたとする。これらの値は、0である可能性が大きいか、1である可能性が大きいかを数値で表している。例えば、1番目の「−0.71」は1である可能性が大きいことを示しており、2番目の「+0.18」は0である可能性が大きいが1である可能性も小さくはないことを意味する。従来のビタビディテクタの出力はハード値であり、SOVAの出力を硬判定したものである。上記の例の場合、(1、0、0、1、1)である。ハード値は、0であるか、1であるかのみを表しており、どちらの可能性が高いかという情報が失われている。このためLDPC繰返復号部322に軟判定値を入力する方が復号性能が向上する。
LDPC繰返復号部322は、LDPC符号化されているデータ系列から、LDPC符号化前の系列に復元する役割を有する。復号化の方法としては、主に、sum−product復号法とmin−sum復号法があり、復号性能の面ではsum−product復号法が有利であるが、min−sum復号法はハードウェアによる実現が容易である特徴を持つ。LDPC符号を用いる実際の復号操作では、ソフト出力検出部320とLDPC繰返復号部322の間で繰り返し復号することにより、非常に良好な復号性能を得ることができる。このために実際はソフト出力検出部320とLDPC繰返復号部322を複数段配列した構成が必要になる。同期信号検出部321は、データの先頭に付加された同期信号(Sync Mark)を検出し、データの先頭位置を認識する役割を有する。
RLL/DCフリー復号部323は、LDPC繰返復号部322から出力されたデータに対して、ライトチャネル31のRLL/DCフリー符号化部303の逆操作を行い、元のデータ系列に戻す。詳細は後述する。
デスクランブラ324は、ライトチャネル31のスクランブラ302の逆操作を行い、元のデータ系列に戻す。ここで生成されたデータはHDC1に転送される。
ここで、「DCフリー」について説明する。図3(a)〜(b)は、本発明の第1実施形態にかかるDCフリー特性の例を示す図である。図3(a)は、DCフリーである場合とそうでない場合における軟判定値の分布例を示す図である。横軸は個数、縦軸は軟判定値を示す。また、縦軸は、中心を±0として、プラス側、マイナス側の双方の軟判定値を含む軸である。実線で示す第1特性200は、DCフリーの場合の分布を示す。また、破線で示す第2特性300は、DCフリーでない場合の分布例を示す。DCフリーとは、前述したように、系列に含まれる0と1のビットの個数の比率が50%であることを示す。いいかえると、図3(a)の第1特性200に図示するように、図2のLDPC繰返復号部322における軟判定値の分布において、±1/2が中心値となり、±0付近の分布量が少ないことなどをいう。一方、DCフリーでない場合、たとえば、図3(a)の第2特性300に図示するように、軟判定値の分布において、±0付近の分布量が増加したものとなる。
図3(b)は、DCフリーである場合とそうでない場合におけるビット誤り率特性の例を示す図である。横軸は信号対雑音比(Signal to Noise Ratio)、縦軸はビット誤り率(Bit Error Rate)を示す。実線で示す第3特性210は、DCフリーの場合のビット誤り率特性を示す。また、破線で示す第4特性310は、DCフリーでない場合のビット誤り率特性を示す。図示するように、DCフリーでない場合は、DCフリーである場合と比べて、ビット誤り率が悪化することとなる。
図4は、図2のRLL/DCフリー符号化部303の構成例を示す図である。RLL/DCフリー符号化部303は、第1RLL符号化部60と、第1信号処理部62と、第2RLL符号化部64と、直流成分除去符号化部66とを含む。
第1RLL符号化部60は、スクランブラ302から出力されたデジタル信号系列をランレングス制限符号化することによって、第1符号化系列を生成する。第1信号処理部62は、スクランブラ302から出力されたデジタル信号系列に含まれる複数のビットの個数を変えずに、デジタル信号系列に対し、所定の信号処理を実行する。所定の信号処理は、デジタル信号系列に含まれる複数のビットの個数を変えなければ、任意の処理でよい。たとえば、デジタル信号系列に含まれる複数のビットのそれぞれに対し、ビット反転処理を実行する処理であってもよい。また、デジタル信号系列に含まれる複数のビットの順序を並び替えてもよい。また、ビット反転処理、ビットの順序を並び替えの双方の処理を行なってもよい。第2RLL符号化部64は、第1信号処理部62から出力された信号処理部によって所定の信号処理が実行されたデジタル信号系列をランレングス制限符号化することによって、第2符号化系列を生成する。直流成分除去符号化部66は、第1RLL符号化部60によって生成された第1符号化系列と、第2RLL符号化部64によって生成された第2符号化系列とのうち、DCフリー性の高い、いずれか一方を選択して出力する。
具体例を用いて説明する。処理すべきデジタル信号系列が300ビットから構成されている場合、RLL/DCフリー符号化部303は、30ビットを1組として、10回に分けて処理する。ここで、第1RLL符号化部60、第2RLL符号化部64の符号化率が30/31である場合、第1RLL符号化部60、第2RLL符号化部64からそれぞれ出力される1回あたりの系列のビット数は、31ビットとなる。
図5は、図4の直流成分除去符号化部66の構成例を示す図である。直流成分除去符号化部66は、符号化系列選択部74と、選択識別情報生成部76と、識別情報付加部78とを含む。符号化系列選択部74は、第1RLL符号化部60によって生成された第1符号化系列と、第2RLL符号化部64によって生成された第2符号化系列のうち、いずれか一方の符号化系列を選択する。選択識別情報生成部76は、符号化系列選択部74によって選択された符号化系列を示す選択識別情報を生成する。識別情報付加部78は、符号化系列選択部74によって選択された符号化系列のいずれかの個所に、選択識別情報生成部76によって生成された選択識別情報を付加する。
具体的に説明する。符号化系列選択部74によって第1符号化系列が選択された場合、識別情報付加部78において第1符号化系列に付加される選択識別情報は「0」となる。一方、符号化系列選択部74によって第2符号化系列が選択された場合、識別情報付加部78において第1符号化系列に付加される選択識別情報は「1」となる。いいかえると、選択識別情報「0」が付加された第1符号化系列、もしくは、選択識別情報「1」が付加された第2符号化系列がLDPC符号化部304に出力される。なお、識別情報付加部78によって選択識別情報が付加される個所は、符号化系列中の任意の一定の個所でよく、たとえば、符号化系列の最後尾に付加してもよい。詳細は後述するが、ここで付加される選択識別情報は判定ビットであり、復号側において判定ビットが付加された位置、および、判定ビットの内容を解析することにより、適切な復号処理が実現されることとなる。前述の具体例においては、1回あたり31ビットの符号化系列に1ビットの選択識別情報が付加され合計32ビットの系列が出力されることとなる。すなわち、RLL/DCフリー符号化部303全体における符号化率は、30/32となる。
また、符号化系列選択部74は、図示しない第1連結部と第2連結部とを含んでも良い。第1連結部は、当該符号化系列選択部74によってすでに選択された符号化系列と前記第1符号化系列とを連結させる。また、第2連結部は、当該符号化系列選択部74によってすでに選択された符号化系列と前記第2符号化系列とを連結させる。この場合、符号化系列選択部74は、第1連結部によって連結された系列を新たな第1符号化系列とし、第2連結部によって連結された系列を新たな第2符号化系列とし、いずれか一方の符号化系列を選択してもよい。すなわち、過去において選択された符号化系列と、現在選択の候補となっている符号化系列とを連結させたものを対象として、符号化系列選択部74が選択判定を行なうことによって、長区間におけるDCフリー特性を向上できる。
図6(a)〜(c)は、図5の符号化系列選択部74の第1〜第3の構成例を示す図である。図6(a)は、図5の符号化系列選択部74の第1の構成例を示す図である。第1の構成における符号化系列選択部74は、第1比率計算部80と、第2比率計算部82と、選択出力部84とを含む。
第1比率計算部80は、第1符号化系列に含まれる複数のビットのうち、0を示すビットと1を示すビットとの比率を計算する。第2比率計算部82は、第2符号化系列に含まれる複数のビットのうち、0を示すビットと1を示すビットとの比率を計算する。選択出力部84は、第1比率計算部80で計算された比率と、第2比率計算部82で計算された比率とのうち、50%に近いほうの比率に対応する符号化系列を選択して出力する。
具体例を用いて説明する。まず、時刻t=1において、第1RLL符号化部60、第2RLL符号化部64から、それぞれ31ビットの符号化系列が出力されたと仮定する。この場合、第1比率計算部80、第2比率計算部82は、それぞれの符号化系列に含まれるビットを解析して、比率を計算する。ここで、第1比率計算部80に入力される符号化系列に含まれるビットのうち、0を示すビットが14ビット、1を示すビットが17ビットである場合、比率は、第1比率計算部80によって以下のように計算される。
比率t=1 = (0を示すビット数+1)/(符号化系列のビット数+1) = (14+1)/(31+1)≒ 46.9%
また、第2比率計算部82に入力される符号化系列に含まれるビットのうち、0を示すビットが12ビット、1を示すビットが19ビットである場合、比率は、第2比率計算部82によって、以下のように計算される。この場合、第1符号化系列のほうが比率が50%に近いため、t=1においては、選択出力部84によって第1符号化系列が選択される。また、選択された第1符号化系列にかかる0を示すビット数「14」が記憶される。なお、上式、下式の右辺の分子において、それぞれ「1」、「0」を加算しているのは、それぞれの選択識別情報を「0」、「1」と仮定しているためである。また、上式、下式の右辺の分母において、「1」を加算しているのは、選択識別情報を含めた系列の0の個数の割合を計算するためである。
比率t=1 = (0を示すビット数+0)/(符号化系列のビット数+1) = 12/(31+1) = 37.5%
つぎに、t=2においてもt=1の場合と同様に、第1RLL符号化部60、第2RLL符号化部64から、それぞれ31ビットの符号化系列が出力されたとする。ここで、第1比率計算部80に入力される符号化系列に含まれるビットのうち、0を示すビットが11ビット、1を示すビットが20ビットである場合、比率は、以下のように計算される。
比率t=2 = (0を示すビット数+1)/((符号化系列のビット数+1)×t) = (14+1+11+1)/((31+1)×2) ≒ 42.2%
上記は、t=1の場合と異なり、第1比率計算部80は、t=1において選択された符号化系列とt=2における第1符号化系列とが第1連結部によって連結された系列について、比率を計算する。すなわち、t=1で選択された第1符号化系列のうち0を示すビットの個数「14+1」と、t=2における第1符号化系列のうちの0を示すビットの個数「11+1」と上式の分子において加算されることとなる。また、分母は、2組の符号化系列にかかるビット数となる。
また、第2比率計算部82に入力される符号化系列に含まれるビットのうち、0を示すビットが17ビット、1を示すビットが14ビットである場合、第2比率計算部82によって、以下のように比率が計算される。この場合、第2符号化系列のほうが比率が50%に近いため、t=2においては、選択出力部84によって第2符号化系列が選択される。
比率t=2 = (0を示すビット数+0)/((符号化系列のビット数+1)×t) = (14+1+17+0)/((31+1)×2) = 50.0%
以下、同様にt=3以降においても比率が計算される。ここで、t=kにおける比率は、以下のように表される。ただし、kは1以上の整数とする。また、Nbit(m)とは、t=mにおいて選択された符号化系列に含まれるビットのうち、0を示すビットの個数を示す。ただし、Nbit(k)は、比率を計算する対象となる符号化系列に含まれるビットのうち、0を示すビットの個数を示す。なお、比率を計算する対象となる符号化系列には、選択識別情報も含まれるものとする。
比率t=k = Σk m=1Nbit(m)/(32×k)
図6(b)は、図5の符号化系列選択部74の第2の構成例を示す図である。第2の構成における符号化系列選択部74は、第1合算部86と、第2合算部88と、選択出力部84とを含む。第1合算部86は、第1符号化系列に含まれる複数のビットを合算して第1合算値を生成する。第2合算部88は、第2符号化系列に含まれる複数のビットを合算して第2合算値を生成する。符号化系列検出部は、第1合算部86によって生成された第1合算値と、第2合算部88によって生成された第2合算値とを比較して、第1符号化系列と第2符号化系列のうち、小さいほうの合算値に対応する符号化系列を検出する。選択出力部84は、第1符号化系列と、第2符号化系列とのうち、系列検出部によって検出された符号化系列を選択して出力する。
具体例を用いて説明する。まず、t=1において、第1RLL符号化部60、第2RLL符号化部64から、それぞれ31ビットの符号化系列が出力されたと仮定する。この場合、第1合算部86、第2合算部88は、それぞれの符号化系列に含まれるビットを合算する。合算においては、0を「+1」に置換えると共に、1を「−1」に置換えて合計してもよい。このように合算することによって、0と1を示すビットの個数が等しい場合、合算値は0となる。したがって、選択出力部84においては、合算値が0に近い符号化系列を選べばよく、たとえば、合算値の絶対値が小さい符号化系列を選べばよい。なお、この手法は、連続デジタル加算(Running Digital Summation。以下、「RDS」と略称する。)とも呼ばれる。
ここで、t=1において、第1合算部86に入力される符号化系列に含まれる31個のビットのうち、0を示すビットが14ビット、1を示すビットが17ビットである場合、比率は、以下のように計算される。なお、右辺の第1項において「1」を加算しているのは、選択識別情報を0と仮定しているためである。
RDSabs = |(14+1)×(+1)+17×(−1)| = 2
また、第2合算部88に入力される符号化系列に含まれるビットのうち、0を示すビットが12ビット、1を示すビットが19ビットである場合、比率は、以下のように計算される。この場合、第1符号化系列のRDSのほうが小さいため、t=1においては、選択出力部84によって第1符号化系列が選択される。また、ここでは、絶対値を計算する前の第1符号化系列についてのRDSが「RDS1=−2」として記憶される。なお、右辺の第2項において「1」を加算しているのは、選択識別情報を1と仮定しているためである。
RDSabs = |12×(+1)+(19+1)×(−1)| = 6
つぎに、t=2において、t=1の場合と同様に、第1RLL符号化部60、第2RLL符号化部64から、それぞれ31ビットの符号化系列が出力されたとする。ここで、第1合算部86に入力される符号化系列に含まれるビットのうち、0を示すビットが11ビット、1を示すビットが20ビットである場合、RDSは、以下のように計算される。t=1の場合と異なり、t=2においては、t=1において選択された符号化系列にかかるビット数も考慮にいれて計算されることとなる。
RDSabs = |RDS1+(11+1)×(+1)+20×(−1)| = |−2+(−8)| = 10
また、第2合算部88に入力される符号化系列に含まれるビットのうち、0を示すビットが17ビット、1を示すビットが14ビットである場合、比率は、以下のように計算される。この場合、第2符号化系列のRDSのほうが小さいため、t=2においては、選択出力部84によって第1符号化系列が選択される。また、RDS2=0が記憶される。
RDSabs = |RDS1+17×(+1)+(14+1)×(−1)| = |−2+(+2)| = 0
以下、同様にt=3以降においてもRDSabsが計算される。ここで、t=kにおけるRDSabs(k)は、以下のように表される。ただし、tは1以上の整数とする。また、Nbit0(m)とは、t=mにおいて選択された符号化系列および選択識別情報に含まれるビットのうち、0を示すビットの個数を示す。また、Nbit1(m)とは、t=mにおいて選択された符号化系列および選択識別情報に含まれるビットのうち、1を示すビットの個数を示す。ただし、Nbit0(k)、Nbit1(k)は、合算値を計算する対象となる符号化系列に含まれるビットのうち、それぞれ、0を示すビットの個数、1を示すビットの個数を示す。
RDSabs(k)=|RDS(k−1)+Nbit0(k)×(+1)+Nbit1(k)×(−1)| = |Σk m=1(Nbit0(m)×(+1)+Nbit1(m)×(−1))|
上記における符号化系列選択部74の動作は、ある時刻においては区間演算処理を行ないつつ、過去の連続する時刻間において移動演算処理を行なっている点が特徴となる。このように、区間処理と移動処理を組み合わせることによって、長区間、たとえば、300ビットの系列全体において、DCフリー性が向上されることとなる。
なお、第1合算部86、第2合算部88における合算処理は、符号化系列に含まれる0もしくは1を示すビットをそのまま合計してもよい。この場合、選択出力部84においては、合算値が符号化系列の個数の半分の値に近いほうに対応する符号化系列が選択されることとなる。
図6(c)は、図5の符号化系列選択部74の第3の構成例を示す図である。第3の構成における符号化系列選択部74は、第1移動加算部90と、第1最大値検出部92と、第2移動加算部94と、第2最大値検出部96と、選択出力部84とを含む。第1移動加算部90は、第1符号化系列に含まれる複数のビットを移動加算を計算することによって、複数のビットと同数の第1移動加算値を生成する。第1最大値検出部92は、第1移動加算部90によって生成された複数の第1移動加算値のうち、最大値を検出する。第2移動加算部94は、第2符号化系列に含まれる複数のビットを移動加算することによって、複数のビットと同数の第2移動加算値を生成する。第2最大値検出部96は、第2移動加算部94によって生成された複数の第2移動加算値のうち、最大値を検出する。符号化系列検出部は、第1最大値検出部92によって検出された最大値と、第2最大値検出部96によって検出された最大値とを比較して、第1符号化系列と第2符号化系列のうち、小さいほうの最大値に対応する符号化系列を検出する。選択出力部84は、第1符号化系列と、第2符号化系列とのうち、系列検出部によって検出された符号化系列を選択して出力する。
符号化系列選択部74の第3の構成例は、第2の構成例と同様に、第1移動加算部90、第2移動加算部94において、それぞれの符号化系列のRDSを計算することによって、選択出力部84が符号化系列を選択する。第3の構成例においては、32ビットのRDSの計算途中における最大値が小さいほうの符号化系列を選択する点で、32ビットのRDS計算の最終計算値のみ考慮して0に近い符号化系列を選択する第2の構成例と異なる。言い換えると、第3の構成例は、所定の区間においても、複数の区間においても、移動演算によって選択処理を行なっている。このような態様をとることによって、区間途中においてもDCフリー性の良い系列を選択できる。
ここで、「RDSの計算途中における最大値」は、時刻tごとに、以下で導出される。ただし、Min{y(0)、y(1)}とは、小さいほうの値を選択し、選択したほうの系列の番号を出力する関数を示す。たとえば、y(0)>y(1)の場合、S(t)は、1となる。また、max{x}とは、xのうち、最大値を検出する関数を示す。また、kは、32×(t−1)+1〜32×tの範囲の値を示す。また、Bit(m、j)は、第j符号化系列のうち、m番目のビットが0である場合は+1を示し、また、1である場合は−1を示す。
S(t)=Min{MaxRDS(1)、MaxRDS(2)}
MaxRDS(1) = max{RDS(k、1)}
MaxRDS(2) = max{RDS(k、2)}
RDS(k、1) = |Σk m=1Bit(m、1)|
RDS(k、2) = |Σk m=1Bit(m、2)|
また、Bit(m、1)、Bit(m、2)は、tが増加するごとに、選択された系列に係るビットを下記のように書き換えた後に、上述の式等が計算されることとなる。
Bit(m、1)=Bit(m、2)=Bit(m、S(t−1)) :m=(t−1)×32+1〜t×32、t≠1
ここで、図6(c)に示す符号化系列選択部74の第3の構成例の動作について、図6(b)に示す符号化系列選択部74の第2の構成例の動作と比較する。図7は、図6(b)と図6(c)にそれぞれ示す符号化系列選択部74の動作の相違を示す図である。横軸は時間、縦軸はRDSを示す。ここで、400Aは、第1符号化系列におけるRDSの推移を示す。また、400Bは、第2符号化系列におけるRDSの推移を示す。図6(b)に示す符号化系列選択部74の第2の構成例においては、RDSの区間演算の最終値であるRDSAとRDSBとを比較して小さいほうの符号化系列を選択する。図7においては、RDSA<RDSBであるので、選択出力部84は、第1符号化系列を選択することとなる。一方、図6(c)に示す符号化系列選択部74の第3の構成例においては、それぞれのビットにおけるRDS、すなわち、32個のビットを順次移動演算処理した後の絶対値のうち、最大値を比較して、小さいほうの符号化系列を選択する。図7においては、第1符号化系列については、MaxAが最大値であり、また、第2符号化系列については、MaxBが最大値となる。ここでは、MaxA>MaxBであるので、選択出力部84は、第2符号化系列を選択することとなる。いずれの構成例を符号化系列選択部74に適用した場合においても、DCフリー性の高い符号化系列を選択することができる。
図8は、図2のRLL/DCフリー復号部323の構成例を示す図である。RLL/DCフリー復号部323は、判定ビット取得部68と、RLL復号部70と、第2信号処理部72とを含む。判定ビット取得部68は、LDPC繰返復号部322によって入力された符号化系列に付加されている所定の判定ビットを取得する。RLL復号部70は、LDPC繰返復号部322によって入力された符号化系列をランレングス制限復号することによってデジタル信号系列を生成する。第2信号処理部72は、RLL復号部70によって生成されたデジタル信号系列に対し、判定ビット取得部68によって取得された判定ビットに応じて、第1信号処理部62で実行された所定の信号処理と逆の信号処理を実行して出力する処理を実行する。たとえば、図4の第1信号処理部62において、ビット反転処理、および/または、ビットの順序を入れ替える処理を行なっていた場合、ビットの反転処理および/またはその入れ替えられた系列を元に戻す入れ替える処理とを実行する。もしくは、判定ビット取得部68によって取得された判定ビットに応じて、第2信号処理部72は、デジタル信号系列に含まれる複数のビットをそのまま出力する処理を実行する。
上述したこれらの構成は、ハードウエア的には、任意のコンピュータのCPU、メモリ、その他のLSIで実現でき、ソフトウエア的にはメモリにロードされた通信機能のあるプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
本第1実施形態によれば、同一のRLL符号化を実行することによって、回路規模の増大を伴うことなく、DCフリー性が良い系列を生成できる。RLL符号化する前に、任意の信号系列と、任意の信号系列に所定の信号処理を実行した後の2つの系列とを対象とすることによって、生成される系列は全く異なるため、統計的にDCフリー性の良い系列が生成できる。また、この所定の信号処理を信号系列のビット数を変えずに実行することによって、符号化利得の減少を回避できる。さらに、信号処理の処理内容を任意に変更することによって、さまざまな系列を生成できるので、選択の幅を広げられる。そのため、よりDCフリー特性の良い系列を生成することができる。したがって、ハードディスクのような符号化率を低く設定できないようなアプリケーションにおいて好適となる。また、同一のRLL符号化回路を用いることによって、回路構成を単純化でき、また、低規模にできる。
また、ビット反転処理、および/または、ビットの順序を並び替えることによって、ランレングス制限符号化の対象となる系列に含まれるビットの個数を増加せずに、異なる系列を生成できる。また、系列に含まれるビットの個数が増加しないため、全体の符号化率を低下させずに符号化系列が得られる。また、異なる系列を生成するために実行する所定の処理をビット反転処理、および/または、ビットの順序を並び替える処理とすることによって、単純な回路構成で所定の処理を実現できる。また、いずれの符号化系列が選択されたことを示す情報を符号化系列に付加することによって、復号側にて、容易に選択された符号化系列を判別できる。
過去において選択された符号化系列と、現在選択の候補となっている符号化系列とを連結させたものを対象として、符号化系列選択部74が選択判定を行なうことによって、長区間におけるDCフリー特性を向上できる。符号化系列選択部74において、区間処理と移動処理を組み合わせてRDSを計算することによって、長区間、たとえば、300ビットの系列全体において、DCフリー性が向上できる。また、0を示すビットと1を示すビットとの比率が50%に近いほうを選択することによって、DCフリー性の高い符号化系列が選択できる。また、符号化系列に含まれる複数のビットを合算し、より小さい合算値に対応する系列を選択することによって、DCフリー性の高い符号化系列が選択できる。また、符号化系列に含まれる複数のビットを移動加算した結果のうちの最大値を用いて系列を選択することによって、DCフリー性の高い符号化系列が選択できる。符号化側において実行されたDCフリー符号化に対応する処理を実行することによって、元のデジタル信号系列を復号できる。DCフリー性の高い符号化処理を実行することによって、より高速に記憶システムにアクセスすることができる。また、余分なハードウェアを搭載する必要がなくなるので、低規模な半導体集積回路を実現できる。
本第1実施形態において、R/Wチャネル3は、1つの半導体基板上に一体集積化されてもよい。また、本第1実施形態の符号化系列選択部74において、区間演算処理、もしくは、移動演算処理として説明した。しかしながらこれにかぎらず、区間平均処理、もしくは、移動平均処理を行なうことによって、DCフリー性の高い符号化系列の選別を行なってもよい。この場合であっても、同様の効果を得ることができる。また、RLL/DCフリー符号化部303の構成において、所定の信号処理を実行する第1信号処理部62を用いて、異なる2つの信号系列を生成するとして説明した。しかしながらこれにかぎらず、複数の信号処理部を用いて複数の信号系列を生成してもよい。たとえば、ビット反転処理、ビットの順序を入れ替える処理、ビット反転処理及びビットの順序を入れ替える処理をそれぞれ実行する信号処理装置を備えていてもよい。この場合、4つのうちいずれの系列が選択されたことを示す判定ビットを2ビットとすることによって、復号側において適切な復号処理が実現できる。また、信号処理を行なわない系列も含め、4つの異なる系列を生成することができる。また、選択肢を増やせるので、DCフリー性の高い系列が生成される可能性を向上できる。
(第2実施形態)
第2実施形態は、誤り訂正符号化/復号技術に関し、特に、記憶媒体に記憶されるデータに対して誤り訂正符号化もしくは誤りを訂正する信号符号化装置、信号復号装置、信号処理装置、および記憶システムに関する。
まず、第2実施形態に関する背景技術について説明する。
近年、ハードディスクを用いた記憶装置は、パーソナルコンピュータ、ハードディスクレコーダー、ビデオカメラ、携帯電話など、さまざまな分野において必須の装置となりつつある。ハードディスクを用いた記憶装置は、適用される分野によって求められる仕様もさまざまである。たとえば、パーソナルコンピュータに搭載するハードディスクには、高速性、大容量性が求められる。高速性、大容量性を向上するためには、訂正能力の高い誤り訂正符号化をする必要がある。しかしながら、高速化が進むほど単位時間あたりに扱うデータの量が増えるため、単位時間あたりの誤りも比例して増大する。そうすると、高い誤り訂正能力を有する訂正方式を用いない限り、ハードディスクに対する再読込みが発生するため、ハードディスクへのアクセスに要する時間が増大し、高速化のボトルネックとなる。
一般的に、誤り訂正符号化の対象となる信号系列として、直流成分が低減もしくは除去された(以下、「DCフリー」、もしくは、「DCフリー性」と表記する)信号系列が望まれている。DCフリーとは、周波数が0、すなわち直流成分におけるスペクトルが0であることを意味する。いいかえると、変調前の信号系列に含まれる複数のビットにおいて、0と1の比率が等しいことなどを意味する。DCフリー性を信号系列に備えるさせることによって、記憶媒体に記憶された変調データの記録パターンから得られる再生信号の平均レベルが、変調前の信号系列のパターンによらずに、所定の信号系列長の範囲内で常に一定となる性質をもち、ノイズ耐性が向上する。すなわち、DCフリー性の低い信号系列においては、ビタビアルゴリズムを用いたデータ検出において、検出確率が低下することとなる。これにより、低密度パリティチェック復号やリードソロモン復号における訂正能力も低減されることとなる。また、一般的に、サンプリングタイミングとデータとの同期を確保するために、ランレングス制限符号が用いられている。ランレングス制限符号とは、0の最大連続長や1の最大連続長を制限する符号化である。
従来、信号系列のDCフリー性を満たしつつ、ランレングス制限符号化する方法として、それぞれ異なる冗長ビットが付加された信号系列に対し、ランレングス制限符号化を実行し、符号化された複数の系列のうち、DCフリーに近い特性を有する系列を選択する方法が提案されていた(たとえば、特開2002−100125号公報参照。)。また、複数の異なる性質を有するランレングス制限符号化を実行し、符号化された複数の系列のうち、DCフリーに近い特性を有する系列を選択する方法が提案されていた(たとえば、特開2004−213863号公報参照。)。
第2実施形態が解決しようとする課題について述べる。
本発明者はこうした状況下、以下の課題を認識するに至った。すなわち、符号化側において、複数の符号化系列の中からDCフリー特性の良い系列を選択することによってDCフリー符号化を実現する場合、選択の対象となる複数の符号化系列においてDCフリー特性の良い符号化系列が存在しない場合がある。また、復号側において、符号化側で選択された符号化系列を判定する際に、その判定が誤ることによって、誤りが増大するといった課題である。
本発明の第2実施形態はこうした状況に鑑みてなされたものであり、その総括的な目的は、より少ない回路規模で、ランレングス制限を満たしつつ、DCフリー特性を向上できる信号符号化装置、信号復号装置、信号処理装置、および記憶システムを提供することにある。
第2実施形態における課題を解決するための手段について述べる。
上記課題を解決するために、第2実施形態のある態様の信号符号化装置は、所定の信号系列をランレングス制限符号化することによって、ランレングス符号化系列を生成するランレングス制限符号化部と、ランレングス制限符号化部によって生成されたランレングス符号化系列をリードソロモン符号化するリードソロモン符号化部と、を備える。リードソロモン符号化部は、ランレングス符号化系列をリードソロモン符号化するための冗長系列を生成する冗長系列生成部と、冗長系列生成部によって生成された冗長系列を前記ランレングス符号化系列に付加する冗長系列付加部と、を含む。
ここで、「付加」とは、加算、乗算、挿入などを含む。この態様によると、ランレングス制限符号化を行なった後にリードソロモン符号化を行なうことによって、復号側においては、リードソロモン復号を行なった後の信号系列に対してランレングス制限復号を行なうことになるので、誤り訂正能力を向上できる。
本発明の第2実施形態の別の態様もまた、信号符号化装置である。この装置は、デジタル信号系列をランレングス制限符号化することによって、第1ランレングス符号化系列を生成する第1ランレングス制限符号化部と、デジタル信号系列に含まれる複数のビットの個数を変えずに、デジタル信号系列に対し、所定の信号処理を実行する信号処理部と、信号処理部によって所定の信号処理が実行されたデジタル信号系列をランレングス制限符号化することによって、第2ランレングス符号化系列を生成する第2ランレングス制限符号化部と、第1ランレングス制限符号化部によって生成された第1ランレングス符号化系列と、第2ランレングス制限符号化部によって生成された第2ランレングス符号化系列とのうち、いずれか一方を選択して出力する直流成分除去符号化部と、直流成分除去符号化部によって出力されたランレングス符号化系列をリードソロモン符号化することによって、冗長系列を生成するリードソロモン符号化部と、リードソロモン符号化部によって生成された冗長系列を直流成分除去符号化部によって出力されたランレングス符号化系列に付加する冗長系列付加部と、を備える。
ここで、「直流成分除去符号化部」とは、入力された系列の直流成分を除去するもしくは低減する回路などを含み、また、DCフリー性の高い系列を出力する回路などを含む。また、「第1ランレングス制限符号化部」と「第2ランレングス制限符号化部」とは、同一の性質を有するランレングス制限符号化回路であってもよい。また、同一の性質を有するランレングス制限符号化回路である場合、「第1ランレングス制限符号化部」と「第2ランレングス制限符号化部」は、1つのランレングス制限符号化回路を時分割で実行することにより実現されてもよい。
この態様によると、異なる2つの系列に対して、ランレングス制限符号化を実行するので、全く異なる2つの符号化系列を得ることができる。ランレングス制限符号化の対象となる系列に含まれるビットの個数を増加しないように所定の信号処理を実行することによって、全体の符号化率を低下させずに符号化系列が得られる。2つの符号化系列は全く異なるため、DCフリー性の高い符号化系列を選択するにあたり、より好ましい選択肢となる。より好ましい選択肢の中からDCフリー性の高い符号化系列を選択することによって、よりDCフリー性の高い符号化系列を選択できる可能性が向上できる。また、同一のランレングス制限符号化回路を用いることによって、回路構成を単純化でき、また、低規模にできる。また、ランレングス制限符号化を行なった後にリードソロモン符号化を行なうことによって、復号側においては、リードソロモン復号を行なった後の信号系列に対してランレングス制限復号を行なうことになる。いいかえると、リードソロモン復号によって誤り訂正された系列に対して、ランレングス制限復号が実行される。そうすると、符号化側において選択された符号化系列を正確に判別でき、全体としての誤り訂正能力を向上できる。
信号処理部は、デジタル信号系列に含まれる複数のビットのそれぞれに対し、ビット反転処理を実行してもよい。また、信号処理部は、デジタル信号系列に含まれる複数のビットの順序を並び替えてもよい。また、信号処理部は、デジタル信号系列に含まれる複数のビットのそれぞれに対し、ビット反転処理をした後に、ビットの順序を並び替え処理を実行してもよい。この態様によると、ビット反転処理、および/または、ビットの順序を並び替えることによって、ランレングス制限符号化の対象となる系列に含まれるビットの個数を増加せずに、異なる系列を生成できる。また、系列に含まれるビットの個数が増加しないため、全体の符号化率を低下させずに符号化系列が得られる。また、異なる系列を生成するために実行する所定の処理をビット反転処理、および/または、ビットの順序を並び替える処理とすることによって、単純な回路構成で所定の処理を実現できる。
直流成分除去符号化部は、第1符号化系列と第2符号化系列のうち、いずれか一方の符号化系列を選択する符号化系列選択部と、符号化系列選択部によって選択された符号化系列を示す選択識別情報を生成する選択識別情報生成部と、符号化系列選択部によって選択された符号化系列のいずれかの個所に、選択識別情報生成部によって生成された選択識別情報を付加する識別情報付加部と、を有してもよい。また、符号化系列選択部は、当該符号化系列選択部によってすでに選択された符号化系列と前記第1符号化系列とを連結させる第1連結部と、当該符号化系列選択部によってすでに選択された符号化系列と前記第2符号化系列とを連結させる第2連結部と、を有してもよい。符号化系列選択部は、第1連結部によって連結された系列を新たな第1符号化系列とし、第2連結部によって連結された系列を新たな第2符号化系列とし、いずれか一方の符号化系列を選択してもよい。第1ランレングス制限符号化部から出力された第1符号化系列のいずれかの個所に第1判定ビットを付加する第1付加部と、第2ランレングス制限符号化部から出力された第2符号化系列のいずれかの個所に第1判定ビットがビット反転された第2判定ビットを付加する第2付加部と、をさらに備えてもよい。
ここで、「すでに選択された符号化系列と前記第1符号化系列とを連結させる」とは、過去において選択された符号化系列と、現在選択の候補となっている系列とを連結させることなどを含む。この態様によると、いずれの符号化系列が選択されたことを示す情報を符号化系列に付加することによって、復号側にて、容易に選択された符号化系列を判別できる。
符号化系列選択部は、第1比率計算部と、第2比率計算部と、選択出力部と、を有してもよい。第1比率計算部は、第1ランレングス制限符号化部によって生成された、もしくは、第1連結部によって連結された第1符号化系列に含まれる複数のビットのうち、0を示すビットと1を示すビットとの比率を計算する。第2比率計算部は、第2ランレングス制限符号化部によって生成された、もしくは第2連結部によって連結された第2符号化系列に含まれる複数のビットのうち、0を示すビットと1を示すビットとの比率を計算する。選択出力部は、第1比率計算部で計算された比率と、第2比率計算部で計算された比率とのうち、50%に近いほうの比率に対応する符号化系列を選択して出力する。この態様によると、0を示すビットと1を示すビットとの比率が50%に近いほうを選択することによって、DCフリー性の高い符号化系列が選択できる。
符号化系列選択部は、第1合算部と、第2合算部と、符号化系列検出部と、選択出力部と、を有してもよい。第1合算部は、第1ランレングス制限符号化部によって生成された、もしくは、第1連結部によって連結された第1符号化系列に含まれる複数のビットを合算して第1合算値を生成する。第2合算部は、第2ランレングス制限符号化部によって生成された、もしくは、第2連結部によって連結された第2符号化系列に含まれる複数のビットを合算して第2合算値を生成する。符号化系列検出部は、第1合算部によって生成された第1合算値の絶対値と、第2合算部によって生成された第2合算値の絶対値とを比較して、第1符号化系列と第2符号化系列のうち、小さいほうの合算値に対応する符号化系列を検出する。選択出力部は、第1符号化系列と、第2符号化系列とのうち、系列検出部によって検出された符号化系列を選択して出力する。
ここで、「合算値」とは、系列に含まれるビットを加算することなどを含む。また、「系列に含まれる複数のビット」とは、0もしくは1を示すビットなどを含み、また、0を示すビットを+1と置換え、1を示すビットを−1と置換えた場合におけるビットなども含む。この態様によると、符号化系列に含まれる複数のビットを合算し、より小さい合算値に対応する系列を選択することによって、DCフリー性の高い符号化系列が選択できる。
符号化系列選択部は、第1移動加算部と、第1最大値検出部と、第2移動加算部と、第2最大値検出部と、符号化系列検出部と、選択出力部と、を有してもよい。第1移動加算部は、第1ランレングス制限符号化部によって生成された、もしくは、第1連結部によって連結された第1符号化系列に含まれる複数のビットを移動加算することによって、複数のビットと同数の第1移動加算値を生成する。第1最大値検出部は、第1移動加算部によって生成された複数の第1移動加算値のうち、最大値を検出する。第2移動加算部は、第2ランレングス制限符号化部によって生成された、もしくは、第2連結部によって連結された第2符号化系列に含まれる複数のビットを移動加算することによって、複数のビットと同数の第2移動加算値を生成する。第2最大値検出部は、第2移動加算部によって生成された複数の第2移動加算値のうち、最大値を検出する。符号化系列検出部は、第1最大値検出部によって検出された最大値と、第2最大値検出部によって検出された最大値とを比較して、第1符号化系列と第2符号化系列のうち、小さいほうの最大値に対応する符号化系列を検出する。選択出力部は、第1符号化系列と第2符号化系列とのうち、系列検出部によって検出された符号化系列を選択して出力する。
ここで、「移動加算する」とは、移動加算し、さらに、絶対値を計算することなどを含む。この態様によると、符号化系列に含まれる複数のビットを移動加算した結果のうちの最大値を用いて系列を選択することによって、DCフリー性の高い符号化系列が選択できる。
冗長系列付加部は、リードソロモン符号化部によって生成された冗長系列を複数の組に分割する分割部を有してもよい。分割部によって分割された組を、ランレングス符号化系列のいずれかの個所であって、組ごとにそれぞれ異なる個所に付加してもよい。冗長系列付加部は、分割部によって分割された組ごとに、等間隔で、ランレングス符号化系列に付加してもよい。この態様によると、ランレングス符号化系列のいずれかの個所に、複数の組に分割された冗長系列をそれぞれ異なる個所に分散して付加することによって、冗長系列が付加された後の系列のRLL性、および、DCフリー特性を向上できる。また、組ごとに等間隔で付加することによって、冗長系列が付加された後の系列のRLL性、および、DCフリー特性をより向上できる。
分割部は、リードソロモン符号化部によって生成された冗長系列に含まれる複数のビットのうち、いずれか2以上のビットを1組として、分割してもよい。分割部は、リードソロモン符号化部によって生成された冗長系列に含まれる複数のビットのうち、2N(Nは1以上の整数)個のビットを1組として、分割してもよい。この態様によると、ランレングス符号化系列に偶数個ずつ冗長系列を付加することによって、冗長系列が付加された後の系列のRLL性をより向上できる。
本発明の第2実施形態のさらに別の態様は、信号復号装置である。この装置は、所定の冗長系列が挿入された第1信号系列を入力する入力部と、入力部によって入力された第1信号系列のうち、冗長系列の挿入個所を検出する冗長系列検出部と、冗長系列検出部によって検出された挿入個所にしたがって、入力部によって入力された第1信号系列から冗長系列を切り離して、第2信号系列を取得する冗長系列取得部と、冗長系列取得部によって切り離された冗長ビットを用いて、冗長系列取得部によって取得された第2信号系列の誤りを訂正するリードソロモン復号部と、リードソロモン復号部によって誤りが検査された第2信号系列に対し、ランレングス制限復号を実行するランレングス制限復号部と、を備える。この態様によると、リードソロモン復号を行なった後の信号系列に対してランレングス制限復号を行なうことによって、誤り訂正能力を向上できる。
本発明の第2実施形態の別の態様もまた、信号復号装置である。この装置は、入力部と、判定ビット取得部と、ランレングス制限復号部と、信号処理部と、を備える。入力部は、所定の判定ビットが付加された符号化系列を入力する。判定ビット取得部は、入力部によって入力された符号化系列に付加されている所定の判定ビットを取得する。ランレングス制限復号部は、入力部によって入力された符号化系列をランレングス制限復号することによってデジタル信号系列を生成する。信号処理部は、ランレングス制限復号部によって生成されたデジタル信号系列に対し、判定ビット取得部によって取得された判定ビットに応じて、デジタル信号系列に含まれる複数のビットのそれぞれをビット反転して出力する処理、もしくは、デジタル信号系列に含まれる複数のビットをそのまま出力する処理のいずれかの処理を実行する。また、信号処理部は、デジタル信号系列に含まれる複数のビットのそれぞれをビット反転して出力する処理に代えて、デジタル信号系列に含まれる複数のビットの順序を入れ替える処理を実行してもよい。この態様によると、符号化側において実行されたDCフリー符号化に対応する処理を実行することによって、元のデジタル信号系列を復号できる。
本発明の第2実施形態のさらに別の態様は、信号処理装置である。この装置は、信号符号化装置と信号復号装置とを備える。この態様によると、ランレングス制限符号化を行なった後にリードソロモン符号化を行なうことによって、復号側においては、リードソロモン復号を行なった後の信号系列に対してランレングス制限復号を行なうことになるので、誤り訂正能力を向上できる。
本発明の第2実施形態のさらに別の態様は、記憶システムである。この記憶システムは、データを記憶装置に書き込むライトチャネルと、記憶装置に記憶されているデータを読み出すリードチャネルとを備える信号記憶システムであって、ライトチャネルは、データに対し、ランレングス制限符号化を実行し、さらに、ランレングス制限符号化されたデータに対し、リードソロモン符号化を実行する第1の符号化部と、第1の符号化部で符号化されたデータに対し、低密度パリティ検査符号を用いて符号化する第2の符号化部と、第2の符号化部で符号化されたデータを記憶装置に書き込む書き込み部と、を備え、リードチャネルは、記憶装置から出力されたアナログ信号を入力する入力部と、入力部から入力されたアナログ信号をデジタル信号に変換して出力するアナログデジタル変換部と、アナログデジタル変換部から出力されたデジタル信号の尤度を計算して軟判定値を出力するソフト出力検出部と、ソフト出力検出部から出力されたデータを復号する、第2の符号化部に対応した、第1の復号部と、第1の復号部で復号されたデータを復号する、第1の符号化部に対応した、第2の復号部と、を備える。第1の符号化部は、データをランレングス制限符号化することによって、ランレングス符号化系列を生成するランレングス制限符号化部と、ランレングス制限符号化部によって生成されたランレングス符号化系列をリードソロモン符号化することによって、冗長系列を生成するリードソロモン符号化部と、リードソロモン符号化部によって生成された冗長系列をランレングス制限符号化部によって生成されたランレングス符号化系列に付加する冗長系列付加部と、を有する。第2の復号部は、第1の復号部によって復号されたデータを入力する入力部と、入力部によって入力された第1信号系列のうち、冗長系列の挿入個所を検出する冗長系列検出部と、冗長系列検出部によって検出された挿入個所にしたがって、入力部によって入力された第1信号系列から冗長系列を切り離して、第2信号系列を取得する冗長系列取得部と、冗長系列取得部によって切り離された冗長ビットを用いて、冗長系列取得部によって取得された第2信号系列の誤りを訂正するリードソロモン復号部と、リードソロモン復号部によって誤りが訂正された第2信号系列に対し、ランレングス制限復号を実行するランレングス制限復号部と、を有する。
この態様によると、ランレングス制限符号化を行なった後にリードソロモン符号化を行なうことによって、復号側においては、リードソロモン復号を行なった後の信号系列に対してランレングス制限復号を行なうことになるので、誤り訂正能力を向上できる。また、誤り訂正能力を向上できるので、より高速に記憶システムにアクセスすることができる。
本発明の第2実施形態のさらに別の態様もまた、記憶システムである。この記憶システムは、さらに、データを記憶する記憶装置と、記憶装置への書き込みと、記憶装置からの読み出しとを制御する制御部と、を有する。リードチャネルは、制御部の指示に従って、記憶装置に記憶されているデータを読み出し、ライトチャネルは、制御部の指示に従って、符号化されたデータを記憶装置に書き込む。この態様によると、ランレングス制限符号化を行なった後にリードソロモン符号化を行なうことによって、復号側においては、リードソロモン復号を行なった後の信号系列に対してランレングス制限復号を行なうことになるので、誤り訂正能力を向上できる。また、誤り訂正能力を向上できるので、より高速に記憶システムにアクセスすることができる。
本発明の第2実施形態のさらに別の態様は、信号符号化装置である。この装置は、符号化装置おいて、当該装置は、1つの半導体基板上に一体集積化されてもよい。この態様によると、DCフリー性およびランレングス特性の高い符号化処理が効率良く実行でき、余分なハードウェアを搭載する必要がなくなるので、低規模な半導体集積回路を実現できる。
なお、以上の構成要素の任意の組合せや本発明の構成要素や表現を方法、装置、システムなどの間で相互に置換したものもまた、本発明の態様として有効である。
本発明の第2実施形態を具体的に説明する前に、まず本第2実施形態にかかる記憶システム1100について概要を述べる。本第2実施形態にかかる記憶システム1100は、ハードディスクコントローラと、磁気ディスク装置と、リードチャネルとライトチャネルを含むリードライトチャネルと、を有する。ライトチャネルにおいては、誤り訂正符号化として、リードソロモン符号化と、ランレングス制限符号化と、DCフリー符号化と、LDPC符号化とを実行する。このリードソロモン符号化(以下、「RS符号化」と略称する。)は、リードチャネルを搭載する半導体と一体的に搭載してもよく、また、他の半導体に搭載されていてもよい。また、リードチャネルにおいては、ビタビアルゴリズムなどを用いたデータ検出と、LDPC復号を行なう。このデータ検出は、DC成分が存在することによって検出精度が劣化することが知られている。さらに、検出精度が劣化することによりLDPC復号の訂正能力が低減する。したがって、本発明の第2実施形態においては、LDPC符号化を行なう前の段階において、DC成分を低減させるDCフリー符号化を行なう構成とした。なお、本第2実施形態にかかる記憶システム1100は、LDPC符号化に限定されず、他の誤り訂正符号化方式、たとえば、ターボ符号化や畳込み符号化が実行される構成であってもよい。
DCフリー符号化は、異なる2つの系列のうち、よりDCフリー性の高い系列を選択することによって実現される。異なる2つの系列を生成するために、異なる2つの性質を有するRLL符号化を実行すると、2つ目のRLL符号化の回路が必要となる分、回路規模が増大する。また、回路規模の問題としないアプリケーションの場合であっても、異なる2つの性質を有するRLL符号化を実行した結果、双方の系列ともにDCフリー性が良いとは限らない。したがって、本発明の第2実施形態においては、同一のRLL符号化を実行することとした。
ここで、同一のRLL符号化を実行する場合、選択の対象となる系列が同一になるのを回避する必要がある。また、DCフリー特性の良い制限符号化系列が存在しない場合を避ける必要もある。そこで、本発明の第2実施形態においては、RLL符号化する前に、任意の信号系列と、任意の信号系列に所定の信号処理を実行した後の2つの系列とを対象とすることとした。これにより、生成される系列は全く異なることとなるため、統計的にDCフリー性の良い系列が生成できる。また、この所定の信号処理を信号系列のビット数を変えずに実行することによって、符号化利得の減少を回避している。さらに、信号処理の処理内容を任意に変更することによって、さまざまな系列を生成できるので、選択の幅を広げられる。そのため、よりDCフリー特性の良い系列を生成できる可能性が向上する。したがって、本発明の第2実施形態は、ハードディスクのような符号化率を低く設定できないようなアプリケーションにおいて好適となる。
複数のRLL符号化された系列のいずれかを選択する場合、復号側において、誤って、符号化側において選択された系列とは異なる系列を対象とする可能性がある。この場合、誤りが増大することとなる。一般的に、リードソロモン符号化は、RLL符号化の前に実行されていた。この場合、復号側においては、RLL復号は、リードソロモン復号(以下、「RS復号」と略称する)の前に実行されるとなり、選択された系列の判定が誤る可能性が低くなかった。したがって、本発明の第2実施形態においては、符号化側においては、RLL符号化および/またはDCフリー符号化、RS符号化の順で誤り訂正符号化を行なうこととした。また、復号側においては、RS復号、RLL復号の順で誤り訂正復号を行なうこととした。
しかしながら、符号化側において、RLL符号化および/またはDCフリー符号化、RS符号化の順で誤り訂正符号化を行なった場合、RS符号化において付加される冗長ビットは、RLL性および/またはDCフリー特性を満たさないこととなる。一般的に、RS符号化において生成され、RLL符号化系列に付加される冗長ビットの個数は、付加される系列に比べ1/10程度であるため、RLL性および/またはDCフリー特性を満たさないことによる弊害は大きい。したがって、本発明の第2実施形態においては、RS符号化において生成された冗長系列を分割し、RLL符号化系列に分散して付加することとした。これにより、冗長系列が付加された後の符号化系列は、RLL性、DCフリー特性を満足することとなる。詳細は後述する。
以下、図面を用いて、本発明の第2実施形態について詳細に説明する。
図9は、本発明の第2実施形態に係る記憶システム1100の構成を示す図である。図9の記憶システム1100は、大きく分けて、ハードディスクコントローラ1001(以下、「HDC1001」と略記する。)、中央処理演算装置1002(以下、「CPU1002」と略記する。)、リードライトチャネル1003(以下、「R/Wチャネル1003」と略記する。)、ボイスコイルモータ/スピンドルモータ制御部1004(以下、「VCM/SPM制御部1004」と略記する。)、及びディスクエンクロージャ1005(以下、「DE1005」と略記する。)とから構成される。一般に、HDC1001、CPU1002、R/Wチャネル1003、及びVCM/SPM制御部1004は同一の基板上に構成される。
HDC1001は、HDC1001全体を制御する主制御部1011、データフォーマット制御部1012、及びバッファRAM1014を含む。HDC1001は、図示しないインタフェース部を介してホストシステムと接続される。また、R/Wチャネル1003を介して、DE1005と接続されており、主制御部1011の制御により、ホストとDE1005の間のデータ転送を実行する。このHDC1001には、R/Wチャネル1003で生成されるリードリファレンスクロック(RRCK)が入力される。データフォーマット制御部1012は、ホストから転送されたデータをディスク媒体1050上に記録するのに適したフォーマットに変換し、逆に、ディスク媒体1050から再生されたデータをホストに転送するのに適したフォーマットに変換する。ディスク媒体1050は、たとえば、磁気ディスクを含む。バッファRAM1014は、ホストから転送されたデータを一時的に保存し、適切なタイミングでR/Wチャネル1003に転送する。逆に、R/Wチャネル1003から転送されたリードデータを一時的に保存し、適切なタイミングでホストに転送する。
CPU1002は、フラッシュROM1021(以下、「FROM1021」と略記する。)、及びRAM1022を含み、HDC1001、R/Wチャネル1003、VCM/SPM制御部1004、及びDE1005と接続される。FROM1021には、CPU1002の動作プログラムが保存されている。
R/Wチャネル1003は、ライトチャネル1031とリードチャネル1032とに大別され、HDC1001との間で記録するデータ及び再生されたデータの転送を実行する。また、R/Wチャネル1003は、DE1005と接続され、記録信号の送信、再生信号の受信を実行する。詳細は後述する。
VCM/SPM制御部1004は、DE1005中のボイスコイルモータ1052(以下、「VCM1052」と略記する。)とスピンドルモータ1053(以下、「SPM1053」と略記する。)を制御する。
DE1005は、R/Wチャネル1003と接続され、記録信号の受信、再生信号の送信を実行する。またDE1005は、VCM/SPM制御部1004と接続されている。DE1005は、ディスク媒体1050、ヘッド1051、VCM1052、SPM1053、及びプリアンプ1054等を有している。図9の記憶システム1100においては、ディスク媒体1050が1枚であり、且つヘッド1051がディスク媒体1050の一方の面側のみに配置されている場合を想定しているが、複数のディスク媒体1050が積層配置された構成であってもよい。また、ヘッド1051は、ディスク媒体1050の各面に対応して設けられるのが一般的である。R/Wチャネル1003により送信された記録信号は、DE1005内のプリアンプ1054を経由してヘッド1051に供給され、ヘッド1051によりディスク媒体1050に記録される。逆に、ヘッド1051によりディスク媒体1050から再生された信号は、プリアンプ1054を経由してR/Wチャネル1003に送信される。DE1005内のVCM1052は、ヘッド1051をディスク媒体1050上の目標位置に位置決めするために、ヘッド1051をディスク媒体1050の半径方向に移動させる。また、SPM1053は、ディスク媒体1050を回転させる。
ここで、図10を用いて、R/Wチャネル1003について説明する。図10は、図9のR/Wチャネル1003の構成を示す図である。R/Wチャネル1003は、大きく分けて、ライトチャネル1031とリードチャネル1032から構成される。
ライトチャネル1031は、バイトインターフェース部1301、スクランブラ1302、ランレングス制限/DCフリー/RS符号化部1303(以下、「RLL/DCフリー/RS符号化部1303」と略記する。)、低密度パリティチェック符号化部1304(以下、「LDPC符号化部1304」と略記する。)、書き込み補償部1305(以下、「ライトプリコン部1305」と略記する。)、ドライバ1306を含む。
バイトインターフェース部1301では、HDC1001から転送されたデータが入力データとして処理される。メディア上に書き込むデータは1セクタ単位でHDC1001から入力される。データバスは通常1バイト(8ビット)であり、バイトインターフェース部1301により入力データとして処理される。スクランブラ1302はライトデータをランダムな系列に変換する。同じ規則のデータの繰り返しは、リード時における検出性能に悪影響を与え、エラーレートを悪化させるのを防ぐためである。
RLL/DCフリー/RS符号化部1303は、ディスク媒体1050から再生されたデータに含まれる誤りの訂正及び検出を可能にするために、記録するデータを情報シンボルとして、冗長シンボルを付加する。RS符号は、再生されたデータに誤りが生じているかを判断し、誤りがある場合には訂正或いは検出を行う。但し、誤りが訂正できるシンボル数は有限であり、冗長データの長さに関係する。即ち、多くの冗長データを付加するとフォーマット効率が悪化するため、誤り訂正可能シンボル数とはトレードオフとなる。ECCとしてRS符号を利用して誤り訂正を実行する場合、(冗長シンボル数/2)個までの誤りを訂正できる。また、RLL/DCフリー/RS符号化部1303は、0の最大連続長を制限する。0の最大連続長を制限することにより、自動利得制御部1317(以下、「AGC1317」と略記する。)などに適したデータ系列にする。さらに、直流成分を低減し、誤り訂正能力の向上を図る。詳細は後述する。
LDPC符号化部1304は、データ系列をLDPC符号化して冗長ビットであるパリティビットを含む系列を生成する役割を有する。LDPC符号化は、生成行列と呼ばれるk×nの行列に、長さkのデータ系列を左から掛け合わせることで実行される。この生成行列に対応する検査行列Hに含まれる各要素は、0もしくは1であり、1の数が0の数に比べて少ないことから、低密度パリティ検査符号(Low Density Parity Check Codes)と呼ばれている。この1と0の配置を利用することによって、LDPC繰返復号部にて、効率的にエラーを訂正できる。
ライトプリコン部1305は、メディア上の磁化遷移の連続による非線形歪を補償する回路である。ライトデータから補償に必要な規則を検出し、正しい位置で磁化遷移が生ずるようにライト電流波形を予め調整をする。ドライバ1306は擬似ECLレベルに対応した信号を出力するドライバである。ドライバ1306からの出力は図示しないDE1005に送られ、プリアンプ1054を通してヘッド1051に送られ、ライトデータがディスク媒体1050上に記録される。
リードチャネル1032は、可変利得増幅器1311(以下、「VGA1311」と略記する。)、ローパスフィルタ1312(以下、「LPF1312」と略記する。)、AGC1317、アナログ/デジタル変換器1313(以下、「ADC1313」と略記する。)、周波数シンセサイザ1314、フィルタ1315、ソフト出力検出部1320、LDPC繰返復号部1322、同期信号検出部1321、ランレングス制限/DCフリー/RS復号部1323(以下、「RLL/DCフリー/RS復号部1323」と略記する。)、デスクランブラ1324とから構成されている。
VGA1311及びAGC1317は、図示しないプリアンプ1054から送られたデータのリード波形の振幅を調整する。AGC1317は理想的な振幅と実際の振幅を比較し、VGA1311に設定すべきゲインを決定する。LPF1312は、カットオフ周波数とブースト量を調整することができ、高周波ノイズの低減と部分応答(Partial Response。以下、「PR」と略記する。)波形への等化の一部を担う。LPF1312でPR波形への等化を行うが、ヘッドの浮上量変動、媒体の不均一性、モータの回転変動などの多くの要因により、アナログのLPFによる完全な等化は難しいので、後段に配置され、よりフレキシビリティに富んだフィルタ1315を用いて、再度PR波形への等化を行う。フィルタ1315は、そのタップ係数を適応的に調整する機能を有していてもよい。周波数シンセサイザ1314は、ADC1313のサンプリング用クロックを生成する。
ADC1313は、AD変換により直接同期サンプルを得る構成とした。なお、この構成の他に、AD変換により非同期サンプルを得る構成であってもよい。この場合は、ゼロ相リスタート部、タイミング制御部、及び補間フィルタをさらにADC1313の後段に設ければよい。非同期サンプルから同期サンプルを得る必要があり、これらのブロックがその役割を担う。ゼロ相リスタート部は初期位相を決定するためのブロックで、できるだけ早く同期サンプルを得るために用いられる。初期位相を決定した後は、タイミング制御部で理想的なサンプル値と実際のサンプル値を比較し、位相のずれを検出する。これを用いて補間フィルタのパラメータを決定することにより、同期サンプルを得ることができる。
ソフト出力検出部1320は、符号間干渉に伴う復号特性の劣化を回避するために、ビタビアルゴリズムの一種であるソフト出力ビタビアルゴリズム(Soft−Output Viterbi Algorithm。以下、「SOVA」と略記する。)が用いられる。すなわち、近年の磁気ディスク装置の記録密度の上昇に伴い、記録された符号間の干渉が大きくなり、復号特性が劣化するといった課題を解決するため、これを克服する方式として符号間干渉による部分応答を利用した最ゆう復号(Partial Response MaximumLikeihood。以下、「PRML」と略記する。)方式を用いる。PRMLは、再生信号の部分応答のゆう度を最大にする信号系列を求める方式である。
ソフト出力検出部1320としてSOVA方式が用いられている場合、軟判定値を出力する。例えば、SOVAの出力として、(−0.71、+0.18、+0.45、−0.45、−0.9)という軟判定値が出力されたとする。これらの値は、0である可能性が大きいか、1である可能性が大きいかを数値で表している。例えば、1番目の「−0.71」は1である可能性が大きいことを示しており、2番目の「+0.18」は0である可能性が大きいが1である可能性も小さくはないことを意味する。従来のビタビディテクタの出力はハード値であり、SOVAの出力を硬判定したものである。上記の例の場合、(1、0、0、1、1)である。ハード値は、0であるか、1であるかのみを表しており、どちらの可能性が高いかという情報が失われている。このためLDPC繰返復号部1322に軟判定値を入力する方が復号性能が向上する。
LDPC繰返復号部1322は、LDPC符号化されているデータ系列から、LDPC符号化前の系列に復元する役割を有する。復号化の方法としては、主に、sum−product復号法とmin−sum復号法があり、復号性能の面ではsum−product復号法が有利であるが、min−sum復号法はハードウェアによる実現が容易である特徴を持つ。LDPC符号を用いる実際の復号操作では、ソフト出力検出部1320とLDPC繰返復号部1322の間で繰り返し復号することにより、非常に良好な復号性能を得ることができる。このために実際はソフト出力検出部1320とLDPC繰返復号部1322を複数段配列した構成が必要になる。同期信号検出部1321は、データの先頭に付加された同期信号(Sync Mark)を検出し、データの先頭位置を認識する役割を有する。
RLL/DCフリー/RS復号部1323は、LDPC繰返復号部1322から出力されたデータに対して、ライトチャネル1031のRLL/DCフリー/RS符号化部1303の逆操作を行い、元のデータ系列に戻す。詳細は後述する。
デスクランブラ1324は、ライトチャネル1031のスクランブラ1302の逆操作を行い、元のデータ系列に戻す。ここで生成されたデータはHDC1001に転送される。
ここで、「DCフリー」について説明する。図11(a)〜(b)は、本発明の第2実施形態にかかるDCフリー特性の例を示す図である。図11(a)は、DCフリーである場合とそうでない場合における軟判定値の分布例を示す図である。横軸は個数、縦軸は軟判定値を示す。また、縦軸は、中心を±0として、プラス側、マイナス側の双方の軟判定値を含む軸である。実線で示す第1特性1200は、DCフリーの場合の分布を示す。また、破線で示す第2特性1300は、DCフリーでない場合の分布例を示す。DCフリーとは、前述したように、系列に含まれる0と1のビットの個数の比率が50%であることを示す。いいかえると、図11(a)の第1特性1200に図示するように、図10のLDPC繰返復号部1322における軟判定値の分布において、±1/2が中心値となり、±0付近の分布量が少ないことなどをいう。一方、DCフリーでない場合、たとえば、図11(a)の第2特性1300に図示するように、軟判定値の分布において、±0付近の分布量が増加したものとなる。
図11(b)は、DCフリーである場合とそうでない場合におけるビット誤り率特性の例を示す図である。横軸は信号対雑音比(Signal to Noise Ratio)、縦軸はビット誤り率(Bit Error Rate)を示す。実線で示す第3特性1210は、DCフリーの場合のビット誤り率特性を示す。また、破線で示す第4特性1310は、DCフリーでない場合のビット誤り率特性を示す。図示するように、DCフリーでない場合は、DCフリーである場合と比べて、ビット誤り率が悪化することとなる。
図12は、図10のRLL/DCフリー/RS符号化部1303の構成例を示す図である。RLL/DCフリー/RS符号化部1303は、RLL/DCフリー符号化部1040と、RS符号化部1042と、冗長系列付加部1044とを含む。RLL/DCフリー符号化部1040は、所定の信号系列をランレングス制限符号化およびDCフリー符号化することによって、DCフリー性を有するランレングス制限符号化系列(以下、「RLL系列」と略称する)を生成する。RS符号化部1042は、RLL/DCフリー符号化部1040によって生成されたRLL系列をRS符号化することによって、冗長系列を生成する。冗長系列付加部1044は、RS符号化部1042によって生成された冗長系列をRLL/DCフリー符号化部1040によって生成されたRLL符号化系列に分散して付加する。
図13は、図12のRLL/DCフリー符号化部1040の構成例を示す図である。RLL/DCフリー符号化部1403は、第1RLL符号化部1060と、第1信号処理部1062と、第2RLL符号化部1064と、直流成分除去符号化部1066とを含む。
第1RLL符号化部1060は、スクランブラ1302から出力されたデジタル信号系列をランレングス制限符号化することによって、第1符号化系列を生成する。第1信号処理部1062は、スクランブラ1302から出力されたデジタル信号系列に含まれる複数のビットの個数を変えずに、デジタル信号系列に対し、所定の信号処理を実行する。所定の信号処理は、デジタル信号系列に含まれる複数のビットの個数を変えなければ、任意の処理でよい。たとえば、デジタル信号系列に含まれる複数のビットのそれぞれに対し、ビット反転処理を実行する処理であってもよい。また、デジタル信号系列に含まれる複数のビットの順序を並び替えてもよい。また、ビット反転処理、ビットの順序を並び替えの双方の処理を行なってもよい。第2RLL符号化部1064は、第1信号処理部1062から出力された信号処理部によって所定の信号処理が実行されたデジタル信号系列をランレングス制限符号化することによって、第2符号化系列を生成する。直流成分除去符号化部1066は、第1RLL符号化部1060によって生成された第1符号化系列と、第2RLL符号化部1064によって生成された第2符号化系列とのうち、DCフリー性の高い、いずれか一方を選択して出力する。
具体例を用いて説明する。処理すべきデジタル信号系列が300ビットから構成されている場合、RLL/DCフリー符号化部1040は、30ビットを1組として、10回に分けて処理する。ここで、第1RLL符号化部1060、第2RLL符号化部1064の符号化率が30/31である場合、第1RLL符号化部1060、第2RLL符号化部1064からそれぞれ出力される1回あたりの系列のビット数は、31ビットとなる。
図14は、図13の直流成分除去符号化部1066の構成例を示す図である。直流成分除去符号化部1066は、符号化系列選択部1074と、選択識別情報生成部1076と、識別情報付加部1078とを含む。符号化系列選択部1074は、第1RLL符号化部1060によって生成された第1符号化系列と、第2RLL符号化部1064によって生成された第2符号化系列のうち、いずれか一方の符号化系列を選択する。選択識別情報生成部1076は、符号化系列選択部1074によって選択された符号化系列を示す選択識別情報を生成する。識別情報付加部1078は、符号化系列選択部1074によって選択された符号化系列のいずれかの個所に、選択識別情報生成部1076によって生成された選択識別情報を付加する。
具体的に説明する。符号化系列選択部1074によって第1符号化系列が選択された場合、識別情報付加部1078において第1符号化系列に付加される選択識別情報は「0」となる。一方、符号化系列選択部1074によって第2符号化系列が選択された場合、識別情報付加部1078において第1符号化系列に付加される選択識別情報は「1」となる。いいかえると、選択識別情報「0」が付加された第1符号化系列、もしくは、選択識別情報「1」が付加された第2符号化系列がLDPC符号化部1304に出力される。なお、識別情報付加部1078によって選択識別情報が付加される個所は、符号化系列中の任意の一定の個所でよく、たとえば、符号化系列の最後尾に付加してもよい。詳細は後述するが、ここで付加される選択識別情報は判定ビットであり、復号側において判定ビットが付加された位置、および、判定ビットの内容を解析することにより、適切な復号処理が実現されることとなる。前述の具体例においては、1回あたり31ビットの符号化系列に1ビットの選択識別情報が付加され合計32ビットの系列が出力されることとなる。すなわち、RLL/DCフリー符号化部1040における符号化率は、30/32となる。
また、符号化系列選択部1074は、図示しない第1連結部と第2連結部とを含んでも良い。第1連結部は、当該符号化系列選択部1074によってすでに選択された符号化系列と前記第1符号化系列とを連結させる。また、第2連結部は、当該符号化系列選択部1074によってすでに選択された符号化系列と前記第2符号化系列とを連結させる。この場合、符号化系列選択部1074は、第1連結部によって連結された系列を新たな第1符号化系列とし、第2連結部によって連結された系列を新たな第2符号化系列とし、いずれか一方の符号化系列を選択してもよい。すなわち、過去において選択された符号化系列と、現在選択の候補となっている符号化系列とを連結させたものを対象として、符号化系列選択部1074が選択判定を行なうことによって、長区間におけるDCフリー特性を向上できる。
図15(a)〜(c)は、図14の符号化系列選択部1074の第1〜第3の構成例を示す図である。図15(a)は、図14の符号化系列選択部1074の第1の構成例を示す図である。第1の構成における符号化系列選択部1074は、第1比率計算部1080と、第2比率計算部1082と、選択出力部1084とを含む。
第1比率計算部1080は、第1符号化系列に含まれる複数のビットのうち、0を示すビットと1を示すビットとの比率を計算する。第2比率計算部1082は、第2符号化系列に含まれる複数のビットのうち、0を示すビットと1を示すビットとの比率を計算する。選択出力部1084は、第1比率計算部1080で計算された比率と、第2比率計算部1082で計算された比率とのうち、50%に近いほうの比率に対応する符号化系列を選択して出力する。
具体例を用いて説明する。まず、時刻t=1において、第1RLL符号化部1060、第2RLL符号化部1064から、それぞれ31ビットの符号化系列が出力されたと仮定する。この場合、第1比率計算部1080、第2比率計算部1082は、それぞれの符号化系列に含まれるビットを解析して、比率を計算する。ここで、第1比率計算部1080に入力される符号化系列に含まれるビットのうち、0を示すビットが14ビット、1を示すビットが17ビットである場合、比率は、第1比率計算部1080によって以下のように計算される。
比率t=1 = (0を示すビット数+1)/(符号化系列のビット数+1) = (14+1)/(31+1) ≒ 46.9%
また、第2比率計算部1082に入力される符号化系列に含まれるビットのうち、0を示すビットが12ビット、1を示すビットが19ビットである場合、比率は、第2比率計算部1082によって、以下のように計算される。この場合、第1符号化系列のほうが比率が50%に近いため、t=1においては、選択出力部1084によって第1符号化系列が選択される。また、選択された第1符号化系列にかかる0を示すビット数「14」が記憶される。なお、上式、および、次式の右辺の分子において、それぞれ「1」、「0」を加算しているのは、それぞれの選択識別情報を「0」、「1」と仮定しているためである。また、上式、および、次式の右辺の分母において、「1」を加算しているのは、選択識別情報を含めた系列の0の個数の割合を計算するためである。
比率t=1 = (0を示すビット数+0)/(符号化系列のビット数+1) = 12/(31+1) = 37.5%
つぎに、t=2においてもt=1の場合と同様に、第1RLL符号化部1060、第2RLL符号化部1064から、それぞれ31ビットの符号化系列が出力されたとする。ここで、第1比率計算部1080に入力される符号化系列に含まれるビットのうち、0を示すビットが11ビット、1を示すビットが20ビットである場合、比率は、以下のように計算される。
比率t=2 = (0を示すビット数+1)/((符号化系列のビット数+1)×t) = (14+1+11+1)/((31+1)×2) ≒ 42.2%
上記は、t=1の場合と異なり、第1比率計算部1080は、t=1において選択された符号化系列とt=2における第1符号化系列とが第1連結部によって連結された系列について、比率を計算する。すなわち、t=1で選択された第1符号化系列のうち0を示すビットの個数「14+1」と、t=2における第1符号化系列のうちの0を示すビットの個数「11+1」とが前式の分子において加算されることとなる。また、前式における分母は、2組の符号化系列にかかるビット数となる。
また、第2比率計算部1082に入力される符号化系列に含まれるビットのうち、0を示すビットが17ビット、1を示すビットが14ビットである場合、第2比率計算部1082によって、以下のように比率が計算される。この場合、第2符号化系列のほうが比率が50%に近いため、t=2においては、選択出力部1084によって第2符号化系列が選択される。
比率t=2 = (0を示すビット数+0)/((符号化系列のビット数+1)×t) = (14+1+17+0)/((31+1)×2) = 50.0%
以下、同様にt=3以降においても比率が計算される。ここで、t=kにおける比率は、以下のように表される。ただし、kは1以上の整数とする。また、Nbit(m)とは、t=mにおいて選択された符号化系列に含まれるビットのうち、0を示すビットの個数を示す。ただし、Nbit(k)は、比率を計算する対象となる符号化系列に含まれるビットのうち、0を示すビットの個数を示す。なお、比率を計算する対象となる符号化系列には、選択識別情報も含まれるものとする。
図15(b)は、図14の符号化系列選択部1074の第2の構成例を示す図である。第2の構成における符号化系列選択部1074は、第1合算部1086と、第2合算部1088と、選択出力部1084とを含む。第1合算部1086は、第1符号化系列に含まれる複数のビットを合算して第1合算値を生成する。第2合算部1088は、第2符号化系列に含まれる複数のビットを合算して第2合算値を生成する。符号化系列検出部は、第1合算部1086によって生成された第1合算値と、第2合算部1088によって生成された第2合算値とを比較して、第1符号化系列と第2符号化系列のうち、小さいほうの合算値に対応する符号化系列を検出する。選択出力部1084は、第1符号化系列と、第2符号化系列とのうち、系列検出部によって検出された符号化系列を選択して出力する。
具体例を用いて説明する。まず、t=1において、第1RLL符号化部1060、第2RLL符号化部1064から、それぞれ31ビットの符号化系列が出力されたと仮定する。この場合、第1合算部1086、第2合算部1088は、それぞれの符号化系列に含まれるビットを合算する。合算においては、0を「+1」に置換えると共に、1を「−1」に置換えて合計してもよい。このように合算することによって、0と1を示すビットの個数が等しい場合、合算値は0となる。したがって、選択出力部1084においては、合算値が0に近い符号化系列を選べばよく、たとえば、合算値の絶対値が小さい符号化系列を選べばよい。なお、この手法は、連続デジタル加算(Running Digital Summation。以下、「RDS」と略称する。)とも呼ばれる。
ここで、t=1において、第1合算部1086に入力される符号化系列に含まれる31個のビットのうち、0を示すビットが14ビット、1を示すビットが17ビットである場合、比率は、以下のように計算される。なお、右辺の第1項において「1」を加算しているのは、選択識別情報を0と仮定しているためである。
RDSabs = |(14+1)×(+1)+17×(−1)| = 2
また、第2合算部1088に入力される符号化系列に含まれるビットのうち、0を示すビットが12ビット、1を示すビットが19ビットである場合、比率は、以下のように計算される。この場合、第1符号化系列のRDSのほうが小さいため、t=1においては、選択出力部1084によって第1符号化系列が選択される。また、ここでは、絶対値を計算する前の第1符号化系列についてのRDSが「RDS1=−2」として記憶される。なお、右辺の第2項において「1」を加算しているのは、選択識別情報を1と仮定しているためである。
RDSabs = |12×(+1)+(19+1)×(−1)| = 6
つぎに、t=2において、t=1の場合と同様に、第1RLL符号化部1060、第2RLL符号化部1064から、それぞれ31ビットの符号化系列が出力されたとする。ここで、第1合算部1086に入力される符号化系列に含まれるビットのうち、0を示すビットが11ビット、1を示すビットが20ビットである場合、RDSは、以下のように計算される。t=1の場合と異なり、t=2においては、t=1において選択された符号化系列にかかるビット数も考慮にいれて計算されることとなる。
RDSabs = |RDS1+(11+1)×(+1)+20×(−1)| = |−2+(−8)| = 10
また、第2合算部1088に入力される符号化系列に含まれるビットのうち、0を示すビットが17ビット、1を示すビットが14ビットである場合、比率は、以下のように計算される。この場合、第2符号化系列のRDSのほうが小さいため、t=2においては、選択出力部1084によって第1符号化系列が選択される。また、RDS2=0が記憶される。
RDSabs = |RDS1+17×(+1)+(14+1)×(−1)| = |−2+(+2)| = 0
以下、同様にt=3以降においてもRDS
absが計算される。ここで、t=kにおけるRDS
abs(k)は、以下のように表される。ただし、tは1以上の整数とする。また、Nbit0(m)とは、t=mにおいて選択された符号化系列および選択識別情報に含まれるビットのうち、0を示すビットの個数を示す。また、Nbit1(m)とは、t=mにおいて選択された符号化系列および選択識別情報に含まれるビットのうち、1を示すビットの個数を示す。ただし、Nbit0(k)、Nbit1(k)は、合算値を計算する対象となる符号化系列に含まれるビットのうち、それぞれ、0を示すビットの個数、1を示すビットの個数を示す。
上記における符号化系列選択部1074の動作は、ある時刻においては区間演算処理を行ないつつ、過去の連続する時刻間において移動演算処理を行なっている点が特徴となる。このように、区間処理と移動処理を組み合わせることによって、長区間、たとえば、300ビットの系列全体において、DCフリー性が向上されることとなる。
なお、第1合算部1086、第2合算部1088における合算処理は、符号化系列に含まれる0もしくは1を示すビットをそのまま合計してもよい。この場合、選択出力部1084においては、合算値が符号化系列の個数の半分の値に近いほうに対応する符号化系列が選択されることとなる。
図15(c)は、図14の符号化系列選択部1074の第3の構成例を示す図である。第3の構成における符号化系列選択部1074は、第1移動加算部1090と、第1最大値検出部1092と、第2移動加算部1094と、第2最大値検出部1096と、選択出力部1084とを含む。第1移動加算部1090は、第1符号化系列に含まれる複数のビットを移動加算を計算することによって、複数のビットと同数の第1移動加算値を生成する。第1最大値検出部1092は、第1移動加算部1090によって生成された複数の第1移動加算値のうち、最大値を検出する。第2移動加算部1094は、第2符号化系列に含まれる複数のビットを移動加算することによって、複数のビットと同数の第2移動加算値を生成する。第2最大値検出部1096は、第2移動加算部1094によって生成された複数の第2移動加算値のうち、最大値を検出する。符号化系列検出部は、第1最大値検出部1092によって検出された最大値と、第2最大値検出部1096によって検出された最大値とを比較して、第1符号化系列と第2符号化系列のうち、小さいほうの最大値に対応する符号化系列を検出する。選択出力部1084は、第1符号化系列と、第2符号化系列とのうち、系列検出部によって検出された符号化系列を選択して出力する。
符号化系列選択部1074の第3の構成例は、第2の構成例と同様に、第1移動加算部1090、第2移動加算部1094において、それぞれの符号化系列のRDSを計算することによって、選択出力部1084が符号化系列を選択する。第3の構成例においては、32ビットのRDSの計算途中における最大値が小さいほうの符号化系列を選択する点で、32ビットのRDS計算の最終計算値のみ考慮して0に近い符号化系列を選択する第2の構成例と異なる。言い換えると、第3の構成例は、所定の区間においても、複数の区間においても、移動演算によって選択処理を行なっている。このような態様をとることによって、区間途中においてもDCフリー性の良い系列を選択できる。
ここで、「RDSの計算途中における最大値」は、時刻tごとに、以下で導出される。ただし、Min{y(0)、y(1)}とは、小さいほうの値を選択し、選択したほうの系列の番号を出力する関数を示す。たとえば、y(0)>y(1)の場合、S(t)は、1となる。また、max{x}とは、xのうち、最大値を検出する関数を示す。また、kは、32×(t−1)+1〜32×tの範囲の値を示す。また、Bit(m、j)は、第j符号化系列のうち、m番目のビットが0である場合は+1を示し、また、1である場合は−1を示す。
S(t)=Min{MaxRDS(1)、MaxRDS(2)}
MaxRDS(1) = max{RDS(k、1)}
MaxRDS(2) = max{RDS(k、2)}
また、Bit(m、1)、Bit(m、2)は、tが増加するごとに、選択された系列に係るビットを下記のように書き換えた後に、計算されることとなる。
Bit(m、1)=Bit(m、2)=Bit(m、S(t−1)) :m=(t−1)×32+1〜t×32、t≠1
ここで、図15(c)に示す符号化系列選択部1074の第3の構成例の動作について、図15(b)に示す符号化系列選択部1074の第2の構成例の動作と比較する。図16は、図15(b)と図15(c)にそれぞれ示す符号化系列選択部1074の動作の相違を示す図である。横軸は時間、縦軸はRDSを示す。ここで、1400Aは、第1符号化系列におけるRDSの推移を示す。また、1400Bは、第2符号化系列におけるRDSの推移を示す。図15(b)に示す符号化系列選択部1074の第2の構成例においては、RDSの区間演算の最終値であるRDSAとRDSBとを比較して小さいほうの符号化系列を選択する。図16においては、RDSA<RDSBであるので、選択出力部1084は、第1符号化系列を選択することとなる。一方、図15(c)に示す符号化系列選択部1074の第3の構成例においては、それぞれのビットにおけるRDS、すなわち、32個のビットを順次移動演算処理した後の絶対値のうち、最大値を比較して、小さいほうの符号化系列を選択する。図16においては、第1符号化系列については、MaxAが最大値であり、また、第2符号化系列については、MaxBが最大値となる。ここでは、MaxA>MaxBであるので、選択出力部1084は、第2符号化系列を選択することとなる。いずれの構成例を符号化系列選択部1074に適用した場合においても、DCフリー性の高い符号化系列を選択することができる。
図12に戻る。冗長系列付加部1044は、図示しない分割部を含む。分割部は、RS符号化部1042によって生成された冗長系列を複数の組に分割する。分割部によって分割された組を、RLL/DCフリー符号化系列のいずれかの個所であって、組ごとにそれぞれ異なる個所に付加する。冗長系列付加部1044は、分割部によって分割された組ごとに、等間隔で、たとえば、L個おきに、RLL/DCフリー符号化系列に付加する。分割部は、RS符号化部1042によって生成された冗長系列に含まれる複数のビットのうち、いずれか2以上のビットを1組として、分割する。分割部は、RS符号化部1042によって生成された冗長系列に含まれる複数のビットのうち、2N(Nは正の整数)個のビットを1組として、分割する。
図12に図示したRLL/DCフリー/RS符号化部1303の動作について、具体的に説明する。図17は、図12のRLL/DCフリー/RS符号化部1303の動作例を示す図である。まず、RLL/DCフリー符号化部1040は、RLL/DCフリー符号化系列1400を生成する。つぎに、RS符号化部1042は、RLL/DCフリー符号化系列1400に対してRS符号化を実行して、冗長系列1500を生成する。つぎに、冗長系列付加部1044の分割部は、冗長系列1500をM個の部分冗長系列1510に分割する。部分冗長系列1510は、第1部分情報系列1510aと、第2部分情報系列1510bと、・・・、第M部分情報系列1510cとを代表する。それぞれの部分冗長系列1510は、2N個のビットを含む。冗長系列付加部1044は、RLL/DCフリー符号化系列1400に部分冗長系列1510ごとに、それぞれ異なる位置に分散して付加する。また、冗長系列付加部1044は、部分冗長系列1510を等間隔でRLL/DCフリー符号化系列1400に付加する。これにより、冗長系列1500に含まれるすべてのビットがRLL/DCフリー符号化系列1400に付加され、RLL/DCフリー/RS符号化系列1600が生成される。
ここで、RLL/DCフリー符号化系列1400、冗長系列1500、RLL/DCフリー/RS符号化系列1600の長さは、以下のように表される。ここで、Lは、部分冗長系列1510が付加される間隔を示す。また、N、s、α、βは、正の整数とする。
RLL/DCフリー符号化系列1400の長さ = sL+α
冗長系列1500の長さ = 2NM+β
RLL/DCフリー/RS符号化系列1600の長さ = RLL/DCフリー符号化系列1400の長さ+冗長系列1500の長さ
つぎに、RLL/DCフリー/RS符号化部1303の具体的な動作過程について説明する。図18は、図12のRLL/DCフリー/RS符号化部1303の動作例を示すフローチャートである。まず、RLL/DCフリー符号化部1040は、RLL/DCフリー符号化系列1400を生成する(S1010)。つぎに、RS符号化部1042は、RLL/DCフリー符号化系列1400に対してRS符号化を実行して、冗長系列1500を生成する(S1012)。つぎに、冗長系列付加部1044の分割部は、冗長系列1500をM個の部分冗長系列1510に分割し、部分冗長系列1510ごとに、それぞれ異なる位置に等間隔で付加する(S1014〜S1020)。
S14〜S20においては、まず、RLL/DCフリー符号化系列1400に関するカウンタiをL、冗長系列1500に関するカウンタjを1に設定する(S1014)。つぎに、RLL/DCフリー符号化系列1400の先頭からi番目のビットの後ろに、冗長系列1500のj番目から(j+2N)番目までのビットを付加する(S1016)。ただし、冗長系列1500に、(j+1)番目〜(j+2N)番目のいずれかのビットが存在しない場合、存在するビットをすべて付加した後、S1018のステップに進む。つぎに、カウンタiをL個進めるとともに、カウンタjを2N個進める(S1018)。ここで、jが2NM以下である場合(S1020のN)、付加すべきRLL/DCフリー符号化系列1400が残存していると判断して、S1016〜S1020の処理を繰り返す。一方、jが2NMより大きい値であった場合(S1020のY)、すなわち、すべての冗長系列1500が付加されたと判断して、処理を終了する。
具体例を用いて説明する。RLL/DCフリー符号化部1040は、RLL/DCフリー符号化系列1400を示すx(n)において偶数番目に存在する複数のビットを示すビット系列y0(m)において、0を示すビットの連続性を制限されるように符号化する。また、RLL/DCフリー符号化部1040は、x(n)において奇数番目に存在する複数のビットを示すビット系列y1(m)のそれぞれにおいて、0を示すビットの連続性を制限されるように符号化する。たとえば、x(n)、y0(m)、y1(m)は、以下のように示される。ここで、0の最大連続長を3と仮定した。
x(n) = {01110010100110010001}
y0(m)= x(2n) ={0101101000}
y1(m)= x(2n+1)={1100010101}
また、DCフリー符号化は、一般的に、RLL/DCフリー符号化系列1400の所定の区間において、0もしくは1を示すビットの比率が50%に近くなるように符号化することなどをいう。いいかえると、所定の区間より短い区間においては、DCフリーとはならなくともよい。上述のx(n)においては、0を示すビットの個数が11個なのに対し、1を示すビットの個数が9個となっているため、ほぼDCフリー性を満たしているといえる。
ここで、冗長系列付加部1044において、RLL/DCフリー符号化系列1400に冗長系列1500を付加するにあたり、直列的に付加した第1RLL/DCフリー/RS符号化系列1610を示すx’(n)と、分散して付加した第2RLL/DCフリー/RS符号化系列1620を示すx’’(n)のRLL性、DCフリー性について比較する。なお、付加される冗長系列1500は、4ビットとし、それぞれ、A、B、C、Dとした。また、y0’(m)、y1’(m)は、それぞれ第1RLL/DCフリー/RS符号化系列1610を示すx’(n)における偶数番目、奇数番目に存在する複数のビットを示すビット系列を示す。また、y0’’(m)、y1’’(m)は、それぞれ第2RLL/DCフリー/RS符号化系列1620を示すx’’(n)における偶数番目、奇数番目に存在するビットの系列を示す。
冗長系列1500 = {A、B、C、D}
x’(n) = {01110010100110010001ABCD}
y0’(m) = {0101101000AC}
y1’(m) = {1100010101BD}
x’’(n) = {01110AB0101001100CD10001}
y0’’(m) = {010B11010D00}
y1’’(m) = {11A00010C101}
上述したx’(n)、y0’(m)、y1’(m)の式によると、直列的に付加した場合のy0’(m)、y1’(m)においては、Aが0を示すビットであれば、0の最大連続長は4となる。また、AとCの双方が0を示すビットであれば、0の最大連続長は5となる。直列的に付加された冗長系列は、RLL符号化が施されていないため、このような結果となる。一方、上述したx’’(n)、y0’’(m)、y1’’(m)の式によると、分散して付加した場合のy0’’(m)、y1’’(m)においては、AもしくはDが0である場合を除き、0の最大連続長は3のままとなる。また、A、Dが0を示すビットであったとしても、0の最大連続長は、たかだか4にしかならない。いいかえると、偶数個のビットを1組として、RLL/DCフリー符号化系列に付加したとしても、RLL性は大きく劣化することがないといえる。さらにいいかえると、冗長系列をRLL/DCフリー符号化系列に分散して付加することによって、冗長系列をRLL符号化することと等価な効果が得られるといえる。
また、DCフリー性について検討すると、A、B、C、Dのすべてが0を示すビットである場合、x’’(n)には、0を示すビットが15個、1を示すビットが9個となり、ややDCフリー性が劣化する。また、A、B、C、Dのすべてが1を示すビットである場合、x’’(n)には、0を示すビットが11個、1を示すビットが13個となり、ややDCフリー性が劣化する。しかしながら、すべての冗長ビットが同一のビットを示すことは希である。また、冗長ビットの長さは、ランレングス符号化系列の長さに比べ1/10程度であり、このような場合、DCフリー性は局所的に崩れる場合があるものの、RLL/DCフリー/RS符号化系列1600全体としてはほとんど劣化しない。
したがって、2N個の冗長ビットを1組として、RLL系列に等間隔で付加することによって、冗長系列が付加された後のRLL系列、すなわち、RLL/DCフリー/RS符号化系列1600はRLL性、DCフリー特性を満足することができる。なお、必ずしも等間隔で付加する必要はないが、等間隔としたほうが処理が簡易になる効果がある。また、分散して付加しない場合と比べて、冗長系列部分のRLL性を極めて向上できる。
図19は、図10のRLL/DCフリー/RS復号部1323の構成例を示す図である。RLL/DCフリー/RS復号部1323は、冗長系列検出部1034と、冗長系列取得部1036と、RS復号部1038と、RLL/DCフリー復号部1046とを含む。冗長系列検出部1034は、LDPC繰返復号部1322によって入力された第1信号系列のうち、冗長系列の挿入個所を検出する。具体的には、冗長系列の挿入間隔、1組あたりのビット数を考慮して、挿入個所を検出する。
冗長系列取得部1036は、冗長系列検出部1034によって検出された挿入個所にしたがって、LDPC繰返復号部1322によって入力された第1信号系列から冗長系列を切り離して、第2信号系列を取得する。RS復号部1038は、冗長系列取得部1036によって切り離された冗長ビットを用いて、冗長系列取得部1036によって取得された第2信号系列の誤りを訂正する。RLL/DCフリー復号部1046は、RS復号部1038によって誤りが訂正された第2信号系列に対し、ランレングス制限復号を実行する。具体的には、図12に図示したRLL/DCフリー/RS符号化部1303の動作と逆の順序で処理が行なわれる。
図20は、図19のRLL/DCフリー復号部1046の構成例を示す図である。RLL/DCフリー復号部1046は、判定ビット取得部1068と、RLL復号部1070と、第2信号処理部1072とを含む。判定ビット取得部1068は、RS復号部1038によって誤りが訂正された第2信号系列に付加されている所定の判定ビットを取得する。RLL復号部1070は、RS復号部1038によって誤りが訂正された第2信号系列(判定ビットを除く)をランレングス制限復号することによってデジタル信号系列を生成する。第2信号処理部1072は、RLL復号部1070によって生成されたデジタル信号系列に対し、判定ビット取得部1068によって取得された判定ビットに応じて、第1信号処理部1062で実行された所定の信号処理と逆の信号処理を実行して出力する処理を実行する。たとえば、図13の第1信号処理部1062において、ビット反転処理、および/または、ビットの順序を入れ替える処理を行なっていた場合、ビットの反転処理および/またはその入れ替えられた系列を元に戻す入れ替える処理とを実行する。もしくは、判定ビット取得部1068によって取得された判定ビットに応じて、第2信号処理部1072は、デジタル信号系列に含まれる複数のビットをそのまま出力する処理を実行する。
上述したこれらの構成は、ハードウエア的には、任意のコンピュータのCPU、メモリ、その他のLSIで実現でき、ソフトウエア的にはメモリにロードされた通信機能のあるプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
本第2実施形態によれば、ランレングス制限符号化を行なった後にRS符号化を行なうことによって、復号側においては、RS復号を行なった後の信号系列に対してランレングス制限復号を行なうことになる。いいかえると、RS復号によって誤り訂正された系列に対してランレングス制限復号が実行される。そうすると、符号化側において選択された符号化系列を正確に判別でき、全体としての誤り訂正能力を向上できる。また、ランレングス制限符号化系列のいずれかの個所に、複数の組に分割された冗長系列をそれぞれ異なる個所に付加することによって、冗長系列が付加された後の系列のRLL性、および、DCフリー特性を向上できる。また、組ごとに等間隔で付加することによって、冗長系列が付加された後の系列のRLL性、および、DCフリー特性をより向上できる。ランレングス制限符号化系列に偶数個ずつ冗長系列を付加することによって、冗長系列が付加された後の系列のRLL性をより向上できる。偶数個のビットを1組として、RLL/DCフリー符号化系列に付加したとしても、RLL性は大きく劣化することがないといえる。さらにいいかえると、冗長系列をRLL/DCフリー符号化系列に分散して負荷することによって、冗長系列をRLL符号化することと等価な効果が得られる。冗長ビットの長さは、ランレングス制限符号化系列の長さに比べ1/10程度であるので、DCフリー性はほとんど劣化せず、また、分散して付加しない場合と比べて、冗長系列部分のRLL性を極めて向上できる。
また、同一のRLL符号化を実行することによって、回路規模の増大を伴うことなく、DCフリー性が良い系列を生成できる。RLL符号化する前に、任意の信号系列と、任意の信号系列に所定の信号処理を実行した後の2つの系列とを対象とすることによって、生成される系列は全く異なるため、統計的にDCフリー性の良い系列が生成できる。また、この所定の信号処理を信号系列のビット数を変えずに実行することによって、符号化利得の減少を回避できる。さらに、信号処理の処理内容を任意に変更することによって、さまざまな系列を生成できるので、選択の幅を広げられる。そのため、よりDCフリー特性の良い系列を生成することができる。したがって、ハードディスクのような符号化率を低く設定できないようなアプリケーションにおいて好適となる。また、同一のRLL符号化回路を用いることによって、回路構成を単純化でき、また、低規模にできる。
また、ビット反転処理、および/または、ビットの順序を並び替えることによって、ランレングス制限符号化の対象となる系列に含まれるビットの個数を増加せずに、異なる系列を生成できる。また、系列に含まれるビットの個数が増加しないため、全体の符号化率を低下させずに符号化系列が得られる。また、異なる系列を生成するために実行する所定の処理をビット反転処理、および/または、ビットの順序を並び替える処理とすることによって、単純な回路構成で所定の処理を実現できる。また、いずれの符号化系列が選択されたことを示す情報を符号化系列に付加することによって、復号側にて、容易に選択された符号化系列を判別できる。
また、過去において選択された符号化系列と、現在選択の候補となっている符号化系列とを連結させたものを対象として、符号化系列選択部1074が選択判定を行なうことによって、長区間におけるDCフリー特性を向上できる。符号化系列選択部1074において、区間処理と移動処理を組み合わせてRDSを計算することによって、長区間、たとえば、300ビットの系列全体において、DCフリー性が向上できる。また、0を示すビットと1を示すビットとの比率が50%に近いほうを選択することによって、DCフリー性の高い符号化系列が選択できる。また、符号化系列に含まれる複数のビットを合算し、より小さい合算値に対応する系列を選択することによって、DCフリー性の高い符号化系列が選択できる。また、符号化系列に含まれる複数のビットを移動加算した結果のうちの最大値を用いて系列を選択することによって、DCフリー性の高い符号化系列が選択できる。符号化側において実行されたDCフリー符号化に対応する処理を実行することによって、元のデジタル信号系列を復号できる。DCフリー性の高い符号化処理を実行することによって、より高速に記憶システムにアクセスすることができる。また、余分なハードウェアを搭載する必要がなくなるので、低規模な半導体集積回路を実現できる。
本第2実施形態において、R/Wチャネル1003は、1つの半導体基板上に一体集積化されてもよい。また、本第2実施形態の符号化系列選択部1074において、区間演算処理、もしくは、移動演算処理として説明した。しかしながらこれにかぎらず、区間平均処理、もしくは、移動平均処理を行なうことによって、DCフリー性の高い符号化系列の選別を行なってもよい。この場合であっても、同様の効果を得ることができる。また、RLL/DCフリー/RS符号化部1303の構成において、所定の信号処理を実行する第1信号処理部1062を用いて、異なる2つの信号系列を生成するとして説明した。しかしながらこれにかぎらず、複数の信号処理部を用いて複数の信号系列を生成してもよい。たとえば、ビット反転処理、ビットの順序を入れ替える処理、ビット反転処理及びビットの順序を入れ替える処理をそれぞれ実行する信号処理装置を備えていてもよい。この場合、4つのうちいずれの系列が選択されたことを示す判定ビットを2ビットとすることによって、復号側において適切な復号処理が実現できる。また、信号処理を行なわない系列も含め、4つの異なる系列を生成することができる。また、選択肢を増やせるので、DCフリー性の高い系列が生成される可能性を向上できる。
また、誤り訂正方式としてRS符号を用いた場合について説明したがこれにかぎらず、他の組織符号、たとえば、LDPC符号やターボ符号であってもよい。これらの場合であっても、上述と同様の効果を得られることは言うまでもない。
また、図12および図12に関連する説明において、RS符号化部1042と冗長系列付加部1044とを別のブロックとしたが、これにかぎらず、RS符号化部1042は、冗長系列付加部1044を含む構成であってもよい。また、図17、図18において、最初にL個の間隔を置いた後、RLL/DCフリー符号化系列1400に部分冗長系列1510を付加するとして説明した。しかしながらこれにかぎらず、任意の値、たとえばαや0に置換えて、これらの処理が実行されてもよい。また、S20において、jが2NMより大きいか否かによって終了判定を行なうとして説明した。しかしながらこれにかぎらず、iがsLより大きいか否かを条件として終了判定を行なってもよい。これらの場合であっても、上述と同様の効果を得られることは言うまでもない。
(第3実施形態)
本発明の第3実施形態は、誤り訂正符号化/復号技術に関し、特に、記憶媒体に記憶されるデータに対して誤り訂正符号化/復号する符号化装置、復号装置、信号処理装置、および記憶システムに関する。
第3実施形態に関する背景技術について説明する。
近年、ハードディスクを用いた記憶装置は、パーソナルコンピュータ、ハードディスクレコーダー、ビデオカメラ、携帯電話など、さまざまな分野において必須の装置となりつつある。ハードディスクを用いた記憶装置は、適用される分野によって求められる仕様もさまざまである。たとえば、パーソナルコンピュータに搭載するハードディスクには、高速性、大容量性が求められる。高速性、大容量性を向上するためには、訂正能力の高い誤り訂正符号化をする必要がある。しかしながら、高速化が進むほど単位時間あたりに扱うデータの量が増えるため、単位時間あたりの誤りも比例して増大する。そうすると、誤り訂正能力が低い誤り訂正方式を用いる場合、ハードディスクに対する再読込みが発生するため、ハードディスクへのアクセスに要する時間が増大し、高速化のボトルネックとなる。
一般的に、誤り訂正符号化の対象となる信号系列として、直流成分が低減もしくは除去された(以下、「DCフリー」、もしくは、「DCフリー性」と表記する)信号系列が望まれている。DCフリーとは、周波数が0、すなわち直流成分におけるスペクトルが0であることを意味する。いいかえると、変調前の信号系列に含まれる複数のビットにおいて、0と1の比率が等しいことなどを意味する。DCフリー性を信号系列に備えるさせることによって、記憶媒体に記憶された変調データの記録パターンから得られる再生信号の平均レベルが、変調前の信号系列のパターンによらずに、所定の信号系列長の範囲内で常に一定となる性質をもち、ノイズ耐性が向上する。すなわち、DCフリー性の低い信号系列においては、ビタビアルゴリズムを用いたデータ検出において、検出確率が低下することとなる。これにより、低密度パリティチェック復号やリードソロモン復号における訂正能力も低減されることとなる。また、一般的に、サンプリングタイミングとデータとの同期を確保するために、ランレングス制限符号が用いられている。ランレングス制限符号とは、0の最大連続長や1の最大連続長を制限する符号化である。
従来、信号系列のDCフリー性を満たしつつ、ランレングス制限符号化する方法として、それぞれ異なる冗長ビットが付加された信号系列に対し、ランレングス制限符号化を実行し、符号化された複数の系列のうち、DCフリーに近い特性を有する系列を選択する方法が提案されていた(たとえば、特開2002−100125号公報参照。)。また、複数の異なる性質を有するランレングス制限符号化を実行し、符号化された複数の系列のうち、DCフリーに近い特性を有する系列を選択する方法が提案されていた(たとえば、特開2004−213863号公報参照。)。
第3実施形態が解決しようとする課題を説明する。
本発明者はこうした状況下、以下の課題を認識するに至った。複数の符号化系列の中からDCフリー特性の良い系列を選択することによってDCフリー符号化を実現する場合、選択の対象となる複数の符号化系列においてDCフリー特性の良い符号化系列が存在しない場合がある。すなわち、選択の対象となる符号化系列のうち、少なくとも1つ以上のDCフリー特性の良い系列を生成できる構成が必要となり、回路規模、記憶容量に影響を及ぼすといった課題である。
本発明の第3実施形態はこうした状況に鑑みてなされたものであり、その総括的な目的は、より少ない回路規模で、ランレングス制限を満たしつつ、DCフリー特性を向上できる符号化装置、復号装置、信号処理装置、および記憶システムを提供することにある。
上記課題を解決するために、本発明の第3実施形態のある態様の符号化装置は、デジタル信号系列をランレングス制限符号化することによって、第1符号化系列を生成するランレングス制限符号化部と、第1符号化系列に含まれる複数のビットの個数を変えずに、第1符号化系列に対し、所定の信号処理を実行して第2符号化系列を生成する信号処理部と、ランレングス制限符号化部によって生成された第1符号化系列と、信号処理部によって生成された第2符号化系列とのうち、いずれか一方を選択して出力する直流成分除去符号化部と、を備える。ここで、「直流成分除去符号化部」とは、入力された系列の直流成分を除去するもしくは低減する回路などを含み、また、DCフリー性の高い系列を出力する回路などを含む。
この態様によると、ランレングス制限符号化によって生成された系列と、その系列を信号処理した系列とを生成することによって、全く異なる2つの系列を生成することができる。また、系列に含まれるビットの個数を増加しないように所定の信号処理を実行することによって、全体の符号化率を低下させずに符号化系列が得られる。2つの符号化系列は相反転しているため、DCフリー性の高い符号化系列を選択するにあたり、より好ましい選択肢となる。より好ましい選択肢の中からDCフリー性の高い符号化系列を選択することによって、よりDCフリー性の高い符号化系列を選択できる可能性が向上できる。また、単一のランレングス制限符号化回路を用いることによって、回路構成を単純化でき、また、低規模にできる。
ランレングス制限符号化部は、第1符号化系列に含まれる複数のビットのうちの0を示すビットが連続して存在する少なくとも1つ以上の0連続区間であって、最大の長さを有する0連続区間の長さが0以上第1許容連続長以下になるように、かつ、第1符号化系列に含まれる複数のビットのうちの1を示すビットが連続して存在する少なくとも1つ以上の1連続区間であって、最大の長さを有する1連続区間の長さが0以上第2許容連続長以下になるように、第1符号化系列を生成してもよい。この態様によると、第1符号化系列に含まれる0の連続長と1の連続長の双方をランレングス制限符号化部によって制限することによって、第2符号化系列においてもその制限が維持される。
ランレングス制限符号化部は、第1許容連続長と第2許容連続長を同一の長さとして、第1符号化系列を生成してもよい。この態様によると、ランレングス制限符号化部の後段において、1の連続長と0の連続長とが制限された符号化系列に対してビット反転処理を実行したとしても、連続長に関する制限を維持できる。信号処理部は、デジタル信号系列に含まれる複数のビットのそれぞれに対し、ビット反転処理を実行してもよい。この態様によると、ビット反転処理することによって、系列に含まれるビットの個数を増加せずに、異なる系列を生成できる。また、系列に含まれるビットの個数が増加しないため、全体の符号化率を低下させずに符号化系列が得られる。また、異なる系列を生成するために実行する所定の処理をビット反転処理とすることによって、単純な回路構成で所定の処理を実現できる。
直流成分除去符号化部は、第1符号化系列と第2符号化系列のうち、いずれか一方の符号化系列を選択する符号化系列選択部と、符号化系列選択部によって選択された符号化系列を示す選択識別情報を生成する選択識別情報生成部と、符号化系列選択部によって選択された符号化系列のいずれかの個所に、選択識別情報生成部によって生成された選択識別情報を付加する識別情報付加部と、を有してもよい。符号化系列選択部は、当該符号化系列選択部によってすでに選択された符号化系列と第1符号化系列とを連結させる第1連結部と、当該符号化系列選択部によってすでに選択された符号化系列と第2符号化系列とを連結させる第2連結部と、を有してもよい。符号化系列選択部は、第1連結部によって連結された系列を新たな第1符号化系列とし、第2連結部によって連結された系列を新たな第2符号化系列とし、いずれか一方の新たな符号化系列を選択してもよい。ランレングス制限符号化部から出力された第1符号化系列のいずれかの個所に第1判定ビットを付加する第1付加部と、信号処理部から出力された第2符号化系列のいずれかの個所に第1判定ビットがビット反転された第2判定ビットを付加する第2付加部と、をさらに備えてもよい。
ここで、「付加」とは、加算、乗算、挿入などを含む。また、「すでに選択された符号化系列と前記第1符号化系列とを連結させる」とは、過去において選択された符号化系列と、現在選択の候補となっている系列とを連結させることなどを含む。この態様によると、いずれの符号化系列が選択されたことを示す情報を符号化系列に付加することによって、復号側にて、容易に選択された符号化系列を判別できる。
符号化系列選択部は、第1符号化系列に含まれる複数のビットのうち、0を示すビットと1を示すビットとの比率を計算する第1比率計算部と、第2符号化系列に含まれる複数のビットのうち、0を示すビットと1を示すビットとの比率を計算する第2比率計算部と、第1比率計算部で計算された比率と、第2比率計算部で計算された比率とのうち、50%に近いほうの比率に対応する符号化系列を選択して出力する選択出力部と、を有してもよい。この態様によると、0を示すビットと1を示すビットとの比率が50%に近いほうを選択することによって、DCフリー性の高い符号化系列が選択できる。
符号化系列選択部は、第1符号化系列に含まれる複数のビットを合算して第1合算値を生成する第1合算部と、第2符号化系列に含まれる複数のビットを合算して第2合算値を生成する第2合算部と、第1合算部によって生成された第1合算値の絶対値と、第2合算部によって生成された第2合算値の絶対値とを比較して、第1符号化系列と第2符号化系列のうち、小さいほうの合算値対応する符号化系列を検出する符号化系列検出部と、第1符号化系列と、第2符号化系列とのうち、系列検出部によって検出された符号化系列を選択して出力する選択出力部と、を有してもよい。ここで、「合算値」とは、系列に含まれるビットを加算することなどを含む。また、「系列に含まれる複数のビット」とは、0もしくは1を示すビットなどを含み、また、0を示すビットを+1と置換え、1を示すビットを−1と置換えた場合におけるビットなども含む。この態様によると、符号化系列に含まれる複数のビットを合算し、より小さい合算値に対応する系列を選択することによって、DCフリー性の高い符号化系列が選択できる。
符号化系列選択部は、第1符号化系列に含まれる複数のビットを移動加算することによって、複数のビットと同数の第1移動加算値を生成する第1移動加算部と、第1移動加算部によって生成された複数の第1移動加算値のうち、最大値を検出する第1最大値検出部と、第2符号化系列に含まれる複数のビットを移動加算することによって、複数のビットと同数の第2移動加算値を生成する第2移動加算部と、第2移動加算部によって生成された複数の第2移動加算値のうち、最大値を検出する第2最大値検出部と、第1最大値検出部によって検出された最大値と、第2最大値検出部によって検出された最大値とを比較して、第1符号化系列と第2符号化系列のうち、小さいほうの最大値に対応する符号化系列を検出する符号化系列検出部と、第1符号化系列と、第2符号化系列とのうち、系列検出部によって検出された符号化系列を選択して出力する選択出力部と、を有してもよい。ここで、「移動加算する」とは、移動加算し、さらに、絶対値を計算することなどを含む。この態様によると、符号化系列に含まれる複数のビットを移動加算した結果のうちの最大値を用いて系列を選択することによって、DCフリー性の高い符号化系列が選択できる。
本発明の第3実施形態の別の態様は、復号装置である。この装置は、所定の判定ビットが付加された符号化系列を入力する入力部と、入力部によって入力された符号化系列に付加されている所定の判定ビットを取得する判定ビット取得部と、入力部によって入力された符号化系列に対し、判定ビット取得部によって取得された判定ビットに応じて、符号化系列に含まれる複数のビットのそれぞれをビット反転して、復号対象となる信号系列を出力する処理、もしくは、符号化系列を復号対象となる信号系列として、そのまま出力する処理のいずれかの処理を実行する信号処理部と、信号処理部によって出力された復号対象となる信号系列をランレングス制限復号することによってデジタル信号系列を生成するランレングス制限復号部と、を備える。この態様によると、符号化側において実行されたDCフリー符号化に対応する処理を実行することによって、元のデジタル信号系列を復号できる。
本発明の第3実施形態のさらに別の態様は、信号処理装置である。この装置は、符号化部と復号部とを備える信号処理装置であって、符号化部は、デジタル信号系列をランレングス制限符号化することによって、第1符号化系列を生成するランレングス制限符号化部と、第1符号化系列に含まれる複数のビットのそれぞれに対し、ビット反転処理を実行して第2符号化系列を生成する信号処理部と、ランレングス制限符号化部から出力された第1符号化系列のいずれかの個所に第1判定ビットを付加する第1付加部と、信号処理部から出力された第2符号化系列のいずれかの個所に第1判定ビットがビット反転された第2判定ビットを付加する第2付加部と、第1付加部によって第1判定ビットが付加された第1符号化系列と、第2付加部によって第2判定ビットが付加された第2符号化系列とのうち、いずれか一方を選択して出力する直流成分除去符号化部と、を有し、復号部は、第1判定ビットもしくは第2判定ビットのいずれかが付加された符号化系列を入力する入力部と、入力部によって入力された符号化系列に付加されている判定ビットを取得する判定ビット取得部と、入力部によって入力された符号化系列に対し、判定ビット取得部によって取得された判定ビットに応じて、デジタル信号系列に含まれる複数のビットのそれぞれをビット反転して、復号対象となる信号系列を出力する処理、もしくは、符号化系列を復号対象となる信号系列として、そのまま出力する処理のいずれかの処理を実行する信号処理部と、信号処理部によって出力された復号対象となる信号系列をランレングス制限復号することによってデジタル信号系列を生成するランレングス制限復号部と、を有してもよい。
この態様によると、系列に含まれるビットの個数を増加しないように反転処理を実行することによって、全体の符号化率を低下させずに符号化系列が得られる。2つの符号化系列は論理反転された関係にあるため、DCフリー性の高い符号化系列を選択するにあたり、より好ましい選択肢となる。より好ましい選択肢の中からDCフリー性の高い符号化系列を選択することによって、よりDCフリー性の高い符号化系列を選択できる可能性が向上できる。また、復号側において、符号化側で実行されたDCフリー符号化に対応する処理を実行することによって、元のデジタル信号系列を復号できる。
本発明の第3実施形態のさらに別の態様は、記憶システムである。この記憶システムは、データを記憶装置に書き込むライトチャネルと、記憶装置に記憶されているデータを読み出すリードチャネルとを備える信号記憶システムであって、ライトチャネルは、データをランレングス符号化する第1の符号化部と、第1の符号化部で符号化されたデータに対し、低密度パリティ検査符号を用いて符号化する第2の符号化部と、第2の符号化部で符号化されたデータを記憶装置に書き込む書き込み部と、を備え、リードチャネルは、記憶装置から出力されたアナログ信号を入力する入力部と、入力部から入力されたアナログ信号をデジタル信号に変換して出力するアナログデジタル変換部と、アナログデジタル変換部から出力されたデジタル信号の尤度を計算して軟判定値を出力するソフト出力検出部と、ソフト出力検出部から出力されたデータを復号する、第2の符号化部に対応した、第1の復号部と、第1の復号部で復号されたデータを復号する、第1の符号化部に対応した、第2の復号部と、を備える。第1の符号化部は、デジタル信号系列をランレングス制限符号化することによって、第1符号化系列を生成するランレングス制限符号化部と、第1符号化系列に含まれる複数のビットのそれぞれに対し、ビット反転処理を実行して第2符号化系列を生成する信号処理部と、ランレングス制限符号化部から出力された第1符号化系列のいずれかの個所に第1判定ビットを付加する第1付加部と、信号処理部から出力された第2符号化系列のいずれかの個所に第1判定ビットがビット反転された第2判定ビットを付加する第2付加部と、第1付加部によって第1判定ビットが付加された第1符号化系列と、第2付加部によって第2判定ビットが付加された第2符号化系列とのうち、いずれか一方を選択して出力する直流成分除去符号化部と、を有する。第2の復号部は、第1判定ビットもしくは第2判定ビットのいずれかが付加された符号化系列を入力する入力部と、入力部によって入力された符号化系列に付加されている判定ビットを取得する判定ビット取得部と、入力部によって入力された符号化系列に対し、判定ビット取得部によって取得された判定ビットに応じて、デジタル信号系列に含まれる複数のビットのそれぞれをビット反転して、復号対象となる信号系列を出力する処理、もしくは、符号化系列を復号対象となる信号系列として、そのまま出力する処理のいずれかの処理を実行する信号処理部と、信号処理部によって出力された復号対象となる信号系列をランレングス制限復号することによってデジタル信号系列を生成するランレングス制限復号部と、を有する。この態様によると、DCフリー性の高い符号化処理を実行することによって、より高速に記憶システムにアクセスすることができる。
本発明の第3実施形態のさらに別の態様もまた、記憶システムである。この記憶システムは、さらに、データを記憶する記憶装置と、記憶装置への書き込みと、記憶装置からの読み出しとを制御する制御部と、を有する。リードチャネルは、制御部の指示に従って、記憶装置に記憶されているデータを読み出し、ライトチャネルは、制御部の指示に従って、符号化されたデータを記憶装置に書き込む。この態様によると、DCフリー性の高い符号化処理を実行することによって、より高速に記憶システムにアクセスすることができる。
本発明の第3実施形態のさらに別の態様は、符号化装置である。この装置は、符号化装置おいて、当該装置は、1つの半導体基板上に一体集積化されてもよい。この態様によると、DCフリー性の高い符号化処理が効率良く実行でき、余分なハードウェアを搭載する必要がなくなるので、低規模な半導体集積回路を実現できる。
本発明の第3実施形態のさらに別の態様は、ランレングス制限符号化方法である。この方法は、デジタル信号系列をランレングス制限符号化することによって、符号化系列を生成するランレングス制限符号化方法であって、符号化系列に含まれる複数のビットのうちの0を示すビットが連続して存在する少なくとも1つ以上の0連続区間であって、最大の長さを有する0連続区間の長さが0以上第1許容連続長以下となるように、かつ、符号化系列に含まれる複数のビットのうちの1を示すビットが連続して存在する少なくとも1つ以上の1連続区間であって、最大の長さを有する1連続区間の長さが第2許容連続長より短くなるように、第1符号化系列を生成する。また、ランレングス制限符号化方法は、第1許容連続長と第2許容連続長を同一の長さとして、符号化系列を生成してもよい。この態様によると、符号化系列に含まれる0の連続長と1の連続長の双方をランレングス制限符号化部によって制限することによって、連続長に関し、より良好な制限を有する符号化系列が生成できる。
なお、以上の構成要素の任意の組合せや本発明の構成要素や表現を方法、装置、システムなどの間で相互に置換したものもまた、本発明の態様として有効である。
本発明の第3実施形態を具体的に説明する前に、まず本第3実施形態にかかる記憶システムについて概要を述べる。本第3実施形態にかかる記憶システムは、ハードディスクコントローラと、磁気ディスク装置と、リードチャネルとライトチャネルを含むリードライトチャネルと、を有する。ライトチャネルにおいては、符号化として、ランレングス制限符号化と、DCフリー符号化と、LDPC符号化とを実行する。また、リードチャネルにおいては、ビタビアルゴリズムなどを用いたデータ検出と、LDPC復号を行なう。このデータ検出は、DC成分が存在することによって検出精度が劣化することが知られている。さらに、検出精度が劣化することによりLDPC復号の訂正能力が低減する。したがって、本発明の第3実施形態においては、LDPC符号化を行なう前の段階において、DC成分を低減させるDCフリー符号化を行なう構成とした。なお、本第3実施形態にかかる記憶システムは、LDPC符号化に限定されず、他の誤り訂正符号化方式、たとえば、ターボ符号化や畳込み符号化が実行される構成であってもよい。
DCフリー符号化は、異なる2つの系列のうち、よりDCフリー性の高い系列を選択することによって実現される。異なる2つの系列を生成するために、異なる2つの性質を有するRLL符号化を実行すると、2つ目のRLL符号化の回路が必要となる分、回路規模が増大する。また、回路規模の問題としないアプリケーションの場合であっても、異なる2つの性質を有するRLL符号化を実行した結果、双方の系列ともにDCフリー性が良いとは限らない。したがって、本第3実施形態においては、同一のRLL符号化を実行することとした。
ここで、同一のRLL符号化を実行する場合、選択の対象となる系列が同一になるのを回避する必要がある。また、DCフリー特性の良い制限符号化系列が存在しない場合を避ける必要もある。そこで、本第3実施形態においては、RLL符号化によって得た系列と、その系列を反転した2つの系列とを選択の対象とすることとした。また、RLL符号化においては、0だけでなく、1の連続長も制限することとした。これにより、RLL符号化によって得た系列だけでなく、反転された系列においても、そのRLL特性を保証できる。また、生成される2つの系列は実質的に同一のDCフリー性を有することとなるが、数区間にわたり平均化することによって、統計的にDCフリー性の良い系列が生成できる。したがって、本第3実施形態における符号化装置は、RLL特性とDCフリー性の双方を向上できる。また、本第3実施形態における符号化装置は、単一のRLL符号化部と、反転部などの簡易な構成で実現されるため、回路規模を低減できる。さらに、本第3実施形態における符号化装置は、符号化率を低く設定することなしに高いDCフリー性を有する符号化系列が生成できるため、ハードディスクのような符号化率を低く設定できないようなアプリケーションにおいて好適となる。詳細は後述する。
以下、図面を用いて、本発明の第3実施形態について詳細に説明する。
図21は、本発明の第3実施形態に係る記憶システム2100の構成を示す図である。図21の記憶システム2100は、大きく分けて、ハードディスクコントローラ2001(以下、「HDC2001」と略記する。)、中央処理演算装置2002(以下、「CPU2002」と略記する。)、リードライトチャネル2003(以下、「R/Wチャネル2003」と略記する。)、ボイスコイルモータ/スピンドルモータ制御部2004(以下、「VCM/SPM制御部2004」と略記する。)、及びディスクエンクロージャ2005(以下、「DE2005」と略記する。)とから構成される。一般に、HDC2001、CPU2002、R/Wチャネル2003、及びVCM/SPM制御部2004は同一の基板上に構成される。
HDC2001は、HDC2001全体を制御する主制御部2011、データフォーマット制御部2012、誤り訂正符号化制御部2013(以下、「ECC制御部2013」と略記する。)、及びバッファRAM2014を含む。HDC2001は、図示しないインタフェース部を介してホストシステムと接続される。また、R/Wチャネル2003を介して、DE2005と接続されており、主制御部2011の制御により、ホストとDE2005の間のデータ転送を実行する。このHDC2001には、R/Wチャネル2003で生成されるリードリファレンスクロック(RRCK)が入力される。データフォーマット制御部2012は、ホストから転送されたデータをディスク媒体2050上に記録するのに適したフォーマットに変換し、逆に、ディスク媒体2050から再生されたデータをホストに転送するのに適したフォーマットに変換する。ディスク媒体2050は、たとえば、磁気ディスクを含む。ECC制御部2013は、ディスク媒体2050から再生されたデータに含まれる誤りの訂正及び検出を可能にするために、記録するデータを情報シンボルとして、冗長シンボルを付加する。またECC制御部2013は、再生されたデータに誤りが生じているかを判断し、誤りがある場合には訂正或いは検出を行う。但し、誤りが訂正できるシンボル数は有限であり、冗長データの長さに関係する。即ち、多くの冗長データを付加するとフォーマット効率が悪化するため、誤り訂正可能シンボル数とはトレードオフとなる。ECCとしてリードソロモン(RS)符号を利用して誤り訂正を実行する場合、(冗長シンボル数/2)個までの誤りを訂正できる。バッファRAM2014は、ホストから転送されたデータを一時的に保存し、適切なタイミングでR/Wチャネル2003に転送する。逆に、R/Wチャネル2003から転送されたリードデータを一時的に保存し、ECC復号処理などの終了後、適切なタイミングでホストに転送する。
CPU2002は、フラッシュROM2021(以下、「FROM2021」と略記する。)、及びRAM2022を含み、HDC2001、R/Wチャネル2003、VCM/SPM制御部2004、及びDE2005と接続される。FROM2021には、CPU2002の動作プログラムが保存されている。
R/Wチャネル2003は、ライトチャネル2031とリードチャネル2032とに大別され、HDC2001との間で記録するデータ及び再生されたデータを転送する。また、R/Wチャネル2003は、DE2005と接続され、記録信号の送信処理、再生信号の受信処理を実行する。詳細は後述する。
VCM/SPM制御部2004は、DE2005中のボイスコイルモータ2052(以下、「VCM2052」と略記する。)とスピンドルモータ2053(以下、「SPM2053」と略記する。)を制御する。
DE2005は、R/Wチャネル2003と接続され、記録信号の受信、再生信号の送信を実行する。またDE2005は、VCM/SPM制御部2004と接続されている。DE2005は、ディスク媒体2050、ヘッド2051、VCM2052、SPM2053、及びプリアンプ2054等を有している。図21の記憶システム2100においては、ディスク媒体2050が1枚であり、且つヘッド2051がディスク媒体2050の一方の面側のみに配置されている場合を想定しているが、複数のディスク媒体2050が積層配置された構成であってもよい。また、ヘッド2051は、ディスク媒体2050の各面に対応して設けられるのが一般的である。R/Wチャネル2003により送信された記録信号は、DE2005内のプリアンプ2054を経由してヘッド2051に供給され、ヘッド2051によりディスク媒体2050に記録される。逆に、ヘッド2051によりディスク媒体2050から再生された信号は、プリアンプ2054を経由してR/Wチャネル2003に送信される。DE2005内のVCM2052は、ヘッド2051をディスク媒体2050上の目標位置に位置決めするために、ヘッド2051をディスク媒体2050の半径方向に移動させる。また、SPM2053は、ディスク媒体2050を回転させる。
ここで、図22を用いて、R/Wチャネル2003について説明する。図22は、図21のR/Wチャネル2003の構成を示す図である。R/Wチャネル2003は、大きく分けて、ライトチャネル2031とリードチャネル2032から構成される。
ライトチャネル2031は、バイトインターフェース部2301、スクランブラ2302、ランレングス制限およびDCフリー符号化部2303(以下、「RLL/DCフリー符号化部2303」と略記する。)、低密度パリティチェック符号化部2304(以下、「LDPC符号化部2304」と略記する。)、書き込み補償部2305(以下、「ライトプリコン部2305」と略記する。)、ドライバ2306を含む。
バイトインターフェース部2301では、HDC2001から転送されたデータが入力データとして処理される。メディア上に書き込むデータは1セクタ単位でHDC2001から入力される。このとき1セクタ分のユーザデータ(512バイト)だけでなく、HDC2001によって付加されたECCバイトも同時に入力される。データバスは通常1バイト(8ビット)であり、バイトインターフェース部2301により入力データとして処理される。スクランブラ2302はライトデータをランダムな系列に変換する。同じ規則のデータの繰り返しは、リード時における検出性能に悪影響を与え、エラーレートを悪化させるのを防ぐためである。
RLL/DCフリー符号化部2303は0および1の最大連続長を制限するためのものである。0の最大連続長と、1の最大連続長とを制限することにより、自動利得制御部2317(以下、「AGC2317」と略記する。)などに適したデータ系列にする。さらに、直流成分を低減し、データ検出能力の向上を図り、もって誤り訂正能力の向上を図る。詳細は後述する。
LDPC符号化部2304は、データ系列をLDPC符号化して冗長ビットであるパリティビットを含む系列を生成する役割を有する。LDPC符号化は、生成行列と呼ばれるk×nの行列に、長さkのデータ系列を左から掛け合わせることで実行される。この生成行列に対応する検査行列Hに含まれる各要素は、0もしくは1であり、1の数が0の数に比べて少ないことから、低密度パリティ検査符号(Low Density Parity Check Codes)と呼ばれている。この1と0の配置を利用することによって、LDPC繰返復号部にて、効率的にエラーを訂正できる。
ライトプリコン部2305は、メディア上の磁化遷移の連続による非線形歪を補償する回路である。ライトデータから補償に必要な規則を検出し、正しい位置で磁化遷移が生ずるようにライト電流波形を予め調整をする。ドライバ2306は擬似ECLレベルに対応した信号を出力するドライバである。ドライバ2306からの出力は図示しないDE2005に送られ、プリアンプ2054を通してヘッド2051に送られ、ライトデータがディスク媒体2050上に記録される。
リードチャネル2032は、可変利得増幅器2311(以下、「VGA2311」と略記する。)、ローパスフィルタ2312(以下、「LPF2312」と略記する。)、AGC2317、アナログ/デジタル変換器2313(以下、「ADC2313」と略記する。)、周波数シンセサイザ2314、フィルタ2315、ソフト出力検出部2320、LDPC繰返復号部2322、同期信号検出部2321、ランレングス制限/DCフリー復号部2323(以下、「RLL/DCフリー復号部2323」と略記する。)、デスクランブラ2324とから構成されている。
VGA2311及びAGC2317は、図示しないプリアンプ2054から送られたデータのリード波形の振幅を調整する。AGC2317は理想的な振幅と実際の振幅を比較し、VGA2311に設定すべきゲインを決定する。LPF2312は、カットオフ周波数とブースト量を調整することができ、高周波ノイズの低減と部分応答(Partial Response。以下、「PR」と略記する。)波形への等化の一部を担う。LPF2312でPR波形への等化を行うが、ヘッドの浮上量変動、媒体の不均一性、モータの回転変動などの多くの要因により、アナログのLPFによる完全な等化は難しいので、後段に配置され、よりフレキシビリティに富んだフィルタ2315を用いて、再度PR波形への等化を行う。フィルタ2315は、そのタップ係数を適応的に調整する機能を有していてもよい。周波数シンセサイザ2314は、ADC2313のサンプリング用クロックを生成する。
ADC2313は、AD変換により直接同期サンプルを得る構成とした。なお、この構成の他に、AD変換により非同期サンプルを得る構成であってもよい。この場合は、ゼロ相リスタート部、タイミング制御部、及び補間フィルタをさらにADC2313の後段に設ければよい。非同期サンプルから同期サンプルを得る必要があり、これらのブロックがその役割を担う。ゼロ相リスタート部は初期位相を決定するためのブロックで、できるだけ早く同期サンプルを得るために用いられる。初期位相を決定した後は、タイミング制御部で理想的なサンプル値と実際のサンプル値を比較し、位相のずれを検出する。これを用いて補間フィルタのパラメータを決定することにより、同期サンプルを得ることができる。
ソフト出力検出部2320は、符号間干渉に伴う復号特性の劣化を回避するために、ビタビアルゴリズムの一種であるソフト出力ビタビアルゴリズム(Soft−Output Viterbi Algorithm。以下、「SOVA」と略記する。)が用いられる。すなわち、近年の磁気ディスク装置の記録密度の上昇に伴い、記録された符号間の干渉が大きくなり、復号特性が劣化するといった課題を解決するため、これを克服する方式として符号間干渉による部分応答を利用した最ゆう復号(Partial Response MaximumLikeihood。以下、「PRML」と略記する。)方式を用いる。PRMLは、再生信号の部分応答のゆう度を最大にする信号系列を求める方式である。
ソフト出力検出部2320としてSOVA方式が用いられている場合、軟判定値を出力する。例えば、SOVAの出力として、(−0.71、+0.18、+0.45、−0.45、−0.9)という軟判定値が出力されたとする。これらの値は、0である可能性が大きいか、1である可能性が大きいかを数値で表している。例えば、1番目の「−0.71」は1である可能性が大きいことを示しており、2番目の「+0.18」は0である可能性が大きいが1である可能性も小さくはないことを意味する。従来のビタビディテクタの出力はハード値であり、SOVAの出力を硬判定したものである。上記の例の場合、(1、0、0、1、1)である。ハード値は、0であるか、1であるかのみを表しており、どちらの可能性が高いかという情報が失われている。このためLDPC繰返復号部2322に軟判定値を入力する方が復号性能が向上する。
LDPC繰返復号部2322は、LDPC符号化されているデータ系列から、LDPC符号化前の系列に復元する役割を有する。復号化の方法としては、主に、sum−product復号法とmin−sum復号法があり、復号性能の面ではsum−product復号法が有利であるが、min−sum復号法はハードウェアによる実現が容易である特徴を持つ。LDPC符号を用いる実際の復号操作では、ソフト出力検出部2320とLDPC繰返復号部2322の間で繰り返し復号することにより、非常に良好な復号性能を得ることができる。このために実際はソフト出力検出部2320とLDPC繰返復号部2322を複数段配列した構成が必要になる。同期信号検出部2321は、データの先頭に付加された同期信号(Sync Mark)を検出し、データの先頭位置を認識する役割を有する。
RLL/DCフリー復号部2323は、LDPC繰返復号部2322から出力されたデータに対して、ライトチャネル2031のRLL/DCフリー符号化部2303の逆操作を行い、元のデータ系列に戻す。詳細は後述する。
デスクランブラ2324は、ライトチャネル2031のスクランブラ2302の逆操作を行い、元のデータ系列に戻す。ここで生成されたデータはHDC2001に転送される。
ここで、「DCフリー」について説明する。図23(a)〜(b)は、本発明の第3実施形態にかかるDCフリー特性の例を示す図である。図23(a)は、DCフリーである場合とそうでない場合における軟判定値の分布例を示す図である。横軸は個数、縦軸は軟判定値を示す。また、縦軸は、中心を±0として、プラス側、マイナス側の双方の軟判定値を含む軸である。実線で示す第1特性2200は、DCフリーの場合の分布を示す。また、破線で示す第2特性2300は、DCフリーでない場合の分布例を示す。DCフリーとは、前述したように、系列に含まれる0と1のビットの個数の比率が50%であることを示す。いいかえると、図23(a)の第1特性2200に図示するように、図22のLDPC繰返復号部2322における軟判定値の分布において、±1/2が中心値となり、±0付近の分布量が少ないことなどをいう。一方、DCフリーでない場合、たとえば、図23(a)の第2特性2300に図示するように、軟判定値の分布において、±0付近の分布量が増加したものとなる。
図23(b)は、DCフリーである場合とそうでない場合におけるビット誤り率特性の例を示す図である。横軸は信号対雑音比(Signal to Noise Ratio)、縦軸はビット誤り率(Bit Error Rate)を示す。実線で示す第3特性2210は、DCフリーの場合のビット誤り率特性を示す。また、破線で示す第4特性2310は、DCフリーでない場合のビット誤り率特性を示す。図示するように、DCフリーでない場合は、DCフリーである場合と比べて、ビット誤り率が悪化することとなる。
図24は、図22のRLL/DCフリー符号化部2303の構成例を示す図である。RLL/DCフリー符号化部2303は、RLL符号化部2060と、第1信号処理部2062と、直流成分除去符号化部2066とを含む。
RLL符号化部2060は、スクランブラ2302から出力されたデジタル信号系列をランレングス制限符号化することによって、第1符号化系列を生成する。第1信号処理部2062は、RLL符号化部2060から出力された第1符号化系列に含まれる複数のビットの個数を変えずに、第1符号化系列に対し、所定の信号処理を実行して、第2符号化系列を生成する。所定の信号処理は、デジタル信号系列に含まれる複数のビットの個数を変えなければ、任意の処理でよい。たとえば、デジタル信号系列に含まれる複数のビットのそれぞれに対し、ビット反転処理を実行する処理であってもよい。直流成分除去符号化部2066は、RLL符号化部2060によって生成された第1符号化系列と、第1信号処理部2062によって生成された第2符号化系列とのうち、DCフリー性の高い、いずれか一方の符号化系列を選択して出力する。ここで、処理すべきデジタル信号系列が300ビットから構成されている場合、RLL/DCフリー符号化部2303は、30ビットを1組として、10回に分けて処理する。ここで、RLL符号化部2060の符号化率が30/31である場合、RLL符号化部2060、第1信号処理部2062からそれぞれ出力される1回あたりの系列のビット数は、31ビットとなる。
一般的に、RLL符号化は、規則(d、k)にしたがって、信号系列中に存在する「0」の連続長が制限されるように実行される。規則(d、k)とは、RLL符号化の結果として生成される信号系列に対し、その信号系列中の2つの「1」の間に存在する「0」の個数は、d以上k以下であることを要求する規則である。ここで、「信号系列中の2つの「1」」とは、信号系列から全ての「0」を取り除いた場合において、隣接する2つの「1」をいう。たとえば、規則(d、k)が(0、3)である場合、信号系列「0110100010」は、規則を満たしているといえる。一方、規則(d、k)が(1、3)である場合、信号系列「0110100010」は、規則を満たしているとはいえない。なぜなら、信号系列中の2ビット目の「1」とそれに隣接する3ビット目の「1」の間における「0」の個数は0個であり、1以上3以下の条件を満たさないからである。いいかえると、規則(d、k)において、dが0でない場合、その条件は厳しい条件であるといえる。なお、規則(d、k)におけるdとkは、双方とも0以上の整数である。
本第3実施形態のRLL符号化部2060においては、上述した規則(d、k)を「0」についてだけでなく、「1」についても規則(d、k)を適用する。「「1」について規則(d、k)を適用する」とは、信号系列中の2つの「0」の間に存在する「1」の個数は、d以上k以下であることを示す。すなわち、RLL符号化部2060は、「0」の連続長については規則(d0、k0)を適用し、「1」の連続長については規則(d1、k1)を適用することによって、「0」と「1」の双方の連続長を同時に制限する。さらに、RLL符号化部2060は、「0」と「1」の双方の連続長を同時に制限した第1符号化系列を直流成分除去符号化部2066に出力するとともに、第1信号処理部2062を介して、その符号化系列が反転された第2符号化系列とを直流成分除去符号化部2066に出力する。このような態様をとることによって、直流成分除去符号化部2066に入力される2つの符号化系列は、双方ともRLL特性を満足できる。いいかえると、第1符号化系列は、「0」について規則(d0、k0)、1について規則(d1、k1)を満足しており、また、第2符号化系列は、「0」について規則(d1、k1)、1について規則(d0、k0)を満足することとなる。
本第3実施形態における2つの規則(d0、k0)、(d1、k1)において、d0とd1は、好ましくは、双方とも0の値が設定される。前述したように、規則(d、k)において、dが0でない場合、その条件は厳しい条件となり、符号化率の低下が著しいためである。また、k0とk1は、好ましくは、k0はk1以上の値として設定される。本第3実施形態における記憶システム2100においては、「0」の連続長を制限することがより優先されるためである。また、より好ましくは、k0=k1として設定されてもよい。なぜなら、信号系列中にしめる「1」の個数があまりにも少ない場合、図22におけるAGC2317や図示しないタイミング制御部の性能が劣化する、もしくは、正常に動作しない場合があるからである。なお、k0とk1は、0でない整数であって、それぞれ、d0、d1より大きな値が設定されなければならないことは言うまでもない。以上をまとめると、2つの規則(d0、k0)、(d1、k1)における、d0、k0、d1、k1は、以下で示す関係を有するように設定されることが好ましい。以下のように設定された場合、RLL符号化部2060と第1信号処理部2062とによって生成される第1符号化系列と、第1符号化系列を反転した第2符号化系列とは、同一のRLL特性を有することとなる。
d0=d1=0
k0=k1>0
図25は、図24の直流成分除去符号化部2066の構成例を示す図である。直流成分除去符号化部2066は、符号化系列選択部2074と、選択識別情報生成部2076と、識別情報付加部2078とを含む。符号化系列選択部2074は、RLL符号化部2060によって生成された第1符号化系列と、第1信号処理部2062によって生成された第2符号化系列のうち、いずれか一方の符号化系列を選択する。選択識別情報生成部2076は、符号化系列選択部2074によって選択された符号化系列を示す選択識別情報を生成する。識別情報付加部2078は、符号化系列選択部2074によって選択された符号化系列のいずれかの個所に、選択識別情報生成部2076によって生成された選択識別情報を付加する。
具体的に説明する。符号化系列選択部2074によって第1符号化系列が選択された場合、識別情報付加部2078において第1符号化系列に付加される選択識別情報は「0」となる。一方、符号化系列選択部2074によって第2符号化系列が選択された場合、識別情報付加部2078において第1符号化系列に付加される選択識別情報は「1」となる。いいかえると、選択識別情報「0」が付加された第1符号化系列、もしくは、選択識別情報「1」が付加された第2符号化系列がLDPC符号化部2304に出力される。なお、識別情報付加部2078によって選択識別情報が付加される個所は、符号化系列中の任意の一定の個所でよく、たとえば、符号化系列の最後尾に付加してもよい。詳細は後述するが、ここで付加される選択識別情報は判定ビットであり、復号側において判定ビットが付加された位置、および、判定ビットの内容を解析することにより、適切な復号処理が実現されることとなる。前述の具体例においては、1回あたり31ビットの符号化系列に1ビットの選択識別情報が付加され合計32ビットの系列が出力されることとなる。すなわち、RLL/DCフリー符号化部2303全体における符号化率は、30/32となる。
また、符号化系列選択部2074は、図示しない第1連結部と第2連結部とを含んでも良い。第1連結部は、当該符号化系列選択部2074によってすでに選択された符号化系列と前記第1符号化系列とを連結させる。また、第2連結部は、当該符号化系列選択部2074によってすでに選択された符号化系列と前記第2符号化系列とを連結させる。この場合、符号化系列選択部2074は、第1連結部によって連結された系列を新たな第1符号化系列とし、第2連結部によって連結された系列を新たな第2符号化系列とし、いずれか一方の符号化系列を選択してもよい。すなわち、過去において選択された符号化系列と、現在選択の候補となっている符号化系列とを連結させたものを対象として、符号化系列選択部2074が選択判定を行なうことによって、長区間におけるDCフリー特性を向上できる。
図26(a)〜(c)は、図25の符号化系列選択部2074の第1〜第3の構成例を示す図である。図26(a)は、図25の符号化系列選択部2074の第1の構成例を示す図である。第1の構成における符号化系列選択部2074は、第1比率計算部2080と、第2比率計算部2082と、選択出力部2084とを含む。
第1比率計算部2080は、第1符号化系列に含まれる複数のビットのうち、0を示すビットと1を示すビットとの比率を計算する。第2比率計算部2082は、第2符号化系列に含まれる複数のビットのうち、0を示すビットと1を示すビットとの比率を計算する。選択出力部2084は、第1比率計算部2080で計算された比率と、第2比率計算部2082で計算された比率とのうち、50%に近いほうの比率に対応する符号化系列を選択して出力する。
具体例を用いて説明する。まず、時刻t=1において、RLL符号化部2060、第1信号処理部2062から、それぞれ31ビットの符号化系列が出力されたと仮定する。この場合、第1比率計算部2080、第2比率計算部2082は、それぞれの符号化系列に含まれるビットを解析して、比率を計算する。ここで、第1比率計算部2080に入力される符号化系列に含まれるビットのうち、0を示すビットが14ビット、1を示すビットが17ビットである場合、比率は、第1比率計算部2080によって以下のように計算される。
比率t=1 = (0を示すビット数+1)/(符号化系列のビット数+1) = (14+1)/(31+1) ≒ 46.9%
また、第2比率計算部2082に入力される符号化系列に含まれるビットのうち、0を示すビットは17ビット、1を示すビットは14ビットとなる。なぜなら、第2比率計算部2082に入力される符号化系列は、第1比率計算部2080に入力される符号化系列を論理反転したものだからである。したがって、比率t=1は、第2比率計算部2082によって、以下のように計算される。なお、前式、および次式の右辺の分子において、それぞれ「1」、「0」を加算しているのは、それぞれの選択識別情報を「0」、「1」と仮定しているためである。また、前式、および次式の右辺の分母において、「1」を加算しているのは、選択識別情報を含めた系列の0の個数の割合を計算するためである。
比率t=1 = (0を示すビット数+0)/(符号化系列のビット数+1)= (17+0)/(31+1)≒ 53.1%
ここで、第1符号化系列と第2符号化系列の比率を「(50±α)%」と表現すると、どちらもα=3.1となる。したがって、いずれの比率も、同程度に、50%に近いといえるため、いずれの符号化系列を選択してもよいこととなる。このような場合、好ましくは、第1符号化系列が選択される。第1符号化系列は、第1信号処理部2062を経由しておらず、後述するRLL/DCフリー復号部2323において、第1信号処理部2062に対応する処理を実行する必要がない。したがって、第1符号化系列を選択した場合、記憶システム2100における処理電力を低減できることとなる。以下においては、t=0において、αが同一の場合、第1符号化系列が選択されるものとして説明する。
上述のように、t=1においては、選択出力部2084によって第1符号化系列が選択される。また、選択された第1符号化系列にかかる0を示すビット数「14」が記憶される。つぎに、t=2においてもt=1の場合と同様に、RLL符号化部2060、第1信号処理部2062から、それぞれ31ビットの符号化系列が出力されたとする。ここで、第1比率計算部2080に入力される符号化系列に含まれるビットのうち、0を示すビットが11ビット、1を示すビットが20ビットである場合、比率は、以下のように計算される。
比率t=2 = (0を示すビット数+1)/((符号化系列のビット数+1)×t) = (14+1+11+1)/((31+1)×2) ≒ 42.2%
上記は、t=1の場合と異なり、第1比率計算部2080は、t=1において選択された符号化系列とt=2における第1符号化系列とが第1連結部によって連結された系列について、比率を計算する。すなわち、t=1で選択された第1符号化系列のうち0を示すビットの個数「14+1」と、t=2における第1符号化系列のうちの0を示すビットの個数「11+1」とが上式の分子において加算されることとなる。また、上式における分母は、2組の符号化系列にかかるビット数となる。
また、第2比率計算部2082に入力される符号化系列に含まれるビットのうち、0を示すビットは20ビット、1を示すビットが11ビットとなる。そうすると、第2比率計算部2082によって、以下のように比率が計算される。この場合、第2符号化系列のほうが比率が50%に近いため、t=2においては、選択出力部2084によって第2符号化系列が選択される。
比率t=2 = (0を示すビット数+0)/((符号化系列のビット数+1)×t) = (14+1+20+0)/((31+1)×2) = 54.7%
以下、同様にt=3以降においても比率が計算される。ここで、t=nにおける比率は、以下のように表される。ただし、nは1以上の整数とする。また、Nbit(m)とは、t=mにおいて選択された符号化系列に含まれるビットのうち、0を示すビットの個数を示す。また、Nbit(n)は、比率を計算する対象となる符号化系列に含まれるビットのうち、0を示すビットの個数を示す。なお、比率を計算する対象となる符号化系列には、選択識別情報も含まれるものとする。
図26(b)は、図25の符号化系列選択部2074の第2の構成例を示す図である。第2の構成における符号化系列選択部2074は、第1合算部2086と、第2合算部2088と、選択出力部2084とを含む。第1合算部2086は、第1符号化系列に含まれる複数のビットを合算して第1合算値を生成する。第2合算部2088は、第2符号化系列に含まれる複数のビットを合算して第2合算値を生成する。符号化系列検出部は、第1合算部2086によって生成された第1合算値と、第2合算部2088によって生成された第2合算値とを比較して、第1符号化系列と第2符号化系列のうち、小さいほうの合算値に対応する符号化系列を検出する。選択出力部2084は、第1符号化系列と、第2符号化系列とのうち、系列検出部によって検出された符号化系列を選択して出力する。
具体例を用いて説明する。まず、t=1において、RLL符号化部2060、第1信号処理部2062から、それぞれ31ビットの符号化系列が出力されたと仮定する。この場合、第1合算部2086、第2合算部2088は、それぞれの符号化系列に含まれるビットを合算する。合算においては、0を「+1」に置換えると共に、1を「−1」に置換えて合計してもよい。このように合算することによって、0と1を示すビットの個数が等しい場合、合算値は0となる。したがって、選択出力部2084においては、合算値が0に近い符号化系列を選べばよく、たとえば、合算値の絶対値が小さい符号化系列を選べばよい。なお、この手法は、連続デジタル加算(Running Digital Summation。以下、「RDS」と略称する。)とも呼ばれる。
ここで、t=1において、第1合算部2086に入力される符号化系列に含まれる31個のビットのうち、0を示すビットが14ビット、1を示すビットが17ビットである場合、比率は、以下のように計算される。なお、右辺の第1項の被乗数において「1」を加算しているのは、選択識別情報を0と仮定しているためである。
RDSabs = |(14+1)×(+1)+17×(−1)| = 2
また、第2合算部2088に入力される符号化系列に含まれるビットのうち、0を示すビットは17ビット、1を示すビットが14となる。したがって、比率は、以下のように計算される。なお、右辺の第2項において「1」を加算しているのは、選択識別情報を1と仮定しているためである。
RDSabs = |17×(+1)+(14+1)×(−1)| = 2
ここで、t=1においては、第1符号化系列と第2符号化系列に関し、いずれのRDSabsも同一の値となるため、いずれの符号化系列を選択してもよいこととなる。いいかえると、第1符号化系列と第2符号化系列とは、互いに論理反転した関係にあるため、それぞれRDSabsは、常に同一となる。ここで、「常に同一」とは、その時点におけるRDSが同一であることを含む。すなわち、t=1におけるRDSabsが互いに同一であっても、後述するt=2におけるRDSabsは、t=1において選択されたRDSabsが反映された上で計算されるため、常に同一になるわけではない。なお、2つのRDSabsが同一になった場合、好ましくは、第1符号化系列が選択される。第1符号化系列は、第1信号処理部2062を経由しておらず、後述するRLL/DCフリー復号部2323において、第1信号処理部2062に対応する処理を実行する必要がない。したがって、第1符号化系列を選択した場合、記憶システム2100における処理電力を低減できることとなる。以下においては、t=1において、第1符号化系列が選択されるものとして説明する。また、絶対値を計算する前の第1符号化系列についてのRDSが「RDS1=−2」として記憶されたものとする。
つぎに、t=2において、t=1の場合と同様に、RLL符号化部2060、第1信号処理部2062から、それぞれ31ビットの符号化系列が出力されたとする。ここで、第1合算部2086に入力される符号化系列に含まれるビットのうち、0を示すビットが11ビット、1を示すビットが20ビットである場合、RDSは、以下のように計算される。t=1の場合と異なり、t=2においては、t=1において選択された符号化系列にかかるRDSも考慮にいれて計算されることとなる。
RDSabs = |RDS1+(11+1)×(+1)+20×(−1)| = |−2+(−8)| = 10
また、第2合算部2088に入力される符号化系列に含まれるビットのうち、0を示すビットは20ビット、1を示すビットは11ビットとなる。したがって、比率は、以下のように計算される。この場合、第2符号化系列のRDSのほうが小さいため、t=2においては、選択出力部2084によって第2符号化系列が選択される。また、RDS2=6が記憶される。
RDSabs = |RDS1+20×(+1)+(11+1)×(−1)| = |−2+(+8)| = 6
以下、同様にt=3以降においてもRDS
absが計算される。ここで、t=nにおけるRDS
abs(n)は、以下のように表される。ただし、tは1以上の整数とする。また、Nbit0(m)とは、t=mにおいて選択された符号化系列および選択識別情報に含まれるビットのうち、0を示すビットの個数を示す。また、Nbit1(m)とは、t=mにおいて選択された符号化系列および選択識別情報に含まれるビットのうち、1を示すビットの個数を示す。ただし、Nbit0(n)、Nbit1(n)は、合算値を計算する対象となる符号化系列に含まれるビットのうち、それぞれ、0を示すビットの個数、1を示すビットの個数を示す。
ここで、本第3実施形態におけるRDS(n)の収束性について説明する。ここで、RDS(n)とは、RDSabs(n)において絶対値を計算する前の値を示す。また、「RDS(n)の収束性」とは、nが無限大でRDS(n)が0となることなどを含み、また、RDS(n)は少なくとも発散せず、また、任意の時刻tにおいて、±0を中心として振動することなどを含む。このような性質を有するRDS(n)を生成することによって、常に良好なDCフリー特性を維持できることとなる。
具体例を用いて説明する。ここで、時刻n=1〜5における各符号化系列におけるRDSが、以下のように計算されたと仮定する。なお、RDS1(n)とは、第1符号化系列におけるRDSを示し、また、RDS2(n)とは、第2符号化系列におけるRDSを示す。
RDS1(n)={+5、+7、−1、−6、−4}
RDS2(n)={−5、−7、+1、+6、+4}
ここで、n=1については、前述したようにRDSabsは同一となり、RDS1(1)が選択されたと仮定する。そうすると、n=1〜5において計算されるRDS(n)は、以下のように示される。
RDS(n)={5、−2、−1、5、1}
上式は、任意の時刻nにおけるRDS(n)が0以上である場合、次の時刻(n+1)においては、負のRDSを有する符号化系列が選択され、0に近づけていることを示す。また、任意の時刻nにおけるRDS(n)が0以下である場合、次の時刻(n+1)においては、正のRDSを有する符号化系列が選択され、0に近づけることを示す。ここで、本第3実施形態においては、前述したように、第1符号化系列と第2符号化系列とは、互いに論理反転された系列であるため、RDS1(n)とRDS2(n)とは、正負が反転された値となる。そうすると、任意のnにおいて、一方のRDSは、必ず他方のRDSの符号が反転されていることとなる。したがって、RDS(n)は、上式に示すように、任意のnにおいて、発散せず、また、±0を中心として振動する性質を備えることとなる。いいかえると、第1符号化系列と第2符号化系列とを互いに反転する関係とすることによって、RDS(n)は良好な収束性を備えることができるため、高いDCフリー特性が保証され、また、維持できることとなる。さらに、前述したように、第1符号化系列と第2符号化系列とは、同一のRLL特性を有する。したがって、本第3実施形態に示す態様をとることによって、記憶システム2100は、RLL特性とDCフリー特性とを同時に向上できる。なお、後述する図26(c)に示す態様においても、同様の効果が得られることは言うまでもない。
上記における符号化系列選択部2074の動作は、ある時刻においては区間演算処理を行ないつつ、過去の連続する時刻間において移動演算処理を行なっている点が特徴となる。このように、区間処理と移動処理を組み合わせることによって、長区間、たとえば、300ビットの系列全体において、DCフリー性が向上されることとなる。
なお、第1合算部2086、第2合算部2088における合算処理は、符号化系列に含まれる0もしくは1を示すビットをそのまま合計してもよい。この場合、選択出力部2084においては、合算値が符号化系列の個数の半分の値に近いほうに対応する符号化系列が選択されることとなる。
図26(c)は、図25の符号化系列選択部2074の第3の構成例を示す図である。第3の構成における符号化系列選択部2074は、第1移動加算部2090と、第1最大値検出部2092と、第2移動加算部2094と、第2最大値検出部2096と、選択出力部2084とを含む。第1移動加算部2090は、第1符号化系列に含まれる複数のビットを移動加算を計算することによって、複数のビットと同数の第1移動加算値を生成する。第1最大値検出部2092は、第1移動加算部2090によって生成された複数の第1移動加算値のうち、最大値を検出する。第2移動加算部2094は、第2符号化系列に含まれる複数のビットを移動加算することによって、複数のビットと同数の第2移動加算値を生成する。第2最大値検出部2096は、第2移動加算部2094によって生成された複数の第2移動加算値のうち、最大値を検出する。符号化系列検出部は、第1最大値検出部2092によって検出された最大値と、第2最大値検出部2096によって検出された最大値とを比較して、第1符号化系列と第2符号化系列のうち、小さいほうの最大値に対応する符号化系列を検出する。選択出力部2084は、第1符号化系列と、第2符号化系列とのうち、系列検出部によって検出された符号化系列を選択して出力する。
符号化系列選択部2074の第3の構成例は、第2の構成例と同様に、第1移動加算部2090、第2移動加算部2094において、それぞれの符号化系列のRDSを計算することによって、選択出力部2084が符号化系列を選択する。第3の構成例においては、32ビットのRDSの計算途中における最大値が小さいほうの符号化系列を選択する点で、32ビットのRDS計算の最終計算値のみ考慮して0に近い符号化系列を選択する第2の構成例と異なる。言い換えると、第3の構成例は、所定の区間においても、複数の区間においても、移動演算によって選択処理を行なっている。このような態様をとることによって、区間途中においてもDCフリー性の良い系列を選択できる。
ここで、「RDSの計算途中における最大値」は、時刻tごとに、以下で導出される。ただし、Min{y(0)、y(1)}とは、小さいほうの値を選択し、選択したほうの系列の番号を出力する関数を示す。たとえば、y(0)>y(1)の場合、S(t)は、1となる。また、max{x}とは、xのうち、最大値を検出する関数を示す。また、nは、(t−1)×32+1〜32×tの範囲の値を示す。また、Bit(m、j)は、第j符号化系列のうち、m番目のビットが0である場合は+1を示し、また、1である場合は−1を示す。
S(t)=Min{MaxRDS(1)、MaxRDS(2)}
MaxRDS(1) = max{RDS(n、1)}
MaxRDS(2) = max{RDS(n、2)}
また、Bit(m、1)、Bit(m、2)は、tが増加するごとに、選択された系列に係るビットを下記のように書き換えた後に、計算されることとなる。
Bit(m、1)=Bit(m、2)=Bit(m、S(t−1)) :m=(t−1)×32+1〜t×32、t≠1
ここで、図26(c)に示す符号化系列選択部2074の第3の構成例の動作について、図26(b)に示す符号化系列選択部2074の第2の構成例の動作と比較する。図27は、図26(b)と図26(c)にそれぞれ示す符号化系列選択部2074の動作の相違を示す図である。横軸は時間、縦軸はRDSを示す。ここで、2400Aは、第1符号化系列におけるRDSの推移を示す。また、2400Bは、第2符号化系列におけるRDSの推移を示す。図26(b)に示す符号化系列選択部2074の第2の構成例においては、RDSの区間演算の最終値であるRDSAとRDSBとを比較して小さいほうの符号化系列を選択する。図27においては、RDSA<RDSBであるので、選択出力部2084は、第1符号化系列を選択することとなる。一方、図26(c)に示す符号化系列選択部2074の第3の構成例においては、それぞれのビットにおけるRDS、すなわち、32個のビットを順次移動演算処理した後の絶対値のうち、最大値を比較して、小さいほうの符号化系列を選択する。図27においては、第1符号化系列については、MaxAが最大値であり、また、第2符号化系列については、MaxBが最大値となる。ここでは、MaxA>MaxBであるので、選択出力部2084は、第2符号化系列を選択することとなる。いずれの構成例を符号化系列選択部2074に適用した場合においても、DCフリー性の高い符号化系列を選択することができる。
図28は、図22のRLL/DCフリー復号部2323の構成例を示す図である。RLL/DCフリー復号部2323は、判定ビット取得部2068と、RLL復号部2070と、第2信号処理部2072とを含む。判定ビット取得部2068は、LDPC繰返復号部2322によって入力された符号化系列に付加されている所定の判定ビットを取得する。第2信号処理部2072は、判定ビット取得部2068によって取得された判定ビットに応じて、符号化系列に対し、第1信号処理部2062で実行された所定の信号処理と逆の信号処理を実行して出力する処理を実行する。たとえば、図24の第1信号処理部2062において、ビット反転処理を行なっていた場合、ビットの反転処理を元に戻す再反転処理とを実行する。もしくは、判定ビット取得部2068によって取得された判定ビットに応じて、第2信号処理部2072は、符号化系列に含まれる複数のビットをそのまま出力する処理を実行する。RLL復号部2070は、第2信号処理部2072によって出力された符号化系列をランレングス制限復号することによってデジタル信号系列を生成する。
上述したこれらの構成は、ハードウエア的には、任意のコンピュータのCPU、メモリ、その他のLSIで実現でき、ソフトウエア的にはメモリにロードされた通信機能のあるプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
本第3実施形態によれば、RLL符号化された信号系列と、その信号系列に対しビット反転処理がほどこされた信号系列とを対象とすることによって、生成される系列は論理反転された関係となるため、第1符号化系列と第2符号化系列とを互いに反転する関係とすることによって、計算されるRDS(n)は良好な収束性を備えることができるため、高いDCフリー特性が保証され、また、維持できることとなる。さらに、前述したように、第1符号化系列と第2符号化系列とは、同一のRLL特性を有する。したがって、本第3実施形態に示す態様をとることによって、記憶システム2100は、RLL特性とDCフリー特性とを同時に向上できる。また、ビット反転処理することによって、系列に含まれるビットの個数を増加せずに、異なる系列を生成できる。
また、系列に含まれるビットの個数が増加しないため、全体の符号化率を低下させずに符号化系列が得られる。また、いずれの符号化系列が選択されたことを示す情報を符号化系列に付加することによって、復号側にて、容易に選択された符号化系列を判別できる。また、過去において選択された符号化系列と、現在選択の候補となっている符号化系列とを連結させたものを対象として、符号化系列選択部2074が選択判定を行なうことによって、長区間におけるDCフリー特性を向上できる。符号化系列選択部2074において、区間処理と移動処理を組み合わせてRDSを計算することによって、長区間、たとえば、300ビットの系列全体において、DCフリー性が向上できる。また、0を示すビットと1を示すビットとの比率が50%に近いほうを選択することによって、DCフリー性の高い符号化系列が選択できる。また、符号化系列に含まれる複数のビットを合算し、より小さい合算値に対応する系列を選択することによって、DCフリー性の高い符号化系列が選択できる。また、符号化系列に含まれる複数のビットを移動加算した結果のうちの最大値を用いて系列を選択することによって、DCフリー性の高い符号化系列が選択できる。符号化側において実行されたDCフリー符号化に対応する処理を実行することによって、元のデジタル信号系列を復号できる。DCフリー性の高い符号化処理を実行することによって、より高速に記憶システムにアクセスすることができる。また、余分なハードウェアを搭載する必要がなくなるので、低規模な半導体集積回路を実現できる。
本第3実施形態において、R/Wチャネル2003は、1つの半導体基板上に一体集積化されてもよい。また、本第3実施形態の符号化系列選択部2074において、区間演算処理、もしくは、移動演算処理として説明した。しかしながらこれにかぎらず、区間平均処理、もしくは、移動平均処理を行なうことによって、DCフリー性の高い符号化系列の選別を行なってもよい。この場合であっても、同様の効果を得ることができる。
(第4実施形態)
第4実施形態は、記憶媒体へのアクセス技術に関し、特に、記憶媒体から読み出した信号の振幅を調整する振幅調整装置、振幅調整方法、および記憶システムに関する。
第4実施形態の背景技術について説明する。
近年、ハードディスクを用いた記憶装置は、パーソナルコンピュータ、ハードディスクレコーダー、ビデオカメラ、携帯電話など、さまざまな分野において必須の装置となりつつある。ハードディスクを用いた記憶装置は、適用される分野によって求められる仕様もさまざまである。たとえば、パーソナルコンピュータに搭載するハードディスクには、高速性、大容量性が求められる。しかしながら、高速化が進むほど単位時間あたりに扱うデータの量が増えるため、単位時間あたりの誤りも比例して増大する。そうすると、すべての誤りを訂正することが困難となり、結果的にハードディスクへのアクセスに要する時間が増大する場合があり、高速化のボトルネックとなる。
一般的に、記憶装置に記憶されている信号を読み出す素子として、磁気抵抗素子(MagnetoResistive)が用いられていた。しかし、磁気抵抗素子を介して記憶装置から読み出した再生信号波形は、正パルスの出力振幅と負パルスの出力振幅とが非対称となる(以下、「振幅の非対称性」と表記する。)問題があった(たとえば、非特許文献1参照。)。振幅の非対称性(Amplitude Asymmetry)の問題は、磁気抵抗素子により、正パルスと負パルスのいずれか一方の出力振幅が低減されて出力されることによって生じ、両パルスのダイナミックレンジが異なることをいう。振幅の非対称性が顕著に現れる場合、磁気抵抗素子の後段において実行されるデータ検出処理の検出精度が劣化することとなる。そうすると、データ検出の後に実行される誤り訂正復号の訂正能力が低減してしまう。このような場合、記憶装置に記憶されたデータを正しく再生するために、再度、記憶装置にアクセスする必要が生じるため、記憶装置の高速化が困難となっていた。この非対称性を解消する技術として、従来、磁気抵抗素子に印加するバイアス磁界を制御していた(たとえば、特開平4−205903号公報参照。)。また、アナログ/デジタル変換器のゼロレベルを調整することによって、非対称性を補正していた(たとえば、特開平5−205205号公報参照。)。また、誤り訂正処理後の結果をフィードバックすることによって、非対称性を補正していた(たとえば、特開平11−238205号公報参照。)。
第4実施形態が解決しようとする課題について説明する。
本発明者はこうした状況下、以下の課題を認識するに至った。すなわち、アナログ回路によっては動作が不安定となるので非線形性を正確に補正することが困難であり、また、回路規模が増大するといった課題である。一方、デジタル処理によって非線形性を補正すると、フィードバックループに伴う遅延の発生、あるいは、アナログ/デジタル変換器におけるビット数の増加に伴う回路規模の増大といった課題である。
本発明の第4実施形態はこうした状況に鑑みてなされたものであり、その総括的な目的は、より少ない回路規模で、振幅の非対称性を低減できる記憶装置を提供することにある。
上記課題を解決するために、本発明の第4実施形態のある態様の振幅調整装置は、入力部と、アナログデジタル変換部とを備える。入力部は、磁気抵抗素子を介して出力されたアナログ信号であって、正区間におけるダイナミックレンジと負区間におけるダイナミックレンジとが非対称となり、いずれか一方の区間に非線形区間を含むアナログ信号を入力する。アナログデジタル変換部は、入力部で入力されたアナログ信号の振幅が非線形区間に存在する場合、アナログ信号に対して振幅を調整しつつ、デジタル信号に変換して出力する。また、アナログデジタル変換部は、アナログ信号をデジタル信号に変換する前に、非線形区間における非線形性を打ち消すように、アナログ信号の振幅を調整する前置調整部を有する。
ここで、「非線形区間」とは、磁気抵抗素子の入出力特性において磁気抵抗素子に入力されたアナログ信号の振幅が歪まされて出力される区間などを含む。また、「非線形区間における非線形性を打ち消すように、アナログ信号の振幅を調整する前置調整部」とは、その入出力特性として、非線形区間における入出力特性の逆特性、もしくは、逆特性に近似した特性を有する前置補正部などを含む。
この態様によると、アナログデジタル変換部において、アナログ信号の振幅を調整することによって、磁気抵抗素子において発生した振幅の非線形性を打ち消すことができる。また、磁気抵抗素子において発生した振幅の非線形性を打ち消すことによって、後段において実行するデータ検出の検出精度を向上できる。また、さらに後段において実行される誤り訂正復号後の誤り特性を改善できる。
前置調整部は、非線形区間における入出力特性を双曲線正接関数の逆数に相当する値とすることによって、非線形区間におけるアナログ信号の振幅を調整してもよい。前置調整部は、非線形区間に含まれる複数の部分区間において、複数の部分区間のうちの第1部分区間の入出力特性として、少なくとも1より大きい第1の傾きを有する1次関数が設定され、また、複数の部分区間のうち、第1部分区間と連続する第2部分区間の入出力特性として、第1の傾きと異なる傾きを有する1次関数が設定されていてもよい。ここで、「双曲線正接関数の逆数に相当する値」とは、少なくとも双曲線正接関数の入出力特性を近似した値などを含み、たとえば、双曲線正接関数の入出力特性とn次関数(nは1以上の整数)の入出力特性とを加算、減算、乗算、もしくは除算した複数の値なども含む。また、「連続する」とは、第1部分区間の終点と第2部分区間の始点とが一致することなどを含み、また、第1部分区間の始点と第2部分区間の終点とが一致することも含む。
前置調整部は、複数の抵抗素子と、比較部とを有してもよい。複数の抵抗素子は、直列に設置された複数の抵抗素子であって、一定電圧を有する参照信号を入力として、順次、後段の抵抗素子に対し、それぞれ振幅調整された参照信号を出力する。比較部は、複数の抵抗素子のそれぞれから出力された参照信号と、入力部から入力されたアナログ信号の振幅とをそれぞれ比較することによって、アナログ信号の振幅を調整する。また、複数の抵抗素子は、それぞれの抵抗素子の抵抗値に非均一性をもたせることによって、振幅調整の幅を変えてもよい。また、複数の抵抗素子のうち非線形区間に対応する抵抗素子は、非線形区間以外の区間に対応する抵抗素子の抵抗値と異なる抵抗値に設定されることによって、非線形区間における非線形性を調整してもよい。ここで、「それぞれの抵抗素子の抵抗値に非均一性をもたせる」とは、複数の抵抗素子のうち、少なくとも1以上の抵抗素子の抵抗値が他の抵抗素子の抵抗値と異なることなどを含み、複数の抵抗素子において、同一の抵抗値を有する抵抗素子が複数存在してもよい。この態様によると、アナログデジタル変換部に含まれる複数の抵抗素子の抵抗値をそれぞれ設定するだけで、アナログ信号の振幅の非対称性の低減化を小規模な回路で実現できる。
前置調整部は、複数の抵抗素子のうち少なくとも1以上の抵抗素子の入力端に接続され、入力端のそれぞれに対し、対応する参照電圧を印加することによって、前記複数の抵抗素子のそれぞれから出力される参照信号の振幅を調整する参照電圧制御部と、をさらに有してもよい。この場合、複数の抵抗素子は、同一の抵抗値を有してもよい。また、参照電圧制御部は、複数の抵抗素子のうち非線形区間に対応する抵抗素子の入力端に対し、非線形区間以外の区間に対応する抵抗素子の入力端とは異なる参照電圧を印加することによって、非線形区間における非線形性を調整してもよい。ここで、「対応する参照電圧」とは、抵抗素子ごとに対応づけられて決定された参照電圧を含み、予め設定されていてもよく、また、磁気抵抗素子の品質にしたがって動的に変化してもよい。この態様によると、参照電圧制御部によって柔軟に参照信号の振幅を制御できる。また、アナログデジタル変換部に含まれる複数の抵抗素子の抵抗値を同一にできるので回路コストが低減できる。また、アナログ信号の振幅の非対称性の低減化を小規模な回路で実現できる。
本発明の第4実施形態の別の態様は、振幅調整方法である。この方法は、入力するステップと、出力するステップとを含む。入力するステップは、磁気抵抗素子を介して出力されたアナログ信号であって、正区間におけるダイナミックレンジと負区間におけるダイナミックレンジとが非対称となり、いずれか一方の区間に非線形区間を含むアナログ信号を入力する。出力するステップは、非線形区間に存在するアナログ信号に対して、非線形区間における非線形性を打ち消すようにその振幅を調整しつつ、デジタル信号に変換して出力する。この態様によると、出力するステップにおいて、アナログ信号の振幅を調整することによって、磁気抵抗素子において発生した振幅の非線形性を打ち消すことができる。また、磁気抵抗素子において発生した振幅の非線形性を打ち消すことによって、後段において実行するデータ検出の検出精度を向上できる。また、さらに後段において実行される誤り訂正復号後の誤り特性を改善できる。
本発明の第4実施形態のさらに別の態様は、記憶システムである。この記憶システムは、データを記憶装置に書き込むライトチャネルと、記憶装置に記憶されているデータを読み出すリードチャネルとを備える信号記憶システムである。ライトチャネルは、データをランレングス符号化する第1の符号化部と、第1の符号化部で符号化されたデータに対し、低密度パリティ検査符号を用いて符号化する第2の符号化部と、第2の符号化部で符号化されたデータを記憶装置に書き込む書き込み部と、を有する。リードチャネルは、入力部と、アナログデジタル変換部と、ソフト出力検出部と、第1の復号部と、第2の復号部とを有する。入力部は、磁気抵抗素子を介して記憶装置から出力されたアナログ信号であって、正区間におけるダイナミックレンジと負区間におけるダイナミックレンジとが非対称となり、いずれか一方の区間に非線形区間を含むアナログ信号を入力する。アナログデジタル変換部は、入力部から入力されたアナログ信号をデジタル信号に変換して出力する。ソフト出力検出部は、アナログデジタル変換部から出力されたデジタル信号の尤度を計算して軟判定値を出力する。第1の復号部は、ソフト出力検出部から出力されたデータを復号し、第2の符号化部に対応している。第2の復号部は、第1の復号部で復号されたデータを復号し、第1の符号化部に対応している。アナログデジタル変換部は、入力部で入力されたアナログ信号の振幅が非線形区間に存在する場合、アナログ信号をデジタル信号に変換する前に、アナログ信号に対して、非線形区間における非線形性を打ち消すように振幅を調整する前置調整部を有する。この態様によると、磁気抵抗素子において発生した振幅の非対称性による影響を低減することができ、より高速に記憶システムにアクセスすることができる。
本発明の第4実施形態のさらに別の態様もまた、記憶システムである。この記憶システムは、さらに、データを記憶する記憶装置と、記憶装置への書き込みと、記憶装置からの読み出しとを制御する制御部と、を有する。リードチャネルは、制御部の指示に従って、記憶装置に記憶されているデータを磁気抵抗素子を介して読み出し、ライトチャネルは、制御部の指示に従って、符号化されたデータを記憶装置に書き込む。この態様によると、磁気抵抗素子において発生した振幅の非対称性による影響を低減することができ、より高速に記憶システムにアクセスすることができる。
本発明の第4実施形態のさらに別の態様は、振幅調整装置である。この装置は、1つの半導体基板上に一体集積化されている。この態様によると、一体集積化されることにより、低規模な半導体集積回路を実現できる。
本発明の第4実施形態のさらに別の態様は、記録情報読取装置である。記録情報読取装置は、ディスクに記録された記録情報を読み取る読取部から出力されたアナログ信号を入力するアナログ信号入力部と、アナログ信号入力部からアナログ信号を入力し、これをデジタル信号に変換する際に、アナログ信号の入力レベルの正区間あるいは負区間のいずれか一方の区間において、入出力特性におけるアナログ信号とデジタル信号の関係がアナログ信号の入力レベルが小さい場合とアナログ信号の入力レベルが大きい場合とで異なるアナログデジタル変換部と、を備える。アナログデジタル変換部は、直列に設置された複数の抵抗素子であって、一定電圧を有する参照信号を入力として、順次、後段の抵抗素子に対し、それぞれ振幅調整された参照信号を出力する複数の抵抗素子と、複数の抵抗素子のそれぞれから出力された参照信号と、前記入力部から入力されたアナログ信号の入力レベルとをそれぞれ比較することによって、前記アナログ信号の入力レベルを調整する比較部とを有してもよい。複数の抵抗素子は、それぞれの抵抗素子の抵抗値に非均一性をもたせることによって、入力レベルの調整の幅を変えてもよい。
本発明の第4実施形態のさらに別の態様は、記録情報読取装置である。この装置は、ディスクに記録された記録情報を読み取る読取部から出力されたアナログ信号を入力するアナログ信号入力部と、アナログ信号入力部からアナログ信号を入力し、これをデジタル信号に変換する際に、入出力特性におけるアナログ信号とデジタル信号の関係が可変のアナログデジタル変換部と、アナログデジタル変換部の出力に応じ、アナログデジタル変換部の入出力特性におけるアナログ信号とデジタル信号との関係を決定する制御部と、を備える。アナログデジタル変換部は、アナログ信号が入力される可変抵抗を有し、制御部は、前記可変抵抗の抵抗値を決定してもよい。
なお、以上の構成要素の任意の組合せや本発明の構成要素や表現を方法、装置、システムなどの間で相互に置換したものもまた、本発明の態様として有効である。
本発明の第4実施形態を具体的に説明する前に、まず本第4実施形態にかかる記憶装置について概要を述べる。本第4実施形態にかかる記憶装置は、ハードディスクコントローラと、磁気ディスク装置と、リードチャネルとライトチャネルを含むリードライトチャネルと、を有する。磁気ディスク装置においては、通常、磁気抵抗素子(MagnetroResistive。以下、「MR素子」と略記する。)を含むヘッドを介して、ハードディスクに記憶されているデータを読み出す。ここで、ハードディスクから読み出した信号の波形は、正パルスの出力振幅と負パルスの出力振幅とが非対称となることがあり、高速化のボトルネックとなっていた。そこで、本発明の第4実施形態においては、リードチャネルにおいて読出したアナログ信号をデジタル信号に変換する際に、振幅の非対称性を改善する。詳細は後述するが、アナログデジタル変換器の入出力特性を振幅の非対称性を打ち消すような特性とすることによって、振幅の非対称性を低減する。
以下、図面を用いて、本発明の第4実施形態について詳細に説明する。
図29は、本発明の第4実施形態に係る磁気ディスク装置3100の構成を示す図である。図29の磁気ディスク装置3100は、大きく分けて、ハードディスクコントローラ3001(以下、「HDC3001」と略記する。)、中央処理演算装置3002(以下、「CPU3002」と略記する。)、リードライトチャネル3003(以下、「R/Wチャネル3003」と略記する。)、ボイスコイルモータ/スピンドルモータ制御部3004(以下、「VCM/SPM制御部3004」と略記する。)、及びディスクエンクロージャ3005(以下、「DE3005」と略記する。)とから構成される。一般に、HDC3001、CPU3002、R/Wチャネル3003、及びVCM/SPM制御部3004は同一の基板上に構成される。
HDC3001は、HDC3001全体を制御する主制御部3011、データフォーマット制御部3012、誤り訂正符号化制御部3013(以下、「ECC制御部3013」と略記する。)、及びバッファRAM3014を含む。HDC3001は、図示しないインタフェース部を介してホストシステムと接続される。また、R/Wチャネル3003を介して、DE3005と接続されており、主制御部3011の制御により、ホストとDE3005の間でデータ転送処理を実行する。このHDC3001には、R/Wチャネル3003で生成されるリードリファレンスクロック(RRCK)が入力される。データフォーマット制御部3012は、ホストから転送されたデータをディスク媒体3050上に記録するのに適したフォーマットに変換し、逆に、ディスク媒体3050から再生されたデータをホストに転送するのに適したフォーマットに変換する。ディスク媒体3050は、たとえば、磁気ディスクを含む。ECC制御部3013は、ディスク媒体3050から再生されたデータに含まれる誤りの訂正及び検出を可能にするために、記録するデータを情報シンボルとして、冗長シンボルを付加する。またECC制御部3013は、再生されたデータに誤りが生じているかを判断し、誤りがある場合には訂正或いは検出を行う。但し、誤りが訂正できるシンボル数は有限であり、冗長データの長さに関係する。即ち、多くの冗長データを付加するとフォーマット効率が悪化するため、誤り訂正可能シンボル数とはトレードオフとなる。ECCとしてリードソロモン(RS)符号を利用して誤り訂正を実行する場合、(冗長シンボル数/2)個までの誤りを訂正できる。バッファRAM3014は、ホストから転送されたデータを一時的に保存し、適切なタイミングでR/Wチャネル3003に転送する。逆に、R/Wチャネル3003から転送されたリードデータを一時的に保存し、ECC復号処理などの終了後、適切なタイミングでホストに転送する。
CPU3002は、フラッシュROM3021(以下、「FROM3021」と略記する。)、及びRAM3022を含み、HDC3001、R/Wチャネル3003、VCM/SPM制御部3004、及びDE3005と接続される。FROM3021には、CPU3002の動作プログラムが保存されている。
R/Wチャネル3003は、ライトチャネル3031とリードチャネル3032とに大別され、HDC3001との間で記録するデータ及び再生されたデータの転送処理を実行する。また、R/Wチャネル3003は、DE3005と接続され、記録信号の送信、再生信号の受信を実行する。詳細は後述する。
VCM/SPM制御部3004は、DE3005中のボイスコイルモータ3052(以下、「VCM3052」と略記する。)とスピンドルモータ3053(以下、「SPM3053」と略記する。)を制御する。
DE3005は、R/Wチャネル3003と接続され、記録信号の受信処理、再生信号の送信処理を実行する。またDE3005は、VCM/SPM制御部3004と接続されている。DE3005は、ディスク媒体3050、ヘッド3051、VCM3052、SPM3053、及びプリアンプ3054等を有している。図29の磁気ディスク装置3100においては、ディスク媒体3050が1枚であり、且つヘッド3051がディスク媒体3050の一方の面側のみに配置されている場合を想定しているが、複数のディスク媒体3050が積層配置された構成であってもよい。また、ヘッド3051は、ディスク媒体3050の各面に対応して設けられるのが一般的である。R/Wチャネル3003により送信された記録信号は、DE3005内のプリアンプ3054を経由してヘッド3051に供給され、ヘッド3051によりディスク媒体3050に記録される。逆に、ヘッド3051によりディスク媒体3050から再生された信号は、プリアンプ3054を経由してR/Wチャネル3003に送信される。DE3005内のVCM3052は、ヘッド3051をディスク媒体3050上の目標位置に位置決めするために、ヘッド3051をディスク媒体3050の半径方向に移動させる。また、SPM3053は、ディスク媒体3050を回転させる。なお、ヘッド3051には、前述したようにMR素子に起因して、その出力振幅が非対称となる。詳細は後述する。
ここで、図30を用いて、R/Wチャネル3003について説明する。図30は、図29のR/Wチャネル3003の構成を示す図である。R/Wチャネル3003は、大きく分けて、ライトチャネル3031とリードチャネル3032から構成される。
ライトチャネル3031は、バイトインターフェース部3301、スクランブラ3302、ランレングス制限符号化部3303(以下、「RLL符号化部3303」と略記する。)、低密度パリティチェック符号化部3304(以下、「LDPC符号化部3304」と略記する。)、書き込み補償部3305(以下、「ライトプリコン部3305」と略記する。)、ドライバ3306を含む。
バイトインターフェース部3301では、HDC3001から転送されたデータが入力データとして処理される。メディア上に書き込むデータは1セクタ単位でHDC3001から入力される。このとき1セクタ分のユーザデータ(512バイト)だけでなく、HDC3001によって付加されたECCバイトも同時に入力される。データバスは通常1バイト(8ビット)であり、バイトインターフェース部3301により入力データとして処理される。スクランブラ3302はライトデータをランダムな系列に変換する。同じ規則のデータの繰り返しは、リード時における検出性能に悪影響を与え、エラーレートを悪化させるのを防ぐためである。RLL符号化部3303は0の最大連続長を制限するためのものである。0の最大連続長を制限することにより、自動利得制御部3317(以下、「AGC3317」と略記する。)などに適したデータ系列にする。
LDPC符号化部3304は、データ系列をLDPC符号化して冗長ビットであるパリティビットを含む系列を生成する役割を有する。LDPC符号化は、生成行列と呼ばれるk×nの行列に、長さkのデータ系列を左から掛け合わせることで実行される。この生成行列に対応する検査行列Hに含まれる各要素は、0もしくは1であり、1の数が0の数に比べて少ないことから、低密度パリティ検査符号(Low Density Parity Check Codes)と呼ばれている。この1と0の配置を利用することによって、LDPC繰返復号部にて、効率的にエラーを訂正できる。
ライトプリコン部3305は、メディア上の磁化遷移の連続による非線形歪を補償する回路である。ライトデータから補償に必要な規則を検出し、正しい位置で磁化遷移が生ずるようにライト電流波形を予め調整をする。ドライバ3306は擬似ECLレベルに対応した信号を出力するドライバである。ドライバ3306からの出力は図示しないDE3005に送られ、プリアンプ3054を通してヘッド3051に送られ、ライトデータがディスク媒体3050上に記録される。
リードチャネル3032は、可変利得増幅器3311(以下、「VGA3311」と略記する。)、ローパスフィルタ3312(以下、「LPF3312」と略記する。)、AGC3317、アナログ/デジタル変換器3313(以下、「ADC3313」と略記する。)、周波数シンセサイザ3314、フィルタ3315、ソフト出力検出部3320、LDPC繰返復号部3322、同期信号検出部3321、ランレングス制限復号部3323(以下、「RLL復号部3323」と略記する。)、デスクランブラ3324とから構成されている。
VGA3311及びAGC3317は、図示しないプリアンプ3054から送られたデータのリード波形の振幅を調整する。AGC3317は理想的な振幅と実際の振幅を比較し、VGA3311に設定すべきゲインを決定する。LPF3312は、カットオフ周波数とブースト量を調整することができ、高周波ノイズの低減と部分応答(Partial Response。以下、「PR」と略記する。)波形への等化の一部を担う。LPF3312でPR波形への等化を行うが、ヘッドの浮上量変動、媒体の不均一性、モータの回転変動などの多くの要因により、アナログのLPFによる完全な等化は難しいので、後段に配置され、よりフレキシビリティに富んだフィルタ3315を用いて、再度PR波形への等化を行う。フィルタ3315は、そのタップ係数を適応的に調整する機能を有していてもよい。周波数シンセサイザ3314は、ADC3313のサンプリング用クロックを生成する。
ADC3313は、AD変換により直接同期サンプルを得る構成とした。なお、この構成の他に、AD変換により非同期サンプルを得る構成であってもよい。この場合は、ゼロ相リスタート部、タイミング制御部、及び補間フィルタをさらにADC3313の後段に設ければよい。非同期サンプルから同期サンプルを得る必要があり、これらのブロックがその役割を担う。ゼロ相リスタート部は初期位相を決定するためのブロックで、できるだけ早く同期サンプルを得るために用いられる。初期位相を決定した後は、タイミング制御部で理想的なサンプル値と実際のサンプル値を比較し、位相のずれを検出する。これを用いて補間フィルタのパラメータを決定することにより、同期サンプルを得ることができる。また、ADC3313は、非対称性と逆の入出力特性を有するように構成され、ヘッド3051において生じた振幅の非対称性を改善する。詳細は後述する。
ソフト出力検出部3320は、符号間干渉に伴う復号特性の劣化を回避するために、ビタビアルゴリズムの一種であるソフト出力ビタビアルゴリズム(Soft−Output Viterbi Algorithm。以下、「SOVA」と略記する。)が用いられる。すなわち、近年の磁気ディスク装置の記録密度の上昇に伴い、記録された符号間の干渉が大きくなり、復号特性が劣化するといった課題を解決するため、これを克服する方式として符号間干渉による部分応答を利用した最ゆう復号(Partial Response MaximumLikeihood。以下、「PRML」と略記する。)方式を用いる。PRMLは、再生信号の部分応答のゆう度を最大にする信号系列を求める方式である。
ソフト出力検出部3320としてSOVA方式が用いられている場合、軟判定値を出力する。例えば、SOVAの出力として、(−0.71、+0.18、+0.45、−0.45、−0.9)という軟判定値が出力されたとする。これらの値は、0である可能性が大きいか、1である可能性が大きいかを数値で表している。例えば、1番目の「−0.71」は1である可能性が大きいことを示しており、2番目の「+0.18」は0である可能性が大きいが1である可能性も小さくはないことを意味する。従来のビタビディテクタの出力はハード値であり、SOVAの出力を硬判定したものである。上記の例の場合、(1、0、0、1、1)である。ハード値は、0であるか、1であるかのみを表しており、どちらの可能性が高いかという情報が失われている。このためLDPC繰返復号部3322に軟判定値を入力する方が復号性能が向上する。
LDPC繰返復号部3322は、LDPC符号化されているデータ系列から、LDPC符号化前の系列に復元する役割を有する。復号化の方法としては、主に、sum−product復号法とmin−sum復号法があり、復号性能の面ではsum−product復号法が有利であるが、min−sum復号法はハードウェアによる実現が容易である特徴を持つ。LDPC符号を用いる実際の復号操作では、ソフト出力検出部3320とLDPC繰返復号部3322の間で繰り返し復号することにより、非常に良好な復号性能を得ることができる。このために実際はソフト出力検出部3320とLDPC繰返復号部3322を複数段配列した構成が必要になる。
同期信号検出部3321はデータの先頭に付加された同期信号(Sync Mark)を検出し、データの先頭位置を認識する役割を有する。RLL復号部3323は、LDPC繰返復号部3322から出力されたデータに対して、ライトチャネル3031のRLL符号化部3303の逆操作を行い、元のデータ系列に戻す。デスクランブラ3324は、ライトチャネル3031のスクランブラ3302の逆操作を行い、元のデータ系列に戻す。ここで生成されたデータはHDC3001に転送される。
これらの構成は、ハードウエア的には、任意のコンピュータのCPU、メモリ、その他のLSIで実現でき、ソフトウエア的にはメモリにロードされた通信機能のあるプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
ここで、図29のヘッド3051の入出力特性と、図30のADC3313に望まれる入出力特性について説明する。図31(a)は、図29のヘッド3051の入出力特性の例を示す図である。横軸は入力磁界Hin、縦軸は出力電圧Voutを示す。入力磁界は、Hin0_min〜Hin0_maxの範囲の値をとる。出力電圧は、ヘッド3051のMR素子に起因する非線形性がない場合、破線で図示するように、Vout0_min〜Vout0_maxの範囲の値となる。しかしながら、ヘッド3051のMR素子に起因する非線形性が存在する場合、実線で図示するように、出力電圧は、Vout0_min〜V’out0_maxの範囲の値となる。すなわち、原点を中心として、入出力特性が非対称となる。また、図31(a)は、正区間のうちの非線形区間3200において、入出力特性が非線形となることを示す。このため、入力電圧がVin0_maxの場合の出力電圧は、Vout0_maxとはならずにV’out0_maxとなる。図31(b)は、図30のLPF3312の出力特性の例を示す図である。また、図31(b)は、図31(a)に図示するヘッド3051の出力電圧のダイナミックレンジが、LPF3312によってさらに歪んだ特性となることを示す図である。横軸は入力磁界Hin、縦軸は出力電圧Voutを示す。入力磁界は、Hin0_min〜Hin0_maxの範囲の値をとる。
図31(c)は、図29のヘッド3051の出力波形の例を示す図である。横軸は時間、縦軸は出力電圧を示す。図31(c)は、0Vを中心として正区間と負区間とで非対称となることを図示している。すなわち、ヘッド3051により、振幅エネルギーが(Vout0_max−V’out0_max)だけ低減されたことを示す。そうすると、後段に存在する図示しないデータ検出の検出精度が劣化する。また、さらに後段に存在する図示しない誤り訂正回路における誤り訂正能力が劣化することとなる。なお、MR素子に起因する非線形性とは、図31(c)に図示するように、正区間におけるダイナミックレンジと負区間におけるダイナミックレンジとが非対称となることなどをいう。
図32(a)〜(b)は、図30のADC3313の入出力特性の例を示す図である。横軸は入力電圧Vin、縦軸は出力電圧Voutを示す。図32(a)〜(b)に示す出力電圧は、ADC3313におけるデジタル信号出力ではなく、ADC3313の内部における振幅調整されたアナログ信号の出力電圧とした。入力電圧は、Vin1_min〜Vin1_maxの範囲の値をとる。また、ヘッド3051のMR素子に起因する非線形性が存在する場合、実線で図示するように、出力電圧は、Vout1_min〜Vout1_maxの範囲の値となる。図32(a)は、図31(a)に図示するヘッド3051のMR素子に起因する非線形性を解消するために、ADC3313に、その逆特性に相当する特性を備えさせた場合を示す。また、図32(b)は、図31(b)に図示するヘッド3051のMR素子に起因する非線形性とLPF3312による歪みを解消するために、ADC3313に、その逆特性に相当する特性を備えさせた場合を示す。ここで、ヘッド3051とADC3313の間において電圧の変動がないと仮定した場合、図31(a)〜(b)と図32(a)〜(b)とに図示する電圧は、以下のような関係となる。
Vin1_max = V’out0_max
Vout1_max = Vout0_max
これらは、ヘッド3051に含まれるMR素子に起因する非線形性が解消されたことを意味する。いいかえると、図31(a)〜(b)のそれぞれの非線形区間3200における入出力特性の逆特性となる特性、すなわち、図32(a)〜(b)における非線形区間3300における特性をADC3313に備えさせることによって、MR素子に起因する非線形性を解消できる。図31(a)の非線形区間3200における入出力特性は、一般的に、次式のような双曲線正接関数(Hyperbolic Tangent)となることが知られている。
したがって、ADC3313の入出力特性としては、たとえば次式で示すような、双曲線正接関数の逆特性に相当する特性とすればよい。ここで、aは実数であり、ヘッド3051の特性により決定されてもよい。
図32(c)は、図32(b)の非線形区間3300における入出力特性を2つの1次関数で近似させた場合におけるADC3313の入出力特性の例を示す図である。図32(c)は、図32(b)と同様に、横軸は入力電圧、縦軸は出力電圧を示す。また、入力電圧は、Vin1_min〜Vin1_maxの範囲の値をとる。また、出力電圧は、Vout1_min〜Vout1_maxの範囲の値となる。前述のように、MR素子に起因する非線形性を解消するためには、ADC3313の入出力特性を双曲線正接関数と逆の特性とすればよい。しかし、一般的に、この特性を実現することは困難である。したがって、本発明の第4実施形態においては、図32(c)に図示するように、2つの1次関数で近似することとしている。具体的には、入力電圧がVin1a〜Vin1bの範囲にある場合は、第1の1次関数3330で表される入出力特性とする。また、入力電圧がVin1b〜Vin1_maxの範囲にある場合は、第2の1次関数3340で表される入出力特性とすればよい。
ここで、図32(c)に示す入出力特性を実現するADC3313の具体的な構成について説明する。図33は、図30のADC3313の構成例を示す図である。ADC3313は、破線で示す前置調整部3060と、離散化部3062とを含む。ここでは、アナログ信号を3ビットからなるデジタル信号に変換する場合について図示したが、本発明はこれに限定されない。
ADC3313は、入力部で入力されたアナログ信号の振幅が非線形区間に存在する場合、アナログ信号に対して振幅を調整しつつ、デジタル信号に変換して出力する。すなわち、前置調整部3060は、アナログ信号をデジタル信号に変換する前に、非線形区間における非線形性を打ち消すように、アナログ信号の振幅を調整する。具体的には、前置調整部3060は、非線形区間における入出力特性を双曲線正接関数の逆数の近似値とすることによって、非線形区間におけるアナログ信号の振幅を調整する。つぎに、離散化部3062は、前置調整部3060によって振幅が調整されたアナログ信号を3ビットのデジタル信号に変換して出力する。
前置調整部3060は、非線形区間に含まれる複数の部分区間において、複数の部分区間のうちの第1部分区間の入出力特性として、少なくとも1より大きい第1の傾きを有する第1の1次関数3330が設定される。また、複数の部分区間のうち、第1部分区間と連続する第2部分区間の入出力特性として、第1の傾きと異なる傾きを有する第2の1次関数3340が設定される。ここで、第1部分区間とは、たとえば、図32(c)に図示したVin1a〜Vin1bの区間をいう。また、第1部分区間と連続する第2部分区間とは、たとえば、図32(c)に図示したVin1b〜Vin1_maxの区間をいう。第2部分区間の入出力特性を図32(c)に図示するような入出力特性とする場合、第2の1次関数3340の傾きは第1の傾きより小さくなるように設定される。
具体的に説明する。前置調整部3060は、抵抗素子3400で代表される第1抵抗素子3064と第2抵抗素子3066と第3抵抗素子3068と第4抵抗素子3070と第5抵抗素子3072と第6抵抗素子3074と第7抵抗素子3076と第8抵抗素子3078と第9抵抗素子3080と、比較部3082とを含む。抵抗素子3400は、それぞれ直列に設置され、一定電圧を有する参照信号Vrefを入力として、順次、後段の抵抗素子に対し、それぞれ振幅調整された参照信号を出力する。つぎに、比較部3082は、複数の抵抗素子3400のそれぞれから出力された参照信号と、LPF3312から入力されたアナログ信号の振幅とをそれぞれ比較することによって、アナログ信号の振幅を調整する。すなわち、時間的に連続した値であるアナログ信号を各抵抗素子3400から出力された参照信号と比較し、その大小関係により、離散的な8つの信号を出力する。ここでの8つの信号はアナログ信号であるものの、プラスかマイナスのいずれかを示す一定の振幅をそれぞれ有する。
複数の抵抗素子3400は、それぞれの抵抗値を非均一な値とすることによって、それぞれの抵抗素子から出力される電圧の減少幅を変えている。具体的には、各抵抗素子に印加される参照信号の電圧Vrefは、それぞれの抵抗素子の出力において、抵抗値にしたがって低減されて出力される。すなわち、抵抗値が大きいほど電圧が低減され、小さいほど低減の度合いが少ない。言い換えると、複数の抵抗素子3400において、区間ごとに、それぞれの抵抗値を非均一な値とすることによって、各抵抗素子3400における電圧調整幅が異なり、これにより、入出力特性の傾きを区間ごとに変化させることができる。本発明の第4実施形態においては、非線形区間である第1部分区間と第2部分区間において、それぞれ対応する抵抗素子3400の抵抗値を他の抵抗素子の抵抗値と異ならせることによって、区間ごとの入出力特性の傾きを調整している。
たとえば、第1部分区間もしくは第2部分区間以外の区間に対応する抵抗素子を、第5抵抗素子3072と、第6抵抗素子3074と、第7抵抗素子3076と、第8抵抗素子3078と仮定し、これらの抵抗値をRと仮定する。また、第1部分区間に対応する抵抗素子を第3抵抗素子3068と第4抵抗素子3070と仮定する。また、第2部分区間に対応する抵抗素子を第2抵抗素子3066と仮定する。この場合、第1部分区間に対応する第3抵抗素子3068と第4抵抗素子3070の抵抗値は、第1部分区間もしくは第2部分区間以外の区間に対応する抵抗素子の抵抗値Rよりも小さい値、たとえば、R/3と設定すればよい。また、第2部分区間に対応する第2抵抗素子3066の抵抗値は、抵抗値Rよりも大きい値、たとえば、2Rと設定すればよい。なお、一般的に、両端の抵抗素子である第1抵抗素子3064と第9抵抗素子3080は、通常の抵抗素子の抵抗値Rの半分の値R/2に設定される。
図34(a)〜(c)は、図30のソフト出力検出部3320の出力信号の特性の例を示す図である。各図において、縦軸はビット誤り率(Bit Error Rate)、横軸は信号対ノイズ比(Signal to Noise Ratio)を示す。図34(a)は、図29のヘッド3051において入出力特性に5%の非対称性が存在した場合におけるソフト出力検出部3320の第1ビット誤り率特性3350と、本発明の第4実施形態を適用した場合の第2ビット誤り率特性3360を示す図である。図34(a)は、さらに、前述の非対称性を理想的に解消できた場合、もしくは、図29のヘッド3051において入出力特性に非対称性が存在しなかった場合における、第3ビット誤り率特性3370を示す図である。5%の非対称性とは、正区間におけるダイナミックレンジV1が負区間におけるダイナミックレンジV2の約90%(V1=V2×(1−0.05)/(1+0.05)≒0.9×V2)であることを意味する。図34(a)の第2ビット誤り率特性3360に図示するように、本発明の第4実施形態を適用することによって、ビット誤り率特性を改善できる。たとえば、第2ビット誤り率特性3360に示されるように、ビット誤り率が10−5における所望SNRは、本発明の第4実施形態を適用しない第1ビット誤り率特性3350にくらべ、0.1dB程度改善されている。
一般的に、ハードディスクをはじめとする記憶装置の分野において、ビット誤り率を0.1dB程度改善するためには、通常、1世代程度の技術革新が必要であることが知られている。したがって、本発明の第4実施形態による0.1dBものビット誤り率の改善は、当業者にとって、顕著な効果であることは言うまでもない。
図34(b)は、図29のヘッド3051において入出力特性に10%の非対称性が存在した場合におけるビット誤り率特性を示す図である。また、図34(c)は、図29のヘッド3051において入出力特性に15%の非対称性が存在した場合におけるビット誤り率特性を示す図である。図34(b)、図34(c)の第2ビット誤り率特性3360に図示するように、図34(a)の場合と同様に、本発明の第4実施形態によって振幅の非対称性を低減し、また、ビット誤り率を顕著に改善できる。
以上、本発明を第4実施形態をもとに説明した。この第4実施形態は例示であり、実施形態相互の組み合わせ、または、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
本第4実施形態によれば、アナログデジタル変換部において、アナログ信号の振幅を調整することによって、磁気抵抗素子において発生した振幅の非線形性を低減できる。また、磁気抵抗素子において発生した振幅の非線形性を低減することによって、誤り訂正復号後の誤り特性を顕著に改善できる。また、アナログデジタル変換部に含まれる複数の抵抗素子の抵抗値をそれぞれ設定するだけで、アナログ信号の振幅の非対称性の低減化を小規模かつ安定性の高い回路で実現できる。また、磁気抵抗素子において発生した振幅の非対称性による影響を低減することによって、より高速に記憶システムにアクセスすることができる。また、余分なハードウェアを搭載する必要がなくなるので、低規模な半導体集積回路を実現できる。
次に、本発明の第4実施形態の変形例を示す。まず概要を述べる。本変形例は、ヘッドに含まれるMR素子に起因する振幅の非対称性を低減する記憶システムに関する。また、本変形例においては、磁気ディスク装置3100は、図29と同様の構成をとる。また、R/Wチャネル3003は、図30と同様の構成をとる。本発明の第4実施形態の違いは、図30のADC3313が図35の構成をとる点である。すなわち、本変形例は、記憶システムに含まれるアナログデジタル変換器における抵抗値を可変とすることを特徴とする。なお、前述した第4実施形態と共通する部分については同一の符号を付して説明を簡略化する。
図35は、図30のADC3313の構成の変形例を示す図である。ADC3313は、前置調整部3060と、離散化部3062と、抵抗値制御部3086とを含む。抵抗値制御部3086は、外部からの指示に応じて、前置調整部3060に含まれる抵抗素子3400の抵抗値を制御する。「外部からの指示」とは、ADC3313以外の回路からの指示を含み、たとえば、LDPC繰返復号部3322からの指示であってもよい。この場合、LDPC繰返復号部3322における誤り訂正結果が通知され、その結果が良い場合は、前置調整部3060の抵抗値を変えず、逆に悪い場合は、抵抗値を変える制御を行なえばよい。また、抵抗値を変化させるべき抵抗素子と、変化後の抵抗値について、図示しないインタフェースを介してされたユーザの指示に応じて、抵抗値制御部3086は前置調整部3060に対し指示してもよい。この場合、抵抗値制御部3086は、指定された抵抗素子3400に対して、指定された抵抗値となるように前置調整部3060を制御する。
図36は、図33の抵抗素子3400の構成の変形例を示す図である。抵抗素子3400は、調整抵抗素子3084で代表される第1調整抵抗素子3084aと、第2調整抵抗素子3084bと、第n調整抵抗素子3084nと、切替部3088で代表される第1切替部3088aと、第m切替部3088mとを含む。nは2以上、mは1以上の整数である。それぞれの切替部3088は、抵抗値制御部3086の指示にもとづいて、スイッチをON、もしくはOFFにする。例を用いて具体的に説明する。たとえば、すべての調整抵抗素子3084の抵抗値が2Rであると仮定する。この場合、いずれの切替部3088もOFFである場合、抵抗素子3400における抵抗値は2Rとなる。また、いずれか1つの切替部3088のみONである場合、抵抗素子3400における抵抗値はRとなる。また、k個の切替部3088がONである場合、抵抗素子3400における抵抗値は2R/kとなる。いいかえると、非線形区間以外の区間に対応する抵抗素子3400に対しては、抵抗値制御部3086はいずれか1つの切替部3088をONとし、その抵抗値をRとする。また、非線形区間に対応する抵抗素子3400に対しては、抵抗値制御部3086は0、もしくは2つ以上の切替部3088をONとし、その抵抗値をR以外の値とすればよい。なお、前置調整部3060に含まれる複数の抵抗素子のうち、いずれか1つ以上の抵抗素子のみを図36に示す構成としてもよい。また、調整抵抗素子3084の抵抗値は全て同じでなくともよい。これらの場合であっても、抵抗値制御部3086による切替部3088の制御を適宜変更することによって同様の効果を得られることは言うまでもない。
図37は、図33の前置調整部3060の構成の変形例を示す図である。図37に示す前置調整部3060は、図33に示す前置調整部3060に、参照電圧制御部3090が付加された構成をとる。なお、前述した図33に示す前置調整部3060と共通する部分については同一の符号を付して説明を簡略化する。参照電圧制御部3090は、複数の抵抗素子のうち少なくとも1以上の抵抗素子の入力端に接続され、入力端のそれぞれに対し、対応する参照電圧を印加することによって、前記複数の抵抗素子のそれぞれから出力される参照信号の振幅を調整する。本変形例においては、複数の抵抗素子は、同一の抵抗値を有してもよい。また、参照電圧制御部3090は、複数の抵抗素子のうち非線形区間に対応する抵抗素子の入力端に対し、非線形区間以外の区間に対応する抵抗素子の入力端とは異なる参照電圧を印加することによって、非線形区間における非線形性を調整してもよい。ここで、「対応する参照電圧」とは、抵抗素子ごとに対応づけられて決定された参照電圧を含み、予め設定されていてもよく、また、磁気抵抗素子の品質にしたがって動的に変化してもよい。この態様によると、参照電圧制御部によって柔軟に参照信号の振幅を制御できる。また、アナログデジタル変換部に含まれる複数の抵抗素子の抵抗値を同一にできるので回路コストが低減できる。また、アナログ信号の振幅の非対称性の低減化を小規模な回路で実現できる。
以上、本発明の変形例を第4実施形態をもとに説明した。この変形例は例示であり、実施形態相互の組み合わせ、または、それらの各構成要素や各処理プロセスの組合せにいろいろな他の変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
本第4実施形態の変形例によれば、前述した第4実施形態と同様の効果を得ることができる。また、抵抗素子の抵抗値を可変とすることによって、柔軟に振幅の非線形性の改善を図れる。
本第4実施形態において、ヘッド3051の入出力特性のうち、正区間において非線形区間が存在するとして説明した。しかしながらこれに限らず、負区間に非線形性が存在してもよい。この場合であっても、非線形区間に対応する抵抗素子3400の抵抗値を他の区間の抵抗値と異ならせることによって、同様の効果を得ることができる。また、R/Wチャネル3003は、1つの半導体基板上に一体集積化されてもよい。
(第5実施形態)
第5実施形態は、デジタル信号の復号技術に関し、特に、記憶媒体に記憶されるデータに対して誤りを訂正する/復号する復号装置、復号方法、および記憶システムに関する。
第5実施形態に関する背景技術について説明する。
近年、ハードディスクを用いた記憶装置は、パーソナルコンピュータ、ハードディスクレコーダー、ビデオカメラ、携帯電話など、さまざまな分野において必須の装置となりつつある。ハードディスクを用いた記憶装置は、適用される分野によって求められる仕様もさまざまである。たとえば、パーソナルコンピュータに搭載するハードディスクには、高速性、大容量性が求められる。高速性、大容量性を向上するためには、訂正能力の高い誤り訂正符号化をする必要がある。しかしながら、高速化が進むほど単位時間あたりに扱うデータの量が増えるため、単位時間あたりの誤りも比例して増大する。そうすると、誤り訂正能力が低い誤り訂正方式を用いる場合、ハードディスクに対する再読込みが発生するため、ハードディスクへのアクセスに要する時間が増大し、高速化のボトルネックとなる。
一般的に、ハードディスクから読み出したデータ系列には、符号間干渉が存在する。従来は、白色雑音を含むデータ系列を正確に検出できる軟判定ビタビアルゴリズム(以下、「SOVA」と表記する。)を用いることによって、符号間干渉を除去したデータ系列を検出していた(たとえば、特開2003−228923号公報、特開2004−139664号公報参照。)。しかしながら、ハードディスクから読み出したデータ系列は、有色雑音をも含む場合がある。このような場合、SOVAによってデータ検出を行なったとしても符号間干渉の除去が正しく行なわれず、後段において実行される復号を行なったとしても、正確な復号が期待できなかった。従来、このような課題に対して、過去の信号や雑音に依存して発生する雑音、すなわち、有色雑音を予測してデータ系列を検出するDDNP(Data Dependent Noise Predictive)−SOVAがデータ検出アルゴリズムとして用いられていた(たとえば、「Aleksandar Kavcic、et al、「The Viterbi Algorithm and Markov Noise Memory」、IEEE Transactions on Information Theory、Vol.46、No.1、p.291−301、Jun. 2000」参照)。
本発明者はこうした状況下、以下の課題を認識するに至った。すなわち、ハードディスクからデータ系列を読み出した段階においては、データ系列に含まれる雑音が有色雑音であるか白色雑音であるか、もしくは、双方の雑音を含んでいるのかを判定することが難しいといった課題である。このため、いずれかの検出アルゴリズムを用いてデータ検出を行なった後に復号したとしても、その復号特性が不安定となってしまうといった課題である。
本発明の第5実施形態はこうした状況に鑑みてなされたものであり、その総括的な目的は、雑音特性によらず、復号特性を向上できる復号装置、復号方法、および記憶システムを提供することにある。
上記課題を解決するために、本発明の第5実施形態のある態様の復号装置は、データ系列を入力する入力部と、入力部によって入力されたデータ系列から複数の異なる信号系列を生成する生成部と、生成部によって生成された複数の信号系列のうち1の信号系列を選択する選択部と、選択部によって選択された信号系列を復号する復号部と、復号部によって復号された信号系列の復号誤りの程度を検出する検出部と、検出部によって検出された誤りの程度が所定の許容度以内であるか否かを判定する判定部と、を備える。判定部において、誤りの程度が所定の許容度以内であると判定された場合は、復号部によって復号された信号系列の出力が指示される。また、判定部において、誤りの程度が所定の許容度を超えると判定された場合は、選択部にて、1の信号系列とは異なる別の信号系列の選択が指示され、選択部にて新たに選択された信号系列に対して復号部以下による処理が再実行される。
ここで、「複数の異なる信号系列」とは、所定の信号系列に対し異なるデータ検出方法によって生成された複数の信号系列などを含む。また、「復号誤りの程度を検出する」とは、誤りが訂正できているか否かのチェックや、CRCなどの誤り検出によって誤りの有無を判定することなどを含む。また、「誤りの程度が所定の許容度以内」とは、正しい復号結果が得られたことなどを含み、たとえば、誤りが訂正されており、かつ、CRCなどの誤り検出によって誤りがないと判定されることなどを含む。「誤りの程度が所定の許容度を超える」とは、正しい復号結果が得られなかったことなどを含み、たとえば、誤りが訂正されておらず、また、CRCなどの誤り検出によって誤りが残存していると判定されることなどを含む。「異なる別の信号系列の選択」とは、すでに選択された信号系列とは異なる信号系列の選択を含む。また、「復号部以下による処理」とは、復号部と検出部と判定部による処理を含む。この態様によると、誤りが所定の許容度以内となる復号系列となるまで、復号処理を繰り返すことによって、復号部における復号性能を向上できる。また、復号性能を安定化できる。
選択部は、判定部によって誤りの程度が許容度以内であると判定される確率が高い信号系列を優先して選択してもよい。また、選択部は、生成部によって生成された複数の信号系列のうち、信号に依存して発生する雑音を予測する機能を有するビタビアルゴリズムを用いて検出されたデータ系列に対応する信号系列を優先して選択してもよい。ここで、「信号に依存して発生する雑音」とは、過去の信号や雑音に依存して発生する雑音などを含む。この態様によると、誤りの程度が許容度以内であると判定される確率が高い信号系列を優先して選択することによって、復号部以下の所定の処理における繰り返し実行しなければならない回数を低減できる。
入力部は、それぞれ異なるデータ系列を生成する第1入力部と第2入力部とを含んでもよい。生成部は、第1入力部と、第2入力部とから入力されたデータ系列のいずれか一方のデータ系列、もしくは、双方のデータ系列から、1以上の信号系列を生成してもよい。生成部は、第1入力部と第2入力部によってそれぞれ入力された複数のデータ系列のうちのデータ系列であって、信号に依存して発生する雑音を予測する機能を有する第1ビタビアルゴリズムによって検出されたデータ系列、および/または、第1ビタビアルゴリズムとは異なる機能を有する第2ビタビアルゴリズムによって検出されたデータ系列をもとに、信号系列を生成してもよい。この態様によると、復号の対象となる候補を複数生成できる。複数の候補を生成することにより、復号の確実性を向上できる。
入力部は、軟判定値化されたデータ系列を入力し、生成部は、入力部によって入力されたデータ系列を硬判定値化することによって、信号系列を生成してもよい。この態様によると、簡易な構成で復号系列を生成できる。また、生成部は、入力部によって入力されたデータ系列のうち、所定の長さ以上の区間において、所定のしきい値より小さい絶対値を有する軟判定データが連続している場合であって、区間において連続している軟判定データの個数が所定の個数より多い場合、連続している軟判定データの符号を反転した後に、硬判定値化することによって、もしくは、前記連続している軟判定データを硬判定値化した後に硬判定されたデータを論理反転することによって、信号系列を生成してもよい。また、生成部は、入力部によって入力されたデータ系列に含まれる複数の軟判定データのうち、所定の長さ以上の区間において、隣接する軟判定データの符号がそれぞれ異なる場合、区間に対応する軟判定データの符号を反転した後に、硬判定値化することによって、もしくは、区間に対応する軟判定データを硬判定値化した後に硬判定されたデータを論理反転することによって、信号系列を生成する。また、生成部は、入力部によって入力されたデータ系列に含まれる複数の軟判定データのうち、所定のしきい値より小さい絶対値を有する軟判定データの符号を反転した後に、硬判定値化することによって、もしくは、所定のしきい値より小さい絶対値を有する軟判定データを硬判定値化した後に硬判定されたデータを論理反転することによって、信号系列を生成してもよい。
ここで、「軟判定値」とは、2値より大きい多値より表される値を含み、また、信頼度を含む。信頼度とは、データの確からしさを示し、軟判定値の絶対値で表現してもよい。「軟判定データの符号を反転」とは、軟判定データに(−1)を乗じることなどを含み、また、軟判定データの硬判定値を論理反転することなどを含む。また、「隣接する軟判定データの符号がそれぞれ異なる場合」とは、複数の軟判定データが、交互に正と負とを示す軟判定データであることを含み、正を示す符号ビットと負を示す符号ビットとが交互に軟判定データに含まれていることを含む。この態様によると、信頼性の低い軟判定値に対応する硬判定値を逆方向に判定させることによって、復号特性を向上できる。
また、生成部は、入力部によって入力された複数のデータ系列のうちの2つのデータ系列であって、一方のデータ系列の硬判定値をもとに、他方のデータ系列の硬判定値を修正することによって、信号系列を生成してもよい。また、生成部は、第1入力部と第2入力部とによって入力された複数のデータ系列のうちの2つのデータ系列であって、信号に依存して発生する雑音を予測する機能を有する第1ビタビアルゴリズムによって検出されたデータ系列と、第1ビタビアルゴリズムとは異なる機能を有する第2ビタビアルゴリズムによって検出されたデータ系列のいずれか一方の硬判定値をもとに、他方のデータ系列の硬判定値を修正することによって、信号系列を生成してもよい。また、生成部は、第1入力部と第2入力部とによって入力された複数のデータ系列のうちの2つのデータ系列であって、一方のデータ系列に含まれる第1データの硬判定値と、他方のデータ系列に含まれるデータであって前記第1データと対応する位置に存在する第2データの硬判定値とが異なる場合、一方のデータ系列に含まれる第1データを、第2データに置換えることによって、一方のデータ系列の硬判定値を修正してもよい。また、生成部は、第1入力部と第2入力部とによって入力された複数のデータ系列のうちの2つのデータ系列であって、一方のデータ系列に含まれる第1データの硬判定値と、他方のデータ系列に含まれるデータであって前記第1データと対応する位置に存在する第2データの硬判定値とが異なる場合であって、かつ、第2データの軟判定値の絶対値と第1データの軟判定値の絶対値との差が所定のしきい値より大きい場合、一方のデータ系列に含まれる第1データを、第2データに置換えることによって、一方のデータ系列の硬判定値を修正してもよい。この態様によると、複数の硬判定系列を互いに修正することによって、双方の雑音特性に強い信号系列を生成できる。復号特性を向上できる。また、信頼性の低い軟判定値に対応する硬判定値を逆方向に判定させることによって、復号特性を向上できる。
本発明の第5実施形態の別の態様は、復号方法である。この方法は、データ系列を入力するステップと、入力したデータ系列から複数の異なる信号系列を生成するステップと、生成された複数の信号系列のうち1の信号系列を選択するステップと、選択された信号系列を復号するステップと、を備え、選択するステップは、復号するステップにおいて復号された信号系列の誤りの程度が所定のしきい値より小さくなるまで、順次、すでに選択した信号系列とは異なる信号系列を選択し、復号するステップ以下の処理が繰り返し実行される。ここで、「誤りの程度が所定のしきい値より小さくなる」とは、正しい復号結果が得られたことなどを含み、たとえば、誤りが訂正されており、かつ、CRCなどの誤り検出によって誤りがないと判定されることなどを含む。この態様によると、この態様によると、誤りが所定の許容度以内となる復号系列となるまで、復号処理を繰り返すことによって、復号部における復号性能を向上できる。また、復号性能を安定化できる。
本発明の第5実施形態のさらに別の態様は、記憶システムである。この記憶システムは、データを記憶装置に書き込むライトチャネルと、記憶装置に記憶されているデータを読み出すリードチャネルとを備える信号記憶システムであって、ライトチャネルは、データをリードソロモン符号化する符号化部と、符号化部で符号化されたデータを記憶装置に書き込む書き込み部と、を備え、リードチャネルは、記憶装置から出力されたアナログ信号を入力する入力部と、入力部から入力されたアナログ信号をデジタル信号に変換して出力するアナログデジタル変換部と、アナログデジタル変換部から出力されたデジタル信号の尤度を計算して軟判定値を出力するソフト出力検出部と、ソフト出力検出部から出力されたデータを復号する、符号化部に対応した、復号部と、を備える。復号部は、ソフト出力検出部から出力されたデータを入力する入力部と、入力部によって入力されたデータから複数の異なる信号系列を生成する生成部と、生成部によって生成された複数の信号系列のうち1の信号系列を選択する選択部と、選択部によって選択された信号系列を復号する復号部と、復号部によって復号された信号系列の復号誤りの程度を検出する検出部と、検出部によって検出された誤りの程度が所定の許容度以内であるか否かを判定する判定部と、を有する。判定部において、誤りの程度が所定の許容度以内であると判定された場合は、復号部によって復号された信号系列の出力が指示され、判定部において、誤りの程度が所定の許容度を超えると判定された場合は、選択部にて1の信号系列とは異なる別の信号系列の選択が指示され、選択部にて新たに選択された信号系列に対して検出部以下による処理が再実行される。本発明のさらに別の態様は、復号装置である。当該装置は、1つの半導体基板上に一体集積化されていてもよい。この態様によると、安定して高い復号能力を備える復号部を具備することによって、より高速に記憶システムにアクセスすることができる。また、余分なハードウェアを搭載する必要がなくなるので、低規模な半導体集積回路を実現できる。
本発明の第5実施形態のさらに別の態様もまた、記憶システムである。この記憶システムは、記憶システムにおいて、当該記憶システムは、さらに、データを記憶する記憶装置と、記憶装置への書き込みと、記憶装置からの読み出しとを制御する制御部と、を有する。リードチャネルは、制御部の指示に従って、記憶装置に記憶されているデータを読み出し、ライトチャネルは、制御部の指示に従って、符号化されたデータを記憶装置に書き込む。本発明のさらに別の態様は、復号装置である。当該装置は、1つの半導体基板上に一体集積化されていてもよい。この態様によると、安定して高い復号能力を備える復号部を具備することによって、より高速に記憶システムにアクセスすることができる。また、余分なハードウェアを搭載する必要がなくなるので、低規模な半導体集積回路を実現できる。
本発明の第5実施形態のさらに別の態様は、復号装置である。復号装置は、データ系列を生成する第1入力部と、前記第1入力部とは異なるデータ系列を生成する第2入力部とを含む入力部と、入力部によって入力されたデータ系列から複数の異なる信号系列を生成する生成部と、生成部によって生成された複数の信号系列のうち、1の信号系列を選択する選択部と、選択部によって選択された信号系列を復号する復号部と、復号部によって復号された信号系列の復号誤りの程度を検出する検出部と、検出部によって検出された誤りの程度が所定の許容度以内であるか否かを判定する判定部と、を備える。判定部において、誤りの程度が前記所定の許容度以内であると判定された場合は、前記復号部によって復号された信号系列の出力が指示される。
判定部において、誤りの程度が前記所定の許容度を超えると判定された場合は、選択部にて前記1の信号系列とは異なる別の信号系列の選択が指示され、選択部にて新たに選択された信号系列に対して復号部以下による処理が再実行されてもよい。選択部は、判定部によって誤りの程度が許容度以内であると判定される確率が高い信号系列を優先して選択してもよい。生成部は、入力された信号系列に含まれるビットの硬判定値化をする際に、他ビットの信頼度を参照してもよい。生成部は、入力された信号系列に含まれたあるビットの硬判定値化をする際に、当該ビットの信頼度と、信号系列に含まれた当該ビット以外の他のビットの信頼度とを参照してもよい。生成部は、硬判定値化する際に、第1入力部からの出力信号における信頼度と、第2入力部からの出力信号における信頼度とを参照してもよい。生成部は、ビットの硬判定値を決定する際に、第1入力部からの出力信号における信頼度と、第2入力部からの出力信号における信頼度とを参照してもよい。生成部は、ビットの硬判定値を決定する際に、第1入力部からの出力信号と、第2入力部からの出力信号において、互いに対応するビットの信頼度を比較してもよい。選択部は、第1入力部からの出力と第2入力部からの出力とを選択する際に、第1入力部からの出力を優先的に選択してもよい。
復号装置は、ディスクに記録された記録情報を読み取って、前記入力部に出力する読取部と、前記読取部における読取り状況を判定する読取状況判定部をさらに備えてもよい。選択部は、前記読取状況判定部において判定された状況に基づいて、第1入力部からの出力と第2入力部からの出力とのいずれを優先するかを決定してもよい。
なお、以上の構成要素の任意の組合せや本発明の構成要素や表現を方法、装置、システムなどの間で相互に置換したものもまた、本発明の態様として有効である。
本発明の第5実施形態を具体的に説明する前に、まず本第5実施形態にかかる記憶システム4100について概要を述べる。本第5実施形態にかかる記憶システム4100は、ハードディスクコントローラと、磁気ディスク装置と、リードチャネルとライトチャネルを含むリードライトチャネルと、を有する。リードチャネルにおいては、復号処理として、符号間干渉を除去するためのデータ検出処理や、検出したデータ系列に含まれる誤りを訂正/検出するRS復号などを行う。データ検出処理においては、一般的に、白色雑音に対して高い検出性能を発揮するSOVAや、有色雑音に対して高い検出性能を発揮するDDNP−SOVAなどが用いられる。
しかし、磁気ディスク装置からデータ系列を読み出した段階においては、データ系列に含まれる雑音が有色雑音であるか白色雑音であるか、もしくは、双方の雑音を含んでいるのかを判定することが難しいといった課題がある。このため、いずれかの検出アルゴリズムを用いてデータ検出を行なったとしても、符号間干渉の除去が正しく行なわれない場合がある。このような場合、後段においてデータ系列に含まれる誤りを訂正する復号処理をしたとしても、その復号特性は不安定となる。したがって、本発明の第5実施形態においては、少なくとも、SOVAとDDNP−SOVAとを用いて検出された複数のデータ系列を予め生成し、順次、データ系列の復号処理を実行することによって復号性能を安定させる。また、復号処理において、復号系列に含まれる誤りが少なくなるようなデータ系列を優先して復号対象とすることによって、復号処理を高速化する。詳細は後述する。
以下、図面を用いて、本発明の第5実施形態について詳細に説明する。
図38は、本発明の第5実施形態に係る記憶システム4100の構成例を示す図である。図38の記憶システム4100は、大きく分けて、ハードディスクコントローラ4001(以下、「HDC4001」と略記する。)、中央処理演算装置4002(以下、「CPU4002」と略記する。)、リードライトチャネル4003(以下、「R/Wチャネル4003」と略記する。)、ボイスコイルモータ/スピンドルモータ制御部4004(以下、「VCM/SPM制御部4004」と略記する。)、及びディスクエンクロージャ4005(以下、「DE4005」と略記する。)とから構成される。一般に、HDC4001、CPU4002、R/Wチャネル4003、及びVCM/SPM制御部4004は同一の基板上に構成される。
HDC4001は、HDC4001全体を制御する主制御部4011、データフォーマット制御部4012、誤り訂正符号化制御部4013(以下、「ECC制御部4013」と略記する。」)、及びバッファRAM4014を含む。HDC4001は、図示しないインタフェース部を介してホストシステムと接続される。また、R/Wチャネル4003を介して、DE4005と接続されており、主制御部4011の制御により、ホストとDE4005の間でデータ転送処理を実行する。このHDC4001には、R/Wチャネル4003で生成されるリードリファレンスクロック(RRCK)が入力される。データフォーマット制御部4012は、ホストから転送されたデータをディスク媒体4050上に記録するのに適したフォーマットに変換し、逆に、ディスク媒体4050から再生されたデータをホストに転送するのに適したフォーマットに変換する。ディスク媒体4050は、たとえば、磁気ディスクを含む。バッファRAM4014は、ホストから転送されたデータを一時的に保存し、適切なタイミングでR/Wチャネル4003に転送する。逆に、R/Wチャネル4003から転送されたリードデータを一時的に保存し、ECC復号処理などの終了後、適切なタイミングでホストに転送する。
ECC制御部4013は、ディスク媒体4050から再生されたデータに含まれる誤りの訂正及び検出を可能にするために、記録するデータを情報シンボルとして、冗長シンボルを付加する。また、ECC制御部4013は、復号処理として、再生されたデータ系列に誤りが生じているかを判定し、誤りがある場合には訂正処理を実行する。誤りを訂正できなかった場合、あるいは、CRC(Cyclic Redundancy Code)などによって誤り検出された場合、その程度によって、他のデータ系列を対象として復号処理を行なう。詳細は後述する。なお、誤りが訂正できるシンボル数は有限であり、冗長データの長さに関係する。即ち、多くの冗長データを付加するとフォーマット効率が悪化するため、誤り訂正可能シンボル数とはトレードオフとなる。ECCとしてリードソロモン(RS)符号を利用して誤り訂正を実行する場合、(冗長シンボル数/2)個までの誤りを訂正できる。
CPU4002は、フラッシュROM4021(以下、「FROM4021」と略記する。)、及びRAM4022を含み、HDC4001、R/Wチャネル4003、VCM/SPM制御部4004、及びDE4005と接続される。FROM4021には、CPU4002の動作プログラムが保存されている。
R/Wチャネル4003は、ライトチャネル4031とリードチャネル4032とに大別され、HDC4001との間で記録するデータ及び再生されたデータの転送処理を実行する。また、R/Wチャネル4003は、DE4005と接続され、記録信号の送信処理、再生信号の受信処理を実行する。詳細は後述する。
VCM/SPM制御部4004は、DE4005中のボイスコイルモータ4052(以下、「VCM4052」と略記する。)とスピンドルモータ4053(以下、「SPM4053」と略記する。)を制御する。
DE4005は、R/Wチャネル4003と接続され、記録信号の受信処理、再生信号の送信処理を実行する。またDE4005は、VCM/SPM制御部4004と接続されている。DE4005は、ディスク媒体4050、ヘッド4051、VCM4052、SPM4053、及びプリアンプ4054等を有している。図38の記憶システム4100においては、ディスク媒体4050が1枚であり、且つヘッド4051がディスク媒体4050の一方の面側のみに配置されている場合を想定しているが、複数のディスク媒体4050が積層配置された構成であってもよい。また、ヘッド4051は、ディスク媒体4050の各面に対応して設けられるのが一般的である。R/Wチャネル4003により送信された記録信号は、DE4005内のプリアンプ4054を経由してヘッド4051に供給され、ヘッド4051によりディスク媒体4050に記録される。逆に、ヘッド4051によりディスク媒体4050から再生された信号は、プリアンプ4054を経由してR/Wチャネル4003に送信される。DE4005内のVCM4052は、ヘッド4051をディスク媒体4050上の目標位置に位置決めするために、ヘッド4051をディスク媒体4050の半径方向に移動させる。また、SPM4053は、ディスク媒体4050を回転させる。
ここで、図39を用いて、R/Wチャネル4003について説明する。図39は、図38のR/Wチャネル4003の構成を示す図である。R/Wチャネル4003は、大きく分けて、ライトチャネル4031とリードチャネル4032から構成される。
ライトチャネル4031は、バイトインターフェース部4301、スクランブラ4302、ランレングス制限符号化部4303(以下、「RLL符号化部4303」と略記する。)、書き込み補償部4305(以下、「ライトプリコン部4305」と略記する。)、ドライバ4306を含む。
バイトインターフェース部4301では、HDC4001から転送されたデータが入力データとして処理される。メディア上に書き込むデータは1セクタ単位でHDC4001から入力される。このとき1セクタ分のユーザデータ(512バイト)だけでなく、HDC4001によって付加されたECCバイトも同時に入力される。データバスは通常1バイト(8ビット)であり、バイトインターフェース部4301により入力データとして処理される。スクランブラ4302はライトデータをランダムな系列に変換する。同じ規則のデータの繰り返しは、リード時における検出性能に悪影響を与え、エラーレートを悪化させるのを防ぐためである。
RLL符号化部4303は0の最大連続長を制限するためのものである。0の最大連続長を制限することによりリード時の図示しないタイミング制御部、自動利得制御部4317(以下、「AGC4317」と略記する。)などに適したデータ系列にする。
ライトプリコン部4305は、メディア上の磁化遷移の連続による非線形歪を補償する回路である。ライトデータから補償に必要な規則を検出し、正しい位置で磁化遷移が生ずるようにライト電流波形を予め調整をする。ドライバ4306は擬似ECLレベルに対応した信号を出力するドライバである。ドライバ4306からの出力は図示しないDE4005に送られ、プリアンプ4054を通してヘッド4051に送られ、ライトデータがディスク媒体4050上に記録される。
リードチャネル4032は、可変利得増幅器4311(以下、「VGA4311」と略記する。)、ローパスフィルタ4312(以下、「LPF4312」と略記する。)、AGC4317、アナログ/デジタル変換器4313(以下、「ADC4313」と略記する。)、周波数シンセサイザ4314、フィルタ4315、ソフト出力検出部4320、同期信号検出部4321、ランレングス制限復号部4323(以下、「RLL復号部4323」と略記する。)、デスクランブラ4324とから構成されている。
VGA4311及びAGC4317は、図示しないプリアンプ4054から送られたデータのリード波形の振幅を調整する。AGC4317は理想的な振幅と実際の振幅を比較し、VGA4311に設定すべきゲインを決定する。LPF4312は、カットオフ周波数とブースト量を調整することができ、高周波ノイズの低減と部分応答(Partial Response。以下、「PR」と略記する。)波形への等化の一部を担う。LPF4312でPR波形への等化を行うが、ヘッドの浮上量変動、媒体の不均一性、モータの回転変動などの多くの要因により、アナログのLPFによる完全な等化は難しいので、後段に配置され、よりフレキシビリティに富んだフィルタ4315を用いて、再度PR波形への等化を行う。フィルタ4315は、そのタップ係数を適応的に調整する機能を有していてもよい。周波数シンセサイザ4314は、ADC4313のサンプリング用クロックを生成する。
ADC4313は、AD変換により直接同期サンプルを得る構成とした。なお、この構成の他に、AD変換により非同期サンプルを得る構成であってもよい。この場合は、ゼロ相リスタート部、タイミング制御部、及び補間フィルタをさらにADC4313の後段に設ければよい。非同期サンプルから同期サンプルを得る必要があり、これらのブロックがその役割を担う。ゼロ相リスタート部は初期位相を決定するためのブロックで、できるだけ早く同期サンプルを得るために用いられる。初期位相を決定した後は、タイミング制御部で理想的なサンプル値と実際のサンプル値を比較し、位相のずれを検出する。これを用いて補間フィルタのパラメータを決定することにより、同期サンプルを得ることができる。
ソフト出力検出部4320は、符号間干渉に伴う復号特性の劣化を回避するために、ビタビアルゴリズムの一種であるSOVAなどを用いて、データ系列を検出する。一般的に、近年の磁気ディスク装置の記録密度の上昇に伴い、記録された符号間の干渉が大きくなり、これに応じて復号特性が劣化する。これを解決するため、これを克服する方式として符号間干渉による部分応答を利用した最ゆう復号(Partial Response MaximumLikeihood。以下、「PRML」と略記する。)方式を用いる。PRMLは、再生信号の部分応答のゆう度を最大にする信号系列を求める方式である。また、検出されたデータ系列を用いて、復号対象となる信号系列を複数生成する。詳細は後述する。
ソフト出力検出部4320としてSOVA方式が用いられている場合、軟判定値を出力する。例えば、SOVAの出力として、(−0.71、+0.18、+0.45、−0.45、−0.9)という軟判定値が出力されたとする。これらの値は、0である可能性が大きいか、1である可能性が大きいかを数値で表している。例えば、1番目の−0.71は1である可能性が大きいことを示しており、2番目の+0.18は0である可能性が大きいが1である可能性も小さくはないことを意味する。従来のビタビディテクタの出力はハード値であり、SOVAの出力を硬判定したものである。上記の例の場合、(1、0、0、1、1)である。ハード値は、0であるか、1であるかのみを表しており、どちらの可能性が高いかという情報が失われている。このためLDPC繰返復号部4322に軟判定値を入力する方が復号性能が向上する。
RLL復号部4323は、ソフト出力検出部4320から出力されたデータに対して、ライトチャネル4031のRLL符号化部4303の逆操作を行い、元のデータ系列に戻す。デスクランブラ4324は、ライトチャネル4031のスクランブラ4302の逆操作を行い、元のデータ系列に戻す。ここで生成されたデータはHDC4001に転送される。
図40は、図39のソフト出力検出部4320の構成例を示す図である。ソフト出力検出部4320は、データ検出部4060と、生成部4062と、選択部4064とを含む。データ検出部4060は、データ系列を入力する。入力されるデータ系列は、1つのデータ系列でもよく、また、複数のデータ系列であってもよい。図41は、図40のデータ検出部4060の構成例を示す図である。データ検出部4060は、DDNP−SOVA部4066と、SOVA部4068とを含む。DDNP−SOVA部4066は、入力された信号に対して、過去の信号や雑音に依存して発生する雑音を予測する機能を有するビタビアルゴリズム(DDNP−SOVA)を実行することによって、データ系列を検出する。また、SOVA部4068は、入力された信号に対して、軟判定ビタビアルゴリズムを実行することによって、データ系列を検出する。なお、データ検出部4060は、DDNP−SOVA部4066、SOVA部4068以外のデータ検出装置から構成されていてもよい。たとえば、硬判定値を出力する通常のビタビアルゴリズムを用いてデータ検出を実行するデータ検出装置などから構成されていてもよい。また、データ検出部4060は、通常のビタビアルゴリズムを用いたデータ検出装置をさらに備えてもよい。
図40に戻る。生成部4062は、データ検出部4060によって入力されたデータ系列から複数の異なる信号系列を生成する。複数の信号系列は、1またはそれ以上のデータ系列に対し、後述する信号処理を実行することによって生成される。また、後段の復号処理によって復号処理が実行される前に、予めすべての信号系列が生成されていてもよい。また、復号処理、もしくは再復号処理を実行する必要が生じるたびに、復号の対象とすべき信号系列を生成してもよい。選択部4064は、生成部4062によって生成された複数の信号系列のうち1の信号系列を選択する。また、選択部4064は、図38のECC制御部4013によって誤り訂正できる確率が高い信号系列を優先して選択してもよい。具体的には、選択部4064は、生成部4062によって生成された複数の信号系列のうち、DDNP−SOVAを用いて検出されたデータ系列に対応する信号系列を優先して選択してもよい。また、選択部4064は、ECC制御部4013の指示に従って、すでに選択した信号系列とは異なる別の信号系列を選択してもよい。このように、複数の信号系列を復号対象とすることによって、雑音特性によらず、復号性能を安定化できる。いいかえると、複数の雑音特性を予め想定し、想定した雑音特性に強い信号系列を復号対象として生成することにより、想定した雑音特性の範囲内においては、復号性能を向上できることとなる。
ここで、生成部4062が、図41に示す2つのデータ検出部から出力された2つのデータ系列を用いて、信号系列を生成する場合について説明する。以下においては、図38のECC制御部4013によって誤りが訂正できる確率が比較的高いと考えられる10個の信号系列について説明する。なお、選択部4064において選択される順序は、必ずしも、後述する第1信号系列から選択しなくともよく、任意に設定してもよい。
生成部4062は、図41に示すDDNP−SOVA部4066から出力された軟判定値の系列であるデータ系列に含まれる軟判定値をそれぞれ硬判定値化することによって信号系列(以下、「第1信号系列」と表記する)を生成する。また、生成部4062は、同様の処理をSOVA部4068から出力された軟判定の系列であるデータ系列に対しても実行して、信号系列(以下、「第2信号系列」と表記する)を生成する。なお、硬判定値化は、軟判定値が所定のしきい値より大きいか否かを判定し、その判定結果をもとに、0もしくは1のビットに置換えることによって実行される。たとえば、軟判定値が−α〜+α(α>0)の範囲をとる場合において、しきい値を0とする場合、軟判定値が正であれば0に、負であれば1に置換えればよい。また、軟判定値が0〜+β(β>0)の範囲をとる場合は、しきい値をβ/2としてもよい。これらの硬判定値化(以下、「第1修正判定アルゴリズム」と表記する)は、簡易な構成で実現できるため、回路規模が縮小できる。
また、生成部4062は、図41のDDNP−SOVA部4066によって入力されたデータ系列に含まれる複数の信頼度のうち、所定のしきい値より小さい値を有する信頼度を探索する。さらに、軟判定値を硬判定値化した系列において、探索された信頼度に対応するビットの”0”と”1”とを反転することによって、信号系列(以下、「第3信号系列」と表記する)を生成する。また、生成部4062は、同様の処理をSOVA部4068から出力された軟判定の系列であるデータ系列に対しても実行し、信号系列(以下、「第4信号系列」と表記する)を生成する。ここで、「信頼度」とは、軟判定値の絶対値を示し、0以上の値を示す。これらの硬判定値化(以下、「第2修正判定アルゴリズム」と表記する)は、簡易な構成で実現できるため、回路規模が縮小できる。また、誤りの含まれている可能性の高い判定値を修正することによって、図42の復号部4070から出力される復号系列の誤り率を改善できる。
例を用いて説明する。以下にデータ系列に含まれる信頼度を示す。
{9 1 1 1 5 7 3 3 6 9}
また、以下に、硬判定されたデータ系列を示す。
{1 0 0 1 1 1 0 0 0 1}
ここで、しきい値を4とすると、第2修正判定アルゴリズムを用いて生成される信号系列は、以下で表される。以下に示すように、前式における2〜4、7、8ビット目が修正されることとなる。
{1 1 1 0 1 1 1 1 0 1}
また、生成部4062は、図41のDDNP−SOVA部4066によって入力されたデータ系列に含まれる複数の信頼度のうち、所定のしきい値より小さい値を有する信頼度が所定の個数より多く連続している区間を探索する。さらに、軟判定値を硬判定値化した系列において、探索された信頼度に対応するビットの”0”と”1”とを反転することによって、信号系列(以下、「第5信号系列」と表記する)を生成する。また、生成部4062は、同様の処理をSOVA部4068から出力された軟判定の系列であるデータ系列に対しても実行して、信号系列(以下、「第6信号系列」と表記する)を生成する。これらの硬判定値化(以下、「第3修正判定アルゴリズム」と表記する)は、簡易な構成で実現できるため、回路規模が縮小できる。また、誤りの含まれている区間を集中的に修正することによって、バースト誤りを低減できるので、図42の復号部4070から出力される復号系列の誤り率を改善できる。
例を用いて説明する。以下にデータ系列に含まれる信頼度を示す。
{9 1 1 1 5 7 3 3 6 9}
以下に、硬判定されたデータ系列を示す。
{1 0 0 1 1 1 0 0 0 1}
ここで、所定のしきい値を4、所定の個数を3とすると、第3修正判定アルゴリズムを用いて生成される信号系列は、以下で表される。以下に示すように、上式における2、3、4ビット目が修正されることとなる。
{1 1 1 0 1 1 0 0 0 1}
また、生成部4062は、図41のDDNP−SOVA部4066によって入力されたデータ系列のうち、所定の長さ以上の区間において、隣接する軟判定データの符号がそれぞれ異なる場合、区間に対応する軟判定データの符号を反転する。その後、軟判定データを硬判定値化することによって、信号系列(以下、「第7信号系列」と表記する)を生成する。「隣接する軟判定データの符号がそれぞれ異なる場合」とは、たとえば、軟判定データを硬判定値で表した場合に、「010101・・・」、もしくは、「101010・・・」となることを含む。また、生成部4062は、同様の処理をSOVA部4068から出力された軟判定の系列であるデータ系列に対しても実行することによって、信号系列(以下、「第8信号系列」と表記する)を生成する。これらの硬判定値化(以下、「第4修正判定アルゴリズム」と表記する)は、簡易な構成で実現できるため、回路規模が縮小できる。また、誤りの含まれている可能性が高いパターンを修正することによって、図42の復号部4070から出力される復号系列の誤り率を改善できる。
例を用いて説明する。以下に、硬判定されたデータ系列を示す。
{0 0 1 0 1 1 0 1 1 0}
ここで、所定の長さを4とすると、第4修正判定アルゴリズムを用いて生成される信号系列は、以下で表される。以下に示すように、上述における2〜5ビット目が修正されることとなる。
{0 1 0 1 0 1 0 1 1 0}
また、生成部4062は、図41のDDNP−SOVA部4066とSOVA部4068とによって入力された2つのデータ系列のいずれか一方の硬判定値をもとに、他方のデータ系列の硬判定値を修正することによって、信号系列を生成する。具体的には、生成部4062は、たとえば、DDNP−SOVA部4066のデータ系列を被修正系列として、SOVA部4068のデータ系列を用いて修正する。まず、生成部4062は、DDNP−SOVA部4066のデータ系列に含まれる第1データの硬判定値と、SOVA部4068のデータ系列に含まれるデータであって第1データと対応する位置に存在する第2データの硬判定値とを比較する。ここで、両者が異なる場合、DDNP−SOVA部4066のデータ系列のうち、対応する第2データと異なっている第1データを、その第2データに置換えることによって、信号系列(以下、「第9信号系列」と表記する。)を生成する。この硬判定値化(以下、「第5修正判定アルゴリズム」と表記する)は、簡易な構成で実現できるため、回路規模が縮小できる。また、2つのデータ系列のうち、互いに異なるデータに対して、一方を他方のデータと置換えることによって、図42の復号部4070から出力される復号系列の誤り率を改善できる。
例を用いて説明する。以下に、DDNP−SOVA部4066によって出力されたデータ系列の硬判定値を示す。
{0 0 1 0 1 1 0 1 1 0}
また、以下に、SOVA部4068によって出力されたデータ系列の硬判定値を示す。
{0 1 0 1 0 1 0 1 0 0}
ここで、DDNP−SOVA部4066によって出力されたデータ系列を被修正系列とした場合の修正後の系列を以下に示す。
{0 1 0 1 0 1 0 1 0 0}
生成部4062は、図41のDDNP−SOVA部4066とSOVA部4068とによって入力された2つのデータ系列のいずれか一方のデータ系列に含まれる第1データの硬判定値と、他方のデータ系列に含まれるデータであって第1データと対応する位置に存在する第2データの硬判定値とを比較する。さらに、比較した結果、第1データと第2データが異なる場合であって、「第2データの信頼度−第1データの信頼度>α(αは所定の値)」の条件を満たす場合、第1データを、第2データに置換えることによって、一方のデータ系列の硬判定値を修正する。具体的には、DDNP−SOVA部4066のデータ系列に含まれる複数のデータの硬判定値と、SOVA部4068のデータ系列に含まれる複数のデータの硬判定値とを、それぞれ対応するデータ同士で比較する。比較した結果、それぞれ異なっている場合であって、「信頼度1−信頼度2>α」となる場合における信頼度2に対応するデータを信頼度1に対応するデータの硬判定値に置換えることによって、信号系列(以下、「第10信号系列」と表記する)を生成する。この硬判定値化(以下、「第6修正判定アルゴリズム」と表記する)は、簡易な構成で実現できるため、回路規模が縮小できる。また、2つのデータ系列のうち、いずれか一方のデータ系列に含まれるデータを誤りが少ないと考えられるデータに置換えることによって、図42の復号部4070から出力される復号系列の誤り率を改善できる。
例を用いて説明する。以下に、DDNP−SOVA部4066によって出力されたデータ系列の信頼度、硬判定値をそれぞれ示す。
{3 4 6 5 5 1 1 5 2 4}
{0 0 1 0 1 1 1 1 1 1}
また、以下に、SOVA部4068によって出力されたデータ系列の信頼度、硬判定値を示す。
{3 2 5 2 3 3 4 5 4 6}
{0 1 0 1 0 1 0 1 0 0}
また、第6修正判定アルゴリズムにもとづいて修正された後の系列を以下に示す。
{0 0 1 0 1 1 0 1 0 0}
上述した第1修正判定アルゴリズム〜第6修正判定アルゴリズムは、それぞれ組み合わせることによって、新たな修正判定アルゴリズムを導出できる。また、それにより、生成できる信号系列の種類、個数も増加できる。たとえば、第3、第4修正判定アルゴリズムのそれぞれは、第5、第6修正判定アルゴリズムと組み合わせることによって、より厳しい条件のもとで、信号系列が生成されることはいうまでもない。この場合、図38のECC制御部4013における復号候補を増加できるので、復号の安定性を向上できる。好ましくは、第2と第3修正判定アルゴリズムの組み合わせ、または、第2と第3と第4修正判定アルゴリズムの組み合わせ、または、第4と第6修正判定アルゴリズムの組み合わせを新たな修正判定アルゴリズムとすればよい。
図42は、図38のECC制御部4013の構成例を示す図である。ECC制御部4013は、復号部4070と、誤り検出部4072と、判定部4074と、スイッチ4076とを示す。なお、ここでは、復号側における構成のみ図示し、符号化側における構成については省略する。ここで、復号部4070と、誤り検出部4072とは、連結され、もしくは、統合された装置であってもよい。復号部4070は、図40の選択部4064によって選択された信号系列を復号する。誤り検出部4072は、復号部4070によって誤りが訂正できたかどうかのチェックと、CRCなどによる誤り検出を行なう。なお、「図40の選択部4064によって選択された信号系列」とは、図40の選択部4064を含むソフト出力検出部4320の後段に存在するRLL復号部4323やデスクランブラ4324を経由して出力された信号系列なども含む。
判定部4074は、誤りが訂正できたと判断され、かつ、CRCなどによって誤りがないと判断された場合に、正しい復号結果が得られたと判定する。判定部4074において、正しい復号結果が得られたと判定された場合は、復号部4070によって復号された信号系列の出力がスイッチ4076に対して指示される。いいかえると、スイッチ4076は、指示があるまで、復号部4070から入力された信号を出力しない。また、判定部4074において、正しい復号結果が得られなかったと判定された場合は、選択部4064にてすでに選択された信号系列とは異なる別の信号系列の選択が指示され、選択部4064にて新たに選択された信号系列に対して復号部4070以下による処理が再実行される。ここで、「指示され」とは、スイッチ4076、もしくは、選択部4064に対して、ECC制御部4013が直接指示してもよく、また、図示しない制御部を介して指示してもよい。
上述したこれらの構成は、ハードウエア的には、任意のコンピュータのCPU、メモリ、その他のLSIで実現でき、ソフトウエア的にはメモリにロードされた通信機能のあるプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
図43は、図40の選択部4064と、図42のECC制御部4013との動作例を示すフローチャートである。まず、選択部4064は、復号対象となる信号系列を選択する(S4010)。つぎに、ECC制御部4013において復号処理が実行される(S4012)。さらに、ECC制御部4013において、正しい復号結果が得られたかどうかを判定する(S4014)。正しい復号結果が得られたと判定された場合(S4014のY)、判定部4074は、スイッチ4076に対し、復号部4070から出力された復号系列をそのまま出力する旨の指示を行い(S4016)、処理を終了する。一方、正しい復号結果が得られなかったと判定された場合(S4014のN)、選択部4064は、復号対象を再度選択し、S4012以下の処理を繰り返す(S4018)。
ここで、S4010、またはS4018における選択は、復号した結果、誤りを訂正できる可能性が高いと考えられる信号系列が優先される。ただし、必ずしもこのような順序である必要はなく、任意に設定してもよい。たとえば、選択の順序は、前述した第1信号系列を最初に選択し、以後、S4014において正しい復号結果が得られたと判定されるまで、順に、第2信号系列、第3信号系列、・・・、第10信号系列が選択される。この場合、選択の順序は、信号系列の番号で定義されてもよく、また、前述した第1修正判定アルゴリズム〜第6修正判定アルゴリズムで定義されてもよい。
図44は、図40の生成部4062の動作例を示すフローチャートである。生成部4062は、まず、基準となるデータ系列を選択する(S4020)。基準となるデータ系列とは、修正対象となるデータ系列を指し、DDNP−SOVA部4066とSOVA部4068とのうち、いずれか一方から出力されたデータ系列をいう。つぎに、S4020において選択されたデータ系列に含まれるデータを1つずつ修正すべきか否かを判定する(S4022)。S4022において、修正すべきと判定された場合(S4022のY)、そのデータの符号を反転して、S4026の処理に移る(S4024)。修正すべきでないと判定された場合(S4022のN)、S4026の処理に移る。つぎに、S4026において、データ系列に含まれる全てのデータについて判定が終了したかを判断し、終了していないと判断された場合は、まだ判定されていないデータを対象として、S4022以下の処理が繰り返される(S4026のN)。一方、すべてのデータについて判定が終了したと判断された場合(S4026のY)、処理を終了する。なお、上述の処理は、信号系列を生成すべき修正判定アルゴリズムごとに実行されてもよいし、生成すべき信号系列ごとに実行されてもよい。したがって、複数の修正判定アルゴリズムを用いる場合、もしくは、複数の信号系列を生成する場合、図44に示すフローチャートは繰り返し実行されることとなる。
本第5実施形態によれば、正しい復号結果が得られるまで、復号処理を繰り返すことによって、復号部における復号性能を向上できる。また、復号性能を安定化できる。また、誤りを訂正できる確率が高い信号系列を優先して選択することによって、復号部以下の所定の処理における繰り返し実行しなければならない回数を低減できる。また、復号の対象となる候補を複数生成できる。複数の候補を生成することにより、復号の確実性を向上できる。また、信頼性の低い軟判定値に対応する硬判定値を逆方向に修正することによって、復号特性を向上できる。また、複数の硬判定系列を互いに修正することによって、双方の雑音特性に強い信号系列を生成でき、復号特性を向上できる。また、信頼性の低い軟判定値に対応する硬判定値を逆方向に修正することによって、復号特性を向上できる。また、安定して高い復号能力を備える復号部を具備することによって、より高速に記憶システムにアクセスすることができる。また、余分なハードウェアを搭載する必要がなくなるので、低規模な半導体集積回路を実現できる。
以上、本発明を第5実施形態をもとに説明した。この第5実施形態は例示であり、第5実施形態相互の組み合わせ、または、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
本第5実施形態においては、ECC制御部4013は、HDCの内部に搭載されているとして説明した。しかしながらこれにかぎらず、リードライトチャネルの内部に搭載されていてもよい。また、HDCとリードライトチャネルは、1つのLSIとして一体化されていてもよい。また、SOVAを用いて候補を作成するとして説明したが、Viterbiを用いもよい。この場合、軟判定値でなく、Viterbiから出力された硬判定値をもとに候補を作成すればよい。
なお、本第5実施形態は、上述した構成にかぎらず、たとえば、復号装置は、ディスクに記録された記録情報を読み取って、前記入力部に出力する読取部と、前記読取部における読取り状況を判定する読取状況判定部をさらに備えてもよい。読取状況判定部は、ディスクの特性、たとえば、ディスクの回転数、あるいは、読取り個所がディスクの内周か外周かを判定する。読取状況判定部は、ディスクに取り付けられるGMRヘッドの特性や、あるいはディスクの後段に配置される復号装置の内部のAD変換部の特性、または、装置外部の室温などを判定してもよい。これらの状況が判定された場合、選択部は、読取状況判定部において判定された状況に基づいて、出力すべき信号を決定してもよい。たとえば、他方より良い状況を示している入力部からの出力を優先的に選択して出力すればよい。このような態様により、状況に左右されずに、良好な結果を得ることができる。
以上、本発明を実施形態をもとに説明した。この実施形態は例示であり、実施形態相互の組み合わせ、または、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。