(57)【特許請求の範囲】
【請求項１】
入力された信号に対して、その信号に依存して発生する雑音を予測する機能を有する第１ビタビアルゴリズムを実行することにより、第１データ系列を検出する第１入力部と、
入力された信号に対して前記第１ビタビアルゴリズムとは異なる機能を有する第２ビタビアルゴリズムを実行することにより、第２データ系列を検出する第２入力部と、
前記入力部からの前記第１、第２データ系列を受け、その両方を複数の異なるアルゴリズムを用いて処理することにより、複数の異なる信号系列を生成する生成部と、
前記生成部によって生成された複数の信号系列のうち、１の信号系列を選択する選択部と、
前記選択部によって選択された信号系列を復号する復号部と、
前記復号部によって復号された信号系列の復号誤りの程度を検出する検出部と、
前記検出部によって検出された誤りの程度が所定の許容度以内であるか否かを判定する判定部と、
を備え、
前記判定部において、誤りの程度が前記所定の許容度以内であると判定された場合は、前記復号部によって復号された信号系列の出力が指示され、
前記判定部において、誤りの程度が前記所定の許容度を超えると判定された場合は、前記選択部にて前記１の信号系列とは異なる別の信号系列の選択が指示され、前記選択部にて新たに選択された信号系列に対して前記復号部以下による処理が再実行され、
前記生成部は、前記複数の信号系列のうちのひとつを、
前記第１、第２データ系列のうち一方のデータ系列に含まれる第１データの硬判定値と、他方のデータ系列に含まれるデータであって前記第１データと対応する位置に存在する第２データの硬判定値とが異なる場合であって、かつ、前記第２データの軟判定値の絶対値から前記第１データの軟判定値の絶対値を減じた差が所定のしきい値より大きい場合に、前記一方のデータ系列に含まれる第１データを、前記第２データに置換えることによって、前記一方のデータ系列の硬判定値を修正するアルゴリズムを用いて生成することを特徴とする復号装置。
【請求項２】
前記生成部は、前記複数の信号系列のうちの別のひとつを、
前記第１、第２データ系列のうち一方のデータ系列に含まれる第１データの硬判定値と、他方のデータ系列に含まれるデータであって前記第１データと対応する位置に存在する第２データの硬判定値とが異なる場合に、前記一方のデータ系列に含まれる第１データを、前記第２データに置換えることによって、前記一方のデータ系列の硬判定値を修正するアルゴリズムを用いて生成することを特徴とする請求項１に記載の復号装置。
【請求項３】
前記生成部は、前記複数の信号系列のうちの別のひとつを、
前記第１、第２データ系列のうちの一方について、所定の長さ以上の区間において、所定のしきい値より小さい絶対値を有する軟判定データが連続している場合であって、前記区間において連続している軟判定データの個数が所定の個数より多い場合に、前記連続している軟判定データの符号を反転した後に硬判定値化する、もしくは、前記連続している軟判定データを硬判定値化した後に硬判定されたデータを論理反転するアルゴリズムを用いて生成することを特徴とする請求項１に記載の復号装置。
【請求項４】
前記生成部は、前記複数の信号系列のうちの別のひとつを、
前記第１、第２データ系列のうちの一方について、所定の長さ以上の区間において、隣接する軟判定データの符号がそれぞれ異なる場合、前記区間に対応する軟判定データの符号を反転した後に、硬判定値化する、もしくは、前記区間に対応する軟判定データを硬判定値化した後に硬判定されたデータを論理反転するアルゴリズムを用いて生成することを特徴とする請求項１に記載の復号装置。
【請求項５】
入力された信号に対して、その信号に依存して発生する雑音を予測する機能を有する第１ビタビアルゴリズムを実行することにより、第１データ系列を検出するステップと、
入力された信号に対して前記第１ビタビアルゴリズムとは異なる機能を有する第２ビタビアルゴリズムを実行することにより、第２データ系列を検出するステップと、
前記第１、第２データ系列の両方を複数の異なるアルゴリズムを用いて処理することにより、複数の異なる信号系列を生成するステップと、
生成された複数の信号系列のうち１の信号系列を選択するステップと、
選択された信号系列を復号するステップと、
を備え、
前記選択するステップは、前記復号するステップにおいて復号された信号系列の誤りの程度が所定のしきい値より小さくなるまで、順次、すでに選択した信号系列とは異なる信号系列を選択し、前記復号するステップ以下の処理が繰り返し実行され、
前記生成するステップは、前記複数の信号系列のうちのひとつを、
前記第１、第２データ系列のうち一方のデータ系列に含まれる第１データの硬判定値と、他方のデータ系列に含まれるデータであって前記第１データと対応する位置に存在する第２データの硬判定値とが異なる場合であって、かつ、前記第２データの軟判定値の絶対値から前記第１データの軟判定値の絶対値を減じた差が所定のしきい値より大きい場合に、前記一方のデータ系列に含まれる第１データを、前記第２データに置換えることによって、前記一方のデータ系列の硬判定値を修正するアルゴリズムを用いて生成することを特徴とする復号方法。
【請求項６】
前記生成するステップは、前記複数の信号系列のうちの別のひとつを、
前記第１、第２データ系列のうち一方のデータ系列に含まれる第１データの硬判定値と、他方のデータ系列に含まれるデータであって前記第１データと対応する位置に存在する第２データの硬判定値とが異なる場合に、前記一方のデータ系列に含まれる第１データを、前記第２データに置換えることによって、前記一方のデータ系列の硬判定値を修正するアルゴリズムを用いて生成することを特徴とする請求項５に記載の復号方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタル信号の復号技術に関し、特に、記憶媒体に記憶されるデータに対して誤りを訂正する／復号する復号装置、復号方法、および記憶システムに関する。
【背景技術】
【０００２】
近年、ハードディスクを用いた記憶装置は、パーソナルコンピュータ、ハードディスクレコーダー、ビデオカメラ、携帯電話など、さまざまな分野において必須の装置となりつつある。ハードディスクを用いた記憶装置は、適用される分野によって求められる仕様もさまざまである。たとえば、パーソナルコンピュータに搭載するハードディスクには、高速性、大容量性が求められる。高速性、大容量性を向上するためには、訂正能力の高い誤り訂正符号化をする必要がある。しかしながら、高速化が進むほど単位時間あたりに扱うデータの量が増えるため、単位時間あたりの誤りも比例して増大する。そうすると、誤り訂正能力が低い誤り訂正方式を用いる場合、ハードディスクに対する再読込みが発生するため、ハードディスクへのアクセスに要する時間が増大し、高速化のボトルネックとなる。
【０００３】
一般的に、ハードディスクから読み出したデータ系列には、符号間干渉が存在する。従来は、白色雑音を含むデータ系列を正確に検出できる軟判定ビタビアルゴリズム（以下、「ＳＯＶＡ」と表記する。）を用いることによって、符号間干渉を除去したデータ系列を検出していた（たとえば、特許文献１、２参照。）。しかしながら、ハードディスクから読み出したデータ系列は、有色雑音をも含む場合がある。このような場合、ＳＯＶＡによってデータ検出を行なったとしても符号間干渉の除去が正しく行なわれず、後段において実行される復号を行なったとしても、正確な復号が期待できなかった。従来、このような課題に対して、過去の信号や雑音に依存して発生する雑音、すなわち、有色雑音を予測してデータ系列を検出するＤＤＮＰ（Ｄａｔａ  Ｄｅｐｅｎｄｅｎｔ  Ｎｏｉｓｅ  Ｐｒｅｄｉｃｔｉｖｅ）−ＳＯＶＡがデータ検出アルゴリズムとして用いられていた（たとえば、非特許文献１参照）。
【特許文献１】特開２００３−２２８９２３号公報
【特許文献２】特開２００４−１３９６６４号公報
【非特許文献１】Ａｌｅｋｓａｎｄａｒ  Ｋａｖｃｉｃ、ｅｔ  ａｌ、「Ｔｈｅ  Ｖｉｔｅｒｂｉ  Ａｌｇｏｒｉｔｈｍ  ａｎｄ  Ｍａｒｋｏｖ  Ｎｏｉｓｅ  Ｍｅｍｏｒｙ」、ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｔｈｅｏｒｙ、Ｖｏｌ．４６、Ｎｏ．１、ｐ．２９１−３０１、Ｊｕｎ．  ２０００
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明者はこうした状況下、以下の課題を認識するに至った。すなわち、ハードディスクからデータ系列を読み出した段階においては、データ系列に含まれる雑音が有色雑音であるか白色雑音であるか、もしくは、双方の雑音を含んでいるのかを判定することが難しいといった課題である。このため、いずれかの検出アルゴリズムを用いてデータ検出を行なった後に復号したとしても、その復号特性が不安定となってしまうといった課題である。
【０００５】
本発明はこうした状況に鑑みてなされたものであり、その目的は、雑音特性によらず、復号特性を向上できる復号装置、復号方法、および記憶システムを提供することにある。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明のある態様の復号装置は、データ系列を入力する入力部と、入力部によって入力されたデータ系列から複数の異なる信号系列を生成する生成部と、生成部によって生成された複数の信号系列のうち１の信号系列を選択する選択部と、選択部によって選択された信号系列を復号する復号部と、復号部によって復号された信号系列の復号誤りの程度を検出する検出部と、検出部によって検出された誤りの程度が所定の許容度以内であるか否かを判定する判定部と、を備える。判定部において、誤りの程度が所定の許容度以内であると判定された場合は、復号部によって復号された信号系列の出力が指示される。また、判定部において、誤りの程度が所定の許容度を超えると判定された場合は、選択部にて、１の信号系列とは異なる別の信号系列の選択が指示され、選択部にて新たに選択された信号系列に対して復号部以下による処理が再実行される。
【０００７】
ここで、「複数の異なる信号系列」とは、所定の信号系列に対し異なるデータ検出方法によって生成された複数の信号系列などを含む。また、「復号誤りの程度を検出する」とは、誤りが訂正できているか否かのチェックや、ＣＲＣなどの誤り検出によって誤りの有無を判定することなどを含む。また、「誤りの程度が所定の許容度以内」とは、正しい復号結果が得られたことなどを含み、たとえば、誤りが訂正されており、かつ、ＣＲＣなどの誤り検出によって誤りがないと判定されることなどを含む。「誤りの程度が所定の許容度を超える」とは、正しい復号結果が得られなかったことなどを含み、たとえば、誤りが訂正されておらず、また、ＣＲＣなどの誤り検出によって誤りが残存していると判定されることなどを含む。「異なる別の信号系列の選択」とは、すでに選択された信号系列とは異なる信号系列の選択を含む。また、「復号部以下による処理」とは、復号部と検出部と判定部による処理を含む。この態様によると、誤りが所定の許容度以内となる復号系列となるまで、復号処理を繰り返すことによって、復号部における復号性能を向上できる。また、復号性能を安定化できる。
【０００８】
選択部は、判定部によって誤りの程度が許容度以内であると判定される確率が高い信号系列を優先して選択してもよい。また、選択部は、生成部によって生成された複数の信号系列のうち、信号に依存して発生する雑音を予測する機能を有するビタビアルゴリズムを用いて検出されたデータ系列に対応する信号系列を優先して選択してもよい。ここで、「信号に依存して発生する雑音」とは、過去の信号や雑音に依存して発生する雑音などを含む。この態様によると、誤りの程度が許容度以内であると判定される確率が高い信号系列を優先して選択することによって、復号部以下の所定の処理における繰り返し実行しなければならない回数を低減できる。
【０００９】
入力部は、それぞれ異なるデータ系列を生成する第１入力部と第２入力部とを含んでもよい。生成部は、第１入力部と、第２入力部とから入力されたデータ系列のいずれか一方のデータ系列、もしくは、双方のデータ系列から、１以上の信号系列を生成してもよい。生成部は、第１入力部と第２入力部によってそれぞれ入力された複数のデータ系列のうちのデータ系列であって、信号に依存して発生する雑音を予測する機能を有する第１ビタビアルゴリズムによって検出されたデータ系列、および／または、第１ビタビアルゴリズムとは異なる機能を有する第２ビタビアルゴリズムによって検出されたデータ系列をもとに、信号系列を生成してもよい。この態様によると、復号の対象となる候補を複数生成できる。複数の候補を生成することにより、復号の確実性を向上できる。
【００１０】
入力部は、軟判定値化されたデータ系列を入力し、生成部は、入力部によって入力されたデータ系列を硬判定値化することによって、信号系列を生成してもよい。この態様によると、簡易な構成で復号系列を生成できる。また、生成部は、入力部によって入力されたデータ系列のうち、所定の長さ以上の区間において、所定のしきい値より小さい絶対値を有する軟判定データが連続している場合であって、区間において連続している軟判定データの個数が所定の個数より多い場合、連続している軟判定データの符号を反転した後に、硬判定値化することによって、もしくは、前記連続している軟判定データを硬判定値化した後に硬判定されたデータを論理反転することによって、信号系列を生成してもよい。また、生成部は、入力部によって入力されたデータ系列に含まれる複数の軟判定データのうち、所定の長さ以上の区間において、隣接する軟判定データの符号がそれぞれ異なる場合、区間に対応する軟判定データの符号を反転した後に、硬判定値化することによって、もしくは、区間に対応する軟判定データを硬判定値化した後に硬判定されたデータを論理反転することによって、信号系列を生成する。また、生成部は、入力部によって入力されたデータ系列に含まれる複数の軟判定データのうち、所定のしきい値より小さい絶対値を有する軟判定データの符号を反転した後に、硬判定値化することによって、もしくは、所定のしきい値より小さい絶対値を有する軟判定データを硬判定値化した後に硬判定されたデータを論理反転することによって、信号系列を生成してもよい。
【００１１】
ここで、「軟判定値」とは、２値より大きい多値より表される値を含み、また、信頼度を含む。信頼度とは、データの確からしさを示し、軟判定値の絶対値で表現してもよい。「軟判定データの符号を反転」とは、軟判定データに（−１）を乗じることなどを含み、また、軟判定データの硬判定値を論理反転することなどを含む。また、「隣接する軟判定データの符号がそれぞれ異なる場合」とは、複数の軟判定データが、交互に正と負とを示す軟判定データであることを含み、正を示す符号ビットと負を示す符号ビットとが交互に軟判定データに含まれていることを含む。この態様によると、信頼性の低い軟判定値に対応する硬判定値を逆方向に判定させることによって、復号特性を向上できる。
【００１２】
また、生成部は、入力部によって入力された複数のデータ系列のうちの２つのデータ系列であって、一方のデータ系列の硬判定値をもとに、他方のデータ系列の硬判定値を修正することによって、信号系列を生成してもよい。また、生成部は、第１入力部と第２入力部とによって入力された複数のデータ系列のうちの２つのデータ系列であって、信号に依存して発生する雑音を予測する機能を有する第１ビタビアルゴリズムによって検出されたデータ系列と、第１ビタビアルゴリズムとは異なる機能を有する第２ビタビアルゴリズムによって検出されたデータ系列のいずれか一方の硬判定値をもとに、他方のデータ系列の硬判定値を修正することによって、信号系列を生成してもよい。また、生成部は、第１入力部と第２入力部とによって入力された複数のデータ系列のうちの２つのデータ系列であって、一方のデータ系列に含まれる第１データの硬判定値と、他方のデータ系列に含まれるデータであって前記第１データと対応する位置に存在する第２データの硬判定値とが異なる場合、一方のデータ系列に含まれる第１データを、第２データに置換えることによって、一方のデータ系列の硬判定値を修正してもよい。また、生成部は、第１入力部と第２入力部とによって入力された複数のデータ系列のうちの２つのデータ系列であって、一方のデータ系列に含まれる第１データの硬判定値と、他方のデータ系列に含まれるデータであって前記第１データと対応する位置に存在する第２データの硬判定値とが異なる場合であって、かつ、第２データの軟判定値の絶対値と第１データの軟判定値の絶対値との差が所定のしきい値より大きい場合、一方のデータ系列に含まれる第１データを、第２データに置換えることによって、一方のデータ系列の硬判定値を修正してもよい。この態様によると、複数の硬判定系列を互いに修正することによって、双方の雑音特性に強い信号系列を生成できる。復号特性を向上できる。また、信頼性の低い軟判定値に対応する硬判定値を逆方向に判定させることによって、復号特性を向上できる。
【００１３】
本発明の別の態様は、復号方法である。この方法は、データ系列を入力するステップと、入力したデータ系列から複数の異なる信号系列を生成するステップと、生成された複数の信号系列のうち１の信号系列を選択するステップと、選択された信号系列を復号するステップと、を備え、選択するステップは、復号するステップにおいて復号された信号系列の誤りの程度が所定のしきい値より小さくなるまで、順次、すでに選択した信号系列とは異なる信号系列を選択し、復号するステップ以下の処理が繰り返し実行される。ここで、「誤りの程度が所定のしきい値より小さくなる」とは、正しい復号結果が得られたことなどを含み、たとえば、誤りが訂正されており、かつ、ＣＲＣなどの誤り検出によって誤りがないと判定されることなどを含む。この態様によると、この態様によると、誤りが所定の許容度以内となる復号系列となるまで、復号処理を繰り返すことによって、復号部における復号性能を向上できる。また、復号性能を安定化できる。
【００１４】
本発明のさらに別の態様は、記憶システムである。この記憶システムは、データを記憶装置に書き込むライトチャネルと、記憶装置に記憶されているデータを読み出すリードチャネルとを備える信号記憶システムであって、ライトチャネルは、データをリードソロモン符号化する符号化部と、符号化部で符号化されたデータを記憶装置に書き込む書き込み部と、を備え、リードチャネルは、記憶装置から出力されたアナログ信号を入力する入力部と、入力部から入力されたアナログ信号をデジタル信号に変換して出力するアナログデジタル変換部と、アナログデジタル変換部から出力されたデジタル信号の尤度を計算して軟判定値を出力するソフト出力検出部と、ソフト出力検出部から出力されたデータを復号する、符号化部に対応した、復号部と、を備える。復号部は、ソフト出力検出部から出力されたデータを入力する入力部と、入力部によって入力されたデータから複数の異なる信号系列を生成する生成部と、生成部によって生成された複数の信号系列のうち１の信号系列を選択する選択部と、選択部によって選択された信号系列を復号する復号部と、復号部によって復号された信号系列の復号誤りの程度を検出する検出部と、検出部によって検出された誤りの程度が所定の許容度以内であるか否かを判定する判定部と、を有する。判定部において、誤りの程度が所定の許容度以内であると判定された場合は、復号部によって復号された信号系列の出力が指示され、判定部において、誤りの程度が所定の許容度を超えると判定された場合は、選択部にて１の信号系列とは異なる別の信号系列の選択が指示され、選択部にて新たに選択された信号系列に対して検出部以下による処理が再実行される。本発明のさらに別の態様は、復号装置である。当該装置は、１つの半導体基板上に一体集積化されていてもよい。この態様によると、安定して高い復号能力を備える復号部を具備することによって、より高速に記憶システムにアクセスすることができる。また、余分なハードウェアを搭載する必要がなくなるので、低規模な半導体集積回路を実現できる。
【００１５】
本発明のさらに別の態様もまた、記憶システムである。この記憶システムは、記憶システムにおいて、当該記憶システムは、さらに、データを記憶する記憶装置と、記憶装置への書き込みと、記憶装置からの読み出しとを制御する制御部と、を有する。リードチャネルは、制御部の指示に従って、記憶装置に記憶されているデータを読み出し、ライトチャネルは、制御部の指示に従って、符号化されたデータを記憶装置に書き込む。本発明のさらに別の態様は、復号装置である。当該装置は、１つの半導体基板上に一体集積化されていてもよい。この態様によると、安定して高い復号能力を備える復号部を具備することによって、より高速に記憶システムにアクセスすることができる。また、余分なハードウェアを搭載する必要がなくなるので、低規模な半導体集積回路を実現できる。
【００１６】
なお、以上の構成要素の任意の組合せや本発明の構成要素や表現を方法、装置、システムなどの間で相互に置換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１７】
本発明によれば、雑音特性によらず、復号特性を向上できる。
【発明を実施するための最良の形態】
【００１８】
本発明の実施形態を具体的に説明する前に、まず本実施形態にかかる記憶システム１００について概要を述べる。本実施形態にかかる記憶システム１００は、ハードディスクコントローラと、磁気ディスク装置と、リードチャネルとライトチャネルを含むリードライトチャネルと、を有する。リードチャネルにおいては、復号処理として、符号間干渉を除去するためのデータ検出処理や、検出したデータ系列に含まれる誤りを訂正／検出するＲＳ復号などを行う。データ検出処理においては、一般的に、白色雑音に対して高い検出性能を発揮するＳＯＶＡや、有色雑音に対して高い検出性能を発揮するＤＤＮＰ−ＳＯＶＡなどが用いられる。
【００１９】
しかし、磁気ディスク装置からデータ系列を読み出した段階においては、データ系列に含まれる雑音が有色雑音であるか白色雑音であるか、もしくは、双方の雑音を含んでいるのかを判定することが難しいといった課題がある。このため、いずれかの検出アルゴリズムを用いてデータ検出を行なったとしても、符号間干渉の除去が正しく行なわれない場合がある。このような場合、後段においてデータ系列に含まれる誤りを訂正する復号処理をしたとしても、その復号特性は不安定となる。したがって、本発明の実施形態においては、少なくとも、ＳＯＶＡとＤＤＮＰ−ＳＯＶＡとを用いて検出された複数のデータ系列を予め生成し、順次、データ系列の復号処理を実行することによって復号性能を安定させる。また、復号処理において、復号系列に含まれる誤りが少なくなるようなデータ系列を優先して復号対象とすることによって、復号処理を高速化する。詳細は後述する。
【００２０】
以下、図面を用いて、本発明の実施形態について詳細に説明する。
【００２１】
図１は、本発明の実施形態に係る記憶システム１００の構成例を示す図である。図１の記憶システム１００は、大きく分けて、ハードディスクコントローラ１（以下、「ＨＤＣ１」と略記する。）、中央処理演算装置２（以下、「ＣＰＵ２」と略記する。）、リードライトチャネル３（以下、「Ｒ／Ｗチャネル３」と略記する。）、ボイスコイルモータ／スピンドルモータ制御部４（以下、「ＶＣＭ／ＳＰＭ制御部４」と略記する。）、及びディスクエンクロージャ５（以下、「ＤＥ５」と略記する。）とから構成される。一般に、ＨＤＣ１、ＣＰＵ２、Ｒ／Ｗチャネル３、及びＶＣＭ／ＳＰＭ制御部４は同一の基板上に構成される。
【００２２】
ＨＤＣ１は、ＨＤＣ１全体を制御する主制御部１１、データフォーマット制御部１２、誤り訂正符号化制御部１３（以下、「ＥＣＣ制御部１３」と略記する。」）、及びバッファＲＡＭ１４を含む。ＨＤＣ１は、図示しないインタフェース部を介してホストシステムと接続される。また、Ｒ／Ｗチャネル３を介して、ＤＥ５と接続されており、主制御部１１の制御により、ホストとＤＥ５の間のデータ転送を行う。このＨＤＣ１には、Ｒ／Ｗチャネル３で生成されるリードリファレンスクロック（ＲＲＣＫ）が入力される。データフォーマット制御部１２は、ホストから転送されたデータをディスク媒体５０上に記録するのに適したフォーマットに変換し、逆に、ディスク媒体５０から再生されたデータをホストに転送するのに適したフォーマットに変換する。ディスク媒体５０は、たとえば、磁気ディスクを含む。バッファＲＡＭ１４は、ホストから転送されたデータを一時的に保存し、適切なタイミングでＲ／Ｗチャネル３に転送する。逆に、Ｒ／Ｗチャネル３から転送されたリードデータを一時的に保存し、ＥＣＣ復号処理などの終了後、適切なタイミングでホストに転送する。
【００２３】
ＥＣＣ制御部１３は、ディスク媒体５０から再生されたデータに含まれる誤りの訂正及び検出を可能にするために、記録するデータを情報シンボルとして、冗長シンボルを付加する。また、ＥＣＣ制御部１３は、復号処理として、再生されたデータ系列に誤りが生じているかを判定し、誤りがある場合には訂正を行う。誤りを訂正できなかった場合、あるいは、ＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｏｄｅ）などによって誤り検出された場合、その程度によって、他のデータ系列を対象として復号処理を行なう。詳細は後述する。なお、誤りが訂正できるシンボル数は有限であり、冗長データの長さに関係する。即ち、多くの冗長データを付加するとフォーマット効率が悪化するため、誤り訂正可能シンボル数とはトレードオフとなる。ＥＣＣとしてリードソロモン（ＲＳ）符号を利用して誤り訂正を行う場合、（冗長シンボル数／２）個までの誤りを訂正できる。
【００２４】
ＣＰＵ２は、フラッシュＲＯＭ２１（以下、「ＦＲＯＭ２１」と略記する。）、及びＲＡＭ２２を含み、ＨＤＣ１、Ｒ／Ｗチャネル３、ＶＣＭ／ＳＰＭ制御部４、及びＤＥ５と接続される。ＦＲＯＭ２１には、ＣＰＵ２の動作プログラムが保存されている。
【００２５】
Ｒ／Ｗチャネル３は、ライトチャネル３１とリードチャネル３２とに大別され、ＨＤＣ１との間で記録するデータ及び再生されたデータの転送を行う。また、Ｒ／Ｗチャネル３は、ＤＥ５と接続され、記録信号の送信、再生信号の受信を行う。詳細は後述する。
【００２６】
ＶＣＭ／ＳＰＭ制御部４は、ＤＥ５中のボイスコイルモータ５２（以下、「ＶＣＭ５２」と略記する。）とスピンドルモータ５３（以下、「ＳＰＭ５３」と略記する。）を制御する。
【００２７】
ＤＥ５は、Ｒ／Ｗチャネル３と接続され、記録信号の受信、再生信号の送信を行う。またＤＥ５は、ＶＣＭ／ＳＰＭ制御部４と接続されている。ＤＥ５は、ディスク媒体５０、ヘッド５１、ＶＣＭ５２、ＳＰＭ５３、及びプリアンプ５４等を有している。図１の記憶システム１００においては、ディスク媒体５０が１枚であり、且つヘッド５１がディスク媒体５０の一方の面側のみに配置されている場合を想定しているが、複数のディスク媒体５０が積層配置された構成であってもよい。また、ヘッド５１は、ディスク媒体５０の各面に対応して設けられるのが一般的である。Ｒ／Ｗチャネル３により送信された記録信号は、ＤＥ５内のプリアンプ５４を経由してヘッド５１に供給され、ヘッド５１によりディスク媒体５０に記録される。逆に、ヘッド５１によりディスク媒体５０から再生された信号は、プリアンプ５４を経由してＲ／Ｗチャネル３に送信される。ＤＥ５内のＶＣＭ５２は、ヘッド５１をディスク媒体５０上の目標位置に位置決めするために、ヘッド５１をディスク媒体５０の半径方向に移動させる。また、ＳＰＭ５３は、ディスク媒体５０を回転させる。
【００２８】
ここで、図２を用いて、Ｒ／Ｗチャネル３について説明する。図２は、図１のＲ／Ｗチャネル３の構成を示す図である。Ｒ／Ｗチャネル３は、大きく分けて、ライトチャネル３１とリードチャネル３２から構成される。
【００２９】
ライトチャネル３１は、バイトインターフェース部３０１、スクランブラ３０２、ランレングス制限符号化部３０３（以下、「ＲＬＬ符号化部３０３」と略記する。）、書き込み補償部３０５（以下、「ライトプリコン部３０５」と略記する。）、ドライバ３０６を含む。
【００３０】
バイトインターフェース部３０１では、ＨＤＣ１から転送されたデータが入力データとして処理される。メディア上に書き込むデータは１セクタ単位でＨＤＣ１から入力される。このとき１セクタ分のユーザデータ（５１２バイト）だけでなく、ＨＤＣ１によって付加されたＥＣＣバイトも同時に入力される。データバスは通常１バイト（８ビット）であり、バイトインターフェース部３０１により入力データとして処理される。スクランブラ３０２はライトデータをランダムな系列に変換する。同じ規則のデータの繰り返しは、リード時における検出性能に悪影響を与え、エラーレートを悪化させるのを防ぐためである。
【００３１】
ＲＬＬ符号化部３０３は０の最大連続長を制限するためのものである。０の最大連続長を制限することによりリード時の図示しないタイミング制御部、自動利得制御部３１７（以下、「ＡＧＣ３１７」と略記する。）などに適したデータ系列にする。
【００３２】
ライトプリコン部３０５は、メディア上の磁化遷移の連続による非線形歪を補償する回路である。ライトデータから補償に必要な規則を検出し、正しい位置で磁化遷移が生ずるようにライト電流波形を予め調整をする。ドライバ３０６は擬似ＥＣＬレベルに対応した信号を出力するドライバである。ドライバ３０６からの出力は図示しないＤＥ５に送られ、プリアンプ５４を通してヘッド５１に送られ、ライトデータがディスク媒体５０上に記録される。
【００３３】
リードチャネル３２は、可変利得増幅器３１１（以下、「ＶＧＡ３１１」と略記する。）、ローパスフィルタ３１２（以下、「ＬＰＦ３１２」と略記する。）、ＡＧＣ３１７、デジタル／アナログ変換器３１３（以下、「ＡＤＣ３１３」と略記する。）、周波数シンセサイザ３１４、フィルタ３１５、ソフト出力検出部３２０、同期信号検出部３２１、ランレングス制限復号部３２３（以下、「ＲＬＬ復号部３２３」と略記する。）、デスクランブラ３２４とから構成されている。
【００３４】
ＶＧＡ３１１及びＡＧＣ３１７は、図示しないプリアンプ５４から送られたデータのリード波形の振幅の調整を行う。ＡＧＣ３１７は理想的な振幅と実際の振幅を比較し、ＶＧＡ３１１に設定すべきゲインを決定する。ＬＰＦ３１２は、カットオフ周波数とブースト量を調整することができ、高周波ノイズの低減と部分応答（Ｐａｒｔｉａｌ Ｒｅｓｐｏｎｓｅ。以下、「ＰＲ」と略記する。）波形への等化の一部を担う。ＬＰＦ３１２でＰＲ波形への等化を行うが、ヘッドの浮上量変動、媒体の不均一性、モータの回転変動などの多くの要因により、アナログのＬＰＦによる完全な等化は難しいので、後段に配置され、よりフレキシビリティに富んだフィルタ３１５を用いて、再度ＰＲ波形への等化を行う。フィルタ３１５は、そのタップ係数を適応的に調整する機能を有していてもよい。周波数シンセサイザ３１４は、ＡＤＣ３１３のサンプリング用クロックを生成する。
【００３５】
ＡＤＣ３１３は、ＡＤ変換により直接同期サンプルを得る構成とした。なお、この構成の他に、ＡＤ変換により非同期サンプルを得る構成であってもよい。この場合は、ゼロ相リスタート部、タイミング制御部、及び補間フィルタをさらにＡＤＣ３１３の後段に設ければよい。非同期サンプルから同期サンプルを得る必要があり、これらのブロックがその役割を担う。ゼロ相リスタート部は初期位相を決定するためのブロックで、できるだけ早く同期サンプルを得るために用いられる。初期位相を決定した後は、タイミング制御部で理想的なサンプル値と実際のサンプル値を比較し、位相のずれを検出する。これを用いて補間フィルタのパラメータを決定することにより、同期サンプルを得ることができる。
【００３６】
ソフト出力検出部３２０は、符号間干渉に伴う復号特性の劣化を回避するために、ビタビアルゴリズムの一種であるＳＯＶＡなどを用いて、データ系列を検出する。一般的に、近年の磁気ディスク装置の記録密度の上昇に伴い、記録された符号間の干渉が大きくなり、これに応じて復号特性が劣化する。これを解決するため、これを克服する方式として符号間干渉による部分応答を利用した最ゆう復号（Ｐａｒｔｉａｌ Ｒｅｓｐｏｎｓｅ ＭａｘｉｍｕｍＬｉｋｅｉｈｏｏｄ。以下、「ＰＲＭＬ」と略記する。）方式を用いる。ＰＲＭＬは、再生信号の部分応答のゆう度を最大にする信号系列を求める方式である。また、検出されたデータ系列を用いて、復号対象となる信号系列を複数生成する。詳細は後述する。
【００３７】
ソフト出力検出部３２０としてＳＯＶＡ方式が用いられている場合、軟判定値を出力する。例えば、ＳＯＶＡの出力として、（−０．７１、＋０．１８、＋０．４５、−０．４５、−０．９）という軟判定値が出力されたとする。これらの値は、０である可能性が大きいか、１である可能性が大きいかを数値で表している。例えば、１番目の−０．７１は１である可能性が大きいことを示しており、２番目の＋０．１８は０である可能性が大きいが１である可能性も小さくはないことを意味する。従来のビタビディテクタの出力はハード値であり、ＳＯＶＡの出力を硬判定したものである。上記の例の場合、（１、０、０、１、１）である。ハード値は、０であるか、１であるかのみを表しており、どちらの可能性が高いかという情報が失われている。このためＬＤＰＣ繰返復号部３２２に軟判定値を入力する方が復号性能が向上する。
【００３８】
ＲＬＬ復号部３２３は、ソフト出力検出部３２０から出力されたデータに対して、ライトチャネル３１のＲＬＬ符号化部３０３の逆操作を行い、元のデータ系列に戻す。デスクランブラ３２４は、ライトチャネル３１のスクランブラ３０２の逆操作を行い、元のデータ系列に戻す。ここで生成されたデータはＨＤＣ１に転送される。
【００３９】
図３は、図２のソフト出力検出部３２０の構成例を示す図である。ソフト出力検出部３２０は、データ検出部６０と、生成部６２と、選択部６４とを含む。データ検出部６０は、データ系列を入力する。入力されるデータ系列は、１つのデータ系列でもよく、また、複数のデータ系列であってもよい。図４は、図３のデータ検出部６０の構成例を示す図である。データ検出部６０は、ＤＤＮＰ−ＳＯＶＡ部６６と、ＳＯＶＡ部６８とを含む。ＤＤＮＰ−ＳＯＶＡ部６６は、入力された信号に対して、過去の信号や雑音に依存して発生する雑音を予測する機能を有するビタビアルゴリズム（ＤＤＮＰ−ＳＯＶＡ）を実行することによって、データ系列を検出する。また、ＳＯＶＡ部６８は、入力された信号に対して、軟判定ビタビアルゴリズムを実行することによって、データ系列を検出する。なお、データ検出部６０は、ＤＤＮＰ−ＳＯＶＡ部６６、ＳＯＶＡ部６８以外のデータ検出装置から構成されていてもよい。たとえば、硬判定値を出力する通常のビタビアルゴリズムを用いてデータ検出を実行するデータ検出装置などから構成されていてもよい。また、データ検出部６０は、通常のビタビアルゴリズムを用いたデータ検出装置をさらに備えてもよい。
【００４０】
図３に戻る。生成部６２は、データ検出部６０によって入力されたデータ系列から複数の異なる信号系列を生成する。複数の信号系列は、１、またはそれ以上のデータ系列に対し、後述する信号処理を実行することによって生成される。また、後段の復号処理によって復号処理が実行される前に、予めすべての信号系列が生成されていてもよい。また、復号処理、もしくは再復号処理を実行する必要が生じるたびに、復号の対象とすべき信号系列を生成してもよい。選択部６４は、生成部６２によって生成された複数の信号系列のうち１の信号系列を選択する。また、選択部６４は、図１のＥＣＣ制御部１３によって誤り訂正できる確率が高い信号系列を優先して選択してもよい。具体的には、選択部６４は、生成部６２によって生成された複数の信号系列のうち、ＤＤＮＰ−ＳＯＶＡを用いて検出されたデータ系列に対応する信号系列を優先して選択してもよい。また、選択部６４は、ＥＣＣ制御部１３の指示に従って、すでに選択した信号系列とは異なる別の信号系列を選択してもよい。このように、複数の信号系列を復号対象とすることによって、雑音特性によらず、復号性能を安定化できる。いいかえると、複数の雑音特性を予め想定し、想定した雑音特性に強い信号系列を復号対象として生成することにより、想定した雑音特性の範囲内においては、復号性能を向上できることとなる。
【００４１】
ここで、生成部６２が、図４に示す２つのデータ検出部から出力された２つのデータ系列を用いて、信号系列を生成する場合について説明する。以下においては、図１のＥＣＣ制御部１３によって誤りが訂正できる確率が比較的高いと考えられる１０個の信号系列について説明する。なお、選択部６４において選択される順序は、必ずしも、後述する第１信号系列から選択しなくともよく、任意に設定してもよい。
【００４２】
生成部６２は、図４に示すＤＤＮＰ−ＳＯＶＡ部６６から出力された軟判定値の系列であるデータ系列に含まれる軟判定値をそれぞれ硬判定値化することによって信号系列（以下、「第１信号系列」と表記する）を生成する。また、生成部６２は、同様の処理をＳＯＶＡ部６８から出力された軟判定の系列であるデータ系列に対しても実行して、信号系列（以下、「第２信号系列」と表記する）を生成する。なお、硬判定値化は、軟判定値が所定のしきい値より大きいか否かを判定し、その判定結果をもとに、０もしくは１のビットに置換えることによって実行される。たとえば、軟判定値が−α〜＋α（α＞０）の範囲をとる場合において、しきい値を０とする場合、軟判定値が正であれば０に、負であれば１に置換えればよい。また、軟判定値が０〜＋β（β＞０）の範囲をとる場合は、しきい値をβ／２としてもよい。これらの硬判定値化（以下、「第１修正判定アルゴリズム」と表記する）は、簡易な構成で実現できるため、回路規模が縮小できる。
【００４３】
また、生成部６２は、図４のＤＤＮＰ−ＳＯＶＡ部６６によって入力されたデータ系列に含まれる複数の信頼度のうち、所定のしきい値より小さい値を有する信頼度を探索する。さらに、軟判定値を硬判定値化した系列において、探索された信頼度に対応するビットの”０”と”１”とを反転することによって、信号系列（以下、「第３信号系列」と表記する）を生成する。また、生成部６２は、同様の処理をＳＯＶＡ部６８から出力された軟判定の系列であるデータ系列に対しても実行し、信号系列（以下、「第４信号系列」と表記する）を生成する。ここで、「信頼度」とは、軟判定値の絶対値を示し、０以上の値を示す。これらの硬判定値化（以下、「第２修正判定アルゴリズム」と表記する）は、簡易な構成で実現できるため、回路規模が縮小できる。また、誤りの含まれている可能性の高い判定値を修正することによって、図５の復号部７０から出力される復号系列の誤り率を改善できる。
【００４４】
例を用いて説明する。式（１）にデータ系列に含まれる信頼度を示す。また、式（２）に、硬判定されたデータ系列を示す。ここで、しきい値を４とすると、第２修正判定アルゴリズムを用いて生成される信号系列は、式（３）で表される。式（３）に示すように、式（２）における２〜４、７、８ビット目が修正されることとなる。
｛９  １  １  １  ５  ７  ３  ３  ６  ９｝  ・・・式（１）
｛１  ０  ０  １  １  １  ０  ０  ０  １｝  ・・・式（２）
｛１  １  １  ０  １  １  １  １  ０  １｝  ・・・式（３）
【００４５】
また、生成部６２は、図４のＤＤＮＰ−ＳＯＶＡ部６６によって入力されたデータ系列に含まれる複数の信頼度のうち、所定のしきい値より小さい値を有する信頼度が所定の個数より多く連続している区間を探索する。さらに、軟判定値を硬判定値化した系列において、探索された信頼度に対応するビットの”０”と”１”とを反転することによって、信号系列（以下、「第５信号系列」と表記する）を生成する。また、生成部６２は、同様の処理をＳＯＶＡ部６８から出力された軟判定の系列であるデータ系列に対しても実行して、信号系列（以下、「第６信号系列」と表記する）を生成する。これらの硬判定値化（以下、「第３修正判定アルゴリズム」と表記する）は、簡易な構成で実現できるため、回路規模が縮小できる。また、誤りの含まれている区間を集中的に修正することによって、バースト誤りを低減できるので、図５の復号部７０から出力される復号系列の誤り率を改善できる。
【００４６】
例を用いて説明する。式（４）にデータ系列に含まれる信頼度を示す。式（５）に、硬判定されたデータ系列を示す。ここで、所定のしきい値を４、所定の個数を３とすると、第３修正判定アルゴリズムを用いて生成される信号系列は、式（６）で表される。式（６）に示すように、式（５）における２、３、４ビット目が修正されることとなる。
｛９  １  １  １  ５  ７  ３  ３  ６  ９｝  ・・・式（４）
｛１  ０  ０  １  １  １  ０  ０  ０  １｝  ・・・式（５）
｛１  １  １  ０  １  １  ０  ０  ０  １｝  ・・・式（６）
【００４７】
また、生成部６２は、図４のＤＤＮＰ−ＳＯＶＡ部６６によって入力されたデータ系列のうち、所定の長さ以上の区間において、隣接する軟判定データの符号がそれぞれ異なる場合、区間に対応する軟判定データの符号を反転する。その後、軟判定データを硬判定値化することによって、信号系列（以下、「第７信号系列」と表記する）を生成する。「隣接する軟判定データの符号がそれぞれ異なる場合」とは、たとえば、軟判定データを硬判定値で表した場合に、「０１０１０１・・・」、もしくは、「１０１０１０・・・」となることを含む。また、生成部６２は、同様の処理をＳＯＶＡ部６８から出力された軟判定の系列であるデータ系列に対しても実行することによって、信号系列（以下、「第８信号系列」と表記する）を生成する。これらの硬判定値化（以下、「第４修正判定アルゴリズム」と表記する）は、簡易な構成で実現できるため、回路規模が縮小できる。また、誤りの含まれている可能性が高いパターンを修正することによって、図５の復号部７０から出力される復号系列の誤り率を改善できる。
【００４８】
例を用いて説明する。式（７）に、硬判定されたデータ系列を示す。ここで、所定の長さを４とすると、第４修正判定アルゴリズムを用いて生成される信号系列は、式（８）で表される。式（８）に示すように、式（７）における２〜５ビット目が修正されることとなる。
｛０  ０  １  ０  １  １  ０  １  １  ０｝  ・・・式（７）
｛０  １  ０  １  ０  １  ０  １  １  ０｝  ・・・式（８）
【００４９】
また、生成部６２は、図４のＤＤＮＰ−ＳＯＶＡ部６６とＳＯＶＡ部６８とによって入力された２つのデータ系列のいずれか一方の硬判定値をもとに、他方のデータ系列の硬判定値を修正することによって、信号系列を生成する。具体的には、生成部６２は、たとえば、ＤＤＮＰ−ＳＯＶＡ部６６のデータ系列を被修正系列として、ＳＯＶＡ部６８のデータ系列を用いて修正する。まず、生成部６２は、ＤＤＮＰ−ＳＯＶＡ部６６のデータ系列に含まれる第１データの硬判定値と、ＳＯＶＡ部６８のデータ系列に含まれるデータであって第１データと対応する位置に存在する第２データの硬判定値とを比較する。ここで、両者が異なる場合、ＤＤＮＰ−ＳＯＶＡ部６６のデータ系列のうち、対応する第２データと異なっている第１データを、その第２データに置換えることによって、信号系列（以下、「第９信号系列」と表記する。）を生成する。この硬判定値化（以下、「第５修正判定アルゴリズム」と表記する）は、簡易な構成で実現できるため、回路規模が縮小できる。また、２つのデータ系列のうち、互いに異なるデータに対して、一方を他方のデータと置換えることによって、図５の復号部７０から出力される復号系列の誤り率を改善できる。
【００５０】
例を用いて説明する。式（９）に、ＤＤＮＰ−ＳＯＶＡ部６６によって出力されたデータ系列の硬判定値を示す。また、式（１０）に、ＳＯＶＡ部６８によって出力されたデータ系列の硬判定値を示す。ここで、ＤＤＮＰ−ＳＯＶＡ部６６によって出力されたデータ系列を被修正系列とした場合の修正後の系列を式（１１）に示す。
｛０  ０  １  ０  １  １  ０  １  １  ０｝  ・・・式（９）
｛０  １  ０  １  ０  １  ０  １  ０  ０｝  ・・・式（１０）
｛０  １  ０  １  ０  １  ０  １  ０  ０｝  ・・・式（１１）
【００５１】
生成部６２は、図４のＤＤＮＰ−ＳＯＶＡ部６６とＳＯＶＡ部６８とによって入力された２つのデータ系列のいずれか一方のデータ系列に含まれる第１データの硬判定値と、他方のデータ系列に含まれるデータであって第１データと対応する位置に存在する第２データの硬判定値とを比較する。さらに、比較した結果、第１データと第２データが異なる場合であって、「第２データの信頼度−第１データの信頼度＞α（αは所定の値）」の条件を満たす場合、第１データを、第２データに置換えることによって、一方のデータ系列の硬判定値を修正する。具体的には、ＤＤＮＰ−ＳＯＶＡ部６６のデータ系列に含まれる複数のデータの硬判定値と、ＳＯＶＡ部６８のデータ系列に含まれる複数のデータの硬判定値とを、それぞれ対応するデータ同士で比較する。比較した結果、それぞれ異なっている場合であって、「信頼度１−信頼度２＞α」となる場合における信頼度２に対応するデータを信頼度１に対応するデータの硬判定値に置換えることによって、信号系列（以下、「第１０信号系列」と表記する）を生成する。この硬判定値化（以下、「第６修正判定アルゴリズム」と表記する）は、簡易な構成で実現できるため、回路規模が縮小できる。また、２つのデータ系列のうち、いずれか一方のデータ系列に含まれるデータを誤りが少ないと考えられるデータに置換えることによって、図５の復号部７０から出力される復号系列の誤り率を改善できる。
【００５２】
例を用いて説明する。式（１２）、式（１３）に、ＤＤＮＰ−ＳＯＶＡ部６６によって出力されたデータ系列の信頼度、硬判定値をそれぞれ示す。また、式（１４）、式（１５）に、ＳＯＶＡ部６８によって出力されたデータ系列の信頼度、硬判定値を示す。また、第６修正判定アルゴリズムにもとづいて修正された後の系列を式（１６）に示す。
｛３  ４  ６  ５  ５  １  １  ５  ２  ４｝  ・・・式（１２）
｛０  ０  １  ０  １  １  １  １  １  １｝  ・・・式（１３）
｛３  ２  ５  ２  ３  ３  ４  ５  ４  ６｝  ・・・式（１４）
｛０  １  ０  １  ０  １  ０  １  ０  ０｝  ・・・式（１５）
｛０  ０  １  ０  １  １  ０  １  ０  ０｝  ・・・式（１６）
【００５３】
上述した第１修正判定アルゴリズム〜第６修正判定アルゴリズムは、それぞれ組み合わせることによって、新たな修正判定アルゴリズムを導出できる。また、それにより、生成できる信号系列の種類、個数も増加できる。たとえば、第３、第４修正判定アルゴリズムのそれぞれは、第５、第６修正判定アルゴリズムと組み合わせることによって、より厳しい条件のもとで、信号系列が生成されることはいうまでもない。この場合、図１のＥＣＣ制御部１３における復号候補を増加できるので、復号の安定性を向上できる。好ましくは、第２と第３修正判定アルゴリズムの組み合わせ、または、第２と第３と第４修正判定アルゴリズムの組み合わせ、または、第４と第６修正判定アルゴリズムの組み合わせを新たな修正判定アルゴリズムとすればよい。
【００５４】
図５は、図１のＥＣＣ制御部１３の構成例を示す図である。ＥＣＣ制御部１３は、復号部７０と、誤り検出部７２と、判定部７４と、スイッチ７６とを示す。なお、ここでは、復号側における構成のみ図示し、符号化側における構成については省略する。ここで、復号部７０と、誤り検出部７２とは、連結され、もしくは、統合された装置であってもよい。復号部７０は、図３の選択部６４によって選択された信号系列を復号する。誤り検出部７２は、復号部７０によって誤りが訂正できたかどうかのチェックと、ＣＲＣなどによる誤り検出を行なう。なお、「図３の選択部６４によって選択された信号系列」とは、図３の選択部６４を含むソフト出力検出部３２０の後段に存在するＲＬＬ復号部３２３やデスクランブラ３２４を経由して出力された信号系列なども含む。
【００５５】
判定部７４は、誤りが訂正できたと判断され、かつ、ＣＲＣなどによって誤りがないと判断された場合に、正しい復号結果が得られたと判定する。判定部７４において、正しい復号結果が得られたと判定された場合は、復号部７０によって復号された信号系列の出力がスイッチ７６に対して指示される。いいかえると、スイッチ７６は、指示があるまで、復号部７０から入力された信号を出力しない。また、判定部７４において、正しい復号結果が得られなかったと判定された場合は、選択部６４にてすでに選択された信号系列とは異なる別の信号系列の選択が指示され、選択部６４にて新たに選択された信号系列に対して復号部７０以下による処理が再実行される。ここで、「指示され」とは、スイッチ７６、もしくは、選択部６４に対して、ＥＣＣ制御部１３が直接指示してもよく、また、図示しない制御部を介して指示してもよい。
【００５６】
上述したこれらの構成は、ハードウエア的には、任意のコンピュータのＣＰＵ、メモリ、その他のＬＳＩで実現でき、ソフトウエア的にはメモリにロードされた通信機能のあるプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
【００５７】
図６は、図３の選択部６４と、図５のＥＣＣ制御部１３との動作例を示すフローチャートである。まず、選択部６４は、復号対象となる信号系列を選択する（Ｓ１０）。つぎに、ＥＣＣ制御部１３において復号処理が実行される（Ｓ１２）。さらに、ＥＣＣ制御部１３において、正しい復号結果が得られたかどうかを判定する（Ｓ１４）。正しい復号結果が得られたと判定された場合（Ｓ１４のＹ）、判定部７４は、スイッチ７６に対し、復号部７０から出力された復号系列をそのまま出力する旨の指示を行い（Ｓ１６）、処理を終了する。一方、正しい復号結果が得られなかったと判定された場合（Ｓ１４のＮ）、選択部６４は、復号対象を再度選択し、Ｓ１２以下の処理を繰り返す（Ｓ１８）。
【００５８】
ここで、Ｓ１０、またはＳ１８における選択は、復号した結果、誤りを訂正できる可能性が高いと考えられる信号系列が優先される。ただし、必ずしもこのような順序である必要はなく、任意に設定してもよい。たとえば、選択の順序は、前述した第１信号系列を最初に選択し、以後、Ｓ１４において正しい復号結果が得られたと判定されるまで、順に、第２信号系列、第３信号系列、・・・、第１０信号系列が選択される。この場合、選択の順序は、信号系列の番号で定義されてもよく、また、前述した第１修正判定アルゴリズム〜第６修正判定アルゴリズムで定義されてもよい。
【００５９】
図７は、図３の生成部６２の動作例を示すフローチャートである。生成部６２は、まず、基準となるデータ系列を選択する（Ｓ２０）。基準となるデータ系列とは、修正対象となるデータ系列を指し、ＤＤＮＰ−ＳＯＶＡ部６６とＳＯＶＡ部６８とのうち、いずれか一方から出力されたデータ系列をいう。つぎに、Ｓ２０において選択されたデータ系列に含まれるデータを１つずつ修正すべきか否かを判定する（Ｓ２２）。Ｓ２２において、修正すべきと判定された場合（Ｓ２２のＹ）、そのデータの符号を反転して、Ｓ２６の処理に移る（Ｓ２４）。修正すべきでないと判定された場合（Ｓ２２のＮ）、Ｓ２６の処理に移る。つぎに、Ｓ２６において、データ系列に含まれる全てのデータについて判定が終了したかを判断し、終了していないと判断された場合は、まだ判定されていないデータを対象として、Ｓ２２以下の処理が繰り返される（Ｓ２６のＮ）。一方、すべてのデータについて判定が終了したと判断された場合（Ｓ２６のＹ）、処理を終了する。なお、上述の処理は、信号系列を生成すべき修正判定アルゴリズムごとに実行されてもよいし、生成すべき信号系列ごとに実行されてもよい。したがって、複数の修正判定アルゴリズムを用いる場合、もしくは、複数の信号系列を生成する場合、図７に示すフローチャートは繰り返し実行されることとなる。
【００６０】
本実施形態によれば、正しい復号結果が得られるまで、復号処理を繰り返すことによって、復号部における復号性能を向上できる。また、復号性能を安定化できる。また、誤りを訂正できる確率が高い信号系列を優先して選択することによって、復号部以下の所定の処理における繰り返し実行しなければならない回数を低減できる。また、復号の対象となる候補を複数生成できる。複数の候補を生成することにより、復号の確実性を向上できる。また、信頼性の低い軟判定値に対応する硬判定値を逆方向に修正することによって、復号特性を向上できる。また、複数の硬判定系列を互いに修正することによって、双方の雑音特性に強い信号系列を生成でき、復号特性を向上できる。また、信頼性の低い軟判定値に対応する硬判定値を逆方向に修正することによって、復号特性を向上できる。また、安定して高い復号能力を備える復号部を具備することによって、より高速に記憶システムにアクセスすることができる。また、余分なハードウェアを搭載する必要がなくなるので、低規模な半導体集積回路を実現できる。
【００６１】
以上、本発明を実施形態をもとに説明した。この実施形態は例示であり、実施形態相互の組み合わせ、または、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【００６２】
本実施形態においては、ＥＣＣ制御部１３は、ＨＤＣの内部に搭載されているとして説明した。しかしながらこれにかぎらず、リードライトチャネルの内部に搭載されていてもよい。また、ＨＤＣとリードライトチャネルは、１つのＬＳＩとして一体化されていてもよい。また、ＳＯＶＡを用いて候補を作成するとして説明したが、Ｖｉｔｅｒｂｉを用いもよい。この場合、軟判定値でなく、Ｖｉｔｅｒｂｉから出力された硬判定値をもとに候補を作成すればよい。
【図面の簡単な説明】
【００６３】
【図１】本発明の実施形態に係る記憶システムの構成例を示す図である。
【図２】図１のＲ／Ｗチャネルの構成を示す図である。
【図３】図２のソフト出力検出部の構成例を示す図である。
【図４】図３のデータ検出部の構成例を示す図である。
【図５】図１のＥＣＣ制御部の構成例を示す図である。
【図６】図３の選択部と、図５のＥＣＣ制御部との動作例を示すフローチャートである。
【図７】図３の生成部の動作例を示すフローチャートである。
【符号の説明】
【００６４】
１  ＨＤＣ、  ２  ＣＰＵ、  ３  Ｒ／Ｗチャネル、  ４  ＶＣＭ／ＳＰＭ制御部、  ５  ＤＥ、  １１  主制御部、  １２  データフォーマット制御部、  １３  ＥＣＣ制御部、  １４  バッファＲＡＭ、  ２１  ＦＲＯＭ、  ２２  ＲＡＭ、  ３１  ライトチャネル、  ３２  リードチャネル、  ５０  ディスク媒体、  ５１  ヘッド、  ５２  ＶＣＭ、  ５３  ＳＰＭ、  ５４  プリアンプ、  ６０  データ検出部、  ６２  生成部、  ６４  選択部、  ６６  ＤＤＮＰ−ＳＯＶＡ部、  ６８  ＳＯＶＡ部、  ７０  復号部、  ７２  誤り検出部、  ７４  判定部、  ７６  スイッチ、  ３０１  バイトインターフェース部、  ３０２  スクランブラ、  ３０３  ＲＬＬ符号化部、  ３０５  ライトプリコン部、  ３０６  ドライバ、  ３１１  ＶＧＡ、  ３１２  ＬＰＦ、  ３１３  ＡＤＣ、  ３１４  周波数シンセサイザ、  ３１５  フィルタ、  ３１７  ＡＧＣ、  ３１９  タイミング制御部、  ３２０  ソフト出力検出部、  ３２１  同期信号検出部、  ３２３  ＲＬＬ復号部、  ３２４  デスクランブラ。
【図１】
0004443518.tif 000002
【図２】
0004443518.tif 000003
【図３】
0004443518.tif 000004
【図４】
0004443518.tif 000005
【図５】
0004443518.tif 000006
【図６】
0004443518.tif 000007
【図７】
0004443518.tif 000008