(57)【特許請求の範囲】
【請求項１】
複数のデータレコードからなるストリームを磁気媒体上に格納する装置であって、
前記複数のデータレコードを複数のデータバイトからなる複数のグループにグループ化するグループフォーマット手段と、
前記複数のグループのそれぞれを、各サブグループが１以上のデータトラックに対応するデータバイトを含む複数のサブグループに分割するサブグループ処理手段と、
各データトラックからの前記データバイトをチェックサムアルゴリズムに適用し、各データトラックについて１以上のトラックチェックサムを計算するトラックチェックサム計算手段と、
前記サブグループのそれぞれをデータトラックにそれぞれ対応する少なくとも１つの配列に変換する変換手段と、
前記少なくとも１つの配列の各列をエンコードしてデータバイトおよびパリティバイトを含む第１のＥＣＣコードワード（Ｃ１）を生成する第１レベルエラー訂正コード（ＥＣＣ）エンコード手段であって、前記パリティバイトは前記第１のＥＣＣコードワード中のデータバイトのうちの少なくとも１つを第１レベル訂正することができる、第１レベルエラー訂正コード（ＥＣＣ）エンコード手段と、
前記少なくとも１つの配列の各行をエンコードしてデータバイトおよびパリティバイトを含む第２のＥＣＣコードワード（Ｃ２）を生成する第２レベルエラー訂正コード（ＥＣＣ）エンコード手段であって、前記パリティバイトは前記第２のＥＣＣコードワード中のデータバイトのうちの少なくとも１つを第２レベル訂正することができ、第２のＥＣＣコードワードを構成する前記データバイトおよびパリティバイトは、所与のコードワード中の全てのバイトのＸＯＲ演算の結果をゼロにしなければならないというＥＣＣルールに従う、第２レベルエラー訂正コード（ＥＣＣ）エンコード手段と、
からなり、前記トラックチェックサム計算手段によって適用される前記アルゴリズムとして、前記ＥＣＣルールにより要求される前記ＸＯＲ演算と相関性を持たない前記トラック中のデータバイトの算術加算を選択することにより、前記ＥＣＣコードワードのデコード並びに前記トラックチェックサムの再計算および検査の際に、トラックチェックサム障害の原因となるコードワードの誤訂正の確率を高める性質を有するチェックサムを生成する、装置。
【請求項２】
前記エラー訂正コードエンコード手段はリードソロモンコーディングを使用する、請求項１に記載の装置
【請求項３】
エンコードされた前記配列を変換し、各トラックについて前記磁気媒体に書き込むための複数のデータフラグメントを生成する手段と、
前記データフラグメントのそれぞれにフラグメントヘッダを提供するためのフラグメントヘッダ手段とを含み、
前記フラグメントヘッダのうちの少なくとも幾つかが、現在のトラックのトラックチェックサムを識別するデータバイトを含む、請求項１〜２のうちのいずれか一項に記載の装置。
【請求項４】
１グループを構成する各トラックの対応するバイト位置からコードワードを計算するための第３レベルのエラー訂正コードエンコード手段を含む、請求項１〜３のうちのいずれか一項に記載の装置。
【請求項５】
複数のデータレコードからなるストリームを磁気媒体上に格納する方法であって、
前記複数のデータレコードを複数のデータバイトからなる複数のグループへとグループ化するステップと、
前記複数のグループのそれぞれを、各サブグループが少なくとも１つのデータトラックに対応する複数のサブグループへと分割するステップと、
各データトラックからの前記データバイトをチェックサムアルゴリズムに適用し、各データトラックについて１以上のトラックチェックサムを計算するステップと、
前記１以上のトラックチェックサムを格納するステップと、
前記サブグループのそれぞれをデータトラックにそれぞれ対応する少なくとも１つの配列に変換するステップと、
前記少なくとも１つの配列の各列をエンコードしてデータバイトおよびパリティバイトを含む第１レベルのＥＣＣコードワードを形成するステップであって、前記パリティバイトは前記第１レベルのＥＣＣコード中のデータバイトのうちの少なくとも１つを第１レベル訂正することができる、第１レベルのＥＣＣコードワードを形成するステップと、
前記配列の各行をエンコードしてデータバイトおよびパリティバイトを含む第２レベルのＥＣＣコードワードを形成するステップであって、前記パリティバイトは前記第２レベルのＥＣＣコードワード中のデータバイトのうちの少なくとも１つを第２レベル訂正することができ、ＥＣＣコードワードを構成する前記データバイトおよびパリティバイトは、所与のコードワード中の全てのバイトのＸＯＲ演算の結果をゼロにしなければならないというＥＣＣルールに従う、第２レベルのＥＣＣコードワードを形成するステップと、
前記ＥＣＣコードワードのデコード並びに前記トラックチェックサムの再計算および検査の際に、前記トラックチェックサム計算ステップによって適用されるアルゴリズムとして、前記ＥＣＣルールにより要求される前記ＸＯＲ演算と相関性を持たない前記トラック中のデータバイトの算術加算を選択することにより、トラックチェックサム障害の原因となるコードワードの誤訂正の確率を高めるチェックサムを生成するステップと、
からなる方法。
【請求項６】
少なくとも前記第２レベルのエラー訂正エンコードはリードソロモンコーディングを使用する、請求項５に記載の方法。
【請求項７】
１グループを構成する複数のトラックの対応するバイト位置からコードワードを計算することにより、第３レベルのエラー訂正コードを適用するステップを含む、請求項５〜６のうちのいずれか一項に記載の方法。
【請求項８】
請求項５〜６のうちのいずれか一項に記載の方法によって格納されたデータを読み出す方法であって、
テープからデータを読み出すステップと、
該データからトラックチェックサムを抽出するステップと、
コードワードをデコードし、各トラックについてデータバイトを得るステップと、
デコードされた各データバイトについてトラックチェックサムを計算するステップと、
前記チェックサムが一致しない場合に、失敗フラグを立てるステップと、
からなる方法。
【請求項９】
前記データは３レベルのエラー訂正を有し、前記トラックチェックサムは、前記第２レベルのエラー訂正の後、第２レベルのコードワード障害を知らせるために使用され、それによって、最終レベルの訂正アルゴリズムが、第２レベルのコードワード障害に対応する第３レベルのコードワード中のデータバイトを識別し、該データバイトを消跡としてマスクする、請求項８に記載の方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、磁気媒体上へのデータ格納のための方法装置及び方法に関し、特に少なくとも２レベルのエラー訂正を実施するかかる方法及び装置に関する。
【０００２】
【従来の技術】
DDS（Digital Data Storage）フォーマットによる磁気テープ上のコンピュータデータ等の大量のディジタルデータを格納することが可能な磁気データ記憶装置に関する要求が絶えず増大している。該フォーマットを用いるDDSリード／ライト機構では、データは、磁気媒体がコーティングされたテープからなる細長い記録媒体上に、１つ又は２つ以上の電磁ヘッドを支持する回転ドラムにより、ヘリカルスキャン方式で記録される。該テープは、２つのスプール又はリール間に延びる経路に沿ってモータ駆動式キャプスタンにより移動され、及び部分的に前記ドラムの周囲に巻き付けられる。該ドラムのヘッドの回転面は、テープの移動平面に対して所定角をなすよう配置され、これにより、テープの中心線に対して所定角をなして該テープの幅方向に横切って延びる連続する複数のトラックに沿って該テープを各ヘッドが横切るようになっている。該機構は、テープ上への記録に適した信号（エラー検出及び訂正コードを含む）へとデータをエンコードし、及びかかる信号を調整して記録媒体の特性に最適に適合する形式にするための、適当な回路を備えている。データ読み出しのために、更に別の回路が配設される。該回路は、テープ上に格納されている磁界の変動を導出し、それに対応する信号を導出し、かかる信号を調整して後続の処理のための形式にし、エンコードされたデータをデコードし、及びエラーの検出及び訂正を行うものである。
【０００３】
最近開発されたものにDDS3フォーマットがある（1996年6月にECMA規格ECMA-236で規定されたもの、「3.81mm Wide Magnetic Tape Cartridge for Information Interchange - Helical Scan Recording - DDS-3 Format using 125mm Length Tapes（情報交換用3.81mmワイド磁気テープカートリッジ - ヘリカルスキャン記録 - 125m長のテープを用いたDDS-3フォーマット）」）。なお、該引用をもってその内容全体を本書中に包含させたものとする。
【０００４】
DDS3では、少なくとも２レベル（C1,C2）及び随意選択的な第３レベル（C3）のエラー訂正コーディング（ECC）を提供するマルチレベルインタリーブ式リードソロモンコード(multilevel interleaved Reed-Solomon code)を用いることにより、エラーチェック及び検出が達成される。更に、読み出し時の最終的なデータチェックを提供するために、トラックチェックサムが、テープ上に書き込むべき各データトラックに対応して生成されてフラグメントヘッダ中に格納され、その幾つかが各トラックに組み込まれる。このため、読み出し時には、このトラックチェックサムアルゴリズムが、テープから読み出されるデータバイトに適用され、その際のトラックチェックサムが該テープへの書き込み時に計算されて格納されたトラックチェックサムと一致しない場合には当該トラックが拒絶される。
【０００５】
【発明が解決しようとする課題】
トラックチェックサムは、可能な限り大きな割合で不良トラック（訂正不能なコードワード(codeword)又は誤って訂正されたコードワードを含むもの（以下で説明する））を拒絶するよう機能することが望ましい。既存のトラックチェックサムは十分良好に機能するが、このシステムには意外でありかつ重要な欠点が存在することを本出願人は発見した。即ち、かかるトラックチェックサムは、大部分の誤修正を識別しないものである。本出願人の分析により、データバイト中の「修正」が生じた誤修正されたコードワードは該コードワードのみからなり、トラックチェックサムはこの障害を明らかにするものとはならないことが判明した。この現象が生じる理由は、全バイト（データ及びパリティ）のＸＯＲ演算の結果がゼロになるという固有の特性を有するように該コードワードが構成されることにある。DDS3の場合にも、トラックチェックサムは、関連するトラックのデータバイトのＸＯＲ演算を行うことにより計算される。
【０００６】
良好な（又は誤修正された）コードワードのバイトのＸＯＲ演算の結果がゼロであると仮定すると、特定の良好な又は誤修正されたコードワードのパリティバイトのＸＯＲ演算結果が例えば二進値Ａとなる場合には、データバイトのＸＯＲ演算結果もまた二進値Ａとならなければならない（これによりデータバイトとパリティバイトとのＸＯＲ演算結果がゼロとなる）。この特定のコードワードを誤修正した場合には、該「修正」はデータバイト中にしか含まれず、パリティバイトが変更されないため、該パリティバイトのＸＯＲ演算結果は依然と同様に二進値Ａとなる。データバイトが変更された場合であっても、誤修正のＸＯＲ演算結果はゼロであるという要件を見たすために、該データバイトのＸＯＲ演算結果は二進値Ａになる。しかし、該データバイトは同一のチェックサム（並びにＸＯＲ演算の結果）に全て寄与し、トラックチェックサムは無変更のままとなり、よって、この種の誤修正の場合には、コードワードの固有のＸＯＲ特性とチェックサムの計算に用いられる演算との間の相関関係に起因して、トラックチェックサムは、「修正」の全てがデータバイト中に現れる誤修正されたコードワードを明らかにするものとはならない。
【０００７】
本出願人は、ＸＯＲ演算と相互に関係しないようにトラックチェックサムアルゴリズムを修正することにより以前のコードワードにおける誤修正を検出するための信頼性の高い方法を提供することを決定した。この誤修正を高い信頼性で検出する能力はまた、第３レベルC3訂正が実施される場合に重要かつ有利な結果を提供するものとなる。
【０００８】
これまで、本出願人は、トラックチェックサムを用いてC2コードワードの障害を識別し、及びそれに従ってかかるコードワードにマークを行おうとしてきた。エラー訂正コーディングのインタリーブ及びマルチレベル構造のため、コードワードが（３レベルシステムにおいて）C1及びC2レベルで失敗した場合には、配列中のコードワードの位置を知ることにより、次のレベルのコードワードにおける疑わしい複数バイトの位置を識別する。エラー訂正コーディングの構造は、特定のコードワード中のバイトが既知のマッピングに従って後続のコードワード中の位置へとマップすることを意味している。このため、C2ステージで失敗したコードワードをフラグとして使用してC3コードワード中の特定のバイトをC3訂正アルゴリズムに知らせ、これによりそれらがエラーではなく「消跡(erasure)」として扱われるようにすることができる。
【０００９】
したがって、完全なC2コードワードが失敗としてマークされる場合には、それに対応する（該コードワードを構成する）データバイト位置を決定して、次のC3レベルに対してエラーの位置が既知となるようにすることが可能である。N個のパリティバイトを有するリードソロモンコードは、「e」エラー及び「v」消跡を訂正することが可能なものである（ここで、2e+v≦N であり、消跡は既知の位置における不良バイトである）。典型的なC3訂正コードワードは２つのパリティバイト（即ちN=2）を有しており、このため、C3訂正アルゴリズムは単一のエラー（e=1）又は２つの消跡（v=2）を訂正することができる。２つの訂正が行われる場合、これはダブルエラー訂正と呼ばれる。したがって、誤修正されたC2コードワードを消跡として高い信頼性でマークする能力は、C3アルゴリズムがダブルエラー訂正を実行できることを意味するものとなる。これまで、高信頼性の誤訂正検出方法の欠如は、C3ステージでのダブルエラー訂正の試行が現実的でないことを意味してきた。
【００１０】
したがって、本出願人は、トラックチェックサムにより大幅に増大した信頼性を有する誤修正チェックが提供される方法及び装置を提供する。
【００１１】
一態様では、本発明は、磁気媒体上に複数のデータレコードからなるストリームを格納するための装置を提供する。該装置は、
前記複数のデータレコードを複数のデータバイトからなる複数のグループへとグループ化するグループフォーマット手段と、
前記複数のグループの各々を複数のサブグループへと分割するサブグループ処理手段であって、その各サブグループが、１つ又は複数のデータトラックに対応するデータバイトからなる、サブグループ処理手段と、
前記１つのデータトラックについて又は前記複数のデータトラックの各々毎に１つ又は２つ以上のチェックサムを計算するトラックチェックサム計算手段と、
前記各サブグループを少なくとも１つの別個の配列へと変換する変換手段であって、その１つの配列又は複数の配列の各々がデータトラックに１つずつ対応するものである、変換手段と、
前記１つの配列又は複数の配列の各々の列をエンコードしてデータバイト及びパリティバイトからなる第１の（C1）ECCコードワードを提供する、第１のエラー訂正コードエンコード手段と、
前記１つの配列又は複数の配列の各々の行をエンコードしてデータバイト及びパリティバイトからなる第２の（C2）ECCコードワードを提供する、第２のエラー訂正コードエンコード手段とを備えており、
前記トラックチェックサム計算手段が、前記１つのトラック又は複数のトラックの各々毎に別個のトラックチェックサムを計算し、これにより、前記ECCコードワードのデコード時に、データバイト中に誤訂正が存在する誤訂正コードワードが、対応するオリジナルのコードワードと同じ寄与を対応するトラックチェックサムに与えるという実質的にランダムな（無作為の）蓋然性しか有さないようにする、というものである。
【００１２】
なお、用語「第１」及び「第２」は、第１のエラー訂正コードエンコード手段が第２のエラー訂正コードエンコード手段の前に動作する必要があることを意図したものではないことを強調しておく。
【００１３】
このように、コードワード生成ルールと相関しないトラックチェックサムアルゴリズムを選択することは、トラックチェックサムが誤訂正の検出に関して従来の訂正アルゴリズムよりも一層信頼性の高いものであることを意味している。これはまた、トラックチェックサムを使用して大幅に向上した訂正率で誤訂正コードワードをマークすることを可能にする。
【００１４】
好適には、前記第１及び第２のエラー訂正コードエンコード手段は、それぞれのリードソロモンコードアルゴリズムを適用する。
【００１５】
トラックチェックサムの生成に使用することが可能なアルゴリズムは多数存在する。α0にルートを有するリードソロモンコードワードが使用される特定の一例では、トラックチェックサムは、関連するトラックにおけるデータバイトの算術加算をベースとして計算することが可能である。
【００１６】
コードワード及びチェックサムは、テープへの書き込みに先立って様々な方法で処理することが可能であるが、前記磁気媒体上に書き込むための複数のデータフラグメントを各トラック毎に提供するよう前記エンコードされた配列を変換する手段と、前記データフラグメントの各々毎にフラグメントヘッダを提供するフラグメントヘッダ手段とを備えており、前記フラグメントヘッダの内の少なくとも幾つかが、現在のトラックに関する対応するトラックチェックサムを識別するデータバイトを含んでいることが装置にとって好ましい。
【００１７】
誤訂正の検出のための一層信頼性の高いトラックチェックサム方式を提供することにより、第３レベルでのダブルエラー訂正が容易化される。したがって、本装置は、好適には、１グループを形成するトラックの各々にまたがるそれぞれの対応するバイト位置からコードワードを計算する第３のエラー訂正コードエンコード手段を備えるものとなる。
【００１８】
本発明はまた、データレコードストリームを磁気媒体上に格納するための方法へと拡張される。該方法は、
前記データレコードを複数のデータバイトからなる複数のグループへとグループ化し、
前記複数のグループの各々を複数のデータバイトからなる複数のサブグループへと分割し、該サブグループの各々が１つ又は複数のデータトラックに対応するものであり、
前記１つのデータトラックについて又は前記複数のデータトラックの各々毎に１つ又は複数のトラックチェックサムを計算して格納し、
前記サブグループの各々を少なくとも１つの個々の配列へと変換し、該配列の各々がデータトラックに１つずつ対応するものであり、
前記１つの配列又は複数の配列の各々の列をエンコードしてデータバイト及びパリティバイトからなる第１のエラー訂正コードワードを形成し、
前記１つの配列又は複数の配列の各々の行をエンコードしてデータバイト及びパリティバイトからなる第２のエラー訂正コードワードを形成し、
前記トラックチェックサムを計算するステップが、前記１つのトラックについて又は複数のトラックの各々について個々のトラックチェックサムを計算して、前記エラー訂正コードワードのデコード時に、データバイト中に誤訂正が存在する誤訂正コードワードが、対応するオリジナルのコードワードと同じ寄与を対応するトラックチェックサムに与えるという実質的にランダムな（無作為の）蓋然性しか有さないようにする、というものである。
【００１９】
本発明はまた、上記方法に従って格納されたデータを読み出すための方法へと拡張されるものである。該方法は、テープからデータを取り出し、該データから前記トラックチェックサムを抽出し、コードワードをデコードして各トラック毎のデータバイトを獲得し、該デコードされたデータバイトについてトラックチェックサムを計算し、それらチェックサムが一致しない場合に障害の発生を知らせる、という各ステップを有するものである。
【００２０】
好適には、前記データは、３レベルのエラー訂正を含み、前記トラックチェックサムが第２レベルのエラー訂正の後に使用されて第２のコードワード障害が知らされ、これにより、第２レベルのコードワード障害に対応する第３レベルのコードワード中のあらゆるバイトが識別され及び第３レベルのエラー訂正アルゴリズムに対して消跡としてマークされる。
【００２１】
本発明について上述してきたが、それらは、上記の本発明の特徴の組み合わせ又は以下で説明するように拡張することが可能である。
【００２２】
本発明は、様々な態様で実施することが可能なものであり、ここで図面を参照してかかる実施例を詳細に説明することとする。
【００２３】
【課題を解決するための手段】
【００２４】
【発明の実施の形態】
【００２５】
【実施例】
以下に示すテープ記憶システムの実施例は、DDS3規格（ECMA236に大要が説明されている）をベースとするものであり、第３レベル(C3)訂正アルゴリズムと、修正されたトラックチェックサムアルゴリズムとを含むものである。該修正されたトラックチェックサムアルゴリズムは、より信頼性の高いC2誤訂正標識であるチェックサムを提供するものである。該修正されたアルゴリズムに従って決定されるトラックチェックサムは、C2誤訂正（C3誤訂正が使用されない場合）の後、又はC3誤訂正の後に基本データの最終チェックとして使用することが可能なものである。以下でより詳細に説明するように、C3誤訂正が使用されない場合には、該修正されたトラックチェックサムアルゴリズムを使用することにより、最終チェックとしてC2誤訂正を検出するための遙かに信頼性の高い方法が提供される。またC3誤訂正が使用される場合には、C2誤訂正のチェック及びマークを高い信頼性で実行する能力は、C2修正不能コードワード及びC2誤訂正の両方をC3に対して消跡としてマークしてC3訂正コードの全能力を使用することが可能になることを意味するものとなる。
【００２６】
ここで図１を参照する。テープ上に格納されるべき基本データストリームは、基本グループモジュール10により384,296バイトの基本グループへとグループ化される。該基本グループモジュール10に続き、C3訂正プロセッサ14及びトラックチェックサム生成器20が配設されている。便宜上、C3訂正プロセッサ14及びトラックチェックサム生成器20は、サブグループにより導入されるバイト命名法（byte nomenclature）を用いて簡単に説明するが、かかる構成要素については以下で一層詳細に説明することとする。
【００２７】
基本グループが完成すると、該基本グループはG1モジュール12により、22個のG1サブグループへと分割される。各G1サブグループは、0〜17,467まで番号付けされた17,468バイトのサイズを有するものである。各G1サブグループはまた、1〜22（図２参照）の範囲の実行番号を１つずつ有している。エラー訂正コード(ECC3)プロセッサ14は、22個のG1サブグループの各々からデータを導出して23番目のG1サブグループを形成する。エラー訂正コードC3はGF(28)リードソロモンコード(46,44,3)である。GF(28)での計算は次のように規定されるべきである。
G(x)=x8+x4+x2+1
GF(28)における基本要素(primitive element)αは00000010である。
【００２８】
ECC3のインタリーブ深さ(interleave depth)は１トラックである。ECCバイトは次式を満たす。
HR×VR=0
前記トラックチェックサム生成器の多項式は次の通りである。
【００２９】
【数１】
0004290881.tif 000002
【００３０】
ここで、
n = 0,1,2,...,8733
Dx,yx = G1サブグループにおけるユーザデータバイト番号
y = G1サブグループ番号
Rx,23    x = ECC2 G2 サブグループにおけるパリティバイト番号
である。
【００３１】
エラー訂正コードC3は、記録されているデータグループにおける任意の２つの不良トラックを訂正することができるものである。
【００３２】
次いで、各G1サブグループのバイトがG2モジュール16によりランダム化(randomise)されてG2サブグループが形成される。該G2サブグループにおいては、全てのバイトは依然としてD0〜D17467に番号付けされている。それらの順番はG1サブグループの場合と同じである。次いで、G3モジュール18がG2サブグループを操作して、17468バイトの各G2サブグループが、（図３に示すように）G3サブグループのトラックAにおいてG2サブグループのグループバイトD0〜D8733、G3サブグループのトラックBにおいてG2サブグループのグループバイトD8734〜D17467、と配列されるようにする。各トラックにおいてバイトがワードへと割り当てられる。偶数番号が付されたバイトが下位バイトに割り当てられる一方、奇数番号が付されたバイトが上位バイトに割り当てられる。各トラックの最初のワード（ワード番号0）は、論理フレーム識別子（LFID）及びデータフォーマット識別子（DFID）として知られる２バイトを含む。
【００３３】
DFIDは、DDSフォーマットを示すものである。LFIDは、フレーム番号と23番目のフレーム（C3フレーム）の有無とを示すものである。
【００３４】
次いで、G3サブグループの各バイトが、
そのトラック（A又はB）、
そのバイト名（上位又は下位）
そのワード番号（0〜4367）
により識別される。
【００３５】
以下の説明では次の表記法を使用することとする。
【００３６】
Ailは、i番目のワードにおけるトラックAの下位バイトにより識別されるバイトを示す。
【００３７】
Aiuは、i番目のワードにおけるトラックAの上位バイトにより識別されるバイトを示す。
【００３８】
Bilは、i番目のワードにおけるトラックBの下位バイトにより識別されるバイトを示す。
【００３９】
Biuは、i番目のワードにおけるトラックBの上位バイトにより識別されるバイトを示す。
【００４０】
トラックチェックサム生成器20は、リードソロモンコードワード生成ルールとの相関性を有さないアルゴリズムに従ってトラックチェックサムを生成する。このため、該トラックチェックサムアルゴリズムは、各トラック毎にチェックサムとして算術加算を使用する。１トラック中のバイトが加算されて16ビットの結果が形成され、この場合、16ビットを越える桁上げは却下される（即ち、該加算はモジュロ２16で計算される）。トラックAについては、トラックチェックサム（TCS(A)）は次式により与えられる。
【００４１】
【数２】
0004290881.tif 000003
【００４２】
またトラックBについては次式の通りである。
【００４３】
【数３】
0004290881.tif 000004
【００４４】
LFID及びDFIDは、論理フレームID及びデータフォーマットIDであり、G3サブグループに関連する上述のような監視用バイトである。１トラック内のあらゆるC2コードワードにおける基本データバイトは全て、同一のトラックチェックサムに寄与するものである、ということに留意されたい。トラックチェックサムの計算は、算術加算であり、それ故、C2パリティバイトの計算に使用されるXOR演算とは全く相関性がない。
【００４５】
16ビットの算術チェックサムの場合、C2誤訂正が本質的にランダムであるとき、トラックチェックサムが変化しない蓋然性（即ち１／２16）は、「1.5×10-6」となる。
【００４６】
次いで、各G3サブグループがG4モジュール22によってG4サブグループ（C1,C2コードワード生成を含む）へと変換される。各G4サブグループは後述するように２つの配列対から構成される（図４参照）。符号、フラグメント番号、及びシリアル番号が、次式を用いて各バイトに割り当てられる。
0004290881.tif 000005
ここで図４を参照する。同図には、トラックA及びBに対応してプラス及びマイナスという名称が付された２つの配列が示されている。各配列において、各バイトは、そのフラグメント番号（0〜95）とそのシリアル番号（0〜123）とで識別される。
【００４７】
上記の式を適用することにより、図４に示す配列の非ハッチング部分にデータバイトが分配される。次いで、該テーブルの非ハッチング部分におけるデータバイトが、該配列内に既に割り当てられているバイトにわたって計算された２つのリードソロモンエラー検出及び訂正コードC1,C2を用いてエンコードされる。C1コードワードは列方向に延び、C2コードワードは行方向に延びる。
【００４８】
C2バイトは、0〜8又は87〜95の範囲のフラグメント番号を有する各フラグメントにおける0〜111の範囲のシリアル番号を有するバイト位置について、それ以外のフラグメントの全てにおける同一のシリアル番号を有するバイトから計算される。
【００４９】
次いで、C1バイトは、全てのフラグメントにおける112〜123の範囲のシリアル番号を有するバイト位置について、それと同一のフラグメントにおけるそれ以外の全てのバイトから計算される。0〜8又は87〜95の範囲のフラグメント番号を有するフラグメントでは、C1バイトは、以前に計算されたC2バイトから計算される。C1は、GF(28)リードソロモンコード（62,56,7）である。この表現は、コードワードが62バイト長であり、その内の56バイトがデータバイトであり、及び７バイトの区切り(separation)を有していることを示している。C2は、GF(28)リードソロモンコード（32,26,7）である。
【００５０】
GF(28)における計算は次式により規定される。
【００５１】
G(x)=x8+x4+x3+x2+1
GF(28)における基本要素αは、00000010である。
【００５２】
C1のインタリーブ深さは２バイトであり、このため、一配列のあらゆる列においては、偶数のシリアル番号を有するデータバイトは、該列のC1コードワードの内の１つに属し、奇数のシリアル番号を有するデータバイトは、同列における他のC1コードワードに属する。C2のインタリーブ深さは３フラグメントであり、このため、あらゆる行において第３のフラグメントは同じコードワードに属し、１行中に３つのC2コードワードが存在する。エラー訂正コード（ECC）バイトは、次の関係を満たす。
【００５３】
HP×VP = 0
HQ×VQ = 0
生成器の多項式は次の通りである。
【００５４】
【数４】
0004290881.tif 000006
【００５５】
（VP及びVQは以降で示す）
ここで、
Pij = C1バイト
Qij = C2バイト
i  = フラグメント番号
j  = シリアル番号
であり、C1の場合、
k = 0,1,...,95
l = 0,1
であり、k = 0,1,...,8 又は k = 87,88,...,95 の場合には、VP中のDijはQijと読まれ、
C2の場合には、
m = 0,1,2
n = 0,1,...,111
である。
【００５６】
【数５】
0004290881.tif 000007
【００５７】
G4サブグループの各フラグメントは、ヘッダプロセッサ24により変換されて、８バイトのヘッダを前置することにより132バイトのメインデータフラグメントとなる。該ヘッダは、図５に示すような制御及び監視データを含むものであるが、サブコードバイト番号０〜３について言及する必要がある。該サブコードバイトは、16個の４バイトパックアイテムとして配列されたサブコード情報を含むものである。各トラックは96個のフラグメントを含み、該フラグメントの各々は、１つのパックアイテムを組み込んだそれ自体のヘッダを有しており、各パックアイテムが１トラックについて６回繰り返されるようになっている。該実施態様では、図６に示すように、トラックA,Bについてパックアイテム番号５がトラックチェックサム専用に割り当てられる。
【００５８】
したがって、本装置は、最初に基本データを基本グループへとグループ化し、次いで該基本グループが22個のサブグループへと分割され、それらの各サブグループが１フレームでテープ上に書き込まれる。各フレームは２トラック(A,B)からなり、該トラックの各々は、基本データと、それ以外の当該フォーマットにより付与された監視及び誤差訂正用データとを含んでいる。テープ上の１グループは、22個のフレームと追加のエラー訂正コードフレームとから構成される（C3訂正が実施される場合）。
【００５９】
C3パリティバイトは、１グループ内で44トラックにわたり計算される。この場合、各トラックから１バイトが取得されて、２つのパリティバイトを有するC3コードワードが生成される。該C3パリティバイトは、テープ上の１グループに付与される上述の23番目のフレームに格納される。C3の使用は随意選択的なものである。
【００６０】
C1,C2,C3コードについての生成器の多項式は、α0での累乗根を有しており、このため、良好なコードワードでは、該コードワード中の全バイトのXORの結果として常にゼロが得られることになる、ということに留意されたい。
【００６１】
したがって、各基本グループは、22個（又はC3訂正が存在する場合には23個）のG4サブグループへと変換され、該G4サブグループの各々は、96個のフラグメントから各々構成される２つのトラックを備えたものとなる。
【００６２】
次いで、（ヘッダを有する）該フラグメントが、8:10エンコーダ26において８ビット→10ビットエンコーディングを受けた後、従来の態様でテープに書き込まれる。
【００６３】
データの読み出し時には、マルチレベルインタリーブ式リードソロモンエラー訂正コーディングを利用して、読み出されるデータにおけるエラーの検出及び訂正が行われる。
【００６４】
リードソロモンコードは、テープから読み出されるコードワード内のエラーの訂正を可能にする。訂正の際に、N個のパリティバイトを有するリードソロモンコードワードは、2e+v≦N(eはランダムエラーの数、vはコードワード内の既知の位置におけるエラー(消跡)の数)である場合には常に訂正される。また、2e+v＞Nである場合には、コードワードは訂正不能であり誤訂正される可能性がある。誤訂正は、訂正中には検出することができない。
【００６５】
リードソロモンコードワードを訂正するためのアルゴリズムは、多くの標準的な書物、例えば、Richard E Blahut著の「Theory and Practice of Error Control Codes」(ISDN 0-201-10102-5, Addison-Wesley Publishing Company Inc.)に記載されている。本引用をもってその開示内容を本書に取り込んだものとする。
【００６６】
適当なアルゴリズムの例として、Euclidean Division アルゴリズムがある。
【００６７】
かかるアルゴリズムがコードワードに適用された場合、その結果は、コードワードが良好であり訂正は行わないことを示す「適正(correct)」、コードワードがエラーを有しており当該アルゴリズムにより訂正されることを示す「訂正可能」、訂正アルゴリズムがコードワードを訂正して有効ではあるが誤ったコードワードが生成されたことを示す「誤訂正」、又はコードワードが不正でありアルゴリズムにより不正なものとして識別されたことを示す「訂正不能」となる。誤訂正及び訂正不能は「失敗」と呼ばれる。
【００６８】
本出願人によるDDS3の実施においては、C1訂正不能コードワードはC2訂正については消跡としてマークされる。
【００６９】
ここで図４を参照する。C1コードワードはインタリーブ深さ「２」を有し各列内に延びるものであることが想起されよう。したがって、C2訂正アルゴリズムが例えばフラグメント９において最初のコードワードを訂正不能なものとして識別した場合、これは、フラグメント９中の偶数シリアル番号におけるバイトをそれに対応する（訂正不能が生じる）C2コードワードにおいて消跡としてマークすることができることを意味する。
【００７０】
また、誤訂正は次のレベルで検出される（及び訂正される）ことになる。このため、該マルチレベルインタリーブ式エラー訂正方式は、テープからのデータの読み出し時におけるエラーに対して高い許容性を提供するものとなる。
【００７１】
トラックチェックサムは、C2（C3の不使用時）又はC3訂正の後に基本データの最終チェックとして用いられる。テープからデータを読み出す装置により不正な基本データが検出されることが重要である。
【００７２】
C3が使用されない場合には、訂正不能なC2コードワードは、C2訂正を行う際に容易に検出することができる。しかし、C2誤訂正は、C2訂正中に検出することができず、トラックチェックサムにより検出されるのが望ましい。トラックチェックサムの計算に関する上述のアルゴリズムは、リードソロモンコードワード生成ルールとは全く相関性がなく、このためC2誤訂正を検出するための信頼性の高い方法を提供するものとなる。
【００７３】
また、C3が使用される場合には、C2訂正不能コードワード及びC2誤訂正コードワードをC3に対して消跡としてマークしてC3コードの全能力を訂正に利用できるようにすることが望ましい。この場合も、トラックチェックサムアルゴリズムがリードソロモンコードワード生成ルールとの相関性を全く有さないため、これを達成することが可能となる。
【００７４】
したがって、テープから読み出されたデータが、デコーダ28による10:8デコーディングを受けて、ヘッダを含むデータフラグメントが得られる。該ヘッダが再フォーマットモジュール30により抽出され、トラックチェックサム値がトラックチェックサムチェッカー32により読み出される。次いでデータフラグメントがG4再フォーマッタ34によりG4サブグループフォーマットへと戻され、次いで該G4サブグループがC1及びC2訂正アルゴリズムを受けて、C1及びC2コードワードにおける訂正可能なエラー及びその場所が検出される。これには、上述のようにC1訂正不能をC2アルゴリズムに対して消跡としてマークして６つのC2パリティバイトから得ることができる能力を良好に利用することが含まれる。
【００７５】
C2訂正の後、C3訂正ステージが存在しない場合には、コードワードが再フォーマットモジュール36〜40によりG1サブグループフォーマットへと戻される。トラックチェックサムが再計算され、これが、トラックチェックサムチェッカー32により、ヘッダから取り出されたトラックチェックサムと比較されて、C2誤訂正（C2訂正アルゴリズムによりマークされたC2訂正不能）が識別される。
【００７６】
C1及びC2訂正に続いてC3訂正が存在する場合には、トラックチェックサムチェッカーがC2誤訂正をC3訂正アルゴリズムモジュール42に対して消跡としてマークし、これにより、２つの消跡がマークされている場合に、C3訂正アルゴリズムがダブルエラー訂正を行うのが容易となり、C3コードの全能力を訂正に用いることが可能となる。次いで、トラックチェックサムを、最終データチェックとしてC3訂正済データに用いることが可能となる。
【００７７】
エラー訂正の失敗
以下の（ランダムエラーについてのみ有効な）分析は、C2誤訂正を高い信頼性で消跡としてマークすることでC2ダブルエラー訂正を可能にすることにより達成される訂正率の改善を示すものである。
【００７８】
Pは、１チャネルにおけるランダムビットエラーの確率として規定され、Pc1は、良好なC1訂正の確率として規定されるものである。
【００７９】
【数６】
0004290881.tif 000008
【００８０】
C2失敗率の推定値は次式により求めることができる。
【００８１】
【数７】
0004290881.tif 000009
【００８２】
ここで、消跡はC1訂正では使用されない（このため62バイトのC1コードワード中の３バイトしか補正できない）ものと仮定する。表１は様々な値のPについてPc1を示したものである。C1訂正率、即ち、C1コードワードが１つ又は２つ以上のエラーを含む確率は、同表に示すとおりである。
【００８３】
【表１】
0004290881.tif 000010
【００８４】
C3シングルエラー訂正を用いる場合にはC3失敗率は次式により与えられる。
【００８５】
【数８】
0004290881.tif 000011
【００８６】
またC3ダブルエラー訂正を用いる場合にはC3失敗率は次式により与えられる。
【００８７】
【数９】
0004290881.tif 000012
【００８８】
前記表１の最上行の値を適用することにより、上記式からC2失敗に関する値が次表の通り与えられる。
【００８９】
【表２】
0004290881.tif 000013
【００９０】
次いで、C3ダブルエラー訂正は、失敗率における少なくとも８桁の大きさの改善を与え（表１の他の行はこれと同等の良好な改善を示すものとなり）、これは明らかに重要な利益である。
【００９１】
上述のアルゴリズムによる全体的な利益を計算するために、C2誤訂正の確率を決定する必要があるが、これはチェックサムからは取り出されない。これは、C3へ渡されるC2消跡フラグにおける「エラー率」である。上記表１は、C2失敗に関する幾つかの望ましくない場合を与えるものであるが、そのうちの何パーセントが誤訂正であるかを推定する必要がある。これは、計算が困難なものであるが、誤訂正において生成されたエラー位置が0〜255の範囲にわたってランダムである場合には、４が0〜31（32はC2コードワードの長さ）の範囲内にある可能性は、(32/256)4=2.4×10-4となる。これに基づき、現行（従来）のトラックチェックサムアルゴリズムと本書で説明するアルゴリズムとの比較を表３に示す。
【００９２】
【表３】
0004290881.tif 000014
【００９３】
したがって、上記構成は、既存の方式よりも少なくとも４桁の大きさの改善を提供するものである。該フォーマットでは特別なバイトは必要とされない。これはハードウェアで容易に実施できる。16ビット加算器は多数のゲートを使用することがなく、インタリーブも存在しないからである。
【図面の簡単な説明】
【図１】  本発明による修正されたDDS3フォーマットを用いた磁気テープに対する情報の格納及び読み出しの概要を表すブロック図である。
【図２】  DDS3フォーマットで実施されたデータフォーマットにおける基本グループから分離されたG2サブグループを示す説明図である。
【図３】  G1サブグループのランダム化及び再配置の後に得られるG3サブグループを示す説明図である。
【図４】  G3サブグループから得られるG4サブグループの構造を示す説明図である。
【図５】  メインデータフラグメントの構造を示す説明図である。
【図６】  トラックチェックサムを含むパックアイテムの構造を示す説明図である。
【符号の説明】
10      基本グループモジュール
12      G1モジュール
14      C3訂正プロセッサ
16      G2モジュール
18      G3モジュール
20      トラックチェックサム生成器
22      G4モジュール
24      ヘッダプロセッサ
26      8:10エンコーダ
28      10:8デコーダ
30      再フォーマットモジュール
32      トラックチェックサムチェッカー
34      G4再フォーマッタ
36〜40  再フォーマットモジュール
42      C3訂正アルゴリズムモジュール
【図１】
0004290881.tif 000015
【図２】
0004290881.tif 000016
【図３】
0004290881.tif 000017
【図４】
0004290881.tif 000018
【図５】
0004290881.tif 000019
【図６】
0004290881.tif 000020