(57)【特許請求の範囲】
【請求項１】
マルチトラック・データ・テープにデータを書込むための方法であって、前記方法は、
ユーザ・データ・シンボルのストリームを受取るステップであって、前記ストリームは少なくとも１つのデータ・セットを含む、ステップと、
各データ・セットを複数個Ｓの非符号化サブデータ・セットにセグメント化するステップであって、各サブデータ・セットはＫ２行およびＫ１列を有するアレイを含む、ステップと、
各非符号化サブデータ・セットに対して、
サブデータ・セットの各行に対する長さ（Ｎ１−Ｋ１）バイトのＣ１パリティ・バイトを生成し、前記Ｃ１パリティ・バイトを前記行の最後に追加することによって、長さＮ１の符号化Ｃ１コードワードを形成するステップと、
前記サブデータ・セットの各列に対する長さ（Ｎ２−Ｋ２）バイトのＣ２パリティ・バイトを生成し、前記Ｃ２パリティ・バイトを前記列の最後に追加することによって、長さＮ２の符号化Ｃ２コードワードを形成し、これによって長さＮ２バイトのＣ２コードワードを有する符号化サブデータ・セットが生成されるステップと、
前記Ｓ個の符号化サブデータ・セットから複数個の（Ｓ×Ｎ２）部分コードワード・オブジェクト（ＰＣＯ）を形成するステップであって、各ＰＣＯはヘッダおよびＣ１コードワードを含む、ステップと、
各ＰＣＯを、前記ＰＣＯの前記ヘッダ内の情報に従って論理データ・トラック上にマップするステップと、
各論理データ・トラック上で隣接するＰＣＯをマージしてコードワード・オブジェクト（ＣＯ）を形成するステップであって、各ＣＯは少なくとも２つの隣接するＰＣＯを含む、ステップと、
前記ＣＯを変調符号化して同期パターンを加えることによってＴ個の同期ＣＯを得るステップであって、ここでＴは前記データ・テープ上の並行アクティブ・トラックの数である、ステップと、
Ｔ個の同期ＣＯを前記データ・テープに同時に書込むステップと
を含む、方法。
【請求項２】
各ＰＣＯをマップするステップは、サブデータ・セットの前記Ｓ個とし、ｆ（ｍ）＝ｍでありｇ（ｍ）＝ｍであるとして、ＣＷＩインデックスＣＷＩ＿ｎｕｍｂｅｒがｍを有する各ＰＣＯに、式ｔ＝ｍｏｄ（７ｆｌｏｏｒ（ｆ（ｍ）／Ｓ）＋ｇ（ｍ），Ｔ）に基づく論理トラック番号ｔを割当てるステップを含み、ここでｆｌｏｏｒ（ｘ）は実数ｘの整数部分を示し、ｍｏｄ（ａ，Ｔ）はＴによる除算の剰余を示し、前記剰余は０，１，…，Ｔ−１の範囲である、請求項１に記載の方法。
【請求項３】
前記ｆ（ｍ）＝ｍであり前記ｇ（ｍ）＝ｍであることを、ｆ（ｍ）＝ｍでありｇ（ｍ）＝ｆｌｏｏｒ（ｍ／２）であると置き換える、請求項２に記載の方法。
【請求項４】
前記テープの場所ｉ＝ｆｌｏｏｒ（ｍ／Ｔ）にＣＷＩ＿ｎｕｍｂｅｒ＝ｍを有するＰＣＯを書込むステップをさらに含み、ここでｆｌｏｏｒ（ｘ）は実数ｘの整数部分を示し、ｍｏｄ（ａ，Ｔ）はＴによる除算の剰余を示し、前記剰余は０，１，…，Ｔ−１の範囲である、請求項２に記載の方法。
【請求項５】
論理データ・トラック上に各ＰＣＯをマップするステップは、ｍ＝ｍｏｄ（ｉ，２）＋２Ｔｆｌｏｏｒ（ｉ／２）＋２ｍｏｄ（ｔ−７ｍｏｄ（ｆｌｏｏｒ（ｉ／２），Ｔ），Ｔ）によって特徴付けられ、ここでＰＣＯセット・インデックスｉ＝ｆｌｏｏｒ（ｍ／Ｔ）である、請求項２に記載の方法。
【請求項６】
Ｔ＝１６、Ｎ２＝９６、およびＳ＝３２であり、各ＰＣＯをマップするステップは、ＰＣＯをＣＷインタリーブ番号ｍからｔ＝ｍｏｄ｛２ｆｌｏｏｒ（ｍ／２）＋６ｆｌｏｏｒ（ｍ／３２）＋ｍｏｄ［ｆｌｏｏｒ（ｍ／１６），２］＋ｍｏｄ［ｆｌｏｏｒ（ｍ／２５６），２］−２ｍｏｄ［ｆｌｏｏｒ（ｍ／２５６），２］×ｍｏｄ［ｆｌｏｏｒ（ｍ／１６），２］，１６｝に従うトラック番号にマップするステップをさらに含む、請求項１に記載の方法。
【請求項７】
各ＰＣＯを論理データ・トラック上にマップするステップは、ＰＣＯセット・インデックスｉとしてｍ＝３２ｆｌｏｏｒ（ｉ／２）＋ｍｏｄ（ｉ，２）＋２ｍｏｄ［５ｆｌｏｏｒ（ｉ／２）＋ｆｌｏｏｒ（ｔ／２），８］＋１６ｍｏｄ［ｍｏｄ（ｔ，２）＋ｍｏｄ（ｆｌｏｏｒ（ｉ／１６），２），２］によって特徴付けられる、請求項６に記載の方法。
【請求項８】
データ記憶テープ・デバイスであって、前記データ記憶テープ・デバイスは、
ホスト・インタフェースであって、該ホスト・インタフェースを通じてデータ・セットを含むユーザ・データ・シンボルのストリームが受取られる、ホスト・インタフェースと、
前記データ・セットを複数個Ｓの非符号化サブデータ・セットにセグメント化するために動作可能なセグメント化モジュールであって、各サブデータ・セットはＫ２行およびＫ１列を有するアレイを含む、セグメント化モジュールと、
サブデータ・セットの各行に対する長さ（Ｎ１−Ｋ１）バイトのＣ１パリティ・バイトを生成し、前記Ｃ１パリティ・バイトを前記行の最後に追加して長さＮ１の符号化Ｃ１コードワードを形成するために動作可能なＣ１エンコーダと、
前記サブデータ・セットの各列に対する長さ（Ｎ２−Ｋ２）バイトのＣ２パリティ・バイトを生成し、前記Ｃ２パリティ・バイトを前記列の最後に追加して長さＮ２の符号化Ｃ２コードワードを形成するために動作可能なＣ２エンコーダであって、これによって長さＮ２バイトのＣ２コードワードを有する符号化サブデータ・セットが生成される、Ｃ２エンコーダと、
Ｓ個の符号化サブデータ・セットから、各々がヘッダおよびＣ１コードワードを含む複数個の（Ｓ×Ｎ２）部分コードワード・オブジェクト（ＰＣＯ）を形成するために動作可能な部分コードワード・オブジェクト（ＰＣＯ）フォーマッタと、
各ＰＣＯを、前記ＰＣＯの前記ヘッダ内の情報に従って論理データ・トラック上にマップするために動作可能なＰＣＯインタリーバと、
各論理データ・トラック上で隣接するＰＣＯをマージしてＣＯにするために動作可能なコードワード・オブジェクト・フォーマッタであって、各ＣＯは少なくとも２つの隣接するＰＣＯを含む、コードワード・オブジェクト・フォーマッタと、
前記ＣＯを符号化して同期ＣＯにするために動作可能な変調エンコーダと、
Ｔ個の同期ＣＯを前記テープに同時に書込むために動作可能な書込ヘッドを含む書込チャネルであって、ここでＴはデータ記憶テープ上の並行アクティブ・トラックの数に等しい、書込チャネルと
を含む、データ記憶テープ・デバイス。
【請求項９】
前記ＰＣＯインタリーバは、サブデータ・セットの前記Ｓ個とし、ｆ（ｍ）＝ｍでありｇ（ｍ）＝ｍであるとして、ＣＷＩインデックスＣＷＩ＿ｎｕｍｂｅｒがｍを有する各ＰＣＯに、式ｔ＝ｍｏｄ（７ｆｌｏｏｒ（ｆ（ｍ）／Ｓ）＋ｇ（ｍ），Ｔ）に基づく論理トラック番号ｔを割当てることによって、各ＰＣＯを論理データ・トラック上にマップするために動作可能であり、ここでｆｌｏｏｒ（ｘ）は実数ｘの整数部分を示し、ｍｏｄ（ａ，Ｔ）はＴによる除算の剰余を示し、前記剰余は０，１，…，Ｔ−１の範囲である、請求項８に記載のデータ記憶テープ・デバイス。
【請求項１０】
前記ｆ（ｍ）＝ｍであり前記ｇ（ｍ）＝ｍであることを、ｆ（ｍ）＝ｍでありｇ（ｍ）＝ｆｌｏｏｒ（ｍ／２）であることと置き換える、請求項９に記載のデータ記憶テープ・デバイス。
【請求項１１】
前記書込チャネルは、前記テープの場所ｉ＝ｆｌｏｏｒ（ｍ／Ｔ）にＣＷＩ＿ｎｕｍｂｅｒ＝ｍを有するＰＣＯを書込むことによって、Ｔ個の同期ＣＯを前記テープに同時に書込む、請求項９に記載のデータ記憶テープ・デバイス。
【請求項１２】
Ｔ＝１６、Ｎ２＝９６、およびＳ＝３２であり、さらに前記ＰＣＯインタリーバは、ＰＣＯをＣＷインタリーブ番号ｍからｔ＝ｍｏｄ｛２ｆｌｏｏｒ（ｍ／２）＋６ｆｌｏｏｒ（ｍ／３２）＋ｍｏｄ［ｆｌｏｏｒ（ｍ／１６），２］＋ｍｏｄ［ｆｌｏｏｒ（ｍ／２５６），２］−２ｍｏｄ［ｆｌｏｏｒ（ｍ／２５６），２］×ｍｏｄ［ｆｌｏｏｒ（ｍ／１６），２］，１６｝に従うトラック番号にマップすることによって各ＰＣＯをマップし、ここでｆｌｏｏｒ（ｘ）は実数ｘの整数部分を示し、ｍｏｄ（ａ，Ｔ）はＴによる除算の剰余を示し、前記剰余は０，１，…，Ｔ−１の範囲である、請求項８に記載のデータ記憶テープ・デバイス。
【請求項１３】
前記ＰＣＯインタリーバが各ＰＣＯを論理データ・トラック上にマップすることは、ＰＣＯセット・インデックスｉとしてｍ＝３２ｆｌｏｏｒ（ｉ／２）＋ｍｏｄ（ｉ，２）＋２ｍｏｄ［５ｆｌｏｏｒ（ｉ／２）＋ｆｌｏｏｒ（ｔ／２），８］＋１６ｍｏｄ［ｍｏｄ（ｔ，２）＋ｍｏｄ（ｆｌｏｏｒ（ｉ／１６），２），２］によって特徴付けられる、請求項１２に記載のデータ記憶テープ・デバイス。
【請求項１４】
マルチトラック・データ・テープにデータを書込むためのコンピュータ・プログラムであって、
ユーザ・データ・シンボルのストリームを受取るための命令であって、前記ストリームは少なくとも１つのデータ・セットを含む、命令と、
各データ・セットを複数個Ｓの非符号化サブデータ・セットにセグメント化するための命令であって、各サブデータ・セットはＫ２行およびＫ１列を有するアレイを含む、命令と、
各非符号化サブデータ・セットに対して、
サブデータ・セットの各行に対する長さ（Ｎ１−Ｋ１）バイトのＣ１パリティ・バイトを生成し、前記Ｃ１パリティ・バイトを前記行の最後に追加することによって、長さＮ１の符号化Ｃ１コードワードを形成するための命令と、
前記サブデータ・セットの各列に対する長さ（Ｎ２−Ｋ２）バイトのＣ２パリティ・バイトを生成し、前記Ｃ２パリティ・バイトを前記列の最後に追加することによって、長さＮ２の符号化Ｃ２コードワードを形成するための命令であって、これによって長さＮ２バイトのＣ２コードワードを有する符号化サブデータ・セットが生成される、命令と、
前記Ｓ個の符号化サブデータ・セットから複数個の（Ｓ×Ｎ２）部分コードワード・オブジェクト（ＰＣＯ）を形成するための命令であって、各ＰＣＯはヘッダおよびＣ１コードワードを含む、命令と、
各ＰＣＯを、前記ＰＣＯの前記ヘッダ内の情報に従って論理データ・トラック上にマップするための命令と、
各論理データ・トラック上で隣接するＰＣＯをマージしてコードワード・オブジェクト（ＣＯ）を形成するための命令であって、各ＣＯは少なくとも２つの隣接するＰＣＯを含む、命令と、
前記ＣＯを変調符号化して同期パターンを加えることによってＴ個の同期ＣＯを得るための命令であって、ここでＴは前記データ・テープ上の並行アクティブ・トラックの数である、命令と、
Ｔ個の同期ＣＯを前記データ・テープに同時に書込むための命令と、
をコンピュータに実行させるコンピュータ・プログラム。
【請求項１５】
各ＰＣＯをマップするための前記命令は、サブデータ・セットの前記Ｓ個とし、ｆ（ｍ）＝ｍでありｇ（ｍ）＝ｍであるとして、ＣＷＩインデックスＣＷＩ＿ｎｕｍｂｅｒがｍを有する各ＰＣＯに、式ｔ＝ｍｏｄ（７ｆｌｏｏｒ（ｆ（ｍ）／Ｓ）＋ｇ（ｍ），Ｔ）に基づく論理トラック番号ｔを割当てるための命令を含み、ここでｆｌｏｏｒ（ｘ）は実数ｘの整数部分を示し、ｍｏｄ（ａ，Ｔ）はＴによる除算の剰余を示し、前記剰余は０，１，…，Ｔ−１の範囲である、請求項１４に記載のコンピュータ・プログラム。
【請求項１６】
データ・セットを含むユーザ・データ・シンボルのストリームを符号化するための装置であって、
前記データ・セットを複数個Ｓの非符号化サブデータ・セットにセグメント化するために動作可能なセグメント化モジュールであって、各サブデータ・セットはＫ２行およびＫ１列を有するアレイを含む、セグメント化モジュールと、
サブデータ・セットの各行に対する長さ（Ｎ１−Ｋ１）バイトのＣ１パリティ・バイトを生成し、前記Ｃ１パリティ・バイトを前記行の最後に追加して長さＮ１の符号化Ｃ１コードワードを形成するために動作可能なＣ１エンコーダと、
前記サブデータ・セットの各列に対する長さ（Ｎ２−Ｋ２）バイトのＣ２パリティ・バイトを生成し、前記Ｃ２パリティ・バイトを前記列の最後に追加して長さＮ２の符号化Ｃ２コードワードを形成するために動作可能なＣ２エンコーダであって、これによって長さＮ２バイトのＣ２コードワードを有する符号化サブデータ・セットが生成される、Ｃ２エンコーダと、
各ＰＣＯを、前記ＰＣＯのヘッダ内の情報に従って論理データ・トラック上にマップするために動作可能な部分コードワード・オブジェクト・インタリーバと、
各論理データ・トラック上で隣接するＰＣＯをマージしてＣＯにするために動作可能なコードワード・オブジェクト・フォーマッタであって、各ＣＯは少なくとも２つの隣接するＰＣＯを含む、コードワード・オブジェクト・フォーマッタと、
前記ＣＯを符号化して同期ＣＯにするために動作可能な変調エンコーダと
を含む、装置。
【請求項１７】
前記ＰＣＯインタリーバは、サブデータ・セットの前記Ｓ個とし、ｆ（ｍ）＝ｍでありｇ（ｍ）＝ｍであるとして、ＣＷＩインデックスＣＷＩ＿ｎｕｍｂｅｒがｍを有する各ＰＣＯに、式ｔ＝ｍｏｄ（７ｆｌｏｏｒ（ｆ（ｍ）／Ｓ）＋ｇ（ｍ），Ｔ）に基づく論理トラック番号ｔを割当てることによって、各ＰＣＯを論理データ・トラック上にマップするために動作可能であり、ここでｆｌｏｏｒ（ｘ）は実数ｘの整数部分を示し、ｍｏｄ（ａ，Ｔ）はＴによる除算の剰余を示し、前記剰余は０，１，…，Ｔ−１の範囲である、請求項１６に記載の装置。
【請求項１８】
計算システムにコンピュータ読取可能コードを組込むステップを含む、計算基盤を配置するための方法であって、前記コードは前記計算システムと組合わせて、
ユーザ・データ・シンボルのストリームを受取るステップであって、前記ストリームは少なくとも１つのデータ・セットを含む、ステップと、
各データ・セットを複数個Ｓの非符号化サブデータ・セットにセグメント化するステップであって、各サブデータ・セットはＫ２行およびＫ１列を有するアレイを含む、ステップと、
各非符号化サブデータ・セットに対して、
サブデータ・セットの各行に対する長さ（Ｎ１−Ｋ１）バイトのＣ１パリティ・バイトを生成し、前記Ｃ１パリティ・バイトを前記行の最後に追加することによって、長さＮ１の符号化Ｃ１コードワードを形成するステップと、
前記サブデータ・セットの各列に対する長さ（Ｎ２−Ｋ２）バイトのＣ２パリティ・バイトを生成し、前記Ｃ２パリティ・バイトを前記列の最後に追加することによって、長さＮ２の符号化Ｃ２コードワードを形成し、これによって長さＮ２バイトのＣ２コードワードを有する符号化サブデータ・セットが生成される、ステップと、
前記Ｓ個の符号化サブデータ・セット前記Ｓ符号化サブデータ・セットから複数個の（Ｓ×Ｎ２）部分コードワード・オブジェクト（ＰＣＯ）を形成するステップであって、各ＰＣＯはヘッダおよびＣ１コードワードを含む、ステップと、
各ＰＣＯを、前記ＰＣＯの前記ヘッダ内の情報に従って論理データ・トラック上にマップするステップと、
各論理データ・トラック上で隣接するＰＣＯをマージしてコードワード・オブジェクト（ＣＯ）を形成するステップであって、各ＣＯは少なくとも２つの隣接するＰＣＯを含む、ステップと、
前記ＣＯを変調符号化して同期パターンを加えることによってＴ個の同期ＣＯを得るステップであって、ここでＴは前記データ・テープ上の並行アクティブ・トラックの数である、ステップと、
Ｔ個の同期ＣＯを前記データ・テープに同時に書込むステップと
を行い得る、方法。
【請求項１９】
各ＰＣＯをマップするステップは、サブデータ・セットの前記Ｓ個とし、ｆ（ｍ）＝ｍでありｇ（ｍ）＝ｍであるとして、ＣＷＩインデックスＣＷＩ＿ｎｕｍｂｅｒがｍを有する各ＰＣＯに、式ｔ＝ｍｏｄ（７ｆｌｏｏｒ（ｆ（ｍ）／Ｓ）＋ｇ（ｍ），Ｔ）に基づく論理トラック番号ｔを割当てるステップを含み、ここでｆｌｏｏｒ（ｘ）は実数ｘの整数部分を示し、ｍｏｄ（ａ，Ｔ）はＴによる除算の剰余を示し、前記剰余は０，１，…，Ｔ−１の範囲である、請求項１８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般的に、磁気テープに記録すべきデータをフォーマットすることに関し、特に、８の倍数個のトラックからの読取およびそこへの書込を同時に行うために、ヘッド当り８の倍数のトランスデューサ／センサを有するテープ・ドライブに適応するための、調整可能なＥＣＣフォーマットおよびインタリービング・プロセスに関する。
【背景技術】
【０００２】
リニア・テープ・オープン（Ｌｉｎｅａｒ  Ｔａｐｅ  Ｏｐｅｎ：ＬＴＯ）フォーマットの世代３および４は、２次元製品コードに基づくエラー訂正コード（ｅｒｒｏｒ−ｃｏｒｒｅｃｔｉｎｇ  ｃｏｄｅｓ：ＥＣＣ）を用いる。Ｃ１コードは２次元アレイの行に沿って配置される。それは長さ２４０の偶数／奇数インタリーブされたリード−ソロモン（Ｒｅｅｄ−Ｓｏｌｏｍｏｎ：ＲＳ）コードであって、長さ４８０の行を生じさせる。Ｃ２コードはアレイの列に沿って配置される。それは長さ６４、次元５４のＲＳコードである。コードワードは６４×４８０のサイズの２次元アレイであり、それらはＬＴＯ規格においてサブデータ・セットと呼ばれる。将来の世代のドライブは１６より多くのトラックに同時に書込むことが予想される。しかし、ＬＴＯフォーマットのすべての現行の世代（世代１から世代４）は上記のＣ２符号化スキームに基づいており、これは関連するインタリービングとともに、それぞれ１６、２４、３２または４８（またはその他の８の倍数）の並行トラックを読取／書込するための、ヘッド当り１６、２４、３２または４８（またはその他の８の倍数）のトランスデューサ／センサを有するヘッドを支持する将来のテープドライブ・システムに適応できない。さらに、将来の世代のドライブは、ＬＴＯフォーマット（世代１から世代４）のコードワード対と呼ばれる２ウェイの偶数／奇数コートワード・インタリーブ（ｃｏｄｅｗｏｒｄ  ｉｎｔｅｒｌｅａｖｅｓ：ＣＷＩ−２）の代わりに、長さ９６０の４ウェイ・コートワード・インタリーブ（ＣＷＩ−４）からなる行を有する、より長いサブデータ・セットを用いることが予期される。ＬＴＯ世代１から世代４においては、これらのＣＷＩ−２にコードワード対ヘッダを与えて対にグループ分けすることにより、コードワード・オブジェクト（ｃｏｄｅｗｏｒｄ  ｏｂｊｅｃｔｓ：ＣＯ）を形成する。書込障害が起こったときは、ＣＯ全体を再書込する。もしＣＷＩ−４からなるサブデータ・セット行に同じＣＯ再書込戦略を適用すれば、効率に損失が生じる。なぜなら、ＣＯ当り２つのＣＷＩ−４のうち一方のみが障害を有することがほとんどであり、他方のＣＷＩ−４は再書込みする必要がないためである。ＣＷＩ−４はＣＷＩ−２の２倍の長さであるため、効率の損失は前者の場合の方が後者よりも約２倍大きくなる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本発明は、マルチトラック・テープにデータを書込むための方法、装置およびコンピュータ・プログラム製品を提供する。
【課題を解決するための手段】
【０００４】
実施形態の１つにおいて、方法はユーザ・データ・シンボルのストリームを受取るステップを含み、このストリームはデータ・セットを含み、この方法はさらにデータ・セットを複数個Ｓの非符号化サブデータ・セットにセグメント化するステップを含み、各サブデータ・セットはＫ２行およびＫ１列を有するアレイを含む。各非符号化サブデータ・セットに対して、サブデータ・セットの各行に対するＮ１−Ｋ１Ｃ１パリティ・バイトが生成されて行の最後に追加されることによって、長さＮ１の符号化Ｃ１コードワードが形成される。同様に、各非符号化サブデータ・セットに対して、サブデータ・セットの各列に対するＮ２−Ｋ２Ｃ２パリティ・バイトが生成されて列の最後に追加されることによって、長さＮ２の符号化Ｃ２コードワードが形成され、これによってＮ２Ｃ１コードワードを有する符号化サブデータ・セットが生成される。データ・セット当りＳ×Ｎ２のＣ１コードワードのすべてに特定のコードワード・ヘッダが与えられて、複数個のＳ×Ｎ２部分コードワード・オブジェクト（ｐａｒｔｉａｌ  ｃｏｄｅｗｏｒｄ  ｏｂｊｅｃｔｓ：ＰＣＯｓ）が形成される。各ＰＣＯは、ＰＣＯのヘッダ内の情報に従って論理データ・トラック上にマップされる。各論理データ・トラック上で隣接するＰＣＯはマージされてＣＯを形成し、各ＣＯは少なくとも２つの隣接するＰＣＯを含む。各ＣＯは変調符号化され、さまざまな同期パターンを付加することによって同期ＣＯにマップされる。次いでＴ個の同期ＣＯがテープに同時に書込まれ、ここでＴはテープ上の並行アクティブ・トラックの数に等しい。
【０００５】
別の実施形態において、データ記憶テープ・デバイスは、データ・セットを含むユーザ・データ・シンボルのストリームを受取るためのホスト・インタフェースと、データ・セットを複数個Ｓの非符号化サブデータ・セットにセグメント化するために動作可能なセグメント化モジュールとを含み、各サブデータ・セットはＫ２行およびＫ１列を有するアレイを含む。Ｃ１エンコーダは、サブデータ・セットの各行に対するＮ１−Ｋ１Ｃ１パリティ・バイトを生成し、Ｃ１パリティ・バイトを行の最後に追加して長さＮ１の符号化Ｃ１コードワードを形成するために動作可能であり、Ｃ２エンコーダは、サブデータ・セットの各列に対するＮ２−Ｋ２Ｃ２パリティ・バイトを生成し、Ｃ２パリティ・バイトを列の最後に追加して長さＮ２の符号化Ｃ２コードワードを形成するために動作可能であり、これによってＮ２Ｃ１コードワードを有する符号化サブデータ・セットが生成される。部分コードワード・オブジェクト・フォーマッタは、Ｓ個の符号化サブデータ・セットから複数個の（Ｓ×Ｎ２）部分コードワード・オブジェクト（ＰＣＯ）を形成するために動作可能であり、各ＰＣＯはヘッダおよびＣ１コードワードを含む。部分コードワード・オブジェクト・インタリーバは、ＰＣＯのヘッダ内の情報に従って各ＰＣＯを論理データ・トラック上にマップするために動作可能である。コードワード・オブジェクト・フォーマッタは、各論理データ・トラック上で隣接するＰＣＯをマージしてＣＯにするために動作可能であり、各ＣＯは少なくとも２つの隣接するＰＣＯを含む。変調エンコーダはＣＯを符号化して、変調符号化ＣＯに加えてさまざまな同期パターン含有する同期ＣＯにするために動作可能である。書込ヘッドを含む書込チャネルは、Ｔ個の同期ＣＯをテープに同時に書込むために動作可能であり、ここでＴはテープ上の並行アクティブ・トラックの数に等しい。
【図面の簡単な説明】
【０００６】
【図１】本発明を実現し得る磁気テープ・ドライブのブロック図である。
【図２】インタリーブされたＣ１およびＣ２  ＥＣＣを含む符号化サブデータ・セットを模式的に表す図である。
【図３】ユーザ・データ・シンボルのストリームからデータ・セット・レイアウトを形成するために用いられるＬＴＯ世代４規格を一般化した構成要素のブロック図である。
【図４】図４Ａおよび図４Ｂは、それぞれ非符号化および符号化サブデータ・セットを模式的に表す図である。
【図５】本発明とともに用いられ得る［９６，８４，１３］−ＲＳコードに対するＣ２エンコーダのロジック図である。
【図６】ＬＴＯ世代４データ・フォーマットのコードワード・オブジェクト（ＣＯ）を示す図である。
【図７】ＣＯインタリービングに基づく記録媒体の１６トラックに沿ったサブデータ・セットの分布の例を示す図である。
【図８】本発明のＰＣＯを示す図である。
【図９】ユーザ・データ・シンボルのストリームからデータ・セット・レイアウトを形成するために用いられる本発明の構成要素のブロック図である。
【図１０】本発明の代替的なＣＯを示す図である。
【図１１】ＰＣＯインタリービングに基づく記録媒体の１６トラックに沿ったサブデータ・セットの分布の例を示す図である。
【図１２】ＬＴＯ世代４データ・フォーマットの同期ＣＯを示す図である。
【図１３】本発明の代替的な同期ＣＯを示す図である。
【図１４】符号化プロセスならびにＰＣＯ、ＣＯおよび同期ＣＯの生成を示す流れ図である。
【発明を実施するための形態】
【０００７】
本明細書に記載される機能ユニットのいくつかは、その実現独立性をより特定的に強調するためにモジュールとしてラベル付けされている。たとえば、モジュールは、カスタムＶＬＳＩ回路またはゲート・アレイ、たとえばロジック・チップ、トランジスタ、もしくはその他のディスクリート部品などの市販の半導体を含むハードウェア回路として実現されてもよい。加えてモジュールは、たとえばフィールド・プログラマブル・ゲート・アレイ、プログラマブル・アレイ・ロジック、プログラマブル・ロジック・デバイスなどのプログラマブル・ハードウェア・デバイスにおいて実現されてもよい。加えてモジュールは、さまざまな種類のプロセッサによる実行のためにソフトウェアにおいて実現されてもよい。実行可能コードの識別されるモジュールは、たとえばオブジェクト、プロシージャまたは関数などとして組織されてもよいコンピュータ命令の１つまたはそれ以上の物理ブロックまたは論理ブロックなどを含んでもよい。実行可能コードのモジュールは、単一の命令であってもたくさんの命令であってもよく、いくつかの異なるコード・セグメント、異なるプログラムおよびいくつかのメモリ・デバイスに分散されていてもよい。
【０００８】
さらに、記載される本発明の特徴、構造または特性は、１つまたはそれ以上の実施形態においてあらゆる好適な態様で組合わされてもよい。以下の説明においては、本発明の実施形態の完全な理解を与えるために、たとえばプログラミング、ソフトウェア・モジュール、ハードウェア・モジュール、ハードウェア回路などの例など、多数の特定の詳細が提供される。しかし、関連技術分野の当業者は、１つもしくはそれ以上の特定の詳細がなくても、または他の方法、構成要素などを伴っても本発明を実施できることを認識するだろう。他の場合には、本発明の局面を不明瞭にすることを避けるために、周知の構造、材料または動作は詳細に図示または記載していない。
【０００９】
図１は、本発明を組込み得るデータ・テープ・ドライブ１００の高レベルブロック図である。記録されるべきデータは、ホスト・インタフェース１０２を通じてホスト（図示せず）からドライブ１００へと送信される。データはＣ１エンコーダ１０４において第１の符号化を受け、ＤＲＡＭバッファ・コントローラ１０６に送られる。Ｃ１符号化されたデータはＣ２エンコーダ１０８において第２の符号化を受け、ＤＲＡＭバッファ１１０に保存される。その後データはＳＲＡＭバッファ１１２に保存され、フォーマッタ１１４においてフォーマットされる。フォーマットされたデータは書込チャネルに送られ、次いでテープ１２０にデータを記録する書込ヘッド１１８に送られる。
【００１０】
テープ１２０からデータを読返すときは、読取ヘッド１２２がデータを検出して読取チャネルに送る。次いでデータはデフォーマッタ１２６で処理され、ＣＯは検証器１２８において検証される。次いでデータは復号化されて、それを要求するホストに送られる。
【００１１】
リニア・テープ・オープン（ＬＴＯ）フォーマットは、データ・セット（テープに書込まれる最小単位）およびサブデータ・セットという概念に基づいている。データ・セットは２種類のデータを含有する。これは、ユーザ・データおよびデータ・セットに関する管理情報であり、後者はデータ・セット情報テーブル（Ｄａｔａ  Ｓｅｔ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｔａｂｌｅ：ＤＳＩＴ）の中にある。エラーまたは欠陥によるデータ損失を最小限にするために、すべてのデータはエラー訂正コード（ＥＣＣ）によって保護されている。データ・セットはいくつかのサブデータ・セットを含み、各サブデータ・セットは行に配置されたデータを含有する。サブデータ・セット行はユーザ・データを含んでもよいし、ＤＳＩＴを含んでもよい。図２に示されるとおり、各行は２つのインタリーブされたバイト・シーケンスからなる。第１レベルＥＣＣ（Ｃ１  ＥＣＣ）は、各行について偶数バイトおよび奇数バイトに対して別々に計算される。その結果得られるＣ１  ＥＣＣの偶数および奇数パリティ・バイトは、同じくインタリーブされたやり方で対応する行に追加される。ＥＣＣ保護された行はコードワード対（Ｃｏｄｅｗｏｒｄ  Ｐａｉｒ：ＣＷＰ）である。偶数バイトは偶数Ｃ１コードワードを形成し、奇数バイトは奇数Ｃ１コードワードを形成する。各列に対して第２レベルＥＣＣ（Ｃ２  ＥＣＣ）が計算され、その結果得られるＣ２  ＥＣＣパリティ・バイトは対応する列に追加される。ＥＣＣ保護された列はＣ２コードワードである。
【００１２】
このようにＣ１およびＣ２  ＥＣＣによって保護されたときのサブデータ・セットは、テープに書込まれる最小ＥＣＣ保護単位である。各サブデータ・セットはＥＣＣに関して独立である。つまり、サブデータ・セット中のエラーはそのサブデータ・セットのみに影響する。あらゆるＥＣＣアルゴリズムの能力は、パリティ・バイトの数に依存し、その訂正能力によって示される。Ｃ１コードワードに対して計算された所与の数のＮ１−Ｋ１Ｃ１パリティ・バイトに対しては、そのコードワードの２つのインタリーブの各々においてｆｌｏｏｒ（（Ｎ１−Ｋ１）／４）までのエラーが訂正されてもよく、ここでｆｌｏｏｒ（ｘ）とは実数ｘの整数部分を示す。加えて、Ｃ２コードワードに対して計算された所与の数のＮ２−Ｋ２Ｃ２パリティ・バイトに対しては、そのＣ２コードワードにおいてｆｌｏｏｒ（（Ｎ２−Ｋ２）／２）までのエラーまたはＮ２−Ｋ２消去が訂正されてもよい。
【００１３】
同じサブデータ・セット中に複数のエラーがあると、Ｃ１またはＣ２訂正能力の性能を圧倒するため、データを読取るときにエラーが起こり得ることが認められるだろう。エラーは、たとえば小さい粒子または小さい媒体の欠陥などの非常に小さな事象によってもたらされることがある。エラーは、たとえばスクラッチ、トラッキング・エラーまたは機械的原因などのもっと大きな事象によってもたらされることもある。
【００１４】
単一の大きなエラーが単一のサブデータ・セット中の複数のコードワードに影響する可能性を減らすために、いくつかの書込方法では、各サブデータ・セットからのコードワードをテープ表面の縦および横方向になるべく遠く離して置く。したがって、単一のエラーが同じサブデータ・セットからの複数のコードワードに影響してもＥＣＣ訂正能力が圧倒されない。同じサブデータ・セットからのコードワードを空間的に分離することはリスクを低減し、これはマルチトラック記録フォーマットに対して以下の態様で達成される。同時に記録されるトラックのセットの各トラックに対して、１つのサブデータ・セットからのコードワード対を別のサブデータ・セットからのコードワード対と組合わせることによって、コードワード・クワッド（Ｃｏｄｅｗｏｒｄ  Ｑｕａｄ：ＣＱ）を形成する。その結果得られるＣＱを、複数の記録トラックのうちの１つに書込む。同様にしてコードワード対を組合わせることによって残りのトラックすべてに対してＣＱを形成し、すべてのコードワード対が異なるサブデータ・セットからのものであるようにする。同時に書込まれるＣＱの群をＣＱセットと呼ぶ。
【００１５】
図３のブロック図に示されるとおり、データ・セット・セグメント化モジュール３０２においてユーザ・データ・シンボルのストリームをセグメント化することによって、指定された固定サイズのデータ・セットが形成される。データ・セットはさらに、Ｓ個の非符号化サブデータ・セットに分割される。サブデータ・セット構造は、Ｃ１／Ｃ２製品コードに基づくＥＣＣモジュール３０４に適合される。非符号化サブデータ・セットは、サイズＫ２×Ｋ１のバイトの２次元アレイを含み、ここでＫ１およびＫ２はそれぞれＣ１およびＣ２コードの次元である（図４Ａ）。Ｃ１エンコーダ３０６は行において動作し、各行にパリティ・バイトを付加する。Ｃ２エンコーダ３０８はＣ１符号化された列において動作し、各列にパリティを追加する。その結果得られるＣ１／Ｃ２符号化サブデータ・セットはバイトのＮ２×Ｎ１アレイであり、ここでＮ１およびＮ２はそれぞれＣ１およびＣ２コードの長さである（図４Ｂ）。
【００１６】
図５に示されるとおり、Ｃ２エンコーダ３０８による符号化は、線形フィードバック・シフト・レジスタ（ｌｉｎｅａｒ  ｆｅｅｄｂａｃｋ  ｓｈｉｆｔ  ｒｅｇｉｓｔｅｒ：ＬＦＳＲ）５００によって行われてもよく、そのフィードバック係数は［９６，８４，１３］−ＲＳコードの生成多項式によって与えられる。ＬＦＳＲ５００の初期状態は、オールゼロの状態である。ＲＳコードワードのＮ２−Ｋ２＝１２パリティ・バイトは、ＬＦＳＲを通じてすべての系統的なＫ２＝８４データ・バイトをクロックし、レジスタＲ０からＲ１１を読出すことによって得られる。
【００１７】
ＬＴＯ−３／４においては、Ｓ＝６４サブデータ・セット（またはコードワード）がデータ・セット（ＤＳ）を形成し、Ｃ１コードの長さはＮ１＝４８０であり、Ｃ２コードの長さはＮ２＝６４である。ＤＳ内のＣ１コードワードは、サブデータ・セット（ｓｕｂｄａｔａ  ｓｅｔ：ＳＤＳ）番号（０からＳ−１の範囲）と、サブデータ・セット（コードワード・アレイ）内の行番号とによって完全に決定される。ＬＴＯ−３／４において、この割当はコードワード対指示と呼ばれる。これは以下の式によって定められる。
Ｃ１−ｃｏｄｅｗｏｒｄ＿ｎｕｍｂｅｒ＝ＳＤＳ＿ｎｕｍｂｅｒ＋６４×ｒｏｗ＿ｎｕｍｂｅｒ，      （１）
ここでＳＤＳ＿ｎｕｍｂｅｒ＝０，１，２，…，Ｓ−１であり、ｒｏｗ＿ｎｕｍｂｅｒ＝０，１，…，６３である。ＬＴＯ−３／４に対して、Ｃ１−ｃｏｄｅｗｏｒｄ＿ｎｕｍｂｅｒインデックスは０から４０９５の値を取る。
【００１８】
図６に示される構造６００はコードワード・オブジェクト（ＣＯ）構造であり、Ｃ１コードワードおよび関連するヘッダを含む基本単位の編成を反映する。
【００１９】
ＥＣＣモジュール３０４に続き、ＣＯフォーマッタ３１０は、２つの１０バイトのヘッダ６０２、６０４と、ＤＳ当りＳ×Ｎ２＝４０９６のＣ１コードワードのうちの２つのＣ１コードワード６０６、６０８とからなるＣＯを形成する。つまり、Ｓ×Ｎ２／２＝２０４８のＣＯが存在して、０から２０４７までの番号が付けられている。インデックスＣＯ＿ｎｕｍｂｅｒを有するＣＯ構造６００は、以下のとおり関連付けられるインデックスＣ１−ｃｏｄｅｗｏｒｄ＿ｎｕｍｂｅｒを有する２つのＣ１コードワードを含有する。第１および第２のＣ１コードワードのインデックスＣ１−ｃｏｄｅｗｏｒｄ＿ｎｕｍｂｅｒ＿０およびＣ１−ｃｏｄｅｗｏｒｄ＿ｎｕｍｂｅｒ＿１は、それぞれ以下により与えられる。
Ｃ１−ｃｏｄｅｗｏｒｄ＿ｎｕｍｂｅｒ＿０＝２×ＣＯ＿ｎｕｍｂｅｒ      （２）
Ｃ１−ｃｏｄｅｗｏｒｄ＿ｎｕｍｂｅｒ＿１＝２×ＣＯ＿ｎｕｍｂｅｒ＋１    （３）
したがって、ＣＯ中の２つのＣ１コードワードは、連続するＳＤＳ＿ｎｕｍｂｅｒインデックスを有する２つのＳＤＳから取られる。
【００２０】
ＣＯはＴ個のＣＯのバッチでテープ上に同時に書込まれ、ここでＴは並行アクティブ・トラックの数である。ＣＯインタリーバ３１２は、ＤＳの各ＣＯに０，１，…，Ｔ−１の範囲の論理トラック番号ｔを割当てる。つまり、ＤＳのＳ×Ｎ２／２のＣＯは、それらの連続するＣＯ＿ｎｕｍｂｅｒインデックスに基づいてＴ個のＣＯのバッチにグループ分けされ、次いでこれらのバッチがＴアクティブ・トラックに書込まれる。これによって、各バッチの１つのＣＯがＴトラックの１つに、ＣＯインタリーバ３１２によって決定される１対１の態様で書込まれる。
【００２１】
ＣＯインタリーバは、インデックスｎ＝ＣＯ＿ｎｕｍｂｅｒを有する各ＣＯに、以下の式に基づく論理トラック番号ｔを割当てることによって定められる。
ｔ＝ｍｏｄ（７ｆｌｏｏｒ（２ｎ／Ｓ）＋ｎ，Ｔ）      （４）
ここでｆｌｏｏｒ（ｘ）は実数ｘの整数部分を示し、ｍｏｄ（ａ，Ｔ）はＴによる除算の剰余を示し、剰余は０，１，…，Ｔ−１の範囲である。
【００２２】
図７においては、Ｔ＝１６論理トラックに沿ったデータ・セット・レイアウトを示すことによって、Ｓ＝３２ＳＤＳを有するＤＳに対する上記の式（４）に基づくＣＯインタリービングの結果が示される。９６個の正方形は、ＳＤＳ＿ｎｕｍｂｅｒ０および１を有するＳＤＳの９６個のＣＯに対応する。なお、テープに沿ったインタリーバ細分性はＣＯであり、すなわちｘ軸はＣＯの長さで測定される。Ｔ＝１６トラックが並行して書込まれるため、ＣＯ＿ｎｕｍｂｅｒ＝ｎのＣＯはＤＳの始めからｊ＝ｆｌｏｏｒ（ｎ／Ｔ）の場所になる。
【００２３】
再書込を考慮すると、ＣＯよりも小さい再書込単位を有することが望ましい。この理由から、図８に示されるような部分コードワード・オブジェクト（ＰＣＯ）が定められ、これはＣＷＩおよびＣＷＩヘッダからなり、式（４）によって指定される対応のＣＷＩ＿ｎｕｍｂｅｒ（図面においては４）を含む。
【００２４】
ＰＣＯインタリービングを伴う書込経路におけるデータ・フローを図９に示す。図３に示されるデータ・フローと同様に、データ・セット・セグメント化モジュール９０２においてユーザ・データ・シンボルのストリームをセグメント化することによって、指定された固定サイズのデータ・セットが形成される。データ・セットはさらに、Ｓ個の非符号化サブデータ・セットに分割される。サブデータ・セット構造は、Ｃ１／Ｃ２製品コードに基づくＥＣＣモジュール９０４に適合される。Ｃ１エンコーダ９０６は行において動作して各行にパリティ・バイトを付加し、Ｃ２エンコーダ９０８はＣ１符号化された列において動作して各列にパリティを追加することによって、Ｃ１／Ｃ２符号化サブデータ・セットが生成される。
【００２５】
ＥＣＣモジュール９０４に続き、ＰＣＯフォーマッタ９１０がＰＣＯを形成する。図８に示されるＰＣＯは、１２バイトのＣＷＩヘッダと９６０バイトのＣＷＩとからなる。
【００２６】
データ・セット当りＳ×Ｎ２のＣＷＩが存在するため、データ・セット当りＳ×Ｎ２のＰＣＯも存在する。各ＰＣＯは、ＰＣＯのヘッダ内の情報に従って論理データ・トラック上にマップされる。
【００２７】
ＰＣＯインタリーバ９１２は、ＰＣＯに動作してそれらをＴ並行論理トラック上にマップする。各論理データ・トラックにおいて、隣接するＰＣＯはＣＯフォーマッタ９１４においてマージされてＣＯを形成し、各ＣＯは少なくとも２つの隣接するＰＣＯを含む。すなわち、ＰＣＯインタリーバ９１２は、同じトラックに沿って隣接するＰＣＯの対をグループ化してＣＯにする（図１０を参照）ＣＯフォーマッタ９１４よりも前に動作する。
【００２８】
ＰＣＯインタリーバ９１２は、インデックスｍ＝ＣＷＩ＿ｎｕｍｂｅｒを有する各ＰＣＯに、以下の式に基づく論理トラック番号ｔを割当てることによって定められる。
ｔ＝ｍｏｄ（７ｆｌｏｏｒ（ｍ／Ｓ）＋ｍ，Ｔ）      （５）
【００２９】
より一般的なＰＣＯインタリーバは、以下の式を用いて得られる。
ｔ＝ｍｏｄ（７ｆｌｏｏｒ（ｆ（ｍ）／Ｓ）＋ｇ（ｍ），Ｔ）      （６）
この式は予め定められた関数ｆ（．）およびｇ（．）を伴う。式（５）は（６）の特殊なケースであり、ここでｆ（ｍ）＝ｍであり、ｇ（ｍ）＝ｍである。この一般式の別の興味深いケースは以下のとおりである。
ｔ＝ｍｏｄ（７ｆｌｏｏｒ（ｍ／Ｓ）＋ｆｌｏｏｒ（ｍ／２），Ｔ）      （７）
【００３０】
なお（７）は、ＣＷＩインデックスｍ＝ＣＷＩ＿ｎｕｍｂｅｒと、（２）および（３）で与えられるＣＯインデックスｎ＝ＣＯ＿ｎｕｍｂｅｒとの関係を用いることによって、（４）から得られる。
【００３１】
図１１においては、Ｔ＝１６論理トラックに沿ったデータ・セット・レイアウトを示すことによって、Ｓ＝３２ＳＤＳを有するＤＳに対する（７）に基づくＰＣＯインタリービングの結果が示される。ＳＤＳ＿ｎｕｍｂｅｒ０を有するＳＤＳのＮ２＝９６ＰＣＯがドットで表され、ＳＤＳ１の９６ＰＣＯが十字形でマークされる。図１１においてドットおよび十字形で示される連続したＰＣＯは、図７において正方形で示されるＣＯに対応する。このことはＣＯインタリーバ（４）とＰＣＯインタリーバ（７）との等価性を示す。図１１において、テープに沿ったインタリーバ細分性はＰＣＯであり、すなわちｘ軸はＰＣＯの長さで測定される。Ｔ＝１６トラックが並行して書込まれるため、ＣＷＩ＿ｎｕｍｂｅｒ＝ｍのＰＣＯはＤＳの始めからｉ＝ｆｌｏｏｒ（ｍ／Ｔ）の場所になる。インタリーバ細分性が２倍細かくなることは、再書込の際にＣＯの代わりにＰＣＯが再書込されるために、再書込による損失を約２分の１に低減できるという利点を有する。
【００３２】
データ・セット・レイアウトから明らかであるとおり、Ｔ論理トラックに同時に書込まれるのはＴ個のＰＣＯである。Ｔ個のＰＣＯのこうしたセットの各々をＰＣＯセットと呼ぶ。データ・セット当りＳ×Ｎ２のＰＣＯが存在するため、Ｓ×Ｎ２／ＴのＰＣＯセットが存在する。データ・セット・レイアウト中のすべてのＰＣＯセットは０からＳ×Ｎ２／Ｔ−１までラベル付けされる。各ＣＷＩ＿ｎｕｍｂｅｒ  ｍはＰＣＯセット・インデックスｉ＝ｆｌｏｏｒ（ｍ／Ｔ）を定める。逆に、各ＣＷＩ＿ｎｕｍｂｅｒ  ｍはトラック番号ｔおよびＰＣＯセット・インデックスｉ＝ｆｌｏｏｒ（ｍ／Ｔ）によって一意に定められる。この「逆マップ（ｉｎｖｅｒｓｅ  ｍａｐ）」は、ＰＣＯインタリービングを特徴付けるための等価のやり方である。特に、（７）の逆マップは以下によって与えられる。
ｍ＝ｍｏｄ（ｉ，２）＋２Ｔｆｌｏｏｒ（ｉ／２）＋２ｍｏｄ（ｔ−７ｍｏｄ（ｆｌｏｏｒ（ｉ／２），Ｔ），Ｔ）      （８）
【００３３】
ＣＯインタリーバはＰＣＯインタリーバとは異なる細分性を有する。前者はＣＯ＿ｎｕｍｂｅｒ  ｎの自然の順序に基づくのに対し、後者はＣＷＩ＿ｎｕｍｂｅｒ  ｍの自然の順序に基づく。ＣＯフォーマッタはＣＯ＿ｎｕｍｂｅｒとＣＷＩ＿ｎｕｍｂｅｒとの間のリンクを提供する。しかし、ＣＯフォーマッタの関係（２）および（３）は、ＣＯ＿ｎｕｍｂｅｒおよびＣＷＩ＿ｎｕｍｂｅｒの自然の順序に適合しない。たとえば、ＣＯ＿ｎｕｍｂｅｒの順序に基づくと、インデックス０および１を有する連続するＣＷＩはテープに同時に書込まれない。まず、インデックス０を有するＣＷＩが、ＣＷＩ＿ｎｕｍｂｅｒ２，４，…，２Ｔ−２を有するＴ−１個のＣＷＩと同時に書込まれる。次いで、インデックス１を有するＣＷＩが、ＣＷＩ＿ｎｕｍｂｅｒ３，５，…，２Ｔ−１を有するＴ−１個のＣＷＩと同時に書込まれる。よって、ＤＳレイアウトの生成のためにＣＯ＿ｎｕｍｂｅｒ  ｎの一連の順序で進行することは、ＣＷＩ＿ｎｕｍｂｅｒ  ｍの一連の順序で進行することと同じではない。この違いを克服して同一のＤＳレイアウトを得るために、すべてのＣＷＩインデックスのセット、すなわちセット｛０，１，…，Ｓ×Ｎ２−１｝に固定置換ｐを適用して、所望の再順序付けを達成してもよい。特定的に、この置換は以下によって与えられる。
ｐ（ｍ）＝２Ｔｆｌｏｏｒ（ｍ／（２Ｔ））＋Ｔｍｏｄ（ｍ，２）＋ｆｌｏｏｒ（ｍｏｄ（ｍ，２Ｔ）／２）      （９）
ここでｍｏｄ（ａ，ｂ）はａのｂによる除算の剰余を示す。よって、ＣＷＩ＿ｎｕｍｂｅｒ  ｍをＤＳレイアウトに対する基準として用いるとき、再順序付け置換を取り入れる必要があり、一般的なＰＣＯインタリーバの式（６）における２つの関数はｆ（ｍ）＝ｐ（ｍ）およびｇ（ｍ）＝ｆｌｏｏｒ（ｐ（ｍ）／２）である。このことは、一般化したＣＷＩインタリーバが、（４）に基づくＣＯインタリーバと同じデータ・セット・レイアウトを生成できることを示す。
【００３４】
上記のＰＣＯインタリーバの設計は（５）または（７）に基づいている。これらの等式を修正して、代替的なＰＣＯインタリーバを得ることができる。以下に、Ｔ＝１６トラック、Ｃ２長さＮ２＝９６、およびデータ・セット当りＳ＝３２サブデータ・セットに対するこうした代替的なＰＣＯインタリーバの説明を提供する。ＣＷＩ＿ｎｕｍｂｅｒ  ｍからトラック番号への「直接マップ」は、以下の式およびｉ＝ｆｌｏｏｒ（ｍ／Ｔ）によって与えられるＰＣＯセット割当によって定められる。
ｔ＝ｍｏｄ｛２ｆｌｏｏｒ（ｍ／２）＋６ｆｌｏｏｒ（ｍ／３２）＋ｍｏｄ［ｆｌｏｏｒ（ｍ／１６），２］＋ｍｏｄ［ｆｌｏｏｒ（ｍ／２５６），２］−
２ｍｏｄ［ｆｌｏｏｒ（ｍ／２５６），２］×ｍｏｄ［ｆｌｏｏｒ（ｍ／１６），２］，１６｝      （１０）
ＣＷＩ＿ｎｕｍｂｅｒ  ｍをすべてのＰＣＯセット・インデックスｉおよび論理トラックｔに割当てる逆インタリービング・マップは以下によって与えられる。
ｍ＝３２ｆｌｏｏｒ（ｉ／２）＋ｍｏｄ（ｉ，２）＋２ｍｏｄ［５ｆｌｏｏｒ（ｉ／２）＋ｆｌｏｏｒ（ｔ／２），８］
＋１６ｍｏｄ［ｍｏｄ（ｔ，２）＋ｍｏｄ（ｆｌｏｏｒ（ｉ／１６），２），２］
（１１）
【００３５】
このマッピングを表１に示す。影付のセルは、サブデータ・セット番号０のＰＣＯに対応する。表１より、図９に示されるＣＯフォーマッタ９１４によってＰＣＯの対がグループ化されてＣＯとなる様子が明らかである。すなわち、固定された論理トラック番号ｔに対して、ＰＣＯインデックス２ｉおよび２ｉ＋１を有する２つのＰＣＯが組合わされてＣＯとなり、この順序でテープに書込まれる。たとえば、ＣＷＩインデックス（１６，１７）および（５８，５９）を有する２対のＰＣＯは２つの連続するＣＯにグループ分けされ、次いで論理トラックｔ＝１に書込まれる。
【００３６】
ＰＣＯ対のＣＯへのグループ化を行うための代替的なやり方もある。たとえば、各ＣＯ内のＰＣＯ対をスワップして、奇数ＰＣＯインデックス２ｉ＋１を有するＰＣＯが偶数ＰＣＯインデックス２ｉを有するものの前に書込まれてもよい。さらに、こうしたスワッピングがＰＣＯインデックスｉの関数であってもよく、もしＰＣＯインデックスｉが｛３２，３３，…，６３｝、｛９６，９７，…，１２７｝および｛１６０，１６１，…，１９１｝の範囲であれば、すべてのＰＣＯがＣＯ内でスワップされてもよい。こうした特定的なスワッピング規則を逆インタリーバ・マップに容易に取り入れることができる。たとえば、先のＰＣＯインデックス依存的スワッピングは、（１１）の右手側の項ｍｏｄ（ｉ，２）を項ｍｏｄ（ｍｏｄ（ｉ，２）＋ｍｏｄ（ｆｌｏｏｒ（ｉ／３２），２），２）で置換することによって得られる。その結果、修正されたＣＷＩ＿Ｎｕｍｂｅｒ割当表が得られる。この修正された表は、｛３２，３３，…，６３｝、｛９６，９７，…，１２７｝および｛１６０，１６１，…，１９１｝の範囲のＰＣＯインデックスｉを有するすべてのＰＣＯ対のスワッピングによって、表１とは異なっている。
【００３７】
表１
Ｔ＝１６トラック、Ｃ２長さＮ２＝９６およびＳ＝３２サブデータ・セットを有する代替的なＰＣＯインタリーバのＣＷＩ＿Ｎｕｍｂｅｒ割当
【００３８】
【表１】
0005341207.tif 000002
【表２】
0005341207.tif 000003
【表３】
0005341207.tif 000004
【表４】
0005341207.tif 000005
【表５】
0005341207.tif 000006
【表６】
0005341207.tif 000007
【００３９】
それぞれ図９および図３によって示されるＰＣＯインタリービングまたはＣＯインタリービングの後、ＣＯをテープに書込む前に、ＣＯは変調符号化され、ＶＦＯ、順方向同期、再同期、および逆方向同期のフィールドを挿入することによって、同期コードワード・オブジェクト（ｓｙｎｃｈｒｏｎｉｚｅｄ  ｃｏｄｅｗｏｒｄ  ｏｂｊｅｃｔ：ＳＣＯ）構造に変換される（図１２および図１３を参照）。ＬＴＯ−４において、ヘッダおよびＣＷＩ−２はコードワード対と呼ばれ、率１６／１７ＲＬＬエンコーダに通されることによって、それぞれ長さ８５および４０８０のＲＬＬ符号化ビット・シーケンスをもたらす。より一般的には、ヘッダ部分に対して率ＲＨのＲＬＬエンコーダを用い、ＣＷＩに対して率ＲのＲＬＬエンコーダを用いて、ＣＯ構造を変調符号化できる。ＣＷＩ−４に基づくＣＯ構造に対して得られるＳＣＯ構造を図１３に示しており、ここでＶＦＯ、順方向同期、再同期、および逆方向同期のフィールドは、それぞれ何らかの好適な長さＬＶＦＯ、ＬＦＳ、ＬＲＳ、およびＬＦＳを有する。
【００４０】
本明細書に記載されるインタリービング・スキームは、デッド・トラックに対するロバスト性およびストライプ・エラー（すなわち、すべてのトラックにわたるエラー）に対するロバスト性の増加を提供することが意図される。ストライプ・エラーに対するＥＣＣ／ＣＯインタリービング・スキームまたはＥＣＣ／ＰＣＯインタリービング・スキームのロバスト性は、（ｉ）Ｃ２コードのパラメータ［Ｎ２，Ｋ２，ｄｍｉｎ］、（ｉｉ）各データ・セット（ＤＳ）内のサブデータ・セット（ＳＤＳ）の数Ｓによって与えられるインタリービングの深さ、および（ｉｉｉ）並列チャネル（トラック）の数Ｔの３つの要素に依存する。
【００４１】
ストライプ・エラーの場合には、デコーダが以下のとおりに動作する。Ｃ１デコーダは、いくつかのサブデータ・セットのうちの特定の行が訂正不能であることを検出し、これらの行の消去フラグをＣ２デコーダに与える。Ｃ２デコーダは消去復号を行い、誤訂正を避けるためにＭバイトのマージンを保ちながら、サブデータ・セット当り最大Ｎ２−Ｋ２−Ｍの消去を訂正できる。テープに沿ったストライプ・エラーの伸長が（Ｓ／２）×（Ｎ２−Ｋ２−Ｍ）／Ｔ  ＳＣＯ以下であるとき、エラーに影響されるＣＯは（Ｓ／２）×（Ｎ２−Ｋ２−Ｍ）以下であり、これらの誤ったＣＯは影響されたＤＳのＳ／２対のサブデータ・セットにわたって逆ＣＯインタリービング・マップによって均等に分布される。ＰＣＯインタリービングの場合には、誤った（Ｓ／２）×（Ｎ２−Ｋ２−Ｍ）のＣＯはＳ×（Ｎ２−Ｋ２−Ｍ）のＰＣＯに相当し、これらはＳサブデータ・セットにわたって逆ＰＣＯインタリービング・マップによって均等に分布される。よってどちらの場合にも、各サブデータ・セットは最大Ｎ２−Ｋ２−Ｍの消去行を含有することとなり、それらは訂正可能であるため、ＳＣＯ単位による最大ストライプ・エラー長（ｍａｘｉｍｕｍ  ｓｔｒｉｐｅ  ｅｒｒｏｒ  ｌｅｎｇｔｈ：ＭＳＥＬ）は以下によって与えられる。
ＭＳＥＬ＝Ｓ×（Ｎ２−Ｋ２−Ｍ）／（２Ｔ）      （１２）
なお、テープに沿ったＭＳＥＬの絶対長［ｍｍ］はＳＣＯの長さ［ｍｍ］に依存する。
【００４２】
チャネル・エラーがないときに許容できるデッド・トラックの最大数（ｍａｘｉｍｕｍ  ｎｕｍｂｅｒ  ｏｆ  ｄｅａｄ  ｔｒａｃｋｓ：ＭＮＤＴ）も類似の態様で導くことができる。特定的には、次式
ＭＮＤＴ＝ｆｌｏｏｒ（（Ｎ２−Ｋ２）／（Ｎ２／Ｔ））      （１３）
を用いてデッド・トラックの最大数を計算できる。
【００４３】
ＭＳＥＬおよびＭＮＤＴ特性の点からは、ＣＯインタリーバ（４）と、（５）または（７）に基づくＰＣＯインタリーバとは等価である。よって下記の表ＩＩ−ＩＩＩはＣＯインタリービングおよびＰＣＯインタリービングの両方に対して有効である。
【００４４】
ＬＴＯ−４のＳＣＯ構造である同期コードワード・クワッド（ｓｙｎｃｈｒｏｎｉｚｅｄ  ｃｏｄｅｗｏｒｄ  ｑｕａｄ：ＳＣＱ）に基づいて、表２はＣ２コード設計の特定の構成と、最大ストライプ・エラー長およびデッド・トラック支持に関する特性とを示す。表２において、消去訂正マージンＭ＝２と仮定されている。ＬＴＯ−４のＣ２コード（表２の第１行を参照）に比べて、Ｎ２＞６４を有するすべてのＣ２コードは３．７％改善されたフォーマット効率（ｆｏｒｍａｔ  ｅｆｆｉｃｉｅｎｃｙ：ＦＥ）を有する。これらすべての場合において、その結果がＣＯインタリービング式（４）またはＰＣＯインタリービング式（５）もしくは（７）を適用することが強調されるべきである。
【００４５】
表２
ＣＷＩ−２に基づくＳＣＯ構造に対する特定のＣ２コード構成
【００４６】
【表７】
0005341207.tif 000008
【００４７】
表３においては、Ｔ＝１６並列トラックおよびＣＷＩ−４に基づくＳＣＯ構造に対するＣ２コードの２つの実施形態に対して結果をまとめている。なお、長さ９６のＣ２コードを有するスキームＥＣＣ−１は、ＰＣＯインタリーバ（５）または（７）によっても実現できるし、表１において指定される代替的なＰＣＯインタリーバを適用することによっても実現できる。その結果得られる３つのインタリーバは、同じＭＳＥＬおよびＭＮＤＴを達成する。ＣＷＩ−４の長さ［ｍｍ］はＣＷＩ−２の長さのおよそ２倍である。よって、たとえば２０ＳＣＱの最大ストライプ・エラー長は、それぞれ表２および表３における１０ＳＣＯに相当する。
【００４８】
表３
ＣＷＩ−４に基づくＳＣＯ構造およびＴ＝１６トラックに対する、提案されるＣ２コード構成
【００４９】
【表８】
0005341207.tif 000009
【００５０】
図１４の流れ図は、前述のプロセスをまとめたものである。ホストからユーザ・データ・シンボルのストリームが受取られ、このストリームは少なくとも１つのデータ・セットを含む（ステップ１４００）。各データ・セットは複数個Ｓの非符号化サブデータ・セットにセグメント化され、各サブデータ・セットはＫ２行およびＫ１列を有するアレイを含む（ステップ１４０２）。次いで各非符号化サブデータ・セットが符号化される（ステップ１４０４）。各非符号化サブデータ・セットの各行に対してＮ１−Ｋ１Ｃ１パリティ・バイトが生成され（ステップ１４０６）、行の最後に追加されることによって、長さＮ１の符号化Ｃ１コードワードが形成される（ステップ１４０８）。加えて、各非符号化サブデータ・セットの各列に対してＮ２−Ｋ２Ｃ２パリティ・バイトが生成され（ステップ１４１０）、列の最後に追加されることによって、長さＮ２の符号化Ｃ２コードワードが形成される（ステップ１４１２）。よって、Ｎ２Ｃ１コードワードを有する符号化サブデータ・セットが生成される。
【００５１】
Ｓ非符号化サブデータ・セットがすべて符号化された後、符号化サブデータ・セットから複数個の（Ｓ×Ｎ２）部分コードワード・オブジェクト（ＰＣＯ）が形成され、各ＰＣＯはヘッダおよびＣ１コードワードを含む（ステップ１４１４）。次いで各ＰＣＯは、ＰＣＯのヘッダ内の情報に従って論理データ・トラック上にマップされ（ステップ１４１６）、各論理データ・トラック上で隣接するＰＣＯはマージされてコードワード・オブジェクト（ＣＯ）を形成し、各ＣＯは少なくとも２つの隣接するＰＣＯを含む（ステップ１４１８）。ＣＯは変調符号化され（ステップ１４２０）、ＶＦＯおよび同期パターンが加えられることによってＴ個の同期ＣＯが得られ、ここでＴはデータ・テープ上の並行アクティブ・トラックの数である（ステップ１４２２）。次いでＴ個の同期ＣＯがデータ・テープに同時に書込まれる（ステップ１４２４）。
【００５２】
本明細書に記載されるＰＣＯインタリービング・スキームは、同じＣ２コードおよびデータ・セット当り同数ＳのＳＤＳに対して、ＣＯインタリービングと同じＭＳＥＬおよびＭＮＤＴ特性を与える。よって、どちらのスキームもストライプ・エラーおよびデッド・トラックに対して同じロバスト性を有する。ＰＣＯに基づくスキームの利点の１つは、再書込の場合に再書込されるオブジェクトがＣＯではなくＰＣＯであるために、その細分性が小さくなることである。
【００５３】
完全に機能するデータ処理システムの状況において本発明を説明したが、本発明のプロセスは命令のコンピュータ読取可能媒体の形およびさまざまな形で配布されることが可能であり、配布を行うために実際に用いられる信号保有媒体の特定の種類に関わらず本発明が適用されることを通常の当業者は認めるであろうことに留意することは重要である。コンピュータ読取可能記憶媒体の例は、フレキシブル・ディスク、ハードディスク・ドライブ、ＲＡＭおよびＣＤ−ＲＯＭなどの記録可能なタイプの媒体を含む。
【００５４】
本発明の記載は例示および説明の目的のために提供されるものであって、開示される形の発明に対して網羅的または限定的になることは意図されていない。通常の当業者には多くの修正形および変形が明らかになるだろう。実施形態は、本発明の原理、実際の適用を最もよく説明し、他の通常の当業者が、予期される特定の使用に対して好適であるようなさまざまな修正を伴うさまざまな実施形態に対して本発明を理解できるようにするために選択され説明されたものである。さらに、上記には方法およびシステムに関して記載したが、当該技術分野における要求は、マルチトラック・データ・テープ媒体にデータを書込むための命令を含有するコンピュータ・プログラム製品、またはマルチトラック・データ・テープ媒体にデータを書込むために計算システムにコンピュータ読取可能コードを組込むステップを含む、計算基盤を配置するための方法によって満たされてもよい。
【図１】
0005341207.tif 000010
【図２】
0005341207.tif 000011
【図３】
0005341207.tif 000012
【図４】
0005341207.tif 000013
【図５】
0005341207.tif 000014
【図６】
0005341207.tif 000015
【図７】
0005341207.tif 000016
【図８】
0005341207.tif 000017
【図９】
0005341207.tif 000018
【図１０】
0005341207.tif 000019
【図１１】
0005341207.tif 000020
【図１２】
0005341207.tif 000021
【図１３】
0005341207.tif 000022
【図１４】
0005341207.tif 000023