(57)【要約】【課題】より少ない回路規模で、ランレングス制限を満たしつつ、ＤＣフリー特性を向上すること。【解決手段】ＲＬＬ／ＤＣフリー符号化部３０３は、第１ＲＬＬ符号化部６０と、第１信号処理部６２と、第２ＲＬＬ符号化部６４と、直流成分除去符号化部６６とを含む。第１ＲＬＬ符号化部６０は、スクランブラ３０２から出力されたデジタル信号系列をランレングス制限符号化することによって、第１符号化系列を生成する。第１信号処理部６２は、スクランブラ３０２から出力されたデジタル信号系列に含まれる複数のビットの個数を変えずに、デジタル信号系列に対し、所定の信号処理を実行する。第２ＲＬＬ符号化部６４は、第１信号処理部６２から出力された信号処理部によって所定の信号処理が実行されたデジタル信号系列をランレングス制限符号化することによって、第２符号化系列を生成する。【選択図】図４
2008198239.tif 000002
【特許請求の範囲】
【請求項１】
デジタル信号系列をランレングス制限符号化することによって、第１符号化系列を生成する第１ランレングス制限符号化部と、
前記デジタル信号系列に対し、所定の信号処理を実行する信号処理部と、
前記信号処理部によって所定の信号処理が実行されたデジタル信号系列をランレングス制限符号化することによって、第２符号化系列を生成する第２ランレングス制限符号化部と、
前記第１ランレングス制限符号化部によって生成された第１符号化系列と、前記第２ランレングス制限符号化部によって生成された第２符号化系列とのうち、いずれか一方を選択して出力する直流成分除去符号化部と、
を備えることを特徴とする符号化装置。
【請求項２】
前記第１ランレングス制限符号化部と、前記第２ランレングス制限符号化部とが、同一の構成からなることを特徴とする請求項１に記載の符号化装置。
【請求項３】
前記信号処理部は、前記デジタル信号系列に含まれる複数のビットのうち、少なくとも一部のビットを反転させることを特徴とする請求項１または２に記載の符号化装置。
【請求項４】
デジタル信号系列をランレングス制限符号化することによって、第１符号化系列を生成するランレングス制限符号化部と、
前記第１符号化系列に対し、所定の信号処理を実行して第２符号化系列を生成する信号処理部と、
前記ランレングス制限符号化部によって生成された第１符号化系列と、前記信号処理部によって生成された第２符号化系列とのうち、いずれか一方を選択して出力する直流成分除去符号化部と、
を備えることを特徴とする符号化装置。
【請求項５】
前記信号処理部は、前記デジタル信号系列に含まれる複数のビットのうち、少なくとも一部のビットを反転させることを特徴とする請求項４に記載の符号化装置。
【請求項６】
ディスクに記録された記録情報を読み取る読取部から出力されたアナログ信号を入力するアナログ信号入力部と、
前記アナログ信号入力部からアナログ信号を入力し、これをデジタル信号に変換する際に、アナログ信号の入力レベルの正区間あるいは負区間のいずれか一方の区間において、入出力特性におけるアナログ信号とデジタル信号の関係がアナログ信号の入力レベルが小さい場合とアナログ信号の入力レベルが大きい場合とで異なるアナログデジタル変換部と、
を備えることを特徴とする記録情報読取装置。
【請求項７】
前記アナログデジタル変換部は、
直列に設置された複数の抵抗素子であって、一定電圧を有する参照信号を入力として、順次、後段の抵抗素子に対し、それぞれ振幅調整された参照信号を出力する複数の抵抗素子と、
前記複数の抵抗素子のそれぞれから出力された参照信号と、前記入力部から入力されたアナログ信号の入力レベルとをそれぞれ比較することによって、前記アナログ信号の入力レベルを調整する比較部とを有することを特徴とする請求項６に記載の記録情報読取装置。
【請求項８】
前記複数の抵抗素子は、それぞれの抵抗素子の抵抗値に非均一性をもたせることによって、入力レベルの調整の幅を変えることを特徴とする請求項７に記載の記録情報読取装置。
【請求項９】
ディスクに記録された記録情報を読み取る読取部から出力されたアナログ信号を入力するアナログ信号入力部と、
前記アナログ信号入力部からアナログ信号を入力し、これをデジタル信号に変換する際に、入出力特性におけるアナログ信号とデジタル信号の関係が可変のアナログデジタル変換部と、
前記アナログデジタル変換部の出力に応じ、前記アナログデジタル変換部の入出力特性におけるアナログ信号とデジタル信号との関係を決定する制御部と、
を備えることを特徴とする記録情報読取装置。
【請求項１０】
前記アナログデジタル変換部は、アナログ信号が入力される可変抵抗を有し、
前記制御部は、前記可変抵抗の抵抗値を決定することを特徴とする請求項９に記載の記録情報読取装置。
【請求項１１】
データ系列を生成する第１入力部と、前記第１入力部とは異なるデータ系列を生成する第２入力部とを含む入力部と、
前記入力部によって入力されたデータ系列から複数の異なる信号系列を生成する生成部と、
前記生成部によって生成された複数の信号系列のうち、１の信号系列を選択する選択部と、
前記選択部によって選択された信号系列を復号する復号部と、
前記復号部によって復号された信号系列の復号誤りの程度を検出する検出部と、
前記検出部によって検出された誤りの程度が所定の許容度以内であるか否かを判定する判定部と、
を備え、
前記判定部において、誤りの程度が前記所定の許容度以内であると判定された場合は、前記復号部によって復号された信号系列の出力が指示されることを特徴とする復号装置。
【請求項１２】
前記判定部において、誤りの程度が前記所定の許容度を超えると判定された場合は、前記選択部にて前記１の信号系列とは異なる別の信号系列の選択が指示され、前記選択部にて新たに選択された信号系列に対して前記復号部以下による処理が再実行されることを特徴とする請求項１１に記載の復号装置。
【請求項１３】
前記選択部は、前記判定部によって誤りの程度が前記許容度以内であると判定される確率が高い信号系列を優先して選択することを特徴とする請求項１１に記載の復号装置。
【請求項１４】
前記生成部は、入力された信号系列に含まれるビットの硬判定値化をする際に、他ビットの信頼度を参照することを特徴とする請求項１１に記載の復号装置。
【請求項１５】
前記生成部は、入力された信号系列に含まれたあるビットの硬判定値化をする際に、当該ビットの信頼度と、前記信号系列に含まれた当該ビット以外の他のビットの信頼度とを参照することを特徴とする請求項１４に記載の復号装置。
【請求項１６】
前記生成部は、硬判定値化する際に、第１入力部からの出力信号における信頼度と、第２入力部からの出力信号における信頼度とを参照することを特徴とする請求項１１に記載の復号装置。
【請求項１７】
前記生成部は、ビットの硬判定値を決定する際に、第１入力部からの出力信号における信頼度と、第２入力部からの出力信号における信頼度とを参照することを特徴とする請求項１６に記載の復号装置。
【請求項１８】
前記生成部は、ビットの硬判定値を決定する際に、第１入力部からの出力信号と、第２入力部からの出力信号において、互いに対応するビットの信頼度を比較することを特徴とする請求項１７に記載の復号装置。
【請求項１９】
前記選択部は、第１入力部からの出力と第２入力部からの出力とを選択する際に、第１入力部からの出力を優先的に選択することを特徴とする請求項１１に記載の復号装置。
【請求項２０】
ディスクに記録された記録情報を読み取って、前記入力部に出力する読取部と、
前記読取部における読取り状況を判定する読取状況判定部をさらに備え、
前記選択部は、前記読取状況判定部において判定された状況に基づいて、第１入力部からの出力と第２入力部からの出力とのいずれを優先すべきかを決定することを特徴とする請求項１１に記載の復号装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、誤り訂正符号化／復号技術に関し、特に、記憶媒体に記憶されるデータに対して誤り訂正符号化／復号する符号化装置、復号装置、記録情報読取装置に関する。
【背景技術】
【０００２】
近年、ハードディスクを用いた記憶装置は、パーソナルコンピュータ、ハードディスクレコーダー、ビデオカメラ、携帯電話など、さまざまな分野において必須の装置となりつつある。ハードディスクを用いた記憶装置は、適用される分野によって求められる仕様もさまざまである。たとえば、パーソナルコンピュータに搭載するハードディスクには、高速性、大容量性が求められる。高速性、大容量性を向上するためには、訂正能力の高い誤り訂正符号化をする必要がある。しかしながら、高速化が進むほど単位時間あたりに扱うデータの量が増えるため、単位時間あたりの誤りも比例して増大する。そうすると、誤り訂正能力が低い誤り訂正方式を用いる場合、ハードディスクに対する再読込みが発生するため、ハードディスクへのアクセスに要する時間が増大し、高速化のボトルネックとなる。
【０００３】
一般的に、誤り訂正符号化の対象となる信号系列として、直流成分が低減もしくは除去された（以下、「ＤＣフリー」、もしくは、「ＤＣフリー性」と表記する）信号系列が望まれている。ＤＣフリーとは、周波数が０、すなわち直流成分におけるスペクトルが０であることを意味する。いいかえると、変調前の信号系列に含まれる複数のビットにおいて、０と１の比率が等しいことなどを意味する。ＤＣフリー性を信号系列に備えるさせることによって、記憶媒体に記憶された変調データの記録パターンから得られる再生信号の平均レベルが、変調前の信号系列のパターンによらずに、所定の信号系列長の範囲内で常に一定となる性質をもち、ノイズ耐性が向上する。すなわち、ＤＣフリー性の低い信号系列においては、ビタビアルゴリズムを用いたデータ検出において、検出確率が低下することとなる。これにより、低密度パリティチェック復号やリードソロモン復号における訂正能力も低減されることとなる。また、一般的に、サンプリングタイミングとデータとの同期を確保するために、ランレングス制限符号が用いられている。ランレングス制限符号とは、０の最大連続長や１の最大連続長を制限する符号化である。
【０００４】
従来、信号系列のＤＣフリー性を満たしつつ、ランレングス制限符号化する方法として、それぞれ異なる冗長ビットが付加された信号系列に対し、ランレングス制限符号化を実行し、符号化された複数の系列のうち、ＤＣフリーに近い特性を有する系列を選択する方法が提案されていた（たとえば、特許文献１参照。）。また、複数の異なる性質を有するランレングス制限符号化を実行し、符号化された複数の系列のうち、ＤＣフリーに近い特性を有する系列を選択する方法が提案されていた（たとえば、特許文献２参照。）。
【特許文献１】特開２００２−１００１２５号公報
【特許文献２】特開２００４−２１３８６３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明者はこうした状況下、以下の課題を認識するに至った。複数の符号化系列の中からＤＣフリー特性の良い系列を選択することによってＤＣフリー符号化を実現する場合、選択の対象となる複数の符号化系列においてＤＣフリー特性の良い符号化系列が存在しない場合がある。すなわち、選択の対象となる符号化系列のうち、少なくとも１つ以上のＤＣフリー特性の良い系列を生成できる構成が必要となり、回路規模、記憶容量に影響を及ぼすといった課題である。
【０００６】
本発明はこうした状況に鑑みてなされたものであり、その総括的な目的は、より少ない回路規模で、ランレングス制限を満たしつつ、ＤＣフリー特性を向上できる符号化装置、復号装置、信号処理装置、符号化方法、および記憶システムを提供することにある。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明のある態様の符号化装置は、第１ランレングス制限符号化部と、信号処理部と、第２ランレングス制限符号化部と、直流成分除去符号化部と、を備える。第１ランレングス制限符号化部は、デジタル信号系列をランレングス制限符号化することによって、第１符号化系列を生成する。信号処理部は、デジタル信号系列に含まれる複数のビットの個数を変えずに、デジタル信号系列に対し、所定の信号処理を実行する。第２ランレングス制限符号化部は、信号処理部によって所定の信号処理が実行されたデジタル信号系列をランレングス制限符号化することによって、第２符号化系列を生成する。直流成分除去符号化部は、第１ランレングス制限符号化部によって生成された第１符号化系列と、第２ランレングス制限符号化部によって生成された第２符号化系列とのうち、いずれか一方を選択して出力する。
【０００８】
ここで、「直流成分除去符号化部」とは、入力された系列の直流成分を除去するもしくは低減する回路などを含み、また、ＤＣフリー性の高い系列を出力する回路などを含む。また、「第１ランレングス制限符号化部」と「第２ランレングス制限符号化部」とは、同一の性質を有するランレングス制限符号化回路であってもよい。また、同一の性質を有するランレングス制限符号化回路である場合、「第１ランレングス制限符号化部」と「第２ランレングス制限符号化部」は、１つのランレングス制限符号化回路を時分割で実行することにより実現されてもよい。
【０００９】
この態様によると、異なる２つの系列に対して、ランレングス制限符号化を実行するので、全く異なる２つの符号化系列を得ることができる。ランレングス制限符号化の対象となる系列に含まれるビットの個数を増加しないように所定の信号処理を実行することによって、全体の符号化率を低下させずに符号化系列が得られる。２つの符号化系列は全く異なるため、ＤＣフリー性の高い符号化系列を選択するにあたり、より好ましい選択肢となる。より好ましい選択肢の中からＤＣフリー性の高い符号化系列を選択することによって、よりＤＣフリー性の高い符号化系列を選択できる可能性が向上できる。また、同一のランレングス制限符号化回路を用いることによって、回路構成を単純化でき、また、低規模にできる。
【００１０】
信号処理部は、デジタル信号系列に含まれる複数のビットのそれぞれに対し、ビット反転処理を実行してもよい。また、信号処理部は、デジタル信号系列に含まれる複数のビットの順序を並び替えてもよい。また、信号処理部は、デジタル信号系列に含まれる複数のビットのそれぞれに対し、ビット反転処理をした後に、ビットの順序を並び替え処理を実行してもよい。この態様によると、ビット反転処理、および／または、ビットの順序を並び替えることによって、ランレングス制限符号化の対象となる系列に含まれるビットの個数を増加せずに、異なる系列を生成できる。また、系列に含まれるビットの個数が増加しないため、全体の符号化率を低下させずに符号化系列が得られる。また、異なる系列を生成するために実行する所定の処理をビット反転処理、および／または、ビットの順序を並び替える処理とすることによって、単純な回路構成で所定の処理を実現できる。
【００１１】
直流成分除去符号化部は、第１符号化系列と第２符号化系列のうち、いずれか一方の符号化系列を選択する符号化系列選択部と、符号化系列選択部によって選択された符号化系列を示す選択識別情報を生成する選択識別情報生成部と、符号化系列選択部によって選択された符号化系列のいずれかの個所に、選択識別情報生成部によって生成された選択識別情報を付加する識別情報付加部と、を有してもよい。また、符号化系列選択部は、当該符号化系列選択部によってすでに選択された符号化系列と前記第１符号化系列とを連結させる第１連結部と、当該符号化系列選択部によってすでに選択された符号化系列と前記第２符号化系列とを連結させる第２連結部と、を有してもよい。符号化系列選択部は、第１連結部によって連結された系列を新たな第１符号化系列とし、第２連結部によって連結された系列を新たな第２符号化系列とし、いずれか一方の符号化系列を選択してもよい。第１ランレングス制限符号化部から出力された第１符号化系列のいずれかの個所に第１判定ビットを付加する第１付加部と、第２ランレングス制限符号化部から出力された第２符号化系列のいずれかの個所に第１判定ビットがビット反転された第２判定ビットを付加する第２付加部と、をさらに備えてもよい。
【００１２】
ここで、「付加」とは、加算、乗算、挿入などを含む。また、「すでに選択された符号化系列と前記第１符号化系列とを連結させる」とは、過去において選択された符号化系列と、現在選択の候補となっている系列とを連結させることなどを含む。この態様によると、いずれの符号化系列が選択されたことを示す情報を符号化系列に付加することによって、復号側にて、容易に選択された符号化系列を判別できる。
【００１３】
符号化系列選択部は、第１比率計算部と、第２比率計算部と、選択出力部と、を有してもよい。第１比率計算部は、第１ランレングス制限符号化部によって生成された、もしくは、第１連結部によって連結された第１符号化系列に含まれる複数のビットのうち、０を示すビットと１を示すビットとの比率を計算する。第２比率計算部は、第２ランレングス制限符号化部によって生成された、もしくは第２連結部によって連結された第２符号化系列に含まれる複数のビットのうち、０を示すビットと１を示すビットとの比率を計算する。選択出力部は、第１比率計算部で計算された比率と、第２比率計算部で計算された比率とのうち、５０％に近いほうの比率に対応する符号化系列を選択して出力する。この態様によると、０を示すビットと１を示すビットとの比率が５０％に近いほうを選択することによって、ＤＣフリー性の高い符号化系列が選択できる。
【００１４】
符号化系列選択部は、第１合算部と、第２合算部と、符号化系列検出部と、選択出力部と、を有してもよい。第１合算部は、第１ランレングス制限符号化部によって生成された、もしくは、第１連結部によって連結された第１符号化系列に含まれる複数のビットを合算して第１合算値を生成する。第２合算部は、第２ランレングス制限符号化部によって生成された、もしくは、第２連結部によって連結された第２符号化系列に含まれる複数のビットを合算して第２合算値を生成する。符号化系列検出部は、第１合算部によって生成された第１合算値の絶対値と、第２合算部によって生成された第２合算値の絶対値とを比較して、第１符号化系列と第２符号化系列のうち、小さいほうの合算値に対応する符号化系列を検出する。選択出力部は、第１符号化系列と、第２符号化系列とのうち、系列検出部によって検出された符号化系列を選択して出力する。
【００１５】
ここで、「合算値」とは、系列に含まれるビットを加算することなどを含む。また、「系列に含まれる複数のビット」とは、０もしくは１を示すビットなどを含み、また、０を示すビットを＋１と置換え、１を示すビットを−１と置換えた場合におけるビットなども含む。この態様によると、符号化系列に含まれる複数のビットを合算し、より小さい合算値に対応する系列を選択することによって、ＤＣフリー性の高い符号化系列が選択できる。
【００１６】
符号化系列選択部は、第１移動加算部と、第１最大値検出部と、第２移動加算部と、第２最大値検出部と、符号化系列検出部と、選択出力部と、を有してもよい。第１移動加算部は、第１ランレングス制限符号化部によって生成された、もしくは、第１連結部によって連結された第１符号化系列に含まれる複数のビットを移動加算することによって、複数のビットと同数の第１移動加算値を生成する。第１最大値検出部は、第１移動加算部によって生成された複数の第１移動加算値のうち、最大値を検出する。第２移動加算部は、第２ランレングス制限符号化部によって生成された、もしくは、第２連結部によって連結された第２符号化系列に含まれる複数のビットを移動加算することによって、複数のビットと同数の第２移動加算値を生成する。第２最大値検出部は、第２移動加算部によって生成された複数の第２移動加算値のうち、最大値を検出する。符号化系列検出部は、第１最大値検出部によって検出された最大値と、第２最大値検出部によって検出された最大値とを比較して、第１符号化系列と第２符号化系列のうち、小さいほうの最大値に対応する符号化系列を検出する。選択出力部は、第１符号化系列と第２符号化系列とのうち、系列検出部によって検出された符号化系列を選択して出力する。
【００１７】
ここで、「移動加算する」とは、移動加算し、さらに、絶対値を計算することなどを含む。この態様によると、符号化系列に含まれる複数のビットを移動加算した結果のうちの最大値を用いて系列を選択することによって、ＤＣフリー性の高い符号化系列が選択できる。
【００１８】
本発明の別の態様は、復号装置である。この装置は、入力部と、判定ビット取得部と、ランレングス制限復号部と、信号処理部と、を備える。入力部は、所定の判定ビットが付加された符号化系列を入力する。判定ビット取得部は、入力部によって入力された符号化系列に付加されている所定の判定ビットを取得する。ランレングス制限復号部は、入力部によって入力された符号化系列をランレングス制限復号することによってデジタル信号系列を生成する。信号処理部は、ランレングス制限復号部によって生成されたデジタル信号系列に対し、判定ビット取得部によって取得された判定ビットに応じて、デジタル信号系列に含まれる複数のビットのそれぞれをビット反転して出力する処理、もしくは、デジタル信号系列に含まれる複数のビットをそのまま出力する処理のいずれかの処理を実行する。また、信号処理部は、デジタル信号系列に含まれる複数のビットのそれぞれをビット反転して出力する処理に代えて、デジタル信号系列に含まれる複数のビットの順序を入れ替える処理を実行してもよい。この態様によると、符号化側において実行されたＤＣフリー符号化に対応する処理を実行することによって、元のデジタル信号系列を復号できる。
【００１９】
本発明のさらに別の態様は、信号処理装置である。この装置は、符号化部と復号部とを備える信号処理装置である。符号化部は、第１ランレングス制限符号化部と、第１信号処理部と、第２ランレングス制限符号化部と、第１付加部と、第２付加部と、直流成分除去符号化部と、を有する。第１ランレングス制限符号化部は、デジタル信号系列をランレングス制限符号化することによって、第１符号化系列を生成する。第１信号処理部は、デジタル信号系列に含まれる複数のビットの個数を変えずに、デジタル信号系列に含まれる複数のビットのそれぞれに対して、ビット反転処理を実行する。第２ランレングス制限符号化部は、信号処理部によってビット反転処理が実行されたデジタル信号系列をランレングス制限符号化することによって、第２符号化系列を生成する。第１付加部は、第１ランレングス制限符号化部から出力された第１符号化系列のいずれかの個所に第１判定ビットを付加する。第２付加部は、第２ランレングス制限符号化部から出力された第２符号化系列のいずれかの個所に第１判定ビットがビット反転された第２判定ビットを付加する。直流成分除去符号化部は、第１付加部によって第１判定ビットが付加された第１符号化系列と、第２付加部によって第２判定ビットが付加された第２符号化系列とのうち、いずれか一方を選択して出力する。復号部は、入力部と、判定ビット取得部と、ランレングス制限復号部と、第２信号処理部と、を有する。入力部は、第１判定ビットもしくは第２判定ビットのいずれかが付加された符号化系列を入力する。判定ビット取得部は、入力部によって入力された符号化系列に付加された第１判定ビットもしくは第２判定ビットのいずれかの判定ビットを取得する。ランレングス制限復号部は、入力部によって入力された符号化系列をランレングス制限復号することによって復号信号系列を生成する。第２信号処理部は、判定ビット取得部によって取得された判定ビットが第１判定ビットである場合、ランレングス制限復号部によって生成されたデジタル信号系列をそのまま出力する。また、第２信号処理部は、判定ビット取得部によって取得された判定ビットが第２判定ビットである場合、ランレングス制限復号部によって生成された復号信号系列に含まれる複数のビットに対し、ビット反転処理を実行することによって生成された信号系列を出力する。
【００２０】
この態様によると、異なる２つの系列に対して、ランレングス制限符号化を実行するので、全く異なる２つの符号化系列を得ることができる。ランレングス制限符号化の対象となる系列に含まれるビットの個数を増加しないように所定の信号処理を実行することによって、全体の符号化率を低下させずに符号化系列が得られる。２つの符号化系列は全く異なるため、ＤＣフリー性の高い符号化系列を選択するにあたり、より好ましい選択肢となる。より好ましい選択肢の中からＤＣフリー性の高い符号化系列を選択することによって、よりＤＣフリー性の高い符号化系列を選択できる可能性が向上できる。また、復号側において、符号化側で実行されたＤＣフリー符号化に対応する処理を実行することによって、元のデジタル信号系列を復号できる。
【００２１】
本発明のさらに別の態様は、記憶システムである。この記憶システムは、データを記憶装置に書き込むライトチャネルと、記憶装置に記憶されているデータを読み出すリードチャネルとを備える信号記憶システムである。ライトチャネルは、データをランレングス符号化する第１の符号化部と、第１の符号化部で符号化されたデータに対し、低密度パリティ検査符号を用いて符号化する第２の符号化部と、第２の符号化部で符号化されたデータを記憶装置に書き込む書き込み部と、を備える。リードチャネルは、記憶装置から出力されたアナログ信号を入力する入力部と、入力部から入力されたアナログ信号をデジタル信号に変換して出力するアナログデジタル変換部と、アナログデジタル変換部から出力されたデジタル信号の尤度を計算して軟判定値を出力するソフト出力検出部と、ソフト出力検出部から出力されたデータを復号する、第２の符号化部に対応した、第１の復号部と、第１の復号部で復号されたデータを復号する、第１の符号化部に対応した、第２の復号部と、を備える。第１の符号化部は、デジタル信号系列をランレングス制限符号化することによって、第１符号化系列を生成する第１ランレングス制限符号化部と、デジタル信号系列に含まれる複数のビットの個数を変えずに、デジタル信号系列に対し、所定の信号処理を実行する信号処理部と、信号処理部によって所定の信号処理が実行されたデジタル信号系列をランレングス制限符号化することによって、第２符号化系列を生成する第２ランレングス制限符号化部と、第１ランレングス制限符号化部によって生成された第１符号化系列と、第２ランレングス制限符号化部によって生成された第２符号化系列とのうち、いずれか一方を選択して出力する直流成分除去符号化部と、を有する。第２の復号部は、第１の復号部によって復号されたデータをランレングス制限復号することによってデジタル信号系列を生成するランレングス制限復号部と、ランレングス制限復号部によって生成されたデジタル信号系列に対し、直流成分除去符号化部における選択に応じて、デジタル信号系列に含まれる複数のビットのそれぞれをビット反転して出力する処理、もしくは、デジタル信号系列に含まれる複数のビットをそのまま出力する処理のいずれかの処理を実行する信号処理部と、を有する。この態様によると、ＤＣフリー性の高い符号化処理を実行することによって、より高速に記憶システムにアクセスすることができる。
【００２２】
本発明のさらに別の態様もまた、記憶システムである。この記憶システムは、さらに、データを記憶する記憶装置と、記憶装置への書き込みと、記憶装置からの読み出しとを制御する制御部と、を有する。リードチャネルは、制御部の指示に従って、記憶装置に記憶されているデータを読み出し、ライトチャネルは、制御部の指示に従って、符号化されたデータを記憶装置に書き込む。この態様によると、ＤＣフリー性の高い符号化処理を実行することによって、より高速に記憶システムにアクセスすることができる。
【００２３】
本発明のさらに別の態様は、符号化装置である。この装置は、符号化装置おいて、当該装置は、１つの半導体基板上に一体集積化されてもよい。この態様によると、ＤＣフリー性の高い符号化処理が効率良く実行でき、余分なハードウェアを搭載する必要がなくなるので、低規模な半導体集積回路を実現できる。
【００２４】
なお、以上の構成要素の任意の組合せや本発明の構成要素や表現を方法、装置、システムなどの間で相互に置換したものもまた、本発明の態様として有効である。
【発明の効果】
【００２５】
本発明によれば、より少ない回路規模で、ランレングス制限を満たしつつ、ＤＣフリー特性を向上できる。
【発明を実施するための最良の形態】
【００２６】
（第１実施形態）
第１実施形態を具体的に説明する前に、まず本第１実施形態にかかる記憶システム１００について概要を述べる。本第１実施形態にかかる記憶システム１００は、ハードディスクコントローラと、磁気ディスク装置と、リードチャネルとライトチャネルを含むリードライトチャネルと、を有する。ライトチャネルにおいては、符号化として、ランレングス制限符号化と、ＤＣフリー符号化と、ＬＤＰＣ符号化とを実行する。また、リードチャネルにおいては、ビタビアルゴリズムなどを用いたデータ検出と、ＬＤＰＣ復号を行なう。このデータ検出は、ＤＣ成分が存在することによって検出精度が劣化することが知られている。さらに、検出精度が劣化することによりＬＤＰＣ復号の訂正能力が低減する。したがって、本発明の第１実施形態においては、ＬＤＰＣ符号化を行なう前の段階において、ＤＣ成分を低減させるＤＣフリー符号化を行なう構成とした。なお、本第１実施形態にかかる記憶システム１００は、ＬＤＰＣ符号化に限定されず、他の誤り訂正符号化方式、たとえば、ターボ符号化や畳込み符号化が実行される構成であってもよい。
【００２７】
ＤＣフリー符号化は、異なる２つの系列のうち、よりＤＣフリー性の高い系列を選択することによって実現される。異なる２つの系列を生成するために、異なる２つの性質を有するＲＬＬ符号化を実行すると、２つ目のＲＬＬ符号化の回路が必要となる分、回路規模が増大する。また、回路規模の問題としないアプリケーションの場合であっても、異なる２つの性質を有するＲＬＬ符号化を実行した結果、双方の系列ともにＤＣフリー性が良いとは限らない。したがって、本発明の第１実施形態においては、同一のＲＬＬ符号化を実行することとした。
【００２８】
ここで、同一のＲＬＬ符号化を実行する場合、選択の対象となる系列が同一になるのを回避する必要がある。また、ＤＣフリー特性の良い制限符号化系列が存在しない場合を避ける必要もある。そこで、本発明の第１実施形態においては、ＲＬＬ符号化する前に、任意の信号系列と、任意の信号系列に所定の信号処理を実行した後の２つの系列とを対象とすることとした。これにより、生成される系列は全く異なるため、統計的にＤＣフリー性の良い系列が生成できる。また、この所定の信号処理を信号系列のビット数を変えずに実行することによって、符号化利得の減少を回避している。さらに、信号処理の処理内容を任意に変更することによって、さまざまな系列を生成できるので、選択の幅を広げられる。そのため、よりＤＣフリー特性の良い系列を生成することができることとなる。したがって、本発明の第１実施形態は、ハードディスクのような符号化率を低く設定できないようなアプリケーションにおいて好適となる。詳細は後述する。
【００２９】
以下、図面を用いて、本発明の第１実施形態について詳細に説明する。
【００３０】
図１は、本発明の第１実施形態に係る記憶システム１００の構成を示す図である。図１の記憶システム１００は、大きく分けて、ハードディスクコントローラ１（以下、「ＨＤＣ１」と略記する。）、中央処理演算装置２（以下、「ＣＰＵ２」と略記する。）、リードライトチャネル３（以下、「Ｒ／Ｗチャネル３」と略記する。）、ボイスコイルモータ／スピンドルモータ制御部４（以下、「ＶＣＭ／ＳＰＭ制御部４」と略記する。）、及びディスクエンクロージャ５（以下、「ＤＥ５」と略記する。）とから構成される。一般に、ＨＤＣ１、ＣＰＵ２、Ｒ／Ｗチャネル３、及びＶＣＭ／ＳＰＭ制御部４は同一の基板上に構成される。
【００３１】
ＨＤＣ１は、ＨＤＣ１全体を制御する主制御部１１、データフォーマット制御部１２、誤り訂正符号化制御部１３（以下、「ＥＣＣ制御部１３」と略記する。）、及びバッファＲＡＭ１４を含む。ＨＤＣ１は、図示しないインタフェース部を介してホストシステムと接続される。また、Ｒ／Ｗチャネル３を介して、ＤＥ５と接続されており、主制御部１１の制御により、ホストとＤＥ５の間でデータ転送する。このＨＤＣ１には、Ｒ／Ｗチャネル３で生成されるリードリファレンスクロック（ＲＲＣＫ）が入力される。データフォーマット制御部１２は、ホストから転送されたデータをディスク媒体５０上に記録するのに適したフォーマットに変換し、逆に、ディスク媒体５０から再生されたデータをホストに転送するのに適したフォーマットに変換する。ディスク媒体５０は、たとえば、磁気ディスクを含む。ＥＣＣ制御部１３は、ディスク媒体５０から再生されたデータに含まれる誤りの訂正及び検出を可能にするために、記録するデータを情報シンボルとして、冗長シンボルを付加する。またＥＣＣ制御部１３は、再生されたデータに誤りが生じているかを判断し、誤りがある場合には誤りを訂正し、或いは誤りを検出する。但し、誤りが訂正できるシンボル数は有限であり、冗長データの長さに関係する。即ち、多くの冗長データを付加するとフォーマット効率が悪化するため、誤り訂正可能シンボル数とはトレードオフとなる。ＥＣＣとしてリードソロモン（ＲＳ）符号を利用して誤り訂正を実行する場合、（冗長シンボル数／２）個までの誤りを訂正できる。バッファＲＡＭ１４は、ホストから転送されたデータを一時的に保存し、適切なタイミングでＲ／Ｗチャネル３に転送する。逆に、Ｒ／Ｗチャネル３から転送されたリードデータを一時的に保存し、ＥＣＣ復号処理などの終了後、適切なタイミングでホストに転送する。
【００３２】
ＣＰＵ２は、フラッシュＲＯＭ２１（以下、「ＦＲＯＭ２１」と略記する。）、及びＲＡＭ２２を含み、ＨＤＣ１、Ｒ／Ｗチャネル３、ＶＣＭ／ＳＰＭ制御部４、及びＤＥ５と接続される。ＦＲＯＭ２１には、ＣＰＵ２の動作プログラムが保存されている。
【００３３】
Ｒ／Ｗチャネル３は、ライトチャネル３１とリードチャネル３２とに大別され、ＨＤＣ１との間で記録するデータ及び再生されたデータを転送する。また、Ｒ／Ｗチャネル３は、ＤＥ５と接続され、記録信号の送信、再生信号の受信を実行する。詳細は後述する。
【００３４】
ＶＣＭ／ＳＰＭ制御部４は、ＤＥ５中のボイスコイルモータ５２（以下、「ＶＣＭ５２」と略記する。）とスピンドルモータ５３（以下、「ＳＰＭ５３」と略記する。）を制御する。
【００３５】
ＤＥ５は、Ｒ／Ｗチャネル３と接続され、記録信号の受信、再生信号の送信を実行する。またＤＥ５は、ＶＣＭ／ＳＰＭ制御部４と接続されている。ＤＥ５は、ディスク媒体５０、ヘッド５１、ＶＣＭ５２、ＳＰＭ５３、及びプリアンプ５４等を有している。図１の記憶システム１００においては、ディスク媒体５０が１枚であり、且つヘッド５１がディスク媒体５０の一方の面側のみに配置されている場合を想定しているが、複数のディスク媒体５０が積層配置された構成であってもよい。また、ヘッド５１は、ディスク媒体５０の各面に対応して設けられるのが一般的である。Ｒ／Ｗチャネル３により送信された記録信号は、ＤＥ５内のプリアンプ５４を経由してヘッド５１に供給され、ヘッド５１によりディスク媒体５０に記録される。逆に、ヘッド５１によりディスク媒体５０から再生された信号は、プリアンプ５４を経由してＲ／Ｗチャネル３に送信される。ＤＥ５内のＶＣＭ５２は、ヘッド５１をディスク媒体５０上の目標位置に位置決めするために、ヘッド５１をディスク媒体５０の半径方向に移動させる。また、ＳＰＭ５３は、ディスク媒体５０を回転させる。
【００３６】
ここで、図２を用いて、Ｒ／Ｗチャネル３について説明する。図２は、図１のＲ／Ｗチャネル３の構成を示す図である。Ｒ／Ｗチャネル３は、大きく分けて、ライトチャネル３１とリードチャネル３２から構成される。
【００３７】
ライトチャネル３１は、バイトインターフェース部３０１、スクランブラ３０２、ランレングス制限およびＤＣフリー符号化部３０３（以下、「ＲＬＬ／ＤＣフリー符号化部３０３」と略記する。）、低密度パリティチェック符号化部３０４（以下、「ＬＤＰＣ符号化部３０４」と略記する。）、書き込み補償部３０５（以下、「ライトプリコン部３０５」と略記する。）、ドライバ３０６を含む。
【００３８】
バイトインターフェース部３０１では、ＨＤＣ１から転送されたデータが入力データとして処理される。メディア上に書き込むデータは１セクタ単位でＨＤＣ１から入力される。このとき１セクタ分のユーザデータ（５１２バイト）だけでなく、ＨＤＣ１によって付加されたＥＣＣバイトも同時に入力される。データバスは通常１バイト（８ビット）であり、バイトインターフェース部３０１により入力データとして処理される。スクランブラ３０２はライトデータをランダムな系列に変換する。同じ規則のデータの繰り返しは、リード時における検出性能に悪影響を与え、エラーレートを悪化させるのを防ぐためである。
【００３９】
ＲＬＬ／ＤＣフリー符号化部３０３は０の最大連続長を制限するためのものである。０の最大連続長を制限することにより、自動利得制御部３１７（以下、「ＡＧＣ３１７」と略記する。）などに適したデータ系列にする。さらに、直流成分を低減し、データ検出能力の向上を図り、もって誤り訂正能力の向上を図る。詳細は後述する。
【００４０】
ＬＤＰＣ符号化部３０４は、データ系列をＬＤＰＣ符号化して冗長ビットであるパリティビットを含む系列を生成する役割を有する。ＬＤＰＣ符号化は、生成行列と呼ばれるｋ×ｎの行列に、長さｋのデータ系列を左から掛け合わせることで実行する。この生成行列に対応する検査行列Ｈに含まれる各要素は、０もしくは１であり、１の数が０の数に比べて少ないことから、低密度パリティ検査符号（Ｌｏｗ  Ｄｅｎｓｉｔｙ  Ｐａｒｉｔｙ  Ｃｈｅｃｋ  Ｃｏｄｅｓ）と呼ばれている。この１と０の配置を利用することによって、ＬＤＰＣ繰返復号部にて、効率的にエラーを訂正できる。
【００４１】
ライトプリコン部３０５は、メディア上の磁化遷移の連続による非線形歪を補償する回路である。ライトデータから補償に必要な規則を検出し、正しい位置で磁化遷移が生ずるようにライト電流波形を予め調整をする。ドライバ３０６は擬似ＥＣＬレベルに対応した信号を出力するドライバである。ドライバ３０６からの出力は図示しないＤＥ５に送られ、プリアンプ５４を通してヘッド５１に送られ、ライトデータがディスク媒体５０上に記録される。
【００４２】
リードチャネル３２は、可変利得増幅器３１１（以下、「ＶＧＡ３１１」と略記する。）、ローパスフィルタ３１２（以下、「ＬＰＦ３１２」と略記する。）、ＡＧＣ３１７、アナログ／デジタル変換器３１３（以下、「ＡＤＣ３１３」と略記する。）、周波数シンセサイザ３１４、フィルタ３１５、ソフト出力検出部３２０、ＬＤＰＣ繰返復号部３２２、同期信号検出部３２１、ランレングス制限／ＤＣフリー復号部３２３（以下、「ＲＬＬ／ＤＣフリー復号部３２３」と略記する。）、デスクランブラ３２４とから構成されている。
【００４３】
ＶＧＡ３１１及びＡＧＣ３１７は、図示しないプリアンプ５４から送られたデータのリード波形の振幅を調整する。ＡＧＣ３１７は理想的な振幅と実際の振幅を比較し、ＶＧＡ３１１に設定すべきゲインを決定する。ＬＰＦ３１２は、カットオフ周波数とブースト量を調整することができ、高周波ノイズの低減と部分応答（Ｐａｒｔｉａｌ Ｒｅｓｐｏｎｓｅ。以下、「ＰＲ」と略記する。）波形への等化の一部を担う。ＬＰＦ３１２でＰＲ波形への等化を行うが、ヘッドの浮上量変動、媒体の不均一性、モータの回転変動などの多くの要因により、アナログのＬＰＦによる完全な等化は難しいので、後段に配置され、よりフレキシビリティに富んだフィルタ３１５を用いて、再度ＰＲ波形への等化を行う。フィルタ３１５は、そのタップ係数を適応的に調整する機能を有していてもよい。周波数シンセサイザ３１４は、ＡＤＣ３１３のサンプリング用クロックを生成する。
【００４４】
ＡＤＣ３１３は、ＡＤ変換により直接同期サンプルを得る構成とした。なお、この構成の他に、ＡＤ変換により非同期サンプルを得る構成であってもよい。この場合は、ゼロ相リスタート部、タイミング制御部、及び補間フィルタをさらにＡＤＣ３１３の後段に設ければよい。非同期サンプルから同期サンプルを得る必要があり、これらのブロックがその役割を担う。ゼロ相リスタート部は初期位相を決定するためのブロックで、できるだけ早く同期サンプルを得るために用いられる。初期位相を決定した後は、タイミング制御部で理想的なサンプル値と実際のサンプル値を比較し、位相のずれを検出する。これを用いて補間フィルタのパラメータを決定することにより、同期サンプルを得ることができる。
【００４５】
ソフト出力検出部３２０は、符号間干渉に伴う復号特性の劣化を回避するために、ビタビアルゴリズムの一種であるソフト出力ビタビアルゴリズム（Ｓｏｆｔ−Ｏｕｔｐｕｔ Ｖｉｔｅｒｂｉ Ａｌｇｏｒｉｔｈｍ。以下、「ＳＯＶＡ」と略記する。）が用いられる。すなわち、近年の磁気ディスク装置の記録密度の上昇に伴い、記録された符号間の干渉が大きくなり、復号特性が劣化するといった課題を解決するため、これを克服する方式として符号間干渉による部分応答を利用した最ゆう復号（Ｐａｒｔｉａｌ Ｒｅｓｐｏｎｓｅ ＭａｘｉｍｕｍＬｉｋｅｉｈｏｏｄ。以下、「ＰＲＭＬ」と略記する。）方式を用いる。ＰＲＭＬは、再生信号の部分応答のゆう度を最大にする信号系列を求める方式である。
【００４６】
ソフト出力検出部３２０としてＳＯＶＡ方式が用いられている場合、軟判定値を出力する。例えば、ＳＯＶＡの出力として、（−０．７１、＋０．１８、＋０．４５、−０．４５、−０．９）という軟判定値が出力されたとする。これらの値は、０である可能性が大きいか、１である可能性が大きいかを数値で表している。例えば、１番目の「−０．７１」は１である可能性が大きいことを示しており、２番目の「＋０．１８」は０である可能性が大きいが１である可能性も小さくはないことを意味する。従来のビタビディテクタの出力はハード値であり、ＳＯＶＡの出力を硬判定したものである。上記の例の場合、（１、０、０、１、１）である。ハード値は、０であるか、１であるかのみを表しており、どちらの可能性が高いかという情報が失われている。このためＬＤＰＣ繰返復号部３２２に軟判定値を入力する方が復号性能が向上する。
【００４７】
ＬＤＰＣ繰返復号部３２２は、ＬＤＰＣ符号化されているデータ系列から、ＬＤＰＣ符号化前の系列に復元する役割を有する。復号化の方法としては、主に、ｓｕｍ−ｐｒｏｄｕｃｔ復号法とｍｉｎ−ｓｕｍ復号法があり、復号性能の面ではｓｕｍ−ｐｒｏｄｕｃｔ復号法が有利であるが、ｍｉｎ−ｓｕｍ復号法はハードウェアによる実現が容易である特徴を持つ。ＬＤＰＣ符号を用いる実際の復号操作では、ソフト出力検出部３２０とＬＤＰＣ繰返復号部３２２の間で繰り返し復号することにより、非常に良好な復号性能を得ることができる。このために実際はソフト出力検出部３２０とＬＤＰＣ繰返復号部３２２を複数段配列した構成が必要になる。同期信号検出部３２１は、データの先頭に付加された同期信号（Ｓｙｎｃ Ｍａｒｋ）を検出し、データの先頭位置を認識する役割を有する。
【００４８】
ＲＬＬ／ＤＣフリー復号部３２３は、ＬＤＰＣ繰返復号部３２２から出力されたデータに対して、ライトチャネル３１のＲＬＬ／ＤＣフリー符号化部３０３の逆操作を行い、元のデータ系列に戻す。詳細は後述する。
【００４９】
デスクランブラ３２４は、ライトチャネル３１のスクランブラ３０２の逆操作を行い、元のデータ系列に戻す。ここで生成されたデータはＨＤＣ１に転送される。
【００５０】
ここで、「ＤＣフリー」について説明する。図３（ａ）〜（ｂ）は、本発明の第１実施形態にかかるＤＣフリー特性の例を示す図である。図３（ａ）は、ＤＣフリーである場合とそうでない場合における軟判定値の分布例を示す図である。横軸は個数、縦軸は軟判定値を示す。また、縦軸は、中心を±０として、プラス側、マイナス側の双方の軟判定値を含む軸である。実線で示す第１特性２００は、ＤＣフリーの場合の分布を示す。また、破線で示す第２特性３００は、ＤＣフリーでない場合の分布例を示す。ＤＣフリーとは、前述したように、系列に含まれる０と１のビットの個数の比率が５０％であることを示す。いいかえると、図３（ａ）の第１特性２００に図示するように、図２のＬＤＰＣ繰返復号部３２２における軟判定値の分布において、±１／２が中心値となり、±０付近の分布量が少ないことなどをいう。一方、ＤＣフリーでない場合、たとえば、図３（ａ）の第２特性３００に図示するように、軟判定値の分布において、±０付近の分布量が増加したものとなる。
【００５１】
図３（ｂ）は、ＤＣフリーである場合とそうでない場合におけるビット誤り率特性の例を示す図である。横軸は信号対雑音比（Ｓｉｇｎａｌ  ｔｏ  Ｎｏｉｓｅ  Ｒａｔｉｏ）、縦軸はビット誤り率（Ｂｉｔ  Ｅｒｒｏｒ  Ｒａｔｅ）を示す。実線で示す第３特性２１０は、ＤＣフリーの場合のビット誤り率特性を示す。また、破線で示す第４特性３１０は、ＤＣフリーでない場合のビット誤り率特性を示す。図示するように、ＤＣフリーでない場合は、ＤＣフリーである場合と比べて、ビット誤り率が悪化することとなる。
【００５２】
図４は、図２のＲＬＬ／ＤＣフリー符号化部３０３の構成例を示す図である。ＲＬＬ／ＤＣフリー符号化部３０３は、第１ＲＬＬ符号化部６０と、第１信号処理部６２と、第２ＲＬＬ符号化部６４と、直流成分除去符号化部６６とを含む。
【００５３】
第１ＲＬＬ符号化部６０は、スクランブラ３０２から出力されたデジタル信号系列をランレングス制限符号化することによって、第１符号化系列を生成する。第１信号処理部６２は、スクランブラ３０２から出力されたデジタル信号系列に含まれる複数のビットの個数を変えずに、デジタル信号系列に対し、所定の信号処理を実行する。所定の信号処理は、デジタル信号系列に含まれる複数のビットの個数を変えなければ、任意の処理でよい。たとえば、デジタル信号系列に含まれる複数のビットのそれぞれに対し、ビット反転処理を実行する処理であってもよい。また、デジタル信号系列に含まれる複数のビットの順序を並び替えてもよい。また、ビット反転処理、ビットの順序を並び替えの双方の処理を行なってもよい。第２ＲＬＬ符号化部６４は、第１信号処理部６２から出力された信号処理部によって所定の信号処理が実行されたデジタル信号系列をランレングス制限符号化することによって、第２符号化系列を生成する。直流成分除去符号化部６６は、第１ＲＬＬ符号化部６０によって生成された第１符号化系列と、第２ＲＬＬ符号化部６４によって生成された第２符号化系列とのうち、ＤＣフリー性の高い、いずれか一方を選択して出力する。
【００５４】
具体例を用いて説明する。処理すべきデジタル信号系列が３００ビットから構成されている場合、ＲＬＬ／ＤＣフリー符号化部３０３は、３０ビットを１組として、１０回に分けて処理する。ここで、第１ＲＬＬ符号化部６０、第２ＲＬＬ符号化部６４の符号化率が３０／３１である場合、第１ＲＬＬ符号化部６０、第２ＲＬＬ符号化部６４からそれぞれ出力される１回あたりの系列のビット数は、３１ビットとなる。
【００５５】
図５は、図４の直流成分除去符号化部６６の構成例を示す図である。直流成分除去符号化部６６は、符号化系列選択部７４と、選択識別情報生成部７６と、識別情報付加部７８とを含む。符号化系列選択部７４は、第１ＲＬＬ符号化部６０によって生成された第１符号化系列と、第２ＲＬＬ符号化部６４によって生成された第２符号化系列のうち、いずれか一方の符号化系列を選択する。選択識別情報生成部７６は、符号化系列選択部７４によって選択された符号化系列を示す選択識別情報を生成する。識別情報付加部７８は、符号化系列選択部７４によって選択された符号化系列のいずれかの個所に、選択識別情報生成部７６によって生成された選択識別情報を付加する。
【００５６】
具体的に説明する。符号化系列選択部７４によって第１符号化系列が選択された場合、識別情報付加部７８において第１符号化系列に付加される選択識別情報は「０」となる。一方、符号化系列選択部７４によって第２符号化系列が選択された場合、識別情報付加部７８において第１符号化系列に付加される選択識別情報は「１」となる。いいかえると、選択識別情報「０」が付加された第１符号化系列、もしくは、選択識別情報「１」が付加された第２符号化系列がＬＤＰＣ符号化部３０４に出力される。なお、識別情報付加部７８によって選択識別情報が付加される個所は、符号化系列中の任意の一定の個所でよく、たとえば、符号化系列の最後尾に付加してもよい。詳細は後述するが、ここで付加される選択識別情報は判定ビットであり、復号側において判定ビットが付加された位置、および、判定ビットの内容を解析することにより、適切な復号処理が実現されることとなる。前述の具体例においては、１回あたり３１ビットの符号化系列に１ビットの選択識別情報が付加され合計３２ビットの系列が出力されることとなる。すなわち、ＲＬＬ／ＤＣフリー符号化部３０３全体における符号化率は、３０／３２となる。
【００５７】
また、符号化系列選択部７４は、図示しない第１連結部と第２連結部とを含んでも良い。第１連結部は、当該符号化系列選択部７４によってすでに選択された符号化系列と前記第１符号化系列とを連結させる。また、第２連結部は、当該符号化系列選択部７４によってすでに選択された符号化系列と前記第２符号化系列とを連結させる。この場合、符号化系列選択部７４は、第１連結部によって連結された系列を新たな第１符号化系列とし、第２連結部によって連結された系列を新たな第２符号化系列とし、いずれか一方の符号化系列を選択してもよい。すなわち、過去において選択された符号化系列と、現在選択の候補となっている符号化系列とを連結させたものを対象として、符号化系列選択部７４が選択判定を行なうことによって、長区間におけるＤＣフリー特性を向上できる。
【００５８】
図６（ａ）〜（ｃ）は、図５の符号化系列選択部７４の第１〜第３の構成例を示す図である。図６（ａ）は、図５の符号化系列選択部７４の第１の構成例を示す図である。第１の構成における符号化系列選択部７４は、第１比率計算部８０と、第２比率計算部８２と、選択出力部８４とを含む。
【００５９】
第１比率計算部８０は、第１符号化系列に含まれる複数のビットのうち、０を示すビットと１を示すビットとの比率を計算する。第２比率計算部８２は、第２符号化系列に含まれる複数のビットのうち、０を示すビットと１を示すビットとの比率を計算する。選択出力部８４は、第１比率計算部８０で計算された比率と、第２比率計算部８２で計算された比率とのうち、５０％に近いほうの比率に対応する符号化系列を選択して出力する。
【００６０】
具体例を用いて説明する。まず、時刻ｔ＝１において、第１ＲＬＬ符号化部６０、第２ＲＬＬ符号化部６４から、それぞれ３１ビットの符号化系列が出力されたと仮定する。この場合、第１比率計算部８０、第２比率計算部８２は、それぞれの符号化系列に含まれるビットを解析して、比率を計算する。ここで、第１比率計算部８０に入力される符号化系列に含まれるビットのうち、０を示すビットが１４ビット、１を示すビットが１７ビットである場合、比率は、第１比率計算部８０によって以下のように計算される。
比率ｔ＝１  ＝  （０を示すビット数＋１）／（符号化系列のビット数＋１） ＝  （１４＋１）／（３１＋１）≒  ４６．９％
【００６１】
また、第２比率計算部８２に入力される符号化系列に含まれるビットのうち、０を示すビットが１２ビット、１を示すビットが１９ビットである場合、比率は、第２比率計算部８２によって、以下のように計算される。この場合、第１符号化系列のほうが比率が５０％に近いため、ｔ＝１においては、選択出力部８４によって第１符号化系列が選択される。また、選択された第１符号化系列にかかる０を示すビット数「１４」が記憶される。なお、上式、下式の右辺の分子において、それぞれ「１」、「０」を加算しているのは、それぞれの選択識別情報を「０」、「１」と仮定しているためである。また、上式、下式の右辺の分母において、「１」を加算しているのは、選択識別情報を含めた系列の０の個数の割合を計算するためである。
比率ｔ＝１  ＝  （０を示すビット数＋０）／（符号化系列のビット数＋１） ＝  １２／（３１＋１） ＝  ３７．５％
【００６２】
つぎに、ｔ＝２においてもｔ＝１の場合と同様に、第１ＲＬＬ符号化部６０、第２ＲＬＬ符号化部６４から、それぞれ３１ビットの符号化系列が出力されたとする。ここで、第１比率計算部８０に入力される符号化系列に含まれるビットのうち、０を示すビットが１１ビット、１を示すビットが２０ビットである場合、比率は、以下のように計算される。
比率ｔ＝２  ＝  （０を示すビット数＋１）／（（符号化系列のビット数＋１）×ｔ） ＝  （１４＋１＋１１＋１）／（（３１＋１）×２） ≒  ４２．２％
【００６３】
上記は、ｔ＝１の場合と異なり、第１比率計算部８０は、ｔ＝１において選択された符号化系列とｔ＝２における第１符号化系列とが第１連結部によって連結された系列について、比率を計算する。すなわち、ｔ＝１で選択された第１符号化系列のうち０を示すビットの個数「１４＋１」と、ｔ＝２における第１符号化系列のうちの０を示すビットの個数「１１＋１」と上式の分子において加算されることとなる。また、分母は、２組の符号化系列にかかるビット数となる。
【００６４】
また、第２比率計算部８２に入力される符号化系列に含まれるビットのうち、０を示すビットが１７ビット、１を示すビットが１４ビットである場合、第２比率計算部８２によって、以下のように比率が計算される。この場合、第２符号化系列のほうが比率が５０％に近いため、ｔ＝２においては、選択出力部８４によって第２符号化系列が選択される。
比率ｔ＝２  ＝  （０を示すビット数＋０）／（（符号化系列のビット数＋１）×ｔ） ＝  （１４＋１＋１７＋０）／（（３１＋１）×２） ＝  ５０．０％
【００６５】
以下、同様にｔ＝３以降においても比率が計算される。ここで、ｔ＝ｋにおける比率は、以下のように表される。ただし、ｋは１以上の整数とする。また、Ｎｂｉｔ（ｍ）とは、ｔ＝ｍにおいて選択された符号化系列に含まれるビットのうち、０を示すビットの個数を示す。ただし、Ｎｂｉｔ（ｋ）は、比率を計算する対象となる符号化系列に含まれるビットのうち、０を示すビットの個数を示す。なお、比率を計算する対象となる符号化系列には、選択識別情報も含まれるものとする。
比率ｔ＝ｋ  ＝  Σｋｍ＝１Ｎｂｉｔ（ｍ）／（３２×ｋ）
【００６６】
図６（ｂ）は、図５の符号化系列選択部７４の第２の構成例を示す図である。第２の構成における符号化系列選択部７４は、第１合算部８６と、第２合算部８８と、選択出力部８４とを含む。第１合算部８６は、第１符号化系列に含まれる複数のビットを合算して第１合算値を生成する。第２合算部８８は、第２符号化系列に含まれる複数のビットを合算して第２合算値を生成する。符号化系列検出部は、第１合算部８６によって生成された第１合算値と、第２合算部８８によって生成された第２合算値とを比較して、第１符号化系列と第２符号化系列のうち、小さいほうの合算値に対応する符号化系列を検出する。選択出力部８４は、第１符号化系列と、第２符号化系列とのうち、系列検出部によって検出された符号化系列を選択して出力する。
【００６７】
具体例を用いて説明する。まず、ｔ＝１において、第１ＲＬＬ符号化部６０、第２ＲＬＬ符号化部６４から、それぞれ３１ビットの符号化系列が出力されたと仮定する。この場合、第１合算部８６、第２合算部８８は、それぞれの符号化系列に含まれるビットを合算する。合算においては、０を「＋１」に置換えると共に、１を「−１」に置換えて合計してもよい。このように合算することによって、０と１を示すビットの個数が等しい場合、合算値は０となる。したがって、選択出力部８４においては、合算値が０に近い符号化系列を選べばよく、たとえば、合算値の絶対値が小さい符号化系列を選べばよい。なお、この手法は、連続デジタル加算（Ｒｕｎｎｉｎｇ  Ｄｉｇｉｔａｌ  Ｓｕｍｍａｔｉｏｎ。以下、「ＲＤＳ」と略称する。）とも呼ばれる。
【００６８】
ここで、ｔ＝１において、第１合算部８６に入力される符号化系列に含まれる３１個のビットのうち、０を示すビットが１４ビット、１を示すビットが１７ビットである場合、比率は、以下のように計算される。なお、右辺の第１項において「１」を加算しているのは、選択識別情報を０と仮定しているためである。
ＲＤＳabs  ＝  ｜（１４＋１）×（＋１）＋１７×（−１）｜  ＝  ２
【００６９】
また、第２合算部８８に入力される符号化系列に含まれるビットのうち、０を示すビットが１２ビット、１を示すビットが１９ビットである場合、比率は、以下のように計算される。この場合、第１符号化系列のＲＤＳのほうが小さいため、ｔ＝１においては、選択出力部８４によって第１符号化系列が選択される。また、ここでは、絶対値を計算する前の第１符号化系列についてのＲＤＳが「ＲＤＳ１＝−２」として記憶される。なお、右辺の第２項において「１」を加算しているのは、選択識別情報を１と仮定しているためである。
ＲＤＳabs  ＝  ｜１２×（＋１）＋（１９＋１）×（−１）｜  ＝  ６
【００７０】
つぎに、ｔ＝２において、ｔ＝１の場合と同様に、第１ＲＬＬ符号化部６０、第２ＲＬＬ符号化部６４から、それぞれ３１ビットの符号化系列が出力されたとする。ここで、第１合算部８６に入力される符号化系列に含まれるビットのうち、０を示すビットが１１ビット、１を示すビットが２０ビットである場合、ＲＤＳは、以下のように計算される。ｔ＝１の場合と異なり、ｔ＝２においては、ｔ＝１において選択された符号化系列にかかるビット数も考慮にいれて計算されることとなる。
ＲＤＳabs  ＝  ｜ＲＤＳ１＋（１１＋１）×（＋１）＋２０×（−１）｜  ＝  ｜−２＋（−８）｜  ＝  １０
【００７１】
また、第２合算部８８に入力される符号化系列に含まれるビットのうち、０を示すビットが１７ビット、１を示すビットが１４ビットである場合、比率は、以下のように計算される。この場合、第２符号化系列のＲＤＳのほうが小さいため、ｔ＝２においては、選択出力部８４によって第１符号化系列が選択される。また、ＲＤＳ2＝０が記憶される。
ＲＤＳabs  ＝  ｜ＲＤＳ１＋１７×（＋１）＋（１４＋１）×（−１）｜  ＝  ｜−２＋（＋２）｜  ＝  ０
【００７２】
以下、同様にｔ＝３以降においてもＲＤＳabsが計算される。ここで、ｔ＝ｋにおけるＲＤＳabs（ｋ）は、以下のように表される。ただし、ｔは１以上の整数とする。また、Ｎｂｉｔ０（ｍ）とは、ｔ＝ｍにおいて選択された符号化系列および選択識別情報に含まれるビットのうち、０を示すビットの個数を示す。また、Ｎｂｉｔ１（ｍ）とは、ｔ＝ｍにおいて選択された符号化系列および選択識別情報に含まれるビットのうち、１を示すビットの個数を示す。ただし、Ｎｂｉｔ０（ｋ）、Ｎｂｉｔ１（ｋ）は、合算値を計算する対象となる符号化系列に含まれるビットのうち、それぞれ、０を示すビットの個数、１を示すビットの個数を示す。
ＲＤＳabs（ｋ）＝｜ＲＤＳ（ｋ−１）＋Ｎｂｉｔ０（ｋ）×（＋１）＋Ｎｂｉｔ１（ｋ）×（−１）｜  ＝  ｜Σｋｍ＝１（Ｎｂｉｔ０（ｍ）×（＋１）＋Ｎｂｉｔ１（ｍ）×（−１））｜
【００７３】
上記における符号化系列選択部７４の動作は、ある時刻においては区間演算処理を行ないつつ、過去の連続する時刻間において移動演算処理を行なっている点が特徴となる。このように、区間処理と移動処理を組み合わせることによって、長区間、たとえば、３００ビットの系列全体において、ＤＣフリー性が向上されることとなる。
【００７４】
なお、第１合算部８６、第２合算部８８における合算処理は、符号化系列に含まれる０もしくは１を示すビットをそのまま合計してもよい。この場合、選択出力部８４においては、合算値が符号化系列の個数の半分の値に近いほうに対応する符号化系列が選択されることとなる。
【００７５】
図６（ｃ）は、図５の符号化系列選択部７４の第３の構成例を示す図である。第３の構成における符号化系列選択部７４は、第１移動加算部９０と、第１最大値検出部９２と、第２移動加算部９４と、第２最大値検出部９６と、選択出力部８４とを含む。第１移動加算部９０は、第１符号化系列に含まれる複数のビットを移動加算を計算することによって、複数のビットと同数の第１移動加算値を生成する。第１最大値検出部９２は、第１移動加算部９０によって生成された複数の第１移動加算値のうち、最大値を検出する。第２移動加算部９４は、第２符号化系列に含まれる複数のビットを移動加算することによって、複数のビットと同数の第２移動加算値を生成する。第２最大値検出部９６は、第２移動加算部９４によって生成された複数の第２移動加算値のうち、最大値を検出する。符号化系列検出部は、第１最大値検出部９２によって検出された最大値と、第２最大値検出部９６によって検出された最大値とを比較して、第１符号化系列と第２符号化系列のうち、小さいほうの最大値に対応する符号化系列を検出する。選択出力部８４は、第１符号化系列と、第２符号化系列とのうち、系列検出部によって検出された符号化系列を選択して出力する。
【００７６】
符号化系列選択部７４の第３の構成例は、第２の構成例と同様に、第１移動加算部９０、第２移動加算部９４において、それぞれの符号化系列のＲＤＳを計算することによって、選択出力部８４が符号化系列を選択する。第３の構成例においては、３２ビットのＲＤＳの計算途中における最大値が小さいほうの符号化系列を選択する点で、３２ビットのＲＤＳ計算の最終計算値のみ考慮して０に近い符号化系列を選択する第２の構成例と異なる。言い換えると、第３の構成例は、所定の区間においても、複数の区間においても、移動演算によって選択処理を行なっている。このような態様をとることによって、区間途中においてもＤＣフリー性の良い系列を選択できる。
【００７７】
ここで、「ＲＤＳの計算途中における最大値」は、時刻ｔごとに、以下で導出される。ただし、Ｍｉｎ｛ｙ（０）、ｙ（１）｝とは、小さいほうの値を選択し、選択したほうの系列の番号を出力する関数を示す。たとえば、ｙ（０）＞ｙ（１）の場合、Ｓ（ｔ）は、１となる。また、ｍａｘ｛ｘ｝とは、ｘのうち、最大値を検出する関数を示す。また、ｋは、３２×（ｔ−１）＋１〜３２×ｔの範囲の値を示す。また、Ｂｉｔ（ｍ、ｊ）は、第ｊ符号化系列のうち、ｍ番目のビットが０である場合は＋１を示し、また、１である場合は−１を示す。
Ｓ（ｔ）＝Ｍｉｎ｛ＭａｘＲＤＳ（１）、ＭａｘＲＤＳ（２）｝
ＭａｘＲＤＳ（１）  ＝  ｍａｘ｛ＲＤＳ（ｋ、１）｝
ＭａｘＲＤＳ（２）  ＝  ｍａｘ｛ＲＤＳ（ｋ、２）｝
ＲＤＳ（ｋ、１）  ＝  ｜Σｋｍ＝１Ｂｉｔ（ｍ、１）｜
ＲＤＳ（ｋ、２）  ＝  ｜Σｋｍ＝１Ｂｉｔ（ｍ、２）｜
【００７８】
また、Ｂｉｔ（ｍ、１）、Ｂｉｔ（ｍ、２）は、ｔが増加するごとに、選択された系列に係るビットを下記のように書き換えた後に、上述の式等が計算されることとなる。
Ｂｉｔ（ｍ、１）＝Ｂｉｔ（ｍ、２）＝Ｂｉｔ（ｍ、Ｓ（ｔ−１））  ：ｍ＝（ｔ−１）×３２＋１〜ｔ×３２、ｔ≠１
【００７９】
ここで、図６（ｃ）に示す符号化系列選択部７４の第３の構成例の動作について、図６（ｂ）に示す符号化系列選択部７４の第２の構成例の動作と比較する。図７は、図６（ｂ）と図６（ｃ）にそれぞれ示す符号化系列選択部７４の動作の相違を示す図である。横軸は時間、縦軸はＲＤＳを示す。ここで、４００Ａは、第１符号化系列におけるＲＤＳの推移を示す。また、４００Ｂは、第２符号化系列におけるＲＤＳの推移を示す。図６（ｂ）に示す符号化系列選択部７４の第２の構成例においては、ＲＤＳの区間演算の最終値であるＲＤＳＡとＲＤＳＢとを比較して小さいほうの符号化系列を選択する。図７においては、ＲＤＳＡ＜ＲＤＳＢであるので、選択出力部８４は、第１符号化系列を選択することとなる。一方、図６（ｃ）に示す符号化系列選択部７４の第３の構成例においては、それぞれのビットにおけるＲＤＳ、すなわち、３２個のビットを順次移動演算処理した後の絶対値のうち、最大値を比較して、小さいほうの符号化系列を選択する。図７においては、第１符号化系列については、ＭａｘＡが最大値であり、また、第２符号化系列については、ＭａｘＢが最大値となる。ここでは、ＭａｘＡ＞ＭａｘＢであるので、選択出力部８４は、第２符号化系列を選択することとなる。いずれの構成例を符号化系列選択部７４に適用した場合においても、ＤＣフリー性の高い符号化系列を選択することができる。
【００８０】
図８は、図２のＲＬＬ／ＤＣフリー復号部３２３の構成例を示す図である。ＲＬＬ／ＤＣフリー復号部３２３は、判定ビット取得部６８と、ＲＬＬ復号部７０と、第２信号処理部７２とを含む。判定ビット取得部６８は、ＬＤＰＣ繰返復号部３２２によって入力された符号化系列に付加されている所定の判定ビットを取得する。ＲＬＬ復号部７０は、ＬＤＰＣ繰返復号部３２２によって入力された符号化系列をランレングス制限復号することによってデジタル信号系列を生成する。第２信号処理部７２は、ＲＬＬ復号部７０によって生成されたデジタル信号系列に対し、判定ビット取得部６８によって取得された判定ビットに応じて、第１信号処理部６２で実行された所定の信号処理と逆の信号処理を実行して出力する処理を実行する。たとえば、図４の第１信号処理部６２において、ビット反転処理、および／または、ビットの順序を入れ替える処理を行なっていた場合、ビットの反転処理および／またはその入れ替えられた系列を元に戻す入れ替える処理とを実行する。もしくは、判定ビット取得部６８によって取得された判定ビットに応じて、第２信号処理部７２は、デジタル信号系列に含まれる複数のビットをそのまま出力する処理を実行する。
【００８１】
上述したこれらの構成は、ハードウエア的には、任意のコンピュータのＣＰＵ、メモリ、その他のＬＳＩで実現でき、ソフトウエア的にはメモリにロードされた通信機能のあるプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
【００８２】
本第１実施形態によれば、同一のＲＬＬ符号化を実行することによって、回路規模の増大を伴うことなく、ＤＣフリー性が良い系列を生成できる。ＲＬＬ符号化する前に、任意の信号系列と、任意の信号系列に所定の信号処理を実行した後の２つの系列とを対象とすることによって、生成される系列は全く異なるため、統計的にＤＣフリー性の良い系列が生成できる。また、この所定の信号処理を信号系列のビット数を変えずに実行することによって、符号化利得の減少を回避できる。さらに、信号処理の処理内容を任意に変更することによって、さまざまな系列を生成できるので、選択の幅を広げられる。そのため、よりＤＣフリー特性の良い系列を生成することができる。したがって、ハードディスクのような符号化率を低く設定できないようなアプリケーションにおいて好適となる。また、同一のＲＬＬ符号化回路を用いることによって、回路構成を単純化でき、また、低規模にできる。
【００８３】
また、ビット反転処理、および／または、ビットの順序を並び替えることによって、ランレングス制限符号化の対象となる系列に含まれるビットの個数を増加せずに、異なる系列を生成できる。また、系列に含まれるビットの個数が増加しないため、全体の符号化率を低下させずに符号化系列が得られる。また、異なる系列を生成するために実行する所定の処理をビット反転処理、および／または、ビットの順序を並び替える処理とすることによって、単純な回路構成で所定の処理を実現できる。また、いずれの符号化系列が選択されたことを示す情報を符号化系列に付加することによって、復号側にて、容易に選択された符号化系列を判別できる。
【００８４】
過去において選択された符号化系列と、現在選択の候補となっている符号化系列とを連結させたものを対象として、符号化系列選択部７４が選択判定を行なうことによって、長区間におけるＤＣフリー特性を向上できる。符号化系列選択部７４において、区間処理と移動処理を組み合わせてＲＤＳを計算することによって、長区間、たとえば、３００ビットの系列全体において、ＤＣフリー性が向上できる。また、０を示すビットと１を示すビットとの比率が５０％に近いほうを選択することによって、ＤＣフリー性の高い符号化系列が選択できる。また、符号化系列に含まれる複数のビットを合算し、より小さい合算値に対応する系列を選択することによって、ＤＣフリー性の高い符号化系列が選択できる。また、符号化系列に含まれる複数のビットを移動加算した結果のうちの最大値を用いて系列を選択することによって、ＤＣフリー性の高い符号化系列が選択できる。符号化側において実行されたＤＣフリー符号化に対応する処理を実行することによって、元のデジタル信号系列を復号できる。ＤＣフリー性の高い符号化処理を実行することによって、より高速に記憶システムにアクセスすることができる。また、余分なハードウェアを搭載する必要がなくなるので、低規模な半導体集積回路を実現できる。
【００８５】
本第１実施形態において、Ｒ／Ｗチャネル３は、１つの半導体基板上に一体集積化されてもよい。また、本第１実施形態の符号化系列選択部７４において、区間演算処理、もしくは、移動演算処理として説明した。しかしながらこれにかぎらず、区間平均処理、もしくは、移動平均処理を行なうことによって、ＤＣフリー性の高い符号化系列の選別を行なってもよい。この場合であっても、同様の効果を得ることができる。また、ＲＬＬ／ＤＣフリー符号化部３０３の構成において、所定の信号処理を実行する第１信号処理部６２を用いて、異なる２つの信号系列を生成するとして説明した。しかしながらこれにかぎらず、複数の信号処理部を用いて複数の信号系列を生成してもよい。たとえば、ビット反転処理、ビットの順序を入れ替える処理、ビット反転処理及びビットの順序を入れ替える処理をそれぞれ実行する信号処理装置を備えていてもよい。この場合、４つのうちいずれの系列が選択されたことを示す判定ビットを２ビットとすることによって、復号側において適切な復号処理が実現できる。また、信号処理を行なわない系列も含め、４つの異なる系列を生成することができる。また、選択肢を増やせるので、ＤＣフリー性の高い系列が生成される可能性を向上できる。
【００８６】
（第２実施形態）
第２実施形態は、誤り訂正符号化／復号技術に関し、特に、記憶媒体に記憶されるデータに対して誤り訂正符号化もしくは誤りを訂正する信号符号化装置、信号復号装置、信号処理装置、および記憶システムに関する。
【００８７】
まず、第２実施形態に関する背景技術について説明する。
【００８８】
近年、ハードディスクを用いた記憶装置は、パーソナルコンピュータ、ハードディスクレコーダー、ビデオカメラ、携帯電話など、さまざまな分野において必須の装置となりつつある。ハードディスクを用いた記憶装置は、適用される分野によって求められる仕様もさまざまである。たとえば、パーソナルコンピュータに搭載するハードディスクには、高速性、大容量性が求められる。高速性、大容量性を向上するためには、訂正能力の高い誤り訂正符号化をする必要がある。しかしながら、高速化が進むほど単位時間あたりに扱うデータの量が増えるため、単位時間あたりの誤りも比例して増大する。そうすると、高い誤り訂正能力を有する訂正方式を用いない限り、ハードディスクに対する再読込みが発生するため、ハードディスクへのアクセスに要する時間が増大し、高速化のボトルネックとなる。
【００８９】
一般的に、誤り訂正符号化の対象となる信号系列として、直流成分が低減もしくは除去された（以下、「ＤＣフリー」、もしくは、「ＤＣフリー性」と表記する）信号系列が望まれている。ＤＣフリーとは、周波数が０、すなわち直流成分におけるスペクトルが０であることを意味する。いいかえると、変調前の信号系列に含まれる複数のビットにおいて、０と１の比率が等しいことなどを意味する。ＤＣフリー性を信号系列に備えるさせることによって、記憶媒体に記憶された変調データの記録パターンから得られる再生信号の平均レベルが、変調前の信号系列のパターンによらずに、所定の信号系列長の範囲内で常に一定となる性質をもち、ノイズ耐性が向上する。すなわち、ＤＣフリー性の低い信号系列においては、ビタビアルゴリズムを用いたデータ検出において、検出確率が低下することとなる。これにより、低密度パリティチェック復号やリードソロモン復号における訂正能力も低減されることとなる。また、一般的に、サンプリングタイミングとデータとの同期を確保するために、ランレングス制限符号が用いられている。ランレングス制限符号とは、０の最大連続長や１の最大連続長を制限する符号化である。
【００９０】
従来、信号系列のＤＣフリー性を満たしつつ、ランレングス制限符号化する方法として、それぞれ異なる冗長ビットが付加された信号系列に対し、ランレングス制限符号化を実行し、符号化された複数の系列のうち、ＤＣフリーに近い特性を有する系列を選択する方法が提案されていた（たとえば、特開２００２−１００１２５号公報参照。）。また、複数の異なる性質を有するランレングス制限符号化を実行し、符号化された複数の系列のうち、ＤＣフリーに近い特性を有する系列を選択する方法が提案されていた（たとえば、特開２００４−２１３８６３号公報参照。）。
【００９１】
第２実施形態が解決しようとする課題について述べる。
【００９２】
本発明者はこうした状況下、以下の課題を認識するに至った。すなわち、符号化側において、複数の符号化系列の中からＤＣフリー特性の良い系列を選択することによってＤＣフリー符号化を実現する場合、選択の対象となる複数の符号化系列においてＤＣフリー特性の良い符号化系列が存在しない場合がある。また、復号側において、符号化側で選択された符号化系列を判定する際に、その判定が誤ることによって、誤りが増大するといった課題である。
【００９３】
本発明の第２実施形態はこうした状況に鑑みてなされたものであり、その総括的な目的は、より少ない回路規模で、ランレングス制限を満たしつつ、ＤＣフリー特性を向上できる信号符号化装置、信号復号装置、信号処理装置、および記憶システムを提供することにある。
【００９４】
第２実施形態における課題を解決するための手段について述べる。
【００９５】
上記課題を解決するために、第２実施形態のある態様の信号符号化装置は、所定の信号系列をランレングス制限符号化することによって、ランレングス符号化系列を生成するランレングス制限符号化部と、ランレングス制限符号化部によって生成されたランレングス符号化系列をリードソロモン符号化するリードソロモン符号化部と、を備える。リードソロモン符号化部は、ランレングス符号化系列をリードソロモン符号化するための冗長系列を生成する冗長系列生成部と、冗長系列生成部によって生成された冗長系列を前記ランレングス符号化系列に付加する冗長系列付加部と、を含む。
【００９６】
ここで、「付加」とは、加算、乗算、挿入などを含む。この態様によると、ランレングス制限符号化を行なった後にリードソロモン符号化を行なうことによって、復号側においては、リードソロモン復号を行なった後の信号系列に対してランレングス制限復号を行なうことになるので、誤り訂正能力を向上できる。
【００９７】
本発明の第２実施形態の別の態様もまた、信号符号化装置である。この装置は、デジタル信号系列をランレングス制限符号化することによって、第１ランレングス符号化系列を生成する第１ランレングス制限符号化部と、デジタル信号系列に含まれる複数のビットの個数を変えずに、デジタル信号系列に対し、所定の信号処理を実行する信号処理部と、信号処理部によって所定の信号処理が実行されたデジタル信号系列をランレングス制限符号化することによって、第２ランレングス符号化系列を生成する第２ランレングス制限符号化部と、第１ランレングス制限符号化部によって生成された第１ランレングス符号化系列と、第２ランレングス制限符号化部によって生成された第２ランレングス符号化系列とのうち、いずれか一方を選択して出力する直流成分除去符号化部と、直流成分除去符号化部によって出力されたランレングス符号化系列をリードソロモン符号化することによって、冗長系列を生成するリードソロモン符号化部と、リードソロモン符号化部によって生成された冗長系列を直流成分除去符号化部によって出力されたランレングス符号化系列に付加する冗長系列付加部と、を備える。
【００９８】
ここで、「直流成分除去符号化部」とは、入力された系列の直流成分を除去するもしくは低減する回路などを含み、また、ＤＣフリー性の高い系列を出力する回路などを含む。また、「第１ランレングス制限符号化部」と「第２ランレングス制限符号化部」とは、同一の性質を有するランレングス制限符号化回路であってもよい。また、同一の性質を有するランレングス制限符号化回路である場合、「第１ランレングス制限符号化部」と「第２ランレングス制限符号化部」は、１つのランレングス制限符号化回路を時分割で実行することにより実現されてもよい。
【００９９】
この態様によると、異なる２つの系列に対して、ランレングス制限符号化を実行するので、全く異なる２つの符号化系列を得ることができる。ランレングス制限符号化の対象となる系列に含まれるビットの個数を増加しないように所定の信号処理を実行することによって、全体の符号化率を低下させずに符号化系列が得られる。２つの符号化系列は全く異なるため、ＤＣフリー性の高い符号化系列を選択するにあたり、より好ましい選択肢となる。より好ましい選択肢の中からＤＣフリー性の高い符号化系列を選択することによって、よりＤＣフリー性の高い符号化系列を選択できる可能性が向上できる。また、同一のランレングス制限符号化回路を用いることによって、回路構成を単純化でき、また、低規模にできる。また、ランレングス制限符号化を行なった後にリードソロモン符号化を行なうことによって、復号側においては、リードソロモン復号を行なった後の信号系列に対してランレングス制限復号を行なうことになる。いいかえると、リードソロモン復号によって誤り訂正された系列に対して、ランレングス制限復号が実行される。そうすると、符号化側において選択された符号化系列を正確に判別でき、全体としての誤り訂正能力を向上できる。
【０１００】
信号処理部は、デジタル信号系列に含まれる複数のビットのそれぞれに対し、ビット反転処理を実行してもよい。また、信号処理部は、デジタル信号系列に含まれる複数のビットの順序を並び替えてもよい。また、信号処理部は、デジタル信号系列に含まれる複数のビットのそれぞれに対し、ビット反転処理をした後に、ビットの順序を並び替え処理を実行してもよい。この態様によると、ビット反転処理、および／または、ビットの順序を並び替えることによって、ランレングス制限符号化の対象となる系列に含まれるビットの個数を増加せずに、異なる系列を生成できる。また、系列に含まれるビットの個数が増加しないため、全体の符号化率を低下させずに符号化系列が得られる。また、異なる系列を生成するために実行する所定の処理をビット反転処理、および／または、ビットの順序を並び替える処理とすることによって、単純な回路構成で所定の処理を実現できる。
【０１０１】
直流成分除去符号化部は、第１符号化系列と第２符号化系列のうち、いずれか一方の符号化系列を選択する符号化系列選択部と、符号化系列選択部によって選択された符号化系列を示す選択識別情報を生成する選択識別情報生成部と、符号化系列選択部によって選択された符号化系列のいずれかの個所に、選択識別情報生成部によって生成された選択識別情報を付加する識別情報付加部と、を有してもよい。また、符号化系列選択部は、当該符号化系列選択部によってすでに選択された符号化系列と前記第１符号化系列とを連結させる第１連結部と、当該符号化系列選択部によってすでに選択された符号化系列と前記第２符号化系列とを連結させる第２連結部と、を有してもよい。符号化系列選択部は、第１連結部によって連結された系列を新たな第１符号化系列とし、第２連結部によって連結された系列を新たな第２符号化系列とし、いずれか一方の符号化系列を選択してもよい。第１ランレングス制限符号化部から出力された第１符号化系列のいずれかの個所に第１判定ビットを付加する第１付加部と、第２ランレングス制限符号化部から出力された第２符号化系列のいずれかの個所に第１判定ビットがビット反転された第２判定ビットを付加する第２付加部と、をさらに備えてもよい。
【０１０２】
ここで、「すでに選択された符号化系列と前記第１符号化系列とを連結させる」とは、過去において選択された符号化系列と、現在選択の候補となっている系列とを連結させることなどを含む。この態様によると、いずれの符号化系列が選択されたことを示す情報を符号化系列に付加することによって、復号側にて、容易に選択された符号化系列を判別できる。
【０１０３】
符号化系列選択部は、第１比率計算部と、第２比率計算部と、選択出力部と、を有してもよい。第１比率計算部は、第１ランレングス制限符号化部によって生成された、もしくは、第１連結部によって連結された第１符号化系列に含まれる複数のビットのうち、０を示すビットと１を示すビットとの比率を計算する。第２比率計算部は、第２ランレングス制限符号化部によって生成された、もしくは第２連結部によって連結された第２符号化系列に含まれる複数のビットのうち、０を示すビットと１を示すビットとの比率を計算する。選択出力部は、第１比率計算部で計算された比率と、第２比率計算部で計算された比率とのうち、５０％に近いほうの比率に対応する符号化系列を選択して出力する。この態様によると、０を示すビットと１を示すビットとの比率が５０％に近いほうを選択することによって、ＤＣフリー性の高い符号化系列が選択できる。
【０１０４】
符号化系列選択部は、第１合算部と、第２合算部と、符号化系列検出部と、選択出力部と、を有してもよい。第１合算部は、第１ランレングス制限符号化部によって生成された、もしくは、第１連結部によって連結された第１符号化系列に含まれる複数のビットを合算して第１合算値を生成する。第２合算部は、第２ランレングス制限符号化部によって生成された、もしくは、第２連結部によって連結された第２符号化系列に含まれる複数のビットを合算して第２合算値を生成する。符号化系列検出部は、第１合算部によって生成された第１合算値の絶対値と、第２合算部によって生成された第２合算値の絶対値とを比較して、第１符号化系列と第２符号化系列のうち、小さいほうの合算値に対応する符号化系列を検出する。選択出力部は、第１符号化系列と、第２符号化系列とのうち、系列検出部によって検出された符号化系列を選択して出力する。
【０１０５】
ここで、「合算値」とは、系列に含まれるビットを加算することなどを含む。また、「系列に含まれる複数のビット」とは、０もしくは１を示すビットなどを含み、また、０を示すビットを＋１と置換え、１を示すビットを−１と置換えた場合におけるビットなども含む。この態様によると、符号化系列に含まれる複数のビットを合算し、より小さい合算値に対応する系列を選択することによって、ＤＣフリー性の高い符号化系列が選択できる。
【０１０６】
符号化系列選択部は、第１移動加算部と、第１最大値検出部と、第２移動加算部と、第２最大値検出部と、符号化系列検出部と、選択出力部と、を有してもよい。第１移動加算部は、第１ランレングス制限符号化部によって生成された、もしくは、第１連結部によって連結された第１符号化系列に含まれる複数のビットを移動加算することによって、複数のビットと同数の第１移動加算値を生成する。第１最大値検出部は、第１移動加算部によって生成された複数の第１移動加算値のうち、最大値を検出する。第２移動加算部は、第２ランレングス制限符号化部によって生成された、もしくは、第２連結部によって連結された第２符号化系列に含まれる複数のビットを移動加算することによって、複数のビットと同数の第２移動加算値を生成する。第２最大値検出部は、第２移動加算部によって生成された複数の第２移動加算値のうち、最大値を検出する。符号化系列検出部は、第１最大値検出部によって検出された最大値と、第２最大値検出部によって検出された最大値とを比較して、第１符号化系列と第２符号化系列のうち、小さいほうの最大値に対応する符号化系列を検出する。選択出力部は、第１符号化系列と第２符号化系列とのうち、系列検出部によって検出された符号化系列を選択して出力する。
【０１０７】
ここで、「移動加算する」とは、移動加算し、さらに、絶対値を計算することなどを含む。この態様によると、符号化系列に含まれる複数のビットを移動加算した結果のうちの最大値を用いて系列を選択することによって、ＤＣフリー性の高い符号化系列が選択できる。
【０１０８】
冗長系列付加部は、リードソロモン符号化部によって生成された冗長系列を複数の組に分割する分割部を有してもよい。分割部によって分割された組を、ランレングス符号化系列のいずれかの個所であって、組ごとにそれぞれ異なる個所に付加してもよい。冗長系列付加部は、分割部によって分割された組ごとに、等間隔で、ランレングス符号化系列に付加してもよい。この態様によると、ランレングス符号化系列のいずれかの個所に、複数の組に分割された冗長系列をそれぞれ異なる個所に分散して付加することによって、冗長系列が付加された後の系列のＲＬＬ性、および、ＤＣフリー特性を向上できる。また、組ごとに等間隔で付加することによって、冗長系列が付加された後の系列のＲＬＬ性、および、ＤＣフリー特性をより向上できる。
【０１０９】
分割部は、リードソロモン符号化部によって生成された冗長系列に含まれる複数のビットのうち、いずれか２以上のビットを１組として、分割してもよい。分割部は、リードソロモン符号化部によって生成された冗長系列に含まれる複数のビットのうち、２Ｎ（Ｎは１以上の整数）個のビットを１組として、分割してもよい。この態様によると、ランレングス符号化系列に偶数個ずつ冗長系列を付加することによって、冗長系列が付加された後の系列のＲＬＬ性をより向上できる。
【０１１０】
本発明の第２実施形態のさらに別の態様は、信号復号装置である。この装置は、所定の冗長系列が挿入された第１信号系列を入力する入力部と、入力部によって入力された第１信号系列のうち、冗長系列の挿入個所を検出する冗長系列検出部と、冗長系列検出部によって検出された挿入個所にしたがって、入力部によって入力された第１信号系列から冗長系列を切り離して、第２信号系列を取得する冗長系列取得部と、冗長系列取得部によって切り離された冗長ビットを用いて、冗長系列取得部によって取得された第２信号系列の誤りを訂正するリードソロモン復号部と、リードソロモン復号部によって誤りが検査された第２信号系列に対し、ランレングス制限復号を実行するランレングス制限復号部と、を備える。この態様によると、リードソロモン復号を行なった後の信号系列に対してランレングス制限復号を行なうことによって、誤り訂正能力を向上できる。
【０１１１】
本発明の第２実施形態の別の態様もまた、信号復号装置である。この装置は、入力部と、判定ビット取得部と、ランレングス制限復号部と、信号処理部と、を備える。入力部は、所定の判定ビットが付加された符号化系列を入力する。判定ビット取得部は、入力部によって入力された符号化系列に付加されている所定の判定ビットを取得する。ランレングス制限復号部は、入力部によって入力された符号化系列をランレングス制限復号することによってデジタル信号系列を生成する。信号処理部は、ランレングス制限復号部によって生成されたデジタル信号系列に対し、判定ビット取得部によって取得された判定ビットに応じて、デジタル信号系列に含まれる複数のビットのそれぞれをビット反転して出力する処理、もしくは、デジタル信号系列に含まれる複数のビットをそのまま出力する処理のいずれかの処理を実行する。また、信号処理部は、デジタル信号系列に含まれる複数のビットのそれぞれをビット反転して出力する処理に代えて、デジタル信号系列に含まれる複数のビットの順序を入れ替える処理を実行してもよい。この態様によると、符号化側において実行されたＤＣフリー符号化に対応する処理を実行することによって、元のデジタル信号系列を復号できる。
【０１１２】
本発明の第２実施形態のさらに別の態様は、信号処理装置である。この装置は、信号符号化装置と信号復号装置とを備える。この態様によると、ランレングス制限符号化を行なった後にリードソロモン符号化を行なうことによって、復号側においては、リードソロモン復号を行なった後の信号系列に対してランレングス制限復号を行なうことになるので、誤り訂正能力を向上できる。
【０１１３】
本発明の第２実施形態のさらに別の態様は、記憶システムである。この記憶システムは、データを記憶装置に書き込むライトチャネルと、記憶装置に記憶されているデータを読み出すリードチャネルとを備える信号記憶システムであって、ライトチャネルは、データに対し、ランレングス制限符号化を実行し、さらに、ランレングス制限符号化されたデータに対し、リードソロモン符号化を実行する第１の符号化部と、第１の符号化部で符号化されたデータに対し、低密度パリティ検査符号を用いて符号化する第２の符号化部と、第２の符号化部で符号化されたデータを記憶装置に書き込む書き込み部と、を備え、リードチャネルは、記憶装置から出力されたアナログ信号を入力する入力部と、入力部から入力されたアナログ信号をデジタル信号に変換して出力するアナログデジタル変換部と、アナログデジタル変換部から出力されたデジタル信号の尤度を計算して軟判定値を出力するソフト出力検出部と、ソフト出力検出部から出力されたデータを復号する、第２の符号化部に対応した、第１の復号部と、第１の復号部で復号されたデータを復号する、第１の符号化部に対応した、第２の復号部と、を備える。第１の符号化部は、データをランレングス制限符号化することによって、ランレングス符号化系列を生成するランレングス制限符号化部と、ランレングス制限符号化部によって生成されたランレングス符号化系列をリードソロモン符号化することによって、冗長系列を生成するリードソロモン符号化部と、リードソロモン符号化部によって生成された冗長系列をランレングス制限符号化部によって生成されたランレングス符号化系列に付加する冗長系列付加部と、を有する。第２の復号部は、第１の復号部によって復号されたデータを入力する入力部と、入力部によって入力された第１信号系列のうち、冗長系列の挿入個所を検出する冗長系列検出部と、冗長系列検出部によって検出された挿入個所にしたがって、入力部によって入力された第１信号系列から冗長系列を切り離して、第２信号系列を取得する冗長系列取得部と、冗長系列取得部によって切り離された冗長ビットを用いて、冗長系列取得部によって取得された第２信号系列の誤りを訂正するリードソロモン復号部と、リードソロモン復号部によって誤りが訂正された第２信号系列に対し、ランレングス制限復号を実行するランレングス制限復号部と、を有する。
【０１１４】
この態様によると、ランレングス制限符号化を行なった後にリードソロモン符号化を行なうことによって、復号側においては、リードソロモン復号を行なった後の信号系列に対してランレングス制限復号を行なうことになるので、誤り訂正能力を向上できる。また、誤り訂正能力を向上できるので、より高速に記憶システムにアクセスすることができる。
【０１１５】
本発明の第２実施形態のさらに別の態様もまた、記憶システムである。この記憶システムは、さらに、データを記憶する記憶装置と、記憶装置への書き込みと、記憶装置からの読み出しとを制御する制御部と、を有する。リードチャネルは、制御部の指示に従って、記憶装置に記憶されているデータを読み出し、ライトチャネルは、制御部の指示に従って、符号化されたデータを記憶装置に書き込む。この態様によると、ランレングス制限符号化を行なった後にリードソロモン符号化を行なうことによって、復号側においては、リードソロモン復号を行なった後の信号系列に対してランレングス制限復号を行なうことになるので、誤り訂正能力を向上できる。また、誤り訂正能力を向上できるので、より高速に記憶システムにアクセスすることができる。
【０１１６】
本発明の第２実施形態のさらに別の態様は、信号符号化装置である。この装置は、符号化装置おいて、当該装置は、１つの半導体基板上に一体集積化されてもよい。この態様によると、ＤＣフリー性およびランレングス特性の高い符号化処理が効率良く実行でき、余分なハードウェアを搭載する必要がなくなるので、低規模な半導体集積回路を実現できる。
【０１１７】
なお、以上の構成要素の任意の組合せや本発明の構成要素や表現を方法、装置、システムなどの間で相互に置換したものもまた、本発明の態様として有効である。
【０１１８】
本発明の第２実施形態を具体的に説明する前に、まず本第２実施形態にかかる記憶システム１１００について概要を述べる。本第２実施形態にかかる記憶システム１１００は、ハードディスクコントローラと、磁気ディスク装置と、リードチャネルとライトチャネルを含むリードライトチャネルと、を有する。ライトチャネルにおいては、誤り訂正符号化として、リードソロモン符号化と、ランレングス制限符号化と、ＤＣフリー符号化と、ＬＤＰＣ符号化とを実行する。このリードソロモン符号化（以下、「ＲＳ符号化」と略称する。）は、リードチャネルを搭載する半導体と一体的に搭載してもよく、また、他の半導体に搭載されていてもよい。また、リードチャネルにおいては、ビタビアルゴリズムなどを用いたデータ検出と、ＬＤＰＣ復号を行なう。このデータ検出は、ＤＣ成分が存在することによって検出精度が劣化することが知られている。さらに、検出精度が劣化することによりＬＤＰＣ復号の訂正能力が低減する。したがって、本発明の第２実施形態においては、ＬＤＰＣ符号化を行なう前の段階において、ＤＣ成分を低減させるＤＣフリー符号化を行なう構成とした。なお、本第２実施形態にかかる記憶システム１１００は、ＬＤＰＣ符号化に限定されず、他の誤り訂正符号化方式、たとえば、ターボ符号化や畳込み符号化が実行される構成であってもよい。
【０１１９】
ＤＣフリー符号化は、異なる２つの系列のうち、よりＤＣフリー性の高い系列を選択することによって実現される。異なる２つの系列を生成するために、異なる２つの性質を有するＲＬＬ符号化を実行すると、２つ目のＲＬＬ符号化の回路が必要となる分、回路規模が増大する。また、回路規模の問題としないアプリケーションの場合であっても、異なる２つの性質を有するＲＬＬ符号化を実行した結果、双方の系列ともにＤＣフリー性が良いとは限らない。したがって、本発明の第２実施形態においては、同一のＲＬＬ符号化を実行することとした。
【０１２０】
ここで、同一のＲＬＬ符号化を実行する場合、選択の対象となる系列が同一になるのを回避する必要がある。また、ＤＣフリー特性の良い制限符号化系列が存在しない場合を避ける必要もある。そこで、本発明の第２実施形態においては、ＲＬＬ符号化する前に、任意の信号系列と、任意の信号系列に所定の信号処理を実行した後の２つの系列とを対象とすることとした。これにより、生成される系列は全く異なることとなるため、統計的にＤＣフリー性の良い系列が生成できる。また、この所定の信号処理を信号系列のビット数を変えずに実行することによって、符号化利得の減少を回避している。さらに、信号処理の処理内容を任意に変更することによって、さまざまな系列を生成できるので、選択の幅を広げられる。そのため、よりＤＣフリー特性の良い系列を生成できる可能性が向上する。したがって、本発明の第２実施形態は、ハードディスクのような符号化率を低く設定できないようなアプリケーションにおいて好適となる。
【０１２１】
複数のＲＬＬ符号化された系列のいずれかを選択する場合、復号側において、誤って、符号化側において選択された系列とは異なる系列を対象とする可能性がある。この場合、誤りが増大することとなる。一般的に、リードソロモン符号化は、ＲＬＬ符号化の前に実行されていた。この場合、復号側においては、ＲＬＬ復号は、リードソロモン復号（以下、「ＲＳ復号」と略称する）の前に実行されるとなり、選択された系列の判定が誤る可能性が低くなかった。したがって、本発明の第２実施形態においては、符号化側においては、ＲＬＬ符号化および／またはＤＣフリー符号化、ＲＳ符号化の順で誤り訂正符号化を行なうこととした。また、復号側においては、ＲＳ復号、ＲＬＬ復号の順で誤り訂正復号を行なうこととした。
【０１２２】
しかしながら、符号化側において、ＲＬＬ符号化および／またはＤＣフリー符号化、ＲＳ符号化の順で誤り訂正符号化を行なった場合、ＲＳ符号化において付加される冗長ビットは、ＲＬＬ性および／またはＤＣフリー特性を満たさないこととなる。一般的に、ＲＳ符号化において生成され、ＲＬＬ符号化系列に付加される冗長ビットの個数は、付加される系列に比べ１／１０程度であるため、ＲＬＬ性および／またはＤＣフリー特性を満たさないことによる弊害は大きい。したがって、本発明の第２実施形態においては、ＲＳ符号化において生成された冗長系列を分割し、ＲＬＬ符号化系列に分散して付加することとした。これにより、冗長系列が付加された後の符号化系列は、ＲＬＬ性、ＤＣフリー特性を満足することとなる。詳細は後述する。
【０１２３】
以下、図面を用いて、本発明の第２実施形態について詳細に説明する。
【０１２４】
図９は、本発明の第２実施形態に係る記憶システム１１００の構成を示す図である。図９の記憶システム１１００は、大きく分けて、ハードディスクコントローラ１００１（以下、「ＨＤＣ１００１」と略記する。）、中央処理演算装置１００２（以下、「ＣＰＵ１００２」と略記する。）、リードライトチャネル１００３（以下、「Ｒ／Ｗチャネル１００３」と略記する。）、ボイスコイルモータ／スピンドルモータ制御部１００４（以下、「ＶＣＭ／ＳＰＭ制御部１００４」と略記する。）、及びディスクエンクロージャ１００５（以下、「ＤＥ１００５」と略記する。）とから構成される。一般に、ＨＤＣ１００１、ＣＰＵ１００２、Ｒ／Ｗチャネル１００３、及びＶＣＭ／ＳＰＭ制御部１００４は同一の基板上に構成される。
【０１２５】
ＨＤＣ１００１は、ＨＤＣ１００１全体を制御する主制御部１０１１、データフォーマット制御部１０１２、及びバッファＲＡＭ１０１４を含む。ＨＤＣ１００１は、図示しないインタフェース部を介してホストシステムと接続される。また、Ｒ／Ｗチャネル１００３を介して、ＤＥ１００５と接続されており、主制御部１０１１の制御により、ホストとＤＥ１００５の間のデータ転送を実行する。このＨＤＣ１００１には、Ｒ／Ｗチャネル１００３で生成されるリードリファレンスクロック（ＲＲＣＫ）が入力される。データフォーマット制御部１０１２は、ホストから転送されたデータをディスク媒体１０５０上に記録するのに適したフォーマットに変換し、逆に、ディスク媒体１０５０から再生されたデータをホストに転送するのに適したフォーマットに変換する。ディスク媒体１０５０は、たとえば、磁気ディスクを含む。バッファＲＡＭ１０１４は、ホストから転送されたデータを一時的に保存し、適切なタイミングでＲ／Ｗチャネル１００３に転送する。逆に、Ｒ／Ｗチャネル１００３から転送されたリードデータを一時的に保存し、適切なタイミングでホストに転送する。
【０１２６】
ＣＰＵ１００２は、フラッシュＲＯＭ１０２１（以下、「ＦＲＯＭ１０２１」と略記する。）、及びＲＡＭ１０２２を含み、ＨＤＣ１００１、Ｒ／Ｗチャネル１００３、ＶＣＭ／ＳＰＭ制御部１００４、及びＤＥ１００５と接続される。ＦＲＯＭ１０２１には、ＣＰＵ１００２の動作プログラムが保存されている。
【０１２７】
Ｒ／Ｗチャネル１００３は、ライトチャネル１０３１とリードチャネル１０３２とに大別され、ＨＤＣ１００１との間で記録するデータ及び再生されたデータの転送を実行する。また、Ｒ／Ｗチャネル１００３は、ＤＥ１００５と接続され、記録信号の送信、再生信号の受信を実行する。詳細は後述する。
【０１２８】
ＶＣＭ／ＳＰＭ制御部１００４は、ＤＥ１００５中のボイスコイルモータ１０５２（以下、「ＶＣＭ１０５２」と略記する。）とスピンドルモータ１０５３（以下、「ＳＰＭ１０５３」と略記する。）を制御する。
【０１２９】
ＤＥ１００５は、Ｒ／Ｗチャネル１００３と接続され、記録信号の受信、再生信号の送信を実行する。またＤＥ１００５は、ＶＣＭ／ＳＰＭ制御部１００４と接続されている。ＤＥ１００５は、ディスク媒体１０５０、ヘッド１０５１、ＶＣＭ１０５２、ＳＰＭ１０５３、及びプリアンプ１０５４等を有している。図９の記憶システム１１００においては、ディスク媒体１０５０が１枚であり、且つヘッド１０５１がディスク媒体１０５０の一方の面側のみに配置されている場合を想定しているが、複数のディスク媒体１０５０が積層配置された構成であってもよい。また、ヘッド１０５１は、ディスク媒体１０５０の各面に対応して設けられるのが一般的である。Ｒ／Ｗチャネル１００３により送信された記録信号は、ＤＥ１００５内のプリアンプ１０５４を経由してヘッド１０５１に供給され、ヘッド１０５１によりディスク媒体１０５０に記録される。逆に、ヘッド１０５１によりディスク媒体１０５０から再生された信号は、プリアンプ１０５４を経由してＲ／Ｗチャネル１００３に送信される。ＤＥ１００５内のＶＣＭ１０５２は、ヘッド１０５１をディスク媒体１０５０上の目標位置に位置決めするために、ヘッド１０５１をディスク媒体１０５０の半径方向に移動させる。また、ＳＰＭ１０５３は、ディスク媒体１０５０を回転させる。
【０１３０】
ここで、図１０を用いて、Ｒ／Ｗチャネル１００３について説明する。図１０は、図９のＲ／Ｗチャネル１００３の構成を示す図である。Ｒ／Ｗチャネル１００３は、大きく分けて、ライトチャネル１０３１とリードチャネル１０３２から構成される。
【０１３１】
ライトチャネル１０３１は、バイトインターフェース部１３０１、スクランブラ１３０２、ランレングス制限／ＤＣフリー／ＲＳ符号化部１３０３（以下、「ＲＬＬ／ＤＣフリー／ＲＳ符号化部１３０３」と略記する。）、低密度パリティチェック符号化部１３０４（以下、「ＬＤＰＣ符号化部１３０４」と略記する。）、書き込み補償部１３０５（以下、「ライトプリコン部１３０５」と略記する。）、ドライバ１３０６を含む。
【０１３２】
バイトインターフェース部１３０１では、ＨＤＣ１００１から転送されたデータが入力データとして処理される。メディア上に書き込むデータは１セクタ単位でＨＤＣ１００１から入力される。データバスは通常１バイト（８ビット）であり、バイトインターフェース部１３０１により入力データとして処理される。スクランブラ１３０２はライトデータをランダムな系列に変換する。同じ規則のデータの繰り返しは、リード時における検出性能に悪影響を与え、エラーレートを悪化させるのを防ぐためである。
【０１３３】
ＲＬＬ／ＤＣフリー／ＲＳ符号化部１３０３は、ディスク媒体１０５０から再生されたデータに含まれる誤りの訂正及び検出を可能にするために、記録するデータを情報シンボルとして、冗長シンボルを付加する。ＲＳ符号は、再生されたデータに誤りが生じているかを判断し、誤りがある場合には訂正或いは検出を行う。但し、誤りが訂正できるシンボル数は有限であり、冗長データの長さに関係する。即ち、多くの冗長データを付加するとフォーマット効率が悪化するため、誤り訂正可能シンボル数とはトレードオフとなる。ＥＣＣとしてＲＳ符号を利用して誤り訂正を実行する場合、（冗長シンボル数／２）個までの誤りを訂正できる。また、ＲＬＬ／ＤＣフリー／ＲＳ符号化部１３０３は、０の最大連続長を制限する。０の最大連続長を制限することにより、自動利得制御部１３１７（以下、「ＡＧＣ１３１７」と略記する。）などに適したデータ系列にする。さらに、直流成分を低減し、誤り訂正能力の向上を図る。詳細は後述する。
【０１３４】
ＬＤＰＣ符号化部１３０４は、データ系列をＬＤＰＣ符号化して冗長ビットであるパリティビットを含む系列を生成する役割を有する。ＬＤＰＣ符号化は、生成行列と呼ばれるｋ×ｎの行列に、長さｋのデータ系列を左から掛け合わせることで実行される。この生成行列に対応する検査行列Ｈに含まれる各要素は、０もしくは１であり、１の数が０の数に比べて少ないことから、低密度パリティ検査符号（Ｌｏｗ  Ｄｅｎｓｉｔｙ  Ｐａｒｉｔｙ  Ｃｈｅｃｋ  Ｃｏｄｅｓ）と呼ばれている。この１と０の配置を利用することによって、ＬＤＰＣ繰返復号部にて、効率的にエラーを訂正できる。
【０１３５】
ライトプリコン部１３０５は、メディア上の磁化遷移の連続による非線形歪を補償する回路である。ライトデータから補償に必要な規則を検出し、正しい位置で磁化遷移が生ずるようにライト電流波形を予め調整をする。ドライバ１３０６は擬似ＥＣＬレベルに対応した信号を出力するドライバである。ドライバ１３０６からの出力は図示しないＤＥ１００５に送られ、プリアンプ１０５４を通してヘッド１０５１に送られ、ライトデータがディスク媒体１０５０上に記録される。
【０１３６】
リードチャネル１０３２は、可変利得増幅器１３１１（以下、「ＶＧＡ１３１１」と略記する。）、ローパスフィルタ１３１２（以下、「ＬＰＦ１３１２」と略記する。）、ＡＧＣ１３１７、アナログ／デジタル変換器１３１３（以下、「ＡＤＣ１３１３」と略記する。）、周波数シンセサイザ１３１４、フィルタ１３１５、ソフト出力検出部１３２０、ＬＤＰＣ繰返復号部１３２２、同期信号検出部１３２１、ランレングス制限／ＤＣフリー／ＲＳ復号部１３２３（以下、「ＲＬＬ／ＤＣフリー／ＲＳ復号部１３２３」と略記する。）、デスクランブラ１３２４とから構成されている。
【０１３７】
ＶＧＡ１３１１及びＡＧＣ１３１７は、図示しないプリアンプ１０５４から送られたデータのリード波形の振幅を調整する。ＡＧＣ１３１７は理想的な振幅と実際の振幅を比較し、ＶＧＡ１３１１に設定すべきゲインを決定する。ＬＰＦ１３１２は、カットオフ周波数とブースト量を調整することができ、高周波ノイズの低減と部分応答（Ｐａｒｔｉａｌ Ｒｅｓｐｏｎｓｅ。以下、「ＰＲ」と略記する。）波形への等化の一部を担う。ＬＰＦ１３１２でＰＲ波形への等化を行うが、ヘッドの浮上量変動、媒体の不均一性、モータの回転変動などの多くの要因により、アナログのＬＰＦによる完全な等化は難しいので、後段に配置され、よりフレキシビリティに富んだフィルタ１３１５を用いて、再度ＰＲ波形への等化を行う。フィルタ１３１５は、そのタップ係数を適応的に調整する機能を有していてもよい。周波数シンセサイザ１３１４は、ＡＤＣ１３１３のサンプリング用クロックを生成する。
【０１３８】
ＡＤＣ１３１３は、ＡＤ変換により直接同期サンプルを得る構成とした。なお、この構成の他に、ＡＤ変換により非同期サンプルを得る構成であってもよい。この場合は、ゼロ相リスタート部、タイミング制御部、及び補間フィルタをさらにＡＤＣ１３１３の後段に設ければよい。非同期サンプルから同期サンプルを得る必要があり、これらのブロックがその役割を担う。ゼロ相リスタート部は初期位相を決定するためのブロックで、できるだけ早く同期サンプルを得るために用いられる。初期位相を決定した後は、タイミング制御部で理想的なサンプル値と実際のサンプル値を比較し、位相のずれを検出する。これを用いて補間フィルタのパラメータを決定することにより、同期サンプルを得ることができる。
【０１３９】
ソフト出力検出部１３２０は、符号間干渉に伴う復号特性の劣化を回避するために、ビタビアルゴリズムの一種であるソフト出力ビタビアルゴリズム（Ｓｏｆｔ−Ｏｕｔｐｕｔ Ｖｉｔｅｒｂｉ Ａｌｇｏｒｉｔｈｍ。以下、「ＳＯＶＡ」と略記する。）が用いられる。すなわち、近年の磁気ディスク装置の記録密度の上昇に伴い、記録された符号間の干渉が大きくなり、復号特性が劣化するといった課題を解決するため、これを克服する方式として符号間干渉による部分応答を利用した最ゆう復号（Ｐａｒｔｉａｌ Ｒｅｓｐｏｎｓｅ ＭａｘｉｍｕｍＬｉｋｅｉｈｏｏｄ。以下、「ＰＲＭＬ」と略記する。）方式を用いる。ＰＲＭＬは、再生信号の部分応答のゆう度を最大にする信号系列を求める方式である。
【０１４０】
ソフト出力検出部１３２０としてＳＯＶＡ方式が用いられている場合、軟判定値を出力する。例えば、ＳＯＶＡの出力として、（−０．７１、＋０．１８、＋０．４５、−０．４５、−０．９）という軟判定値が出力されたとする。これらの値は、０である可能性が大きいか、１である可能性が大きいかを数値で表している。例えば、１番目の「−０．７１」は１である可能性が大きいことを示しており、２番目の「＋０．１８」は０である可能性が大きいが１である可能性も小さくはないことを意味する。従来のビタビディテクタの出力はハード値であり、ＳＯＶＡの出力を硬判定したものである。上記の例の場合、（１、０、０、１、１）である。ハード値は、０であるか、１であるかのみを表しており、どちらの可能性が高いかという情報が失われている。このためＬＤＰＣ繰返復号部１３２２に軟判定値を入力する方が復号性能が向上する。
【０１４１】
ＬＤＰＣ繰返復号部１３２２は、ＬＤＰＣ符号化されているデータ系列から、ＬＤＰＣ符号化前の系列に復元する役割を有する。復号化の方法としては、主に、ｓｕｍ−ｐｒｏｄｕｃｔ復号法とｍｉｎ−ｓｕｍ復号法があり、復号性能の面ではｓｕｍ−ｐｒｏｄｕｃｔ復号法が有利であるが、ｍｉｎ−ｓｕｍ復号法はハードウェアによる実現が容易である特徴を持つ。ＬＤＰＣ符号を用いる実際の復号操作では、ソフト出力検出部１３２０とＬＤＰＣ繰返復号部１３２２の間で繰り返し復号することにより、非常に良好な復号性能を得ることができる。このために実際はソフト出力検出部１３２０とＬＤＰＣ繰返復号部１３２２を複数段配列した構成が必要になる。同期信号検出部１３２１は、データの先頭に付加された同期信号（Ｓｙｎｃ Ｍａｒｋ）を検出し、データの先頭位置を認識する役割を有する。
【０１４２】
ＲＬＬ／ＤＣフリー／ＲＳ復号部１３２３は、ＬＤＰＣ繰返復号部１３２２から出力されたデータに対して、ライトチャネル１０３１のＲＬＬ／ＤＣフリー／ＲＳ符号化部１３０３の逆操作を行い、元のデータ系列に戻す。詳細は後述する。
【０１４３】
デスクランブラ１３２４は、ライトチャネル１０３１のスクランブラ１３０２の逆操作を行い、元のデータ系列に戻す。ここで生成されたデータはＨＤＣ１００１に転送される。
【０１４４】
ここで、「ＤＣフリー」について説明する。図１１（ａ）〜（ｂ）は、本発明の第２実施形態にかかるＤＣフリー特性の例を示す図である。図１１（ａ）は、ＤＣフリーである場合とそうでない場合における軟判定値の分布例を示す図である。横軸は個数、縦軸は軟判定値を示す。また、縦軸は、中心を±０として、プラス側、マイナス側の双方の軟判定値を含む軸である。実線で示す第１特性１２００は、ＤＣフリーの場合の分布を示す。また、破線で示す第２特性１３００は、ＤＣフリーでない場合の分布例を示す。ＤＣフリーとは、前述したように、系列に含まれる０と１のビットの個数の比率が５０％であることを示す。いいかえると、図１１（ａ）の第１特性１２００に図示するように、図１０のＬＤＰＣ繰返復号部１３２２における軟判定値の分布において、±１／２が中心値となり、±０付近の分布量が少ないことなどをいう。一方、ＤＣフリーでない場合、たとえば、図１１（ａ）の第２特性１３００に図示するように、軟判定値の分布において、±０付近の分布量が増加したものとなる。
【０１４５】
図１１（ｂ）は、ＤＣフリーである場合とそうでない場合におけるビット誤り率特性の例を示す図である。横軸は信号対雑音比（Ｓｉｇｎａｌ  ｔｏ  Ｎｏｉｓｅ  Ｒａｔｉｏ）、縦軸はビット誤り率（Ｂｉｔ  Ｅｒｒｏｒ  Ｒａｔｅ）を示す。実線で示す第３特性１２１０は、ＤＣフリーの場合のビット誤り率特性を示す。また、破線で示す第４特性１３１０は、ＤＣフリーでない場合のビット誤り率特性を示す。図示するように、ＤＣフリーでない場合は、ＤＣフリーである場合と比べて、ビット誤り率が悪化することとなる。
【０１４６】
図１２は、図１０のＲＬＬ／ＤＣフリー／ＲＳ符号化部１３０３の構成例を示す図である。ＲＬＬ／ＤＣフリー／ＲＳ符号化部１３０３は、ＲＬＬ／ＤＣフリー符号化部１０４０と、ＲＳ符号化部１０４２と、冗長系列付加部１０４４とを含む。ＲＬＬ／ＤＣフリー符号化部１０４０は、所定の信号系列をランレングス制限符号化およびＤＣフリー符号化することによって、ＤＣフリー性を有するランレングス制限符号化系列（以下、「ＲＬＬ系列」と略称する）を生成する。ＲＳ符号化部１０４２は、ＲＬＬ／ＤＣフリー符号化部１０４０によって生成されたＲＬＬ系列をＲＳ符号化することによって、冗長系列を生成する。冗長系列付加部１０４４は、ＲＳ符号化部１０４２によって生成された冗長系列をＲＬＬ／ＤＣフリー符号化部１０４０によって生成されたＲＬＬ符号化系列に分散して付加する。
【０１４７】
図１３は、図１２のＲＬＬ／ＤＣフリー符号化部１０４０の構成例を示す図である。ＲＬＬ／ＤＣフリー符号化部１４０３は、第１ＲＬＬ符号化部１０６０と、第１信号処理部１０６２と、第２ＲＬＬ符号化部１０６４と、直流成分除去符号化部１０６６とを含む。
【０１４８】
第１ＲＬＬ符号化部１０６０は、スクランブラ１３０２から出力されたデジタル信号系列をランレングス制限符号化することによって、第１符号化系列を生成する。第１信号処理部１０６２は、スクランブラ１３０２から出力されたデジタル信号系列に含まれる複数のビットの個数を変えずに、デジタル信号系列に対し、所定の信号処理を実行する。所定の信号処理は、デジタル信号系列に含まれる複数のビットの個数を変えなければ、任意の処理でよい。たとえば、デジタル信号系列に含まれる複数のビットのそれぞれに対し、ビット反転処理を実行する処理であってもよい。また、デジタル信号系列に含まれる複数のビットの順序を並び替えてもよい。また、ビット反転処理、ビットの順序を並び替えの双方の処理を行なってもよい。第２ＲＬＬ符号化部１０６４は、第１信号処理部１０６２から出力された信号処理部によって所定の信号処理が実行されたデジタル信号系列をランレングス制限符号化することによって、第２符号化系列を生成する。直流成分除去符号化部１０６６は、第１ＲＬＬ符号化部１０６０によって生成された第１符号化系列と、第２ＲＬＬ符号化部１０６４によって生成された第２符号化系列とのうち、ＤＣフリー性の高い、いずれか一方を選択して出力する。
【０１４９】
具体例を用いて説明する。処理すべきデジタル信号系列が３００ビットから構成されている場合、ＲＬＬ／ＤＣフリー符号化部１０４０は、３０ビットを１組として、１０回に分けて処理する。ここで、第１ＲＬＬ符号化部１０６０、第２ＲＬＬ符号化部１０６４の符号化率が３０／３１である場合、第１ＲＬＬ符号化部１０６０、第２ＲＬＬ符号化部１０６４からそれぞれ出力される１回あたりの系列のビット数は、３１ビットとなる。
【０１５０】
図１４は、図１３の直流成分除去符号化部１０６６の構成例を示す図である。直流成分除去符号化部１０６６は、符号化系列選択部１０７４と、選択識別情報生成部１０７６と、識別情報付加部１０７８とを含む。符号化系列選択部１０７４は、第１ＲＬＬ符号化部１０６０によって生成された第１符号化系列と、第２ＲＬＬ符号化部１０６４によって生成された第２符号化系列のうち、いずれか一方の符号化系列を選択する。選択識別情報生成部１０７６は、符号化系列選択部１０７４によって選択された符号化系列を示す選択識別情報を生成する。識別情報付加部１０７８は、符号化系列選択部１０７４によって選択された符号化系列のいずれかの個所に、選択識別情報生成部１０７６によって生成された選択識別情報を付加する。
【０１５１】
具体的に説明する。符号化系列選択部１０７４によって第１符号化系列が選択された場合、識別情報付加部１０７８において第１符号化系列に付加される選択識別情報は「０」となる。一方、符号化系列選択部１０７４によって第２符号化系列が選択された場合、識別情報付加部１０７８において第１符号化系列に付加される選択識別情報は「１」となる。いいかえると、選択識別情報「０」が付加された第１符号化系列、もしくは、選択識別情報「１」が付加された第２符号化系列がＬＤＰＣ符号化部１３０４に出力される。なお、識別情報付加部１０７８によって選択識別情報が付加される個所は、符号化系列中の任意の一定の個所でよく、たとえば、符号化系列の最後尾に付加してもよい。詳細は後述するが、ここで付加される選択識別情報は判定ビットであり、復号側において判定ビットが付加された位置、および、判定ビットの内容を解析することにより、適切な復号処理が実現されることとなる。前述の具体例においては、１回あたり３１ビットの符号化系列に１ビットの選択識別情報が付加され合計３２ビットの系列が出力されることとなる。すなわち、ＲＬＬ／ＤＣフリー符号化部１０４０における符号化率は、３０／３２となる。
【０１５２】
また、符号化系列選択部１０７４は、図示しない第１連結部と第２連結部とを含んでも良い。第１連結部は、当該符号化系列選択部１０７４によってすでに選択された符号化系列と前記第１符号化系列とを連結させる。また、第２連結部は、当該符号化系列選択部１０７４によってすでに選択された符号化系列と前記第２符号化系列とを連結させる。この場合、符号化系列選択部１０７４は、第１連結部によって連結された系列を新たな第１符号化系列とし、第２連結部によって連結された系列を新たな第２符号化系列とし、いずれか一方の符号化系列を選択してもよい。すなわち、過去において選択された符号化系列と、現在選択の候補となっている符号化系列とを連結させたものを対象として、符号化系列選択部１０７４が選択判定を行なうことによって、長区間におけるＤＣフリー特性を向上できる。
【０１５３】
図１５（ａ）〜（ｃ）は、図１４の符号化系列選択部１０７４の第１〜第３の構成例を示す図である。図１５（ａ）は、図１４の符号化系列選択部１０７４の第１の構成例を示す図である。第１の構成における符号化系列選択部１０７４は、第１比率計算部１０８０と、第２比率計算部１０８２と、選択出力部１０８４とを含む。
【０１５４】
第１比率計算部１０８０は、第１符号化系列に含まれる複数のビットのうち、０を示すビットと１を示すビットとの比率を計算する。第２比率計算部１０８２は、第２符号化系列に含まれる複数のビットのうち、０を示すビットと１を示すビットとの比率を計算する。選択出力部１０８４は、第１比率計算部１０８０で計算された比率と、第２比率計算部１０８２で計算された比率とのうち、５０％に近いほうの比率に対応する符号化系列を選択して出力する。
【０１５５】
具体例を用いて説明する。まず、時刻ｔ＝１において、第１ＲＬＬ符号化部１０６０、第２ＲＬＬ符号化部１０６４から、それぞれ３１ビットの符号化系列が出力されたと仮定する。この場合、第１比率計算部１０８０、第２比率計算部１０８２は、それぞれの符号化系列に含まれるビットを解析して、比率を計算する。ここで、第１比率計算部１０８０に入力される符号化系列に含まれるビットのうち、０を示すビットが１４ビット、１を示すビットが１７ビットである場合、比率は、第１比率計算部１０８０によって以下のように計算される。
比率ｔ＝１  ＝  （０を示すビット数＋１）／（符号化系列のビット数＋１） ＝  （１４＋１）／（３１＋１） ≒  ４６．９％
【０１５６】
また、第２比率計算部１０８２に入力される符号化系列に含まれるビットのうち、０を示すビットが１２ビット、１を示すビットが１９ビットである場合、比率は、第２比率計算部１０８２によって、以下のように計算される。この場合、第１符号化系列のほうが比率が５０％に近いため、ｔ＝１においては、選択出力部１０８４によって第１符号化系列が選択される。また、選択された第１符号化系列にかかる０を示すビット数「１４」が記憶される。なお、上式、および、次式の右辺の分子において、それぞれ「１」、「０」を加算しているのは、それぞれの選択識別情報を「０」、「１」と仮定しているためである。また、上式、および、次式の右辺の分母において、「１」を加算しているのは、選択識別情報を含めた系列の０の個数の割合を計算するためである。
比率ｔ＝１  ＝  （０を示すビット数＋０）／（符号化系列のビット数＋１） ＝  １２／（３１＋１） ＝  ３７．５％
【０１５７】
つぎに、ｔ＝２においてもｔ＝１の場合と同様に、第１ＲＬＬ符号化部１０６０、第２ＲＬＬ符号化部１０６４から、それぞれ３１ビットの符号化系列が出力されたとする。ここで、第１比率計算部１０８０に入力される符号化系列に含まれるビットのうち、０を示すビットが１１ビット、１を示すビットが２０ビットである場合、比率は、以下のように計算される。
比率ｔ＝２  ＝  （０を示すビット数＋１）／（（符号化系列のビット数＋１）×ｔ） ＝  （１４＋１＋１１＋１）／（（３１＋１）×２） ≒  ４２．２％
【０１５８】
上記は、ｔ＝１の場合と異なり、第１比率計算部１０８０は、ｔ＝１において選択された符号化系列とｔ＝２における第１符号化系列とが第１連結部によって連結された系列について、比率を計算する。すなわち、ｔ＝１で選択された第１符号化系列のうち０を示すビットの個数「１４＋１」と、ｔ＝２における第１符号化系列のうちの０を示すビットの個数「１１＋１」とが前式の分子において加算されることとなる。また、前式における分母は、２組の符号化系列にかかるビット数となる。
【０１５９】
また、第２比率計算部１０８２に入力される符号化系列に含まれるビットのうち、０を示すビットが１７ビット、１を示すビットが１４ビットである場合、第２比率計算部１０８２によって、以下のように比率が計算される。この場合、第２符号化系列のほうが比率が５０％に近いため、ｔ＝２においては、選択出力部１０８４によって第２符号化系列が選択される。
比率ｔ＝２  ＝  （０を示すビット数＋０）／（（符号化系列のビット数＋１）×ｔ） ＝  （１４＋１＋１７＋０）／（（３１＋１）×２） ＝  ５０．０％
【０１６０】
以下、同様にｔ＝３以降においても比率が計算される。ここで、ｔ＝ｋにおける比率は、以下のように表される。ただし、ｋは１以上の整数とする。また、Ｎｂｉｔ（ｍ）とは、ｔ＝ｍにおいて選択された符号化系列に含まれるビットのうち、０を示すビットの個数を示す。ただし、Ｎｂｉｔ（ｋ）は、比率を計算する対象となる符号化系列に含まれるビットのうち、０を示すビットの個数を示す。なお、比率を計算する対象となる符号化系列には、選択識別情報も含まれるものとする。
【数１】
2008198239.tif 000003
【０１６１】
図１５（ｂ）は、図１４の符号化系列選択部１０７４の第２の構成例を示す図である。第２の構成における符号化系列選択部１０７４は、第１合算部１０８６と、第２合算部１０８８と、選択出力部１０８４とを含む。第１合算部１０８６は、第１符号化系列に含まれる複数のビットを合算して第１合算値を生成する。第２合算部１０８８は、第２符号化系列に含まれる複数のビットを合算して第２合算値を生成する。符号化系列検出部は、第１合算部１０８６によって生成された第１合算値と、第２合算部１０８８によって生成された第２合算値とを比較して、第１符号化系列と第２符号化系列のうち、小さいほうの合算値に対応する符号化系列を検出する。選択出力部１０８４は、第１符号化系列と、第２符号化系列とのうち、系列検出部によって検出された符号化系列を選択して出力する。
【０１６２】
具体例を用いて説明する。まず、ｔ＝１において、第１ＲＬＬ符号化部１０６０、第２ＲＬＬ符号化部１０６４から、それぞれ３１ビットの符号化系列が出力されたと仮定する。この場合、第１合算部１０８６、第２合算部１０８８は、それぞれの符号化系列に含まれるビットを合算する。合算においては、０を「＋１」に置換えると共に、１を「−１」に置換えて合計してもよい。このように合算することによって、０と１を示すビットの個数が等しい場合、合算値は０となる。したがって、選択出力部１０８４においては、合算値が０に近い符号化系列を選べばよく、たとえば、合算値の絶対値が小さい符号化系列を選べばよい。なお、この手法は、連続デジタル加算（Ｒｕｎｎｉｎｇ  Ｄｉｇｉｔａｌ  Ｓｕｍｍａｔｉｏｎ。以下、「ＲＤＳ」と略称する。）とも呼ばれる。
【０１６３】
ここで、ｔ＝１において、第１合算部１０８６に入力される符号化系列に含まれる３１個のビットのうち、０を示すビットが１４ビット、１を示すビットが１７ビットである場合、比率は、以下のように計算される。なお、右辺の第１項において「１」を加算しているのは、選択識別情報を０と仮定しているためである。
ＲＤＳabs  ＝  ｜（１４＋１）×（＋１）＋１７×（−１）｜  ＝  ２
【０１６４】
また、第２合算部１０８８に入力される符号化系列に含まれるビットのうち、０を示すビットが１２ビット、１を示すビットが１９ビットである場合、比率は、以下のように計算される。この場合、第１符号化系列のＲＤＳのほうが小さいため、ｔ＝１においては、選択出力部１０８４によって第１符号化系列が選択される。また、ここでは、絶対値を計算する前の第１符号化系列についてのＲＤＳが「ＲＤＳ１＝−２」として記憶される。なお、右辺の第２項において「１」を加算しているのは、選択識別情報を１と仮定しているためである。
ＲＤＳabs  ＝  ｜１２×（＋１）＋（１９＋１）×（−１）｜  ＝  ６
【０１６５】
つぎに、ｔ＝２において、ｔ＝１の場合と同様に、第１ＲＬＬ符号化部１０６０、第２ＲＬＬ符号化部１０６４から、それぞれ３１ビットの符号化系列が出力されたとする。ここで、第１合算部１０８６に入力される符号化系列に含まれるビットのうち、０を示すビットが１１ビット、１を示すビットが２０ビットである場合、ＲＤＳは、以下のように計算される。ｔ＝１の場合と異なり、ｔ＝２においては、ｔ＝１において選択された符号化系列にかかるビット数も考慮にいれて計算されることとなる。
ＲＤＳabs  ＝  ｜ＲＤＳ１＋（１１＋１）×（＋１）＋２０×（−１）｜  ＝  ｜−２＋（−８）｜  ＝  １０
【０１６６】
また、第２合算部１０８８に入力される符号化系列に含まれるビットのうち、０を示すビットが１７ビット、１を示すビットが１４ビットである場合、比率は、以下のように計算される。この場合、第２符号化系列のＲＤＳのほうが小さいため、ｔ＝２においては、選択出力部１０８４によって第１符号化系列が選択される。また、ＲＤＳ2＝０が記憶される。
ＲＤＳabs  ＝  ｜ＲＤＳ１＋１７×（＋１）＋（１４＋１）×（−１）｜  ＝  ｜−２＋（＋２）｜  ＝  ０
【０１６７】
以下、同様にｔ＝３以降においてもＲＤＳabsが計算される。ここで、ｔ＝ｋにおけるＲＤＳabs（ｋ）は、以下のように表される。ただし、ｔは１以上の整数とする。また、Ｎｂｉｔ０（ｍ）とは、ｔ＝ｍにおいて選択された符号化系列および選択識別情報に含まれるビットのうち、０を示すビットの個数を示す。また、Ｎｂｉｔ１（ｍ）とは、ｔ＝ｍにおいて選択された符号化系列および選択識別情報に含まれるビットのうち、１を示すビットの個数を示す。ただし、Ｎｂｉｔ０（ｋ）、Ｎｂｉｔ１（ｋ）は、合算値を計算する対象となる符号化系列に含まれるビットのうち、それぞれ、０を示すビットの個数、１を示すビットの個数を示す。
【数２】
2008198239.tif 000004
【０１６８】
上記における符号化系列選択部１０７４の動作は、ある時刻においては区間演算処理を行ないつつ、過去の連続する時刻間において移動演算処理を行なっている点が特徴となる。このように、区間処理と移動処理を組み合わせることによって、長区間、たとえば、３００ビットの系列全体において、ＤＣフリー性が向上されることとなる。
【０１６９】
なお、第１合算部１０８６、第２合算部１０８８における合算処理は、符号化系列に含まれる０もしくは１を示すビットをそのまま合計してもよい。この場合、選択出力部１０８４においては、合算値が符号化系列の個数の半分の値に近いほうに対応する符号化系列が選択されることとなる。
【０１７０】
図１５（ｃ）は、図１４の符号化系列選択部１０７４の第３の構成例を示す図である。第３の構成における符号化系列選択部１０７４は、第１移動加算部１０９０と、第１最大値検出部１０９２と、第２移動加算部１０９４と、第２最大値検出部１０９６と、選択出力部１０８４とを含む。第１移動加算部１０９０は、第１符号化系列に含まれる複数のビットを移動加算を計算することによって、複数のビットと同数の第１移動加算値を生成する。第１最大値検出部１０９２は、第１移動加算部１０９０によって生成された複数の第１移動加算値のうち、最大値を検出する。第２移動加算部１０９４は、第２符号化系列に含まれる複数のビットを移動加算することによって、複数のビットと同数の第２移動加算値を生成する。第２最大値検出部１０９６は、第２移動加算部１０９４によって生成された複数の第２移動加算値のうち、最大値を検出する。符号化系列検出部は、第１最大値検出部１０９２によって検出された最大値と、第２最大値検出部１０９６によって検出された最大値とを比較して、第１符号化系列と第２符号化系列のうち、小さいほうの最大値に対応する符号化系列を検出する。選択出力部１０８４は、第１符号化系列と、第２符号化系列とのうち、系列検出部によって検出された符号化系列を選択して出力する。
【０１７１】
符号化系列選択部１０７４の第３の構成例は、第２の構成例と同様に、第１移動加算部１０９０、第２移動加算部１０９４において、それぞれの符号化系列のＲＤＳを計算することによって、選択出力部１０８４が符号化系列を選択する。第３の構成例においては、３２ビットのＲＤＳの計算途中における最大値が小さいほうの符号化系列を選択する点で、３２ビットのＲＤＳ計算の最終計算値のみ考慮して０に近い符号化系列を選択する第２の構成例と異なる。言い換えると、第３の構成例は、所定の区間においても、複数の区間においても、移動演算によって選択処理を行なっている。このような態様をとることによって、区間途中においてもＤＣフリー性の良い系列を選択できる。
【０１７２】
ここで、「ＲＤＳの計算途中における最大値」は、時刻ｔごとに、以下で導出される。ただし、Ｍｉｎ｛ｙ（０）、ｙ（１）｝とは、小さいほうの値を選択し、選択したほうの系列の番号を出力する関数を示す。たとえば、ｙ（０）＞ｙ（１）の場合、Ｓ（ｔ）は、１となる。また、ｍａｘ｛ｘ｝とは、ｘのうち、最大値を検出する関数を示す。また、ｋは、３２×（ｔ−１）＋１〜３２×ｔの範囲の値を示す。また、Ｂｉｔ（ｍ、ｊ）は、第ｊ符号化系列のうち、ｍ番目のビットが０である場合は＋１を示し、また、１である場合は−１を示す。
Ｓ（ｔ）＝Ｍｉｎ｛ＭａｘＲＤＳ（１）、ＭａｘＲＤＳ（２）｝
ＭａｘＲＤＳ（１）  ＝  ｍａｘ｛ＲＤＳ（ｋ、１）｝
ＭａｘＲＤＳ（２）  ＝  ｍａｘ｛ＲＤＳ（ｋ、２）｝
【数３】
2008198239.tif 000005
【０１７３】
また、Ｂｉｔ（ｍ、１）、Ｂｉｔ（ｍ、２）は、ｔが増加するごとに、選択された系列に係るビットを下記のように書き換えた後に、計算されることとなる。
Ｂｉｔ（ｍ、１）＝Ｂｉｔ（ｍ、２）＝Ｂｉｔ（ｍ、Ｓ（ｔ−１））  ：ｍ＝（ｔ−１）×３２＋１〜ｔ×３２、ｔ≠１
【０１７４】
ここで、図１５（ｃ）に示す符号化系列選択部１０７４の第３の構成例の動作について、図１５（ｂ）に示す符号化系列選択部１０７４の第２の構成例の動作と比較する。図１６は、図１５（ｂ）と図１５（ｃ）にそれぞれ示す符号化系列選択部１０７４の動作の相違を示す図である。横軸は時間、縦軸はＲＤＳを示す。ここで、１４００Ａは、第１符号化系列におけるＲＤＳの推移を示す。また、１４００Ｂは、第２符号化系列におけるＲＤＳの推移を示す。図１５（ｂ）に示す符号化系列選択部１０７４の第２の構成例においては、ＲＤＳの区間演算の最終値であるＲＤＳＡとＲＤＳＢとを比較して小さいほうの符号化系列を選択する。図１６においては、ＲＤＳＡ＜ＲＤＳＢであるので、選択出力部１０８４は、第１符号化系列を選択することとなる。一方、図１５（ｃ）に示す符号化系列選択部１０７４の第３の構成例においては、それぞれのビットにおけるＲＤＳ、すなわち、３２個のビットを順次移動演算処理した後の絶対値のうち、最大値を比較して、小さいほうの符号化系列を選択する。図１６においては、第１符号化系列については、ＭａｘＡが最大値であり、また、第２符号化系列については、ＭａｘＢが最大値となる。ここでは、ＭａｘＡ＞ＭａｘＢであるので、選択出力部１０８４は、第２符号化系列を選択することとなる。いずれの構成例を符号化系列選択部１０７４に適用した場合においても、ＤＣフリー性の高い符号化系列を選択することができる。
【０１７５】
図１２に戻る。冗長系列付加部１０４４は、図示しない分割部を含む。分割部は、ＲＳ符号化部１０４２によって生成された冗長系列を複数の組に分割する。分割部によって分割された組を、ＲＬＬ／ＤＣフリー符号化系列のいずれかの個所であって、組ごとにそれぞれ異なる個所に付加する。冗長系列付加部１０４４は、分割部によって分割された組ごとに、等間隔で、たとえば、Ｌ個おきに、ＲＬＬ／ＤＣフリー符号化系列に付加する。分割部は、ＲＳ符号化部１０４２によって生成された冗長系列に含まれる複数のビットのうち、いずれか２以上のビットを１組として、分割する。分割部は、ＲＳ符号化部１０４２によって生成された冗長系列に含まれる複数のビットのうち、２Ｎ（Ｎは正の整数）個のビットを１組として、分割する。
【０１７６】
図１２に図示したＲＬＬ／ＤＣフリー／ＲＳ符号化部１３０３の動作について、具体的に説明する。図１７は、図１２のＲＬＬ／ＤＣフリー／ＲＳ符号化部１３０３の動作例を示す図である。まず、ＲＬＬ／ＤＣフリー符号化部１０４０は、ＲＬＬ／ＤＣフリー符号化系列１４００を生成する。つぎに、ＲＳ符号化部１０４２は、ＲＬＬ／ＤＣフリー符号化系列１４００に対してＲＳ符号化を実行して、冗長系列１５００を生成する。つぎに、冗長系列付加部１０４４の分割部は、冗長系列１５００をＭ個の部分冗長系列１５１０に分割する。部分冗長系列１５１０は、第１部分情報系列１５１０ａと、第２部分情報系列１５１０ｂと、・・・、第Ｍ部分情報系列１５１０ｃとを代表する。それぞれの部分冗長系列１５１０は、２Ｎ個のビットを含む。冗長系列付加部１０４４は、ＲＬＬ／ＤＣフリー符号化系列１４００に部分冗長系列１５１０ごとに、それぞれ異なる位置に分散して付加する。また、冗長系列付加部１０４４は、部分冗長系列１５１０を等間隔でＲＬＬ／ＤＣフリー符号化系列１４００に付加する。これにより、冗長系列１５００に含まれるすべてのビットがＲＬＬ／ＤＣフリー符号化系列１４００に付加され、ＲＬＬ／ＤＣフリー／ＲＳ符号化系列１６００が生成される。
【０１７７】
ここで、ＲＬＬ／ＤＣフリー符号化系列１４００、冗長系列１５００、ＲＬＬ／ＤＣフリー／ＲＳ符号化系列１６００の長さは、以下のように表される。ここで、Ｌは、部分冗長系列１５１０が付加される間隔を示す。また、Ｎ、ｓ、α、βは、正の整数とする。
ＲＬＬ／ＤＣフリー符号化系列１４００の長さ  ＝  ｓＬ＋α
冗長系列１５００の長さ  ＝  ２ＮＭ＋β
ＲＬＬ／ＤＣフリー／ＲＳ符号化系列１６００の長さ  ＝  ＲＬＬ／ＤＣフリー符号化系列１４００の長さ＋冗長系列１５００の長さ
【０１７８】
つぎに、ＲＬＬ／ＤＣフリー／ＲＳ符号化部１３０３の具体的な動作過程について説明する。図１８は、図１２のＲＬＬ／ＤＣフリー／ＲＳ符号化部１３０３の動作例を示すフローチャートである。まず、ＲＬＬ／ＤＣフリー符号化部１０４０は、ＲＬＬ／ＤＣフリー符号化系列１４００を生成する（Ｓ１０１０）。つぎに、ＲＳ符号化部１０４２は、ＲＬＬ／ＤＣフリー符号化系列１４００に対してＲＳ符号化を実行して、冗長系列１５００を生成する（Ｓ１０１２）。つぎに、冗長系列付加部１０４４の分割部は、冗長系列１５００をＭ個の部分冗長系列１５１０に分割し、部分冗長系列１５１０ごとに、それぞれ異なる位置に等間隔で付加する（Ｓ１０１４〜Ｓ１０２０）。
【０１７９】
Ｓ１４〜Ｓ２０においては、まず、ＲＬＬ／ＤＣフリー符号化系列１４００に関するカウンタｉをＬ、冗長系列１５００に関するカウンタｊを１に設定する（Ｓ１０１４）。つぎに、ＲＬＬ／ＤＣフリー符号化系列１４００の先頭からｉ番目のビットの後ろに、冗長系列１５００のｊ番目から（ｊ＋２Ｎ）番目までのビットを付加する（Ｓ１０１６）。ただし、冗長系列１５００に、（ｊ＋１）番目〜（ｊ＋２Ｎ）番目のいずれかのビットが存在しない場合、存在するビットをすべて付加した後、Ｓ１０１８のステップに進む。つぎに、カウンタｉをＬ個進めるとともに、カウンタｊを２Ｎ個進める（Ｓ１０１８）。ここで、ｊが２ＮＭ以下である場合（Ｓ１０２０のＮ）、付加すべきＲＬＬ／ＤＣフリー符号化系列１４００が残存していると判断して、Ｓ１０１６〜Ｓ１０２０の処理を繰り返す。一方、ｊが２ＮＭより大きい値であった場合（Ｓ１０２０のＹ）、すなわち、すべての冗長系列１５００が付加されたと判断して、処理を終了する。
【０１８０】
具体例を用いて説明する。ＲＬＬ／ＤＣフリー符号化部１０４０は、ＲＬＬ／ＤＣフリー符号化系列１４００を示すｘ（ｎ）において偶数番目に存在する複数のビットを示すビット系列ｙ０（ｍ）において、０を示すビットの連続性を制限されるように符号化する。また、ＲＬＬ／ＤＣフリー符号化部１０４０は、ｘ（ｎ）において奇数番目に存在する複数のビットを示すビット系列ｙ１（ｍ）のそれぞれにおいて、０を示すビットの連続性を制限されるように符号化する。たとえば、ｘ（ｎ）、ｙ０（ｍ）、ｙ１（ｍ）は、以下のように示される。ここで、０の最大連続長を３と仮定した。
ｘ（ｎ）  ＝  ｛０１１１００１０１００１１００１０００１｝
ｙ０（ｍ）＝  ｘ（２ｎ）  ＝｛０１０１１０１０００｝
ｙ１（ｍ）＝  ｘ（２ｎ＋１）＝｛１１０００１０１０１｝
【０１８１】
また、ＤＣフリー符号化は、一般的に、ＲＬＬ／ＤＣフリー符号化系列１４００の所定の区間において、０もしくは１を示すビットの比率が５０％に近くなるように符号化することなどをいう。いいかえると、所定の区間より短い区間においては、ＤＣフリーとはならなくともよい。上述のｘ（ｎ）においては、０を示すビットの個数が１１個なのに対し、１を示すビットの個数が９個となっているため、ほぼＤＣフリー性を満たしているといえる。
【０１８２】
ここで、冗長系列付加部１０４４において、ＲＬＬ／ＤＣフリー符号化系列１４００に冗長系列１５００を付加するにあたり、直列的に付加した第１ＲＬＬ／ＤＣフリー／ＲＳ符号化系列１６１０を示すｘ’（ｎ）と、分散して付加した第２ＲＬＬ／ＤＣフリー／ＲＳ符号化系列１６２０を示すｘ’’（ｎ）のＲＬＬ性、ＤＣフリー性について比較する。なお、付加される冗長系列１５００は、４ビットとし、それぞれ、Ａ、Ｂ、Ｃ、Ｄとした。また、ｙ０’（ｍ）、ｙ１’（ｍ）は、それぞれ第１ＲＬＬ／ＤＣフリー／ＲＳ符号化系列１６１０を示すｘ’（ｎ）における偶数番目、奇数番目に存在する複数のビットを示すビット系列を示す。また、ｙ０’’（ｍ）、ｙ１’’（ｍ）は、それぞれ第２ＲＬＬ／ＤＣフリー／ＲＳ符号化系列１６２０を示すｘ’’（ｎ）における偶数番目、奇数番目に存在するビットの系列を示す。
【０１８３】
冗長系列１５００  ＝  ｛Ａ、Ｂ、Ｃ、Ｄ｝
ｘ’（ｎ）  ＝  ｛０１１１００１０１００１１００１０００１ＡＢＣＤ｝
ｙ０’（ｍ）  ＝  ｛０１０１１０１０００ＡＣ｝
ｙ１’（ｍ）  ＝  ｛１１０００１０１０１ＢＤ｝
【０１８４】
ｘ’’（ｎ）  ＝  ｛０１１１０ＡＢ０１０１００１１００ＣＤ１０００１｝
ｙ０’’（ｍ）  ＝  ｛０１０Ｂ１１０１０Ｄ００｝
ｙ１’’（ｍ）  ＝  ｛１１Ａ０００１０Ｃ１０１｝
【０１８５】
上述したｘ’（ｎ）、ｙ０’（ｍ）、ｙ１’（ｍ）の式によると、直列的に付加した場合のｙ０’（ｍ）、ｙ１’（ｍ）においては、Ａが０を示すビットであれば、０の最大連続長は４となる。また、ＡとＣの双方が０を示すビットであれば、０の最大連続長は５となる。直列的に付加された冗長系列は、ＲＬＬ符号化が施されていないため、このような結果となる。一方、上述したｘ’’（ｎ）、ｙ０’’（ｍ）、ｙ１’’（ｍ）の式によると、分散して付加した場合のｙ０’’（ｍ）、ｙ１’’（ｍ）においては、ＡもしくはＤが０である場合を除き、０の最大連続長は３のままとなる。また、Ａ、Ｄが０を示すビットであったとしても、０の最大連続長は、たかだか４にしかならない。いいかえると、偶数個のビットを１組として、ＲＬＬ／ＤＣフリー符号化系列に付加したとしても、ＲＬＬ性は大きく劣化することがないといえる。さらにいいかえると、冗長系列をＲＬＬ／ＤＣフリー符号化系列に分散して付加することによって、冗長系列をＲＬＬ符号化することと等価な効果が得られるといえる。
【０１８６】
また、ＤＣフリー性について検討すると、Ａ、Ｂ、Ｃ、Ｄのすべてが０を示すビットである場合、ｘ’’（ｎ）には、０を示すビットが１５個、１を示すビットが９個となり、ややＤＣフリー性が劣化する。また、Ａ、Ｂ、Ｃ、Ｄのすべてが１を示すビットである場合、ｘ’’（ｎ）には、０を示すビットが１１個、１を示すビットが１３個となり、ややＤＣフリー性が劣化する。しかしながら、すべての冗長ビットが同一のビットを示すことは希である。また、冗長ビットの長さは、ランレングス符号化系列の長さに比べ１／１０程度であり、このような場合、ＤＣフリー性は局所的に崩れる場合があるものの、ＲＬＬ／ＤＣフリー／ＲＳ符号化系列１６００全体としてはほとんど劣化しない。
【０１８７】
したがって、２Ｎ個の冗長ビットを１組として、ＲＬＬ系列に等間隔で付加することによって、冗長系列が付加された後のＲＬＬ系列、すなわち、ＲＬＬ／ＤＣフリー／ＲＳ符号化系列１６００はＲＬＬ性、ＤＣフリー特性を満足することができる。なお、必ずしも等間隔で付加する必要はないが、等間隔としたほうが処理が簡易になる効果がある。また、分散して付加しない場合と比べて、冗長系列部分のＲＬＬ性を極めて向上できる。
【０１８８】
図１９は、図１０のＲＬＬ／ＤＣフリー／ＲＳ復号部１３２３の構成例を示す図である。ＲＬＬ／ＤＣフリー／ＲＳ復号部１３２３は、冗長系列検出部１０３４と、冗長系列取得部１０３６と、ＲＳ復号部１０３８と、ＲＬＬ／ＤＣフリー復号部１０４６とを含む。冗長系列検出部１０３４は、ＬＤＰＣ繰返復号部１３２２によって入力された第１信号系列のうち、冗長系列の挿入個所を検出する。具体的には、冗長系列の挿入間隔、１組あたりのビット数を考慮して、挿入個所を検出する。
【０１８９】
冗長系列取得部１０３６は、冗長系列検出部１０３４によって検出された挿入個所にしたがって、ＬＤＰＣ繰返復号部１３２２によって入力された第１信号系列から冗長系列を切り離して、第２信号系列を取得する。ＲＳ復号部１０３８は、冗長系列取得部１０３６によって切り離された冗長ビットを用いて、冗長系列取得部１０３６によって取得された第２信号系列の誤りを訂正する。ＲＬＬ／ＤＣフリー復号部１０４６は、ＲＳ復号部１０３８によって誤りが訂正された第２信号系列に対し、ランレングス制限復号を実行する。具体的には、図１２に図示したＲＬＬ／ＤＣフリー／ＲＳ符号化部１３０３の動作と逆の順序で処理が行なわれる。
【０１９０】
図２０は、図１９のＲＬＬ／ＤＣフリー復号部１０４６の構成例を示す図である。ＲＬＬ／ＤＣフリー復号部１０４６は、判定ビット取得部１０６８と、ＲＬＬ復号部１０７０と、第２信号処理部１０７２とを含む。判定ビット取得部１０６８は、ＲＳ復号部１０３８によって誤りが訂正された第２信号系列に付加されている所定の判定ビットを取得する。ＲＬＬ復号部１０７０は、ＲＳ復号部１０３８によって誤りが訂正された第２信号系列（判定ビットを除く）をランレングス制限復号することによってデジタル信号系列を生成する。第２信号処理部１０７２は、ＲＬＬ復号部１０７０によって生成されたデジタル信号系列に対し、判定ビット取得部１０６８によって取得された判定ビットに応じて、第１信号処理部１０６２で実行された所定の信号処理と逆の信号処理を実行して出力する処理を実行する。たとえば、図１３の第１信号処理部１０６２において、ビット反転処理、および／または、ビットの順序を入れ替える処理を行なっていた場合、ビットの反転処理および／またはその入れ替えられた系列を元に戻す入れ替える処理とを実行する。もしくは、判定ビット取得部１０６８によって取得された判定ビットに応じて、第２信号処理部１０７２は、デジタル信号系列に含まれる複数のビットをそのまま出力する処理を実行する。
【０１９１】
上述したこれらの構成は、ハードウエア的には、任意のコンピュータのＣＰＵ、メモリ、その他のＬＳＩで実現でき、ソフトウエア的にはメモリにロードされた通信機能のあるプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
【０１９２】
本第２実施形態によれば、ランレングス制限符号化を行なった後にＲＳ符号化を行なうことによって、復号側においては、ＲＳ復号を行なった後の信号系列に対してランレングス制限復号を行なうことになる。いいかえると、ＲＳ復号によって誤り訂正された系列に対してランレングス制限復号が実行される。そうすると、符号化側において選択された符号化系列を正確に判別でき、全体としての誤り訂正能力を向上できる。また、ランレングス制限符号化系列のいずれかの個所に、複数の組に分割された冗長系列をそれぞれ異なる個所に付加することによって、冗長系列が付加された後の系列のＲＬＬ性、および、ＤＣフリー特性を向上できる。また、組ごとに等間隔で付加することによって、冗長系列が付加された後の系列のＲＬＬ性、および、ＤＣフリー特性をより向上できる。ランレングス制限符号化系列に偶数個ずつ冗長系列を付加することによって、冗長系列が付加された後の系列のＲＬＬ性をより向上できる。偶数個のビットを１組として、ＲＬＬ／ＤＣフリー符号化系列に付加したとしても、ＲＬＬ性は大きく劣化することがないといえる。さらにいいかえると、冗長系列をＲＬＬ／ＤＣフリー符号化系列に分散して負荷することによって、冗長系列をＲＬＬ符号化することと等価な効果が得られる。冗長ビットの長さは、ランレングス制限符号化系列の長さに比べ１／１０程度であるので、ＤＣフリー性はほとんど劣化せず、また、分散して付加しない場合と比べて、冗長系列部分のＲＬＬ性を極めて向上できる。
【０１９３】
また、同一のＲＬＬ符号化を実行することによって、回路規模の増大を伴うことなく、ＤＣフリー性が良い系列を生成できる。ＲＬＬ符号化する前に、任意の信号系列と、任意の信号系列に所定の信号処理を実行した後の２つの系列とを対象とすることによって、生成される系列は全く異なるため、統計的にＤＣフリー性の良い系列が生成できる。また、この所定の信号処理を信号系列のビット数を変えずに実行することによって、符号化利得の減少を回避できる。さらに、信号処理の処理内容を任意に変更することによって、さまざまな系列を生成できるので、選択の幅を広げられる。そのため、よりＤＣフリー特性の良い系列を生成することができる。したがって、ハードディスクのような符号化率を低く設定できないようなアプリケーションにおいて好適となる。また、同一のＲＬＬ符号化回路を用いることによって、回路構成を単純化でき、また、低規模にできる。
【０１９４】
また、ビット反転処理、および／または、ビットの順序を並び替えることによって、ランレングス制限符号化の対象となる系列に含まれるビットの個数を増加せずに、異なる系列を生成できる。また、系列に含まれるビットの個数が増加しないため、全体の符号化率を低下させずに符号化系列が得られる。また、異なる系列を生成するために実行する所定の処理をビット反転処理、および／または、ビットの順序を並び替える処理とすることによって、単純な回路構成で所定の処理を実現できる。また、いずれの符号化系列が選択されたことを示す情報を符号化系列に付加することによって、復号側にて、容易に選択された符号化系列を判別できる。
【０１９５】
また、過去において選択された符号化系列と、現在選択の候補となっている符号化系列とを連結させたものを対象として、符号化系列選択部１０７４が選択判定を行なうことによって、長区間におけるＤＣフリー特性を向上できる。符号化系列選択部１０７４において、区間処理と移動処理を組み合わせてＲＤＳを計算することによって、長区間、たとえば、３００ビットの系列全体において、ＤＣフリー性が向上できる。また、０を示すビットと１を示すビットとの比率が５０％に近いほうを選択することによって、ＤＣフリー性の高い符号化系列が選択できる。また、符号化系列に含まれる複数のビットを合算し、より小さい合算値に対応する系列を選択することによって、ＤＣフリー性の高い符号化系列が選択できる。また、符号化系列に含まれる複数のビットを移動加算した結果のうちの最大値を用いて系列を選択することによって、ＤＣフリー性の高い符号化系列が選択できる。符号化側において実行されたＤＣフリー符号化に対応する処理を実行することによって、元のデジタル信号系列を復号できる。ＤＣフリー性の高い符号化処理を実行することによって、より高速に記憶システムにアクセスすることができる。また、余分なハードウェアを搭載する必要がなくなるので、低規模な半導体集積回路を実現できる。
【０１９６】
本第２実施形態において、Ｒ／Ｗチャネル１００３は、１つの半導体基板上に一体集積化されてもよい。また、本第２実施形態の符号化系列選択部１０７４において、区間演算処理、もしくは、移動演算処理として説明した。しかしながらこれにかぎらず、区間平均処理、もしくは、移動平均処理を行なうことによって、ＤＣフリー性の高い符号化系列の選別を行なってもよい。この場合であっても、同様の効果を得ることができる。また、ＲＬＬ／ＤＣフリー／ＲＳ符号化部１３０３の構成において、所定の信号処理を実行する第１信号処理部１０６２を用いて、異なる２つの信号系列を生成するとして説明した。しかしながらこれにかぎらず、複数の信号処理部を用いて複数の信号系列を生成してもよい。たとえば、ビット反転処理、ビットの順序を入れ替える処理、ビット反転処理及びビットの順序を入れ替える処理をそれぞれ実行する信号処理装置を備えていてもよい。この場合、４つのうちいずれの系列が選択されたことを示す判定ビットを２ビットとすることによって、復号側において適切な復号処理が実現できる。また、信号処理を行なわない系列も含め、４つの異なる系列を生成することができる。また、選択肢を増やせるので、ＤＣフリー性の高い系列が生成される可能性を向上できる。
【０１９７】
また、誤り訂正方式としてＲＳ符号を用いた場合について説明したがこれにかぎらず、他の組織符号、たとえば、ＬＤＰＣ符号やターボ符号であってもよい。これらの場合であっても、上述と同様の効果を得られることは言うまでもない。
【０１９８】
また、図１２および図１２に関連する説明において、ＲＳ符号化部１０４２と冗長系列付加部１０４４とを別のブロックとしたが、これにかぎらず、ＲＳ符号化部１０４２は、冗長系列付加部１０４４を含む構成であってもよい。また、図１７、図１８において、最初にＬ個の間隔を置いた後、ＲＬＬ／ＤＣフリー符号化系列１４００に部分冗長系列１５１０を付加するとして説明した。しかしながらこれにかぎらず、任意の値、たとえばαや０に置換えて、これらの処理が実行されてもよい。また、Ｓ２０において、ｊが２ＮＭより大きいか否かによって終了判定を行なうとして説明した。しかしながらこれにかぎらず、ｉがｓＬより大きいか否かを条件として終了判定を行なってもよい。これらの場合であっても、上述と同様の効果を得られることは言うまでもない。
【０１９９】
（第３実施形態）
本発明の第３実施形態は、誤り訂正符号化／復号技術に関し、特に、記憶媒体に記憶されるデータに対して誤り訂正符号化／復号する符号化装置、復号装置、信号処理装置、および記憶システムに関する。
【０２００】
第３実施形態に関する背景技術について説明する。
【０２０１】
近年、ハードディスクを用いた記憶装置は、パーソナルコンピュータ、ハードディスクレコーダー、ビデオカメラ、携帯電話など、さまざまな分野において必須の装置となりつつある。ハードディスクを用いた記憶装置は、適用される分野によって求められる仕様もさまざまである。たとえば、パーソナルコンピュータに搭載するハードディスクには、高速性、大容量性が求められる。高速性、大容量性を向上するためには、訂正能力の高い誤り訂正符号化をする必要がある。しかしながら、高速化が進むほど単位時間あたりに扱うデータの量が増えるため、単位時間あたりの誤りも比例して増大する。そうすると、誤り訂正能力が低い誤り訂正方式を用いる場合、ハードディスクに対する再読込みが発生するため、ハードディスクへのアクセスに要する時間が増大し、高速化のボトルネックとなる。
【０２０２】
一般的に、誤り訂正符号化の対象となる信号系列として、直流成分が低減もしくは除去された（以下、「ＤＣフリー」、もしくは、「ＤＣフリー性」と表記する）信号系列が望まれている。ＤＣフリーとは、周波数が０、すなわち直流成分におけるスペクトルが０であることを意味する。いいかえると、変調前の信号系列に含まれる複数のビットにおいて、０と１の比率が等しいことなどを意味する。ＤＣフリー性を信号系列に備えるさせることによって、記憶媒体に記憶された変調データの記録パターンから得られる再生信号の平均レベルが、変調前の信号系列のパターンによらずに、所定の信号系列長の範囲内で常に一定となる性質をもち、ノイズ耐性が向上する。すなわち、ＤＣフリー性の低い信号系列においては、ビタビアルゴリズムを用いたデータ検出において、検出確率が低下することとなる。これにより、低密度パリティチェック復号やリードソロモン復号における訂正能力も低減されることとなる。また、一般的に、サンプリングタイミングとデータとの同期を確保するために、ランレングス制限符号が用いられている。ランレングス制限符号とは、０の最大連続長や１の最大連続長を制限する符号化である。
【０２０３】
従来、信号系列のＤＣフリー性を満たしつつ、ランレングス制限符号化する方法として、それぞれ異なる冗長ビットが付加された信号系列に対し、ランレングス制限符号化を実行し、符号化された複数の系列のうち、ＤＣフリーに近い特性を有する系列を選択する方法が提案されていた（たとえば、特開２００２−１００１２５号公報参照。）。また、複数の異なる性質を有するランレングス制限符号化を実行し、符号化された複数の系列のうち、ＤＣフリーに近い特性を有する系列を選択する方法が提案されていた（たとえば、特開２００４−２１３８６３号公報参照。）。
【０２０４】
第３実施形態が解決しようとする課題を説明する。
【０２０５】
本発明者はこうした状況下、以下の課題を認識するに至った。複数の符号化系列の中からＤＣフリー特性の良い系列を選択することによってＤＣフリー符号化を実現する場合、選択の対象となる複数の符号化系列においてＤＣフリー特性の良い符号化系列が存在しない場合がある。すなわち、選択の対象となる符号化系列のうち、少なくとも１つ以上のＤＣフリー特性の良い系列を生成できる構成が必要となり、回路規模、記憶容量に影響を及ぼすといった課題である。
【０２０６】
本発明の第３実施形態はこうした状況に鑑みてなされたものであり、その総括的な目的は、より少ない回路規模で、ランレングス制限を満たしつつ、ＤＣフリー特性を向上できる符号化装置、復号装置、信号処理装置、および記憶システムを提供することにある。
【０２０７】
上記課題を解決するために、本発明の第３実施形態のある態様の符号化装置は、デジタル信号系列をランレングス制限符号化することによって、第１符号化系列を生成するランレングス制限符号化部と、第１符号化系列に含まれる複数のビットの個数を変えずに、第１符号化系列に対し、所定の信号処理を実行して第２符号化系列を生成する信号処理部と、ランレングス制限符号化部によって生成された第１符号化系列と、信号処理部によって生成された第２符号化系列とのうち、いずれか一方を選択して出力する直流成分除去符号化部と、を備える。ここで、「直流成分除去符号化部」とは、入力された系列の直流成分を除去するもしくは低減する回路などを含み、また、ＤＣフリー性の高い系列を出力する回路などを含む。
【０２０８】
この態様によると、ランレングス制限符号化によって生成された系列と、その系列を信号処理した系列とを生成することによって、全く異なる２つの系列を生成することができる。また、系列に含まれるビットの個数を増加しないように所定の信号処理を実行することによって、全体の符号化率を低下させずに符号化系列が得られる。２つの符号化系列は相反転しているため、ＤＣフリー性の高い符号化系列を選択するにあたり、より好ましい選択肢となる。より好ましい選択肢の中からＤＣフリー性の高い符号化系列を選択することによって、よりＤＣフリー性の高い符号化系列を選択できる可能性が向上できる。また、単一のランレングス制限符号化回路を用いることによって、回路構成を単純化でき、また、低規模にできる。
【０２０９】
ランレングス制限符号化部は、第１符号化系列に含まれる複数のビットのうちの０を示すビットが連続して存在する少なくとも１つ以上の０連続区間であって、最大の長さを有する０連続区間の長さが０以上第１許容連続長以下になるように、かつ、第１符号化系列に含まれる複数のビットのうちの１を示すビットが連続して存在する少なくとも１つ以上の１連続区間であって、最大の長さを有する１連続区間の長さが０以上第２許容連続長以下になるように、第１符号化系列を生成してもよい。この態様によると、第１符号化系列に含まれる０の連続長と１の連続長の双方をランレングス制限符号化部によって制限することによって、第２符号化系列においてもその制限が維持される。
【０２１０】
ランレングス制限符号化部は、第１許容連続長と第２許容連続長を同一の長さとして、第１符号化系列を生成してもよい。この態様によると、ランレングス制限符号化部の後段において、１の連続長と０の連続長とが制限された符号化系列に対してビット反転処理を実行したとしても、連続長に関する制限を維持できる。信号処理部は、デジタル信号系列に含まれる複数のビットのそれぞれに対し、ビット反転処理を実行してもよい。この態様によると、ビット反転処理することによって、系列に含まれるビットの個数を増加せずに、異なる系列を生成できる。また、系列に含まれるビットの個数が増加しないため、全体の符号化率を低下させずに符号化系列が得られる。また、異なる系列を生成するために実行する所定の処理をビット反転処理とすることによって、単純な回路構成で所定の処理を実現できる。
【０２１１】
直流成分除去符号化部は、第１符号化系列と第２符号化系列のうち、いずれか一方の符号化系列を選択する符号化系列選択部と、符号化系列選択部によって選択された符号化系列を示す選択識別情報を生成する選択識別情報生成部と、符号化系列選択部によって選択された符号化系列のいずれかの個所に、選択識別情報生成部によって生成された選択識別情報を付加する識別情報付加部と、を有してもよい。符号化系列選択部は、当該符号化系列選択部によってすでに選択された符号化系列と第１符号化系列とを連結させる第１連結部と、当該符号化系列選択部によってすでに選択された符号化系列と第２符号化系列とを連結させる第２連結部と、を有してもよい。符号化系列選択部は、第１連結部によって連結された系列を新たな第１符号化系列とし、第２連結部によって連結された系列を新たな第２符号化系列とし、いずれか一方の新たな符号化系列を選択してもよい。ランレングス制限符号化部から出力された第１符号化系列のいずれかの個所に第１判定ビットを付加する第１付加部と、信号処理部から出力された第２符号化系列のいずれかの個所に第１判定ビットがビット反転された第２判定ビットを付加する第２付加部と、をさらに備えてもよい。
【０２１２】
ここで、「付加」とは、加算、乗算、挿入などを含む。また、「すでに選択された符号化系列と前記第１符号化系列とを連結させる」とは、過去において選択された符号化系列と、現在選択の候補となっている系列とを連結させることなどを含む。この態様によると、いずれの符号化系列が選択されたことを示す情報を符号化系列に付加することによって、復号側にて、容易に選択された符号化系列を判別できる。
【０２１３】
符号化系列選択部は、第１符号化系列に含まれる複数のビットのうち、０を示すビットと１を示すビットとの比率を計算する第１比率計算部と、第２符号化系列に含まれる複数のビットのうち、０を示すビットと１を示すビットとの比率を計算する第２比率計算部と、第１比率計算部で計算された比率と、第２比率計算部で計算された比率とのうち、５０％に近いほうの比率に対応する符号化系列を選択して出力する選択出力部と、を有してもよい。この態様によると、０を示すビットと１を示すビットとの比率が５０％に近いほうを選択することによって、ＤＣフリー性の高い符号化系列が選択できる。
【０２１４】
符号化系列選択部は、第１符号化系列に含まれる複数のビットを合算して第１合算値を生成する第１合算部と、第２符号化系列に含まれる複数のビットを合算して第２合算値を生成する第２合算部と、第１合算部によって生成された第１合算値の絶対値と、第２合算部によって生成された第２合算値の絶対値とを比較して、第１符号化系列と第２符号化系列のうち、小さいほうの合算値対応する符号化系列を検出する符号化系列検出部と、第１符号化系列と、第２符号化系列とのうち、系列検出部によって検出された符号化系列を選択して出力する選択出力部と、を有してもよい。ここで、「合算値」とは、系列に含まれるビットを加算することなどを含む。また、「系列に含まれる複数のビット」とは、０もしくは１を示すビットなどを含み、また、０を示すビットを＋１と置換え、１を示すビットを−１と置換えた場合におけるビットなども含む。この態様によると、符号化系列に含まれる複数のビットを合算し、より小さい合算値に対応する系列を選択することによって、ＤＣフリー性の高い符号化系列が選択できる。
【０２１５】
符号化系列選択部は、第１符号化系列に含まれる複数のビットを移動加算することによって、複数のビットと同数の第１移動加算値を生成する第１移動加算部と、第１移動加算部によって生成された複数の第１移動加算値のうち、最大値を検出する第１最大値検出部と、第２符号化系列に含まれる複数のビットを移動加算することによって、複数のビットと同数の第２移動加算値を生成する第２移動加算部と、第２移動加算部によって生成された複数の第２移動加算値のうち、最大値を検出する第２最大値検出部と、第１最大値検出部によって検出された最大値と、第２最大値検出部によって検出された最大値とを比較して、第１符号化系列と第２符号化系列のうち、小さいほうの最大値に対応する符号化系列を検出する符号化系列検出部と、第１符号化系列と、第２符号化系列とのうち、系列検出部によって検出された符号化系列を選択して出力する選択出力部と、を有してもよい。ここで、「移動加算する」とは、移動加算し、さらに、絶対値を計算することなどを含む。この態様によると、符号化系列に含まれる複数のビットを移動加算した結果のうちの最大値を用いて系列を選択することによって、ＤＣフリー性の高い符号化系列が選択できる。
【０２１６】
本発明の第３実施形態の別の態様は、復号装置である。この装置は、所定の判定ビットが付加された符号化系列を入力する入力部と、入力部によって入力された符号化系列に付加されている所定の判定ビットを取得する判定ビット取得部と、入力部によって入力された符号化系列に対し、判定ビット取得部によって取得された判定ビットに応じて、符号化系列に含まれる複数のビットのそれぞれをビット反転して、復号対象となる信号系列を出力する処理、もしくは、符号化系列を復号対象となる信号系列として、そのまま出力する処理のいずれかの処理を実行する信号処理部と、信号処理部によって出力された復号対象となる信号系列をランレングス制限復号することによってデジタル信号系列を生成するランレングス制限復号部と、を備える。この態様によると、符号化側において実行されたＤＣフリー符号化に対応する処理を実行することによって、元のデジタル信号系列を復号できる。
【０２１７】
本発明の第３実施形態のさらに別の態様は、信号処理装置である。この装置は、符号化部と復号部とを備える信号処理装置であって、符号化部は、デジタル信号系列をランレングス制限符号化することによって、第１符号化系列を生成するランレングス制限符号化部と、第１符号化系列に含まれる複数のビットのそれぞれに対し、ビット反転処理を実行して第２符号化系列を生成する信号処理部と、ランレングス制限符号化部から出力された第１符号化系列のいずれかの個所に第１判定ビットを付加する第１付加部と、信号処理部から出力された第２符号化系列のいずれかの個所に第１判定ビットがビット反転された第２判定ビットを付加する第２付加部と、第１付加部によって第１判定ビットが付加された第１符号化系列と、第２付加部によって第２判定ビットが付加された第２符号化系列とのうち、いずれか一方を選択して出力する直流成分除去符号化部と、を有し、復号部は、第１判定ビットもしくは第２判定ビットのいずれかが付加された符号化系列を入力する入力部と、入力部によって入力された符号化系列に付加されている判定ビットを取得する判定ビット取得部と、入力部によって入力された符号化系列に対し、判定ビット取得部によって取得された判定ビットに応じて、デジタル信号系列に含まれる複数のビットのそれぞれをビット反転して、復号対象となる信号系列を出力する処理、もしくは、符号化系列を復号対象となる信号系列として、そのまま出力する処理のいずれかの処理を実行する信号処理部と、信号処理部によって出力された復号対象となる信号系列をランレングス制限復号することによってデジタル信号系列を生成するランレングス制限復号部と、を有してもよい。
【０２１８】
この態様によると、系列に含まれるビットの個数を増加しないように反転処理を実行することによって、全体の符号化率を低下させずに符号化系列が得られる。２つの符号化系列は論理反転された関係にあるため、ＤＣフリー性の高い符号化系列を選択するにあたり、より好ましい選択肢となる。より好ましい選択肢の中からＤＣフリー性の高い符号化系列を選択することによって、よりＤＣフリー性の高い符号化系列を選択できる可能性が向上できる。また、復号側において、符号化側で実行されたＤＣフリー符号化に対応する処理を実行することによって、元のデジタル信号系列を復号できる。
【０２１９】
本発明の第３実施形態のさらに別の態様は、記憶システムである。この記憶システムは、データを記憶装置に書き込むライトチャネルと、記憶装置に記憶されているデータを読み出すリードチャネルとを備える信号記憶システムであって、ライトチャネルは、データをランレングス符号化する第１の符号化部と、第１の符号化部で符号化されたデータに対し、低密度パリティ検査符号を用いて符号化する第２の符号化部と、第２の符号化部で符号化されたデータを記憶装置に書き込む書き込み部と、を備え、リードチャネルは、記憶装置から出力されたアナログ信号を入力する入力部と、入力部から入力されたアナログ信号をデジタル信号に変換して出力するアナログデジタル変換部と、アナログデジタル変換部から出力されたデジタル信号の尤度を計算して軟判定値を出力するソフト出力検出部と、ソフト出力検出部から出力されたデータを復号する、第２の符号化部に対応した、第１の復号部と、第１の復号部で復号されたデータを復号する、第１の符号化部に対応した、第２の復号部と、を備える。第１の符号化部は、デジタル信号系列をランレングス制限符号化することによって、第１符号化系列を生成するランレングス制限符号化部と、第１符号化系列に含まれる複数のビットのそれぞれに対し、ビット反転処理を実行して第２符号化系列を生成する信号処理部と、ランレングス制限符号化部から出力された第１符号化系列のいずれかの個所に第１判定ビットを付加する第１付加部と、信号処理部から出力された第２符号化系列のいずれかの個所に第１判定ビットがビット反転された第２判定ビットを付加する第２付加部と、第１付加部によって第１判定ビットが付加された第１符号化系列と、第２付加部によって第２判定ビットが付加された第２符号化系列とのうち、いずれか一方を選択して出力する直流成分除去符号化部と、を有する。第２の復号部は、第１判定ビットもしくは第２判定ビットのいずれかが付加された符号化系列を入力する入力部と、入力部によって入力された符号化系列に付加されている判定ビットを取得する判定ビット取得部と、入力部によって入力された符号化系列に対し、判定ビット取得部によって取得された判定ビットに応じて、デジタル信号系列に含まれる複数のビットのそれぞれをビット反転して、復号対象となる信号系列を出力する処理、もしくは、符号化系列を復号対象となる信号系列として、そのまま出力する処理のいずれかの処理を実行する信号処理部と、信号処理部によって出力された復号対象となる信号系列をランレングス制限復号することによってデジタル信号系列を生成するランレングス制限復号部と、を有する。この態様によると、ＤＣフリー性の高い符号化処理を実行することによって、より高速に記憶システムにアクセスすることができる。
【０２２０】
本発明の第３実施形態のさらに別の態様もまた、記憶システムである。この記憶システムは、さらに、データを記憶する記憶装置と、記憶装置への書き込みと、記憶装置からの読み出しとを制御する制御部と、を有する。リードチャネルは、制御部の指示に従って、記憶装置に記憶されているデータを読み出し、ライトチャネルは、制御部の指示に従って、符号化されたデータを記憶装置に書き込む。この態様によると、ＤＣフリー性の高い符号化処理を実行することによって、より高速に記憶システムにアクセスすることができる。
【０２２１】
本発明の第３実施形態のさらに別の態様は、符号化装置である。この装置は、符号化装置おいて、当該装置は、１つの半導体基板上に一体集積化されてもよい。この態様によると、ＤＣフリー性の高い符号化処理が効率良く実行でき、余分なハードウェアを搭載する必要がなくなるので、低規模な半導体集積回路を実現できる。
【０２２２】
本発明の第３実施形態のさらに別の態様は、ランレングス制限符号化方法である。この方法は、デジタル信号系列をランレングス制限符号化することによって、符号化系列を生成するランレングス制限符号化方法であって、符号化系列に含まれる複数のビットのうちの０を示すビットが連続して存在する少なくとも１つ以上の０連続区間であって、最大の長さを有する０連続区間の長さが０以上第１許容連続長以下となるように、かつ、符号化系列に含まれる複数のビットのうちの１を示すビットが連続して存在する少なくとも１つ以上の１連続区間であって、最大の長さを有する１連続区間の長さが第２許容連続長より短くなるように、第１符号化系列を生成する。また、ランレングス制限符号化方法は、第１許容連続長と第２許容連続長を同一の長さとして、符号化系列を生成してもよい。この態様によると、符号化系列に含まれる０の連続長と１の連続長の双方をランレングス制限符号化部によって制限することによって、連続長に関し、より良好な制限を有する符号化系列が生成できる。
【０２２３】
なお、以上の構成要素の任意の組合せや本発明の構成要素や表現を方法、装置、システムなどの間で相互に置換したものもまた、本発明の態様として有効である。
【０２２４】
本発明の第３実施形態を具体的に説明する前に、まず本第３実施形態にかかる記憶システムについて概要を述べる。本第３実施形態にかかる記憶システムは、ハードディスクコントローラと、磁気ディスク装置と、リードチャネルとライトチャネルを含むリードライトチャネルと、を有する。ライトチャネルにおいては、符号化として、ランレングス制限符号化と、ＤＣフリー符号化と、ＬＤＰＣ符号化とを実行する。また、リードチャネルにおいては、ビタビアルゴリズムなどを用いたデータ検出と、ＬＤＰＣ復号を行なう。このデータ検出は、ＤＣ成分が存在することによって検出精度が劣化することが知られている。さらに、検出精度が劣化することによりＬＤＰＣ復号の訂正能力が低減する。したがって、本発明の第３実施形態においては、ＬＤＰＣ符号化を行なう前の段階において、ＤＣ成分を低減させるＤＣフリー符号化を行なう構成とした。なお、本第３実施形態にかかる記憶システムは、ＬＤＰＣ符号化に限定されず、他の誤り訂正符号化方式、たとえば、ターボ符号化や畳込み符号化が実行される構成であってもよい。
【０２２５】
ＤＣフリー符号化は、異なる２つの系列のうち、よりＤＣフリー性の高い系列を選択することによって実現される。異なる２つの系列を生成するために、異なる２つの性質を有するＲＬＬ符号化を実行すると、２つ目のＲＬＬ符号化の回路が必要となる分、回路規模が増大する。また、回路規模の問題としないアプリケーションの場合であっても、異なる２つの性質を有するＲＬＬ符号化を実行した結果、双方の系列ともにＤＣフリー性が良いとは限らない。したがって、本第３実施形態においては、同一のＲＬＬ符号化を実行することとした。
【０２２６】
ここで、同一のＲＬＬ符号化を実行する場合、選択の対象となる系列が同一になるのを回避する必要がある。また、ＤＣフリー特性の良い制限符号化系列が存在しない場合を避ける必要もある。そこで、本第３実施形態においては、ＲＬＬ符号化によって得た系列と、その系列を反転した２つの系列とを選択の対象とすることとした。また、ＲＬＬ符号化においては、０だけでなく、１の連続長も制限することとした。これにより、ＲＬＬ符号化によって得た系列だけでなく、反転された系列においても、そのＲＬＬ特性を保証できる。また、生成される２つの系列は実質的に同一のＤＣフリー性を有することとなるが、数区間にわたり平均化することによって、統計的にＤＣフリー性の良い系列が生成できる。したがって、本第３実施形態における符号化装置は、ＲＬＬ特性とＤＣフリー性の双方を向上できる。また、本第３実施形態における符号化装置は、単一のＲＬＬ符号化部と、反転部などの簡易な構成で実現されるため、回路規模を低減できる。さらに、本第３実施形態における符号化装置は、符号化率を低く設定することなしに高いＤＣフリー性を有する符号化系列が生成できるため、ハードディスクのような符号化率を低く設定できないようなアプリケーションにおいて好適となる。詳細は後述する。
【０２２７】
以下、図面を用いて、本発明の第３実施形態について詳細に説明する。
【０２２８】
図２１は、本発明の第３実施形態に係る記憶システム２１００の構成を示す図である。図２１の記憶システム２１００は、大きく分けて、ハードディスクコントローラ２００１（以下、「ＨＤＣ２００１」と略記する。）、中央処理演算装置２００２（以下、「ＣＰＵ２００２」と略記する。）、リードライトチャネル２００３（以下、「Ｒ／Ｗチャネル２００３」と略記する。）、ボイスコイルモータ／スピンドルモータ制御部２００４（以下、「ＶＣＭ／ＳＰＭ制御部２００４」と略記する。）、及びディスクエンクロージャ２００５（以下、「ＤＥ２００５」と略記する。）とから構成される。一般に、ＨＤＣ２００１、ＣＰＵ２００２、Ｒ／Ｗチャネル２００３、及びＶＣＭ／ＳＰＭ制御部２００４は同一の基板上に構成される。
【０２２９】
ＨＤＣ２００１は、ＨＤＣ２００１全体を制御する主制御部２０１１、データフォーマット制御部２０１２、誤り訂正符号化制御部２０１３（以下、「ＥＣＣ制御部２０１３」と略記する。）、及びバッファＲＡＭ２０１４を含む。ＨＤＣ２００１は、図示しないインタフェース部を介してホストシステムと接続される。また、Ｒ／Ｗチャネル２００３を介して、ＤＥ２００５と接続されており、主制御部２０１１の制御により、ホストとＤＥ２００５の間のデータ転送を実行する。このＨＤＣ２００１には、Ｒ／Ｗチャネル２００３で生成されるリードリファレンスクロック（ＲＲＣＫ）が入力される。データフォーマット制御部２０１２は、ホストから転送されたデータをディスク媒体２０５０上に記録するのに適したフォーマットに変換し、逆に、ディスク媒体２０５０から再生されたデータをホストに転送するのに適したフォーマットに変換する。ディスク媒体２０５０は、たとえば、磁気ディスクを含む。ＥＣＣ制御部２０１３は、ディスク媒体２０５０から再生されたデータに含まれる誤りの訂正及び検出を可能にするために、記録するデータを情報シンボルとして、冗長シンボルを付加する。またＥＣＣ制御部２０１３は、再生されたデータに誤りが生じているかを判断し、誤りがある場合には訂正或いは検出を行う。但し、誤りが訂正できるシンボル数は有限であり、冗長データの長さに関係する。即ち、多くの冗長データを付加するとフォーマット効率が悪化するため、誤り訂正可能シンボル数とはトレードオフとなる。ＥＣＣとしてリードソロモン（ＲＳ）符号を利用して誤り訂正を実行する場合、（冗長シンボル数／２）個までの誤りを訂正できる。バッファＲＡＭ２０１４は、ホストから転送されたデータを一時的に保存し、適切なタイミングでＲ／Ｗチャネル２００３に転送する。逆に、Ｒ／Ｗチャネル２００３から転送されたリードデータを一時的に保存し、ＥＣＣ復号処理などの終了後、適切なタイミングでホストに転送する。
【０２３０】
ＣＰＵ２００２は、フラッシュＲＯＭ２０２１（以下、「ＦＲＯＭ２０２１」と略記する。）、及びＲＡＭ２０２２を含み、ＨＤＣ２００１、Ｒ／Ｗチャネル２００３、ＶＣＭ／ＳＰＭ制御部２００４、及びＤＥ２００５と接続される。ＦＲＯＭ２０２１には、ＣＰＵ２００２の動作プログラムが保存されている。
【０２３１】
Ｒ／Ｗチャネル２００３は、ライトチャネル２０３１とリードチャネル２０３２とに大別され、ＨＤＣ２００１との間で記録するデータ及び再生されたデータを転送する。また、Ｒ／Ｗチャネル２００３は、ＤＥ２００５と接続され、記録信号の送信処理、再生信号の受信処理を実行する。詳細は後述する。
【０２３２】
ＶＣＭ／ＳＰＭ制御部２００４は、ＤＥ２００５中のボイスコイルモータ２０５２（以下、「ＶＣＭ２０５２」と略記する。）とスピンドルモータ２０５３（以下、「ＳＰＭ２０５３」と略記する。）を制御する。
【０２３３】
ＤＥ２００５は、Ｒ／Ｗチャネル２００３と接続され、記録信号の受信、再生信号の送信を実行する。またＤＥ２００５は、ＶＣＭ／ＳＰＭ制御部２００４と接続されている。ＤＥ２００５は、ディスク媒体２０５０、ヘッド２０５１、ＶＣＭ２０５２、ＳＰＭ２０５３、及びプリアンプ２０５４等を有している。図２１の記憶システム２１００においては、ディスク媒体２０５０が１枚であり、且つヘッド２０５１がディスク媒体２０５０の一方の面側のみに配置されている場合を想定しているが、複数のディスク媒体２０５０が積層配置された構成であってもよい。また、ヘッド２０５１は、ディスク媒体２０５０の各面に対応して設けられるのが一般的である。Ｒ／Ｗチャネル２００３により送信された記録信号は、ＤＥ２００５内のプリアンプ２０５４を経由してヘッド２０５１に供給され、ヘッド２０５１によりディスク媒体２０５０に記録される。逆に、ヘッド２０５１によりディスク媒体２０５０から再生された信号は、プリアンプ２０５４を経由してＲ／Ｗチャネル２００３に送信される。ＤＥ２００５内のＶＣＭ２０５２は、ヘッド２０５１をディスク媒体２０５０上の目標位置に位置決めするために、ヘッド２０５１をディスク媒体２０５０の半径方向に移動させる。また、ＳＰＭ２０５３は、ディスク媒体２０５０を回転させる。
【０２３４】
ここで、図２２を用いて、Ｒ／Ｗチャネル２００３について説明する。図２２は、図２１のＲ／Ｗチャネル２００３の構成を示す図である。Ｒ／Ｗチャネル２００３は、大きく分けて、ライトチャネル２０３１とリードチャネル２０３２から構成される。
【０２３５】
ライトチャネル２０３１は、バイトインターフェース部２３０１、スクランブラ２３０２、ランレングス制限およびＤＣフリー符号化部２３０３（以下、「ＲＬＬ／ＤＣフリー符号化部２３０３」と略記する。）、低密度パリティチェック符号化部２３０４（以下、「ＬＤＰＣ符号化部２３０４」と略記する。）、書き込み補償部２３０５（以下、「ライトプリコン部２３０５」と略記する。）、ドライバ２３０６を含む。
【０２３６】
バイトインターフェース部２３０１では、ＨＤＣ２００１から転送されたデータが入力データとして処理される。メディア上に書き込むデータは１セクタ単位でＨＤＣ２００１から入力される。このとき１セクタ分のユーザデータ（５１２バイト）だけでなく、ＨＤＣ２００１によって付加されたＥＣＣバイトも同時に入力される。データバスは通常１バイト（８ビット）であり、バイトインターフェース部２３０１により入力データとして処理される。スクランブラ２３０２はライトデータをランダムな系列に変換する。同じ規則のデータの繰り返しは、リード時における検出性能に悪影響を与え、エラーレートを悪化させるのを防ぐためである。
【０２３７】
ＲＬＬ／ＤＣフリー符号化部２３０３は０および１の最大連続長を制限するためのものである。０の最大連続長と、１の最大連続長とを制限することにより、自動利得制御部２３１７（以下、「ＡＧＣ２３１７」と略記する。）などに適したデータ系列にする。さらに、直流成分を低減し、データ検出能力の向上を図り、もって誤り訂正能力の向上を図る。詳細は後述する。
【０２３８】
ＬＤＰＣ符号化部２３０４は、データ系列をＬＤＰＣ符号化して冗長ビットであるパリティビットを含む系列を生成する役割を有する。ＬＤＰＣ符号化は、生成行列と呼ばれるｋ×ｎの行列に、長さｋのデータ系列を左から掛け合わせることで実行される。この生成行列に対応する検査行列Ｈに含まれる各要素は、０もしくは１であり、１の数が０の数に比べて少ないことから、低密度パリティ検査符号（Ｌｏｗ  Ｄｅｎｓｉｔｙ  Ｐａｒｉｔｙ  Ｃｈｅｃｋ  Ｃｏｄｅｓ）と呼ばれている。この１と０の配置を利用することによって、ＬＤＰＣ繰返復号部にて、効率的にエラーを訂正できる。
【０２３９】
ライトプリコン部２３０５は、メディア上の磁化遷移の連続による非線形歪を補償する回路である。ライトデータから補償に必要な規則を検出し、正しい位置で磁化遷移が生ずるようにライト電流波形を予め調整をする。ドライバ２３０６は擬似ＥＣＬレベルに対応した信号を出力するドライバである。ドライバ２３０６からの出力は図示しないＤＥ２００５に送られ、プリアンプ２０５４を通してヘッド２０５１に送られ、ライトデータがディスク媒体２０５０上に記録される。
【０２４０】
リードチャネル２０３２は、可変利得増幅器２３１１（以下、「ＶＧＡ２３１１」と略記する。）、ローパスフィルタ２３１２（以下、「ＬＰＦ２３１２」と略記する。）、ＡＧＣ２３１７、アナログ／デジタル変換器２３１３（以下、「ＡＤＣ２３１３」と略記する。）、周波数シンセサイザ２３１４、フィルタ２３１５、ソフト出力検出部２３２０、ＬＤＰＣ繰返復号部２３２２、同期信号検出部２３２１、ランレングス制限／ＤＣフリー復号部２３２３（以下、「ＲＬＬ／ＤＣフリー復号部２３２３」と略記する。）、デスクランブラ２３２４とから構成されている。
【０２４１】
ＶＧＡ２３１１及びＡＧＣ２３１７は、図示しないプリアンプ２０５４から送られたデータのリード波形の振幅を調整する。ＡＧＣ２３１７は理想的な振幅と実際の振幅を比較し、ＶＧＡ２３１１に設定すべきゲインを決定する。ＬＰＦ２３１２は、カットオフ周波数とブースト量を調整することができ、高周波ノイズの低減と部分応答（Ｐａｒｔｉａｌ Ｒｅｓｐｏｎｓｅ。以下、「ＰＲ」と略記する。）波形への等化の一部を担う。ＬＰＦ２３１２でＰＲ波形への等化を行うが、ヘッドの浮上量変動、媒体の不均一性、モータの回転変動などの多くの要因により、アナログのＬＰＦによる完全な等化は難しいので、後段に配置され、よりフレキシビリティに富んだフィルタ２３１５を用いて、再度ＰＲ波形への等化を行う。フィルタ２３１５は、そのタップ係数を適応的に調整する機能を有していてもよい。周波数シンセサイザ２３１４は、ＡＤＣ２３１３のサンプリング用クロックを生成する。
【０２４２】
ＡＤＣ２３１３は、ＡＤ変換により直接同期サンプルを得る構成とした。なお、この構成の他に、ＡＤ変換により非同期サンプルを得る構成であってもよい。この場合は、ゼロ相リスタート部、タイミング制御部、及び補間フィルタをさらにＡＤＣ２３１３の後段に設ければよい。非同期サンプルから同期サンプルを得る必要があり、これらのブロックがその役割を担う。ゼロ相リスタート部は初期位相を決定するためのブロックで、できるだけ早く同期サンプルを得るために用いられる。初期位相を決定した後は、タイミング制御部で理想的なサンプル値と実際のサンプル値を比較し、位相のずれを検出する。これを用いて補間フィルタのパラメータを決定することにより、同期サンプルを得ることができる。
【０２４３】
ソフト出力検出部２３２０は、符号間干渉に伴う復号特性の劣化を回避するために、ビタビアルゴリズムの一種であるソフト出力ビタビアルゴリズム（Ｓｏｆｔ−Ｏｕｔｐｕｔ Ｖｉｔｅｒｂｉ Ａｌｇｏｒｉｔｈｍ。以下、「ＳＯＶＡ」と略記する。）が用いられる。すなわち、近年の磁気ディスク装置の記録密度の上昇に伴い、記録された符号間の干渉が大きくなり、復号特性が劣化するといった課題を解決するため、これを克服する方式として符号間干渉による部分応答を利用した最ゆう復号（Ｐａｒｔｉａｌ Ｒｅｓｐｏｎｓｅ ＭａｘｉｍｕｍＬｉｋｅｉｈｏｏｄ。以下、「ＰＲＭＬ」と略記する。）方式を用いる。ＰＲＭＬは、再生信号の部分応答のゆう度を最大にする信号系列を求める方式である。
【０２４４】
ソフト出力検出部２３２０としてＳＯＶＡ方式が用いられている場合、軟判定値を出力する。例えば、ＳＯＶＡの出力として、（−０．７１、＋０．１８、＋０．４５、−０．４５、−０．９）という軟判定値が出力されたとする。これらの値は、０である可能性が大きいか、１である可能性が大きいかを数値で表している。例えば、１番目の「−０．７１」は１である可能性が大きいことを示しており、２番目の「＋０．１８」は０である可能性が大きいが１である可能性も小さくはないことを意味する。従来のビタビディテクタの出力はハード値であり、ＳＯＶＡの出力を硬判定したものである。上記の例の場合、（１、０、０、１、１）である。ハード値は、０であるか、１であるかのみを表しており、どちらの可能性が高いかという情報が失われている。このためＬＤＰＣ繰返復号部２３２２に軟判定値を入力する方が復号性能が向上する。
【０２４５】
ＬＤＰＣ繰返復号部２３２２は、ＬＤＰＣ符号化されているデータ系列から、ＬＤＰＣ符号化前の系列に復元する役割を有する。復号化の方法としては、主に、ｓｕｍ−ｐｒｏｄｕｃｔ復号法とｍｉｎ−ｓｕｍ復号法があり、復号性能の面ではｓｕｍ−ｐｒｏｄｕｃｔ復号法が有利であるが、ｍｉｎ−ｓｕｍ復号法はハードウェアによる実現が容易である特徴を持つ。ＬＤＰＣ符号を用いる実際の復号操作では、ソフト出力検出部２３２０とＬＤＰＣ繰返復号部２３２２の間で繰り返し復号することにより、非常に良好な復号性能を得ることができる。このために実際はソフト出力検出部２３２０とＬＤＰＣ繰返復号部２３２２を複数段配列した構成が必要になる。同期信号検出部２３２１は、データの先頭に付加された同期信号（Ｓｙｎｃ Ｍａｒｋ）を検出し、データの先頭位置を認識する役割を有する。
【０２４６】
ＲＬＬ／ＤＣフリー復号部２３２３は、ＬＤＰＣ繰返復号部２３２２から出力されたデータに対して、ライトチャネル２０３１のＲＬＬ／ＤＣフリー符号化部２３０３の逆操作を行い、元のデータ系列に戻す。詳細は後述する。
【０２４７】
デスクランブラ２３２４は、ライトチャネル２０３１のスクランブラ２３０２の逆操作を行い、元のデータ系列に戻す。ここで生成されたデータはＨＤＣ２００１に転送される。
【０２４８】
ここで、「ＤＣフリー」について説明する。図２３（ａ）〜（ｂ）は、本発明の第３実施形態にかかるＤＣフリー特性の例を示す図である。図２３（ａ）は、ＤＣフリーである場合とそうでない場合における軟判定値の分布例を示す図である。横軸は個数、縦軸は軟判定値を示す。また、縦軸は、中心を±０として、プラス側、マイナス側の双方の軟判定値を含む軸である。実線で示す第１特性２２００は、ＤＣフリーの場合の分布を示す。また、破線で示す第２特性２３００は、ＤＣフリーでない場合の分布例を示す。ＤＣフリーとは、前述したように、系列に含まれる０と１のビットの個数の比率が５０％であることを示す。いいかえると、図２３（ａ）の第１特性２２００に図示するように、図２２のＬＤＰＣ繰返復号部２３２２における軟判定値の分布において、±１／２が中心値となり、±０付近の分布量が少ないことなどをいう。一方、ＤＣフリーでない場合、たとえば、図２３（ａ）の第２特性２３００に図示するように、軟判定値の分布において、±０付近の分布量が増加したものとなる。
【０２４９】
図２３（ｂ）は、ＤＣフリーである場合とそうでない場合におけるビット誤り率特性の例を示す図である。横軸は信号対雑音比（Ｓｉｇｎａｌ  ｔｏ  Ｎｏｉｓｅ  Ｒａｔｉｏ）、縦軸はビット誤り率（Ｂｉｔ  Ｅｒｒｏｒ  Ｒａｔｅ）を示す。実線で示す第３特性２２１０は、ＤＣフリーの場合のビット誤り率特性を示す。また、破線で示す第４特性２３１０は、ＤＣフリーでない場合のビット誤り率特性を示す。図示するように、ＤＣフリーでない場合は、ＤＣフリーである場合と比べて、ビット誤り率が悪化することとなる。
【０２５０】
図２４は、図２２のＲＬＬ／ＤＣフリー符号化部２３０３の構成例を示す図である。ＲＬＬ／ＤＣフリー符号化部２３０３は、ＲＬＬ符号化部２０６０と、第１信号処理部２０６２と、直流成分除去符号化部２０６６とを含む。
【０２５１】
ＲＬＬ符号化部２０６０は、スクランブラ２３０２から出力されたデジタル信号系列をランレングス制限符号化することによって、第１符号化系列を生成する。第１信号処理部２０６２は、ＲＬＬ符号化部２０６０から出力された第１符号化系列に含まれる複数のビットの個数を変えずに、第１符号化系列に対し、所定の信号処理を実行して、第２符号化系列を生成する。所定の信号処理は、デジタル信号系列に含まれる複数のビットの個数を変えなければ、任意の処理でよい。たとえば、デジタル信号系列に含まれる複数のビットのそれぞれに対し、ビット反転処理を実行する処理であってもよい。直流成分除去符号化部２０６６は、ＲＬＬ符号化部２０６０によって生成された第１符号化系列と、第１信号処理部２０６２によって生成された第２符号化系列とのうち、ＤＣフリー性の高い、いずれか一方の符号化系列を選択して出力する。ここで、処理すべきデジタル信号系列が３００ビットから構成されている場合、ＲＬＬ／ＤＣフリー符号化部２３０３は、３０ビットを１組として、１０回に分けて処理する。ここで、ＲＬＬ符号化部２０６０の符号化率が３０／３１である場合、ＲＬＬ符号化部２０６０、第１信号処理部２０６２からそれぞれ出力される１回あたりの系列のビット数は、３１ビットとなる。
【０２５２】
一般的に、ＲＬＬ符号化は、規則（ｄ、ｋ）にしたがって、信号系列中に存在する「０」の連続長が制限されるように実行される。規則（ｄ、ｋ）とは、ＲＬＬ符号化の結果として生成される信号系列に対し、その信号系列中の２つの「１」の間に存在する「０」の個数は、ｄ以上ｋ以下であることを要求する規則である。ここで、「信号系列中の２つの「１」」とは、信号系列から全ての「０」を取り除いた場合において、隣接する２つの「１」をいう。たとえば、規則（ｄ、ｋ）が（０、３）である場合、信号系列「０１１０１０００１０」は、規則を満たしているといえる。一方、規則（ｄ、ｋ）が（１、３）である場合、信号系列「０１１０１０００１０」は、規則を満たしているとはいえない。なぜなら、信号系列中の２ビット目の「１」とそれに隣接する３ビット目の「１」の間における「０」の個数は０個であり、１以上３以下の条件を満たさないからである。いいかえると、規則（ｄ、ｋ）において、ｄが０でない場合、その条件は厳しい条件であるといえる。なお、規則（ｄ、ｋ）におけるｄとｋは、双方とも０以上の整数である。
【０２５３】
本第３実施形態のＲＬＬ符号化部２０６０においては、上述した規則（ｄ、ｋ）を「０」についてだけでなく、「１」についても規則（ｄ、ｋ）を適用する。「「１」について規則（ｄ、ｋ）を適用する」とは、信号系列中の２つの「０」の間に存在する「１」の個数は、ｄ以上ｋ以下であることを示す。すなわち、ＲＬＬ符号化部２０６０は、「０」の連続長については規則（ｄ０、ｋ０）を適用し、「１」の連続長については規則（ｄ１、ｋ１）を適用することによって、「０」と「１」の双方の連続長を同時に制限する。さらに、ＲＬＬ符号化部２０６０は、「０」と「１」の双方の連続長を同時に制限した第１符号化系列を直流成分除去符号化部２０６６に出力するとともに、第１信号処理部２０６２を介して、その符号化系列が反転された第２符号化系列とを直流成分除去符号化部２０６６に出力する。このような態様をとることによって、直流成分除去符号化部２０６６に入力される２つの符号化系列は、双方ともＲＬＬ特性を満足できる。いいかえると、第１符号化系列は、「０」について規則（ｄ０、ｋ０）、１について規則（ｄ１、ｋ１）を満足しており、また、第２符号化系列は、「０」について規則（ｄ１、ｋ１）、１について規則（ｄ０、ｋ０）を満足することとなる。
【０２５４】
本第３実施形態における２つの規則（ｄ０、ｋ０）、（ｄ１、ｋ１）において、ｄ０とｄ１は、好ましくは、双方とも０の値が設定される。前述したように、規則（ｄ、ｋ）において、ｄが０でない場合、その条件は厳しい条件となり、符号化率の低下が著しいためである。また、ｋ０とｋ１は、好ましくは、ｋ０はｋ１以上の値として設定される。本第３実施形態における記憶システム２１００においては、「０」の連続長を制限することがより優先されるためである。また、より好ましくは、ｋ０＝ｋ１として設定されてもよい。なぜなら、信号系列中にしめる「１」の個数があまりにも少ない場合、図２２におけるＡＧＣ２３１７や図示しないタイミング制御部の性能が劣化する、もしくは、正常に動作しない場合があるからである。なお、ｋ０とｋ１は、０でない整数であって、それぞれ、ｄ０、ｄ１より大きな値が設定されなければならないことは言うまでもない。以上をまとめると、２つの規則（ｄ０、ｋ０）、（ｄ１、ｋ１）における、ｄ０、ｋ０、ｄ１、ｋ１は、以下で示す関係を有するように設定されることが好ましい。以下のように設定された場合、ＲＬＬ符号化部２０６０と第１信号処理部２０６２とによって生成される第１符号化系列と、第１符号化系列を反転した第２符号化系列とは、同一のＲＬＬ特性を有することとなる。
ｄ０＝ｄ１＝０
ｋ０＝ｋ１＞０
【０２５５】
図２５は、図２４の直流成分除去符号化部２０６６の構成例を示す図である。直流成分除去符号化部２０６６は、符号化系列選択部２０７４と、選択識別情報生成部２０７６と、識別情報付加部２０７８とを含む。符号化系列選択部２０７４は、ＲＬＬ符号化部２０６０によって生成された第１符号化系列と、第１信号処理部２０６２によって生成された第２符号化系列のうち、いずれか一方の符号化系列を選択する。選択識別情報生成部２０７６は、符号化系列選択部２０７４によって選択された符号化系列を示す選択識別情報を生成する。識別情報付加部２０７８は、符号化系列選択部２０７４によって選択された符号化系列のいずれかの個所に、選択識別情報生成部２０７６によって生成された選択識別情報を付加する。
【０２５６】
具体的に説明する。符号化系列選択部２０７４によって第１符号化系列が選択された場合、識別情報付加部２０７８において第１符号化系列に付加される選択識別情報は「０」となる。一方、符号化系列選択部２０７４によって第２符号化系列が選択された場合、識別情報付加部２０７８において第１符号化系列に付加される選択識別情報は「１」となる。いいかえると、選択識別情報「０」が付加された第１符号化系列、もしくは、選択識別情報「１」が付加された第２符号化系列がＬＤＰＣ符号化部２３０４に出力される。なお、識別情報付加部２０７８によって選択識別情報が付加される個所は、符号化系列中の任意の一定の個所でよく、たとえば、符号化系列の最後尾に付加してもよい。詳細は後述するが、ここで付加される選択識別情報は判定ビットであり、復号側において判定ビットが付加された位置、および、判定ビットの内容を解析することにより、適切な復号処理が実現されることとなる。前述の具体例においては、１回あたり３１ビットの符号化系列に１ビットの選択識別情報が付加され合計３２ビットの系列が出力されることとなる。すなわち、ＲＬＬ／ＤＣフリー符号化部２３０３全体における符号化率は、３０／３２となる。
【０２５７】
また、符号化系列選択部２０７４は、図示しない第１連結部と第２連結部とを含んでも良い。第１連結部は、当該符号化系列選択部２０７４によってすでに選択された符号化系列と前記第１符号化系列とを連結させる。また、第２連結部は、当該符号化系列選択部２０７４によってすでに選択された符号化系列と前記第２符号化系列とを連結させる。この場合、符号化系列選択部２０７４は、第１連結部によって連結された系列を新たな第１符号化系列とし、第２連結部によって連結された系列を新たな第２符号化系列とし、いずれか一方の符号化系列を選択してもよい。すなわち、過去において選択された符号化系列と、現在選択の候補となっている符号化系列とを連結させたものを対象として、符号化系列選択部２０７４が選択判定を行なうことによって、長区間におけるＤＣフリー特性を向上できる。
【０２５８】
図２６（ａ）〜（ｃ）は、図２５の符号化系列選択部２０７４の第１〜第３の構成例を示す図である。図２６（ａ）は、図２５の符号化系列選択部２０７４の第１の構成例を示す図である。第１の構成における符号化系列選択部２０７４は、第１比率計算部２０８０と、第２比率計算部２０８２と、選択出力部２０８４とを含む。
【０２５９】
第１比率計算部２０８０は、第１符号化系列に含まれる複数のビットのうち、０を示すビットと１を示すビットとの比率を計算する。第２比率計算部２０８２は、第２符号化系列に含まれる複数のビットのうち、０を示すビットと１を示すビットとの比率を計算する。選択出力部２０８４は、第１比率計算部２０８０で計算された比率と、第２比率計算部２０８２で計算された比率とのうち、５０％に近いほうの比率に対応する符号化系列を選択して出力する。
【０２６０】
具体例を用いて説明する。まず、時刻ｔ＝１において、ＲＬＬ符号化部２０６０、第１信号処理部２０６２から、それぞれ３１ビットの符号化系列が出力されたと仮定する。この場合、第１比率計算部２０８０、第２比率計算部２０８２は、それぞれの符号化系列に含まれるビットを解析して、比率を計算する。ここで、第１比率計算部２０８０に入力される符号化系列に含まれるビットのうち、０を示すビットが１４ビット、１を示すビットが１７ビットである場合、比率は、第１比率計算部２０８０によって以下のように計算される。
比率ｔ＝１  ＝  （０を示すビット数＋１）／（符号化系列のビット数＋１） ＝  （１４＋１）／（３１＋１） ≒  ４６．９％
【０２６１】
また、第２比率計算部２０８２に入力される符号化系列に含まれるビットのうち、０を示すビットは１７ビット、１を示すビットは１４ビットとなる。なぜなら、第２比率計算部２０８２に入力される符号化系列は、第１比率計算部２０８０に入力される符号化系列を論理反転したものだからである。したがって、比率ｔ＝１は、第２比率計算部２０８２によって、以下のように計算される。なお、前式、および次式の右辺の分子において、それぞれ「１」、「０」を加算しているのは、それぞれの選択識別情報を「０」、「１」と仮定しているためである。また、前式、および次式の右辺の分母において、「１」を加算しているのは、選択識別情報を含めた系列の０の個数の割合を計算するためである。
比率ｔ＝１  ＝  （０を示すビット数＋０）／（符号化系列のビット数＋１）＝  （１７＋０）／（３１＋１）≒  ５３．１％
【０２６２】
ここで、第１符号化系列と第２符号化系列の比率を「（５０±α）％」と表現すると、どちらもα＝３．１となる。したがって、いずれの比率も、同程度に、５０％に近いといえるため、いずれの符号化系列を選択してもよいこととなる。このような場合、好ましくは、第１符号化系列が選択される。第１符号化系列は、第１信号処理部２０６２を経由しておらず、後述するＲＬＬ／ＤＣフリー復号部２３２３において、第１信号処理部２０６２に対応する処理を実行する必要がない。したがって、第１符号化系列を選択した場合、記憶システム２１００における処理電力を低減できることとなる。以下においては、ｔ＝０において、αが同一の場合、第１符号化系列が選択されるものとして説明する。
【０２６３】
上述のように、ｔ＝１においては、選択出力部２０８４によって第１符号化系列が選択される。また、選択された第１符号化系列にかかる０を示すビット数「１４」が記憶される。つぎに、ｔ＝２においてもｔ＝１の場合と同様に、ＲＬＬ符号化部２０６０、第１信号処理部２０６２から、それぞれ３１ビットの符号化系列が出力されたとする。ここで、第１比率計算部２０８０に入力される符号化系列に含まれるビットのうち、０を示すビットが１１ビット、１を示すビットが２０ビットである場合、比率は、以下のように計算される。
比率ｔ＝２  ＝  （０を示すビット数＋１）／（（符号化系列のビット数＋１）×ｔ） ＝  （１４＋１＋１１＋１）／（（３１＋１）×２） ≒  ４２．２％
【０２６４】
上記は、ｔ＝１の場合と異なり、第１比率計算部２０８０は、ｔ＝１において選択された符号化系列とｔ＝２における第１符号化系列とが第１連結部によって連結された系列について、比率を計算する。すなわち、ｔ＝１で選択された第１符号化系列のうち０を示すビットの個数「１４＋１」と、ｔ＝２における第１符号化系列のうちの０を示すビットの個数「１１＋１」とが上式の分子において加算されることとなる。また、上式における分母は、２組の符号化系列にかかるビット数となる。
【０２６５】
また、第２比率計算部２０８２に入力される符号化系列に含まれるビットのうち、０を示すビットは２０ビット、１を示すビットが１１ビットとなる。そうすると、第２比率計算部２０８２によって、以下のように比率が計算される。この場合、第２符号化系列のほうが比率が５０％に近いため、ｔ＝２においては、選択出力部２０８４によって第２符号化系列が選択される。
比率ｔ＝２  ＝  （０を示すビット数＋０）／（（符号化系列のビット数＋１）×ｔ） ＝  （１４＋１＋２０＋０）／（（３１＋１）×２） ＝  ５４．７％
【０２６６】
以下、同様にｔ＝３以降においても比率が計算される。ここで、ｔ＝ｎにおける比率は、以下のように表される。ただし、ｎは１以上の整数とする。また、Ｎｂｉｔ（ｍ）とは、ｔ＝ｍにおいて選択された符号化系列に含まれるビットのうち、０を示すビットの個数を示す。また、Ｎｂｉｔ（ｎ）は、比率を計算する対象となる符号化系列に含まれるビットのうち、０を示すビットの個数を示す。なお、比率を計算する対象となる符号化系列には、選択識別情報も含まれるものとする。
【数４】
2008198239.tif 000006
【０２６７】
図２６（ｂ）は、図２５の符号化系列選択部２０７４の第２の構成例を示す図である。第２の構成における符号化系列選択部２０７４は、第１合算部２０８６と、第２合算部２０８８と、選択出力部２０８４とを含む。第１合算部２０８６は、第１符号化系列に含まれる複数のビットを合算して第１合算値を生成する。第２合算部２０８８は、第２符号化系列に含まれる複数のビットを合算して第２合算値を生成する。符号化系列検出部は、第１合算部２０８６によって生成された第１合算値と、第２合算部２０８８によって生成された第２合算値とを比較して、第１符号化系列と第２符号化系列のうち、小さいほうの合算値に対応する符号化系列を検出する。選択出力部２０８４は、第１符号化系列と、第２符号化系列とのうち、系列検出部によって検出された符号化系列を選択して出力する。
【０２６８】
具体例を用いて説明する。まず、ｔ＝１において、ＲＬＬ符号化部２０６０、第１信号処理部２０６２から、それぞれ３１ビットの符号化系列が出力されたと仮定する。この場合、第１合算部２０８６、第２合算部２０８８は、それぞれの符号化系列に含まれるビットを合算する。合算においては、０を「＋１」に置換えると共に、１を「−１」に置換えて合計してもよい。このように合算することによって、０と１を示すビットの個数が等しい場合、合算値は０となる。したがって、選択出力部２０８４においては、合算値が０に近い符号化系列を選べばよく、たとえば、合算値の絶対値が小さい符号化系列を選べばよい。なお、この手法は、連続デジタル加算（Ｒｕｎｎｉｎｇ  Ｄｉｇｉｔａｌ  Ｓｕｍｍａｔｉｏｎ。以下、「ＲＤＳ」と略称する。）とも呼ばれる。
【０２６９】
ここで、ｔ＝１において、第１合算部２０８６に入力される符号化系列に含まれる３１個のビットのうち、０を示すビットが１４ビット、１を示すビットが１７ビットである場合、比率は、以下のように計算される。なお、右辺の第１項の被乗数において「１」を加算しているのは、選択識別情報を０と仮定しているためである。
ＲＤＳabs  ＝  ｜（１４＋１）×（＋１）＋１７×（−１）｜  ＝  ２
【０２７０】
また、第２合算部２０８８に入力される符号化系列に含まれるビットのうち、０を示すビットは１７ビット、１を示すビットが１４となる。したがって、比率は、以下のように計算される。なお、右辺の第２項において「１」を加算しているのは、選択識別情報を１と仮定しているためである。
ＲＤＳabs  ＝  ｜１７×（＋１）＋（１４＋１）×（−１）｜  ＝  ２
【０２７１】
ここで、ｔ＝１においては、第１符号化系列と第２符号化系列に関し、いずれのＲＤＳabsも同一の値となるため、いずれの符号化系列を選択してもよいこととなる。いいかえると、第１符号化系列と第２符号化系列とは、互いに論理反転した関係にあるため、それぞれＲＤＳabsは、常に同一となる。ここで、「常に同一」とは、その時点におけるＲＤＳが同一であることを含む。すなわち、ｔ＝１におけるＲＤＳabsが互いに同一であっても、後述するｔ＝２におけるＲＤＳabsは、ｔ＝１において選択されたＲＤＳabsが反映された上で計算されるため、常に同一になるわけではない。なお、２つのＲＤＳabsが同一になった場合、好ましくは、第１符号化系列が選択される。第１符号化系列は、第１信号処理部２０６２を経由しておらず、後述するＲＬＬ／ＤＣフリー復号部２３２３において、第１信号処理部２０６２に対応する処理を実行する必要がない。したがって、第１符号化系列を選択した場合、記憶システム２１００における処理電力を低減できることとなる。以下においては、ｔ＝１において、第１符号化系列が選択されるものとして説明する。また、絶対値を計算する前の第１符号化系列についてのＲＤＳが「ＲＤＳ１＝−２」として記憶されたものとする。
【０２７２】
つぎに、ｔ＝２において、ｔ＝１の場合と同様に、ＲＬＬ符号化部２０６０、第１信号処理部２０６２から、それぞれ３１ビットの符号化系列が出力されたとする。ここで、第１合算部２０８６に入力される符号化系列に含まれるビットのうち、０を示すビットが１１ビット、１を示すビットが２０ビットである場合、ＲＤＳは、以下のように計算される。ｔ＝１の場合と異なり、ｔ＝２においては、ｔ＝１において選択された符号化系列にかかるＲＤＳも考慮にいれて計算されることとなる。
ＲＤＳabs  ＝  ｜ＲＤＳ１＋（１１＋１）×（＋１）＋２０×（−１）｜  ＝  ｜−２＋（−８）｜  ＝  １０
【０２７３】
また、第２合算部２０８８に入力される符号化系列に含まれるビットのうち、０を示すビットは２０ビット、１を示すビットは１１ビットとなる。したがって、比率は、以下のように計算される。この場合、第２符号化系列のＲＤＳのほうが小さいため、ｔ＝２においては、選択出力部２０８４によって第２符号化系列が選択される。また、ＲＤＳ2＝６が記憶される。
ＲＤＳabs  ＝  ｜ＲＤＳ１＋２０×（＋１）＋（１１＋１）×（−１）｜  ＝  ｜−２＋（＋８）｜  ＝  ６
【０２７４】
以下、同様にｔ＝３以降においてもＲＤＳabsが計算される。ここで、ｔ＝ｎにおけるＲＤＳabs（ｎ）は、以下のように表される。ただし、ｔは１以上の整数とする。また、Ｎｂｉｔ０（ｍ）とは、ｔ＝ｍにおいて選択された符号化系列および選択識別情報に含まれるビットのうち、０を示すビットの個数を示す。また、Ｎｂｉｔ１（ｍ）とは、ｔ＝ｍにおいて選択された符号化系列および選択識別情報に含まれるビットのうち、１を示すビットの個数を示す。ただし、Ｎｂｉｔ０（ｎ）、Ｎｂｉｔ１（ｎ）は、合算値を計算する対象となる符号化系列に含まれるビットのうち、それぞれ、０を示すビットの個数、１を示すビットの個数を示す。
【数５】
2008198239.tif 000007
【０２７５】
ここで、本第３実施形態におけるＲＤＳ（ｎ）の収束性について説明する。ここで、ＲＤＳ（ｎ）とは、ＲＤＳabs（ｎ）において絶対値を計算する前の値を示す。また、「ＲＤＳ（ｎ）の収束性」とは、ｎが無限大でＲＤＳ（ｎ）が０となることなどを含み、また、ＲＤＳ（ｎ）は少なくとも発散せず、また、任意の時刻ｔにおいて、±０を中心として振動することなどを含む。このような性質を有するＲＤＳ（ｎ）を生成することによって、常に良好なＤＣフリー特性を維持できることとなる。
【０２７６】
具体例を用いて説明する。ここで、時刻ｎ＝１〜５における各符号化系列におけるＲＤＳが、以下のように計算されたと仮定する。なお、ＲＤＳ１（ｎ）とは、第１符号化系列におけるＲＤＳを示し、また、ＲＤＳ２（ｎ）とは、第２符号化系列におけるＲＤＳを示す。
ＲＤＳ１（ｎ）＝｛＋５、＋７、−１、−６、−４｝
ＲＤＳ２（ｎ）＝｛−５、−７、＋１、＋６、＋４｝
【０２７７】
ここで、ｎ＝１については、前述したようにＲＤＳabsは同一となり、ＲＤＳ１（１）が選択されたと仮定する。そうすると、ｎ＝１〜５において計算されるＲＤＳ（ｎ）は、以下のように示される。
ＲＤＳ（ｎ）＝｛５、−２、−１、５、１｝
【０２７８】
上式は、任意の時刻ｎにおけるＲＤＳ（ｎ）が０以上である場合、次の時刻（ｎ＋１）においては、負のＲＤＳを有する符号化系列が選択され、０に近づけていることを示す。また、任意の時刻ｎにおけるＲＤＳ（ｎ）が０以下である場合、次の時刻（ｎ＋１）においては、正のＲＤＳを有する符号化系列が選択され、０に近づけることを示す。ここで、本第３実施形態においては、前述したように、第１符号化系列と第２符号化系列とは、互いに論理反転された系列であるため、ＲＤＳ１（ｎ）とＲＤＳ２（ｎ）とは、正負が反転された値となる。そうすると、任意のｎにおいて、一方のＲＤＳは、必ず他方のＲＤＳの符号が反転されていることとなる。したがって、ＲＤＳ（ｎ）は、上式に示すように、任意のｎにおいて、発散せず、また、±０を中心として振動する性質を備えることとなる。いいかえると、第１符号化系列と第２符号化系列とを互いに反転する関係とすることによって、ＲＤＳ（ｎ）は良好な収束性を備えることができるため、高いＤＣフリー特性が保証され、また、維持できることとなる。さらに、前述したように、第１符号化系列と第２符号化系列とは、同一のＲＬＬ特性を有する。したがって、本第３実施形態に示す態様をとることによって、記憶システム２１００は、ＲＬＬ特性とＤＣフリー特性とを同時に向上できる。なお、後述する図２６（ｃ）に示す態様においても、同様の効果が得られることは言うまでもない。
【０２７９】
上記における符号化系列選択部２０７４の動作は、ある時刻においては区間演算処理を行ないつつ、過去の連続する時刻間において移動演算処理を行なっている点が特徴となる。このように、区間処理と移動処理を組み合わせることによって、長区間、たとえば、３００ビットの系列全体において、ＤＣフリー性が向上されることとなる。
【０２８０】
なお、第１合算部２０８６、第２合算部２０８８における合算処理は、符号化系列に含まれる０もしくは１を示すビットをそのまま合計してもよい。この場合、選択出力部２０８４においては、合算値が符号化系列の個数の半分の値に近いほうに対応する符号化系列が選択されることとなる。
【０２８１】
図２６（ｃ）は、図２５の符号化系列選択部２０７４の第３の構成例を示す図である。第３の構成における符号化系列選択部２０７４は、第１移動加算部２０９０と、第１最大値検出部２０９２と、第２移動加算部２０９４と、第２最大値検出部２０９６と、選択出力部２０８４とを含む。第１移動加算部２０９０は、第１符号化系列に含まれる複数のビットを移動加算を計算することによって、複数のビットと同数の第１移動加算値を生成する。第１最大値検出部２０９２は、第１移動加算部２０９０によって生成された複数の第１移動加算値のうち、最大値を検出する。第２移動加算部２０９４は、第２符号化系列に含まれる複数のビットを移動加算することによって、複数のビットと同数の第２移動加算値を生成する。第２最大値検出部２０９６は、第２移動加算部２０９４によって生成された複数の第２移動加算値のうち、最大値を検出する。符号化系列検出部は、第１最大値検出部２０９２によって検出された最大値と、第２最大値検出部２０９６によって検出された最大値とを比較して、第１符号化系列と第２符号化系列のうち、小さいほうの最大値に対応する符号化系列を検出する。選択出力部２０８４は、第１符号化系列と、第２符号化系列とのうち、系列検出部によって検出された符号化系列を選択して出力する。
【０２８２】
符号化系列選択部２０７４の第３の構成例は、第２の構成例と同様に、第１移動加算部２０９０、第２移動加算部２０９４において、それぞれの符号化系列のＲＤＳを計算することによって、選択出力部２０８４が符号化系列を選択する。第３の構成例においては、３２ビットのＲＤＳの計算途中における最大値が小さいほうの符号化系列を選択する点で、３２ビットのＲＤＳ計算の最終計算値のみ考慮して０に近い符号化系列を選択する第２の構成例と異なる。言い換えると、第３の構成例は、所定の区間においても、複数の区間においても、移動演算によって選択処理を行なっている。このような態様をとることによって、区間途中においてもＤＣフリー性の良い系列を選択できる。
【０２８３】
ここで、「ＲＤＳの計算途中における最大値」は、時刻ｔごとに、以下で導出される。ただし、Ｍｉｎ｛ｙ（０）、ｙ（１）｝とは、小さいほうの値を選択し、選択したほうの系列の番号を出力する関数を示す。たとえば、ｙ（０）＞ｙ（１）の場合、Ｓ（ｔ）は、１となる。また、ｍａｘ｛ｘ｝とは、ｘのうち、最大値を検出する関数を示す。また、ｎは、（ｔ−１）×３２＋１〜３２×ｔの範囲の値を示す。また、Ｂｉｔ（ｍ、ｊ）は、第ｊ符号化系列のうち、ｍ番目のビットが０である場合は＋１を示し、また、１である場合は−１を示す。
Ｓ（ｔ）＝Ｍｉｎ｛ＭａｘＲＤＳ（１）、ＭａｘＲＤＳ（２）｝
ＭａｘＲＤＳ（１）  ＝  ｍａｘ｛ＲＤＳ（ｎ、１）｝
ＭａｘＲＤＳ（２）  ＝  ｍａｘ｛ＲＤＳ（ｎ、２）｝
【数６】
2008198239.tif 000008
【０２８４】
また、Ｂｉｔ（ｍ、１）、Ｂｉｔ（ｍ、２）は、ｔが増加するごとに、選択された系列に係るビットを下記のように書き換えた後に、計算されることとなる。
Ｂｉｔ（ｍ、１）＝Ｂｉｔ（ｍ、２）＝Ｂｉｔ（ｍ、Ｓ（ｔ−１））  ：ｍ＝（ｔ−１）×３２＋１〜ｔ×３２、ｔ≠１
【０２８５】
ここで、図２６（ｃ）に示す符号化系列選択部２０７４の第３の構成例の動作について、図２６（ｂ）に示す符号化系列選択部２０７４の第２の構成例の動作と比較する。図２７は、図２６（ｂ）と図２６（ｃ）にそれぞれ示す符号化系列選択部２０７４の動作の相違を示す図である。横軸は時間、縦軸はＲＤＳを示す。ここで、２４００Ａは、第１符号化系列におけるＲＤＳの推移を示す。また、２４００Ｂは、第２符号化系列におけるＲＤＳの推移を示す。図２６（ｂ）に示す符号化系列選択部２０７４の第２の構成例においては、ＲＤＳの区間演算の最終値であるＲＤＳＡとＲＤＳＢとを比較して小さいほうの符号化系列を選択する。図２７においては、ＲＤＳＡ＜ＲＤＳＢであるので、選択出力部２０８４は、第１符号化系列を選択することとなる。一方、図２６（ｃ）に示す符号化系列選択部２０７４の第３の構成例においては、それぞれのビットにおけるＲＤＳ、すなわち、３２個のビットを順次移動演算処理した後の絶対値のうち、最大値を比較して、小さいほうの符号化系列を選択する。図２７においては、第１符号化系列については、ＭａｘＡが最大値であり、また、第２符号化系列については、ＭａｘＢが最大値となる。ここでは、ＭａｘＡ＞ＭａｘＢであるので、選択出力部２０８４は、第２符号化系列を選択することとなる。いずれの構成例を符号化系列選択部２０７４に適用した場合においても、ＤＣフリー性の高い符号化系列を選択することができる。
【０２８６】
図２８は、図２２のＲＬＬ／ＤＣフリー復号部２３２３の構成例を示す図である。ＲＬＬ／ＤＣフリー復号部２３２３は、判定ビット取得部２０６８と、ＲＬＬ復号部２０７０と、第２信号処理部２０７２とを含む。判定ビット取得部２０６８は、ＬＤＰＣ繰返復号部２３２２によって入力された符号化系列に付加されている所定の判定ビットを取得する。第２信号処理部２０７２は、判定ビット取得部２０６８によって取得された判定ビットに応じて、符号化系列に対し、第１信号処理部２０６２で実行された所定の信号処理と逆の信号処理を実行して出力する処理を実行する。たとえば、図２４の第１信号処理部２０６２において、ビット反転処理を行なっていた場合、ビットの反転処理を元に戻す再反転処理とを実行する。もしくは、判定ビット取得部２０６８によって取得された判定ビットに応じて、第２信号処理部２０７２は、符号化系列に含まれる複数のビットをそのまま出力する処理を実行する。ＲＬＬ復号部２０７０は、第２信号処理部２０７２によって出力された符号化系列をランレングス制限復号することによってデジタル信号系列を生成する。
【０２８７】
上述したこれらの構成は、ハードウエア的には、任意のコンピュータのＣＰＵ、メモリ、その他のＬＳＩで実現でき、ソフトウエア的にはメモリにロードされた通信機能のあるプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
【０２８８】
本第３実施形態によれば、ＲＬＬ符号化された信号系列と、その信号系列に対しビット反転処理がほどこされた信号系列とを対象とすることによって、生成される系列は論理反転された関係となるため、第１符号化系列と第２符号化系列とを互いに反転する関係とすることによって、計算されるＲＤＳ（ｎ）は良好な収束性を備えることができるため、高いＤＣフリー特性が保証され、また、維持できることとなる。さらに、前述したように、第１符号化系列と第２符号化系列とは、同一のＲＬＬ特性を有する。したがって、本第３実施形態に示す態様をとることによって、記憶システム２１００は、ＲＬＬ特性とＤＣフリー特性とを同時に向上できる。また、ビット反転処理することによって、系列に含まれるビットの個数を増加せずに、異なる系列を生成できる。
【０２８９】
また、系列に含まれるビットの個数が増加しないため、全体の符号化率を低下させずに符号化系列が得られる。また、いずれの符号化系列が選択されたことを示す情報を符号化系列に付加することによって、復号側にて、容易に選択された符号化系列を判別できる。また、過去において選択された符号化系列と、現在選択の候補となっている符号化系列とを連結させたものを対象として、符号化系列選択部２０７４が選択判定を行なうことによって、長区間におけるＤＣフリー特性を向上できる。符号化系列選択部２０７４において、区間処理と移動処理を組み合わせてＲＤＳを計算することによって、長区間、たとえば、３００ビットの系列全体において、ＤＣフリー性が向上できる。また、０を示すビットと１を示すビットとの比率が５０％に近いほうを選択することによって、ＤＣフリー性の高い符号化系列が選択できる。また、符号化系列に含まれる複数のビットを合算し、より小さい合算値に対応する系列を選択することによって、ＤＣフリー性の高い符号化系列が選択できる。また、符号化系列に含まれる複数のビットを移動加算した結果のうちの最大値を用いて系列を選択することによって、ＤＣフリー性の高い符号化系列が選択できる。符号化側において実行されたＤＣフリー符号化に対応する処理を実行することによって、元のデジタル信号系列を復号できる。ＤＣフリー性の高い符号化処理を実行することによって、より高速に記憶システムにアクセスすることができる。また、余分なハードウェアを搭載する必要がなくなるので、低規模な半導体集積回路を実現できる。
【０２９０】
本第３実施形態において、Ｒ／Ｗチャネル２００３は、１つの半導体基板上に一体集積化されてもよい。また、本第３実施形態の符号化系列選択部２０７４において、区間演算処理、もしくは、移動演算処理として説明した。しかしながらこれにかぎらず、区間平均処理、もしくは、移動平均処理を行なうことによって、ＤＣフリー性の高い符号化系列の選別を行なってもよい。この場合であっても、同様の効果を得ることができる。
【０２９１】
（第４実施形態）
第４実施形態は、記憶媒体へのアクセス技術に関し、特に、記憶媒体から読み出した信号の振幅を調整する振幅調整装置、振幅調整方法、および記憶システムに関する。
【０２９２】
第４実施形態の背景技術について説明する。
【０２９３】
近年、ハードディスクを用いた記憶装置は、パーソナルコンピュータ、ハードディスクレコーダー、ビデオカメラ、携帯電話など、さまざまな分野において必須の装置となりつつある。ハードディスクを用いた記憶装置は、適用される分野によって求められる仕様もさまざまである。たとえば、パーソナルコンピュータに搭載するハードディスクには、高速性、大容量性が求められる。しかしながら、高速化が進むほど単位時間あたりに扱うデータの量が増えるため、単位時間あたりの誤りも比例して増大する。そうすると、すべての誤りを訂正することが困難となり、結果的にハードディスクへのアクセスに要する時間が増大する場合があり、高速化のボトルネックとなる。
【０２９４】
一般的に、記憶装置に記憶されている信号を読み出す素子として、磁気抵抗素子（ＭａｇｎｅｔｏＲｅｓｉｓｔｉｖｅ）が用いられていた。しかし、磁気抵抗素子を介して記憶装置から読み出した再生信号波形は、正パルスの出力振幅と負パルスの出力振幅とが非対称となる（以下、「振幅の非対称性」と表記する。）問題があった（たとえば、非特許文献１参照。）。振幅の非対称性（Ａｍｐｌｉｔｕｄｅ  Ａｓｙｍｍｅｔｒｙ）の問題は、磁気抵抗素子により、正パルスと負パルスのいずれか一方の出力振幅が低減されて出力されることによって生じ、両パルスのダイナミックレンジが異なることをいう。振幅の非対称性が顕著に現れる場合、磁気抵抗素子の後段において実行されるデータ検出処理の検出精度が劣化することとなる。そうすると、データ検出の後に実行される誤り訂正復号の訂正能力が低減してしまう。このような場合、記憶装置に記憶されたデータを正しく再生するために、再度、記憶装置にアクセスする必要が生じるため、記憶装置の高速化が困難となっていた。この非対称性を解消する技術として、従来、磁気抵抗素子に印加するバイアス磁界を制御していた（たとえば、特開平４−２０５９０３号公報参照。）。また、アナログ／デジタル変換器のゼロレベルを調整することによって、非対称性を補正していた（たとえば、特開平５−２０５２０５号公報参照。）。また、誤り訂正処理後の結果をフィードバックすることによって、非対称性を補正していた（たとえば、特開平１１−２３８２０５号公報参照。）。
【０２９５】
【非特許文献１】Ａｋｉｈｉｋｏ  Ｔａｋｅｏ、ｅｔ．  ａｌ．、「Ｃｈａｒａｃｔｅｒｉｚａｔｉｏｎ  ｏｆ  ＧＭＲ  Ｎｏｎｌｉｎｅａｒ  Ｒｅｓｐｏｎｓｅ  ａｎｄ  ｔｈｅ  Ｉｍｐａｃｔ  ｏｎ  ＢＥＲ  ｉｎ  Ｐｅｒｐｅｎｄｉｃｕｌａｒ  Ｍａｇｎｅｔｉｃ  Ｒｅｃｏｒｄｉｎｇ」、ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ｍａｇｎｅｔｉｃｓ、Ｊｕｌｙ，２００４、Ｖｏｌ．４０、Ｎｏ．４
【０２９６】
第４実施形態が解決しようとする課題について説明する。
【０２９７】
本発明者はこうした状況下、以下の課題を認識するに至った。すなわち、アナログ回路によっては動作が不安定となるので非線形性を正確に補正することが困難であり、また、回路規模が増大するといった課題である。一方、デジタル処理によって非線形性を補正すると、フィードバックループに伴う遅延の発生、あるいは、アナログ／デジタル変換器におけるビット数の増加に伴う回路規模の増大といった課題である。
【０２９８】
本発明の第４実施形態はこうした状況に鑑みてなされたものであり、その総括的な目的は、より少ない回路規模で、振幅の非対称性を低減できる記憶装置を提供することにある。
【０２９９】
上記課題を解決するために、本発明の第４実施形態のある態様の振幅調整装置は、入力部と、アナログデジタル変換部とを備える。入力部は、磁気抵抗素子を介して出力されたアナログ信号であって、正区間におけるダイナミックレンジと負区間におけるダイナミックレンジとが非対称となり、いずれか一方の区間に非線形区間を含むアナログ信号を入力する。アナログデジタル変換部は、入力部で入力されたアナログ信号の振幅が非線形区間に存在する場合、アナログ信号に対して振幅を調整しつつ、デジタル信号に変換して出力する。また、アナログデジタル変換部は、アナログ信号をデジタル信号に変換する前に、非線形区間における非線形性を打ち消すように、アナログ信号の振幅を調整する前置調整部を有する。
【０３００】
ここで、「非線形区間」とは、磁気抵抗素子の入出力特性において磁気抵抗素子に入力されたアナログ信号の振幅が歪まされて出力される区間などを含む。また、「非線形区間における非線形性を打ち消すように、アナログ信号の振幅を調整する前置調整部」とは、その入出力特性として、非線形区間における入出力特性の逆特性、もしくは、逆特性に近似した特性を有する前置補正部などを含む。
【０３０１】
この態様によると、アナログデジタル変換部において、アナログ信号の振幅を調整することによって、磁気抵抗素子において発生した振幅の非線形性を打ち消すことができる。また、磁気抵抗素子において発生した振幅の非線形性を打ち消すことによって、後段において実行するデータ検出の検出精度を向上できる。また、さらに後段において実行される誤り訂正復号後の誤り特性を改善できる。
【０３０２】
前置調整部は、非線形区間における入出力特性を双曲線正接関数の逆数に相当する値とすることによって、非線形区間におけるアナログ信号の振幅を調整してもよい。前置調整部は、非線形区間に含まれる複数の部分区間において、複数の部分区間のうちの第１部分区間の入出力特性として、少なくとも１より大きい第１の傾きを有する１次関数が設定され、また、複数の部分区間のうち、第１部分区間と連続する第２部分区間の入出力特性として、第１の傾きと異なる傾きを有する１次関数が設定されていてもよい。ここで、「双曲線正接関数の逆数に相当する値」とは、少なくとも双曲線正接関数の入出力特性を近似した値などを含み、たとえば、双曲線正接関数の入出力特性とｎ次関数（ｎは１以上の整数）の入出力特性とを加算、減算、乗算、もしくは除算した複数の値なども含む。また、「連続する」とは、第１部分区間の終点と第２部分区間の始点とが一致することなどを含み、また、第１部分区間の始点と第２部分区間の終点とが一致することも含む。
【０３０３】
前置調整部は、複数の抵抗素子と、比較部とを有してもよい。複数の抵抗素子は、直列に設置された複数の抵抗素子であって、一定電圧を有する参照信号を入力として、順次、後段の抵抗素子に対し、それぞれ振幅調整された参照信号を出力する。比較部は、複数の抵抗素子のそれぞれから出力された参照信号と、入力部から入力されたアナログ信号の振幅とをそれぞれ比較することによって、アナログ信号の振幅を調整する。また、複数の抵抗素子は、それぞれの抵抗素子の抵抗値に非均一性をもたせることによって、振幅調整の幅を変えてもよい。また、複数の抵抗素子のうち非線形区間に対応する抵抗素子は、非線形区間以外の区間に対応する抵抗素子の抵抗値と異なる抵抗値に設定されることによって、非線形区間における非線形性を調整してもよい。ここで、「それぞれの抵抗素子の抵抗値に非均一性をもたせる」とは、複数の抵抗素子のうち、少なくとも１以上の抵抗素子の抵抗値が他の抵抗素子の抵抗値と異なることなどを含み、複数の抵抗素子において、同一の抵抗値を有する抵抗素子が複数存在してもよい。この態様によると、アナログデジタル変換部に含まれる複数の抵抗素子の抵抗値をそれぞれ設定するだけで、アナログ信号の振幅の非対称性の低減化を小規模な回路で実現できる。
【０３０４】
前置調整部は、複数の抵抗素子のうち少なくとも１以上の抵抗素子の入力端に接続され、入力端のそれぞれに対し、対応する参照電圧を印加することによって、前記複数の抵抗素子のそれぞれから出力される参照信号の振幅を調整する参照電圧制御部と、をさらに有してもよい。この場合、複数の抵抗素子は、同一の抵抗値を有してもよい。また、参照電圧制御部は、複数の抵抗素子のうち非線形区間に対応する抵抗素子の入力端に対し、非線形区間以外の区間に対応する抵抗素子の入力端とは異なる参照電圧を印加することによって、非線形区間における非線形性を調整してもよい。ここで、「対応する参照電圧」とは、抵抗素子ごとに対応づけられて決定された参照電圧を含み、予め設定されていてもよく、また、磁気抵抗素子の品質にしたがって動的に変化してもよい。この態様によると、参照電圧制御部によって柔軟に参照信号の振幅を制御できる。また、アナログデジタル変換部に含まれる複数の抵抗素子の抵抗値を同一にできるので回路コストが低減できる。また、アナログ信号の振幅の非対称性の低減化を小規模な回路で実現できる。
【０３０５】
本発明の第４実施形態の別の態様は、振幅調整方法である。この方法は、入力するステップと、出力するステップとを含む。入力するステップは、磁気抵抗素子を介して出力されたアナログ信号であって、正区間におけるダイナミックレンジと負区間におけるダイナミックレンジとが非対称となり、いずれか一方の区間に非線形区間を含むアナログ信号を入力する。出力するステップは、非線形区間に存在するアナログ信号に対して、非線形区間における非線形性を打ち消すようにその振幅を調整しつつ、デジタル信号に変換して出力する。この態様によると、出力するステップにおいて、アナログ信号の振幅を調整することによって、磁気抵抗素子において発生した振幅の非線形性を打ち消すことができる。また、磁気抵抗素子において発生した振幅の非線形性を打ち消すことによって、後段において実行するデータ検出の検出精度を向上できる。また、さらに後段において実行される誤り訂正復号後の誤り特性を改善できる。
【０３０６】
本発明の第４実施形態のさらに別の態様は、記憶システムである。この記憶システムは、データを記憶装置に書き込むライトチャネルと、記憶装置に記憶されているデータを読み出すリードチャネルとを備える信号記憶システムである。ライトチャネルは、データをランレングス符号化する第１の符号化部と、第１の符号化部で符号化されたデータに対し、低密度パリティ検査符号を用いて符号化する第２の符号化部と、第２の符号化部で符号化されたデータを記憶装置に書き込む書き込み部と、を有する。リードチャネルは、入力部と、アナログデジタル変換部と、ソフト出力検出部と、第１の復号部と、第２の復号部とを有する。入力部は、磁気抵抗素子を介して記憶装置から出力されたアナログ信号であって、正区間におけるダイナミックレンジと負区間におけるダイナミックレンジとが非対称となり、いずれか一方の区間に非線形区間を含むアナログ信号を入力する。アナログデジタル変換部は、入力部から入力されたアナログ信号をデジタル信号に変換して出力する。ソフト出力検出部は、アナログデジタル変換部から出力されたデジタル信号の尤度を計算して軟判定値を出力する。第１の復号部は、ソフト出力検出部から出力されたデータを復号し、第２の符号化部に対応している。第２の復号部は、第１の復号部で復号されたデータを復号し、第１の符号化部に対応している。アナログデジタル変換部は、入力部で入力されたアナログ信号の振幅が非線形区間に存在する場合、アナログ信号をデジタル信号に変換する前に、アナログ信号に対して、非線形区間における非線形性を打ち消すように振幅を調整する前置調整部を有する。この態様によると、磁気抵抗素子において発生した振幅の非対称性による影響を低減することができ、より高速に記憶システムにアクセスすることができる。
【０３０７】
本発明の第４実施形態のさらに別の態様もまた、記憶システムである。この記憶システムは、さらに、データを記憶する記憶装置と、記憶装置への書き込みと、記憶装置からの読み出しとを制御する制御部と、を有する。リードチャネルは、制御部の指示に従って、記憶装置に記憶されているデータを磁気抵抗素子を介して読み出し、ライトチャネルは、制御部の指示に従って、符号化されたデータを記憶装置に書き込む。この態様によると、磁気抵抗素子において発生した振幅の非対称性による影響を低減することができ、より高速に記憶システムにアクセスすることができる。
【０３０８】
本発明の第４実施形態のさらに別の態様は、振幅調整装置である。この装置は、１つの半導体基板上に一体集積化されている。この態様によると、一体集積化されることにより、低規模な半導体集積回路を実現できる。
【０３０９】
本発明の第４実施形態のさらに別の態様は、記録情報読取装置である。記録情報読取装置は、ディスクに記録された記録情報を読み取る読取部から出力されたアナログ信号を入力するアナログ信号入力部と、アナログ信号入力部からアナログ信号を入力し、これをデジタル信号に変換する際に、アナログ信号の入力レベルの正区間あるいは負区間のいずれか一方の区間において、入出力特性におけるアナログ信号とデジタル信号の関係がアナログ信号の入力レベルが小さい場合とアナログ信号の入力レベルが大きい場合とで異なるアナログデジタル変換部と、を備える。アナログデジタル変換部は、直列に設置された複数の抵抗素子であって、一定電圧を有する参照信号を入力として、順次、後段の抵抗素子に対し、それぞれ振幅調整された参照信号を出力する複数の抵抗素子と、複数の抵抗素子のそれぞれから出力された参照信号と、前記入力部から入力されたアナログ信号の入力レベルとをそれぞれ比較することによって、前記アナログ信号の入力レベルを調整する比較部とを有してもよい。複数の抵抗素子は、それぞれの抵抗素子の抵抗値に非均一性をもたせることによって、入力レベルの調整の幅を変えてもよい。
【０３１０】
本発明の第４実施形態のさらに別の態様は、記録情報読取装置である。この装置は、ディスクに記録された記録情報を読み取る読取部から出力されたアナログ信号を入力するアナログ信号入力部と、アナログ信号入力部からアナログ信号を入力し、これをデジタル信号に変換する際に、入出力特性におけるアナログ信号とデジタル信号の関係が可変のアナログデジタル変換部と、アナログデジタル変換部の出力に応じ、アナログデジタル変換部の入出力特性におけるアナログ信号とデジタル信号との関係を決定する制御部と、を備える。アナログデジタル変換部は、アナログ信号が入力される可変抵抗を有し、制御部は、前記可変抵抗の抵抗値を決定してもよい。
【０３１１】
なお、以上の構成要素の任意の組合せや本発明の構成要素や表現を方法、装置、システムなどの間で相互に置換したものもまた、本発明の態様として有効である。
【０３１２】
本発明の第４実施形態を具体的に説明する前に、まず本第４実施形態にかかる記憶装置について概要を述べる。本第４実施形態にかかる記憶装置は、ハードディスクコントローラと、磁気ディスク装置と、リードチャネルとライトチャネルを含むリードライトチャネルと、を有する。磁気ディスク装置においては、通常、磁気抵抗素子（ＭａｇｎｅｔｒｏＲｅｓｉｓｔｉｖｅ。以下、「ＭＲ素子」と略記する。）を含むヘッドを介して、ハードディスクに記憶されているデータを読み出す。ここで、ハードディスクから読み出した信号の波形は、正パルスの出力振幅と負パルスの出力振幅とが非対称となることがあり、高速化のボトルネックとなっていた。そこで、本発明の第４実施形態においては、リードチャネルにおいて読出したアナログ信号をデジタル信号に変換する際に、振幅の非対称性を改善する。詳細は後述するが、アナログデジタル変換器の入出力特性を振幅の非対称性を打ち消すような特性とすることによって、振幅の非対称性を低減する。
【０３１３】
以下、図面を用いて、本発明の第４実施形態について詳細に説明する。
【０３１４】
図２９は、本発明の第４実施形態に係る磁気ディスク装置３１００の構成を示す図である。図２９の磁気ディスク装置３１００は、大きく分けて、ハードディスクコントローラ３００１（以下、「ＨＤＣ３００１」と略記する。）、中央処理演算装置３００２（以下、「ＣＰＵ３００２」と略記する。）、リードライトチャネル３００３（以下、「Ｒ／Ｗチャネル３００３」と略記する。）、ボイスコイルモータ／スピンドルモータ制御部３００４（以下、「ＶＣＭ／ＳＰＭ制御部３００４」と略記する。）、及びディスクエンクロージャ３００５（以下、「ＤＥ３００５」と略記する。）とから構成される。一般に、ＨＤＣ３００１、ＣＰＵ３００２、Ｒ／Ｗチャネル３００３、及びＶＣＭ／ＳＰＭ制御部３００４は同一の基板上に構成される。
【０３１５】
ＨＤＣ３００１は、ＨＤＣ３００１全体を制御する主制御部３０１１、データフォーマット制御部３０１２、誤り訂正符号化制御部３０１３（以下、「ＥＣＣ制御部３０１３」と略記する。）、及びバッファＲＡＭ３０１４を含む。ＨＤＣ３００１は、図示しないインタフェース部を介してホストシステムと接続される。また、Ｒ／Ｗチャネル３００３を介して、ＤＥ３００５と接続されており、主制御部３０１１の制御により、ホストとＤＥ３００５の間でデータ転送処理を実行する。このＨＤＣ３００１には、Ｒ／Ｗチャネル３００３で生成されるリードリファレンスクロック（ＲＲＣＫ）が入力される。データフォーマット制御部３０１２は、ホストから転送されたデータをディスク媒体３０５０上に記録するのに適したフォーマットに変換し、逆に、ディスク媒体３０５０から再生されたデータをホストに転送するのに適したフォーマットに変換する。ディスク媒体３０５０は、たとえば、磁気ディスクを含む。ＥＣＣ制御部３０１３は、ディスク媒体３０５０から再生されたデータに含まれる誤りの訂正及び検出を可能にするために、記録するデータを情報シンボルとして、冗長シンボルを付加する。またＥＣＣ制御部３０１３は、再生されたデータに誤りが生じているかを判断し、誤りがある場合には訂正或いは検出を行う。但し、誤りが訂正できるシンボル数は有限であり、冗長データの長さに関係する。即ち、多くの冗長データを付加するとフォーマット効率が悪化するため、誤り訂正可能シンボル数とはトレードオフとなる。ＥＣＣとしてリードソロモン（ＲＳ）符号を利用して誤り訂正を実行する場合、（冗長シンボル数／２）個までの誤りを訂正できる。バッファＲＡＭ３０１４は、ホストから転送されたデータを一時的に保存し、適切なタイミングでＲ／Ｗチャネル３００３に転送する。逆に、Ｒ／Ｗチャネル３００３から転送されたリードデータを一時的に保存し、ＥＣＣ復号処理などの終了後、適切なタイミングでホストに転送する。
【０３１６】
ＣＰＵ３００２は、フラッシュＲＯＭ３０２１（以下、「ＦＲＯＭ３０２１」と略記する。）、及びＲＡＭ３０２２を含み、ＨＤＣ３００１、Ｒ／Ｗチャネル３００３、ＶＣＭ／ＳＰＭ制御部３００４、及びＤＥ３００５と接続される。ＦＲＯＭ３０２１には、ＣＰＵ３００２の動作プログラムが保存されている。
【０３１７】
Ｒ／Ｗチャネル３００３は、ライトチャネル３０３１とリードチャネル３０３２とに大別され、ＨＤＣ３００１との間で記録するデータ及び再生されたデータの転送処理を実行する。また、Ｒ／Ｗチャネル３００３は、ＤＥ３００５と接続され、記録信号の送信、再生信号の受信を実行する。詳細は後述する。
【０３１８】
ＶＣＭ／ＳＰＭ制御部３００４は、ＤＥ３００５中のボイスコイルモータ３０５２（以下、「ＶＣＭ３０５２」と略記する。）とスピンドルモータ３０５３（以下、「ＳＰＭ３０５３」と略記する。）を制御する。
【０３１９】
ＤＥ３００５は、Ｒ／Ｗチャネル３００３と接続され、記録信号の受信処理、再生信号の送信処理を実行する。またＤＥ３００５は、ＶＣＭ／ＳＰＭ制御部３００４と接続されている。ＤＥ３００５は、ディスク媒体３０５０、ヘッド３０５１、ＶＣＭ３０５２、ＳＰＭ３０５３、及びプリアンプ３０５４等を有している。図２９の磁気ディスク装置３１００においては、ディスク媒体３０５０が１枚であり、且つヘッド３０５１がディスク媒体３０５０の一方の面側のみに配置されている場合を想定しているが、複数のディスク媒体３０５０が積層配置された構成であってもよい。また、ヘッド３０５１は、ディスク媒体３０５０の各面に対応して設けられるのが一般的である。Ｒ／Ｗチャネル３００３により送信された記録信号は、ＤＥ３００５内のプリアンプ３０５４を経由してヘッド３０５１に供給され、ヘッド３０５１によりディスク媒体３０５０に記録される。逆に、ヘッド３０５１によりディスク媒体３０５０から再生された信号は、プリアンプ３０５４を経由してＲ／Ｗチャネル３００３に送信される。ＤＥ３００５内のＶＣＭ３０５２は、ヘッド３０５１をディスク媒体３０５０上の目標位置に位置決めするために、ヘッド３０５１をディスク媒体３０５０の半径方向に移動させる。また、ＳＰＭ３０５３は、ディスク媒体３０５０を回転させる。なお、ヘッド３０５１には、前述したようにＭＲ素子に起因して、その出力振幅が非対称となる。詳細は後述する。
【０３２０】
ここで、図３０を用いて、Ｒ／Ｗチャネル３００３について説明する。図３０は、図２９のＲ／Ｗチャネル３００３の構成を示す図である。Ｒ／Ｗチャネル３００３は、大きく分けて、ライトチャネル３０３１とリードチャネル３０３２から構成される。
【０３２１】
ライトチャネル３０３１は、バイトインターフェース部３３０１、スクランブラ３３０２、ランレングス制限符号化部３３０３（以下、「ＲＬＬ符号化部３３０３」と略記する。）、低密度パリティチェック符号化部３３０４（以下、「ＬＤＰＣ符号化部３３０４」と略記する。）、書き込み補償部３３０５（以下、「ライトプリコン部３３０５」と略記する。）、ドライバ３３０６を含む。
【０３２２】
バイトインターフェース部３３０１では、ＨＤＣ３００１から転送されたデータが入力データとして処理される。メディア上に書き込むデータは１セクタ単位でＨＤＣ３００１から入力される。このとき１セクタ分のユーザデータ（５１２バイト）だけでなく、ＨＤＣ３００１によって付加されたＥＣＣバイトも同時に入力される。データバスは通常１バイト（８ビット）であり、バイトインターフェース部３３０１により入力データとして処理される。スクランブラ３３０２はライトデータをランダムな系列に変換する。同じ規則のデータの繰り返しは、リード時における検出性能に悪影響を与え、エラーレートを悪化させるのを防ぐためである。ＲＬＬ符号化部３３０３は０の最大連続長を制限するためのものである。０の最大連続長を制限することにより、自動利得制御部３３１７（以下、「ＡＧＣ３３１７」と略記する。）などに適したデータ系列にする。
【０３２３】
ＬＤＰＣ符号化部３３０４は、データ系列をＬＤＰＣ符号化して冗長ビットであるパリティビットを含む系列を生成する役割を有する。ＬＤＰＣ符号化は、生成行列と呼ばれるｋ×ｎの行列に、長さｋのデータ系列を左から掛け合わせることで実行される。この生成行列に対応する検査行列Ｈに含まれる各要素は、０もしくは１であり、１の数が０の数に比べて少ないことから、低密度パリティ検査符号（Ｌｏｗ  Ｄｅｎｓｉｔｙ  Ｐａｒｉｔｙ  Ｃｈｅｃｋ  Ｃｏｄｅｓ）と呼ばれている。この１と０の配置を利用することによって、ＬＤＰＣ繰返復号部にて、効率的にエラーを訂正できる。
【０３２４】
ライトプリコン部３３０５は、メディア上の磁化遷移の連続による非線形歪を補償する回路である。ライトデータから補償に必要な規則を検出し、正しい位置で磁化遷移が生ずるようにライト電流波形を予め調整をする。ドライバ３３０６は擬似ＥＣＬレベルに対応した信号を出力するドライバである。ドライバ３３０６からの出力は図示しないＤＥ３００５に送られ、プリアンプ３０５４を通してヘッド３０５１に送られ、ライトデータがディスク媒体３０５０上に記録される。
【０３２５】
リードチャネル３０３２は、可変利得増幅器３３１１（以下、「ＶＧＡ３３１１」と略記する。）、ローパスフィルタ３３１２（以下、「ＬＰＦ３３１２」と略記する。）、ＡＧＣ３３１７、アナログ／デジタル変換器３３１３（以下、「ＡＤＣ３３１３」と略記する。）、周波数シンセサイザ３３１４、フィルタ３３１５、ソフト出力検出部３３２０、ＬＤＰＣ繰返復号部３３２２、同期信号検出部３３２１、ランレングス制限復号部３３２３（以下、「ＲＬＬ復号部３３２３」と略記する。）、デスクランブラ３３２４とから構成されている。
【０３２６】
ＶＧＡ３３１１及びＡＧＣ３３１７は、図示しないプリアンプ３０５４から送られたデータのリード波形の振幅を調整する。ＡＧＣ３３１７は理想的な振幅と実際の振幅を比較し、ＶＧＡ３３１１に設定すべきゲインを決定する。ＬＰＦ３３１２は、カットオフ周波数とブースト量を調整することができ、高周波ノイズの低減と部分応答（Ｐａｒｔｉａｌ Ｒｅｓｐｏｎｓｅ。以下、「ＰＲ」と略記する。）波形への等化の一部を担う。ＬＰＦ３３１２でＰＲ波形への等化を行うが、ヘッドの浮上量変動、媒体の不均一性、モータの回転変動などの多くの要因により、アナログのＬＰＦによる完全な等化は難しいので、後段に配置され、よりフレキシビリティに富んだフィルタ３３１５を用いて、再度ＰＲ波形への等化を行う。フィルタ３３１５は、そのタップ係数を適応的に調整する機能を有していてもよい。周波数シンセサイザ３３１４は、ＡＤＣ３３１３のサンプリング用クロックを生成する。
【０３２７】
ＡＤＣ３３１３は、ＡＤ変換により直接同期サンプルを得る構成とした。なお、この構成の他に、ＡＤ変換により非同期サンプルを得る構成であってもよい。この場合は、ゼロ相リスタート部、タイミング制御部、及び補間フィルタをさらにＡＤＣ３３１３の後段に設ければよい。非同期サンプルから同期サンプルを得る必要があり、これらのブロックがその役割を担う。ゼロ相リスタート部は初期位相を決定するためのブロックで、できるだけ早く同期サンプルを得るために用いられる。初期位相を決定した後は、タイミング制御部で理想的なサンプル値と実際のサンプル値を比較し、位相のずれを検出する。これを用いて補間フィルタのパラメータを決定することにより、同期サンプルを得ることができる。また、ＡＤＣ３３１３は、非対称性と逆の入出力特性を有するように構成され、ヘッド３０５１において生じた振幅の非対称性を改善する。詳細は後述する。
【０３２８】
ソフト出力検出部３３２０は、符号間干渉に伴う復号特性の劣化を回避するために、ビタビアルゴリズムの一種であるソフト出力ビタビアルゴリズム（Ｓｏｆｔ−Ｏｕｔｐｕｔ Ｖｉｔｅｒｂｉ Ａｌｇｏｒｉｔｈｍ。以下、「ＳＯＶＡ」と略記する。）が用いられる。すなわち、近年の磁気ディスク装置の記録密度の上昇に伴い、記録された符号間の干渉が大きくなり、復号特性が劣化するといった課題を解決するため、これを克服する方式として符号間干渉による部分応答を利用した最ゆう復号（Ｐａｒｔｉａｌ Ｒｅｓｐｏｎｓｅ ＭａｘｉｍｕｍＬｉｋｅｉｈｏｏｄ。以下、「ＰＲＭＬ」と略記する。）方式を用いる。ＰＲＭＬは、再生信号の部分応答のゆう度を最大にする信号系列を求める方式である。
【０３２９】
ソフト出力検出部３３２０としてＳＯＶＡ方式が用いられている場合、軟判定値を出力する。例えば、ＳＯＶＡの出力として、（−０．７１、＋０．１８、＋０．４５、−０．４５、−０．９）という軟判定値が出力されたとする。これらの値は、０である可能性が大きいか、１である可能性が大きいかを数値で表している。例えば、１番目の「−０．７１」は１である可能性が大きいことを示しており、２番目の「＋０．１８」は０である可能性が大きいが１である可能性も小さくはないことを意味する。従来のビタビディテクタの出力はハード値であり、ＳＯＶＡの出力を硬判定したものである。上記の例の場合、（１、０、０、１、１）である。ハード値は、０であるか、１であるかのみを表しており、どちらの可能性が高いかという情報が失われている。このためＬＤＰＣ繰返復号部３３２２に軟判定値を入力する方が復号性能が向上する。
【０３３０】
ＬＤＰＣ繰返復号部３３２２は、ＬＤＰＣ符号化されているデータ系列から、ＬＤＰＣ符号化前の系列に復元する役割を有する。復号化の方法としては、主に、ｓｕｍ−ｐｒｏｄｕｃｔ復号法とｍｉｎ−ｓｕｍ復号法があり、復号性能の面ではｓｕｍ−ｐｒｏｄｕｃｔ復号法が有利であるが、ｍｉｎ−ｓｕｍ復号法はハードウェアによる実現が容易である特徴を持つ。ＬＤＰＣ符号を用いる実際の復号操作では、ソフト出力検出部３３２０とＬＤＰＣ繰返復号部３３２２の間で繰り返し復号することにより、非常に良好な復号性能を得ることができる。このために実際はソフト出力検出部３３２０とＬＤＰＣ繰返復号部３３２２を複数段配列した構成が必要になる。
【０３３１】
同期信号検出部３３２１はデータの先頭に付加された同期信号（Ｓｙｎｃ Ｍａｒｋ）を検出し、データの先頭位置を認識する役割を有する。ＲＬＬ復号部３３２３は、ＬＤＰＣ繰返復号部３３２２から出力されたデータに対して、ライトチャネル３０３１のＲＬＬ符号化部３３０３の逆操作を行い、元のデータ系列に戻す。デスクランブラ３３２４は、ライトチャネル３０３１のスクランブラ３３０２の逆操作を行い、元のデータ系列に戻す。ここで生成されたデータはＨＤＣ３００１に転送される。
【０３３２】
これらの構成は、ハードウエア的には、任意のコンピュータのＣＰＵ、メモリ、その他のＬＳＩで実現でき、ソフトウエア的にはメモリにロードされた通信機能のあるプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
【０３３３】
ここで、図２９のヘッド３０５１の入出力特性と、図３０のＡＤＣ３３１３に望まれる入出力特性について説明する。図３１（ａ）は、図２９のヘッド３０５１の入出力特性の例を示す図である。横軸は入力磁界Ｈｉｎ、縦軸は出力電圧Ｖｏｕｔを示す。入力磁界は、Ｈｉｎ０＿ｍｉｎ〜Ｈｉｎ０＿ｍａｘの範囲の値をとる。出力電圧は、ヘッド３０５１のＭＲ素子に起因する非線形性がない場合、破線で図示するように、Ｖｏｕｔ０＿ｍｉｎ〜Ｖｏｕｔ０＿ｍａｘの範囲の値となる。しかしながら、ヘッド３０５１のＭＲ素子に起因する非線形性が存在する場合、実線で図示するように、出力電圧は、Ｖｏｕｔ０＿ｍｉｎ〜Ｖ’ｏｕｔ０＿ｍａｘの範囲の値となる。すなわち、原点を中心として、入出力特性が非対称となる。また、図３１（ａ）は、正区間のうちの非線形区間３２００において、入出力特性が非線形となることを示す。このため、入力電圧がＶｉｎ０＿ｍａｘの場合の出力電圧は、Ｖｏｕｔ０＿ｍａｘとはならずにＶ’ｏｕｔ０＿ｍａｘとなる。図３１（ｂ）は、図３０のＬＰＦ３３１２の出力特性の例を示す図である。また、図３１（ｂ）は、図３１（ａ）に図示するヘッド３０５１の出力電圧のダイナミックレンジが、ＬＰＦ３３１２によってさらに歪んだ特性となることを示す図である。横軸は入力磁界Ｈｉｎ、縦軸は出力電圧Ｖｏｕｔを示す。入力磁界は、Ｈｉｎ０＿ｍｉｎ〜Ｈｉｎ０＿ｍａｘの範囲の値をとる。
【０３３４】
図３１（ｃ）は、図２９のヘッド３０５１の出力波形の例を示す図である。横軸は時間、縦軸は出力電圧を示す。図３１（ｃ）は、０Ｖを中心として正区間と負区間とで非対称となることを図示している。すなわち、ヘッド３０５１により、振幅エネルギーが（Ｖｏｕｔ０＿ｍａｘ−Ｖ’ｏｕｔ０＿ｍａｘ）だけ低減されたことを示す。そうすると、後段に存在する図示しないデータ検出の検出精度が劣化する。また、さらに後段に存在する図示しない誤り訂正回路における誤り訂正能力が劣化することとなる。なお、ＭＲ素子に起因する非線形性とは、図３１（ｃ）に図示するように、正区間におけるダイナミックレンジと負区間におけるダイナミックレンジとが非対称となることなどをいう。
【０３３５】
図３２（ａ）〜（ｂ）は、図３０のＡＤＣ３３１３の入出力特性の例を示す図である。横軸は入力電圧Ｖｉｎ、縦軸は出力電圧Ｖｏｕｔを示す。図３２（ａ）〜（ｂ）に示す出力電圧は、ＡＤＣ３３１３におけるデジタル信号出力ではなく、ＡＤＣ３３１３の内部における振幅調整されたアナログ信号の出力電圧とした。入力電圧は、Ｖｉｎ１＿ｍｉｎ〜Ｖｉｎ１＿ｍａｘの範囲の値をとる。また、ヘッド３０５１のＭＲ素子に起因する非線形性が存在する場合、実線で図示するように、出力電圧は、Ｖｏｕｔ１＿ｍｉｎ〜Ｖｏｕｔ１＿ｍａｘの範囲の値となる。図３２（ａ）は、図３１（ａ）に図示するヘッド３０５１のＭＲ素子に起因する非線形性を解消するために、ＡＤＣ３３１３に、その逆特性に相当する特性を備えさせた場合を示す。また、図３２（ｂ）は、図３１（ｂ）に図示するヘッド３０５１のＭＲ素子に起因する非線形性とＬＰＦ３３１２による歪みを解消するために、ＡＤＣ３３１３に、その逆特性に相当する特性を備えさせた場合を示す。ここで、ヘッド３０５１とＡＤＣ３３１３の間において電圧の変動がないと仮定した場合、図３１（ａ）〜（ｂ）と図３２（ａ）〜（ｂ）とに図示する電圧は、以下のような関係となる。
Ｖｉｎ１＿ｍａｘ  ＝  Ｖ’ｏｕｔ０＿ｍａｘ
Ｖｏｕｔ１＿ｍａｘ  ＝  Ｖｏｕｔ０＿ｍａｘ
【０３３６】
これらは、ヘッド３０５１に含まれるＭＲ素子に起因する非線形性が解消されたことを意味する。いいかえると、図３１（ａ）〜（ｂ）のそれぞれの非線形区間３２００における入出力特性の逆特性となる特性、すなわち、図３２（ａ）〜（ｂ）における非線形区間３３００における特性をＡＤＣ３３１３に備えさせることによって、ＭＲ素子に起因する非線形性を解消できる。図３１（ａ）の非線形区間３２００における入出力特性は、一般的に、次式のような双曲線正接関数（Ｈｙｐｅｒｂｏｌｉｃ  Ｔａｎｇｅｎｔ）となることが知られている。
【数７】
2008198239.tif 000009
したがって、ＡＤＣ３３１３の入出力特性としては、たとえば次式で示すような、双曲線正接関数の逆特性に相当する特性とすればよい。ここで、ａは実数であり、ヘッド３０５１の特性により決定されてもよい。
【数８】
2008198239.tif 000010
【０３３７】
図３２（ｃ）は、図３２（ｂ）の非線形区間３３００における入出力特性を２つの１次関数で近似させた場合におけるＡＤＣ３３１３の入出力特性の例を示す図である。図３２（ｃ）は、図３２（ｂ）と同様に、横軸は入力電圧、縦軸は出力電圧を示す。また、入力電圧は、Ｖｉｎ１＿ｍｉｎ〜Ｖｉｎ１＿ｍａｘの範囲の値をとる。また、出力電圧は、Ｖｏｕｔ１＿ｍｉｎ〜Ｖｏｕｔ１＿ｍａｘの範囲の値となる。前述のように、ＭＲ素子に起因する非線形性を解消するためには、ＡＤＣ３３１３の入出力特性を双曲線正接関数と逆の特性とすればよい。しかし、一般的に、この特性を実現することは困難である。したがって、本発明の第４実施形態においては、図３２（ｃ）に図示するように、２つの１次関数で近似することとしている。具体的には、入力電圧がＶｉｎ１ａ〜Ｖｉｎ１ｂの範囲にある場合は、第１の１次関数３３３０で表される入出力特性とする。また、入力電圧がＶｉｎ１ｂ〜Ｖｉｎ１＿ｍａｘの範囲にある場合は、第２の１次関数３３４０で表される入出力特性とすればよい。
【０３３８】
ここで、図３２（ｃ）に示す入出力特性を実現するＡＤＣ３３１３の具体的な構成について説明する。図３３は、図３０のＡＤＣ３３１３の構成例を示す図である。ＡＤＣ３３１３は、破線で示す前置調整部３０６０と、離散化部３０６２とを含む。ここでは、アナログ信号を３ビットからなるデジタル信号に変換する場合について図示したが、本発明はこれに限定されない。
【０３３９】
ＡＤＣ３３１３は、入力部で入力されたアナログ信号の振幅が非線形区間に存在する場合、アナログ信号に対して振幅を調整しつつ、デジタル信号に変換して出力する。すなわち、前置調整部３０６０は、アナログ信号をデジタル信号に変換する前に、非線形区間における非線形性を打ち消すように、アナログ信号の振幅を調整する。具体的には、前置調整部３０６０は、非線形区間における入出力特性を双曲線正接関数の逆数の近似値とすることによって、非線形区間におけるアナログ信号の振幅を調整する。つぎに、離散化部３０６２は、前置調整部３０６０によって振幅が調整されたアナログ信号を３ビットのデジタル信号に変換して出力する。
【０３４０】
前置調整部３０６０は、非線形区間に含まれる複数の部分区間において、複数の部分区間のうちの第１部分区間の入出力特性として、少なくとも１より大きい第１の傾きを有する第１の１次関数３３３０が設定される。また、複数の部分区間のうち、第１部分区間と連続する第２部分区間の入出力特性として、第１の傾きと異なる傾きを有する第２の１次関数３３４０が設定される。ここで、第１部分区間とは、たとえば、図３２（ｃ）に図示したＶｉｎ１ａ〜Ｖｉｎ１ｂの区間をいう。また、第１部分区間と連続する第２部分区間とは、たとえば、図３２（ｃ）に図示したＶｉｎ１ｂ〜Ｖｉｎ１＿ｍａｘの区間をいう。第２部分区間の入出力特性を図３２（ｃ）に図示するような入出力特性とする場合、第２の１次関数３３４０の傾きは第１の傾きより小さくなるように設定される。
【０３４１】
具体的に説明する。前置調整部３０６０は、抵抗素子３４００で代表される第１抵抗素子３０６４と第２抵抗素子３０６６と第３抵抗素子３０６８と第４抵抗素子３０７０と第５抵抗素子３０７２と第６抵抗素子３０７４と第７抵抗素子３０７６と第８抵抗素子３０７８と第９抵抗素子３０８０と、比較部３０８２とを含む。抵抗素子３４００は、それぞれ直列に設置され、一定電圧を有する参照信号Ｖｒｅｆを入力として、順次、後段の抵抗素子に対し、それぞれ振幅調整された参照信号を出力する。つぎに、比較部３０８２は、複数の抵抗素子３４００のそれぞれから出力された参照信号と、ＬＰＦ３３１２から入力されたアナログ信号の振幅とをそれぞれ比較することによって、アナログ信号の振幅を調整する。すなわち、時間的に連続した値であるアナログ信号を各抵抗素子３４００から出力された参照信号と比較し、その大小関係により、離散的な８つの信号を出力する。ここでの８つの信号はアナログ信号であるものの、プラスかマイナスのいずれかを示す一定の振幅をそれぞれ有する。
【０３４２】
複数の抵抗素子３４００は、それぞれの抵抗値を非均一な値とすることによって、それぞれの抵抗素子から出力される電圧の減少幅を変えている。具体的には、各抵抗素子に印加される参照信号の電圧Ｖｒｅｆは、それぞれの抵抗素子の出力において、抵抗値にしたがって低減されて出力される。すなわち、抵抗値が大きいほど電圧が低減され、小さいほど低減の度合いが少ない。言い換えると、複数の抵抗素子３４００において、区間ごとに、それぞれの抵抗値を非均一な値とすることによって、各抵抗素子３４００における電圧調整幅が異なり、これにより、入出力特性の傾きを区間ごとに変化させることができる。本発明の第４実施形態においては、非線形区間である第１部分区間と第２部分区間において、それぞれ対応する抵抗素子３４００の抵抗値を他の抵抗素子の抵抗値と異ならせることによって、区間ごとの入出力特性の傾きを調整している。
【０３４３】
たとえば、第１部分区間もしくは第２部分区間以外の区間に対応する抵抗素子を、第５抵抗素子３０７２と、第６抵抗素子３０７４と、第７抵抗素子３０７６と、第８抵抗素子３０７８と仮定し、これらの抵抗値をＲと仮定する。また、第１部分区間に対応する抵抗素子を第３抵抗素子３０６８と第４抵抗素子３０７０と仮定する。また、第２部分区間に対応する抵抗素子を第２抵抗素子３０６６と仮定する。この場合、第１部分区間に対応する第３抵抗素子３０６８と第４抵抗素子３０７０の抵抗値は、第１部分区間もしくは第２部分区間以外の区間に対応する抵抗素子の抵抗値Ｒよりも小さい値、たとえば、Ｒ／３と設定すればよい。また、第２部分区間に対応する第２抵抗素子３０６６の抵抗値は、抵抗値Ｒよりも大きい値、たとえば、２Ｒと設定すればよい。なお、一般的に、両端の抵抗素子である第１抵抗素子３０６４と第９抵抗素子３０８０は、通常の抵抗素子の抵抗値Ｒの半分の値Ｒ／２に設定される。
【０３４４】
図３４（ａ）〜（ｃ）は、図３０のソフト出力検出部３３２０の出力信号の特性の例を示す図である。各図において、縦軸はビット誤り率（Ｂｉｔ  Ｅｒｒｏｒ  Ｒａｔｅ）、横軸は信号対ノイズ比（Ｓｉｇｎａｌ  ｔｏ  Ｎｏｉｓｅ  Ｒａｔｉｏ）を示す。図３４（ａ）は、図２９のヘッド３０５１において入出力特性に５％の非対称性が存在した場合におけるソフト出力検出部３３２０の第１ビット誤り率特性３３５０と、本発明の第４実施形態を適用した場合の第２ビット誤り率特性３３６０を示す図である。図３４（ａ）は、さらに、前述の非対称性を理想的に解消できた場合、もしくは、図２９のヘッド３０５１において入出力特性に非対称性が存在しなかった場合における、第３ビット誤り率特性３３７０を示す図である。５％の非対称性とは、正区間におけるダイナミックレンジＶ１が負区間におけるダイナミックレンジＶ２の約９０％（Ｖ１＝Ｖ２×（１−０．０５）／（１＋０．０５）≒０．９×Ｖ２）であることを意味する。図３４（ａ）の第２ビット誤り率特性３３６０に図示するように、本発明の第４実施形態を適用することによって、ビット誤り率特性を改善できる。たとえば、第２ビット誤り率特性３３６０に示されるように、ビット誤り率が１０−５における所望ＳＮＲは、本発明の第４実施形態を適用しない第１ビット誤り率特性３３５０にくらべ、０．１ｄＢ程度改善されている。
【０３４５】
一般的に、ハードディスクをはじめとする記憶装置の分野において、ビット誤り率を０．１ｄＢ程度改善するためには、通常、１世代程度の技術革新が必要であることが知られている。したがって、本発明の第４実施形態による０．１ｄＢものビット誤り率の改善は、当業者にとって、顕著な効果であることは言うまでもない。
【０３４６】
図３４（ｂ）は、図２９のヘッド３０５１において入出力特性に１０％の非対称性が存在した場合におけるビット誤り率特性を示す図である。また、図３４（ｃ）は、図２９のヘッド３０５１において入出力特性に１５％の非対称性が存在した場合におけるビット誤り率特性を示す図である。図３４（ｂ）、図３４（ｃ）の第２ビット誤り率特性３３６０に図示するように、図３４（ａ）の場合と同様に、本発明の第４実施形態によって振幅の非対称性を低減し、また、ビット誤り率を顕著に改善できる。
【０３４７】
以上、本発明を第４実施形態をもとに説明した。この第４実施形態は例示であり、実施形態相互の組み合わせ、または、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【０３４８】
本第４実施形態によれば、アナログデジタル変換部において、アナログ信号の振幅を調整することによって、磁気抵抗素子において発生した振幅の非線形性を低減できる。また、磁気抵抗素子において発生した振幅の非線形性を低減することによって、誤り訂正復号後の誤り特性を顕著に改善できる。また、アナログデジタル変換部に含まれる複数の抵抗素子の抵抗値をそれぞれ設定するだけで、アナログ信号の振幅の非対称性の低減化を小規模かつ安定性の高い回路で実現できる。また、磁気抵抗素子において発生した振幅の非対称性による影響を低減することによって、より高速に記憶システムにアクセスすることができる。また、余分なハードウェアを搭載する必要がなくなるので、低規模な半導体集積回路を実現できる。
【０３４９】
次に、本発明の第４実施形態の変形例を示す。まず概要を述べる。本変形例は、ヘッドに含まれるＭＲ素子に起因する振幅の非対称性を低減する記憶システムに関する。また、本変形例においては、磁気ディスク装置３１００は、図２９と同様の構成をとる。また、Ｒ／Ｗチャネル３００３は、図３０と同様の構成をとる。本発明の第４実施形態の違いは、図３０のＡＤＣ３３１３が図３５の構成をとる点である。すなわち、本変形例は、記憶システムに含まれるアナログデジタル変換器における抵抗値を可変とすることを特徴とする。なお、前述した第４実施形態と共通する部分については同一の符号を付して説明を簡略化する。
【０３５０】
図３５は、図３０のＡＤＣ３３１３の構成の変形例を示す図である。ＡＤＣ３３１３は、前置調整部３０６０と、離散化部３０６２と、抵抗値制御部３０８６とを含む。抵抗値制御部３０８６は、外部からの指示に応じて、前置調整部３０６０に含まれる抵抗素子３４００の抵抗値を制御する。「外部からの指示」とは、ＡＤＣ３３１３以外の回路からの指示を含み、たとえば、ＬＤＰＣ繰返復号部３３２２からの指示であってもよい。この場合、ＬＤＰＣ繰返復号部３３２２における誤り訂正結果が通知され、その結果が良い場合は、前置調整部３０６０の抵抗値を変えず、逆に悪い場合は、抵抗値を変える制御を行なえばよい。また、抵抗値を変化させるべき抵抗素子と、変化後の抵抗値について、図示しないインタフェースを介してされたユーザの指示に応じて、抵抗値制御部３０８６は前置調整部３０６０に対し指示してもよい。この場合、抵抗値制御部３０８６は、指定された抵抗素子３４００に対して、指定された抵抗値となるように前置調整部３０６０を制御する。
【０３５１】
図３６は、図３３の抵抗素子３４００の構成の変形例を示す図である。抵抗素子３４００は、調整抵抗素子３０８４で代表される第１調整抵抗素子３０８４ａと、第２調整抵抗素子３０８４ｂと、第ｎ調整抵抗素子３０８４ｎと、切替部３０８８で代表される第１切替部３０８８ａと、第ｍ切替部３０８８ｍとを含む。ｎは２以上、ｍは１以上の整数である。それぞれの切替部３０８８は、抵抗値制御部３０８６の指示にもとづいて、スイッチをＯＮ、もしくはＯＦＦにする。例を用いて具体的に説明する。たとえば、すべての調整抵抗素子３０８４の抵抗値が２Ｒであると仮定する。この場合、いずれの切替部３０８８もＯＦＦである場合、抵抗素子３４００における抵抗値は２Ｒとなる。また、いずれか１つの切替部３０８８のみＯＮである場合、抵抗素子３４００における抵抗値はＲとなる。また、ｋ個の切替部３０８８がＯＮである場合、抵抗素子３４００における抵抗値は２Ｒ／ｋとなる。いいかえると、非線形区間以外の区間に対応する抵抗素子３４００に対しては、抵抗値制御部３０８６はいずれか１つの切替部３０８８をＯＮとし、その抵抗値をＲとする。また、非線形区間に対応する抵抗素子３４００に対しては、抵抗値制御部３０８６は０、もしくは２つ以上の切替部３０８８をＯＮとし、その抵抗値をＲ以外の値とすればよい。なお、前置調整部３０６０に含まれる複数の抵抗素子のうち、いずれか１つ以上の抵抗素子のみを図３６に示す構成としてもよい。また、調整抵抗素子３０８４の抵抗値は全て同じでなくともよい。これらの場合であっても、抵抗値制御部３０８６による切替部３０８８の制御を適宜変更することによって同様の効果を得られることは言うまでもない。
【０３５２】
図３７は、図３３の前置調整部３０６０の構成の変形例を示す図である。図３７に示す前置調整部３０６０は、図３３に示す前置調整部３０６０に、参照電圧制御部３０９０が付加された構成をとる。なお、前述した図３３に示す前置調整部３０６０と共通する部分については同一の符号を付して説明を簡略化する。参照電圧制御部３０９０は、複数の抵抗素子のうち少なくとも１以上の抵抗素子の入力端に接続され、入力端のそれぞれに対し、対応する参照電圧を印加することによって、前記複数の抵抗素子のそれぞれから出力される参照信号の振幅を調整する。本変形例においては、複数の抵抗素子は、同一の抵抗値を有してもよい。また、参照電圧制御部３０９０は、複数の抵抗素子のうち非線形区間に対応する抵抗素子の入力端に対し、非線形区間以外の区間に対応する抵抗素子の入力端とは異なる参照電圧を印加することによって、非線形区間における非線形性を調整してもよい。ここで、「対応する参照電圧」とは、抵抗素子ごとに対応づけられて決定された参照電圧を含み、予め設定されていてもよく、また、磁気抵抗素子の品質にしたがって動的に変化してもよい。この態様によると、参照電圧制御部によって柔軟に参照信号の振幅を制御できる。また、アナログデジタル変換部に含まれる複数の抵抗素子の抵抗値を同一にできるので回路コストが低減できる。また、アナログ信号の振幅の非対称性の低減化を小規模な回路で実現できる。
【０３５３】
以上、本発明の変形例を第４実施形態をもとに説明した。この変形例は例示であり、実施形態相互の組み合わせ、または、それらの各構成要素や各処理プロセスの組合せにいろいろな他の変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【０３５４】
本第４実施形態の変形例によれば、前述した第４実施形態と同様の効果を得ることができる。また、抵抗素子の抵抗値を可変とすることによって、柔軟に振幅の非線形性の改善を図れる。
【０３５５】
本第４実施形態において、ヘッド３０５１の入出力特性のうち、正区間において非線形区間が存在するとして説明した。しかしながらこれに限らず、負区間に非線形性が存在してもよい。この場合であっても、非線形区間に対応する抵抗素子３４００の抵抗値を他の区間の抵抗値と異ならせることによって、同様の効果を得ることができる。また、Ｒ／Ｗチャネル３００３は、１つの半導体基板上に一体集積化されてもよい。
【０３５６】
（第５実施形態）
第５実施形態は、デジタル信号の復号技術に関し、特に、記憶媒体に記憶されるデータに対して誤りを訂正する／復号する復号装置、復号方法、および記憶システムに関する。
【０３５７】
第５実施形態に関する背景技術について説明する。
【０３５８】
近年、ハードディスクを用いた記憶装置は、パーソナルコンピュータ、ハードディスクレコーダー、ビデオカメラ、携帯電話など、さまざまな分野において必須の装置となりつつある。ハードディスクを用いた記憶装置は、適用される分野によって求められる仕様もさまざまである。たとえば、パーソナルコンピュータに搭載するハードディスクには、高速性、大容量性が求められる。高速性、大容量性を向上するためには、訂正能力の高い誤り訂正符号化をする必要がある。しかしながら、高速化が進むほど単位時間あたりに扱うデータの量が増えるため、単位時間あたりの誤りも比例して増大する。そうすると、誤り訂正能力が低い誤り訂正方式を用いる場合、ハードディスクに対する再読込みが発生するため、ハードディスクへのアクセスに要する時間が増大し、高速化のボトルネックとなる。
【０３５９】
一般的に、ハードディスクから読み出したデータ系列には、符号間干渉が存在する。従来は、白色雑音を含むデータ系列を正確に検出できる軟判定ビタビアルゴリズム（以下、「ＳＯＶＡ」と表記する。）を用いることによって、符号間干渉を除去したデータ系列を検出していた（たとえば、特開２００３−２２８９２３号公報、特開２００４−１３９６６４号公報参照。）。しかしながら、ハードディスクから読み出したデータ系列は、有色雑音をも含む場合がある。このような場合、ＳＯＶＡによってデータ検出を行なったとしても符号間干渉の除去が正しく行なわれず、後段において実行される復号を行なったとしても、正確な復号が期待できなかった。従来、このような課題に対して、過去の信号や雑音に依存して発生する雑音、すなわち、有色雑音を予測してデータ系列を検出するＤＤＮＰ（Ｄａｔａ  Ｄｅｐｅｎｄｅｎｔ  Ｎｏｉｓｅ  Ｐｒｅｄｉｃｔｉｖｅ）−ＳＯＶＡがデータ検出アルゴリズムとして用いられていた（たとえば、「Ａｌｅｋｓａｎｄａｒ  Ｋａｖｃｉｃ、ｅｔ  ａｌ、「Ｔｈｅ  Ｖｉｔｅｒｂｉ  Ａｌｇｏｒｉｔｈｍ  ａｎｄ  Ｍａｒｋｏｖ  Ｎｏｉｓｅ  Ｍｅｍｏｒｙ」、ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｔｈｅｏｒｙ、Ｖｏｌ．４６、Ｎｏ．１、ｐ．２９１−３０１、Ｊｕｎ．  ２０００」参照）。
【０３６０】
本発明者はこうした状況下、以下の課題を認識するに至った。すなわち、ハードディスクからデータ系列を読み出した段階においては、データ系列に含まれる雑音が有色雑音であるか白色雑音であるか、もしくは、双方の雑音を含んでいるのかを判定することが難しいといった課題である。このため、いずれかの検出アルゴリズムを用いてデータ検出を行なった後に復号したとしても、その復号特性が不安定となってしまうといった課題である。
【０３６１】
本発明の第５実施形態はこうした状況に鑑みてなされたものであり、その総括的な目的は、雑音特性によらず、復号特性を向上できる復号装置、復号方法、および記憶システムを提供することにある。
【０３６２】
上記課題を解決するために、本発明の第５実施形態のある態様の復号装置は、データ系列を入力する入力部と、入力部によって入力されたデータ系列から複数の異なる信号系列を生成する生成部と、生成部によって生成された複数の信号系列のうち１の信号系列を選択する選択部と、選択部によって選択された信号系列を復号する復号部と、復号部によって復号された信号系列の復号誤りの程度を検出する検出部と、検出部によって検出された誤りの程度が所定の許容度以内であるか否かを判定する判定部と、を備える。判定部において、誤りの程度が所定の許容度以内であると判定された場合は、復号部によって復号された信号系列の出力が指示される。また、判定部において、誤りの程度が所定の許容度を超えると判定された場合は、選択部にて、１の信号系列とは異なる別の信号系列の選択が指示され、選択部にて新たに選択された信号系列に対して復号部以下による処理が再実行される。
【０３６３】
ここで、「複数の異なる信号系列」とは、所定の信号系列に対し異なるデータ検出方法によって生成された複数の信号系列などを含む。また、「復号誤りの程度を検出する」とは、誤りが訂正できているか否かのチェックや、ＣＲＣなどの誤り検出によって誤りの有無を判定することなどを含む。また、「誤りの程度が所定の許容度以内」とは、正しい復号結果が得られたことなどを含み、たとえば、誤りが訂正されており、かつ、ＣＲＣなどの誤り検出によって誤りがないと判定されることなどを含む。「誤りの程度が所定の許容度を超える」とは、正しい復号結果が得られなかったことなどを含み、たとえば、誤りが訂正されておらず、また、ＣＲＣなどの誤り検出によって誤りが残存していると判定されることなどを含む。「異なる別の信号系列の選択」とは、すでに選択された信号系列とは異なる信号系列の選択を含む。また、「復号部以下による処理」とは、復号部と検出部と判定部による処理を含む。この態様によると、誤りが所定の許容度以内となる復号系列となるまで、復号処理を繰り返すことによって、復号部における復号性能を向上できる。また、復号性能を安定化できる。
【０３６４】
選択部は、判定部によって誤りの程度が許容度以内であると判定される確率が高い信号系列を優先して選択してもよい。また、選択部は、生成部によって生成された複数の信号系列のうち、信号に依存して発生する雑音を予測する機能を有するビタビアルゴリズムを用いて検出されたデータ系列に対応する信号系列を優先して選択してもよい。ここで、「信号に依存して発生する雑音」とは、過去の信号や雑音に依存して発生する雑音などを含む。この態様によると、誤りの程度が許容度以内であると判定される確率が高い信号系列を優先して選択することによって、復号部以下の所定の処理における繰り返し実行しなければならない回数を低減できる。
【０３６５】
入力部は、それぞれ異なるデータ系列を生成する第１入力部と第２入力部とを含んでもよい。生成部は、第１入力部と、第２入力部とから入力されたデータ系列のいずれか一方のデータ系列、もしくは、双方のデータ系列から、１以上の信号系列を生成してもよい。生成部は、第１入力部と第２入力部によってそれぞれ入力された複数のデータ系列のうちのデータ系列であって、信号に依存して発生する雑音を予測する機能を有する第１ビタビアルゴリズムによって検出されたデータ系列、および／または、第１ビタビアルゴリズムとは異なる機能を有する第２ビタビアルゴリズムによって検出されたデータ系列をもとに、信号系列を生成してもよい。この態様によると、復号の対象となる候補を複数生成できる。複数の候補を生成することにより、復号の確実性を向上できる。
【０３６６】
入力部は、軟判定値化されたデータ系列を入力し、生成部は、入力部によって入力されたデータ系列を硬判定値化することによって、信号系列を生成してもよい。この態様によると、簡易な構成で復号系列を生成できる。また、生成部は、入力部によって入力されたデータ系列のうち、所定の長さ以上の区間において、所定のしきい値より小さい絶対値を有する軟判定データが連続している場合であって、区間において連続している軟判定データの個数が所定の個数より多い場合、連続している軟判定データの符号を反転した後に、硬判定値化することによって、もしくは、前記連続している軟判定データを硬判定値化した後に硬判定されたデータを論理反転することによって、信号系列を生成してもよい。また、生成部は、入力部によって入力されたデータ系列に含まれる複数の軟判定データのうち、所定の長さ以上の区間において、隣接する軟判定データの符号がそれぞれ異なる場合、区間に対応する軟判定データの符号を反転した後に、硬判定値化することによって、もしくは、区間に対応する軟判定データを硬判定値化した後に硬判定されたデータを論理反転することによって、信号系列を生成する。また、生成部は、入力部によって入力されたデータ系列に含まれる複数の軟判定データのうち、所定のしきい値より小さい絶対値を有する軟判定データの符号を反転した後に、硬判定値化することによって、もしくは、所定のしきい値より小さい絶対値を有する軟判定データを硬判定値化した後に硬判定されたデータを論理反転することによって、信号系列を生成してもよい。
【０３６７】
ここで、「軟判定値」とは、２値より大きい多値より表される値を含み、また、信頼度を含む。信頼度とは、データの確からしさを示し、軟判定値の絶対値で表現してもよい。「軟判定データの符号を反転」とは、軟判定データに（−１）を乗じることなどを含み、また、軟判定データの硬判定値を論理反転することなどを含む。また、「隣接する軟判定データの符号がそれぞれ異なる場合」とは、複数の軟判定データが、交互に正と負とを示す軟判定データであることを含み、正を示す符号ビットと負を示す符号ビットとが交互に軟判定データに含まれていることを含む。この態様によると、信頼性の低い軟判定値に対応する硬判定値を逆方向に判定させることによって、復号特性を向上できる。
【０３６８】
また、生成部は、入力部によって入力された複数のデータ系列のうちの２つのデータ系列であって、一方のデータ系列の硬判定値をもとに、他方のデータ系列の硬判定値を修正することによって、信号系列を生成してもよい。また、生成部は、第１入力部と第２入力部とによって入力された複数のデータ系列のうちの２つのデータ系列であって、信号に依存して発生する雑音を予測する機能を有する第１ビタビアルゴリズムによって検出されたデータ系列と、第１ビタビアルゴリズムとは異なる機能を有する第２ビタビアルゴリズムによって検出されたデータ系列のいずれか一方の硬判定値をもとに、他方のデータ系列の硬判定値を修正することによって、信号系列を生成してもよい。また、生成部は、第１入力部と第２入力部とによって入力された複数のデータ系列のうちの２つのデータ系列であって、一方のデータ系列に含まれる第１データの硬判定値と、他方のデータ系列に含まれるデータであって前記第１データと対応する位置に存在する第２データの硬判定値とが異なる場合、一方のデータ系列に含まれる第１データを、第２データに置換えることによって、一方のデータ系列の硬判定値を修正してもよい。また、生成部は、第１入力部と第２入力部とによって入力された複数のデータ系列のうちの２つのデータ系列であって、一方のデータ系列に含まれる第１データの硬判定値と、他方のデータ系列に含まれるデータであって前記第１データと対応する位置に存在する第２データの硬判定値とが異なる場合であって、かつ、第２データの軟判定値の絶対値と第１データの軟判定値の絶対値との差が所定のしきい値より大きい場合、一方のデータ系列に含まれる第１データを、第２データに置換えることによって、一方のデータ系列の硬判定値を修正してもよい。この態様によると、複数の硬判定系列を互いに修正することによって、双方の雑音特性に強い信号系列を生成できる。復号特性を向上できる。また、信頼性の低い軟判定値に対応する硬判定値を逆方向に判定させることによって、復号特性を向上できる。
【０３６９】
本発明の第５実施形態の別の態様は、復号方法である。この方法は、データ系列を入力するステップと、入力したデータ系列から複数の異なる信号系列を生成するステップと、生成された複数の信号系列のうち１の信号系列を選択するステップと、選択された信号系列を復号するステップと、を備え、選択するステップは、復号するステップにおいて復号された信号系列の誤りの程度が所定のしきい値より小さくなるまで、順次、すでに選択した信号系列とは異なる信号系列を選択し、復号するステップ以下の処理が繰り返し実行される。ここで、「誤りの程度が所定のしきい値より小さくなる」とは、正しい復号結果が得られたことなどを含み、たとえば、誤りが訂正されており、かつ、ＣＲＣなどの誤り検出によって誤りがないと判定されることなどを含む。この態様によると、この態様によると、誤りが所定の許容度以内となる復号系列となるまで、復号処理を繰り返すことによって、復号部における復号性能を向上できる。また、復号性能を安定化できる。
【０３７０】
本発明の第５実施形態のさらに別の態様は、記憶システムである。この記憶システムは、データを記憶装置に書き込むライトチャネルと、記憶装置に記憶されているデータを読み出すリードチャネルとを備える信号記憶システムであって、ライトチャネルは、データをリードソロモン符号化する符号化部と、符号化部で符号化されたデータを記憶装置に書き込む書き込み部と、を備え、リードチャネルは、記憶装置から出力されたアナログ信号を入力する入力部と、入力部から入力されたアナログ信号をデジタル信号に変換して出力するアナログデジタル変換部と、アナログデジタル変換部から出力されたデジタル信号の尤度を計算して軟判定値を出力するソフト出力検出部と、ソフト出力検出部から出力されたデータを復号する、符号化部に対応した、復号部と、を備える。復号部は、ソフト出力検出部から出力されたデータを入力する入力部と、入力部によって入力されたデータから複数の異なる信号系列を生成する生成部と、生成部によって生成された複数の信号系列のうち１の信号系列を選択する選択部と、選択部によって選択された信号系列を復号する復号部と、復号部によって復号された信号系列の復号誤りの程度を検出する検出部と、検出部によって検出された誤りの程度が所定の許容度以内であるか否かを判定する判定部と、を有する。判定部において、誤りの程度が所定の許容度以内であると判定された場合は、復号部によって復号された信号系列の出力が指示され、判定部において、誤りの程度が所定の許容度を超えると判定された場合は、選択部にて１の信号系列とは異なる別の信号系列の選択が指示され、選択部にて新たに選択された信号系列に対して検出部以下による処理が再実行される。本発明のさらに別の態様は、復号装置である。当該装置は、１つの半導体基板上に一体集積化されていてもよい。この態様によると、安定して高い復号能力を備える復号部を具備することによって、より高速に記憶システムにアクセスすることができる。また、余分なハードウェアを搭載する必要がなくなるので、低規模な半導体集積回路を実現できる。
【０３７１】
本発明の第５実施形態のさらに別の態様もまた、記憶システムである。この記憶システムは、記憶システムにおいて、当該記憶システムは、さらに、データを記憶する記憶装置と、記憶装置への書き込みと、記憶装置からの読み出しとを制御する制御部と、を有する。リードチャネルは、制御部の指示に従って、記憶装置に記憶されているデータを読み出し、ライトチャネルは、制御部の指示に従って、符号化されたデータを記憶装置に書き込む。本発明のさらに別の態様は、復号装置である。当該装置は、１つの半導体基板上に一体集積化されていてもよい。この態様によると、安定して高い復号能力を備える復号部を具備することによって、より高速に記憶システムにアクセスすることができる。また、余分なハードウェアを搭載する必要がなくなるので、低規模な半導体集積回路を実現できる。
【０３７２】
本発明の第５実施形態のさらに別の態様は、復号装置である。復号装置は、データ系列を生成する第１入力部と、前記第１入力部とは異なるデータ系列を生成する第２入力部とを含む入力部と、入力部によって入力されたデータ系列から複数の異なる信号系列を生成する生成部と、生成部によって生成された複数の信号系列のうち、１の信号系列を選択する選択部と、選択部によって選択された信号系列を復号する復号部と、復号部によって復号された信号系列の復号誤りの程度を検出する検出部と、検出部によって検出された誤りの程度が所定の許容度以内であるか否かを判定する判定部と、を備える。判定部において、誤りの程度が前記所定の許容度以内であると判定された場合は、前記復号部によって復号された信号系列の出力が指示される。
【０３７３】
判定部において、誤りの程度が前記所定の許容度を超えると判定された場合は、選択部にて前記１の信号系列とは異なる別の信号系列の選択が指示され、選択部にて新たに選択された信号系列に対して復号部以下による処理が再実行されてもよい。選択部は、判定部によって誤りの程度が許容度以内であると判定される確率が高い信号系列を優先して選択してもよい。生成部は、入力された信号系列に含まれるビットの硬判定値化をする際に、他ビットの信頼度を参照してもよい。生成部は、入力された信号系列に含まれたあるビットの硬判定値化をする際に、当該ビットの信頼度と、信号系列に含まれた当該ビット以外の他のビットの信頼度とを参照してもよい。生成部は、硬判定値化する際に、第１入力部からの出力信号における信頼度と、第２入力部からの出力信号における信頼度とを参照してもよい。生成部は、ビットの硬判定値を決定する際に、第１入力部からの出力信号における信頼度と、第２入力部からの出力信号における信頼度とを参照してもよい。生成部は、ビットの硬判定値を決定する際に、第１入力部からの出力信号と、第２入力部からの出力信号において、互いに対応するビットの信頼度を比較してもよい。選択部は、第１入力部からの出力と第２入力部からの出力とを選択する際に、第１入力部からの出力を優先的に選択してもよい。
【０３７４】
復号装置は、ディスクに記録された記録情報を読み取って、前記入力部に出力する読取部と、前記読取部における読取り状況を判定する読取状況判定部をさらに備えてもよい。選択部は、前記読取状況判定部において判定された状況に基づいて、第１入力部からの出力と第２入力部からの出力とのいずれを優先するかを決定してもよい。
【０３７５】
なお、以上の構成要素の任意の組合せや本発明の構成要素や表現を方法、装置、システムなどの間で相互に置換したものもまた、本発明の態様として有効である。
【０３７６】
本発明の第５実施形態を具体的に説明する前に、まず本第５実施形態にかかる記憶システム４１００について概要を述べる。本第５実施形態にかかる記憶システム４１００は、ハードディスクコントローラと、磁気ディスク装置と、リードチャネルとライトチャネルを含むリードライトチャネルと、を有する。リードチャネルにおいては、復号処理として、符号間干渉を除去するためのデータ検出処理や、検出したデータ系列に含まれる誤りを訂正／検出するＲＳ復号などを行う。データ検出処理においては、一般的に、白色雑音に対して高い検出性能を発揮するＳＯＶＡや、有色雑音に対して高い検出性能を発揮するＤＤＮＰ−ＳＯＶＡなどが用いられる。
【０３７７】
しかし、磁気ディスク装置からデータ系列を読み出した段階においては、データ系列に含まれる雑音が有色雑音であるか白色雑音であるか、もしくは、双方の雑音を含んでいるのかを判定することが難しいといった課題がある。このため、いずれかの検出アルゴリズムを用いてデータ検出を行なったとしても、符号間干渉の除去が正しく行なわれない場合がある。このような場合、後段においてデータ系列に含まれる誤りを訂正する復号処理をしたとしても、その復号特性は不安定となる。したがって、本発明の第５実施形態においては、少なくとも、ＳＯＶＡとＤＤＮＰ−ＳＯＶＡとを用いて検出された複数のデータ系列を予め生成し、順次、データ系列の復号処理を実行することによって復号性能を安定させる。また、復号処理において、復号系列に含まれる誤りが少なくなるようなデータ系列を優先して復号対象とすることによって、復号処理を高速化する。詳細は後述する。
【０３７８】
以下、図面を用いて、本発明の第５実施形態について詳細に説明する。
【０３７９】
図３８は、本発明の第５実施形態に係る記憶システム４１００の構成例を示す図である。図３８の記憶システム４１００は、大きく分けて、ハードディスクコントローラ４００１（以下、「ＨＤＣ４００１」と略記する。）、中央処理演算装置４００２（以下、「ＣＰＵ４００２」と略記する。）、リードライトチャネル４００３（以下、「Ｒ／Ｗチャネル４００３」と略記する。）、ボイスコイルモータ／スピンドルモータ制御部４００４（以下、「ＶＣＭ／ＳＰＭ制御部４００４」と略記する。）、及びディスクエンクロージャ４００５（以下、「ＤＥ４００５」と略記する。）とから構成される。一般に、ＨＤＣ４００１、ＣＰＵ４００２、Ｒ／Ｗチャネル４００３、及びＶＣＭ／ＳＰＭ制御部４００４は同一の基板上に構成される。
【０３８０】
ＨＤＣ４００１は、ＨＤＣ４００１全体を制御する主制御部４０１１、データフォーマット制御部４０１２、誤り訂正符号化制御部４０１３（以下、「ＥＣＣ制御部４０１３」と略記する。」）、及びバッファＲＡＭ４０１４を含む。ＨＤＣ４００１は、図示しないインタフェース部を介してホストシステムと接続される。また、Ｒ／Ｗチャネル４００３を介して、ＤＥ４００５と接続されており、主制御部４０１１の制御により、ホストとＤＥ４００５の間でデータ転送処理を実行する。このＨＤＣ４００１には、Ｒ／Ｗチャネル４００３で生成されるリードリファレンスクロック（ＲＲＣＫ）が入力される。データフォーマット制御部４０１２は、ホストから転送されたデータをディスク媒体４０５０上に記録するのに適したフォーマットに変換し、逆に、ディスク媒体４０５０から再生されたデータをホストに転送するのに適したフォーマットに変換する。ディスク媒体４０５０は、たとえば、磁気ディスクを含む。バッファＲＡＭ４０１４は、ホストから転送されたデータを一時的に保存し、適切なタイミングでＲ／Ｗチャネル４００３に転送する。逆に、Ｒ／Ｗチャネル４００３から転送されたリードデータを一時的に保存し、ＥＣＣ復号処理などの終了後、適切なタイミングでホストに転送する。
【０３８１】
ＥＣＣ制御部４０１３は、ディスク媒体４０５０から再生されたデータに含まれる誤りの訂正及び検出を可能にするために、記録するデータを情報シンボルとして、冗長シンボルを付加する。また、ＥＣＣ制御部４０１３は、復号処理として、再生されたデータ系列に誤りが生じているかを判定し、誤りがある場合には訂正処理を実行する。誤りを訂正できなかった場合、あるいは、ＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｏｄｅ）などによって誤り検出された場合、その程度によって、他のデータ系列を対象として復号処理を行なう。詳細は後述する。なお、誤りが訂正できるシンボル数は有限であり、冗長データの長さに関係する。即ち、多くの冗長データを付加するとフォーマット効率が悪化するため、誤り訂正可能シンボル数とはトレードオフとなる。ＥＣＣとしてリードソロモン（ＲＳ）符号を利用して誤り訂正を実行する場合、（冗長シンボル数／２）個までの誤りを訂正できる。
【０３８２】
ＣＰＵ４００２は、フラッシュＲＯＭ４０２１（以下、「ＦＲＯＭ４０２１」と略記する。）、及びＲＡＭ４０２２を含み、ＨＤＣ４００１、Ｒ／Ｗチャネル４００３、ＶＣＭ／ＳＰＭ制御部４００４、及びＤＥ４００５と接続される。ＦＲＯＭ４０２１には、ＣＰＵ４００２の動作プログラムが保存されている。
【０３８３】
Ｒ／Ｗチャネル４００３は、ライトチャネル４０３１とリードチャネル４０３２とに大別され、ＨＤＣ４００１との間で記録するデータ及び再生されたデータの転送処理を実行する。また、Ｒ／Ｗチャネル４００３は、ＤＥ４００５と接続され、記録信号の送信処理、再生信号の受信処理を実行する。詳細は後述する。
【０３８４】
ＶＣＭ／ＳＰＭ制御部４００４は、ＤＥ４００５中のボイスコイルモータ４０５２（以下、「ＶＣＭ４０５２」と略記する。）とスピンドルモータ４０５３（以下、「ＳＰＭ４０５３」と略記する。）を制御する。
【０３８５】
ＤＥ４００５は、Ｒ／Ｗチャネル４００３と接続され、記録信号の受信処理、再生信号の送信処理を実行する。またＤＥ４００５は、ＶＣＭ／ＳＰＭ制御部４００４と接続されている。ＤＥ４００５は、ディスク媒体４０５０、ヘッド４０５１、ＶＣＭ４０５２、ＳＰＭ４０５３、及びプリアンプ４０５４等を有している。図３８の記憶システム４１００においては、ディスク媒体４０５０が１枚であり、且つヘッド４０５１がディスク媒体４０５０の一方の面側のみに配置されている場合を想定しているが、複数のディスク媒体４０５０が積層配置された構成であってもよい。また、ヘッド４０５１は、ディスク媒体４０５０の各面に対応して設けられるのが一般的である。Ｒ／Ｗチャネル４００３により送信された記録信号は、ＤＥ４００５内のプリアンプ４０５４を経由してヘッド４０５１に供給され、ヘッド４０５１によりディスク媒体４０５０に記録される。逆に、ヘッド４０５１によりディスク媒体４０５０から再生された信号は、プリアンプ４０５４を経由してＲ／Ｗチャネル４００３に送信される。ＤＥ４００５内のＶＣＭ４０５２は、ヘッド４０５１をディスク媒体４０５０上の目標位置に位置決めするために、ヘッド４０５１をディスク媒体４０５０の半径方向に移動させる。また、ＳＰＭ４０５３は、ディスク媒体４０５０を回転させる。
【０３８６】
ここで、図３９を用いて、Ｒ／Ｗチャネル４００３について説明する。図３９は、図３８のＲ／Ｗチャネル４００３の構成を示す図である。Ｒ／Ｗチャネル４００３は、大きく分けて、ライトチャネル４０３１とリードチャネル４０３２から構成される。
【０３８７】
ライトチャネル４０３１は、バイトインターフェース部４３０１、スクランブラ４３０２、ランレングス制限符号化部４３０３（以下、「ＲＬＬ符号化部４３０３」と略記する。）、書き込み補償部４３０５（以下、「ライトプリコン部４３０５」と略記する。）、ドライバ４３０６を含む。
【０３８８】
バイトインターフェース部４３０１では、ＨＤＣ４００１から転送されたデータが入力データとして処理される。メディア上に書き込むデータは１セクタ単位でＨＤＣ４００１から入力される。このとき１セクタ分のユーザデータ（５１２バイト）だけでなく、ＨＤＣ４００１によって付加されたＥＣＣバイトも同時に入力される。データバスは通常１バイト（８ビット）であり、バイトインターフェース部４３０１により入力データとして処理される。スクランブラ４３０２はライトデータをランダムな系列に変換する。同じ規則のデータの繰り返しは、リード時における検出性能に悪影響を与え、エラーレートを悪化させるのを防ぐためである。
【０３８９】
ＲＬＬ符号化部４３０３は０の最大連続長を制限するためのものである。０の最大連続長を制限することによりリード時の図示しないタイミング制御部、自動利得制御部４３１７（以下、「ＡＧＣ４３１７」と略記する。）などに適したデータ系列にする。
【０３９０】
ライトプリコン部４３０５は、メディア上の磁化遷移の連続による非線形歪を補償する回路である。ライトデータから補償に必要な規則を検出し、正しい位置で磁化遷移が生ずるようにライト電流波形を予め調整をする。ドライバ４３０６は擬似ＥＣＬレベルに対応した信号を出力するドライバである。ドライバ４３０６からの出力は図示しないＤＥ４００５に送られ、プリアンプ４０５４を通してヘッド４０５１に送られ、ライトデータがディスク媒体４０５０上に記録される。
【０３９１】
リードチャネル４０３２は、可変利得増幅器４３１１（以下、「ＶＧＡ４３１１」と略記する。）、ローパスフィルタ４３１２（以下、「ＬＰＦ４３１２」と略記する。）、ＡＧＣ４３１７、アナログ／デジタル変換器４３１３（以下、「ＡＤＣ４３１３」と略記する。）、周波数シンセサイザ４３１４、フィルタ４３１５、ソフト出力検出部４３２０、同期信号検出部４３２１、ランレングス制限復号部４３２３（以下、「ＲＬＬ復号部４３２３」と略記する。）、デスクランブラ４３２４とから構成されている。
【０３９２】
ＶＧＡ４３１１及びＡＧＣ４３１７は、図示しないプリアンプ４０５４から送られたデータのリード波形の振幅を調整する。ＡＧＣ４３１７は理想的な振幅と実際の振幅を比較し、ＶＧＡ４３１１に設定すべきゲインを決定する。ＬＰＦ４３１２は、カットオフ周波数とブースト量を調整することができ、高周波ノイズの低減と部分応答（Ｐａｒｔｉａｌ Ｒｅｓｐｏｎｓｅ。以下、「ＰＲ」と略記する。）波形への等化の一部を担う。ＬＰＦ４３１２でＰＲ波形への等化を行うが、ヘッドの浮上量変動、媒体の不均一性、モータの回転変動などの多くの要因により、アナログのＬＰＦによる完全な等化は難しいので、後段に配置され、よりフレキシビリティに富んだフィルタ４３１５を用いて、再度ＰＲ波形への等化を行う。フィルタ４３１５は、そのタップ係数を適応的に調整する機能を有していてもよい。周波数シンセサイザ４３１４は、ＡＤＣ４３１３のサンプリング用クロックを生成する。
【０３９３】
ＡＤＣ４３１３は、ＡＤ変換により直接同期サンプルを得る構成とした。なお、この構成の他に、ＡＤ変換により非同期サンプルを得る構成であってもよい。この場合は、ゼロ相リスタート部、タイミング制御部、及び補間フィルタをさらにＡＤＣ４３１３の後段に設ければよい。非同期サンプルから同期サンプルを得る必要があり、これらのブロックがその役割を担う。ゼロ相リスタート部は初期位相を決定するためのブロックで、できるだけ早く同期サンプルを得るために用いられる。初期位相を決定した後は、タイミング制御部で理想的なサンプル値と実際のサンプル値を比較し、位相のずれを検出する。これを用いて補間フィルタのパラメータを決定することにより、同期サンプルを得ることができる。
【０３９４】
ソフト出力検出部４３２０は、符号間干渉に伴う復号特性の劣化を回避するために、ビタビアルゴリズムの一種であるＳＯＶＡなどを用いて、データ系列を検出する。一般的に、近年の磁気ディスク装置の記録密度の上昇に伴い、記録された符号間の干渉が大きくなり、これに応じて復号特性が劣化する。これを解決するため、これを克服する方式として符号間干渉による部分応答を利用した最ゆう復号（Ｐａｒｔｉａｌ Ｒｅｓｐｏｎｓｅ ＭａｘｉｍｕｍＬｉｋｅｉｈｏｏｄ。以下、「ＰＲＭＬ」と略記する。）方式を用いる。ＰＲＭＬは、再生信号の部分応答のゆう度を最大にする信号系列を求める方式である。また、検出されたデータ系列を用いて、復号対象となる信号系列を複数生成する。詳細は後述する。
【０３９５】
ソフト出力検出部４３２０としてＳＯＶＡ方式が用いられている場合、軟判定値を出力する。例えば、ＳＯＶＡの出力として、（−０．７１、＋０．１８、＋０．４５、−０．４５、−０．９）という軟判定値が出力されたとする。これらの値は、０である可能性が大きいか、１である可能性が大きいかを数値で表している。例えば、１番目の−０．７１は１である可能性が大きいことを示しており、２番目の＋０．１８は０である可能性が大きいが１である可能性も小さくはないことを意味する。従来のビタビディテクタの出力はハード値であり、ＳＯＶＡの出力を硬判定したものである。上記の例の場合、（１、０、０、１、１）である。ハード値は、０であるか、１であるかのみを表しており、どちらの可能性が高いかという情報が失われている。このためＬＤＰＣ繰返復号部４３２２に軟判定値を入力する方が復号性能が向上する。
【０３９６】
ＲＬＬ復号部４３２３は、ソフト出力検出部４３２０から出力されたデータに対して、ライトチャネル４０３１のＲＬＬ符号化部４３０３の逆操作を行い、元のデータ系列に戻す。デスクランブラ４３２４は、ライトチャネル４０３１のスクランブラ４３０２の逆操作を行い、元のデータ系列に戻す。ここで生成されたデータはＨＤＣ４００１に転送される。
【０３９７】
図４０は、図３９のソフト出力検出部４３２０の構成例を示す図である。ソフト出力検出部４３２０は、データ検出部４０６０と、生成部４０６２と、選択部４０６４とを含む。データ検出部４０６０は、データ系列を入力する。入力されるデータ系列は、１つのデータ系列でもよく、また、複数のデータ系列であってもよい。図４１は、図４０のデータ検出部４０６０の構成例を示す図である。データ検出部４０６０は、ＤＤＮＰ−ＳＯＶＡ部４０６６と、ＳＯＶＡ部４０６８とを含む。ＤＤＮＰ−ＳＯＶＡ部４０６６は、入力された信号に対して、過去の信号や雑音に依存して発生する雑音を予測する機能を有するビタビアルゴリズム（ＤＤＮＰ−ＳＯＶＡ）を実行することによって、データ系列を検出する。また、ＳＯＶＡ部４０６８は、入力された信号に対して、軟判定ビタビアルゴリズムを実行することによって、データ系列を検出する。なお、データ検出部４０６０は、ＤＤＮＰ−ＳＯＶＡ部４０６６、ＳＯＶＡ部４０６８以外のデータ検出装置から構成されていてもよい。たとえば、硬判定値を出力する通常のビタビアルゴリズムを用いてデータ検出を実行するデータ検出装置などから構成されていてもよい。また、データ検出部４０６０は、通常のビタビアルゴリズムを用いたデータ検出装置をさらに備えてもよい。
【０３９８】
図４０に戻る。生成部４０６２は、データ検出部４０６０によって入力されたデータ系列から複数の異なる信号系列を生成する。複数の信号系列は、１またはそれ以上のデータ系列に対し、後述する信号処理を実行することによって生成される。また、後段の復号処理によって復号処理が実行される前に、予めすべての信号系列が生成されていてもよい。また、復号処理、もしくは再復号処理を実行する必要が生じるたびに、復号の対象とすべき信号系列を生成してもよい。選択部４０６４は、生成部４０６２によって生成された複数の信号系列のうち１の信号系列を選択する。また、選択部４０６４は、図３８のＥＣＣ制御部４０１３によって誤り訂正できる確率が高い信号系列を優先して選択してもよい。具体的には、選択部４０６４は、生成部４０６２によって生成された複数の信号系列のうち、ＤＤＮＰ−ＳＯＶＡを用いて検出されたデータ系列に対応する信号系列を優先して選択してもよい。また、選択部４０６４は、ＥＣＣ制御部４０１３の指示に従って、すでに選択した信号系列とは異なる別の信号系列を選択してもよい。このように、複数の信号系列を復号対象とすることによって、雑音特性によらず、復号性能を安定化できる。いいかえると、複数の雑音特性を予め想定し、想定した雑音特性に強い信号系列を復号対象として生成することにより、想定した雑音特性の範囲内においては、復号性能を向上できることとなる。
【０３９９】
ここで、生成部４０６２が、図４１に示す２つのデータ検出部から出力された２つのデータ系列を用いて、信号系列を生成する場合について説明する。以下においては、図３８のＥＣＣ制御部４０１３によって誤りが訂正できる確率が比較的高いと考えられる１０個の信号系列について説明する。なお、選択部４０６４において選択される順序は、必ずしも、後述する第１信号系列から選択しなくともよく、任意に設定してもよい。
【０４００】
生成部４０６２は、図４１に示すＤＤＮＰ−ＳＯＶＡ部４０６６から出力された軟判定値の系列であるデータ系列に含まれる軟判定値をそれぞれ硬判定値化することによって信号系列（以下、「第１信号系列」と表記する）を生成する。また、生成部４０６２は、同様の処理をＳＯＶＡ部４０６８から出力された軟判定の系列であるデータ系列に対しても実行して、信号系列（以下、「第２信号系列」と表記する）を生成する。なお、硬判定値化は、軟判定値が所定のしきい値より大きいか否かを判定し、その判定結果をもとに、０もしくは１のビットに置換えることによって実行される。たとえば、軟判定値が−α〜＋α（α＞０）の範囲をとる場合において、しきい値を０とする場合、軟判定値が正であれば０に、負であれば１に置換えればよい。また、軟判定値が０〜＋β（β＞０）の範囲をとる場合は、しきい値をβ／２としてもよい。これらの硬判定値化（以下、「第１修正判定アルゴリズム」と表記する）は、簡易な構成で実現できるため、回路規模が縮小できる。
【０４０１】
また、生成部４０６２は、図４１のＤＤＮＰ−ＳＯＶＡ部４０６６によって入力されたデータ系列に含まれる複数の信頼度のうち、所定のしきい値より小さい値を有する信頼度を探索する。さらに、軟判定値を硬判定値化した系列において、探索された信頼度に対応するビットの”０”と”１”とを反転することによって、信号系列（以下、「第３信号系列」と表記する）を生成する。また、生成部４０６２は、同様の処理をＳＯＶＡ部４０６８から出力された軟判定の系列であるデータ系列に対しても実行し、信号系列（以下、「第４信号系列」と表記する）を生成する。ここで、「信頼度」とは、軟判定値の絶対値を示し、０以上の値を示す。これらの硬判定値化（以下、「第２修正判定アルゴリズム」と表記する）は、簡易な構成で実現できるため、回路規模が縮小できる。また、誤りの含まれている可能性の高い判定値を修正することによって、図４２の復号部４０７０から出力される復号系列の誤り率を改善できる。
【０４０２】
例を用いて説明する。以下にデータ系列に含まれる信頼度を示す。
｛９  １  １  １  ５  ７  ３  ３  ６  ９｝
また、以下に、硬判定されたデータ系列を示す。
｛１  ０  ０  １  １  １  ０  ０  ０  １｝
ここで、しきい値を４とすると、第２修正判定アルゴリズムを用いて生成される信号系列は、以下で表される。以下に示すように、前式における２〜４、７、８ビット目が修正されることとなる。
｛１  １  １  ０  １  １  １  １  ０  １｝
【０４０３】
また、生成部４０６２は、図４１のＤＤＮＰ−ＳＯＶＡ部４０６６によって入力されたデータ系列に含まれる複数の信頼度のうち、所定のしきい値より小さい値を有する信頼度が所定の個数より多く連続している区間を探索する。さらに、軟判定値を硬判定値化した系列において、探索された信頼度に対応するビットの”０”と”１”とを反転することによって、信号系列（以下、「第５信号系列」と表記する）を生成する。また、生成部４０６２は、同様の処理をＳＯＶＡ部４０６８から出力された軟判定の系列であるデータ系列に対しても実行して、信号系列（以下、「第６信号系列」と表記する）を生成する。これらの硬判定値化（以下、「第３修正判定アルゴリズム」と表記する）は、簡易な構成で実現できるため、回路規模が縮小できる。また、誤りの含まれている区間を集中的に修正することによって、バースト誤りを低減できるので、図４２の復号部４０７０から出力される復号系列の誤り率を改善できる。
【０４０４】
例を用いて説明する。以下にデータ系列に含まれる信頼度を示す。
｛９  １  １  １  ５  ７  ３  ３  ６  ９｝
以下に、硬判定されたデータ系列を示す。
｛１  ０  ０  １  １  １  ０  ０  ０  １｝
ここで、所定のしきい値を４、所定の個数を３とすると、第３修正判定アルゴリズムを用いて生成される信号系列は、以下で表される。以下に示すように、上式における２、３、４ビット目が修正されることとなる。
｛１  １  １  ０  １  １  ０  ０  ０  １｝
【０４０５】
また、生成部４０６２は、図４１のＤＤＮＰ−ＳＯＶＡ部４０６６によって入力されたデータ系列のうち、所定の長さ以上の区間において、隣接する軟判定データの符号がそれぞれ異なる場合、区間に対応する軟判定データの符号を反転する。その後、軟判定データを硬判定値化することによって、信号系列（以下、「第７信号系列」と表記する）を生成する。「隣接する軟判定データの符号がそれぞれ異なる場合」とは、たとえば、軟判定データを硬判定値で表した場合に、「０１０１０１・・・」、もしくは、「１０１０１０・・・」となることを含む。また、生成部４０６２は、同様の処理をＳＯＶＡ部４０６８から出力された軟判定の系列であるデータ系列に対しても実行することによって、信号系列（以下、「第８信号系列」と表記する）を生成する。これらの硬判定値化（以下、「第４修正判定アルゴリズム」と表記する）は、簡易な構成で実現できるため、回路規模が縮小できる。また、誤りの含まれている可能性が高いパターンを修正することによって、図４２の復号部４０７０から出力される復号系列の誤り率を改善できる。
【０４０６】
例を用いて説明する。以下に、硬判定されたデータ系列を示す。
｛０  ０  １  ０  １  １  ０  １  １  ０｝
ここで、所定の長さを４とすると、第４修正判定アルゴリズムを用いて生成される信号系列は、以下で表される。以下に示すように、上述における２〜５ビット目が修正されることとなる。
｛０  １  ０  １  ０  １  ０  １  １  ０｝
【０４０７】
また、生成部４０６２は、図４１のＤＤＮＰ−ＳＯＶＡ部４０６６とＳＯＶＡ部４０６８とによって入力された２つのデータ系列のいずれか一方の硬判定値をもとに、他方のデータ系列の硬判定値を修正することによって、信号系列を生成する。具体的には、生成部４０６２は、たとえば、ＤＤＮＰ−ＳＯＶＡ部４０６６のデータ系列を被修正系列として、ＳＯＶＡ部４０６８のデータ系列を用いて修正する。まず、生成部４０６２は、ＤＤＮＰ−ＳＯＶＡ部４０６６のデータ系列に含まれる第１データの硬判定値と、ＳＯＶＡ部４０６８のデータ系列に含まれるデータであって第１データと対応する位置に存在する第２データの硬判定値とを比較する。ここで、両者が異なる場合、ＤＤＮＰ−ＳＯＶＡ部４０６６のデータ系列のうち、対応する第２データと異なっている第１データを、その第２データに置換えることによって、信号系列（以下、「第９信号系列」と表記する。）を生成する。この硬判定値化（以下、「第５修正判定アルゴリズム」と表記する）は、簡易な構成で実現できるため、回路規模が縮小できる。また、２つのデータ系列のうち、互いに異なるデータに対して、一方を他方のデータと置換えることによって、図４２の復号部４０７０から出力される復号系列の誤り率を改善できる。
【０４０８】
例を用いて説明する。以下に、ＤＤＮＰ−ＳＯＶＡ部４０６６によって出力されたデータ系列の硬判定値を示す。
｛０  ０  １  ０  １  １  ０  １  １  ０｝
また、以下に、ＳＯＶＡ部４０６８によって出力されたデータ系列の硬判定値を示す。
｛０  １  ０  １  ０  １  ０  １  ０  ０｝
ここで、ＤＤＮＰ−ＳＯＶＡ部４０６６によって出力されたデータ系列を被修正系列とした場合の修正後の系列を以下に示す。
｛０  １  ０  １  ０  １  ０  １  ０  ０｝
【０４０９】
生成部４０６２は、図４１のＤＤＮＰ−ＳＯＶＡ部４０６６とＳＯＶＡ部４０６８とによって入力された２つのデータ系列のいずれか一方のデータ系列に含まれる第１データの硬判定値と、他方のデータ系列に含まれるデータであって第１データと対応する位置に存在する第２データの硬判定値とを比較する。さらに、比較した結果、第１データと第２データが異なる場合であって、「第２データの信頼度−第１データの信頼度＞α（αは所定の値）」の条件を満たす場合、第１データを、第２データに置換えることによって、一方のデータ系列の硬判定値を修正する。具体的には、ＤＤＮＰ−ＳＯＶＡ部４０６６のデータ系列に含まれる複数のデータの硬判定値と、ＳＯＶＡ部４０６８のデータ系列に含まれる複数のデータの硬判定値とを、それぞれ対応するデータ同士で比較する。比較した結果、それぞれ異なっている場合であって、「信頼度１−信頼度２＞α」となる場合における信頼度２に対応するデータを信頼度１に対応するデータの硬判定値に置換えることによって、信号系列（以下、「第１０信号系列」と表記する）を生成する。この硬判定値化（以下、「第６修正判定アルゴリズム」と表記する）は、簡易な構成で実現できるため、回路規模が縮小できる。また、２つのデータ系列のうち、いずれか一方のデータ系列に含まれるデータを誤りが少ないと考えられるデータに置換えることによって、図４２の復号部４０７０から出力される復号系列の誤り率を改善できる。
【０４１０】
例を用いて説明する。以下に、ＤＤＮＰ−ＳＯＶＡ部４０６６によって出力されたデータ系列の信頼度、硬判定値をそれぞれ示す。
｛３  ４  ６  ５  ５  １  １  ５  ２  ４｝
｛０  ０  １  ０  １  １  １  １  １  １｝
また、以下に、ＳＯＶＡ部４０６８によって出力されたデータ系列の信頼度、硬判定値を示す。
｛３  ２  ５  ２  ３  ３  ４  ５  ４  ６｝
｛０  １  ０  １  ０  １  ０  １  ０  ０｝
また、第６修正判定アルゴリズムにもとづいて修正された後の系列を以下に示す。
｛０  ０  １  ０  １  １  ０  １  ０  ０｝
【０４１１】
上述した第１修正判定アルゴリズム〜第６修正判定アルゴリズムは、それぞれ組み合わせることによって、新たな修正判定アルゴリズムを導出できる。また、それにより、生成できる信号系列の種類、個数も増加できる。たとえば、第３、第４修正判定アルゴリズムのそれぞれは、第５、第６修正判定アルゴリズムと組み合わせることによって、より厳しい条件のもとで、信号系列が生成されることはいうまでもない。この場合、図３８のＥＣＣ制御部４０１３における復号候補を増加できるので、復号の安定性を向上できる。好ましくは、第２と第３修正判定アルゴリズムの組み合わせ、または、第２と第３と第４修正判定アルゴリズムの組み合わせ、または、第４と第６修正判定アルゴリズムの組み合わせを新たな修正判定アルゴリズムとすればよい。
【０４１２】
図４２は、図３８のＥＣＣ制御部４０１３の構成例を示す図である。ＥＣＣ制御部４０１３は、復号部４０７０と、誤り検出部４０７２と、判定部４０７４と、スイッチ４０７６とを示す。なお、ここでは、復号側における構成のみ図示し、符号化側における構成については省略する。ここで、復号部４０７０と、誤り検出部４０７２とは、連結され、もしくは、統合された装置であってもよい。復号部４０７０は、図４０の選択部４０６４によって選択された信号系列を復号する。誤り検出部４０７２は、復号部４０７０によって誤りが訂正できたかどうかのチェックと、ＣＲＣなどによる誤り検出を行なう。なお、「図４０の選択部４０６４によって選択された信号系列」とは、図４０の選択部４０６４を含むソフト出力検出部４３２０の後段に存在するＲＬＬ復号部４３２３やデスクランブラ４３２４を経由して出力された信号系列なども含む。
【０４１３】
判定部４０７４は、誤りが訂正できたと判断され、かつ、ＣＲＣなどによって誤りがないと判断された場合に、正しい復号結果が得られたと判定する。判定部４０７４において、正しい復号結果が得られたと判定された場合は、復号部４０７０によって復号された信号系列の出力がスイッチ４０７６に対して指示される。いいかえると、スイッチ４０７６は、指示があるまで、復号部４０７０から入力された信号を出力しない。また、判定部４０７４において、正しい復号結果が得られなかったと判定された場合は、選択部４０６４にてすでに選択された信号系列とは異なる別の信号系列の選択が指示され、選択部４０６４にて新たに選択された信号系列に対して復号部４０７０以下による処理が再実行される。ここで、「指示され」とは、スイッチ４０７６、もしくは、選択部４０６４に対して、ＥＣＣ制御部４０１３が直接指示してもよく、また、図示しない制御部を介して指示してもよい。
【０４１４】
上述したこれらの構成は、ハードウエア的には、任意のコンピュータのＣＰＵ、メモリ、その他のＬＳＩで実現でき、ソフトウエア的にはメモリにロードされた通信機能のあるプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
【０４１５】
図４３は、図４０の選択部４０６４と、図４２のＥＣＣ制御部４０１３との動作例を示すフローチャートである。まず、選択部４０６４は、復号対象となる信号系列を選択する（Ｓ４０１０）。つぎに、ＥＣＣ制御部４０１３において復号処理が実行される（Ｓ４０１２）。さらに、ＥＣＣ制御部４０１３において、正しい復号結果が得られたかどうかを判定する（Ｓ４０１４）。正しい復号結果が得られたと判定された場合（Ｓ４０１４のＹ）、判定部４０７４は、スイッチ４０７６に対し、復号部４０７０から出力された復号系列をそのまま出力する旨の指示を行い（Ｓ４０１６）、処理を終了する。一方、正しい復号結果が得られなかったと判定された場合（Ｓ４０１４のＮ）、選択部４０６４は、復号対象を再度選択し、Ｓ４０１２以下の処理を繰り返す（Ｓ４０１８）。
【０４１６】
ここで、Ｓ４０１０、またはＳ４０１８における選択は、復号した結果、誤りを訂正できる可能性が高いと考えられる信号系列が優先される。ただし、必ずしもこのような順序である必要はなく、任意に設定してもよい。たとえば、選択の順序は、前述した第１信号系列を最初に選択し、以後、Ｓ４０１４において正しい復号結果が得られたと判定されるまで、順に、第２信号系列、第３信号系列、・・・、第１０信号系列が選択される。この場合、選択の順序は、信号系列の番号で定義されてもよく、また、前述した第１修正判定アルゴリズム〜第６修正判定アルゴリズムで定義されてもよい。
【０４１７】
図４４は、図４０の生成部４０６２の動作例を示すフローチャートである。生成部４０６２は、まず、基準となるデータ系列を選択する（Ｓ４０２０）。基準となるデータ系列とは、修正対象となるデータ系列を指し、ＤＤＮＰ−ＳＯＶＡ部４０６６とＳＯＶＡ部４０６８とのうち、いずれか一方から出力されたデータ系列をいう。つぎに、Ｓ４０２０において選択されたデータ系列に含まれるデータを１つずつ修正すべきか否かを判定する（Ｓ４０２２）。Ｓ４０２２において、修正すべきと判定された場合（Ｓ４０２２のＹ）、そのデータの符号を反転して、Ｓ４０２６の処理に移る（Ｓ４０２４）。修正すべきでないと判定された場合（Ｓ４０２２のＮ）、Ｓ４０２６の処理に移る。つぎに、Ｓ４０２６において、データ系列に含まれる全てのデータについて判定が終了したかを判断し、終了していないと判断された場合は、まだ判定されていないデータを対象として、Ｓ４０２２以下の処理が繰り返される（Ｓ４０２６のＮ）。一方、すべてのデータについて判定が終了したと判断された場合（Ｓ４０２６のＹ）、処理を終了する。なお、上述の処理は、信号系列を生成すべき修正判定アルゴリズムごとに実行されてもよいし、生成すべき信号系列ごとに実行されてもよい。したがって、複数の修正判定アルゴリズムを用いる場合、もしくは、複数の信号系列を生成する場合、図４４に示すフローチャートは繰り返し実行されることとなる。
【０４１８】
本第５実施形態によれば、正しい復号結果が得られるまで、復号処理を繰り返すことによって、復号部における復号性能を向上できる。また、復号性能を安定化できる。また、誤りを訂正できる確率が高い信号系列を優先して選択することによって、復号部以下の所定の処理における繰り返し実行しなければならない回数を低減できる。また、復号の対象となる候補を複数生成できる。複数の候補を生成することにより、復号の確実性を向上できる。また、信頼性の低い軟判定値に対応する硬判定値を逆方向に修正することによって、復号特性を向上できる。また、複数の硬判定系列を互いに修正することによって、双方の雑音特性に強い信号系列を生成でき、復号特性を向上できる。また、信頼性の低い軟判定値に対応する硬判定値を逆方向に修正することによって、復号特性を向上できる。また、安定して高い復号能力を備える復号部を具備することによって、より高速に記憶システムにアクセスすることができる。また、余分なハードウェアを搭載する必要がなくなるので、低規模な半導体集積回路を実現できる。
【０４１９】
以上、本発明を第５実施形態をもとに説明した。この第５実施形態は例示であり、第５実施形態相互の組み合わせ、または、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【０４２０】
本第５実施形態においては、ＥＣＣ制御部４０１３は、ＨＤＣの内部に搭載されているとして説明した。しかしながらこれにかぎらず、リードライトチャネルの内部に搭載されていてもよい。また、ＨＤＣとリードライトチャネルは、１つのＬＳＩとして一体化されていてもよい。また、ＳＯＶＡを用いて候補を作成するとして説明したが、Ｖｉｔｅｒｂｉを用いもよい。この場合、軟判定値でなく、Ｖｉｔｅｒｂｉから出力された硬判定値をもとに候補を作成すればよい。
【０４２１】
なお、本第５実施形態は、上述した構成にかぎらず、たとえば、復号装置は、ディスクに記録された記録情報を読み取って、前記入力部に出力する読取部と、前記読取部における読取り状況を判定する読取状況判定部をさらに備えてもよい。読取状況判定部は、ディスクの特性、たとえば、ディスクの回転数、あるいは、読取り個所がディスクの内周か外周かを判定する。読取状況判定部は、ディスクに取り付けられるＧＭＲヘッドの特性や、あるいはディスクの後段に配置される復号装置の内部のＡＤ変換部の特性、または、装置外部の室温などを判定してもよい。これらの状況が判定された場合、選択部は、読取状況判定部において判定された状況に基づいて、出力すべき信号を決定してもよい。たとえば、他方より良い状況を示している入力部からの出力を優先的に選択して出力すればよい。このような態様により、状況に左右されずに、良好な結果を得ることができる。
【０４２２】
以上、本発明を実施形態をもとに説明した。この実施形態は例示であり、実施形態相互の組み合わせ、または、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【図面の簡単な説明】
【０４２３】
【図１】本発明の第１実施形態に係る記憶システムの構成を示す図である。
【図２】図１のＲ／Ｗチャネルの構成を示す図である。
【図３】図３（ａ）〜（ｂ）は、本発明の第１実施形態にかかるＤＣフリー特性の例を示す図である。
【図４】図２のＲＬＬ／ＤＣフリー符号化部の構成例を示す図である。
【図５】図４の直流成分除去符号化部の構成例を示す図である。
【図６】図６（ａ）〜（ｃ）は、図５の符号化系列選択部の第１〜第３の構成例を示す図である。
【図７】図６（ｂ）と図６（ｃ）にそれぞれ示す符号化系列選択部の動作の相違を示す図である。
【図８】図２のＲＬＬ／ＤＣフリー復号部の構成例を示す図である。
【図９】本発明の第２実施形態に係る記憶システムの構成を示す図である。
【図１０】図９のＲ／Ｗチャネルの構成を示す図である。
【図１１】図１１（ａ）〜（ｂ）は、本発明の第２実施形態にかかるＤＣフリー特性の例を示す図である。
【図１２】図１０のＲＬＬ／ＤＣフリー／ＲＳ符号化部の構成例を示す図である。
【図１３】図１２のＲＬＬ／ＤＣフリー符号化部の構成例を示す図である。
【図１４】図１３の直流成分除去符号化部の構成例を示す図である。
【図１５】図１５（ａ）〜（ｃ）は、図１４の符号化系列選択部１０７４の第１〜第３の構成例を示す図である。
【図１６】図１５（ｂ）と図１５（ｃ）にそれぞれ示す符号化系列選択部の動作の相違を示す図である。
【図１７】図１２のＲＬＬ／ＤＣフリー／ＲＳ符号化部の動作例を示す図である。
【図１８】図１２のＲＬＬ／ＤＣフリー／ＲＳ符号化部の動作例を示すフローチャートである。
【図１９】図１０のＲＬＬ／ＤＣフリー／ＲＳ復号部の構成例を示す図である。
【図２０】図１９のＲＬＬ／ＤＣフリー復号部の構成例を示す図である。
【図２１】本発明の第３実施形態に係る記憶システムの構成を示す図である。
【図２２】図２１のＲ／Ｗチャネルの構成を示す図である。
【図２３】図２３（ａ）〜（ｂ）は、本発明の第３実施形態にかかるＤＣフリー特性の例を示す図である。
【図２４】図２２のＲＬＬ／ＤＣフリー符号化部の構成例を示す図である。
【図２５】図２４の直流成分除去符号化部の構成例を示す図である。
【図２６】図２６（ａ）〜（ｃ）は、図２５の符号化系列選択部の第１〜第３の構成例を示す図である。
【図２７】図２６（ｂ）と図２６（ｃ）にそれぞれ示す符号化系列選択部の動作の相違を示す図である。
【図２８】図２２のＲＬＬ／ＤＣフリー復号部の構成例を示す図である。
【図２９】本発明の第４実施形態に係る磁気ディスク装置の構成を示す図である。
【図３０】図２９のＲ／Ｗチャネルの構成を示す図である。
【図３１】図３１（ａ）は、図２９のヘッドの入出力特性の例を示す図である。図３１（ｂ）は、図３０のＬＰＦの出力特性の例を示す図である。図３１（ｃ）は、図２９のヘッドの出力波形の例を示す図である。
【図３２】図３２（ａ）〜（ｃ）は、図３０のＡＤＣの入出力特性の例を示す図である。
【図３３】図３０のＡＤＣの構成例を示す図である。
【図３４】図３４（ａ）〜（ｃ）は、図３０のソフト出力検出部の出力信号の特性の例を示す図である。
【図３５】図３０のＡＤＣの構成の変形例を示す図である。
【図３６】図３３の抵抗素子の構成の変形例を示す図である。
【図３７】図３３の前置調整部の構成の変形例を示す図である。
【図３８】本発明の第５実施形態に係る記憶システムの構成例を示す図である。
【図３９】図３８のＲ／Ｗチャネルの構成を示す図である。
【図４０】図３９のソフト出力検出部の構成例を示す図である。
【図４１】図４０のデータ検出部の構成例を示す図である。
【図４２】図３８のＥＣＣ制御部の構成例を示す図である。
【図４３】図４０の選択部と、図４２のＥＣＣ制御部との動作例を示すフローチャートである。
【図４４】図４０の生成部の動作例を示すフローチャートである。
【符号の説明】
【０４２４】
１  ＨＤＣ、  ２  ＣＰＵ、  ３  Ｒ／Ｗチャネル、  ４  ＶＣＭ／ＳＰＭ制御部、  ５  ＤＥ、  １１  主制御部、  １２  データフォーマット制御部、  １３  ＥＣＣ制御部、  １４  バッファＲＡＭ、  ２１  ＦＲＯＭ、  ２２  ＲＡＭ、  ３１  ライトチャネル、  ３２  リードチャネル、  ５０  ディスク媒体、  ５１  ヘッド、  ５２  ＶＣＭ、  ５３  ＳＰＭ、  ５４  プリアンプ、  ６０  第１ＲＬＬ符号化部、  ６２  第１信号処理部、  ６４  第２ＲＬＬ符号化部、  ６６  直流成分除去符号化部、  ６８  判定ビット取得部、  ７０  ＲＬＬ復号部、  ７２  第２信号処理部、  ７４  符号化系列選択部、  ７６  選択識別情報生成部、  ７８  識別情報付加部、  ８０  第１比率計算部、  ８２  第２比率計算部、  ８４  選択出力部、  ８６  第１合算部、  ８８  第２合算部、  ９０  第１移動加算部、  ９２  第１最大値検出部、  ９４  第２移動加算部、  ９６  第２最大値検出部、  １００  記憶システム、  ２００  第１特性、  ２１０  第３特性、  ３００  第２特性、  ３０１  バイトインターフェース部、  ３０２  スクランブラ、  ３０３  ＲＬＬ／ＤＣフリー符号化部、  ３０４  ＬＤＰＣ符号化部、  ３０５  ライトプリコン部、  ３０６  ドライバ、  ３１０  第４特性、  ３１１  ＶＧＡ、  ３１２  ＬＰＦ、  ３１３  ＡＤＣ、  ３１４  周波数シンセサイザ、  ３１５  フィルタ、  ３１６  補間フィルタ、  ３１７  ＡＧＣ、  ３１８  ゼロ相リスタート部、  ３１９  タイミング制御部、  ３２０  ソフト出力検出部、  ３２１  同期信号検出部、  ３２２  ＬＤＰＣ繰返復号部、  ３２３  ＲＬＬ／ＤＣフリー復号部、  ３２４  デスクランブラ。  
【図１】
2008198239.tif 000011
【図２】
2008198239.tif 000012
【図３】
2008198239.tif 000013
【図４】
2008198239.tif 000014
【図５】
2008198239.tif 000015
【図６】
2008198239.tif 000016
【図７】
2008198239.tif 000017
【図８】
2008198239.tif 000018
【図９】
2008198239.tif 000019
【図１０】
2008198239.tif 000020
【図１１】
2008198239.tif 000021
【図１２】
2008198239.tif 000022
【図１３】
2008198239.tif 000023
【図１４】
2008198239.tif 000024
【図１５】
2008198239.tif 000025
【図１６】
2008198239.tif 000026
【図１７】
2008198239.tif 000027
【図１８】
2008198239.tif 000028
【図１９】
2008198239.tif 000029
【図２０】
2008198239.tif 000030
【図２１】
2008198239.tif 000031
【図２２】
2008198239.tif 000032
【図２３】
2008198239.tif 000033
【図２４】
2008198239.tif 000034
【図２５】
2008198239.tif 000035
【図２６】
2008198239.tif 000036
【図２７】
2008198239.tif 000037
【図２８】
2008198239.tif 000038
【図２９】
2008198239.tif 000039
【図３０】
2008198239.tif 000040
【図３１】
2008198239.tif 000041
【図３２】
2008198239.tif 000042
【図３３】
2008198239.tif 000043
【図３４】
2008198239.tif 000044
【図３５】
2008198239.tif 000045
【図３６】
2008198239.tif 000046
【図３７】
2008198239.tif 000047
【図３８】
2008198239.tif 000048
【図３９】
2008198239.tif 000049
【図４０】
2008198239.tif 000050
【図４１】
2008198239.tif 000051
【図４２】
2008198239.tif 000052
【図４３】
2008198239.tif 000053
【図４４】
2008198239.tif 000054