(57)【要約】【課題】  誤り訂正符号化の対象となるデータとパリティデータとを高速に記憶装置に書き込むつつ、ハンドシェイクなしで、データとパリティデータとを整列すること。【解決手段】  ＬＤＰＣ符号化部３０４は、本体データに対しタイミング調整を行って書込回路３３４に出力するタイミング調整回路３２６と、入力信号系列に対しＬＤＰＣ符号化を行ってパリティデータを生成して書込回路３３４に出力するパリティ生成回路３２８と、本体データとパリティデータを順次うけとって、ライトプリコン部３０５、ドライバ３０６などを介して、記憶装置に出力する書込回路３３４と、を含む。【選択図】  図３
2007087534.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置に対し、本体データとその誤り訂正に利用するパリティデータとを書き込む装置であって、
本体データおよびパリティデータを記憶装置に書き込む書込回路と、
本体データの書込中に並行してパリティデータを生成するパリティ生成回路と、
生成したパリティデータの先頭が本体データの末尾の後に書込タイミング上連続して出現するよう調整するタイミング調整回路と、
を備え、前記タイミング調整回路によってタイミング調整された本体データとパリティデータが前記書込回路へ提供されることを特徴とするデータ書込装置。
【請求項２】
前記パリティ生成回路は、
前記本体データの順序を、所定の規則にしたがって並べ替えるインタリーブ回路と、
前記インタリーブ回路によって並べ替えられたデータに対し、低密度パリティチェック符号化を行って符号化データを生成する低密度パリティチェック符号化回路と、
前記低密度パリティチェック符号化回路によって生成された符号化データの順序をもとに戻して前記パリティデータを出力するデインタリーブ回路と、
を備えることを特徴とする請求項１に記載のデータ書込装置。
【請求項３】
前記タイミング調整回路は、パリティ生成回路における遅延時間を相殺するよう本体データの伝搬経路に設けられることを特徴とする請求項１または２のいずれかに記載のデータ書込装置。
【請求項４】
前記タイミング調整回路は、前記パリティ生成回路におけるパリティデータの生成に要する時間から、前記本体データの先頭から末尾までのデータを前記書込回路に供給するのに要する時間を減じて得た値を遅延量として、前記本体データを遅延させることを特徴とする請求項１乃至３のいずれかに記載のデータ書込装置。
【請求項５】
前記タイミング調整回路は、
前記遅延量を決定する遅延量決定部を有し、
前記遅延量決定部から供給された遅延量を用いて、当該タイミング調整回路に入力された前記本体データを遅延させて出力することを特徴とする請求項４に記載のデータ書込装置。
【請求項６】
前記タイミング調整回路は、
前記遅延量に相当する個数の遅延素子を有し、
前記遅延素子は、当該遅延素子に入力された前記本体データを、前記遅延量だけ遅延させて出力することを特徴とする請求項４に記載のデータ書込装置。
【請求項７】
前記タイミング調整回路は、
前記遅延量を決定する遅延量決定部と、
前記本体データを入力とし、遅延させて出力する複数の遅延素子と、
を有し、
前記遅延量決定部によって決定された遅延量をもとに、前記複数の遅延素子のうちのいずれかの遅延素子を選択し、選択された遅延素子から前記本体データを順次前記書込回路に出力させることを特徴とする請求項４に記載のデータ書込装置。
【請求項８】
前記複数の遅延素子は、少なくとも前記遅延量より多くの遅延量を有することを特徴とする請求項７に記載のデータ書込装置。
【請求項９】
前記記憶装置はコンピュータに内蔵される磁気記録装置であって、
前記パリティ生成回路は、前記コンピュータ内で生成された本体データに対してパリティデータを生成し、
前記書込回路は、前記本体データと前記パリティデータとを順次前記磁気記録装置に書き込むことを特徴とする請求項１乃至６のいずれかに記載のデータ書込装置。
【請求項１０】
データを記憶装置に書き込むライトチャネルと、記憶装置に記憶されているデータを読み出すリードチャネルを有する信号記憶システムであって、
前記ライトチャネルは、
データをランレングス符号化する第１の符号化部と、
前記第１の符号化部で符号化されたデータに対し、低密度パリティ検査符号を用いて符号化する第２の符号化部と、
前記第２の符号化部で符号化されたデータを記憶装置に書き込むデータ書込部と、
を有し、
前記リードチャネルは、
前記記憶装置に記憶されているデータを読み出すデータ読出部と、
前記データ読み出し部によって読み出されたデータの尤度を計算して軟判定値を出力するソフト出力検出部と、
前記ソフト出力検出部から出力されたデータを復号する、第２の符号化部に対応した第１の復号部と、
前記第１の復号部で復号されたデータを復号する、前記第１の符号化部に対応した第２の復号部と、
を有し、
前記データ書込部は、
前記第１の符号化部で符号化されたデータおよびパリティデータを記憶装置に書き込む書込回路と、
前記第１の符号化部で符号化されたデータの書込中に並行してパリティデータを生成するパリティ生成回路と、
生成したパリティデータの先頭が本体データの末尾の後に書込タイミング上連続して出現するよう調整するタイミング調整回路と、
を有し、前記タイミング調整回路によってタイミング調整された本体データとパリティデータが前記書込回路へ提供されることを特徴とする記憶システム。
【請求項１１】
請求項１に記載のデータ書込装置おいて、当該装置は、１つの半導体基板上に一体集積化されたことを特徴とするデータ書込装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶媒体へのアクセス技術に関し、特に、データ書込装置および記憶システムに関する。
【背景技術】
【０００２】
近年、ハードディスクを用いた記憶装置は、パーソナルコンピュータ、ハードディスクレコーダー、ビデオカメラ、携帯電話など、さまざまな分野において必須の装置となりつつある。ハードディスクを用いた記憶装置は、適用される分野によって求められる仕様もさまざまであり、たとえば、パーソナルコンピュータに用いる場合は、高速でかつ大容量が求められる。しかしながら、大容量になるほど扱うデータの量が増えるため、十分な誤り訂正能力が必要となり、高速化が難しくなる。
【０００３】
従来、ハードディスクを用いた記憶装置に用いられる誤り訂正方式として、ターボ符号化、低密度パリティチェック符号化などがある。これらの誤り訂正方式は、誤り訂正符号化の対象となるデータに所定の処理を施してパリティデータを生成し、復号側にて、パリティデータを用いて誤りの有無のチェック、および、誤りの訂正を行っている。したがって、データとパリティデータとは連結されて記憶装置に書き込まれることが必要とされる。しかしながら、データとパリティデータとは別経路にて生成されるので、両者をハンドシェイクしつつ、高速に記憶装置に書き込むのは難しい。また、回路が複雑になるとともに、コストも高くなるといった問題があった。これを改善する方法としては、記憶装置への書き込みサイクル終了後のデータ経路の空き時間を利用してパリティビットを出力するといった方法がある（例えば、特許文献１を参照）。
【０００４】
【特許文献１】特開平１０−３４０５９６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、一般に、誤り訂正符号化の対象となるデータとパリティデータとを高速に記憶装置に書き込みつつ、データとパリティデータとを整列することは難しい。
【０００６】
本発明はこうした状況に鑑みてなされたものであり、その目的は、より高速でアクセスすることのできる記憶装置を提供することにある。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明のある態様のデータ書込装置は、記憶装置に対し、本体データとその誤り訂正に利用するパリティデータとを書き込む装置であって、本体データおよびパリティデータを記憶装置に書き込む書込回路と、本体データの書込中に並行してパリティデータを生成するパリティ生成回路と、生成したパリティデータの先頭が本体データの末尾の後に書込タイミング上連続して出現するよう調整するタイミング調整回路と、を備え、タイミング調整回路によってタイミング調整された本体データとパリティデータが書込回路へ提供される。
【０００８】
この態様によると、本体データとパリティデータの書き込みタイミングを調整することによって、本体データとパリティデータが離れることなく、双方が連結した状態で記憶装置に書き込むことができる。
【０００９】
ここで、「本体データの書込中に並行してパリティデータを生成する」とは、本体データの書き込み処理が、パリティデータの生成処理が時間的に同時に行われていることを含み、また、いずれか一方の処理における処理時間の一部が、他方の処理における処理時間の一部と重なっていることを含む。また、「パリティデータの先頭が本体データの末尾の後に書込タイミング上連続して出現するよう調整する」とは、本体データの末尾が書き込まれた直後にパリティデータの先頭が書き込まれるように、タイミングが調整されることを含む。また、「データ書込装置」は、たとえば、本体データに対し誤り訂正符号化を施してパリティデータを生成する回路を含んでもよく、また、本体データのタイミングを調整する回路、また、本体データを生成する回路、その他本体データに所定の処理を施して記憶装置に書き込むデータを生成する回路などを含んでもよい。
【００１０】
パリティ生成回路は、本体データの順序を、所定の規則にしたがって並べ替えるインタリーブ回路と、インタリーブ回路によって並べ替えられたデータに対し、低密度パリティチェック符号化を行って符号化データを生成する低密度パリティチェック符号化回路と、低密度パリティチェック符号化回路によって生成された符号化データの順序をもとに戻してパリティデータを出力するデインタリーブ回路と、を備えてもよい。
【００１１】
また、タイミング調整回路は、パリティ生成回路における遅延時間を相殺するよう本体データの伝搬経路に設けられてもよい。また、タイミング調整回路は、パリティ生成回路におけるパリティデータの生成に要する時間から、本体データの先頭から末尾までのデータを書込回路に供給するのに要する時間を減じて得た値を遅延量として、本体データを遅延させてもよい。また、タイミング調整回路は、遅延量に相当する個数の遅延素子を有し、遅延素子は、当該遅延素子に入力された本体データを遅延させて出力してもよい。このような構成により、遅延量を固定とすることができるため、書込装置のハード規模を低減することができる。
【００１２】
また、タイミング調整回路は、遅延量を決定する遅延量決定部と、本体データを入力とし、遅延させて出力する複数の遅延素子と、を備えてもよい。遅延量決定部によって決定された遅延量をもとに、複数の遅延素子のうちのいずれかの遅延素子を選択して、本体データを選択された遅延素子から前記書込回路に出力させてもよい。また、複数の遅延素子は、少なくとも前記遅延量より多くの遅延量を有していてもよい。このような構成をとることにより、本体データの個数が可変である場合であっても、適応的に、遅延量を変化させることができる。
【００１３】
また、データ書込装置は、遅延量を生成してタイミング調整回路に供給する遅延量決定部をさらに有してもよい。タイミング調整回路は、遅延量決定部から供給された遅延量を用いて、当該タイミング調整回路に入力された本体データを遅延させて出力してもよい。また、記憶装置はコンピュータに内蔵される磁気記録装置であって、パリティ生成回路は、コンピュータ内で生成された本体データに対してパリティデータを生成し、書込回路は、本体データとパリティデータとを順次磁気記録装置に書き込んでもよい。また、データ書込装置は、１つの半導体基板上に一体集積化されていてもよい。
【００１４】
この態様によると、タイミング調整回路を本体データの処理経路中に設けることによって、パリティ生成回路の負荷を軽減し、また、記憶装置への書込時間を短くすることができる。また、パリティデータの生成に要する時間を考慮した値で、本体データを遅延させることによって、本体データとパリティデータをタイミングよく記憶装置に書き込むことができる。また、あらかじめ、遅延量に相当する個数の遅延素子を設けることによって、ソフト的なハンドシェイク制御を必要としないで、自律的なタイミング調整ができる。また、余分なハードウェアを搭載する必要がなくなるので、低規模な半導体集積回路を実現できる。
【００１５】
ここで、「パリティ生成回路における遅延時間を相殺するよう」とは、パリティ生成回路における処理時間を考慮して、タイミング調整回路がタイミングを調整することを含む。
【００１６】
本発明の別の態様は、記憶システムである。この記憶システムは、データを記憶装置に書き込むライトチャネルと、記憶装置に記憶されているデータを読み出すリードチャネルを有する信号記憶システムであって、ライトチャネルは、データをランレングス符号化する第１の符号化部と、前記第１の符号化部で符号化されたデータに対し、低密度パリティ検査符号を用いて符号化する第２の符号化部と、前記第２の符号化部で符号化されたデータを記憶装置に書き込むデータ書込部と、を有し、リードチャネルは、記憶装置に記憶されているデータを読み出すデータ読出部と、データ読み出し部によって読み出されたデータの尤度を計算して軟判定値を出力するソフト出力検出部と、ソフト出力検出部から出力されたデータを復号する、第２の符号化部に対応した第１の復号部と、第１の復号部で復号されたデータを復号する、第１の符号化部に対応した第２の復号部と、を有し、データ書込部は、第１の符号化部で符号化されたデータおよびパリティデータを記憶装置に書き込む書込回路と、第１の符号化部で符号化されたデータの書込中に並行してパリティデータを生成するパリティ生成回路と、生成したパリティデータの先頭が本体データの末尾の後に書込タイミング上連続して出現するよう調整するタイミング調整回路と、を有し、タイミング調整回路によってタイミング調整された本体データとパリティデータが書込回路へ提供される。また記憶システムは、１つの半導体基板上に一体集積化されてもよい。
【００１７】
この態様によると、タイミング調整回路を設けることによって、本体データとパリティデータとを正確に連結させることができる。また、より高速に記憶システムのアクセス制御を実現することができる。
【００１８】
なお、以上の構成要素の任意の組合せや本発明の構成要素や表現を方法、装置、システムなどの間で相互に置換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１９】
本発明によれば、より高速にアクセスすることのできる記憶装置を提供することができる。
【発明を実施するための最良の形態】
【００２０】
以下、図面を参照して本発明の実施の形態（以下、「実施形態」という。）について説明する。
【００２１】
（実施形態）
本発明の実施形態を具体的に説明する前に、まず本実施形態にかかる記憶装置について概要を述べる。本実施形態にかかる記憶装置は、ハードディスクコントローラと、磁気ディスク装置と、リードチャネルとライトチャネルを含むリードライトチャネルと、を有する。また、ライトチャネルは、パリティデータ生成回路と、タイミング調整回路と、書込回路と、を有する。ライトチャネルにおいては、パリティ生成回路にてパリティデータを生成し、本体データとともに書込回路を経由して記憶装置に書き込む処理を行う。
【００２２】
ここで、タイミング調整回路におけるタイミングの調整は、次のいくつかの方法が考えられる。１つ目の方法としては、データ書込回路内にメモリを設け、パリティデータがデータ書込回路に到着するまで、そのメモリに本体データを一時的に保持するといった方法である。また、パリティデータの先頭がデータ書込回路に到着したことを契機として、本体データを書込回路内のメモリからの出力を開始するとしてもよい。２つ目の方法としては、書込回路を経由して本体データの末尾を書き込んだ後、パリティデータの先頭が書込回路に入力されるまで、書込許可を否とする方法である。この場合の書込許可は、記憶装置への書込の可否をハード的、もしくはソフト的な処理によって判断（以下、「ハンドシェイク」と称する。）し、書込の可否を切り替える制御フラグである。たとえば、パリティデータの先頭が書込回路に入力されたことを契機として、制御フラグを否から可に反転するなどのハンドシェイクを行う。
【００２３】
上述した２つのタイミング調整の方法は、いずれの場合も本体データとパリティデータとは連続した状態で記憶装置に書き込むことができる。しかしながら、１つ目の方法においては、書込回路内のメモリの容量は本体データのデータ量だけ必要とされるので、大容量の記憶装置において適用すると、ハード規模が増大してしまう。また、２つ目の方法においては、フラグの切り替え制御にハンドシェイクが必要とされるので、高速化が望まれる記憶装置には適さない。
【００２４】
そこで、本発明の実施形態においては、パリティ生成回路におけるパリティデータ生成のための処理時間を考慮して、本体データを遅延させる方法をとることとした。詳細は後述するが、パリティ生成回路にてパリティデータを生成している間、本体データは、タイミング調整回路にてタイミングが調整され、その後、書込回路へと入力される。さらに、パリティ生成回路にて生成されたパリティデータは、書込回路へと入力される。このとき、タイミング調整回路は、パリティ生成回路における処理時間を考慮して、本体データを遅延させている。したがって、書込回路へは、本体データの末尾の後に、パリティデータの先頭が入力されることとなる。その結果、本体データとパリティデータの間に隙間は発生せず、両者は連結された状態で書込回路を経由して記憶装置に書き込まれることとなる。このような態様をとることにより、記憶装置が大容量化されてもハード規模を増大させず、また、高速化への影響も低減することができる記憶装置を提供することができる。
【００２５】
ここで、「記憶装置」は、たとえば、コンピュータ、デジタルビデオ、携帯電話などに内蔵されるハードディスクであってもよく、また、デジタルビデオディスクなどの蓄積媒体に対し読み書き処理を行う装置であってもよい。また、「本体データ」は、誤り訂正符号化を施す対象となるデータに限らず、たとえば画像データであってもよく、音声データなどでもよい。また、画像データ、音声データに対して所定の圧縮符号化を施した後のデータであってもよい。また、「パリティデータ」は、本体データに関する冗長データ、もしくは、冗長符号を含み、たとえばターボ符号化、低密度パリティチェック符号化（Ｌｏｗ  Ｄｅｎｓｉｔｙ  Ｐａｒｉｔｙ  Ｃｈｅｃｋ  Ｃｏｄｅｓ。以下、「ＬＤＰＣ符号化」と略称する。）などの誤り訂正符号化の結果、組織符号、もしくは非組織符号として生成される符号に含まれるパリティビット系列であってもよい。また、誤り訂正符号化の結果、複数のパリティビット系列が生成される場合、少なくとも１つのパリティビット系列でもよい。
【００２６】
なお、一般的には、ＬＤＰＣ符号化、もしくはＬＤＰＣ復号における生成行列をＧ、検査行列をＨと表記する。ここでは説明を簡単にするため、双方とも、所定の行列、もしくは、行列Ｈとして説明する。なお、生成行列Ｇは、検査行列Ｈと式（１）の関係を有しているので、一方が決まると他方も決まる性質を持つ。
Ｇ×ＨＴ＝０    式（１）
ここで、ＨＴは、Ｈの転置行列を示す。また、右辺の０は、０行列を示す。
【００２７】
また、以下における説明を簡易とするために、「記憶」、「記録」を、「記憶」と統一して記載する。同様に、「記憶する」、「記録する」を、「記憶する」と統一して記載する。以下、図面を用いて、本発明の実施形態について詳細に説明する。
【００２８】
図１は、本発明の第１の実施形態に係る磁気ディスク装置１００の構成例を示す図である。図１の磁気ディスク装置１００は、大きく分けて、ハードディスクコントローラ１（以下、「ＨＤＣ１」と略記する。）、中央処理演算装置２（以下、「ＣＰＵ２」と略記する。）、リードライトチャネル３（以下、「Ｒ／Ｗチャネル３」と略記する。）、ボイスコイルモータ／スピンドルモータ制御部４（以下、「ＶＣＭ／ＳＰＭ制御部４」と略記する。）、及びディスクエンクロージャ５（以下、「ＤＥ５」と略記する。）からなる。一般に、ＨＤＣ１、ＣＰＵ２、Ｒ／Ｗチャネル３、及びＶＣＭ／ＳＰＭ制御部４は同一の基板上に構成される。
【００２９】
ＨＤＣ１は、ＨＤＣ１全体を制御する主制御部１１、データフォーマット制御部１２、誤り訂正符号化制御部１３（以下、「ＥＣＣ制御部１３」と略記する。」）、及びバッファＲＡＭ１４を含む。ＨＤＣ１は、図示しないインタフェース部を介してホストシステムと接続される。また、Ｒ／Ｗチャネル３を介して、ＤＥ５と接続されており、主制御部１１の制御により、ホストとＤＥ５の間のデータ転送を行う。このＨＤＣ１には、Ｒ／Ｗチャネル３で生成されるリードリファレンスクロック（ＲＲＣＫ）が入力される。データフォーマット制御部１２は、ホストから転送されたデータをディスク媒体５０上に記憶するのに適したフォーマットに変換し、逆に、ディスク媒体５０から再生されたデータをホストに転送するのに適したフォーマットに変換する。ディスク媒体５０は、たとえば、磁気ディスクを含む。ＥＣＣ制御部１３は、ディスク媒体５０から再生されたデータに含まれる誤りの訂正及び検出を可能にするために、記憶するデータを情報シンボルとして、冗長シンボルを付加する。またＥＣＣ制御部１３は、再生されたデータに誤りが生じているかを判断し、誤りがある場合には訂正或いは検出を行う。但し、誤りが訂正できるシンボル数は有限であり、冗長データの長さに関係する。即ち、多くの冗長データを付加するとフォーマット効率が悪化するため、誤り訂正可能シンボル数とはトレードオフとなる。ＥＣＣとしてリードソロモン（ＲＳ）符号を利用して誤り訂正を行う場合、（冗長シンボル数／２）個までの誤りを訂正できる。バッファＲＡＭ１４は、ホストから転送されたデータを一時的に保存し、適切なタイミングでＲ／Ｗチャネル３に転送する。逆に、Ｒ／Ｗチャネル３から転送されたリードデータを一時的に保存し、ＥＣＣ復号処理などの終了後、適切なタイミングでホストに転送する。
【００３０】
ＣＰＵ２は、フラッシュＲＯＭ２１（以下、「ＦＲＯＭ２１」と略記する。）、及びＲＡＭ２２を含み、ＨＤＣ１、Ｒ／Ｗチャネル３、ＶＣＭ／ＳＰＭ制御部４、及びＤＥ５と接続される。ＦＲＯＭ２１には、ＣＰＵ２の動作プログラムが保存されている。
【００３１】
Ｒ／Ｗチャネル３は、ライトチャネル３１とリードチャネル３２とに大別され、ＨＤＣ１との間で記憶するデータ及び再生されたデータの転送を行う。また、Ｒ／Ｗチャネル３は、ＤＥ５と接続され、記憶信号の送信、再生信号の受信を行う。詳細は後述する。
【００３２】
ＶＣＭ／ＳＰＭ制御部４は、ＤＥ５中のボイスコイルモータ５２（以下、「ＶＣＭ５２」と略記する。）とスピンドルモータ５３（以下、「ＳＰＭ５３」と略記する。）を制御する。
【００３３】
ＤＥ５は、Ｒ／Ｗチャネル３と接続され、記憶信号の受信、再生信号の送信を行う。またＤＥ５は、ＶＣＭ／ＳＰＭ制御部４と接続されている。ＤＥ５は、ディスク媒体５０、ヘッド５１、ＶＣＭ５２、ＳＰＭ５３、及びプリアンプ５４等を有している。図１の磁気ディスク装置１００においては、ディスク媒体５０が１枚であり、且つヘッド５１がディスク媒体５０の一方の面側のみに配置されている場合を想定しているが、複数のディスク媒体５０が積層配置された構成であってもよい。また、ヘッド５１は、ディスク媒体５０の各面に対応して設けられるのが一般的である。Ｒ／Ｗチャネル３により送信された記憶信号は、ＤＥ５内のプリアンプ５４を経由してヘッド５１に供給され、ヘッド５１によりディスク媒体５０に記憶される。逆に、ヘッド５１によりディスク媒体５０から再生された信号は、プリアンプ５４を経由してＲ／Ｗチャネル３に送信される。ＤＥ５内のＶＣＭ５２は、ヘッド５１をディスク媒体５０上の目標位置に位置決めするために、ヘッド５１をディスク媒体５０の半径方向に移動させる。また、ＳＰＭ５３は、ディスク媒体５０を回転させる。
【００３４】
ここで、図２を用いて、Ｒ／Ｗチャネル３について説明する。図２は、図１のＲ／Ｗチャネル３の構成例を示す図である。Ｒ／Ｗチャネル３は、大きく分けて、ライトチャネル３１とリードチャネル３２から構成される。
【００３５】
ライトチャネル３１は、バイトインターフェース部３０１、スクランブラ３０２、ランレングス制御符号化部３０３（以下、「ＲＬＬ符号化部３０３」と略記する。）、低密度パリティチェック符号化部３０４（以下、「ＬＤＰＣ符号化部３０４」と略記する。）、書き込み補償部３０５（以下、「ライトプリコン部３０５」と略記する。）、ドライバ３０６を含む。
【００３６】
バイトインターフェース部３０１では、ＨＤＣ１から転送されたデータが入力データとして処理される。メディア上に書き込むデータは１セクタ単位でＨＤＣ１から入力される。このとき１セクタ分のユーザデータ（５１２バイト）だけでなく、ＨＤＣ１によって付加されたＥＣＣバイトも同時に入力される。データバスは通常１バイト（８ビット）であり、バイトインターフェース部３０１により入力データとして処理される。スクランブラ３０２はライトデータをランダムな系列に変換する。同じ規則のデータの繰り返しは、リード時における検出性能に悪影響を与え、エラーレートを悪化させるのを防ぐためである。ＲＬＬ符号化部３０３は０の最大連続長を制限するためのものである。０の最大連続長を制限することによりリード時の自動利得制御部３１７（以下、「ＡＧＣ３１７」と略記する。）などに適したデータ系列にする。
【００３７】
ＬＤＰＣ符号化部３０４は、データ系列をＬＤＰＣ符号化して冗長ビットであるパリティビットを含む系列生成する役割を有する。ＬＤＰＣ符号化は、生成行列と呼ばれるｋ×ｎの行列に、長さｋのデータ系列を左から掛け合わせることで行う。この生成行列に対応する検査行列Ｈに含まれる各要素は、０もしくは１であり、１の数が０の数に比べて少ないことから、低密度パリティ検査符号（Ｌｏｗ  Ｄｅｎｓｉｔｙ  Ｐａｒｉｔｙ  Ｃｈｅｃｋ  Ｃｏｄｅｓ）と呼ばれている。この１と０の配置を利用することによって、後述するＬＤＰＣ繰返復号部３２２にて、効率的にエラーの訂正を行うことができる。詳細は後述する。
【００３８】
ライトプリコン部３０５は、メディア上の磁化転移の連続による非線形歪を補償する回路である。ライトデータから補償に必要な規則を検出し、正しい位置で磁気転移が生ずるようにライト電流波形を予め調整をする。ドライバ３０６は擬似ＥＣＬレベルに対応した信号を出力するドライバである。ドライバ３０６からの出力は図示しないＤＥ５に送られ、プリアンプ５４を通してヘッド５１に送られ、ライトデータがディスク媒体５０上に記憶される。
【００３９】
リードチャネル３２は、可変利得増幅器３１１（以下、「ＶＧＡ３１１」と略記する。）、ローパスフィルタ３１２（以下、「ＬＰＦ３１２」と略記する。）、ＡＧＣ３１７、アナログ／ディジタル変換器３１３（以下、「ＡＤＣ３１３」と略記する。）、周波数シンセサイザ３１４、フィルタ３１５、ソフト出力検出部３２０、ＬＤＰＣ繰返復号部３２２、同期信号検出部３２１、ランレングス制御復号部３２３（以下、「ＲＬＬ復号部３２３」と略記する。）、デスクランブラ３２４とから構成されている。
【００４０】
ＶＧＡ３１１及びＡＧＣ３１７は、図示しないプリアンプ５４から送られたデータのリード波形の振幅の調整を行う。ＡＧＣ３１７は理想的な振幅と実際の振幅を比較し、ＶＧＡ３１１に設定すべきゲインを決定する。ＬＰＦ３１２は、カットオフ周波数とブースト量を調整することができ、高周波ノイズの低減と部分応答（Ｐａｒｔｉａｌ Ｒｅｓｐｏｎｓｅ。以下、「ＰＲ」と略記する。）波形への等化の一部を担う。ＬＰＦ３１２でＰＲ波形への等化を行うが、ヘッドの浮上量変動、媒体の不均一性、モータの回転変動などの多くの要因により、アナログのＬＰＦによる完全な等化は難しいので、後段に配置され、よりフレキシビリティに富んだフィルタ３１５を用いて、再度ＰＲ波形への等化を行う。フィルタ３１５は、そのタップ係数を適応的に調整する機能を有していてもよい。周波数シンセサイザ３１４は、ＡＤＣ３１３のサンプリング用クロックを生成する。ＡＤＣ３１３は、ＡＤ変換により直接同期サンプルを得る構成とした。なお、この構成の他に、ＡＤ変換により非同期サンプルを得る構成であってもよい。この場合は、ゼロ相リスタート部、タイミング制御部、及び補間フィルタをさらにＡＤＣ３１３の後段に設ければよい。非同期サンプルから同期サンプルを得る必要があり、これらのブロックがその役割を担う。ゼロ相リスタート部は初期位相を決定するためのブロックで、できるだけ早く同期サンプルを得るために用いられる。初期位相を決定した後は、タイミング制御部で理想的なサンプル値と実際のサンプル値を比較し、位相のずれを検出する。これを用いて補間フィルタのパラメータを決定することにより、同期サンプルを得ることができる。
【００４１】
ソフト出力検出部３２０は、符号間干渉に伴う復号特性の劣化を回避するために、ビタビアルゴリズムの一種であるソフト出力ビタビアルゴリズム（Ｓｏｆｔ−Ｏｕｔｐｕｔ Ｖｉｔｅｒｂｉ Ａｌｇｏｒｉｔｈｍ。以下、「ＳＯＶＡ」と略記する。）が用いられる。すなわち、近年の磁気ディスク装置の記憶密度の上昇に伴い、記憶された符号間の干渉が大きくなり、復号特性が劣化するといった課題を解決するため、これを克服する方式として符号間干渉による部分応答を利用した最ゆう復号（Ｐａｒｔｉａｌ Ｒｅｓｐｏｎｓｅ ＭａｘｉｍｕｍＬｉｋｅｌｉｈｏｏｄ。以下、「ＰＲＭＬ」と略記する。）方式を用いる。ＰＲＭＬは、再生信号の部分応答のゆう度を最大にする信号系列を求める方式である。
【００４２】
ソフト出力検出部３２０は、ＳＯＶＡなどによって構成され、軟判定値を出力する。例えば、ＳＯＶＡの出力として、（０．７１、 ０．１８、 ０．４５、 ０．４５、 ０．９）という軟判定値が出力されたとする。これらの値は、０である可能性が大きいか、１である可能性が大きいかを数値で表している。例えば、１番目の０．７１は１である可能性が大きいことを示しており、４番目の０．４５は０である可能性が大きいが１である可能性も小さくはないことを意味する。従来のビタビディテクタの出力はハード値であり、ＳＯＶＡの出力を硬判定したものである。上記の例の場合、（１、０、０、０、１）である。ハード値は、０であるか、１であるかのみを表しており、どちらの可能性が高いかという情報が失われている。このためＬＤＰＣ繰返復号部３２２に軟判定値を入力する方が復号性能が向上する。
【００４３】
ＬＤＰＣ繰返復号部３２２は、ＬＤＰＣ符号化されているデータ系列から、ＬＤＰＣ符号化前の系列に復元する役割を有する。復号化の方法としては、主に、ｓｕｍ−ｐｒｏｄｕｃｔ復号法とｍｉｎ−ｓｕｍ復号法があり、復号性能の面ではｓｕｍ−ｐｒｏｄｕｃｔ復号法が有利であるが、ｍｉｎ−ｓｕｍ復号法はハードウェアによる実現が容易である特徴を持つ。ＬＤＰＣ符号を用いる実際の復号操作では、ソフト出力検出部３２０とＬＤＰＣ繰返復号部３２２の間で繰り返し復号を行うことにより、非常に良好な復号性能を得ることができる。このために実際はソフト出力検出部３２０とＬＤＰＣ繰返復号部３２２を複数段配列した構成が必要になる。
【００４４】
ＬＤＰＣ繰返復号部３２２は、ソフト出力検出部３２０から出力された信号系列に対し、インタリーブ処理を行って、ＬＤＰＣ復号処理を施し、さらに、逆のインタリーブ処理を行う。また、ＬＤＰＣ復号により誤りが訂正されたことを検査し、再度繰り返し処理を行うかを判定する。繰り返して復号を行う場合、再度軟判定値を計算して、インタリーブ処理の前段にフィードバックする。
【００４５】
具体的には、ＬＤＰＣ繰返復号部３２２は、所定の並替規則を用いて、ソフト出力検出部３２０から出力されたデータを並べ替える処理を行う。具体的な動作は、後述する第１のインタリーブ３３０と同様であるので、ここでは説明を省略する。また、行列Ｈを用いて、並び替えられたデータ系列の事前値と事後値を求め、復号結果である軟判定値を算出する。さらに、所定の並替規則を用いて、算出された軟判定値を、先に並び替えた系列を元に戻す、逆の並べ替え処理を行う。具体的な動作は、第１のデインタリーブ３３２と同様であるので、ここでは説明を省略する。このように、エラーの集中している個所を振り分けることによって、エラーが含まれる信号を分散することができる。また、復号時の誤り訂正能力を向上することができる。
【００４６】
同期信号検出部３２１はデータの先頭に付加された同期信号（Ｓｙｎｃ Ｍａｒｋ）を検出し、データの先頭位置を認識する役割を有する。ＲＬＬ復号部３２３は、ＬＤＰＣ繰返復号部３２２から出力されたデータに対して、ライトチャネル３１のＲＬＬ符号化部３０３の逆操作を行い、元のデータ系列に戻す。デスクランブラ３２４はライトチャネル３１のスクランブラ３０２の逆操作を行い、元のデータ系列に戻す。ここで生成されたデータはＨＤＣ１に転送される。
【００４７】
ここで、ＬＤＰＣ符号化部３０４について詳細に説明する。図３は、図２のＬＤＰＣ符号化部３０４の構成例を示す図である。ＬＤＰＣ符号化部３０４は、本体データに対しタイミング調整を行って書込回路３３４に出力するタイミング調整回路３２６と、入力信号系列に対しＬＤＰＣ符号化を行ってパリティデータを生成して書込回路３３４に出力するパリティ生成回路３２８と、本体データとパリティデータを順次うけとって、ライトプリコン部３０５、ドライバ３０６などを介して、記憶装置に出力する書込回路３３４と、を含む。
【００４８】
タイミング調整回路３２６は、入力された本体データのタイミングを調整し、本体データを遅延させて出力する回路である。このタイミングの調整は、パリティ生成回路３２８におけるパリティデータ生成のために要する時間を考慮して行われる。いいかえると、パリティ生成回路３２８における遅延時間を相殺するように、本体データのタイミングが調整される。これにより、生成したパリティデータの先頭が本体データの末尾の後に書込タイミング上連続して書込回路３３４に出現し、本体データの書込回路３３４への出力タイミングが調整できることとなる。ここで、タイミング調整回路３２６を本体データの処理経路中に設ける理由は、本体データに含まれる全てのデータが書込回路３３４へ入力されるのに要する時間がパリティ生成回路３２８におけるパリティデータ生成に要する時間よりも短いためである。このため、本体データのタイミングを調整しないと、パリティデータと連結された状態にはならないこととなる。なお、本体データのタイミングを調整する具体的な態様についての詳細は後述することとする。
【００４９】
パリティ生成回路３２８は、入力信号系列に対しインタリーブ処理を行う第１のインタリーブ３３０と、インタリーブされた個々の信号系列とＨ行列との乗算を行う乗算部３４０〜３４４（以下、代表して「乗算部３４０」と表記する。）と、乗算結果に対し、第１のインタリーブ３３０と逆の並べ替え処理を行って、パリティビットを生成する第１のデインタリーブ３３２と、を含む。パリティ生成回路３２８は、本体データに対し、ＬＤＰＣ符号化を施して、書込回路３３４に出力する回路である。パリティ生成回路３２８は、タイミング調整回路３２６による本体データの遅延処理、および／または、書込回路３３４などを介した記憶装置への書き込み処理と、時間的に並行してパリティデータを生成する。
【００５０】
第１のインタリーブ３３０は、入力された信号系列を複数の系列に振り分け、それぞれ乗算部３４０に出力する。この振り分けは、外部から入力される並替規則（Ｉｎｔｅｒｌｅａｖｉｎｇ  Ｐａｔｔｅｒｎ）、および処理経路の個数にしたがって振り分けられる。例えば、並替規則が（０、１、２、３、４、５、６、７）であり、また、信号系列がｄ０、ｄ１〜ｄ７の順で入力された場合、信号系列は式（２）のように並べ替えられることとなる。
（ｄ０、ｄ１、ｄ２、ｄ３、ｄ４、ｄ５、ｄ６、ｄ７）      式（２）
ここで、処理経路の個数が２個、すなわち、乗算部３４０の個数が２個（乗算部３４０と乗算部３４２）である場合は、下記のように出力される。
乗算部３４０の入力系列：（ｄ０、ｄ２、ｄ４、ｄ６）
乗算部３４２の入力系列：（ｄ１、ｄ３、ｄ５、ｄ７）
つまり、式（２）で示す信号が、乗算部の個数である２個おきに同一の乗算部に入力されることとなる。
【００５１】
もう１つ例を用いて説明する。例えば、並替規則が（０、４、１、５、２、６、３、７）であり、また、信号系列がｄ０、ｄ１〜ｄ８の順で入力された場合、信号系列は式（３）のように並べ替えられることとなる。
（ｄ０、ｄ４、ｄ１、ｄ５、ｄ２、ｄ６、ｄ３、ｄ７）      式（３）
ここで、処理経路の個数が２個、すなわち、乗算部３４０の個数が２個（乗算部３４０と乗算部３４２）である場合は、下記のように出力される。
乗算部３４０の入力系列：（ｄ０、ｄ１、ｄ２、ｄ３）
乗算部３４２の入力系列：（ｄ４、ｄ５、ｄ６、ｄ７）
つまり、式（３）で示す信号系列が、乗算部の個数である２個おきに同一の乗算部に入力されることとなる。
【００５２】
乗算部３４０は、各処理経路に設けられ、第１のインタリーブ３３０から出力された信号に、外部より入力された行列Ｈを作用させて、乗算を行う。具体的には、式（４）で表される演算を行う。
Ｄｉ×Ｈ＝Ｃｉ        式（４）
ここで、Ｄｉとは、１×ｋの行列であって、各乗算部３４０に入力される信号系列を表す。また、ｉは、１以上Ｍ以下の正の整数であって、処理経路の数を表す。また、Ｈは、ｋ×ｎの行列を表す。また、Ｃｉは、符号化系列であって、１×ｎの行列を表す。
【００５３】
つぎに、第１のデインタリーブ３３２について説明する。第１のデインタリーブ３３２は、各々の乗算部３４０から出力された符号化系列を統合して並べ替える処理を行って、パリティ系列を出力する。この並べ替えの処理は、第１のインタリーブ３３０で用いた並替規則を用いて行う。ただし、同じ並替規則であっても、並び替え処理自体は、第１のインタリーブ３３０とは異なる。具体的には、並替規則が（０、１、２、３、４、５、６、７）であって、乗算部３４０から出力された系列をそれぞれ、（ｄ０、ｄ２、ｄ４、ｄ６）、（ｄ１、ｄ３、ｄ５、ｄ７）とすると、第１のデインタリーブ３３２の出力系列は、（ｄ０、ｄ１、ｄ２、ｄ３、ｄ４、ｄ５、ｄ６、ｄ７）となる。すなわち、乗算部３４０がなかった場合、並び替え処理がなされなかったものとなるように、並べ替えられる。すなわち、第１のデインタリーブ３３２は、第１のインタリーブ３３０の逆処理を行っている。ここで、処理経路の数、並替規則は、信号系列の含まれるバーストエラーの局在性、もしくは、後述する行列Ｈの有する線形従属性を考慮して決定される。
【００５４】
書込回路３３４は、タイミング調整回路３２６によってタイミング調整された本体データと、パリティ生成回路３２８によって生成されたパリティデータとを順次後段の回路に出力する処理を行う。たとえば、本体データがｄ０〜ｄ１００であり、パリティデータがｐ０〜ｐ７であった場合、書込回路３３４の出力系列は、式（５）で示すように、ｄ０を先頭のデータ、ｐ７を最後のデータとする系列となる。
（ｄ０、ｄ１、・・・ｄ９９、ｄ１００、ｐ０、ｐ１、・・・、ｐ７）    式（５）
【００５５】
ここで、タイミング調整回路３２６におけるタイミング調整について、図４〜図７を用いて詳細に説明する。図４は、図３のタイミング調整回路３２６の第１の構成例を示す図である。タイミング調整回路３２６は、遅延素子３７０で代表される第１遅延素子３７０Ａと、第２遅延素子３７０Ｂと、第Ｎ遅延素子３７０Ｃなどを含む。ここで、遅延素子３７０の個数は、Ｎ個とする。また、Ｎは、遅延量と同じ値とする。いいかえると、遅延部３５０は、予め計算した遅延量と同じ個数だけ、遅延素子３７０を備えていることになる。図４に示すタイミング調整回路３２６の第１の構成例は、遅延量を固定の値として予め計算し、一切のソフト処理を介さずに、本体データのタイミングを調整するものである。このため、遅延量を適応的に変化することができない構成となる。しかしながら、図３に示したような誤り訂正回路においては、誤り訂正を行う対象となるデータの個数は予め決まっていることが多く、本変形例のように固定の遅延量をもってタイミングを調整したとしても問題となることはない。また、予め計算することにより、遅延量を計算するためのハードウェアを必要としないので、ハード規模の低減が図れることとなる。
【００５６】
なお、遅延量Ｎの算出の例は、図３に示したパリティ生成回路３２８における遅延時間を相殺するよう、パリティ生成回路３２８におけるパリティデータの生成に要する時間を考慮して生成される。具体的には、たとえば、パリティ生成回路３２８におけるパリティデータの生成に要する時間から、本体データの先頭から末尾までのデータを書込回路３３４に供給するのに要する時間を減じて得た値を遅延量として生成してもよい。パリティ生成回路３２８におけるパリティデータの生成に要する時間とは、前述したパリティ生成回路３２８において、本体データの先頭が入力されてから、パリティデータの先頭が出力されるまでの処理時間などをいう。また、本体データの先頭から末尾までのデータを書込回路３３４に供給するのに要する時間とは、本体データの先頭がタイミング調整回路３２６に入力されてから、本体データの末尾が書込回路３３４に入力されるまでの時間などをいう。また、本体データのタイミング調整回路３２６への入力処理、遅延部３５０における遅延処理、書込回路３３４への入力処理において、一つのデータが処理される時間はすべて同じ間隔で行われる、すなわち、全ての処理は同一のレートで行われると仮定した場合、本体データの先頭から末尾までのデータを書込回路３３４に供給するのに要する時間は、本体データの長さとなる。なお、データの個数、遅延量は、同一の単位で表現できる値とし、以下、１つのデータを処理する時間、もしくは、１つのデータを遅延させる時間を、「単位時間」と表現する。このように遅延量を決定することによって、後述する図６に図示するように、パリティデータの先頭が本体データの末尾の後に書込タイミング上連続して出現するよう、調整されることとなる。なお、上記の例にかぎらず、本体データとパリティデータとが連結された状態で記憶装置に書き込まれるように調節できる値として算出されたものであってもよい。
【００５７】
本体データは、まず、先頭のデータが第１遅延素子３７０Ａに入力され、１単位時間だけ遅延させられて第２遅延素子３７０Ｂに出力される。ついで、第２遅延素子３７０Ｂにおいて、同様に１単位時間だけ遅延させられて、次の遅延素子３７０に出力される。以後、順次、第Ｎ遅延素子３７０Ｃまで出力され、合計してＮ単位時間分遅延させられた先頭データが遅延部３５０から出力されることとなる。ここで、本体データの先頭データ以外のデータは、本体データの先頭データがそれぞれの遅延素子３７０から出力されるたびに、当該遅延素子３７０に続いて入力され、先頭データと同様の処理がなされる。したがって、本体データの先頭が第１遅延素子３７０Ａに入力されてから、（本体データに含まれるデータの個数＋Ｎ）で計算される単位時間後に、本体データに含まれる全てのデータが遅延部３５０から出力されることとなる。この結果、本体データとパリティデータとが時間的に連結するよう、書込回路３３４に現れることとなる。
【００５８】
図５は、図３のタイミング調整回路３２６の第２の構成例を示す図である。タイミング調整回路３２６の第２の構成例は、遅延素子３７０で代表される第１遅延素子３７０Ａ、第２遅延素子３７０Ｂ、第Ｍ遅延素子３７０Ｄなどを含む。Ｍは、前述したＮより大きい正の整数である。また、第Ｍ遅延素子３７０Ｄを除くそれぞれの遅延素子３７０の出力信号は、信号線３７２で代表される第１の信号線３７２Ａ、第２の信号線３７２Ｂ、第３の信号線３７２Ｃを通じ、第４の信号線３７２Ｄを介して第Ｍ遅延素子３７０Ｄの後段に出力される。なお、前述した実施の形態と共通する部分については同一の符号を付して説明を簡略化する。
【００５９】
タイミング調整回路３２６の第２の構成例においては、予想される遅延量Ｎより多めに遅延素子３７０を設けることが必要になる。予想される遅延量Ｎは、ＬＤＰＣ符号化部３０４が適用されるシステムにおいて想定されるＬＤＰＣ符号化の対象となるデータの最大の値などとすればよい。その後、実験等を行って、遅延量Ｎを確定し、所望の遅延量Ｎが得られるように、信号線３７２のうち、いずれか１つの信号線を除き、ＬＳＩマスク上のレーザによるトリミングを行うこととなる。ＬＳＩマスク上のレーザによるトリミングとは、電気信号が導通しないように、ＬＳＩマスク上の信号線をレーザによって焼き切ることなどをいう。たとえば、実験等によって確定した遅延量Ｎが１であった場合は、第１の信号線３７２Ａを除く信号線３７２をトリミングすればよい。また、遅延量が２であった場合は、第２の信号線３７２Ｂを除く信号線３７２をトリミングすればよい。この結果、タイミング調整回路３２６の第２の構成例は、図４に図示したタイミング調整回路３２６の第１の構成例に相当する、遅延素子３７０をＭ個有するバッファ機能を有し、本体データとパリティデータとが時間的に連結するように、本体データのタイミング調整ができることとなる。
【００６０】
このような構成をとることによって、予め遅延量が確定できないような場合であっても、柔軟に遅延量を変更できるタイミング調整回路３２６を実現することができる。言い換えると、第２の構成例は、遅延量を可変とするタイミング調整回路３２６といえる。実際のＬＤＰＣ符号化部３０４の設計、実装においては、ＬＳＩの実装手順などによっては、半導体基板上に実装されるまで、パリティ生成回路３２８における遅延時間が確定しない場合がある。このような場合に本構成例は好適となる。
【００６１】
図６は、図３のタイミング調整回路３２６の第３の構成例を示す図である。タイミング調整回路３２６の第３の構成例は、入力された本体データを遅延させて出力する遅延部３５０と、本体データの個数をもとに遅延量を決定する遅延量決定部３５２と、遅延量決定部３５２で決定された遅延量をもとに、遅延量を設定してセレクタ３８０に指示する遅延量設定部３７８と、遅延量設定部３７８の指示にもとづいて、遅延部３５０から出力された信号のいずれかを選択して出力するセレクタ３８０とを含む。タイミング調整回路３２６の第３の構成例は、図４、図５に示した構成例と異なり、適応的に遅延量を変更できる構成となっている。なお、前述した実施の形態と共通する部分については同一の符号を付して説明を簡略化する。
【００６２】
遅延部３５０は、破線で囲った部分に図示したように、遅延素子３７０で代表される第１遅延素子３７０Ａ、第２遅延素子３７０Ｂ、第Ｍ遅延素子３７０Ｄなどを含み、それぞれの遅延素子３７０は、入力された信号を遅延させて後段の遅延素子３７０に出力するとともに、セレクタ３８０に対しても出力する。それぞれの遅延素子３７０は、入力された本体データを順次蓄積し、１単位時間遅延させて出力する。ここで、Ｍは、遅延量Ｎよりも大きい値を有する正の整数である。なお、遅延部３５０は、たとえば、入力されたデータを一時的に保持するバッファを含んで構成されてもよく、フリップフロップ回路で構成されたシフトレジスタなどを含んで構成などを含んでいてもよい。
【００６３】
セレクタ３８０は、後述する遅延量設定部３７８からの指示にもとづき、入力されたそれぞれの遅延素子３７０の出力信号うち、いずれかの出力信号を選択して出力させる。選択された出力信号は、遅延量設定部３７８からの指示が変わらなければ、ひきつづき選択される。言い換えると、遅延量設定部３７８からの指示が変わらなければ、一定の遅延量で遅延されて出力させることとなる。したがって、遅延量設定部３７８からの指示が変わらないかぎり、図４、図５に示したタイミング調整回路３２６と同様に、固定の遅延量で本体データを一定の遅延させる機能を有するといえる。
【００６４】
遅延量決定部３５２は、本体データのタイミングを調整するための遅延量を決定する回路である。この遅延量は、図３に示したパリティ生成回路３２８における遅延時間を相殺するよう、パリティ生成回路３２８におけるパリティデータの生成に要する時間を考慮して、前述したような方法などで生成すればよい。遅延量決定部３５２は、本体データの個数が変更されるたびに遅延量の計算を行い、遅延量設定部３７８に通知する。
【００６５】
ここで、遅延量は、本体データに含まれるデータの個数と比べ、かなり少さな値となることを示す。前述したように、遅延量は、パリティ生成回路３２８における処理時間（以下、「パリティ生成時間」と略称する。）から本体データに含まれるデータの個数（以下、「データ数」と略称する。）を減じたものとしている。ここで、遅延量がデータ数より小さな値となるためには、式（６）に示す関係を有する必要がある。
パリティ生成時間  −  データ数  ＜  データ数                    式（６）
ここで、式（６）を変形すると、式（７）のようになる。
パリティ生成時間  ＜  ２×データ数                              式（７）
式（７）を満たすためには、パリティ生成時間はデータ数の２倍未満である必要がある。ここで、パリティ生成回路３２８における生成処理を考えると、パリティ生成回路３２８は、本体データに含まれるデータ全てが入力されてから処理を開始するのではなく、本体データの先頭が入力された後、ただちに処理を開始する。ついで、本体データの先頭の次のデータが入力され、以後、入力された順にパリティの生成がなされる。このパリティの生成は、前述した第１のインタリーブ３３０、乗算部３４０、および第１のデインタリーブ３３２においてなされ、データ数より少ない処理時間で行われることは当業者にとって明らかである。なぜならば、本実施形態の記憶装置におけるデータ数は数千〜数万の値をとる一方、パリティの生成は、通常、数単位時間で終了することができるからである。したがって、パリティ生成時間は、データ数＋α（αは、１以上データ数未満の値）となる。そうすると、式（７）を満たすこととなる。通常、αは、データ数よりも小さいな値となることから、遅延量は、本体データに含まれるデータの個数と比べ、かなり少ない値となる。
【００６６】
遅延量設定部３７８は、遅延量決定部３５２で決定された遅延量をもとに、セレクタ３８０に対し、それぞれの遅延素子３７０によって遅延された信号のうち、１つの出力信号を選択して出力させるかを指示する。いいかえると、遅延量設定部３７８は、本体データが遅延量決定部３５２で決定された遅延量で遅延してセレクタ３８０から出力されるように、指示すればよい。たとえば、遅延量決定部３５２で決定された遅延量Ｎが２であった場合、遅延量設定部３７８は、第２遅延素子３７０Ｂの出力信号を出力させるために、第２の信号線３７２Ｂを選択させればよい。また、遅延量Ｎが（Ｍ−１）の場合、遅延量設定部３７８は、第Ｍ遅延素子３７０Ｄの前段の遅延素子３７０の出力信号を出力させるために、第３の信号線３７２Ｃを選択させればよい。
【００６７】
このような構成をとることにより、本体データは、遅延量Ｎだけ遅延させることができる。また、遅延したことにより、タイミングが調整され、書込回路３３４において、本体データの末尾のデータの後に、パリティデータの先頭が出力され、両者は連結された状態とすることができる。また、ＬＤＰＣ符号化部３０４における符号化対象となるデータの個数が適応的に変化するような場合であっても、データの個数が変わるたびに、遅延量を適応的に変化させることによって、本体データのタイミングを調整することができる。たとえば、携帯端末にＬＤＰＣ符号化部３０４が適用される場合、通信を行うデータによって、ＬＤＰＣ符号化部３０４における符号化対象となるデータの個数は可変となるが、このような場合においても、通信を行うデータごとに、遅延量を適応的に変化することができるため、タイミング調整回路３２６の第３の構成例は好適となる。
【００６８】
図７は、図３のタイミング調整回路３２６とパリティ生成回路３２８の動作を示すタイミングチャートの例を示す図である。図７のタイミングチャートは、本発明を容易に理解するために、本体データ、パリティデータが書込回路３３４に順次書き込まれていく状態を視覚的に図示したものである。図７中においては、本体データに含まれる個々のデータを丸（○）で表現し、また、パリティデータに含まれる個々のデータを三角（△）で表現する。丸の中に記載した数値は、本体データがタイミング調整回路３２６に入力される順序、もしくは、出力される順序を示す。タイミング調整回路３２６によって遅延処理されるそれぞれの本体データと、タイミング調整回路３２６から書込回路３３４へ出力される本体データとは、丸の中に記載された数値が同一のデータ同士がそれぞれ対応している。さらに、丸（○）、三角（△）を図７に示した書込回路３３４を示すブロックの中に記載することによって、どのタイミングで本体データ、もしくは、パリティデータが書込回路３３４に入力されていくかを明らかにした。なお、実際の処理においては、書込回路３３４は、データが書き込まれるごとに、後段の回路を介して、記憶装置への書込を開始することとなるが、本体データとパリティデータとが連結していることを視覚的に表現するために、便宜的に図７のように図示した。
【００６９】
ここで、本体データに含まれるデータの個数を５個、パリティデータに含まれるデータの個数を３個と仮定した。また、パリティ生成回路３２８におけるパリティデータ生成時間を８単位時間とし、タイミング調整回路３２６における遅延量を３単位時間とした。
【００７０】
まず、時間ｔ１において、本体データの１番目のデータは、タイミング調整回路３２６、パリティ生成回路３２８に、それぞれ本体データの先頭から順次入力される。ついで、本体データは、タイミング調整回路３２６において、時間ｔ１から時間ｔ２まで、遅延量である３単位時間だけ遅延させられる。さらに、時間ｔ２において、書込回路３３４への書込が開始され、本体データの末尾まで順に書き込まれる。同様に、本体データの２番目のデータが時間（ｔ１＋１）のタイミングでタイミング調整回路３２６に入力され、３単位時間後の時間（ｔ１＋４）において、書込回路３３４に入力されることとなる。以後、同様に、順次、タイミング調整回路３２６、書込回路３３４に書き込まれていく。一方、本体データは、時間ｔ１において、パリティ生成回路３２８に順次先頭から入力される。ついで、８単位時間後の時間ｔ３において、パリティデータの先頭が書込回路３３４に出力される。以後、パリティデータに含まれる全てのデータが順次書き込まれる。この結果、書込回路３３４のブロック中に図示するように、本体データとパリティデータは、時間的に連続して書き込まれた状態となる。
【００７１】
このような態様をとることにより、ハンドシェイクすることなしに、本体データとパリティデータとが連結された状態で記憶装置に書き込まれることとなる。このため、記憶装置が大容量化されてもハード規模を増大させず、また、高速化への影響も低減することができる記憶装置を提供することができる。
【００７２】
以上、本実施形態によれば、パリティ生成回路３２８における遅延時間を相殺するように、本体データのタイミングを調整することによって、生成したパリティデータの先頭が本体データの末尾の後に書込タイミング上連続して書込回路３３４に出現させることができる。また、本体データとパリティデータが離れることなく、双方が連結した状態で記憶装置に書き込むことができる。また、タイミング調整回路３２６を本体データの処理経路中に設けることによって、パリティ生成回路３２８に余分な負荷を与えることなく、本体データとパリティデータとを正確に連結させることができる。また、記憶装置への書込時間を短くすることができる。また、パリティデータの生成に要する時間を考慮した値で、本体データを遅延させることによって、本体データとパリティデータをタイミングよく記憶装置に書き込むことができる。また、あらかじめ、遅延量に相当する個数の遅延素子３７０を設けることによって、ソフト的なハンドシェイク制御を必要としないで、自律的なタイミング調整ができる。また、余分なハードウェアを搭載する必要がなくなるので、低規模な半導体集積回路を実現できる。また、より高速に記憶システムのアクセス制御を実現することができる。
【００７３】
本実施形態において、遅延量は、パリティ生成回路３２８における処理時間から本体データの長さを減じたものとして計算するとして説明した。しかしながらこれに限らず、予め計算した遅延量を保持し、必要に応じて使用できるようにしてもよい。また、タイミング調整回路３２６の第３の構成例において、随時、遅延量決定部３５２において遅延量を決定するものとして説明した。しかしながらこれにかぎらず、予め生成した遅延量をソフト的に固定し、システムが起動されるごとに遅延量設定部３７８に設定されるようにしてもよい。また、遅延量をハード的に、電源、ＧＮＤによって固定してもよい。これらの場合であっても、前述した効果を得ることができる。
【００７４】
以上、本発明を実施形態をもとに説明した。この実施形態は例示であり、実施形態相互の組み合わせ、または、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【図面の簡単な説明】
【００７５】
【図１】本発明の実施形態に係る磁気ディスク装置の構成例を示す図である。
【図２】図１のＲ／Ｗチャネルの構成例を示す図である。
【図３】図２のＬＤＰＣ符号化部の構成例を示す図である。
【図４】図３のタイミング調整回路の第１の構成例を示す図である。
【図５】図３のタイミング調整回路の第２の構成例を示す図である。
【図６】図３のタイミング調整回路の第３の構成例を示す図である。
【図７】図３のタイミング調整回路とパリティ生成回路の動作を示すタイミングチャートの例を示す図である。
【符号の説明】
【００７６】
３１  ライトチャネル、  ３２  リードチャネル、  ３２０  ソフト出力検出部、  ３２６  タイミング調整回路、  ３２８  パリティ生成回路、  ３３４  書込回路、  ３７０  遅延素子。
【図１】
2007087534.tif 000003
【図２】
2007087534.tif 000004
【図３】
2007087534.tif 000005
【図４】
2007087534.tif 000006
【図５】
2007087534.tif 000007
【図６】
2007087534.tif 000008
【図７】
2007087534.tif 000009