(57)【要約】  【課題】  ランダムエラーに対し高い訂正能力を選択しても、検出能力を超える長さのバーストエラーに対する誤訂正の確率が上昇しないようにする。  【解決手段】  行方向のＣ１符号と列方向のＣ２符号とからなる積符号ブロックにおける誤りを訂正するための装置を提供する。まず、Ｃ１デコーダが、Ｃ１符号における偶数番目のバイトからなる偶数Ｃ１と、Ｃ１符号における奇数番目のバイトからなる奇数Ｃ１の各々に対しＣ１訂正を行う。例えば、Ｃ１符号の最小ハミング距離を７とすると、Ｃ１訂正は、３バイト訂正まで行われる。次に、Ｃ２デコーダは、偶数Ｃ１及び奇数Ｃ１に対するＣ１訂正の結果のいずれかが訂正不能の場合、一方が３バイト訂正で他方が訂正不能又は３バイト訂正の場合に、Ｃ２訂正で消失訂正を行う。【特許請求の範囲】
【請求項１】
第１の方向の第１のバイト列と第２の方向の第２のバイト列とを含む積符号ブロックにおける誤りを訂正するための装置であって、
前記第１のバイト列における偶数番目のバイトからなる第１の部分列と、前記第１のバイト列における奇数番目のバイトからなる第２の部分列の各々における誤りを訂正する第１のデコーダと、
前記第１の部分列における訂正の第１の度合いと、前記第２の部分列における訂正の第２の度合いとの組み合わせに応じて、前記第２のバイト列を訂正する第２のデコーダと
を含む、装置。
【請求項２】
前記第２のデコーダは、前記第１の度合いと前記第２の度合いのうち、一方が所定のレベル以上であり、他方が訂正不能である場合に、前記第１のバイト列の位置を消失位置とした上で、前記第２のバイト列を訂正する、請求項１記載の装置。
【請求項３】
前記第１のバイト列の最小ハミング距離は７であり、前記所定のレベルは３バイト訂正である、請求項２記載の装置。
【請求項４】
前記第２のデコーダは、前記第１の度合いと前記第２の度合いのうち、一方が第１のレベル以上であり、他方が第２のレベル以上である場合に、前記第１のバイト列の位置を消失位置とした上で、前記第２のバイト列を訂正する、請求項１記載の装置。
【請求項５】
前記第１のバイト列の最小ハミング距離は７であり、前記第１のレベル及び前記第２のレベルはいずれも３バイト訂正である、請求項４記載の装置。
【請求項６】
テープ媒体に記録されたデータを読み出すヘッドと、
前記ヘッドにより読み出されたデータをメモリ上の所定の位置に配置することにより、前記積符号ブロックを生成する読込みチャネルと
を更に含む、請求項１記載の装置。
【請求項７】
第１の方向の第１の符号列と第２の方向の第２の符号列とを含む積符号ブロックにおける誤りを訂正するための装置であって、
前記第１の符号列を構成する複数の部分列の各々における誤りを訂正する第１のデコーダと、
前記複数の部分列における訂正度合いの組み合わせに応じて、前記第２の符号列を訂正する第２のデコーダと
を含む、装置。
【請求項８】
前記第２のデコーダは、前記複数の部分列のうちの一の部分列における訂正度合いが所定のレベル以上である場合に、他の部分列における訂正度合いが訂正不能であれば、前記第１の符号列の位置を消失位置とした上で、前記第２の符号列を訂正する、請求項７記載の装置。
【請求項９】
前記第２のデコーダは、前記複数の部分列のうちの一の部分列における訂正度合いが所定のレベル以上である場合に、他の部分列における訂正度合いも当該レベル以上であれば、前記第１の符号列の位置を消失位置とした上で、前記第２の符号列を訂正する、請求項７記載の装置。
【請求項１０】
前記複数の部分列の各々は、前記第１の符号列に散在する断片を集めて構成される、請求項７記載の装置。
【請求項１１】
第１の方向の第１の符号列と第２の方向の第２の符号列とを含む積符号ブロックにおける誤訂正を認識する方法であって、
前記第１の符号列を構成する複数の部分列の各々における誤りを訂正するステップと、  前記複数の部分列における訂正度合いを記憶するステップと、
前記複数の部分列のうちの一の部分列について記憶された訂正度合いが所定のレベル以上である場合に、前記複数の部分列のうちの他の部分列について記憶された訂正度合いを参照することにより、前記第１の符号列が誤って訂正されたかどうかを判定するステップと
を含む、方法。
【請求項１２】
前記判定するステップでは、前記他の部分列について記憶された訂正度合いが訂正不能である場合に、前記第１の符号列が誤って訂正されたと判定する、請求項１１記載の方法。
【請求項１３】
前記判定するステップでは、前記他の部分列について記憶された訂正度合いが前記所定のレベル以上である場合に、前記第１の符号列が誤って訂正されたと判定する、請求項１１記載の方法。
【請求項１４】
前記複数の部分列の各々は、前記第１の符号列に散在する断片を集めて構成される、請求項１１記載の方法。
【請求項１５】
前記第１の符号列が誤って訂正されたと判定された場合に、当該第１の符号列の位置を消失位置とした上で、前記第２の符号列を訂正するステップを更に含む、請求項１１記載の方法。
【請求項１６】
第１の方向の第１の符号列と第２の方向の第２の符号列とを含む積符号ブロックにおける誤りをコンピュータに認識させるプログラムであって、
前記コンピュータに、
前記第１の符号列を構成する複数の部分列の各々における誤りを訂正する処理と、
前記複数の部分列のうちの一の部分列における訂正度合いが所定のレベル以上である場合に、前記複数の部分列のうちの他の部分列における訂正度合いを参照することにより、前記第１の符号列が誤って訂正されたかどうかを判定する処理と
を実行させる、プログラム。
【請求項１７】
前記判定する処理では、前記他の部分列における訂正度合いが訂正不能である場合に、前記第１の符号列が誤って訂正されたと判定する、請求項１６記載のプログラム。
【請求項１８】
前記判定する処理では、前記他の部分列における訂正度合いが前記所定のレベル以上である場合に、前記第１の符号列が誤って訂正されたと判定する、請求項１６記載のプログラム。
【請求項１９】
前記複数の部分列の各々は、前記第１の符号列に散在する断片を集めて構成される、請求項１６記載のプログラム。
【請求項２０】
前記第１の符号列が誤って訂正されたと判定された場合に、当該第１の符号列の位置を消失位置とした上で、前記第２の符号列を訂正する処理を更に前記コンピュータに実行させる、請求項１６記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、磁気テープ等の記録媒体から読み出したデータの誤りを訂正するための装置等に関し、より詳しくは、積符号ブロックを用いてデータの誤りを訂正するための装置等に関する。
【背景技術】
【０００２】
記録媒体に対しデータの書込みや読出しを行うデータ記録再生装置では、データの誤りにより重大な障害を発生させないよう、誤りの検出や訂正を行うのが一般的である。特に、近年、データの信頼性向上や、データ記録の高密度化の観点から、積符号による誤り訂正が広く行われている。
ここで、積符号は、ユーザデータを行列状に配置し、行方向及び列方向にパリティ符号を配置することにより構成される行列状の符号と定義することができる。また、通常、積符号は、行方向のＣ１符号と、列方向のＣ２符号とから構成されている。そして、Ｃ１符号には、その誤りを訂正するためのパリティ符号であるＣ１パリティが含まれ、Ｃ２符号には、その誤りを訂正するためのパリティ符号であるＣ２パリティが含まれる。このような積符号において、実際の誤り訂正は、Ｃ１パリティによるＣ１符号の訂正(Ｃ１訂正)、Ｃ２パリティによるＣ２符号の訂正(Ｃ２訂正)の順に行われる。かかる訂正方法により、Ｃ１訂正で訂正不能な行はＣ２訂正で消失訂正により訂正することができるので、多くの誤りを訂正することが可能となる。
尚、このような積符号の訂正方法としては、従来から多くの手法が提案されている(例
えば、特許文献１、２参照)。【０００３】
【特許文献１】特開平１１−２０３６１５号公報(第５−７頁、第２図)
【特許文献２】特開平１１−２０３７９７号公報(第８、９頁、第２図)
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、近年、データ記録再生装置の大容量化により、ランダムエラーの発生率は上昇する傾向にある。このようなランダムエラーの発生率の上昇に対しては、積符号において、より高いＣ１訂正能力を選択することにより対処するのが一般的である。
しかし、発生し得るエラーには、このようなランダムエラーばかりでなく、記録媒体上のキズやヘッドの不具合等に起因して連続的に生ずるバーストエラーもある。ランダムエラーのみを考慮して高いＣ１訂正能力を選択した場合、検出能力を超える長さのバーストエラーについては誤訂正の確率が上昇してしまうという問題もある。【０００５】
この問題を、ＬＴＯ(Linear Tape-Open)テープドライブにおける誤り訂正方法を例にとって説明する。尚、ＬＴＯとは、ＩＢＭ、ヒューレットパッカード、シーゲイトテクノロジ(現カンタム)の３社が共同で策定したテープフォーマットの規格である。
一般に、誤り訂正符号は、最小ハミング距離ｄｍｉｎに対し、
ｄｍｉｎ≧２ｔ＋ｄ＋１
の関係を満たすｔバイトの誤りを訂正し、かつ、ｔ＋ｄバイトの誤りを検出することができる。【０００６】
そこで、従来のＬＴＯテープドライブにおける誤り訂正方法では、まず、Ｃ１符号の最小ハミング距離ｄｍｉｎ＝７とし、検出能力を高めるため、ｔ＝２(２バイトの誤りを訂
正可能)、かつ、ｄ＝２(４バイトの誤りを検出可能)という配分を採用していた。そして
、３バイト以上の誤りを検出したり、訂正不能だったＣ１符号に対してＣ２符号では消失訂正を行ったりしていた。
ところが、Ｃ１符号について、訂正能力を高めるため、ｔ＝３(３バイトの誤りを訂正
可能)とすると、ｄ＝０(３バイトの誤りを検出可能)となる。即ち、２バイトの誤りを訂
正可能とした場合に比べて、誤り訂正能力は高くなるものの、誤り検出能力は低くなってしまう。その結果、誤訂正確率が上昇することになる。かかる誤訂正確率の上昇は、Ｃ２符号の訂正能力を消費するバーストエラーに対して問題になる。即ち、Ｃ１符号の誤訂正確率の上昇は、Ｃ２符号に伝播し、Ｃ２符号の誤訂正確率も上昇する。Ｃ２符号で誤訂正が発生した場合、誤訂正であることが認識されずにデータがホストに送信されてしまうため、障害が発生することになる。誤訂正により障害が発生する確率の上昇は避けなければならないため、このまま３バイト訂正を選択するのは実用上問題がある。【０００７】
ここで、特許文献１、２の発明について考察すると、これらはいずれも、ヘッドがトラックからはずれる問題を対象とし、テープ上の同一のＣ１符号を２つのヘッドで読み込んでこれらを比較し、例えば訂正可能な方を採用することにより、誤訂正確率を低減するものである。つまり、ランダムエラーの訂正能力を高めた場合のバーストエラーの誤訂正確率の上昇に対しては何の解決策も提示していない。結局、特許文献１、２では、このようなバーストエラーに対する誤訂正確率を低減することはできないという問題点があった。【０００８】
本発明は、以上のような技術的課題を解決するためになされたものであって、その目的は、ランダムエラーに対し高い訂正能力を選択しても、検出能力を超える長さのバーストエラーに対する誤訂正の確率が上昇しないようにすることにある。
【課題を解決するための手段】
【０００９】
かかる目的のもと、本発明では、対をなす２つのバイト列に対する第１の訂正の結果の両方を参照し、その訂正の度合いに応じて第２の訂正を行うようにした。即ち、本発明の第１の装置は、第１の方向の第１のバイト列と第２の方向の第２のバイト列とを含む積符号ブロックにおける誤りを訂正するための装置であり、第１のバイト列における偶数番目のバイトからなる第１の部分列と、第１のバイト列における奇数番目のバイトからなる第２の部分列の各々における誤りを訂正する第１のデコーダと、第１の部分列における訂正の第１の度合いと、第２の部分列における訂正の第２の度合いとの組み合わせに応じて、第２のバイト列を訂正する第２のデコーダとを含んでいる。【００１０】
また、本発明は、符号列を構成する複数の部分列に対する第１の訂正の結果を参照し、その訂正の度合いの組み合わせに応じて第２の訂正を行うものとして捉えることもできる。その場合、本発明の第２の装置は、第１の方向の第１の符号列と第２の方向の第２の符号列とを含む積符号ブロックにおける誤りを訂正するための装置であり、第１の符号列を構成する複数の部分列の各々における誤りを訂正する第１のデコーダと、複数の部分列における訂正度合いの組み合わせに応じて、第２の符号列を訂正する第２のデコーダとを含んでいる。【００１１】
また、本発明は、符号列を構成する複数の部分列に対する訂正の結果を参照し、その訂正の度合いの組み合わせに応じて誤訂正だったかどうかを判定する方法として捉えることもできる。その場合、本発明の方法は、第１の方向の第１の符号列と第２の方向の第２の符号列とを含む積符号ブロックにおける誤りを認識するための方法であり、第１の符号列を構成する複数の部分列の各々における誤りを訂正するステップと、複数の部分列における訂正度合いを記憶するステップと、複数の部分列のうちの一の部分列について記憶された訂正度合いが所定のレベル以上である場合に、複数の部分列のうちの他の部分列について記憶された訂正度合いを参照することにより、第１の符号列が誤って訂正されたかどうかを判定するステップとを含んでいる。
ここで、誤訂正だったと判定した行に対し消失訂正を行うことも可能である。即ち、第１の符号列が誤って訂正されたと判定された場合に、その第１の符号列の位置を消失位置とした上で、第２の符号列を訂正するステップを更に含むように構成することもできる。【００１２】
一方、本発明は、コンピュータに所定の機能を実現させるプログラムとして捉えることもできる。その場合、本発明のプログラムは、第１の方向の第１の符号列と第２の方向の第２の符号列とを含む積符号ブロックにおける誤りをコンピュータに認識させるプログラムであり、コンピュータに、第１の符号列を構成する複数の部分列の各々における誤りを訂正する処理と、複数の部分列のうちの一の部分列における訂正度合いが所定のレベル以上である場合に、複数の部分列のうちの他の部分列における訂正度合いを参照することにより、第１の符号列が誤って訂正されたかどうかを判定する処理とを実行させるためのものである。
【発明の効果】
【００１３】
本発明によれば、ランダムエラーに対し高い訂正能力を選択しても、検出能力を超える長さのバーストエラーに対する誤訂正の確率が上昇しないようにすることができる。
【発明を実施するための最良の形態】
【００１４】
以下、添付図面を参照して、本発明を実施するための最良の形態(以下、「実施の形態
」という)について詳細に説明する。
図１は、本実施の形態が適用されるテープドライブ１０の構成を示した図である。このテープドライブ１０は、リール１１及び１２に巻かれた１本の磁気テープ１３と、ヘッド１４と、読込みチャネル１５と、ＳＲＡＭバッファ１６と、Ｃ１デコーダ１７と、ＤＲＡＭバッファ１８と、ＳＲＡＭバッファ１９と、Ｃ２デコーダ２０と、ホストＩ/Ｆ(インタフェース)２１とから構成される。【００１５】
リール１１及び１２は、図示しないモータにより駆動され、これらの間に掛け渡された磁気テープ１３をヘッド１４に対して相対的に移動させることを可能にしている。
ヘッド１４は、磁気テープ１３へのデータの書込み及び磁気テープ１３からのデータの読出しを行う機構である。尚、作図の都合上、ヘッド１４は、１つのみを図示しているが、例えば、ＬＴＯ第１世代/第２世代であれば、８本の書込みヘッド及び８本の読出しヘ
ッドから構成されている。【００１６】
読込みチャネル１５は、ヘッド１４が読み込んだデータをＳＲＡＭバッファ１６に送る。
ＳＲＡＭバッファ１６は、送られたデータを一時的に格納しておくバッファメモリである。Ｃ１デコーダ１７は、ＳＲＡＭバッファ１６に格納されたデータに対しＣ１訂正を行う。
ＤＲＡＭバッファ１８は、ＳＲＡＭバッファ１６から転送されたデータを、後述するサブデータセットとして格納するメモリバッファである。
ＳＲＡＭバッファ１９は、ＤＲＡＭバッファ１８に格納されたデータの一部を取り出してＣ２訂正のために一時的に格納しておくバッファメモリである。Ｃ２デコーダ２０は、ＳＲＡＭバッファ１９に格納されたデータに対しＣ２訂正を行う。
ホストＩ/Ｆ２１は、Ｃ１訂正、Ｃ２訂正が完了したデータをホストマシンに対し送信
する。【００１７】
次に、本実施の形態におけるテープドライブ１０の動作について説明する。
まず、磁気テープ１３からデータが読み出され、ＤＲＡＭバッファ１８に格納されるまでの処理の流れを説明しておく。
図２に、ＬＴＯの第２世代/第１世代のテープフォーマットを示す。
このフォーマットにおいて、テープ上には、ヘッド０〜７に対応するトラック０〜７にＣＱ(Codeword Quad)０〜７が記録され、これらが、ＣＱセット０を構成している。同様
に、ＣＱセット１〜６３も記録されている。
これらのＣＱ０〜７のそれぞれは、前半分と後半分とに分かれている。そして、ＣＱｉの前半分がサブデータセット２ｉの１行目となり、ＣＱｉの後半分がサブデータセット(
２ｉ＋１)の１行目となる(ｉ＝０，１，…，７)。これをＣＱセット６３まで繰り返す。
即ち、ＣＱセットｎから得られる所定のデータをサブデータセットのｎ行目とすることにより、６４行からなる１６個のサブデータセットを形成する。【００１８】
ここで、サブデータセットの構成について、図３を参照して説明する。
ＬＴＯテープドライブにおいて、誤り訂正は、サブデータセットを単位として行われる。即ち、この場合の誤り訂正符号は、行方向のＣ１符号と列方向のＣ２符号とから構成される積符号である。尚、ＬＴＯフォーマットに関する特徴としては、Ｃ１符号に、偶数番目のバイトからなる符号(以下、「偶数Ｃ１」という)と、奇数番目のバイトからなる符号(以下、「奇数Ｃ１」という)の２つがある点が挙げられる。【００１９】
具体的には、サブデータセットは、行方向に４８０バイトあるため、２４０バイトの偶数Ｃ１及び奇数Ｃ１に分けられる。また、各Ｃ１符号には、Ｃ１パリティが含まれている。Ｃ１パリティは、偶数Ｃ１のパリティと奇数Ｃ１のパリティとで１２バイトであるため、各パリティは６バイトである。つまり、偶数Ｃ１については、偶数番目のバイトからなるＣ１パリティ６バイトによりＣ１訂正が行われ、奇数Ｃ１については、奇数番目のバイトからなるＣ１パリティ６バイトによりＣ１訂正が行われるのである。
一方、サブデータセットは、列方向に６４バイトあるため、Ｃ２符号は６４バイトである。また、Ｃ２符号には１０バイトのＣ２パリティが含まれている。【００２０】
次に、図４を参照して、Ｃ１訂正の動作について詳細に説明する。尚、ここでは、図２のＣＱ０〜７の例えば前半分についての処理を説明する。
まず、ヘッド１４が、８トラック同時に８行分のデータを読み込み、読込みチャネル１５が、このデータをＳＲＡＭバッファ１６に格納する(ステップ１０１)。
これにより、Ｃ１デコーダ１７によるＣ１訂正の処理が開始する。
ＬＴＯの場合、上述したように、Ｃ１符号には偶数Ｃ１と奇数Ｃ１とがあるので、８行分のデータからは、１６個のＣ１符号が得られる。従って、Ｃ１デコーダ１７は、これら１６個のＣ１符号のシンドロームを計算する(ステップ１０２)。【００２１】
次に、Ｃ１デコーダ１７は、Ｃ１符号のシンドロームから誤り位置と値を計算し、ＳＲＡＭバッファ１６に格納されているＣ１符号を訂正する(ステップ１０３)。そして、この訂正により、Ｃ１符号の何バイトが訂正されたかどうかを判定する(ステップ１０４)。
その結果、訂正されなかった場合又は１−２バイトが訂正された場合(「０−２バイト
訂正」の場合)は、そのままステップ１０７へ進む。一方、３バイトが訂正された場合(「３バイト訂正」の場合)は、そのＣ１符号に３バイト訂正フラグを付加する(ステップ１０５)。また、訂正できなかった場合(「訂正不能」の場合)は、そのＣ１符号に訂正不能フ
ラグを付加する(ステップ１０６)。
その後、Ｃ１デコーダ１７は、偶数Ｃ１と奇数Ｃ１のペアを処理したかどうかを判定し(ステップ１０７)、処理していなければ、ステップ１０３〜１０６の処理を繰り返す。これにより、偶数Ｃ１、奇数Ｃ１のそれぞれに対し、３バイト訂正又は訂正不能であった場合、その旨のフラグが付加されることになる。【００２２】
このようなサブデータセットに対するフラグの付加について図５を参照して説明する。図示するように、サブデータセットには、行ごとに４つのフラグを付加できるような記憶領域が設けられている。この４つのフラグとは、偶数Ｃ１の訂正不能フラグ及び３バイト訂正フラグ、奇数Ｃ１の訂正不能フラグ及び３バイト訂正フラグである。これらのフラグは、例えば、初期値が「０」であり、該当するフラグを付加する場合に値が「１」となるように構成される。【００２３】
さて、再び図４に戻ってＣ１訂正の動作説明を続ける。ステップ１０７で偶数Ｃ１と奇数Ｃ１のペアを処理したと判定すると、この処理した１行分のデータは、ＳＲＡＭバッファ１６からＤＲＡＭバッファ１８へ転送される(ステップ１０８)。
そして、最後に、ＳＲＡＭバッファ１６内に未処理のＣ１符号がないかどうかを判定する(ステップ１０９)。その結果、未処理のＣ１符号があれば、ステップ１０３に戻る。一方、未処理のＣ１符号がなければ、処理を終了する。
尚、この図４の動作が、上述したように、図２のＣＱ０〜７の前半分についての処理であるとすると、同様の処理が、ＣＱ０〜７の後半分、及び、ＣＱセット１〜６３について行われる。これにより、ＤＲＡＭバッファ１８には、Ｃ１訂正が行われ、かつ、必要に応じてフラグが付加されたサブデータセットが格納されることとなる。【００２４】
以上のＣ１訂正では、行ごとに、偶数Ｃ１、奇数Ｃ１に対し別々に訂正を行っている。そして、偶数Ｃ１の訂正結果と奇数Ｃ１の訂正結果がバーストエラーに対する訂正結果として発生率の高い組合せであれば、例え訂正可能だったとしても誤訂正と判断し、これから述べるＣ２訂正において、消失訂正を行うようにする。これにより、バーストエラーに対する誤訂正確率を低減できるものである。【００２５】
本実施の形態におけるＣ１訂正の結果と、Ｃ２訂正で消失訂正を行うかどうかの対応情報を、図６に示す。
勿論、偶数Ｃ１と奇数Ｃ１のいずれかが訂正不能であれば、Ｃ２訂正で消失訂正を行う。これに加え、本実施の形態では、偶数Ｃ１と奇数Ｃ１の一方が３バイト訂正であった場合に、もう一方の訂正結果に応じて、Ｃ２訂正で消失訂正を行うかどうかを決定している。
具体的には、３バイト訂正は、もう一方が訂正不能又は３バイト訂正であれば、誤訂正である可能性が高いと考え、Ｃ２訂正で消失訂正を行うようにする(斜線を施した部分)。逆に、同じ３バイト訂正であっても、もう一方が０−２バイト訂正であれば、誤訂正である可能性は低いと考え、３バイト訂正による訂正結果を採用して以降の処理を行うのである。【００２６】
尚、対応情報に含まれるものではないが、バーストエラーに対するＣ１訂正の結果の組み合わせごとの発生率を参考までに図６の右欄外に示した。つまり、本実施の形態は、Ｃ１訂正の結果の組み合わせのうち、発生率が１％以上であるものについて、Ｃ２訂正で消失訂正を行うようにしたものである。【００２７】
以下、このようなＣ２訂正の動作について図７を参照して説明する。
まず、図５に示したサブデータセットのフラグ部分が、ＤＲＡＭバッファ１８からＳＲＡＭバッファ１９へ転送される(ステップ２０１)。これにより、Ｃ２デコーダ２０は、訂正不能フラグが付加されたＣ１符号の位置(消失位置)を記憶する(ステップ２０２)。また、３バイト訂正フラグが付加されたＣ１符号と、訂正不能フラグ又は３バイト訂正フラグが付加されたＣ１符号とを含む行の位置(消失位置)を記憶する(ステップ２０３)。【００２８】
次に、サブデータセットのデータ部分が、ＤＲＡＭバッファ１８からＳＲＡＭバッファ１９へ転送される(ステップ２０４)。ＳＲＡＭバッファ１９は、ＤＲＡＭバッファ１８に比べて容量が少ないため、サブデータセットのデータ部分は何列かに分けてＳＲＡＭバッファ１９に転送され、Ｃ２デコーダ２０は、ＳＲＡＭバッファ１９に格納された何列かの列ごとに、ステップ２０５〜２０９の処理を行う。【００２９】
即ち、まず、Ｃ２デコーダ２０は、Ｃ２符号のシンドロームを計算する(ステップ２０
５)。また、ステップ２０２又は２０３で消失位置が記憶されたかどうかを判定する(ステップ２０６)。
その結果、消失位置が記憶されたと判定された場合は、消失位置とシンドロームから誤り位置と値を計算し、ＳＲＡＭバッファ１９に格納されたＣ２符号を訂正する(ステップ
２０７)。より詳しくは、消失位置から消失位置多項式を求め、この消失位置多項式とシ
ンドロームから誤り位置と値を計算し、Ｃ２符号を訂正する。一方、消失位置が記憶されなかったと判定された場合は、シンドロームから誤り位置と値を計算し、ＳＲＡＭバッファ１９に格納されたＣ２符号を訂正する(ステップ２０８)。
即ち、消失位置がある場合は、ランダムエラーだけでなくバーストエラーをも視野に入れた誤り訂正を行い、消失位置がない場合は、ランダムエラーのみを視野に入れた誤り訂正を行っているのである。尚、図には示していないが、ここで訂正不能と判定された場合は、訂正せずにテープドライブ１０の図示しない制御部に対しエラーを報告する。その後、制御部による制御の下、テープドライブ１０は、エラー回復処理を行い、回復できなければホストマシンにエラーを報告する。【００３０】
次に、Ｃ２デコーダ２０は、ＳＲＡＭバッファ１９内に未処理のＣ２符号がないかどうかを判定する(ステップ２０９)。その結果、未処理のＣ２符号があれば、ステップ２０５に戻る。一方、未処理のＣ２符号がなければ、ＳＲＡＭバッファ１９からＤＲＡＭバッファ１８へ処理済のＣ２符号を書き戻す(ステップ２１０)。
その後、ＤＲＡＭバッファ１８内に未処理のＣ２符号がないかどうかを判定する(ステ
ップ２１１)。その結果、未処理のＣ２符号があれば、ステップ２０４に戻る。一方、未
処理のＣ２符号がなければ、処理を終了する。
そして、最後に、ＤＲＡＭバッファ１８内のデータは、ホストＩ/Ｆ２１を介してホス
トマシンに送信される。
以上により、本実施の形態の動作は終了する。【００３１】
尚、本実施の形態では、行方向のＣ１符号についてＣ１訂正を行い、その後、列方向のＣ２符号についてＣ２訂正を行うこととしたが、このような構成に限られるものではない。即ち、第１の訂正の対象となる符号列と、第２の訂正の対象となる符号列とは、必ずしも行方向、列方向である必要はなく、いかなる方向であっても構わない。
また、本実施の形態では、最小ハミング距離ｄｍｉｎ＝７を前提としたため、訂正結果として、「０−２バイト訂正」、「３バイト訂正」、「訂正不能」を考え、図６に示したような対応関係に従った動作を行うようにしたが、これに限られるものではない。即ち、所定のレベル以上の訂正を、対をなす符号列に対する訂正の度合が所定のレベル以上又は訂正不能である場合に、誤訂正として扱うものと捉えることもできる。【００３２】
更に、本実施の形態では、一方の符号列を、偶数番目、奇数番目という基準により２つの部分列に分けて、それぞれについて第１の訂正を行うようにした。しかしながら、必ずしも偶数番目、奇数番目という基準で２つの部分列に分ける必要はなく、また、部分列の数も２つには限られない。即ち、１つの符号列を複数の部分列に分け、これら複数の部分列のそれぞれに対し第１の訂正を行い、その訂正の結果の組み合わせに応じて第２の訂正を行うような構成としてもよい。【００３３】
以上述べたように、本実施の形態では、対をなす２つのＣ１訂正の結果の参照することにより、誤訂正だったかどうかを判断するようにした。そして、この判断結果で誤訂正だった行に対しＣ２訂正で消失訂正を行うようにした。これにより、ランダムエラーに対し高い訂正能力を選択しても、バーストエラーに対する誤訂正の確率が上昇しないようにすることができる。【００３４】
次に、本発明による効果を、グラフを用いて説明する。
図８は、バーストエラーの発生率とＣ２訂正における誤訂正確率との関係を示したグラフである。
図８(ａ)では、従来の方式を採用した場合について示している。このグラフからは、Ｃ１訂正で２バイト訂正の場合よりも３バイト訂正の場合の方が、Ｃ２訂正で誤訂正を生じる確率が高いことが分かる。
一方、図８(ｂ)では、本発明の方式を採用した場合について示している。Ｃ１訂正で３バイト訂正の場合の誤訂正確率が、２バイト訂正の場合の誤訂正確率よりわずかに上昇したものの、これらはほぼ同等となっていることが分かる。【００３５】
また、図９は、ランダムエラーの発生率と訂正不能の発生率との関係を示したグラフである。
図９(ａ)では、２バイト訂正を行った場合よりも３バイト訂正を行った方が、訂正不能が発生する確率を低減することを示している。
一方、図９(ｂ)では、本発明のように３バイト訂正を一定の条件の下に消失訂正したとしても、ランダムエラーに対する訂正不能の発生率の低減効果は同等であることを示している。
【図面の簡単な説明】
【００３６】
【図１】本発明の実施の形態が適用されるテープドライブの全体構成を示したブロック図である。
【図２】本発明の実施の形態における磁気テープからのデータの読出しの様子を説明するための図である。
【図３】本発明の実施の形態におけるサブデータセットの構造を説明するための図である。
【図４】本発明の実施の形態におけるＣ１訂正の動作を示したフローチャートである。
【図５】本発明の実施の形態におけるサブデータセットに対するフラグの付加について説明するための図である。
【図６】本発明の実施の形態におけるＣ１訂正の結果とＣ２訂正で消失訂正を行うかどうかとの対応を示した図である。
【図７】本発明の実施の形態におけるＣ２訂正の動作を示したフローチャートである。
【図８】バーストエラーに対する誤訂正確率が本実施の形態によって低減されることを示したグラフである。
【図９】ランダムエラーの訂正不能が発生する確率が本実施の形態によって影響されないことを示したグラフである。
【符号の説明】
【００３７】
１０…テープドライブ、１１，１２…リール、１３…磁気テープ、１４…ヘッド、１５…読込みチャネル、１６…ＳＲＡＭバッファ、１７…Ｃ１デコーダ、１８…ＤＲＡＭバッファ、１９…ＳＲＡＭバッファ、２０…Ｃ２デコーダ、２１…ホストＩ/Ｆ
【図１】
2006132331.tif 000002
【図２】
2006132331.tif 000003
【図３】
2006132331.tif 000004
【図４】
2006132331.tif 000005
【図５】
2006132331.tif 000006
【図６】
2006132331.tif 000007
【図７】
2006132331.tif 000008
【図８】
2006132331.tif 000009
【図９】
2006132331.tif 000010
【手続補正書】
【提出日】平成19年4月10日(2007.4.10)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１の方向の第１のバイト列と第２の方向の第２のバイト列とを含む積符号ブロックにおける誤りを訂正するための装置であって、
前記第１のバイト列における偶数番目のバイトからなる第１の部分列と、前記第１のバイト列における奇数番目のバイトからなる第２の部分列の各々における誤りを訂正する第１のデコーダと、
前記第１の部分列における訂正の第１の度合いと、前記第２の部分列における訂正の第２の度合いとの組み合わせに応じて、前記第２のバイト列を訂正する第２のデコーダと
を含む、装置。
【請求項２】
前記第２のデコーダは、前記第１の度合いと前記第２の度合いのうち、一方が所定のレベル以上であり、他方が訂正不能である場合に、前記第１のバイト列の位置を消失位置とした上で、前記第２のバイト列を訂正する、請求項１記載の装置。
【請求項３】
前記第１のバイト列の最小ハミング距離は７であり、前記所定のレベルは３バイト訂正である、請求項２記載の装置。
【請求項４】
前記第２のデコーダは、前記第１の度合いと前記第２の度合いのうち、一方が第１のレベル以上であり、他方が第２のレベル以上である場合に、前記第１のバイト列の位置を消失位置とした上で、前記第２のバイト列を訂正する、請求項１記載の装置。
【請求項５】
前記第１のバイト列の最小ハミング距離は７であり、前記第１のレベル及び前記第２のレベルはいずれも３バイト訂正である、請求項４記載の装置。
【請求項６】
テープ媒体に記録されたデータを読み出すヘッドと、
前記ヘッドにより読み出されたデータをメモリ上の所定の位置に配置することにより、前記積符号ブロックを生成する読込みチャネルと
を更に含む、請求項１記載の装置。
【請求項７】
（削除）
【請求項８】
第１の方向の第１の符号列と第２の方向の第２の符号列とを含む積符号ブロックにおける誤りを訂正するための装置であって、
前記第１の符号列を構成する複数の部分列の各々における誤りを訂正する第１のデコーダと、
前記複数の部分列における訂正度合いの組み合わせに応じて、前記第２の符号列を訂正する第２のデコーダとを含み、
前記第２のデコーダは、前記複数の部分列のうちの一の部分列における訂正度合いが所定のレベル以上である場合に、他の部分列における訂正度合いが訂正不能であれば、前記第１の符号列の位置を消失位置とした上で、前記第２の符号列を訂正する、装置。
【請求項９】
第１の方向の第１の符号列と第２の方向の第２の符号列とを含む積符号ブロックにおける誤りを訂正するための装置であって、
前記第１の符号列を構成する複数の部分列の各々における誤りを訂正する第１のデコーダと、
前記複数の部分列における訂正度合いの組み合わせに応じて、前記第２の符号列を訂正する第２のデコーダとを含み、
前記第２のデコーダは、前記複数の部分列のうちの一の部分列における訂正度合いが所定のレベル以上である場合に、他の部分列における訂正度合いも当該レベル以上であれば、前記第１の符号列の位置を消失位置とした上で、前記第２の符号列を訂正する、装置。
【請求項１０】
前記複数の部分列の各々は、前記第１の符号列に散在する断片を集めて構成される、請求項８または９記載の装置。
【請求項１１】
第１の方向の第１の符号列と第２の方向の第２の符号列とを含む積符号ブロックにおける誤訂正を認識する方法であって、
前記第１の符号列を構成する複数の部分列の各々における誤りを訂正するステップと、前記複数の部分列における訂正度合いを記憶するステップと、
前記複数の部分列のうちの一の部分列について記憶された訂正度合いが所定のレベル以上である場合に、前記複数の部分列のうちの他の部分列について記憶された訂正度合いを参照することにより、前記第１の符号列が誤って訂正されたかどうかを判定するステップと
を含む、方法。
【請求項１２】
前記判定するステップでは、前記他の部分列について記憶された訂正度合いが訂正不能である場合に、前記第１の符号列が誤って訂正されたと判定する、請求項１１記載の方法。
【請求項１３】
前記判定するステップでは、前記他の部分列について記憶された訂正度合いが前記所定のレベル以上である場合に、前記第１の符号列が誤って訂正されたと判定する、請求項１１記載の方法。
【請求項１４】
前記複数の部分列の各々は、前記第１の符号列に散在する断片を集めて構成される、請求項１１記載の方法。
【請求項１５】
前記第１の符号列が誤って訂正されたと判定された場合に、当該第１の符号列の位置を消失位置とした上で、前記第２の符号列を訂正するステップを更に含む、請求項１１記載の方法。
【請求項１６】
第１の方向の第１の符号列と第２の方向の第２の符号列とを含む積符号ブロックにおける誤りをコンピュータに認識させるプログラムであって、
前記コンピュータに、
前記第１の符号列を構成する複数の部分列の各々における誤りを訂正する処理と、
前記複数の部分列のうちの一の部分列における訂正度合いが所定のレベル以上である場合に、前記複数の部分列のうちの他の部分列における訂正度合いを参照することにより、前記第１の符号列が誤って訂正されたかどうかを判定する処理と
を実行させる、プログラム。
【請求項１７】
前記判定する処理では、前記他の部分列における訂正度合いが訂正不能である場合に、前記第１の符号列が誤って訂正されたと判定する、請求項１６記載のプログラム。
【請求項１８】
前記判定する処理では、前記他の部分列における訂正度合いが前記所定のレベル以上である場合に、前記第１の符号列が誤って訂正されたと判定する、請求項１６記載のプログラム。
【請求項１９】
前記複数の部分列の各々は、前記第１の符号列に散在する断片を集めて構成される、請求項１６記載のプログラム。
【請求項２０】
前記第１の符号列が誤って訂正されたと判定された場合に、当該第１の符号列の位置を消失位置とした上で、前記第２の符号列を訂正する処理を更に前記コンピュータに実行させる、請求項１６記載のプログラム。
【国際調査報告】
2006132331.tif 000011
2006132331.tif 000012
2006132331.tif 000013
2006132331.tif 000014