(57)【特許請求の範囲】
【請求項１】
記録媒体に記録すべきデータをＬＤＰＣ（Low Density Parity Check）符号に符号化する符号化部と、
前記記録媒体から読み出されたＬＤＰＣ符号化データを復号して再生データを得る復号部と、
前記復号部による復号時に得られるブロックエラーフラグまたは反復復号回数をもとに記録エラーのブロックを判定する第１の判定部と、
前記第１の判定部の判定結果をもとにリードアフターライトの制御を行う制御部と、
前記ブロックエラーフラグまたは反復復号回数を再生データと対応付けて保持するメモリ部と、
前記メモリ部に保持された再生データである第１の再生データと同一のブロックのデータが前記記録媒体から再度読み出されて前記復号部により第２の再生データとして復号された場合に、前記メモリ部に保持された前記第１の再生データに対応する前記ブロックエラーフラグまたは前記反復復号回数と、前記第２の再生データの復号時に得られた前記ブロックエラーフラグまたは前記反復復号回数とを比較し、この比較結果をもとに前記メモリ部に保持された前記第１の再生データを前記第２の再生データで上書きするかどうかを判定する第２の判定部と
を具備することを特徴とする記録再生装置。
【請求項２】
請求項１に記載の記録再生装置であって、
前記第２の判定部は、少なくとも、前記第１の再生データに対応する前記ブロックエラーフラグの値がエラー有りの値で、前記第２の再生データに対応する前記ブロックエラーフラグの値がエラー無しの値である場合、もしくは、前記第２の再生データに対応する前記反復復号回数が前記第１の再生データに対応する前記反復復号回数より少ない場合、前記メモリ部に保持された前記第１の再生データを前記第２の再生データで上書きすることを判定することを特徴とする記録再生装置。
【請求項３】
データをＬＤＰＣ（Low Density Parity Check）符号に符号化し、
符号化されたデータを記録媒体に記録し、
復号部が、前記記録媒体から読み出されたＬＤＰＣ符号を復号し、
前記復号部による復号時に得られるブロックエラーフラグまたは反復復号回数をもとに記録エラーのブロックを判定し、この判定結果をもとにリードアフターライトの制御を行い、
前記ブロックエラーフラグまたは反復復号回数を再生データと対応付けてメモリ部に保持し、
前記メモリ部に前記リライトを通じて保持された再生データである第１の再生データと同一のブロックのデータが前記記録媒体から読み出されて前記復号部により第２の再生データとして復号された場合に、前記メモリ部に保持された前記第１の再生データに対応する前記ブロックエラーフラグまたは前記反復復号回数と、前記第２の再生データの復号時に得られた前記ブロックエラーフラグまたは前記反復復号回数とを比較し、この比較結果をもとに前記メモリ部に保持された前記第１の再生データを前記第２の再生データで上書きするかどうかを判定する
ことを特徴とする記録再生方法。
【請求項４】
請求項３に記載の記録再生方法であって、
判定するステップは、少なくとも、前記第１の再生データに対応する前記ブロックエラーフラグの値がエラー有りの値で、前記第２の再生データに対応する前記ブロックエラーフラグの値がエラー無しの値である場合、もしくは、前記第２の再生データに対応する前記反復復号回数が前記第１の再生データに対応する前記反復復号回数より少ない場合、前記メモリ部に保持された前記第１の再生データを前記第２の再生データで上書きすることを判定することを特徴とする記録再生方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、磁気記録媒体にデータを記録し、再生する記録再生装置および記録再生方法に関する。
【背景技術】
【０００２】
デジタルデータを磁気テープに記録／再生することのできるドライブ装置として、いわゆるテープストリーマドライブが知られている。このようなテープストリーマドライブは、メディアであるテープカセットのテープ長にもよるが、例えば数十〜数百ギガバイト程度の膨大な記録容量を有することが可能である。このため、コンピュータ本体のハードディスク等のメディアに記録されたデータをバックアップするなどの用途に広く利用されている。また、データサイズの大きい画像データ等の保存に利用する場合にも好適とされている。
【０００３】
このようなテープストリーマドライブでは、回転ドラムに所定のラップ角で磁気テープを巻装させた状態でテープを走行させるとともに、回転ドラムを回転させて、回転ドラム上の磁気ヘッドを用いてヘリカルスキャン方式で記録／再生走査を行なうことで高密度記録を可能にしている。従って周知のように、磁気テープ上には、その長手方向に対して所定の傾き角度を有するようにして形成されるトラックが連続するようにしてデータが記録されていくことになる。
【０００４】
また、テープストリーマドライブでは、記録時においてリードアフターライトという動作が行われており、磁気テープへのデータの記録が正常に行われたか否かについてブロック単位でモニタすることが行われている。例えば、磁気テープに書き込みを行った直後に書き込んだデータを読み込んで元のデータと比較し、元のデータと読み込んだデータが一致していない場合は書き込みに失敗したとみなして、書き込みをやり直すリライトを行うようにされる。これにより、記録媒体に部分的な欠陥個所を避けてデータを記録することができる（特許文献１参照）。
【特許文献１】特許３８２９７４１号
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、記録したデータを読み込んで得たデータと元のデータとを比較して記録エラーの検出を行うことは非効率であり、記録、再生の高速化や、テープストリーマドライブの小型化を図る上での障害となり得る。
【０００６】
また、近年、sum-productアルゴリズムによるＬＤＰＣ符号の復号法を、テープ状の磁気記録媒体に対する記録再生を行う装置でのデータ再生のようにリアルタイム性が要求されるシステムに用いることが検討されており、このようなＬＤＰＣ符号の復号器を用いたテープストリーマドライブに適合した記録エラー検出の方法が求められている。
【０００７】
本発明は、かかる実情に鑑み、ＬＤＰＣ符号の復号器を用いたシステムにとって好適で、リードアフターライトのための記録エラーのブロックの検出をより高速に行うことのできる記録再生装置及び記録再生方法を提供しようとするものである。
【課題を解決するための手段】
【０００８】
上記の課題を解決するために、本発明の記録再生装置は、記録媒体に記録すべきデータをＬＤＰＣ（Low Density Parity Check）符号に符号化する符号化部と、前記記録媒体から読み出されたＬＤＰＣ符号化データを復号して再生データを得る復号部と、前記復号部による復号時に得られるブロックエラーフラグまたは反復復号回数をもとに記録エラーのブロックを判定する第１の判定部と、前記第１の判定部の判定結果をもとにリードアフターライトの制御を行う制御部と、前記ブロックエラーフラグまたは反復復号回数を再生データと対応付けて保持するメモリ部と、前記メモリ部に保持された再生データである第１の再生データと同一のブロックのデータが前記記録媒体から再度読み出されて前記復号部により第２の再生データとして復号された場合に、前記メモリ部に保持された前記第１の再生データに対応する前記ブロックエラーフラグまたは前記反復復号回数と、前記第２の再生データの復号時に得られた前記ブロックエラーフラグまたは前記反復復号回数とを比較し、この比較結果をもとに前記メモリ部に保持された前記第１の再生データを前記第２の再生データで上書きするかどうかを判定する第２の判定部とを具備する。
【０００９】
前記第２の判定部は、少なくとも、前記第１の再生データに対応する前記ブロックエラーフラグの値がエラー有りの値で、前記第２の再生データに対応する前記ブロックエラーフラグの値がエラー無しの値である場合、もしくは、前記第２の再生データに対応する前記反復復号回数が前記第１の再生データに対応する前記反復復号回数より少ない場合、前記メモリ部に保持された前記第１の再生データを前記第２の再生データで上書きすることを判定することとしてもよい。
【００１０】
本発明によれば、ＬＤＰＣ符号の復号器を用いたシステムにとって好適で、リードアフターライトのための記録エラーのブロックの検出をより高速に行うことができる。
【００１２】
この発明によれば、ＬＤＰＣ復号において得られるエラーブロックフラグまたは反復回数に基づいて、今回のリライトされたブロックの再生データでメモリ部に既に保持されている同一ブロックの再生データを上書きするかどうかを判定することによって、リトライが発生しているデータに対して、最も良好なデータをメモリ部に再生データとして格納することができる。
【００１３】
本発明の別の観点に基づく記録再生方法は、データをＬＤＰＣ（Low Density Parity Check）符号に符号化し、符号化されたデータを記録媒体に記録し、復号部が、前記記録媒体から読み出されたＬＤＰＣ符号を復号し、前記復号部による復号時に得られるブロックエラーフラグまたは反復復号回数をもとに記録エラーのブロックを判定し、この判定結果をもとにリードアフターライトの制御を行い、前記ブロックエラーフラグまたは反復復号回数を再生データと対応付けてメモリ部に保持し、前記メモリ部に前記リライトを通じて保持された再生データである第１の再生データと同一のブロックのデータが前記記録媒体から読み出されて前記復号部により第２の再生データとして復号された場合に、前記メモリ部に保持された前記第１の再生データに対応する前記ブロックエラーフラグまたは前記反復復号回数と、前記第２の再生データの復号時に得られた前記ブロックエラーフラグまたは前記反復復号回数とを比較し、この比較結果をもとに前記メモリ部に保持された前記第１の再生データを前記第２の再生データで上書きするかどうかを判定する。
【００１４】
これにより、ＬＤＰＣ符号の復号器を用いたシステムにとって好適で、リードアフターライトのための記録エラーのブロックの検出をより高速に行うことができる。
【００１６】
これにより、ＬＤＰＣ復号において得られるエラーブロックフラグまたは反復回数に基づいて、今回のリライトされたブロックの再生データでメモリ部に既に保持されている同一ブロックの再生データを上書きするかどうかを判定することによって、リトライが発生しているデータに対して、最も良好なデータをメモリ部に再生データとして格納することができる。
【発明の効果】
【００１７】
本発明によれば、ＬＤＰＣ符号の復号器を用いたシステムにとって好適で、リードアフターライトのための記録エラーのブロックの検出をより高速に行うことができる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の実施の形態を図面を用いて詳細に説明する。
図１は、本発明の実施の形態に対応するテープストリーマドライブの構成例を示している。
【００１９】
このテープストリーマドライブ１０は、ここでは図示していないテープカセットの磁気テープ３に対して、ヘリカルスキャン方式により記録／再生を行うようにされている。この図において回転ドラム１１には、例えば４つの記録ヘッドＷ１，Ｗ２，Ｗ３，Ｗ４及び４つの再生ヘッドＲ１，Ｒ２，Ｒ３，Ｒ４が設けられる。記録ヘッドＷ１，Ｗ２，Ｗ３，Ｗ４は互いにアジマス角の異なる２つのギャップが究めて近接して配置される構造となっている。再生ヘッドＲ１，Ｒ２，Ｒ３，Ｒ４もそれぞれ所定のアジマス角とされる。
【００２０】
回転ドラム１１は図示しないドラムモータにより回転される。回転ドラム１１にはテープカセットから引き出された磁気テープ３が巻き付けられる。また、磁気テープ３は、図示しないキャプスタンモータ及び図示しないピンチローラにより順方向または逆方向に送られる。
【００２１】
このテープストリーマドライブ１０においては、データの入出力にＳＣＳＩインタフェース２０が用いられている。例えばデータ記録時にはホストコンピュータ４０から、固定長のレコード（ｒｅｃｏｒｄ）という伝送データ単位によりＳＣＳＩインタフェース２０を介して逐次データが入力され、ＳＣＳＩバッファコントローラ２６を介して圧縮／伸長回路２１に供給される。ＳＣＳＩバッファコントローラ２６はＳＣＳＩインタフェース２０のデータ転送を制御するようにされている。ＳＣＳＩバッファメモリ２７はＳＣＳＩインタフェース２０の転送速度を得るために、ＳＣＳＩバッファコントローラ２６に対応して備えられるバッファ手段とされる。
【００２２】
圧縮／伸長回路２１では、入力されたデータについて必要があれば、所定方式によって圧縮処理を施すようにされる。圧縮／伸長回路２１の出力は、ＩＦ／ＥＣＣコントローラ２２に供給されるが、ＩＦ／ＥＣＣコントローラ２２においてはその制御動作によって圧縮／伸長回路２１の出力をバッファメモリ２３に一旦蓄積する。このバッファメモリ２３に蓄積されたデータはＩＦ／ＥＣＣコントローラ２２の制御によって、最終的にグループ（Ｇｒｏｕｐ）という磁気テープの４０トラック分に相当する固定長の単位のデータに対して誤り訂正コードが付加された後、磁気記録に適合するように変調処理が施される。
【００２３】
変調されたデータは符号化／復号回路１１に供給される。符号化／復号回路１１は、ＬＤＰＣの符号化及びその復号を行う回路である。すなわち、変調されたデータは符号化／復号回路１１によってＬＤＰＣの符号長Ｎ分のビット数に符号化される。このＬＤＰＣ符号化は、例えば、パリティ符号を定義する検査行列Ｈから、ＧＨt ＝０を満足する生成行列Ｇを求め、ヘッダが付加されたデータに生成行列Ｇを乗じることなどによって行われる。ここで、パリティ符号を定義する検査行列ＨはＭ行×Ｎ列の"０"と"１"の要素からなる行列で、かつ疎なものであることを特徴とするものである。疎な行列とは、行列の要素"１"の個数が非常に少なく構成されるものである。符号化により得られるビット数はＬＤＰＣの符号長Ｎであり、このＬＤＰＣ符号長Ｎ分のビット列を1ブロックとする。
【００２４】
符号化／復号回路１１の出力はリード／ライトチャンネル回路１２に供給される。リード／ライトチャンネル回路１２は、符号化／復号回路１１によって得られたブロックの先頭にＳＹＮＣパターンを付加してライトアンプ１３に供給する。ライトアンプ１３はリード／ライトチャンネル回路１２より出力されたデータに対して増幅、記録イコライジング等の処理を施して記録信号を生成し、各チャンネルの記録ヘッドＷ１，Ｗ２，Ｗ３，Ｗ４に供給する。これにより記録ヘッドＷ１，Ｗ２，Ｗ３，Ｗ４から磁気テープ３に対するデータの記録が行われることになる。
【００２５】
図６に１ブロックの記録ビット列の構成を示す。このように１ブロックの記録ビット列の先頭にはブロック検出のためのＳＹＮＣパターンが付加され、このＳＹＮＣパターンの後に、ヘッダが付加されたユーザデータを符号化した１ブロック分のビット列である符号語が付加される。符号語は、ヘッダが付加されたユーザデータのメッセージ・ビット列と検査ビット列とで構成される。
【００２６】
次に、データ再生時の動作について説明する。磁気テープ３の記録データが再生ヘッドＲ１，Ｒ２，Ｒ３，Ｒ４によりＲＦ再生信号として読み出され、その再生出力はリードアンプ１４で増幅され、リード／ライトチャンネル回路１２に供給される。リード／ライトチャンネル回路１２は、リードアンプ１４の出力に対して、Ａ／Ｄ変換、位相同期のための等化処理、再生クロック生成、データ化などを行い、符号化／復号回路１１に供給する。符号化／復号回路１１は、リード／ライトチャンネル回路１２から出力されたデータに対するＬＤＰＣ復号を行って記録データを復元する。
【００２７】
符号化／復号回路１１の出力はＩＦ／ＥＣＣコントローラ２２に供給される。ＩＦ／ＥＣＣコントローラ２２では、まず、誤り訂正処理等が行われる。誤り訂正処理の結果はバッファメモリ２３に一時蓄積され、所定の時点で読み出されて圧縮／伸長回路２１に供給される。圧縮／伸長回路２１では、システムコントローラ１５の判断に基づいて、記録時に圧縮／伸長回路２１により圧縮が施されたデータであればここでデータ伸長処理を行い、非圧縮データであればデータ伸長処理を行わずにそのままパスして出力される。圧縮／伸長回路２１の出力データはＳＣＳＩバッファコントローラ２６、ＳＣＳＩインタフェース２０を介して再生データとしてホストコンピュータ４０に出力される。
【００２８】
Ｓ−ＲＡＭ２４，フラッシュＲＯＭ２５は、システムコントローラ１５が各種処理に用いるデータが記憶される。例えばフラッシュＲＯＭ２５には制御に用いる定数等が記憶される。またＳ−ＲＡＭ２４はワークメモリとして用いられたり、各種フラグデータなどの記憶や演算処理などに用いられるメモリである。また、フラッシュＲＯＭ２５には、システムコントローラ１５が実行すべきプログラムや、その他ファームウエアとしての各種データも記憶されている。
【００２９】
なお、Ｓ−ＲＡＭ２４，フラッシュＲＯＭ２５は、システムコントローラ１５を構成するマイクロコンピュータの内部メモリとして構成してもよく、またバッファメモリ２３の領域の一部をワークメモリとして用いる構成としてもよい。
【００３０】
図１に示すように、テープストリーマドライブ１０とホストコンピュータ４０間は上記のようにＳＣＳＩインタフェース２０を用いて情報の相互伝送が行われるが、システムコントローラ１５に対してはホストコンピュータ４０がＳＣＳＩコマンドを用いて各種の通信を行うことになる。なお、例えばＩＥＥＥ１３９４インタフェースなどをはじめ、ＳＣＳＩ以外のデータインタフェースが採用されても構わない。
【００３１】
図２は、このテープストリーマドライブ１０によって磁気テープ３に記録される各トラックＴＫ内のデータフォーマットを示す図である。１つのトラックＴＫは、複数のブロックＢＫの集合から成る。このブロックＢＫは所定のデータサイズによる固定長とされる。
【００３２】
図３はブロックのフォーマットを示す図である。ブロックは、先頭よりＳＹＮＣエリア、ＩＤエリア、ＩＤパリティエリア、メインデータエリアで構成される。ＩＤエリアには、リライトに備えてバッファメモリ２３に保持されている当該ブロックの記憶場所であるアドレス情報などが含まれている。
【００３３】
ところで、テープストリーマドライブ１０のシステムでは、リードアフターライト（ＲＡＷ：Read After Write）といわれる動作が実行される。ここで参考として、従来におけるＲＡＷの動作例を図４により説明する。
【００３４】
図４は、同一とされるグループ内においてＲＡＷが行われる場合を模式的に示している。ここでフレームとは、連続する複数のトラックにより形成されるもので、ここでは、隣接する＋アジマストラック（＋Az）と−アジマストラック（−Az）の２トラックにより１フレームが形成されているものとする。
【００３５】
そして、ここで図示するようにして、フレーム６を記録した時点で、フレーム６の＋アジマストラック（＋Az）において一部記録エラーが発生したとする。これに応じて、ＲＡＷが実行されるのではあるが、テープストリーマドライブ側が読み出しを行って記録エラーを検出し、リライトを開始するまでには或る程度の期間を要する。このため、リライトは、記録エラーが発生したトラック以降においても或る程度記録が進行した後において実行されることになる。この図では、フレーム６にて記録エラーが発生した後において、フレーム９まで記録し終えたところで、リライトが開始されている。そして、この場合のリライト動作としては、上記フレーム９に続けて、改めてフレーム６からトラック単位でデータを記録し直していくことになる。この際、リードアフターライトにより、記録が成功したことが確認されるまで、リライトは継続する。記録が成功したブロックは、ブロックのＩＤエリアに含まれるアドレス情報をもとに、バッファメモリ２３上の該当する番地のデータに対応づけられ、このデータのリライトが不要であるとみなされる。
【００３６】
本実施形態では、リードアフターライトにおいて、記録エラーの発生を、ＬＤＰＣ符号の復号時に得られる情報に基づいて検出することとしている。
【００３７】
そこで、先にＬＤＰＣ復号器の詳細に説明する。
【００３８】
図５は、符号化／復号回路１１内のＬＤＰＣ復号部４１を含む再生系の構成を示す図である。同図に示すように、リードアンプ１４の出力であるアナログ再生信号は、リード／ライトチャンネル回路１２内のＡＤコンバータ３１にてデジタル値に変換された後、リード／ライトチャンネル回路１２内のＨＰＦ（High Pass Filter）３２にて後段の処理にとって不要な低周波成分が除去される。ＨＰＦ３２の出力である再生信号は、リード／ライトチャンネル回路１２内のプレフィルタ３３にて、位相同期のための等化処理が施された後、リード／ライトチャンネル回路１２内のデジタル位相同期回路３４に入力され、デジタル位相同期回路３４にて、位相同期のとれたデータ系列とされる。
【００３９】
デジタル位相同期回路３４の出力は、ＬＤＰＣ復号部４１内の適応型等化フィルタ３５に入力される。適応型等化フィルタ３５は、後段の軟判定検出器３６から出力される誤差信号をもとに、自身のフィルタのタップ係数を最適な値に更新して、入力信号を所定の目標等化特性に等化する。
【００４０】
軟判定検出器３６には、例えば、事後確率検出器等が用いられる。事後確率検出器は、入力値ｙを基にビット毎の事後確率Ｐ０＝Ｐ（ｘ＝０｜Ｙ＝ｙ），Ｐ１＝Ｐ（ｘ＝１｜Ｙ＝ｙ）を計算し、その対数尤度比（ＬＬＲ：Log-Likelihood Ratio）λ＝ｌｏｇ（Ｐ１／Ｐ０）を出力する。ここでｘは記録ビットであり、例えば、"０"か"１"のいずれかの値をとる。
【００４１】
なお、事後確率検出器は、トレリス線図を用いて前後複数の入力値からＬＬＲを求めるものであってもよい。トレリス線図とは、入力されるビット系列に従って、符号器が状態を変化させていく過程で生成する符号列を表すものである。
【００４２】
ＬＤＰＣ復号部４１内のＳＹＮＣ検出器３７は、軟判定検出器３６によって判定されたＬＬＲからブロックの先頭のＳＹＮＣパターンを検出して、ＬＤＰＣデコーダ３８に通知する。
【００４３】
ＬＤＰＣ復号部４１内のＬＤＰＣデコーダ３８は、ＳＹＮＣ検出器３７から得たＳＹＮＣパターンの検出タイミングに従ってブロック単位のＬＬＲを入力し、ＬＤＰＣ符号の反復復号を行う回路である。ＬＤＰＣデコーダ３８は、チャンネル毎の反復復号終了時の反復回数（反復復号回数）をデータ処理部３９に出力する。
【００４４】
データ処理部３０は、ＬＤＰＣデコーダ３８にて得られた推定符号語からチャンネル毎のデータを復元し、これのデータを連結して記録データを復元する処理や、ＬＤＰＣデコーダ３８からの反復回数およびブロックエラーフラグを処理する回路である。
【００４５】
次に、ＬＤＰＣデコーダ３８によるＬＤＰＣ符号の反復復号の詳細を説明する。この実施形態では、sum-productアルゴリズムによりＬＤＰＣ符号の反復復号を行うものとする。sum-productアルゴリズムでは、事後確率に関する計算を「変数ノード処理」と「チェックノード処理」と呼ばれる２つの処理に分け、その間で反復処理を行うことで、推定精度の高いビット系列を判定する。
【００４６】
図７はＬＤＰＣ符号のパリティ検査行列Ｈのノード表現を示す図である。ＬＤＰＣのパリティ検査行列Ｈ（Ｎ行×Ｍ列）は、Ｎ個の変数ノード、Ｍ個のチェックノード、枝（ｅｄｇｅ）で表現される。枝は、パリティ検査行列Ｈの第ｍ行・第ｎ列の要素ｈｍｎが"１"であるとき変数ノードｎとチェックノードｍとを結ぶものである。
【００４７】
図８はＬＤＰＣデコーダ３８によるＬＤＰＣ符号の反復復号のフローチャートである。ＬＤＰＣデコーダ３８は、ＳＹＮＣ検出器３７からのＳＹＮＣ検出信号をもとにブロックの先頭を検出し、図９に示すように、１ブロック分のビット毎の対数尤度比（ＬＬＲ）であるＬ１，Ｌ２，…，ＬｎをＮ個の変数ノードに順にセットする（ステップＳ１０１）。
【００４８】
次に、ＬＤＰＣデコーダ３８は、チェックノードから変数ノードへのメッセージＡｍｎおよび反復回数Ｒをそれぞれ初期化し（ステップＳ１０２）、さらに反復復号の反復有限回数ｕをセットする（ステップＳ１０３）。
【００４９】
この後、ステップＳ１０４、ステップＳ１０５、ステップＳ１０６、ステップＳ１０７をスルーして、反復回数Ｒをインクリメントした後（ステップＳ１０８）、初回の反復処理を次のように行う。
【００５０】
ＬＤＰＣデコーダ３８は、変数ノード処理として、変数ノードｎからチェックノードｍに与えるメッセージＢｍｎを次式により計算する（ステップＳ１０９）。図１０はメッセージＢｍｎの計算方法を示す図である。
【００５１】
【数１】
0004946844.tif 000002
【００５２】
ここで、Ｂ（ｎ）＼ｍは変数ノードｎにつながるチェックノードの集合Ｂ（ｎ）からチェックノードｍを除いたものであり、図１０においてｍ‘と表記する。図１０のＡｍ’ｎは、そのチェックノードｍ‘で計算された変数ノートｎへのメッセージである。メッセージＡｍ’ｎの初期値は０であるから、変数ノードｎからチェックノードｍへの初回のメッセージＢｍｎはＬｎとなる。
【００５３】
次に、ＬＤＰＣデコーダ３８は、チェックノードｍから変数ノードｎへのメッセージＡｍｎを次式により計算する（ステップＳ１１０）。図１１はメッセージＡｍｎの計算方法を示す図である。
【００５４】
【数２】
0004946844.tif 000003
【００５５】
ここで、関数ｆ（ｘ）はGallagerの関数で、ｆ（ｘ）＝ｌｎ（（ｅｘｐ（ｘ）＋１）／（ｅｘｐ（ｘ）−１））である。Ａ（ｍ）＼ｎは、チェックノードｍにつながる変数ノードの集合Ａ（ｍ）から変数ノードｎを除いたものであり、ｎ‘と表記する。図１１中のＢｍｎ’は、その変数ノードｎ‘で計算されたチェックノートｍへのメッセージである。
【００５６】
次に、ＬＤＰＣデコーダ３８は、ステップＳ１０４に戻って、対数事後確率比の近似値Ｋｎの計算を次式により行う。
【００５７】
【数３】
0004946844.tif 000004
【００５８】
なお、ＬＳＩに実装する場合、メッセージＡｍｎ、メッセージＢｍｎ、関数ｆ（ｘ）の計算には近似式が使われる。
【００５９】
ＬＤＰＣデコーダ３８は、上記のメッセージＡｍｎ、メッセージＢｍｎ、対数事後確率比の近似値Ｋｎの各計算が終了したところで、対数事後確率比の近似値Ｋｎをもとに推定復号語Ｃ'ｎを求める（ステップＳ１０５）。ここで、Ｃ'はＣサーカムフレックス の代用表記である。この推定復号語Ｃ'ｎの判定は次のように行われる。ＬＤＰＣデコーダ３８は、対数事後確率比の近似値Ｋｎが０以上ならば推定復号語Ｃ'ｎを"０"と判定し、対数事後確率比の近似値Ｋｎが０未満ならば推定復号語Ｃ'ｎを"１"と判定する。
【００６０】
次に、ＬＤＰＣデコーダ３８は、今回得られた推定復号語Ｃ'ｎに関して、Ｃ'ｎＨt ＝０のパリティ検査条件を満たすかどうかを判定する（ステップＳ１０６）。ここで、ＨtはＬＤＰＣのパリティ検査行列Ｈの転置行列である。推定復号語Ｃ'ｎがパリティ検査条件を満たすならば、ＬＤＰＣデコーダ３８は、今回得られた推定復号語Ｃ'ｎをデータ処理部３９に出力するとともに、反復復号終了時の反復回数Ｒをデータ処理部３９に出力して復号を終了する（ステップＳ１１１）。
【００６１】
ここで、メッセージＢｍｎ、メッセージＡｍｎ、対数事後確率比の近似値Ｋｎ、推定復号語Ｃ'ｎを計算し、この推定復号語Ｃ'ｎがパリティ検査条件を満たすかどうかを判定するまでの処理を「１回の反復処理」と呼ぶ。この反復処理の回数が反復回数Ｒである。
【００６２】
ＬＤＰＣデコーダ３８は、ステップＳ１０６での判定の結果、推定復号語Ｃ'ｎがパリティ検査条件を満たす場合には、今回得られた推定復号語Ｃ'ｎを復号結果としてデータ処理部３９に出力して反復復号を終了することとしたが、推定復号語Ｃ'ｎがパリティ検査条件を満たさない場合、現在の反復回数Ｒが反復有限回数ｕに達したかどうかを判定する（ステップＳ１０７）。現在の反復回数Ｒが反復有限回数ｕに達していない場合には、ＬＤＰＣデコーダ３８は、反復回数Ｒをインクリメントした後（ステップＳ１０８）、次の反復処理を行う。
【００６３】
以後、ＬＤＰＣデコーダ３８は、生成された推定復号語Ｃ'ｎがパリティ検査条件を満たすことが判定されるか、あるいは、現在の反復回数Ｒが反復有限回数ｕに達する直前まで、反復処理を繰り返す。ＬＤＰＣデコーダ３８は、ステップＳ１０７で現在の反復回数Ｒが反復有限回数ｕに達したことを判定した場合、つまり反復処理をｕ回繰り返しても推定復号語Ｃ'ｎがパリティ検査条件を満たすことがなかった場合には、現在処理中のブロックをエラーブロックとして復号処理を強制終了し、エラーブロックフラグをデータ処理部３９に出力する（ステップＳ１１２）。
【００６４】
図１２は、ＬＤＰＣデコーダ３８のタイミングチャートである。
軟判定検出器３６（事後確率検出器）から出力された1ブロック分のＬＬＲをもとにＬＤＰＣ符号の反復復号を始める。ＬＤＰＣデコーディング信号は、ＬＤＰＣデコーダ３８内部の状態を表す信号で、ＬＤＰＣデコーダ３８が反復復号をしている間は"１"の値をとり、反復復号を終了すると"０"になる。反復回数はブロックによって異なるので、ＬＤＰＣデコーディング信号が"１"の区間の長さはブロックによって異なるが、反復復号が早く終了しても、推定復号語Ｃ'ｎの出力を開始するタイミングは同じになるように、ＬＤＰＣデコーダ３８内部で推定復号語Ｃ'ｎを保持して待機する。ブロックエラーフラグは、反復有限回数ｕの反復復号をした後も推定復号語Ｃ'ｎがパリティ検査条件を満たさないブロックに対して"１"になる信号で、この例では、ブロック３が該当する。反復回数は、それぞれのブロックの復号に要した反復回数である。この例では、ブロック１は３回、ブロック２は1回、ブロック３はｕ回、ブロック４は2回、ブロック５は0回である。一般に、再生信号の品質が悪く、ＳＮ比が小さいときには、反復回数が多くなる。
【００６５】
次に、ＬＤＰＣ符号の復号時に得られるエラーブロックフラグおよび反復回数に基づいて記録エラーの発生を検出してリードアフターライトの制御を行うときの動作を説明する。
【００６６】
図１３は、ＬＤＰＣ符号の復号時に得られるエラーブロックフラグおよび反復回数に基づいて記録エラーの発生を検出してリードアフターライトの制御を行うための構成を示すブロック図である。データ処理部３９内のリライト判定モジュール４４は、リードアフターライト時にＬＤＰＣ復号部４１より出力されたエラーブロックフラグおよび反復回数に基づいて記録エラーの発生を検出した場合、記録モジュール４３に対して、その記録エラーとなったデータをリライトするように制御する。ここで、エラーブロックフラグおよび反復回数に基づく記録エラーの発生検出は次のように行われる。
【００６７】
図１４は、エラーブロックフラグおよび反復回数に基づく記録エラーの発生検出のフローチャートである。ここで、ldpc_errorはリードアフターライト時のブロックエラーフラグ、ldpc_countはリードアフターライト時のＬＤＰＣ反復回数、       ldpc_count_threshはリライト用のＬＤＰＣ反復回数閾値である。
【００６８】
記録モジュール４３は、リライト判定モジュール４４から、リライトが不要であることを通知されない限り、リライトを継続して実行する。リライト判定モジュール４４は、まず、ldpc_errorの値を調べ（ステップＳ２０１）、この値が"１"である場合には、記録エラーが発生したことを判定してリライトが不要であることを記録モジュールに通知しない（ステップＳ２０２）。リライト判定モジュール４４は、ldpc_errorの値が"１"でないことを判定した場合には、次に、ldpc_countの値がldpc_count_threshを超えているかどうかを判定し（ステップＳ２０３）、超えているならば、記録エラーが発生したことを判定して、リライトが不要であることを記録モジュールに通知しない（ステップＳ２０２）。また、超えていない場合には、記録エラーが発生していないことを判定してブロックのＩＤエリアに書かれているアドレスとともに、リライトが不要であることを記録モジュール４３に通知する（ステップＳ２０４）。
【００６９】
以上説明したように、この実施形態によれば、ＬＤＰＣ復号において得られるエラーブロックフラグおよび反復回数に基づいて、リードアフターライト時のリライトの必要の有無を判定することによって、再生可能な記録状態を保証できる。また、不要なリライトを回避できることで、記録の効率を向上させることができる。
【００７０】
なお、この実施形態では、エラーブロックフラグおよび反復回数の両方に基づいて記録エラーの発生を検出してリードアフターライトの制御を行うこととしたが、エラーブロックフラグまたは反復回数のいずれかに基づいてリードアフターライトの制御を行うこととしてもよい。
【００７１】
（第２の実施形態）
先の実施形態では、リードアフターライト時のリライトの必要の有無をＬＤＰＣ復号において得られるエラーブロックフラグおよび反復回数に基づいて判定することとしたが、データ再生時に過去のリライトによりバッファメモリ２３に既に再生データが保持されているブロックと同一のブロックのデータが再度読み出された場合に、エラーブロックフラグおよび反復回数をもとに、今回のリライトされたブロックの再生データでバッファメモリ２３上の同一のブロックの再生データを上書きするかどうかを判定するようにしてもよい。また、この機能を第１の実施形態に付加してもよい。
【００７２】
図１５は、ＬＤＰＣ符号の復号時に得られるエラーブロックフラグおよび反復回数に基づいてバッファメモリ２３の上書きを制御するための構成を示すブロック図である。データ処理部３９内の上書き判定モジュール４５は、再生されたブロックのＬＤＰＣ復号時に得られたブロックエラーフラグおよびＬＤＰＣ反復回数を、再生されたデータとともに、そのブロックのＩＤエリアに書かれたアドレスの情報をもとに、バッファメモリ２３の該当するアドレスに書き込む。このとき、既にバッファメモリ２３に同一ブロックの再生データが保持されているならば、上書き判定モジュール４５は、今回の再生時に得られたエラーブロックフラグおよび反復回数と、既にバッファメモリ２３に保持されている前回再生時のエラーブロックフラグおよび反復回数とに基づいて、今回のリライトされたブロックの再生データでバッファメモリ２３上に保持されている同一ブロックの再生データを上書きするかどうかを判定する。エラーブロックフラグおよび反復回数に基づく上書きの要否判定は次のように行われる。
【００７３】
図１６は、エラーブロックフラグおよび反復回数に基づく上書きの要否判定のフローチャートである。ここで、ldpc_errorは今回再生時のＬＤＰＣブロックエラーフラグ、ldpc_countは今回再生時のＬＤＰＣ反復回数、prev_ldpc_errorは前回再生時のＬＤＰＣブロックエラーフラグ、prev_ldpc_countは前回再生時のＬＤＰＣ反復回数である。
【００７４】
上書き判定モジュール４５は、ldpc_errorの値が"０"で、かつprev_ldpc_errorの値が"１"という第１の条件を満たしているかどうかを判定する（ステップＳ３０１）。第１の条件を満たす場合、上書き判定モジュール４５は、今回のリライトされたブロックの再生データでバッファメモリ２３上に保持されている同一ブロックの再生データを上書きするように制御を行う（ステップＳ３０２）。第１の条件を満たしていない場合、上書き判定モジュール４５は、次に、ldpc_errorの値が"１"で、かつprev_ldpc_errorの値が"０"という第２の条件を満たしているかどうかを判定する（ステップＳ３０３）。この第２の条件を満たす場合、上書き判定モジュール４５は上書きを実行しない（ステップＳ３０４）。
【００７５】
第２の条件を満たしていない場合、上書き判定モジュール４５は、次に、ldpc_countがprev_ldpc_count未満であるという第３の条件を満たしているかを判定する（ステップＳ３０５）。第３の条件を満たしている場合、上書き判定モジュール４５は、今回のリライトされたブロックの再生データでバッファメモリ２３上に保持されている同一ブロックの再生データを上書きするように制御を行う（ステップＳ３０２）。第３の条件を満たしていない場合、上書き判定モジュール４５は、ldpc_count が prev_ldpc_countを超えているという第４の条件を満たしているかを判定する（ステップＳ３０６）。第４の条件を満たしていれば、上書き判定モジュール４５は上書きを実行しない（ステップＳ３０４）。第４の条件を満たしていなければ、今回のリライトされたブロックの再生データでバッファメモリ２３上に保持されている同一ブロックの再生データを上書きするように制御を行う（ステップＳ３０２）。
【００７６】
以上説明したように、本実施形態によれば、ＬＤＰＣ復号において得られるエラーブロックフラグおよび反復回数に基づいて、過去のリライトに起因して再度後から再生されたデータでバッファメモリ２３に既に保持されている同一ブロックのデータを上書きするかどうかを判定することによって、リライトが発生しているブロックのデータに対して、最も良好なデータをバッファメモリ２３に再生データとして格納することができる。
【００７７】
なお、この実施形態では、、今回の再生時に得られたエラーブロックフラグおよび反復回数と、既にバッファメモリ２３に保持されている前回再生時のエラーブロックフラグおよび反復回数とに基づいて、今回のリライトされたブロックの再生データでバッファメモリ２３上に保持されている同一ブロックの再生データを上書きするかどうかを判定することとしたが、エラーブロックフラグまたは反復回数のいずれかに基づいて制御するようにしてもよい。
【００７８】
ノントラック再生では、磁気テープ上の一本のトラックが異なるタイミングで複数回スキャンされるので、各スキャン毎のエラーブロックフラグおよび反復回数に基づいて、リライトされたデータであるか否かにかかわらず、最良の再生データでの上書きを行うことが可能である。
【００７９】
本発明は、上述の実施形態にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々更新を加え得ることは勿論である。
【図面の簡単な説明】
【００８０】
【図１】本発明の実施の形態に対応するテープストリーマドライブの構成例を示している。
【図２】テープストリーマドライブによって磁気テープ３に記録される各トラック内のデータフォーマットを示す図である。
【図３】ブロックのフォーマットを示す図である。
【図４】リードアフターライトの動作を示す図である。
【図５】ＬＤＰＣ復号部を含む再生系の構成を示す図である。
【図６】１ブロックの記録ビット列の構成を示す。
【図７】ＬＤＰＣ符号のパリティ検査行列Ｈのノード表現を示す図である。
【図８】ＬＤＰＣデコーダによるＬＤＰＣ符号の反復復号のフローチャートである。
【図９】１ブロック分のビット毎の対数尤度比（ＬＬＲ）を変数ノードにセットした図である。
【図１０】メッセージＢｍｎの計算方法を示す図である。
【図１１】メッセージＡｍｎの計算方法を示す図である。
【図１２】ＬＤＰＣデコーダのタイミングチャートである。
【図１３】ＬＤＰＣ符号の復号時に得られるエラーブロックフラグおよび反復回数に基づいて記録エラーの発生を検出してリードアフターライトの制御を行うための構成を示すブロック図である。
【図１４】図１３の制御のフローチャートである。
【図１５】ＬＤＰＣ符号の復号時に得られるエラーブロックフラグおよび反復回数に基づいてバッファメモリの上書きを制御するための構成を示すブロック図である。
【図１６】図１５の制御のフローチャートである。
【符号の説明】
【００８１】
２３    バッファメモリ
３８    ＬＤＰＣデコーダ
４１    ＬＤＰＣ復号部
４３    記録モジュール
４４    リライト判定モジュール
４５    上書き判定モジュール
【図１】
0004946844.tif 000005
【図２】
0004946844.tif 000006
【図３】
0004946844.tif 000007
【図４】
0004946844.tif 000008
【図５】
0004946844.tif 000009
【図６】
0004946844.tif 000010
【図７】
0004946844.tif 000011
【図８】
0004946844.tif 000012
【図９】
0004946844.tif 000013
【図１０】
0004946844.tif 000014
【図１１】
0004946844.tif 000015
【図１２】
0004946844.tif 000016
【図１３】
0004946844.tif 000017
【図１４】
0004946844.tif 000018
【図１５】
0004946844.tif 000019
【図１６】
0004946844.tif 000020