(57)【特許請求の範囲】
【請求項１】
ヘッダ付サブ・データ・セット（ＳＤＳ）を復号するためのシステムであって、
不均一誤り保護によって保護されるヘッダ付ＳＤＳを受信するように適合された論理であって、前記ヘッダ付ＳＤＳのヘッダは１レベルの誤り訂正コード（ＥＣＣ）によって保護され、前記ヘッダ付ＳＤＳのデータは２レベルのＥＣＣによって保護される、論理と、
前記ヘッダ付ＳＤＳからヘッダを復号し、かつＣ１行パリティから前記ヘッダの影響を
除去してＳＤＳを得るように適合された論理と、
予め定められた数以下の反復に対して、
前記ＳＤＳに対するＣ２列復号を行い、かつ
前記ＳＤＳの各行におけるある数以下のインタリーブに対して、
前記ＳＤＳのある数の列を復号成功したＣ２コードワードで上書きし、
前記ＳＤＳのある数のＣ２コードワードを消去し、かつ
前記ＳＤＳの残りの列を未訂正のまま維持し、
前記ＳＤＳに対してＣ１行復号を行い、
前記ＳＤＳの各行におけるある数以下のインタリーブに対して、
前記ＳＤＳのある数の行を復号成功したＣ１コードワードで上書きし、
前記ＳＤＳのある数のＣ１コードワードを消去し、かつ
前記ＳＤＳの残りの行を未訂正のまま維持するように適合された論理と、
前記ＳＤＳのすべての行がＣ１コードワードのみを含み、かつ前記ＳＤＳのすべての列
がＣ２コードワードのみを含むときに前記ＳＤＳを出力し、そうでないときには前記ＳＤ
Ｓが適切に復号され得ないという表示を出力するように適合された論理と
を含む、システム。
【請求項２】
前記ヘッダに対して誤りチェックを行うように適合された論理と、
前記ヘッダが前記誤りチェックに失敗したときに、前記ヘッダに関連する行パリティを前記ＳＤＳから消去して、Ｃ１行パリティが未知であることを示すように適合された論理と
をさらに含む、請求項１に記載のシステム。
【請求項３】
前記ヘッダ付ＳＤＳの前記ヘッダはＣ１符号化によって保護され、前記ヘッダ付ＳＤＳのデータはＣ１符号化およびＣ２符号化によって保護される、請求項１に記載のシステム。
【請求項４】
ｉが反復カウンタであり、ｊが行における現在のインタリーブであるときに、０≦Ｅ２（ｉ，ｊ）≦Ｕ２（ｉ，ｊ）かつ０≦Ｅ２（ｉ，ｊ）≦（Ｎ１−Ｋ１）となるように第１のパラメータＥ２（ｉ，ｊ）を選択するように適合された論理をさらに含み、ここでＵ２（ｉ，ｊ）は前記現在のインタリーブｊにおける訂正不可能なＣ２コードワードの数であり、Ｎ１はＣ１コードワードにおけるシンボルの総数であり、Ｋ１はＣ１コードワードにおけるデータ・シンボルの数である、請求項１に記載のシステム。
【請求項５】
所与の反復および所与のインタリーブにおいて上書きされる前記ＳＤＳの前記列の数はＮ１−Ｕ２（ｉ，ｊ）列であり、消去される前記Ｃ２コードワードの数はＥ２（ｉ，ｊ）Ｃ２コードワードである、請求項４に記載のシステム。
【請求項６】
ｉが反復カウンタであり、ｊが行における現在のインタリーブであるときに、０≦Ｅ１（ｉ，ｊ）≦Ｕ１（ｉ，ｊ）かつ０≦Ｅ１（ｉ，ｊ）≦（Ｎ２−Ｋ２）となるように第２のパラメータＥ１（ｉ，ｊ）を選択するように適合された論理をさらに含み、ここでＵ１（ｉ，ｊ）は前記現在のインタリーブｊにおける訂正不可能なＣ１コードワードの数であり、Ｎ２は列におけるシンボルの総数であり、Ｋ２は列におけるデータ・シンボルの数である、請求項１に記載のシステム。
【請求項７】
所与の反復および所与のインタリーブにおいて上書きされる前記ＳＤＳの前記Ｃ１コードワードの数はＮ２−Ｕ１（ｉ，ｊ）Ｃ１コードワードであり、消去される前記Ｃ１コードワードの数はＥ１（ｉ，ｊ）Ｃ１コードワードである、請求項６に記載のシステム。
【請求項８】
ヘッダ付サブ・データ・セット（ＳＤＳ）を復号するためのシステムであって、前記システムは、
不均一誤り保護によって保護されるヘッダ付ＳＤＳを受信するように適合された論理であって、前記ヘッダ付ＳＤＳのヘッダは１レベルの誤り訂正コード（ＥＣＣ）によって保護され、前記ヘッダ付ＳＤＳのデータは２レベルのＥＣＣによって保護される、論理と、
Ｃ１行パリティを得るためにＣ１’行パリティからヘッダの影響を除去することによって、前記ヘッダ付ＳＤＳの前記Ｃ１’行パリティを修正することによって、前記ヘッダ付ＳＤＳから前記ヘッダを復号するためのＣ１’行復号を行うように適合された論理と、
前記ヘッダ付ＳＤＳから前記ヘッダを抽出してＳＤＳ１（０）を得て、前記ヘッダに対して誤りチェックを行うように適合された論理と、
前記ヘッダが前記誤りチェックに失敗したときに、前記Ｃ１’行パリティを消去してＣ１行パリティが未知であることを示すように適合された論理と、
ｉが反復カウンタであり、ｉ＿ｍａｘが反復の最大数であるときに、予め定められた数以下の反復ｉ≦ｉ＿ｍａｘに対して、
ＳＤＳ１（ｉ−１）に対するＣ２列復号を行うように適合された論理と、
行の現在のインタリーブｊにおける訂正不可能なＣ２コードワードの数を定めるように適合された論理であって、前記訂正不可能なＣ２コードワードの数はＵ２（ｉ，ｊ）であり、０≦Ｕ２（ｉ，ｊ）≦Ｎ１であり、ここでＮ１はＣ１コードワードにおけるシンボルの総数である、論理と、
Ｋ１がＣ１コードワードにおけるデータ・シンボルの数であるときに、０≦Ｅ２（ｉ，ｊ）≦Ｕ２（ｉ，ｊ）かつ０≦Ｅ２（ｉ，ｊ）≦（Ｎ１−Ｋ１）となるように第１のパラメータＥ２（ｉ，ｊ）を選択するように適合された論理と、
ｊ＿ｍａｘがインタリーブの最大数であるときに、１≦ｊ≦ｊ＿ｍａｘの反復に対して、
ＳＤＳ１（ｉ−１，ｊ）のＮ１−Ｕ２（ｉ，ｊ）列を復号成功したＣ２コードワードで上書きするように適合された論理であって、ここでＳＤＳ１（ｉ−１，ｊ）はインタリーブｊに対する第１の算出ＳＤＳである、論理と、
ＳＤＳ１（ｉ−１，ｊ）における合計Ｕ２（ｉ，ｊ）のＣ２コードワードからＥ２（ｉ，ｊ）Ｃ２コードワードを消去するように適合された論理と、
ＳＤＳ１（ｉ−１，ｊ）におけるＵ２（ｉ，ｊ）−Ｅ２（ｉ，ｊ）Ｃ２コードワードを未訂正のまま維持するように適合された論理と、
上書きおよび消去されたＳＤＳ１（ｉ−１，ｊ）の各インタリーブを組み合わせてＳＤＳ２（ｉ）を形成するように適合された論理であって、ここでＳＤＳ２（ｉ）は反復ｉに対する第１の算出ＳＤＳである、論理と、
ＳＤＳ２（ｉ）のすべての行がＣ１コードワードのみを含み、かつＳＤＳ２（ｉ）のすべての列がＣ２コードワードのみを含むときに反復処理を停止して、復号されたＳＤＳであるＳＤＳ２（ｉ）を出力するように適合された論理と、
ＳＤＳ２（ｉ）に対してＣ１行復号を行うように適合された論理と、
前記現在のインタリーブｊにおける訂正不可能なＣ１コードワードの数を定めるように適合された論理であって、前記訂正不可能なＣ１コードワードの数はＵ１（ｉ，ｊ）であり、０≦Ｕ１（ｉ，ｊ）≦Ｎ２であり、ここでＮ２は列におけるシンボルの総数である、論理と、
Ｋ２が列におけるデータ・シンボルの数であるときに、０≦Ｅ１（ｉ，ｊ）≦Ｕ１（ｉ，ｊ）かつ０≦Ｅ１（ｉ，ｊ）≦（Ｎ２−Ｋ２）となるように第２のパラメータＥ１（ｉ，ｊ）を選択するように適合された論理と、
ｊ＿ｍａｘがインタリーブの最大数であるときに、１≦ｊ≦ｊ＿ｍａｘの反復に対して、
ＳＤＳ２（ｉ，ｊ）のＮ２−Ｕ１（ｉ，ｊ）列を復号成功したＣ１コードワードで上書きするように適合された論理であって、ここでＳＤＳ２（ｉ，ｊ）はインタリーブｊに対する第２の算出ＳＤＳである、論理と、
ＳＤＳ２（ｉ，ｊ）における合計Ｕ１（ｉ，ｊ）のＣ１コードワードからＥ１（ｉ，ｊ）Ｃ１コードワードを消去するように適合された論理と、
ＳＤＳ２（ｉ，ｊ）におけるＵ１（ｉ，ｊ）−Ｅ１（ｉ，ｊ）Ｃ１コードワードを未訂正のまま維持するように適合された論理と、
上書きおよび消去されたＳＤＳ２（ｉ，ｊ）の各インタリーブを組み合わせてＳＤＳ１（ｉ）を形成するように適合された論理であって、ここでＳＤＳ１（ｉ）は反復ｉに対する第２の算出ＳＤＳである、論理と、
ＳＤＳ１（ｉ）のすべての行がＣ１コードワードのみを含み、かつＳＤＳ１（ｉ）のすべての列がＣ２コードワードのみを含むときに反復処理を停止して、復号されたＳＤＳであるＳＤＳ１（ｉ）を出力するように適合された論理と、
反復カウンタｉを１だけ増分するように適合された論理と、
前記反復の最大数が到達され、かつすべての行がＣ１コードワードでないか、もしくはすべての列がＣ２コードワードでないか、またはその両方であるときに、前記ヘッダ付ＳＤＳが適切に復号され得ないという表示を出力するように適合された論理と
を含む、システム。
【請求項９】
前記ヘッダ付ＳＤＳの前記ヘッダはＣ１符号化によって保護され、前記ヘッダ付ＳＤＳのデータはＣ１符号化およびＣ２符号化によって保護される、請求項８に記載のシステム。
【請求項１０】
ヘッダ付サブ・データ・セット（ＳＤＳ）を復号するための方法であって、
不均一誤り保護によって保護されるヘッダ付ＳＤＳを受信するステップであって、前記ヘッダ付ＳＤＳのヘッダは１レベルの誤り訂正コード（ＥＣＣ）によって保護され、前記ヘッダ付ＳＤＳのデータは２レベルのＥＣＣによって保護される、ステップと、
前記ヘッダ付ＳＤＳからヘッダを復号し、かつＣ１行パリティから前記ヘッダの影響を除去してＳＤＳを得るステップと、
予め定められた数以下の反復に対して、
前記ＳＤＳに対するＣ２列復号を行うステップと、
前記ＳＤＳの各行におけるある数以下のインタリーブに対して、
前記ＳＤＳのある数の列を復号成功したＣ２コードワードで上書きするステップと、
前記ＳＤＳのある数のＣ２コードワードを消去するステップと、
前記ＳＤＳの残りの列を未訂正のまま維持するステップと、
前記ＳＤＳに対してＣ１行復号を行うステップと、
前記ＳＤＳの各行におけるある数以下のインタリーブに対して、
前記ＳＤＳのある数の行を復号成功したＣ１コードワードで上書きするステップと、
前記ＳＤＳのある数のＣ１コードワードを消去するステップと、
前記ＳＤＳの残りの行を未訂正のまま維持するステップと、
前記ＳＤＳのすべての行がＣ１コードワードのみを含み、かつ前記ＳＤＳのすべての列がＣ２コードワードのみを含むときに前記ＳＤＳを出力するステップと、そうでないときには前記ＳＤＳが適切に復号され得ないという表示を出力するステップと
を含む、方法。
【請求項１１】
前記ヘッダに対して誤りチェックを行うステップと、
前記ヘッダが前記誤りチェックに失敗したときに、前記ヘッダに関連する行パリティを前記ＳＤＳから消去して、Ｃ１行パリティが未知であることを示すステップと
をさらに含む、請求項１０に記載の方法。
【請求項１２】
前記ヘッダ付ＳＤＳの前記ヘッダはＣ１符号化によって保護され、前記ヘッダ付ＳＤＳのデータはＣ１符号化およびＣ２符号化によって保護される、請求項１０に記載の方法。
【請求項１３】
ｉが反復カウンタであり、ｊが行における現在のインタリーブであるときに、０≦Ｅ２（ｉ，ｊ）≦Ｕ２（ｉ，ｊ）かつ０≦Ｅ２（ｉ，ｊ）≦（Ｎ１−Ｋ１）となるように第１のパラメータＥ２（ｉ，ｊ）を選択するステップをさらに含み、ここでＵ２（ｉ，ｊ）は前記現在のインタリーブｊにおける訂正不可能なＣ２コードワードの数であり、Ｎ１はＣ１コードワードにおけるシンボルの総数であり、Ｋ１はＣ１コードワードにおけるデータ・シンボルの数である、請求項１０に記載の方法。
【請求項１４】
所与の反復および所与のインタリーブにおいて上書きされる前記ＳＤＳの前記列の数は
Ｎ１−Ｕ２（ｉ，ｊ）列であり、消去される前記Ｃ２コードワードの数はＥ２（ｉ，ｊ）Ｃ２コードワードである、請求項１３に記載の方法。
【請求項１５】
ｉが反復カウンタであり、ｊが行における現在のインタリーブであるときに、０≦Ｅ１（ｉ，ｊ）≦Ｕ１（ｉ，ｊ）かつ０≦Ｅ１（ｉ，ｊ）≦（Ｎ２−Ｋ２）となるように第２のパラメータＥ１（ｉ，ｊ）を選択するステップをさらに含み、ここでＵ１（ｉ，ｊ）は前記現在のインタリーブｊにおける訂正不可能なＣ１コードワードの数であり、Ｎ２は列におけるシンボルの総数であり、Ｋ２は列におけるデータ・シンボルの数である、請求項１０に記載の方法。
【請求項１６】
所与の反復および所与のインタリーブにおいて上書きされる前記ＳＤＳの前記Ｃ１コー
ドワードの数はＮ２−Ｕ１（ｉ，ｊ）Ｃ１コードワードであり、消去される前記Ｃ１コードワードの数はＥ１（ｉ，ｊ）Ｃ１コードワードである、請求項１５に記載の方法。
【請求項１７】
サブ・データ・セットを符号化するための方法であって、前記方法は、
不均一誤り保護によって保護されるヘッダ付サブ・データ・セット（ＳＤＳ）を受信するステップであって、ヘッダ付ＳＤＳのヘッダは１レベルの誤り訂正コード（ＥＣＣ）によって保護され、前記ヘッダ付ＳＤＳのデータは２レベルのＥＣＣによって保護される、ステップと、
Ｃ１行パリティを得るためにＣ１’行パリティからヘッダの影響を除去することによって、前記ヘッダ付ＳＤＳの前記Ｃ１’行パリティを修正することによって、前記ヘッダ付ＳＤＳから前記ヘッダを復号するためのＣ１’行復号を行うステップと、
前記ヘッダ付ＳＤＳから前記ヘッダを抽出してＳＤＳ１（０）を得て、前記ヘッダに対して誤りチェックを行うステップと、
前記ヘッダが前記誤りチェックに失敗したときに、前記Ｃ１’行パリティを消去してＣ１行パリティが未知であることを示すステップと、
ｉが反復カウンタであり、ｉ＿ｍａｘが反復の最大数であるときに、予め定められた数以下の反復ｉ≦ｉ＿ｍａｘに対して、
ＳＤＳ１（ｉ−１）に対するＣ２列復号を行うステップと、
現在のインタリーブｊにおける訂正不可能なＣ２コードワードの数を定めるステップであって、前記訂正不可能なＣ２コードワードの数はＵ２（ｉ，ｊ）であり、０≦Ｕ２（ｉ，ｊ）≦Ｎ１であり、ここでＮ１はＣ１コードワードにおけるシンボルの総数である、ステップと、
Ｋ１がＣ１コードワードにおけるデータ・シンボルの数であるときに、０≦Ｅ２（ｉ，ｊ）≦Ｕ２（ｉ，ｊ）かつ０≦Ｅ２（ｉ，ｊ）≦（Ｎ１−Ｋ１）となるように、ｉが反復カウンタであり、ｊが行における現在のインタリーブであるときの第１のパラメータＥ２（ｉ，ｊ）を選択するステップと、
ｊ＿ｍａｘがインタリーブの最大数であるときに、１≦ｊ≦ｊ＿ｍａｘの反復に対して、
ＳＤＳ１（ｉ−１，ｊ）のＮ１−Ｕ２（ｉ，ｊ）列を復号成功したＣ２コードワードで上書きするステップであって、ここでＳＤＳ１（ｉ−１，ｊ）はインタリーブｊに対する第１の算出ＳＤＳである、ステップと、
ＳＤＳ１（ｉ−１，ｊ）における合計Ｕ２（ｉ，ｊ）のＣ２コードワードからＥ２（ｉ，ｊ）Ｃ２コードワードを消去するステップと、
ＳＤＳ１（ｉ−１，ｊ）におけるＵ２（ｉ，ｊ）−Ｅ２（ｉ，ｊ）Ｃ２コードワードを未訂正のまま維持するステップと、
上書きおよび消去されたＳＤＳ１（ｉ−１，ｊ）の各インタリーブを組み合わせてＳＤＳ２（ｉ）を形成するステップであって、ここでＳＤＳ２（ｉ）は反復ｉに対する第１の算出ＳＤＳである、ステップと、
ＳＤＳ２（ｉ）のすべての行がＣ１コードワードのみを含み、かつＳＤＳ２（ｉ）のすべての列がＣ２コードワードのみを含むときに前記方法を停止して、復号されたＳＤＳであるＳＤＳ２（ｉ）を出力するステップと、
ＳＤＳ２（ｉ）に対してＣ１行復号を行うステップと、
前記現在のインタリーブｊにおける訂正不可能なＣ１コードワードの数を定めるステップであって、前記訂正不可能なＣ１コードワードの数はＵ１（ｉ，ｊ）であり、０≦Ｕ１（ｉ，ｊ）≦Ｎ２であり、ここでＮ２は列におけるシンボルの総数である、ステップと、
Ｋ２が列におけるデータ・シンボルの数であるときに、０≦Ｅ１（ｉ，ｊ）≦Ｕ１（ｉ，ｊ）かつ０≦Ｅ１（ｉ，ｊ）≦（Ｎ２−Ｋ２）となるように第２のパラメータＥ１（ｉ，ｊ）を選択するステップと、
ｊ＿ｍａｘがインタリーブの最大数であるときに、１≦ｊ≦ｊ＿ｍａｘの反復に対して、
ＳＤＳ２（ｉ，ｊ）のＮ２−Ｕ１（ｉ，ｊ）列を復号成功したＣ１コードワードで上書きするステップであって、ここでＳＤＳ２（ｉ，ｊ）はインタリーブｊに対する第２の算出ＳＤＳである、ステップと、
ＳＤＳ２（ｉ，ｊ）における合計Ｕ１（ｉ，ｊ）のＣ１コードワードからＥ１（ｉ，ｊ）Ｃ１コードワードを消去するステップと、
ＳＤＳ２（ｉ，ｊ）におけるＵ１（ｉ，ｊ）−Ｅ１（ｉ，ｊ）Ｃ１コードワードを未訂正のまま維持するステップと、
上書きおよび消去されたＳＤＳ２（ｉ，ｊ）の各インタリーブを組み合わせてＳＤＳ１（ｉ）を形成するステップであって、ここでＳＤＳ１（ｉ）は反復ｉに対する第２の算出ＳＤＳである、ステップと、
ＳＤＳ１（ｉ）のすべての行がＣ１コードワードのみを含み、かつＳＤＳ１（ｉ）のすべての列がＣ２コードワードのみを含むときに前記方法を停止して、復号されたＳＤＳであるＳＤＳ１（ｉ）を出力するステップと、
反復カウンタｉを１だけ増分するステップと、
前記反復の最大数が到達され、かつすべての行がＣ１コードワードでないか、もしくはすべての列がＣ２コードワードでないか、またはその両方であるときに、前記ヘッダ付ＳＤＳが適切に復号され得ないという表示を出力するステップと
を含む、方法。
【請求項１８】
前記ヘッダ付ＳＤＳの前記ヘッダはＣ１符号化によって保護され、前記ヘッダ付ＳＤＳのデータはＣ１符号化およびＣ２符号化によって保護される、請求項１７に記載の方法。
【請求項１９】
ヘッダ付サブ・データ・セット（ＳＤＳ）を復号するためのコンピュータ・プログラムであって、
テープ・ドライブによって、不均一誤り保護によって保護されるヘッダ付ＳＤＳを受信することであって、前記ヘッダ付ＳＤＳのヘッダは１レベルの誤り訂正コード（ＥＣＣ）によって保護され、前記ヘッダ付ＳＤＳのデータは２レベルのＥＣＣによって保護される、受信することと、
前記テープ・ドライブによって、前記ヘッダ付ＳＤＳからヘッダを復号し、かつＣ１行パリティから前記ヘッダの影響を除去してＳＤＳを得ることと、
予め定められた数以下の反復に対して、
前記テープ・ドライブによって前記ＳＤＳに対するＣ２列復号を行うことと、
前記ＳＤＳの各行におけるある数以下のインタリーブに対して、
前記テープ・ドライブによって前記ＳＤＳのある数の列を復号成功したＣ２コードワードで上書きすることと、
前記テープ・ドライブによって前記ＳＤＳのある数のＣ２コードワードを消去することと、
前記テープ・ドライブによって前記ＳＤＳの残りの列を未訂正のまま維持することと、
前記テープ・ドライブによって前記ＳＤＳに対してＣ１行復号を行うことと、
前記ＳＤＳの各行におけるある数以下のインタリーブに対して、
前記テープ・ドライブによって前記ＳＤＳのある数の行を復号成功したＣ１コードワードで上書きすることと、
前記テープ・ドライブによって前記ＳＤＳのある数のＣ１コードワードを消去することと、
前記テープ・ドライブによって前記ＳＤＳの残りの行を未訂正のまま維持することと、
前記ＳＤＳのすべての行がＣ１コードワードのみを含み、かつ前記ＳＤＳのすべての列がＣ２コードワードのみを含むときに、前記テープ・ドライブによって前記ＳＤＳを出力し、そうでないときには前記ＳＤＳが適切に復号され得ないという表示を出力することと
、をコンピュータに実行させる、コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ記憶装置に関し、より詳細には、不均一誤り保護によって保護されるヘッダ付サブ・データ・セットの誤り率性能を改善することに関する。
【背景技術】
【０００２】
テープに書込まれたデータ・セットは、サブ・データ・セットと呼ばれるサブユニットを含む。１６チャネルのリニア・テープ・オープン第６世代（ｌｉｎｅａｒ  ｔａｐｅ  ｏｐｅｎ  ｇｅｎｅｒａｔｉｏｎ  ６：ＬＴＯ６）においては、各３メガバイト（ＭＢ）のデータ・セットの中に３２のサブ・データ・セットがあるのに対し、３２チャネルのエンタープライズ・ドライブにおいては、各６ＭＢのデータ・セットの中に６４のサブ・データ・セットがある。サブ・データ・セットのすべての行は、コードワード・インタリーブ（ｃｏｄｅｗｏｒｄ  ｉｎｔｅｒｌｅａｖｅｓ：ＣＷＩ）としても公知であり、これはＬＴＯ  ６において４つのバイト・インタリーブされたＣ１コードワード（行コードワード）を含み、互いにできる限り離れた異なるテープ・トラックに沿って書込まれる。これによって、テープにおける空間的バースト誤りの結果としてもたらされるＣ２コードワード（列コードワード）中の消去バイトの数が最小化される。言換えると、サブ・データ・セットの行は、書込まれたデータ・セット内にほぼ等距離の態様で分散されて、サブ・データ・セットの行の深い空間的インタリーブを提供する。さらに、直径約１ｍｍの円内に書込まれたすべてのバイトが読取り不可能であるとき、Ｃ２コードワード内に最大１つの消去バイトがもたらされる。
【０００３】
通常、サブ・データ・セットの各行には１２バイトのヘッダが付加されて、ヘッダ付サブ・データ・セット構造が生じる。エンタープライズ・ドライブにおいて、ヘッダ付サブ・データ・セットは、サブ・データ・セットの行コードワードにヘッダ・フラグメントを埋め込んでサブ・データ・セットをヘッダ誤りに対してロバストにすることによって、ヘッダ誤り保護を提供する。この場合、データはプロダクト・コードの場合と同様に２レベルの誤り訂正コード（ｅｒｒｏｒ  ｃｏｒｒｅｃｔｉｏｎ  ｃｏｄｅ：ＥＣＣ）によって保護されるが、ヘッダは１レベルのＥＣＣ（典型的にはＣ１符号化のみ）によって保護される。
【０００４】
不均一誤り保護を伴うヘッダ付サブ・データ・セットは、Ｃ１復号に続くＣ２復号によってのみ復号され、すなわちヘッダ付サブ・データ・セットに対して反復は行われない。この復号は、単一のＣ１復号に続くＣ２復号のために、必要以上に高い誤り率、ときには許容できないほど高い誤り率をもたらすおそれがある。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
したがって、本発明は、不均一誤り保護を伴う復号されたヘッダ付サブ・データ・セットの誤り率性能を改善する（誤り率を低減する）復号スキームを提供する。
【課題を解決するための手段】
【０００６】
一実施形態において、ヘッダ付サブ・データ・セット（ｓｕｂ  ｄａｔａ  ｓｅｔ：ＳＤＳ）を復号するためのシステムは、不均一誤り保護によって保護されるヘッダ付ＳＤＳを受信するように適合された論理であって、ヘッダ付ＳＤＳのヘッダは１レベルの誤り訂正コード（ＥＣＣ）によって保護され、ヘッダ付ＳＤＳのデータは２レベルのＥＣＣによって保護される、論理と、ヘッダ付ＳＤＳからヘッダを復号し、かつＣ１行パリティからヘッダの影響を除去してＳＤＳを得るように適合された論理と、予め定められた数以下の反復に対して、ＳＤＳに対するＣ２列復号を行い、かつＳＤＳの各行におけるある数以下のインタリーブに対して、ＳＤＳのある数の列を復号成功したＣ２コードワードで上書きし、ＳＤＳのある数のＣ２コードワードを消去し、かつＳＤＳの残りの列を未訂正のまま維持し、ＳＤＳに対してＣ１行復号を行い、ＳＤＳの各行におけるある数以下のインタリーブに対して、ＳＤＳのある数の行を復号成功したＣ１コードワードで上書きし、ＳＤＳのある数のＣ１コードワードを消去し、かつＳＤＳの残りの行を未訂正のまま維持するように適合された論理と、ＳＤＳのすべての行がＣ１コードワードのみを含み、かつＳＤＳのすべての列がＣ２コードワードのみを含むときにＳＤＳを出力し、そうでないときにはＳＤＳが適切に復号され得ないという表示を出力するように適合された論理とを含む。
【０００７】
別の実施形態において、ヘッダ付ＳＤＳを復号するためのシステムは、不均一誤り保護によって保護されるヘッダ付ＳＤＳを受信するように適合された論理であって、ヘッダ付ＳＤＳのヘッダは１レベルのＥＣＣによって保護され、ヘッダ付ＳＤＳのデータは２レベルのＥＣＣによって保護される、論理と、Ｃ１行パリティを得るためにＣ１’行パリティからヘッダの影響を除去することによって、ヘッダ付ＳＤＳのＣ１’行パリティを修正することによって、ヘッダ付ＳＤＳからヘッダを復号するためのＣ１’行復号を行うように適合された論理と、ヘッダ付ＳＤＳからヘッダを抽出してＳＤＳ１（０）を得て、ヘッダに対して誤りチェックを行うように適合された論理と、ヘッダが誤りチェックに失敗したときに、Ｃ１’行パリティを消去してＣ１行パリティが未知であることを示すように適合された論理と、ｉが反復カウンタであり、ｉ＿ｍａｘが反復の最大数であるときに、予め定められた数以下の反復ｉ≦ｉ＿ｍａｘに対して、ＳＤＳ１（ｉ−１）に対するＣ２列復号を行うように適合された論理と、行の現在のインタリーブｊにおける訂正不可能なＣ２コードワードの数を定めるように適合された論理であって、訂正不可能なＣ２コードワードの数はＵ２（ｉ，ｊ）であり、０≦Ｕ２（ｉ，ｊ）≦Ｎ１であり、ここでＮ１はＣ１コードワードにおけるシンボルの総数である、論理と、Ｋ１がＣ１コードワードにおけるデータ・シンボルの数であるときに、０≦Ｅ２（ｉ，ｊ）≦Ｕ２（ｉ，ｊ）かつ０≦Ｅ２（ｉ，ｊ）≦（Ｎ１−Ｋ１）となるように第１のパラメータＥ２（ｉ，ｊ）を選択するように適合された論理と、ｊ＿ｍａｘがインタリーブの最大数であるときに、１≦ｊ≦ｊ＿ｍａｘの反復に対して、ＳＤＳ１（ｉ−１，ｊ）のＮ１−Ｕ２（ｉ，ｊ）列を復号成功したＣ２コードワードで上書きするように適合された論理であって、ここでＳＤＳ１（ｉ−１，ｊ）はインタリーブｊに対する第１の算出ＳＤＳである、論理と、ＳＤＳ１（ｉ−１，ｊ）における合計Ｕ２（ｉ，ｊ）のＣ２コードワードからＥ２（ｉ，ｊ）Ｃ２コードワードを消去するように適合された論理と、ＳＤＳ１（ｉ−１，ｊ）におけるＵ２（ｉ，ｊ）−Ｅ２（ｉ，ｊ）Ｃ２コードワードを未訂正のまま維持するように適合された論理と、上書きおよび消去されたＳＤＳ１（ｉ−１，ｊ）の各インタリーブを組み合わせてＳＤＳ２（ｉ）を形成するように適合された論理であって、ここでＳＤＳ２（ｉ）は反復ｉに対する第１の算出ＳＤＳである、論理と、ＳＤＳ２（ｉ）のすべての行がＣ１コードワードのみを含み、かつＳＤＳ２（ｉ）のすべての列がＣ２コードワードのみを含むときに反復処理を停止して、復号されたＳＤＳであるＳＤＳ２（ｉ）を出力するように適合された論理と、ＳＤＳ２（ｉ）に対してＣ１行復号を行うように適合された論理と、現在のインタリーブｊにおける訂正不可能なＣ１コードワードの数を定めるように適合された論理であって、訂正不可能なＣ１コードワードの数はＵ１（ｉ，ｊ）であり、０≦Ｕ１（ｉ，ｊ）≦Ｎ２であり、ここでＮ２は列におけるシンボルの総数である、論理と、Ｋ２が列におけるデータ・シンボルの数であるときに、０≦Ｅ１（ｉ，ｊ）≦Ｕ１（ｉ，ｊ）かつ０≦Ｅ１（ｉ，ｊ）≦（Ｎ２−Ｋ２）となるように第２のパラメータＥ１（ｉ，ｊ）を選択するように適合された論理と、ｊ＿ｍａｘがインタリーブの最大数であるときに、１≦ｊ≦ｊ＿ｍａｘの反復に対して、ＳＤＳ２（ｉ，ｊ）のＮ２−Ｕ１（ｉ，ｊ）Ｃ１コードワードを復号成功したＣ１コードワードで上書きするように適合された論理であって、ここでＳＤＳ２（ｉ，ｊ）はインタリーブｊに対する第２の算出ＳＤＳである、論理と、ＳＤＳ２（ｉ，ｊ）における合計Ｕ１（ｉ，ｊ）のＣ１コードワードからＥ１（ｉ，ｊ）Ｃ１コードワードを消去するように適合された論理と、ＳＤＳ２（ｉ，ｊ）におけるＵ１（ｉ，ｊ）−Ｅ１（ｉ，ｊ）Ｃ１コードワードを未訂正のまま維持するように適合された論理と、上書きおよび消去されたＳＤＳ２（ｉ，ｊ）の各インタリーブを組み合わせてＳＤＳ１（ｉ）を形成するように適合された論理であって、ここでＳＤＳ１（ｉ）は反復ｉに対する第２の算出ＳＤＳである、論理と、ＳＤＳ１（ｉ）のすべての行がＣ１コードワードのみを含み、かつＳＤＳ１（ｉ）のすべての列がＣ２コードワードのみを含むときに反復処理を停止して、復号されたＳＤＳであるＳＤＳ１（ｉ）を出力するように適合された論理と、反復カウンタｉを１だけ増分するように適合された論理と、反復の最大数が到達され、かつすべての行がＣ１コードワードでないか、もしくはすべての列がＣ２コードワードでないか、またはその両方であるときに、ヘッダ付ＳＤＳが適切に復号され得ないという表示を出力するように適合された論理とを含む。
【０００８】
別の実施形態に従うと、ヘッダ付ＳＤＳを復号するための方法は、不均一誤り保護によって保護されるヘッダ付ＳＤＳを受信するステップであって、ヘッダ付ＳＤＳのヘッダは１レベルのＥＣＣによって保護され、ヘッダ付ＳＤＳのデータは２レベルのＥＣＣによって保護される、ステップと、ヘッダ付ＳＤＳからヘッダを復号し、かつＣ１行パリティからヘッダの影響を除去してＳＤＳを得るステップと、予め定められた数以下の反復に対して、ＳＤＳに対するＣ２列復号を行うステップと、ＳＤＳの各行におけるある数以下のインタリーブに対して、ＳＤＳのある数の列を復号成功したＣ２コードワードで上書きするステップと、ＳＤＳのある数のＣ２コードワードを消去するステップと、ＳＤＳの残りの列を未訂正のまま維持するステップと、ＳＤＳに対してＣ１行復号を行うステップと、ＳＤＳの各行におけるある数以下のインタリーブに対して、ＳＤＳのある数の行を復号成功したＣ１コードワードで上書きするステップと、ＳＤＳのある数のＣ１コードワードを消去するステップと、ＳＤＳの残りの行を未訂正のまま維持するステップと、ＳＤＳのすべての行がＣ１コードワードのみを含み、かつＳＤＳのすべての列がＣ２コードワードのみを含むときにＳＤＳを出力するステップと、そうでないときにはＳＤＳが適切に復号され得ないという表示を出力するステップとを含む。
【０００９】
さらに別の実施形態において、サブ・データ・セットを符号化するための方法は、不均一誤り保護によって保護されるヘッダ付ＳＤＳを受信するステップであって、ヘッダ付ＳＤＳのヘッダは１レベルのＥＣＣによって保護され、ヘッダ付ＳＤＳのデータは２レベルのＥＣＣによって保護される、ステップと、Ｃ１行パリティを得るためにＣ１’行パリティからヘッダの影響を除去することによって、ヘッダ付ＳＤＳのＣ１’行パリティを修正することによって、ヘッダ付ＳＤＳからヘッダを復号するためのＣ１’行復号を行うステップと、ヘッダ付ＳＤＳからヘッダを抽出してＳＤＳ１（０）を得て、ヘッダに対して誤りチェックを行うステップと、ヘッダが誤りチェックに失敗したときに、Ｃ１’行パリティを消去してＣ１行パリティが未知であることを示すステップと、ｉが反復カウンタであり、ｉ＿ｍａｘが反復の最大数であるときに、予め定められた数以下の反復ｉ≦ｉ＿ｍａｘに対して、ＳＤＳに対するＣ２列復号を行うステップと、現在のインタリーブｊにおける訂正不可能なＣ２コードワードの数を定めるステップであって、訂正不可能なＣ２コードワードの数はＵ２（ｉ，ｊ）であり、０≦Ｕ２（ｉ，ｊ）≦Ｎ１であり、ここでＮ１はＣ１コードワードにおけるシンボルの総数である、ステップと、Ｋ１がＣ１コードワードにおけるデータ・シンボルの数であるときに、０≦Ｅ２（ｉ，ｊ）≦Ｕ２（ｉ，ｊ）かつ０≦Ｅ２（ｉ，ｊ）≦（Ｎ１−Ｋ１）となるように、ｉが反復カウンタであり、ｊが行における現在のインタリーブであるときの第１のパラメータＥ２（ｉ，ｊ）を選択するステップと、ｊ＿ｍａｘがインタリーブの最大数であるときに、１≦ｊ≦ｊ＿ｍａｘの反復に対して、ＳＤＳ１（ｉ，ｊ）のＮ１−Ｕ２（ｉ，ｊ）列を復号成功したＣ２コードワードで上書きするステップであって、ここでＳＤＳ１（ｉ，ｊ）はインタリーブｊに対する第１の算出ＳＤＳである、ステップと、ＳＤＳ１（ｉ−１，ｊ）における合計Ｕ２（ｉ，ｊ）のＣ２コードワードからＥ２（ｉ，ｊ）Ｃ２コードワードを消去するステップと、ＳＤＳ１（ｉ，ｊ）におけるＵ２（ｉ，ｊ）−Ｅ２（ｉ，ｊ）Ｃ２コードワードを未訂正のまま維持するステップと、ＳＤＳ１（ｉ，ｊ）の各インタリーブを組み合わせてＳＤＳ２（ｉ）を形成するステップであって、ここでＳＤＳ２（ｉ）は反復ｉに対する第１の算出ＳＤＳである、ステップと、ＳＤＳ２（ｉ）のすべての行がＣ１コードワードのみを含み、かつＳＤＳ２（ｉ）のすべての列がＣ２コードワードのみを含むときにこの方法を停止して、復号されたＳＤＳであるＳＤＳ２（ｉ）を出力するステップと、ＳＤＳ２（ｉ）に対してＣ１行復号を行うステップと、現在のインタリーブｊにおける訂正不可能なＣ１コードワードの数を定めるステップであって、訂正不可能なＣ１コードワードの数はＵ１（ｉ，ｊ）であり、０≦Ｕ１（ｉ，ｊ）≦Ｎ２であり、ここでＮ２は列におけるシンボルの総数である、ステップと、Ｋ２が列におけるデータ・シンボルの数であるときに、０≦Ｅ１（ｉ，ｊ）≦Ｕ１（ｉ，ｊ）かつ０≦Ｅ１（ｉ，ｊ）≦（Ｎ２−Ｋ２）となるように第２のパラメータＥ１（ｉ，ｊ）を選択するステップと、ｊ＿ｍａｘがインタリーブの最大数であるときに、１≦ｊ≦ｊ＿ｍａｘの反復に対して、ＳＤＳ２（ｉ，ｊ）のＮ２−Ｕ１（ｉ，ｊ）列を復号成功したＣ１コードワードで上書きするステップであって、ここでＳＤＳ２（ｉ，ｊ）はインタリーブｊに対する第２の算出ＳＤＳである、ステップと、ＳＤＳ２（ｉ，ｊ）における合計Ｕ１（ｉ，ｊ）のＣ１コードワードからＥ１（ｉ，ｊ）Ｃ１コードワードを消去するステップと、ＳＤＳ２（ｉ，ｊ）におけるＵ１（ｉ，ｊ）−Ｅ１（ｉ，ｊ）Ｃ１コードワードを未訂正のまま維持するステップと、上書きおよび消去されたＳＤＳ２（ｉ，ｊ）の各インタリーブを組み合わせてＳＤＳ１（ｉ）を形成するステップであって、ここでＳＤＳ１（ｉ）は反復ｉに対する第２の算出ＳＤＳである、ステップと、ＳＤＳ１（ｉ）のすべての行がＣ１コードワードのみを含み、かつＳＤＳ１（ｉ）のすべての列がＣ２コードワードのみを含むときにこの方法を停止して、復号されたＳＤＳであるＳＤＳ１（ｉ）を出力するステップと、反復カウンタｉを１だけ増分するステップと、反復の最大数が到達され、かつすべての行がＣ１コードワードでないか、もしくはすべての列がＣ２コードワードでないか、またはその両方であるときに、ヘッダ付ＳＤＳが適切に復号され得ないという表示を出力するステップとを含む。
【００１０】
さらに別の実施形態に従うと、ヘッダ付ＳＤＳを復号するためのコンピュータ・プログラム製品は、ともに具現化されるプログラム・コードを有するコンピュータ読取り可能記憶媒体を含み、このプログラム・コードはテープ・ドライブによって読取り可能／実行可能であることによって、テープ・ドライブによって、不均一誤り保護によって保護されるヘッダ付ＳＤＳを受信することであって、ヘッダ付ＳＤＳのヘッダは１レベルのＥＣＣによって保護され、ヘッダ付ＳＤＳのデータは２レベルのＥＣＣによって保護される、受信することと、テープ・ドライブによって、ヘッダ付ＳＤＳからヘッダを復号し、かつＣ１行パリティからヘッダの影響を除去してＳＤＳを得ることと、予め定められた数以下の反復に対して、テープ・ドライブによってＳＤＳに対するＣ２列復号を行うことと、ＳＤＳの各行におけるある数以下のインタリーブに対して、テープ・ドライブによってＳＤＳのある数の列を復号成功したＣ２コードワードで上書きすることと、テープ・ドライブによってＳＤＳのある数のＣ２コードワードを消去することと、テープ・ドライブによってＳＤＳの残りの列を未訂正のまま維持することと、テープ・ドライブによってＳＤＳに対してＣ１行復号を行うことと、ＳＤＳの各行におけるある数以下のインタリーブに対して、テープ・ドライブによってＳＤＳのある数の行を復号成功したＣ１コードワードで上書きすることと、テープ・ドライブによってＳＤＳのある数のＣ１コードワードを消去することと、テープ・ドライブによってＳＤＳの残りの行を未訂正のまま維持することと、ＳＤＳのすべての行がＣ１コードワードのみを含み、かつＳＤＳのすべての列がＣ２コードワードのみを含むときに、テープ・ドライブによってＳＤＳを出力し、そうでないときにはＳＤＳが適切に復号され得ないという表示を出力することとを行わせる。
【００１１】
添付の図面を参照して、単なる実施例として本発明の実施形態を説明する。
【図面の簡単な説明】
【００１２】
【図１】一実施形態に従うネットワーク記憶システムを示す図である。
【図２】一実施形態に従う、テープに基づくデータ記憶システムの簡略化したテープ・ドライブを示す図である。
【図３】一実施形態に従う、データを符号化するためのシステムを示す図である。
【図４】一実施形態に従う符号化サブ・データ・セット（ＳＤＳ）ユニットを示す図である。
【図５】一実施形態に従う、データを符号化するためのシステムを示す図である。
【図６】一実施形態に従う符号化ＳＤＳユニットを示す図である。
【図７】一実施形態に従う、データを符号化するためのシステムを示す図である。
【図８】一実施形態に従う符号化ＳＤＳユニットを示す図である。
【図９】一実施形態に従う、データを符号化するためのシステムを示す図である。
【図１０】一実施形態に従う符号化ＳＤＳユニットを示す図である。
【図１１】一実施形態に従う方法を示す流れ図である。
【図１２】一実施形態に従う方法を示す流れ図である。
【図１３】一実施形態に従う方法の流れ図である。
【図１４】一実施形態に従うサブ・データ・セットＳＤＳ２（ｉ，ｊ）の表現である。
【図１５】一実施形態に従うサブ・データ・セットＳＤＳ１（ｉ，ｊ）の表現である。
【図１６】一実施形態に従う方法の流れ図である。
【発明を実施するための形態】
【００１３】
以下の説明は本発明の一般的原理を示す目的でなされるものであって、本明細書において請求される発明の概念を限定することを意味するものではない。さらに、予想されるさまざまな組み合わせおよび並べ換えの各々において、本明細書に記載される特定の特徴が記載される他の特徴と組み合わされて用いられてもよい。
【００１４】
本明細書において特定的に別様に定義されない限り、すべての用語は、本明細書によって暗示される意味に加えて、当業者によって理解される意味、もしくは辞書、論文などにおいて定義される意味、またはその両方を含む、可能な限り広範な解釈を与えるものである。
【００１５】
加えて、本明細書および添付の請求項において用いられる単数形「ａ」、「ａｎ」および「ｔｈｅ」は、別様に指定されない限り複数の指示物を含むことを注記する必要がある。
【００１６】
一実施形態に従うと、不均一誤り保護を有するヘッダ付サブ・データ・セットを復号するために、ヘッダ、およびＣ１パリティに対するその影響が除去された後に、硬判定／消去に基づく反復復号が用いられてもよい。これを達成するために、一実施形態に従うと、以下のステップが行われてもよい。Ｃ１復号→サブ・データ・セットの行に関連するヘッダの復号→ヘッダ・フラグメントを除去することによってＣ１コードワードを短くする→Ｃ１パリティを修正する→反復的［Ｃ２復号→Ｃ１復号］。
【００１７】
一般的実施形態の１つにおいて、ヘッダ付サブ・データ・セット（ＳＤＳ）を復号するためのシステムは、不均一誤り保護によって保護されるヘッダ付ＳＤＳを受信するように適合された論理であって、ヘッダ付ＳＤＳのヘッダは１レベルの誤り訂正コード（ＥＣＣ）によって保護され、ヘッダ付ＳＤＳのデータは２レベルのＥＣＣによって保護される、論理と、ヘッダ付ＳＤＳからヘッダを復号し、かつＣ１行パリティからヘッダの影響を除去してＳＤＳ１（０）を得るように適合された論理と、予め定められた数以下の反復に対して、ＳＤＳ１（ｉ−１）に対するＣ２列復号を行い、かつＳＤＳの各行におけるある数以下のインタリーブに対して、ＳＤＳのある数の列を復号成功したＣ２コードワードで上書きし、ＳＤＳのある数のＣ２コードワードを消去し、かつＳＤＳの残りの列を未訂正のまま維持し、ＳＤＳに対してＣ１行復号を行い、ＳＤＳの各行におけるある数以下のインタリーブに対して、ＳＤＳのある数の行を復号成功したＣ１コードワードで上書きし、ＳＤＳのある数のＣ１コードワードを消去し、ＳＤＳの残りの行を未訂正のまま維持するように適合された論理と、ＳＤＳのすべての行がＣ１コードワードのみを含み、かつＳＤＳのすべての列がＣ２コードワードのみを含むときにＳＤＳを出力し、そうでないときにはＳＤＳが適切に復号され得ないという表示を出力するように適合された論理とを含む。
【００１８】
別の一般的実施形態において、ヘッダ付ＳＤＳを復号するためのシステムは、不均一誤り保護によって保護されるヘッダ付ＳＤＳを受信するように適合された論理であって、ヘッダ付ＳＤＳのヘッダは１レベルのＥＣＣによって保護され、ヘッダ付ＳＤＳのデータは２レベルのＥＣＣによって保護される、論理と、Ｃ１行パリティを得るためにＣ１’行パリティからヘッダの影響を除去することによって、ヘッダ付ＳＤＳのＣ１’行パリティを修正することによって、ヘッダ付ＳＤＳからヘッダを復号するためのＣ１’行復号を行うように適合された論理と、ヘッダ付ＳＤＳからヘッダを抽出してＳＤＳ１（０）を得て、ヘッダに対して誤りチェックを行うように適合された論理と、ヘッダが誤りチェックに失敗したときに、Ｃ１’行パリティを消去してＣ１行パリティが未知であることを示すように適合された論理と、ｉが反復カウンタであり、ｉ＿ｍａｘが反復の最大数であるときに、予め定められた数以下の反復ｉ≦ｉ＿ｍａｘに対して、ＳＤＳ１（ｉ−１）に対するＣ２列復号を行うように適合された論理と、行の現在のインタリーブｊにおける訂正不可能なＣ２コードワードの数を定めるように適合された論理であって、訂正不可能なＣ２コードワードの数はＵ２（ｉ，ｊ）であり、０≦Ｕ２（ｉ，ｊ）≦Ｎ１であり、ここでＮ１はＣ１コードワードにおけるシンボルの総数である、論理と、Ｋ１がＣ１コードワードにおけるデータ・シンボルの数であるときに、０≦Ｅ２（ｉ，ｊ）≦Ｕ２（ｉ，ｊ）かつ０≦Ｅ２（ｉ，ｊ）≦（Ｎ１−Ｋ１）となるように第１のパラメータＥ２（ｉ，ｊ）を選択するように適合された論理と、ｊ＿ｍａｘがインタリーブの最大数であるときに、１≦ｊ≦ｊ＿ｍａｘの反復に対して、ＳＤＳ１（ｉ−１，ｊ）のＮ１−Ｕ２（ｉ，ｊ）列を復号成功したＣ２コードワードで上書きするように適合された論理であって、ここでＳＤＳ１（ｉ−１，ｊ）はインタリーブｊに対する第１の算出ＳＤＳである、論理と、ＳＤＳ１（ｉ−１，ｊ）における合計Ｕ２（ｉ，ｊ）のＣ２コードワードからＥ２（ｉ，ｊ）Ｃ２コードワードを消去するように適合された論理と、ＳＤＳ１（ｉ−１，ｊ）におけるＵ２（ｉ，ｊ）−Ｅ２（ｉ，ｊ）Ｃ２コードワードを未訂正のまま維持するように適合された論理と、上書きおよび消去されたＳＤＳ１（ｉ−１，ｊ）の各インタリーブを組み合わせてＳＤＳ２（ｉ）を形成するように適合された論理であって、ここでＳＤＳ２（ｉ）は反復ｉに対する第１の算出ＳＤＳである、論理と、ＳＤＳ２（ｉ）のすべての行がＣ１コードワードのみを含み、かつＳＤＳ２（ｉ）のすべての列がＣ２コードワードのみを含むときに反復処理を停止して、復号されたＳＤＳであるＳＤＳ２（ｉ）を出力するように適合された論理と、ＳＤＳ２（ｉ）に対してＣ１行復号を行うように適合された論理と、現在のインタリーブｊにおける訂正不可能なＣ１コードワードの数を定めるように適合された論理であって、訂正不可能なＣ１コードワードの数はＵ１（ｉ，ｊ）であり、０≦Ｕ１（ｉ，ｊ）≦Ｎ２であり、ここでＮ２は列におけるシンボルの総数である、論理と、Ｋ２が列におけるデータ・シンボルの数であるときに、０≦Ｅ１（ｉ，ｊ）≦Ｕ１（ｉ，ｊ）かつ０≦Ｅ１（ｉ，ｊ）≦（Ｎ２−Ｋ２）となるように第２のパラメータＥ１（ｉ，ｊ）を選択するように適合された論理と、ｊ＿ｍａｘがインタリーブの最大数であるときに、１≦ｊ≦ｊ＿ｍａｘの反復に対して、ＳＤＳ２（ｉ，ｊ）のＮ２−Ｕ１（ｉ，ｊ）列を復号成功したＣ１コードワードで上書きするように適合された論理であって、ここでＳＤＳ２（ｉ，ｊ）はインタリーブｊに対する第２の算出ＳＤＳである、論理と、ＳＤＳ２（ｉ，ｊ）における合計Ｕ１（ｉ，ｊ）のＣ１コードワードからＥ１（ｉ，ｊ）Ｃ１コードワードを消去するように適合された論理と、ＳＤＳ２（ｉ，ｊ）におけるＵ１（ｉ，ｊ）−Ｅ１（ｉ，ｊ）Ｃ１コードワードを未訂正のまま維持するように適合された論理と、上書きおよび消去されたＳＤＳ２（ｉ，ｊ）の各インタリーブを組み合わせてＳＤＳ１（ｉ）を形成するように適合された論理であって、ここでＳＤＳ１（ｉ）は反復ｉに対する第２の算出ＳＤＳである、論理と、ＳＤＳ１（ｉ）のすべての行がＣ１コードワードのみを含み、かつＳＤＳ１（ｉ）のすべての列がＣ２コードワードのみを含むときに反復処理を停止して、復号されたＳＤＳであるＳＤＳ１（ｉ）を出力するように適合された論理と、反復カウンタｉを１だけ増分するように適合された論理と、反復の最大数が到達され、かつすべての行がＣ１コードワードでないか、もしくはすべての列がＣ２コードワードでないか、またはその両方であるときに、ヘッダ付ＳＤＳが適切に復号され得ないという表示を出力するように適合された論理とを含む。
【００１９】
別の一般的実施形態に従うと、ヘッダ付ＳＤＳを復号するための方法は、不均一誤り保護によって保護されるヘッダ付ＳＤＳを受信するステップであって、ヘッダ付ＳＤＳのヘッダは１レベルのＥＣＣによって保護され、ヘッダ付ＳＤＳのデータは２レベルのＥＣＣによって保護される、ステップと、ヘッダ付ＳＤＳからヘッダを復号し、かつＣ１行パリティからヘッダの影響を除去してＳＤＳ１（０）を得るステップと、予め定められた数以下の反復に対して、ＳＤＳ１（ｉ−１）に対するＣ２列復号を行うステップと、ＳＤＳの各行におけるある数以下のインタリーブに対して、ＳＤＳのある数の列を復号成功したＣ２コードワードで上書きするステップと、ＳＤＳのある数のＣ２コードワードを消去するステップと、ＳＤＳの残りの列を未訂正のまま維持するステップと、ＳＤＳに対してＣ１行復号を行うステップと、ＳＤＳの各行におけるある数以下のインタリーブに対して、ＳＤＳのある数の行を復号成功したＣ１コードワードで上書きするステップと、ＳＤＳのある数のＣ１コードワードを消去するステップと、ＳＤＳの残りの行を未訂正のまま維持するステップと、ＳＤＳのすべての行がＣ１コードワードのみを含み、かつＳＤＳのすべての列がＣ２コードワードのみを含むときにＳＤＳを出力するステップと、そうでないときにはＳＤＳが適切に復号され得ないという表示を出力するステップとを含む。
【００２０】
さらに別の一般的実施形態において、サブ・データ・セットを符号化するための方法は、不均一誤り保護によって保護されるヘッダ付ＳＤＳを受信するステップであって、ヘッダ付ＳＤＳのヘッダは１レベルのＥＣＣによって保護され、ヘッダ付ＳＤＳのデータは２レベルのＥＣＣによって保護される、ステップと、Ｃ１行パリティを得るためにＣ１’行パリティからヘッダの影響を除去することによって、ヘッダ付ＳＤＳのＣ１’行パリティを修正することによって、ヘッダ付ＳＤＳからヘッダを復号するためのＣ１’行復号を行うステップと、ヘッダ付ＳＤＳからヘッダを抽出してＳＤＳ１（０）を得て、ヘッダに対して誤りチェックを行うステップと、ヘッダが誤りチェックに失敗したときに、Ｃ１’行パリティを消去してＣ１行パリティが未知であることを示すステップと、ｉが反復カウンタであり、ｉ＿ｍａｘが反復の最大数であるときに、予め定められた数以下の反復ｉ≦ｉ＿ｍａｘに対して、ＳＤＳ１（ｉ−１）に対するＣ２列復号を行うステップと、現在のインタリーブｊにおける訂正不可能なＣ２コードワードの数を定めるステップであって、訂正不可能なＣ２コードワードの数はＵ２（ｉ，ｊ）であり、０≦Ｕ２（ｉ，ｊ）≦Ｎ１であり、ここでＮ１はＣ１コードワードにおけるシンボルの総数である、ステップと、Ｋ１がＣ１コードワードにおけるデータ・シンボルの数であるときに、０≦Ｅ２（ｉ，ｊ）≦Ｕ２（ｉ，ｊ）かつ０≦Ｅ２（ｉ，ｊ）≦（Ｎ１−Ｋ１）となるように、ｉが反復カウンタであり、ｊが行における現在のインタリーブであるときの第１のパラメータＥ２（ｉ，ｊ）を選択するステップと、ｊ＿ｍａｘがインタリーブの最大数であるときに、１≦ｊ≦ｊ＿ｍａｘの反復に対して、ＳＤＳ１（ｉ，ｊ）のＮ１−Ｕ２（ｉ，ｊ）列を復号成功したＣ２コードワードで上書きするステップであって、ここでＳＤＳ１（ｉ，ｊ）はインタリーブｊに対する第１の算出ＳＤＳである、ステップと、ＳＤＳ１（ｉ−１，ｊ）における合計Ｕ２（ｉ，ｊ）のＣ２コードワードからＥ２（ｉ，ｊ）Ｃ２コードワードを消去するステップと、ＳＤＳ１（ｉ，ｊ）におけるＵ２（ｉ，ｊ）−Ｅ２（ｉ，ｊ）Ｃ２コードワードを未訂正のまま維持するステップと、ＳＤＳ１（ｉ，ｊ）の各インタリーブを組み合わせてＳＤＳ２（ｉ）を形成するステップであって、ここでＳＤＳ２（ｉ）は反復ｉに対する第１の算出ＳＤＳである、ステップと、ＳＤＳ２（ｉ）のすべての行がＣ１コードワードのみを含み、かつＳＤＳ２（ｉ）のすべての列がＣ２コードワードのみを含むときにこの方法を停止して、復号されたＳＤＳであるＳＤＳ２（ｉ）を出力するステップと、ＳＤＳ２（ｉ）に対してＣ１行復号を行うステップと、現在のインタリーブｊにおける訂正不可能なＣ１コードワードの数を定めるステップであって、訂正不可能なＣ１コードワードの数はＵ１（ｉ，ｊ）であり、０≦Ｕ１（ｉ，ｊ）≦Ｎ２であり、ここでＮ２は列におけるシンボルの総数である、ステップと、Ｋ２が列におけるデータ・シンボルの数であるときに、０≦Ｅ１（ｉ，ｊ）≦Ｕ１（ｉ，ｊ）かつ０≦Ｅ１（ｉ，ｊ）≦（Ｎ２−Ｋ２）となるように第２のパラメータＥ１（ｉ，ｊ）を選択するステップと、ｊ＿ｍａｘがインタリーブの最大数であるときに、１≦ｊ≦ｊ＿ｍａｘの反復に対して、ＳＤＳ２（ｉ，ｊ）のＮ２−Ｕ１（ｉ，ｊ）列を復号成功したＣ１コードワードで上書きするステップであって、ここでＳＤＳ２（ｉ，ｊ）はインタリーブｊに対する第２の算出ＳＤＳである、ステップと、ＳＤＳ２（ｉ，ｊ）における合計Ｕ１（ｉ，ｊ）のＣ１コードワードからＥ１（ｉ，ｊ）Ｃ１コードワードを消去するステップと、ＳＤＳ２（ｉ，ｊ）におけるＵ１（ｉ，ｊ）−Ｅ１（ｉ，ｊ）Ｃ１コードワードを未訂正のまま維持するステップと、上書きおよび消去されたＳＤＳ２（ｉ，ｊ）の各インタリーブを組み合わせてＳＤＳ１（ｉ）を形成するステップであって、ここでＳＤＳ１（ｉ）は反復ｉに対する第２の算出ＳＤＳである、ステップと、ＳＤＳ１（ｉ）のすべての行がＣ１コードワードのみを含み、かつＳＤＳ１（ｉ）のすべての列がＣ２コードワードのみを含むときにこの方法を停止して、復号されたＳＤＳであるＳＤＳ１（ｉ）を出力するステップと、反復カウンタｉを１だけ増分するステップと、反復の最大数が到達され、かつすべての行がＣ１コードワードでないか、もしくはすべての列がＣ２コードワードでないか、またはその両方であるときに、ヘッダ付ＳＤＳが適切に復号され得ないという表示を出力するステップとを含む。
【００２１】
さらに別の一般的実施形態に従うと、ヘッダ付ＳＤＳを復号するためのコンピュータ・プログラム製品は、ともに具現化されるプログラム・コードを有するコンピュータ読取り可能記憶媒体を含み、このプログラム・コードはテープ・ドライブによって読取り可能／実行可能であることによって、テープ・ドライブによって、不均一誤り保護によって保護されるヘッダ付ＳＤＳを受信することであって、ヘッダ付ＳＤＳのヘッダは１レベルのＥＣＣによって保護され、ヘッダ付ＳＤＳのデータは２レベルのＥＣＣによって保護される、受信することと、テープ・ドライブによって、ヘッダ付ＳＤＳからヘッダを復号し、かつＣ１行パリティからヘッダの影響を除去してＳＤＳ１（０）を得ることと、予め定められた数以下の反復に対して、テープ・ドライブによってＳＤＳ１（ｉ−１）に対するＣ２列復号を行うことと、ＳＤＳの各行におけるある数以下のインタリーブに対して、テープ・ドライブによってＳＤＳのある数の列を復号成功したＣ２コードワードで上書きすることと、テープ・ドライブによってＳＤＳのある数のＣ２コードワードを消去することと、テープ・ドライブによってＳＤＳの残りの列を未訂正のまま維持することと、テープ・ドライブによってＳＤＳに対してＣ１行復号を行うことと、ＳＤＳの各行におけるある数以下のインタリーブに対して、テープ・ドライブによってＳＤＳのある数の行を復号成功したＣ１コードワードで上書きすることと、テープ・ドライブによってＳＤＳのある数のＣ１コードワードを消去することと、テープ・ドライブによってＳＤＳの残りの行を未訂正のまま維持することと、ＳＤＳのすべての行がＣ１コードワードのみを含み、かつＳＤＳのすべての列がＣ２コードワードのみを含むときに、テープ・ドライブによってＳＤＳを出力することと、そうでないときにはＳＤＳが適切に復号され得ないという表示を出力することとを行わせる。
【００２２】
当業者に認識されるとおり、本発明の局面はシステム、方法またはコンピュータ・プログラム製品として具現化されてもよい。したがって本発明の局面は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態（ファームウェア、常駐ソフトウェア、マイクロコードなどを含む）、またはソフトウェアおよびハードウェアの局面を組み合わせた実施形態の形を取ってもよく、本明細書においてこれらはすべて一般的に「論理」、「回路」、「モジュール」、または「システム」と呼ばれることがある。さらに、本発明の局面は、コンピュータ読取り可能プログラム・コードが具現化されている１つまたはそれ以上のコンピュータ読取り可能媒体（単数または複数）において具現化されるコンピュータ・プログラム製品の形を取ってもよい。
【００２３】
１つまたはそれ以上のコンピュータ読取り可能媒体（単数または複数）の任意の組み合わせが用いられてもよい。コンピュータ読取り可能媒体は、コンピュータ読取り可能信号媒体または非一時的なコンピュータ読取り可能記憶媒体であってもよい。非一時的なコンピュータ読取り可能記憶媒体は、たとえば電子、磁気、光学、電磁気、赤外、または半導体のシステム、装置、もしくはデバイス、または前述のもののあらゆる好適な組み合わせなどであってもよいがそれに限定されない。コンピュータ読取り可能記憶媒体のより特定的な例（非網羅的なリスト）は以下を含む。すなわち、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ：ＲＡＭ）、リード・オンリ・メモリ（ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ：ＲＯＭ）、消去可能プログラマブル・リード・オンリ・メモリ（ｅｒａｓａｂｌｅ  ｐｒｏｇｒａｍｍａｂｌｅ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）（ＥＰＲＯＭまたはフラッシュ・メモリ）、ポータブル・コンパクト・ディスク・リード・オンリ・メモリ（ｃｏｍｐａｃｔ  ｄｉｓｃ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ：ＣＤ−ＲＯＭ）、光学記憶装置、磁気記憶装置、または前述のもののあらゆる好適な組み合わせである。本文書の状況において、コンピュータ読取り可能記憶媒体は、命令実行システム、装置またはデバイスによる使用、またはそれに関連する使用のためのプログラムを含有または保存し得るあらゆる非一時的な有形の媒体であってもよい。
【００２４】
コンピュータ読取り可能信号媒体は、たとえばベースバンド内で、または搬送波の部分などとして媒体内で具現化されるコンピュータ読取り可能プログラム・コードを有する伝播データ信号を含んでもよい。こうした伝播信号は、電磁気信号、光学信号、またはそのあらゆる好適な組み合わせを含むがそれに限定されないさまざまな形のいずれかを取ってもよい。コンピュータ読取り可能信号媒体は、コンピュータ読取り可能記憶媒体ではなく、かつ命令実行システム、装置またはデバイスによる使用、またはそれに関連する使用のためのプログラムを通信、伝播または移送できる任意のコンピュータ読取り可能媒体、たとえば１つまたはそれ以上のワイヤを有する電気的接続、光ファイバなどであってもよい。
【００２５】
コンピュータ読取り可能媒体において具現化されるプログラム・コードは、ワイヤレス、ワイヤライン、光ファイバ・ケーブル、ＲＦなど、または前述のもののあらゆる好適な組み合わせを含むがそれに限定されない任意の適切な媒体を用いて送信されてもよい。
【００２６】
本発明の局面のための動作を実行するためのコンピュータ・プログラム・コードは、オブジェクト指向プログラミング言語、たとえばＪａｖａ（Ｒ）、Ｓｍａｌｌｔａｌｋ（Ｒ）、またはＣ＋＋など、および従来の手続き型プログラミング言語、たとえば「Ｃ」プログラミング言語または類似のプログラミング言語などを含む、１つまたはそれ以上のプログラミング言語のあらゆる組み合わせで書かれていてもよい。プログラム・コードは、すべてがユーザのコンピュータで実行されてもよいし、スタンド・アロン・ソフトウェア・パッケージとして部分的にユーザのコンピュータで実行されてもよいし、部分的にユーザのコンピュータで、部分的にリモート・コンピュータで実行されてもよいし、すべてがリモート・コンピュータまたはサーバで実行されてもよい。後者のシナリオにおいて、リモート・コンピュータは、ローカル・エリア・ネットワーク（ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ：ＬＡＮ）または広域ネットワーク（ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋ：ＷＡＮ）を含むあらゆるタイプのネットワークを通じてユーザのコンピュータに接続されてもよいし、（たとえばインターネット・サービス・プロバイダを使用するインターネットを通じて）外部コンピュータへの接続が行われてもよい。
【００２７】
本発明の実施形態に従う方法、装置（システム）およびコンピュータ・プログラム製品の流れ図もしくはブロック図またはその両方を参照して、本発明の局面を以下に説明する。流れ図もしくはブロック図またはその両方の各ブロック、および流れ図もしくはブロック図またはその両方におけるブロックの組み合わせは、コンピュータ・プログラム命令によって実現され得ることが理解されるだろう。これらのコンピュータ・プログラム命令が、汎用コンピュータ、特定目的のコンピュータ、またはその他のプログラマブル・データ処理装置のプロセッサに与えられることによって、そのコンピュータまたはその他のプログラマブル・データ処理装置のプロセッサを介して実行された命令が、流れ図もしくはブロック図またはその両方の単数または複数のブロックにおいて指定された機能／動作を実現するための手段を作成するようにマシンを生成してもよい。
【００２８】
さらに、これらのコンピュータ・プログラム命令は、コンピュータ、その他のプログラマブル・データ処理装置またはその他のデバイスに特定の態様で機能するよう指示できるコンピュータ読取り可能媒体に保存されることによって、コンピュータ読取り可能媒体に保存された命令が、流れ図もしくはブロック図またはその両方の単数または複数のブロックにおいて指定された機能／動作を実現する命令を含む製造品を生成するようにしてもよい。
【００２９】
さらに、コンピュータ・プログラム命令は、コンピュータ、その他のプログラマブル・データ処理装置またはその他のデバイスにロードされて、そのコンピュータ、その他のプログラマブル装置またはその他のデバイスにおいて一連の動作ステップを行わせることにより、そのコンピュータまたはその他のプログラマブル装置において実行された命令が、流れ図もしくはブロック図またはその両方の単数または複数のブロックにおいて指定された機能／動作を実現するためのプロセスを提供するような、コンピュータに実現されるプロセスを生成してもよい。
【００３０】
ここで図１を参照すると、一実施形態に従うネットワーク記憶システム１０の概略図が示される。このネットワーク記憶システム１０は、好適な記憶システムの単なる一例であり、本明細書に記載される本発明の実施形態の使用または機能の範囲に関するいかなる限定を示唆することも意図されない。それにかかわらず、ネットワーク記憶システム１０は上記に示した機能のいずれかを実現もしくは実行するか、またはその両方を行い得る。
【００３１】
ネットワーク記憶システム１０内にはコンピュータ・システム／サーバ１２があり、これは多数のその他の汎用または特定目的のコンピュータ・システム環境または構成とともに動作可能である。コンピュータ・システム／サーバ１２とともに使用するために好適であり得る周知のコンピュータ・システム、環境もしくは構成、またはその組み合わせの例は、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルドまたはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサに基づくシステム、セット・トップ・ボックス、プログラマブルな家電製品、ネットワークＰＣ、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、および上記のシステムまたはデバイスのいずれかを含む分散クラウド・コンピューティング環境などを含むが、それに限定されない。
【００３２】
コンピュータ・システム／サーバ１２は、コンピュータ・システムによって実行される、たとえばプログラム・モジュールなどのコンピュータ・システム実行可能命令の一般的状況において説明されてもよい。一般的に、プログラム・モジュールは、特定のタスクを行うか、または特定の抽象データ・タイプを実現するルーチン、プログラム、オブジェクト、コンポーネント、論理（単に、ロジックまたはロジック回路とも呼ぶ）、およびデータ構造などを含んでもよい。コンピュータ・システム／サーバ１２は、通信ネットワークによってリンクされたリモート処理デバイスによってタスクが実行される分散クラウド・コンピューティング環境において実行されてもよい。分散クラウド・コンピューティング環境において、プログラム・モジュールは、メモリ記憶装置を含むローカルおよびリモートのコンピュータ・システム記憶媒体の両方に位置してもよい。
【００３３】
図１に示されるとおり、ネットワーク記憶システム１０のコンピュータ・システム／サーバ１２は、汎用コンピュータ・デバイスの形で示されている。コンピュータ・システム／サーバ１２のコンポーネントは、１つまたはそれ以上のプロセッサまたは処理ユニット１６、システム・メモリ２８、およびシステム・メモリ２８を含むさまざまなシステム・コンポーネントをプロセッサ１６に結合するバス１８を含んでもよいが、それに限定されない。
【００３４】
バス１８は、メモリ・バスまたはメモリ・コントローラ、周辺バス、アクセラレイティッド・グラフィックス・ポート、およびさまざまなバス・アーキテクチャのいずれかを用いるプロセッサまたはローカル・バスを含むいくつかのタイプのバス構造のいずれかのうちの１つまたはそれ以上を表す。限定ではなく例として、こうしたアーキテクチャは、業界標準アーキテクチャ（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ：ＩＳＡ）バス、マイクロ・チャネル・アーキテクチャ（Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ：ＭＣＡ）バス、拡張ＩＳＡ（Ｅｎｈａｎｃｅｄ  ＩＳＡ：ＥＩＳＡ）バス、ビデオ・エレクトロニクス規格協会（Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ：ＶＥＳＡ）ローカル・バス、および周辺コンポーネント相互接続（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔｓ：ＰＣＩ）バスを含む。
【００３５】
典型的に、コンピュータ・システム／サーバ１２はさまざまなコンピュータ・システム読取り可能媒体を含む。こうした媒体は、コンピュータ・システム／サーバ１２によるアクセスが可能なあらゆる利用可能な媒体であってもよく、それは揮発性および不揮発性の媒体、取り外し可能および取り外し不可能な媒体の両方を含む。
【００３６】
システム・メモリ２８は、たとえばランダム・アクセス・メモリ（ＲＡＭ）３０もしくはキャッシュ・メモリ３２またはその両方などの、揮発性メモリの形のコンピュータ・システム読取り可能媒体を含んでもよい。コンピュータ・システム／サーバ１２はさらに、その他の取り外し可能／取り外し不可能な揮発性／不揮発性のコンピュータ・システム記憶媒体を含んでもよい。単なる例として、ＨＤＤ内で動作され得る、図示されない典型的に「ハード・ディスク」と呼ばれる取り外し不可能な不揮発性磁気媒体に対する読取りおよび書込みを行うために、記憶システム３４が提供されてもよい。図示されていないが、取り外し可能な不揮発性磁気ディスク（例、「フロッピー・ディスク」）に対する読取りおよび書込みを行うための磁気ディスク・ドライブ、およびたとえばＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭまたはその他の光学媒体などの取り外し可能な不揮発性光ディスクに対する読取りまたは書込みを行うための光ディスク・ドライブが提供されてもよい。こうした場合に、その各々は１つまたはそれ以上のデータ媒体インタフェースによってバス１８に接続されてもよい。以下にさらに示されて説明されるとおり、メモリ２８は、本明細書に記載される実施形態の機能を実行するように構成されたプログラム・モジュールの組（例、少なくとも１つ）を有する少なくとも１つのプログラム製品を含んでもよい。
【００３７】
限定ではない例として、プログラム・モジュール４２の組（少なくとも１つ）を有するプログラム／ユーティリティ４０、ならびにオペレーティング・システム、１つまたはそれ以上のアプリケーション・プログラム、その他のプログラム・モジュール、およびプログラム・データがメモリ２８に保存されてもよい。このオペレーティング・システム、１つまたはそれ以上のアプリケーション・プログラム、その他のプログラム・モジュール、およびプログラム・データの各々、またはその何らかの組み合わせは、ネットワーキング環境の実現を含んでもよい。一般的にプログラム・モジュール４２は、本明細書に記載される本発明の実施形態の機能もしくは方法論またはその両方を実行する。
【００３８】
コンピュータ・システム／サーバ１２はさらに、たとえばキーボード、ポインティング・デバイス、ディスプレイ２４などの１つまたはそれ以上の外部デバイス１４、ユーザがコンピュータ・システム／サーバ１２と対話することを可能にする１つまたはそれ以上のデバイス、もしくはコンピュータ・システム／サーバ１２が１つもしくはそれ以上の他のコンピュータ・デバイスと通信することを可能にする任意のデバイス（例、ネットワーク・カード、モデムなど）、またはその組み合わせと通信してもよい。こうした通信は、入力／出力（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ：Ｉ／Ｏ）インタフェース２２を介して行われてもよい。さらに、コンピュータ・システム／サーバ１２は、たとえばローカル・エリア・ネットワーク（ＬＡＮ）、一般的な広域ネットワーク（ＷＡＮ）、もしくはパブリック・ネットワーク（例、インターネット）、またはその組み合わせなどの１つまたはそれ以上のネットワークとネットワーク・アダプタ２０を介して通信してもよい。図示されるとおり、ネットワーク・アダプタ２０はバス１８を介して、コンピュータ・システム／サーバ１２のその他のコンポーネントと通信する。図示されていないが、コンピュータ・システム／サーバ１２とともに、他のハードウェアもしくはソフトウェア・コンポーネントまたはその両方が用いられ得ることが理解されるべきである。その例は、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、ＲＡＩＤシステム、テープ・ドライブ、およびデータ・アーカイバル記憶システムなどを含むが、それに限定されない。
【００３９】
図２は、さまざまな実施形態に従って用いられ得る、テープに基づくデータ記憶システムの簡略化したテープ・ドライブ１００を示す。図２にはテープ・ドライブの１つの特定的な実施が示されるが、本明細書に記載される実施形態は任意のタイプのテープ・ドライブ・システムの状況において実現されてもよいことに留意すべきである。
【００４０】
図示されるとおり、テープ１２２を支持するために、テープ供給カートリッジ１２０および巻取りリール１２１が提供される。リールのうち１つまたはそれ以上は取り外し可能なカセットの一部を形成してもよく、必ずしもシステム１００の一部ではない。図２に示されるものなどのテープ・ドライブはさらに、任意のタイプのテープ・ヘッド１２６の上でテープ１２２を動かすために、テープ供給カートリッジ１２０および巻取りリール１２１を駆動するための駆動モータ（単数または複数）を含んでもよい。
【００４１】
ガイド１２５は、テープ・ヘッド１２６を横切るテープ１２２を誘導する。こうしたテープ・ヘッド１２６は、ケーブル１３０を介してコントローラ・アセンブリ１２８に結合される。コントローラ１２８は典型的に、サーボ・チャネル１３４と、データ・フロー処理を含むデータ・チャネル１３６とを含む。コントローラ１２８は（図２には示されない）リールの動きと、たとえばトラック追跡、書込み、読取りなどのヘッドの機能とを制御する。ケーブル１３０は、テープ１２２に記録されるべきデータをヘッド１２６に送信し、かつヘッド１２６によってテープ１２２から読取られたデータを受信するための読取り／書込み回路を含んでもよい。アクチュエータ１３２は、書込みまたは読取り動作を行うために、テープ１２２上のトラックの組のところにヘッド１２６を移動させる。
【００４２】
当業者に理解されるとおり、データを送受信するため、およびテープ・ドライブ１００の動作を制御してテープ・ドライブ１００の状態をホストに通信するために、テープ・ドライブ１００とホスト（一体型または外部）との間の通信のためのインタフェースがさらに提供されてもよい。
【００４３】
ＥＣＣは、非常に低いビット誤り率を達成するためにデータ記憶装置において用いられる。たとえば、磁気テープ記憶装置製品は、通常の動作条件下で１×１０−１７から１×１０−１９の範囲のビット誤り率を確実にするように設計される。一般的に、たとえばリード−ソロモン（Ｒｅｅｄ−Ｓｏｌｏｍｏｎ：ＲＳ）コードおよび低密度パリティ・チェック（ｌｏｗ−ｄｅｎｓｉｔｙ  ｐａｒｉｔｙ−ｃｈｅｃｋ：ＬＤＰＣ）コードなどの線形ブロック・コードは、データ記憶装置製品において用いられる好ましいＥＣＣスキームである。
【００４４】
従来、送信機（データ記憶装置の状況における書込み側）におけるＲＳエンコーダは、エンコーダの入力においていくつかの情報シンボル（Ｋ）を受取り、各シンボルはいくつかのビット（ｍ）からなり、ｍのサイズに対する好ましい選択は８であり、たとえば一実施形態においてｍ＝８であり、シンボルはバイトである。次いでＲＳエンコーダは第１のステップにおいて、Ｋ入力シンボルの線形関数として、「パリティ・シンボル」、「オーバーヘッド」または「冗長」として公知であるＮ−Ｋ個のシンボルを生成し、第２のステップにおいて、生成された（Ｎ−Ｋ）パリティ・シンボルをＫ情報シンボルの端部に付加することによって、Ｎ−シンボルＲＳコードワードを得る。
【００４５】
このことを、ＲＳ（Ｎ，Ｋ）コードからコードワードを生成するという。ＲＳ（Ｎ，Ｋ）コードの最小ハミング距離（ｄ）はｄ＝Ｎ−Ｋ＋１である。これは、任意の２つのＲＳ（Ｎ，Ｋ）コードワードがｄ以上のシンボルだけ異なっており、合計（２ｍ）ＫＲＳ（Ｎ，Ｋ）コードワードが存在することを意味する。ＲＳ（Ｎ，Ｋ）コードはＲＳ（Ｎ，Ｋ，ｄ）コードと呼ばれてもよく、それによってこの表記にハミング距離の表示が含まれる。ＲＳコードのｍビット・シンボルは、２ｍシンボルを有するガロア体（Ｇａｌｏｉｓ  ｆｉｅｌｄ：ＧＦ）からのものである。したがってＲＳコードは、ＧＦ（２ｍ）上のＲＳ（Ｎ，Ｋ，ｄ）コードと呼ばれてもよい。ＲＳパリティ・シンボルは、線形フィードバック・シフト・レジスタ回路または当該技術分野において公知の何らかの他の技術を用いて生成されてもよい。生成されたパリティ・シンボルを情報シンボルに付加する、線形フィードバック・シフト・レジスタ回路を用いるＲＳエンコーダは、当該技術分野において「システマティック・エンコーダ」として公知である。
【００４６】
受信機（データ記憶装置の状況における読取り側）におけるＧＦ（２ｍ）上のＲＳ（Ｎ，Ｋ，ｄ）コードに対するＲＳデコーダは、最大ｔシンボルまで訂正可能であり、ここでｔ＝フロア（（Ｎ−Ｋ）／２）である。言換えると、Ｎ−シンボルＲＳコードワードにおいて最大ｔシンボルまでが破損されてもよく、ＲＳデコーダはこれらｔの誤ったシンボルを訂正できる。あらゆる所与のデータ・セットに対して、最大ｔシンボルの群が誤りを含むと考えられ、誤ったｍビット・シンボルの各々は少なくとも１ビットの誤り、最大ｍビットの誤りを含むと考えられる。このＲＳデコーダの誤り訂正能力はｔである。ときには、ＲＳデコーダがコードワード内の誤ったシンボルの位置に関する付加的な情報を用いてもよい。言換えると、ＲＳデコーダはどのシンボルが誤っているかは認識しているが、その誤ったシンボルのうちの何ビットまたはどのビットが誤っているかは分からない。これは消去訂正の場合である。ＲＳデコーダは、ｅの消去シンボルを訂正可能であり、ここでｅ＝（Ｎ−Ｋ）である。この場合、ＲＳデコーダは誤ったシンボルの位置を認識している。一般的に、ｄ＝（Ｎ−Ｋ＋１）であって（ｅ’＋２ｔ’）＜ｄであるとき、ＲＳデコーダは未知の位置のｅ’の消去シンボルおよびｔ’の誤ったシンボルを訂正可能である。
【００４７】
ＲＳコードワード中にｔ＝フロア（（Ｎ−Ｋ）／２）以下の誤ったシンボル（またはｅ＝（Ｎ−Ｋ）以下の消去シンボル）があるとき（最も一般的な場合、（ｅ’＋２ｔ’）＜ｄ＝（Ｎ−Ｋ＋１））、限界距離ＲＳデコーダ（実際にはほとんどのＲＳデコーダが限界距離のタイプである）は、すべての誤ったシンボルおよび消去シンボルを訂正する。ＲＳコードワード中にｔよりも多い誤ったシンボル（またはｅよりも多い消去シンボル）があるとき（最も一般的な場合、（ｅ’＋２ｔ’）＞（Ｎ−Ｋ））、限界距離ＲＳデコーダの出力において２つのことが起こり得る。
【００４８】
最もよく起こり得るのは、誤ったシンボルおよび消去シンボルの総数がＲＳデコーダの誤り訂正能力を超えることを示す復号失敗フラグをＲＳデコーダが発生させることである。それよりも起こることが少ない結果としては、誤ったシンボルおよび消去シンボルの総数によって、受信機の破損したＲＳコードワードが別のＲＳコードワードに非常に近くなることがあり、ＲＳデコーダはその誤りおよび消去シンボルを訂正して誤ったＲＳコードワードを出力することがある。この場合には「誤訂正」が起こったのであり、ＲＳデコーダは間違いを起こしたことを認識していない。最もよく起こり得る誤訂正は、復号されたＲＳコードワードが元のＲＳコードワードとｄ＝Ｎ−Ｋ＋１シンボルだけ異なっている場合である。最後に、ＲＳデコーダは復号されたＲＳコードワードからパリティ・シンボルを削除して、情報シンボルを回復させる。
【００４９】
ここで図３を参照すると、一実施形態に従う、Ｍの同時書込みされるトラックを有するテープ・ドライブにおいてデータを符号化するためのシステム３００が示され、これはＣ１誤り訂正コード（ＥＣＣ）エンコーダ・モジュール３０２、ＤＲＡＭバッファ３０４、Ｃ２  ＥＣＣエンコーダ・モジュール３０６、第２のＤＲＡＭバッファ３０８（ＤＲＡＭバッファ３０４と同じでも違っていてもよい）、符号化データにヘッダ３１２を付加するためのマルチプレクサ（ｍｕｌｔｉｐｌｅｘｅｒ：ＭＵＸ）３１０、およびテープ・レイアウト付加モジュール３１４の動作を含む。システム３００はさらに、スクランブリング（例、各チャネルにおけるデータのランダム化のために適合された乱数発生器１からＭ）３１６、…、３１８、ラン・レングス制限（ｒｕｎ−ｌｅｎｇｔｈ  ｌｉｍｉｔｅｄ：ＲＬＬ）エンコーダ・モジュール３２０、…、３２２、各トラック１、…、Ｍに対して同期３２８、…、３３０を挿入するための個別チャネル・マルチプレクサ３２４、…、３２６を含む。磁気媒体には、たとえば４トラック、８トラック、１６トラック、３２トラック、６４トラックなど、任意の数のトラックが書込まれてもよい。さらに、たとえば磁気テープ、光ディスク（たとえばＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、Ｂｌｕ−Ｒａｙ（Ｒ）など）、ハード・ディスクなど、任意のタイプの記憶媒体が用いられてもよい。
【００５０】
１つのアプローチにおいて、記憶媒体は磁気テープであってもよく、一実施形態において、システム３００は、たとえばテープ・レイアウト付加モジュール３１４など、磁気テープに符号化データを書込む前に符号化データを複数のトラックにパースするために適合された論理を含んでもよい。
【００５１】
図３において、サブ・データ・セット（ＳＤＳ）にプロダクト・コードを挿入するために、Ｃ１  ＥＣＣエンコーダ・モジュール３０２、ＤＲＡＭバッファ３０４、Ｃ２  ＥＣＣエンコーダ・モジュール３０６、および第２のＤＲＡＭバッファ３０８が用いられてもよい。
【００５２】
以下の説明においては、ＥＣＣ符号化におけるＣ１パリティおよびＣ２パリティが説明の中心であるため、説明を簡略化するためにこれらの動作のほとんどは示されない。しかし、本明細書におけるあらゆる説明は、示されていなくても他の図面に記載されている付加的な動作を含んでもよい。
【００５３】
本明細書に記載される任意の実施形態に従って処理される受信データ内の各データ・セットは、複数のサブユニットまたはＳＤＳを含み、各ＳＤＳは、図４に示される行４０２および列４０４を有する２次元アレイ４００である。アレイ４００の各行４０２は１つまたはそれ以上のＣ１コードワードを含み、アレイ４００の各列４０４は１つまたはそれ以上のＣ２コードワードを含む。リニア・テープ・オープン（ＬＴＯ）において、各符号化ＳＤＳは行４０２に２つ（世代ＬＴＯ  １〜ＬＴＯ  ４に対して）または４つ（ＬＴＯ  ５以降）のＣ１コードワードを含む。しかし、ＳＤＳアレイ４００の各行４０２には、１から８またはそれ以上のいずれのＣ１コードワードが含まれてもよい。通常、各データ・セットは複数のＳＤＳを含み、列符号化ＳＤＳの各行４０２にヘッダ４０６が割り当てられるため、単一のデータ・セットに何百または何千ものヘッダ４０６が割り当てられる。
【００５４】
図４に示されるとおり、Ｃ１符号化はＣ２  ＥＣＣ符号化の前に行われるため、Ｃ２列パリティ４０８はアレイ４００のＣ２列パリティ部分における各行４０２の全長にわたって延在する。Ｃ１行パリティ４１０は、アレイ４００のＣ２列パリティ領域４０８の外側の、各行４０２の端部に位置する。しかし図４に示されるとおり、Ｃ２列パリティ領域４０８内の点線はＣ１コードワードである。これは、プロダクト・コードに影響を与えることなくＣ１およびＣ２拡張の順序を交換し得るというプロダクト・コード構成の特性であり、すなわちＣ１およびＣ２拡張の順序とは独立して、すべての行は１つのコードからのものであり、すべての列は別のコードからのものである。
【００５５】
一実施形態に従うと、各行４０２は行４０２の全体にインタリーブされた４つのＣ１コードワードを含んでもよく、それはＣＷＩ−４と呼ばれる。各Ｃ１コードワードは２３０バイトの長さであってもよく、付加的なＣ１パリティが付加的な１０バイトを追加する。この実施形態においては、各行４０２に４つのＣ１コードワードがインタリーブされているため、各行４０２（１行は１つのＣＷＩ−４である）は、４×２３０バイト＋４×１０バイト＝９６０バイトを有する。さらに、この実施形態においては各ＳＤＳアレイ４００に９６の行４０２が存在してもよく、他の実施形態においてはそれより多数または少数の行４０２が存在してもよい。
【００５６】
加えて、１つのアプローチにおいてヘッダ４０６は１２バイトの長さであってもよく、この実施形態においては９６行４０２のヘッダ４０６が存在する。その結果、ヘッダ４０６に対するＥＣＣ符号化なしで、ＳＤＳ２次元アレイ４００の合計サイズは９３，３１２バイトとなる。
【００５７】
さらに、１つのアプローチにおいて、Ｃ１  ＥＣＣ符号化スキームはＧＦ（２５６）上のＲＳ（２４０，２３０，１１）コードを含んでもよく、Ｃ２  ＥＣＣはＧＦ（２５６）上のＲＳ（９６，８４，１３）コードを含んでもよい。
【００５８】
ここで図３〜４を参照すると、一実施形態において、データを符号化するためのシステム３００は、１つまたはそれ以上のＳＤＳを含むデータを受信するために適合された論理、およびその１つまたはそれ以上のＳＤＳのＣ１  ＥＣＣ符号化の際に複数のＣ１コードワードを生成するために適合されたＣ１  ＥＣＣエンコーダ・モジュール３０２を含んでもよく、Ｃ１コードワードの各々は複数のシンボルを含む。いくつかの実施形態において、シンボルはバイト（８ビット・シンボル、ここでビットは０または１の値を取る）であってもよいが、他の実施形態においては他のシンボルが用いられてもよい。システム３００はさらに、たとえばマルチプレクサ３１０など、複数のＣ１コードワードをインタリーブしてＣ１コードワード・インタリーブ（ｃｏｄｅｗｏｒｄ  ｉｎｔｅｒｌｅａｖｅｓ：ＣＷＩ）にするために適合された論理を含んでもよい。各ＣＷＩ内には予め定められた数のＣ１コードワードがインタリーブされており、図４に示されるとおり、各行（ＣＷＩ−４）４０２には４つのＣ１コードワードがインタリーブされているが、たとえば２、６、８、１０などの任意の数のコードワードがインタリーブされてもよい。
【００５９】
各行４０２にＣ１コードワードをインタリーブするために起こることは、各コードワードの第１のバイトが行に配置され、次に各コードワードの第２のバイト、次に各コードワードの第３のバイトが続き、すべてのコードワードの第１のバイトが一緒になり、すべての第２のバイト、すべての第３のバイト、…、および各コードワードのすべての最終バイトが一緒になるように、各コードワードからの各後続バイトがともにインタリーブされることである。一実施形態においては、第１のインタリーブからのビットが常に列４０４内で一緒にならないように、アレイ４００の異なる行４０２に対するインタリーブの位置決めが異なる。
【００６０】
言換えると、複数のＣ１コードワードをＣＷＩ４０２にインタリーブするために適合された論理は、各ＣＷＩ４０２に同じ数のＣ１コードワードを一緒にバイト・インタリーブするために適合された論理を含む。ともにインタリーブされるＣ１コードワードの数は、２から８のＣ１コードワードの範囲、またはそれ以上であってもよい。
【００６１】
テープ・レイアウトはＣ２およびＣ１コードワードをインタリーブするため、Ｃ２デコーダ入力におけるバイト誤りを無相関化する。１つのアプローチにおいて、６ＭＢのデータ・セット（ｄａｔａ  ｓｅｔ：ＤＳ）は６４のＳＤＳを含んでもよく、これは基本的なＥＣＣデータ・ユニットである。加えて、テープ・レイアウトはヘッダをＳＤＳ行（約１ｋＢのパケット）に関連付け、各パケットを論理トラックの１つ、たとえば３２論理トラックの１つに割り当てる。Ｃ２デコーダ入力における１×１０−３未満の誤り率は、Ｃ２デコーダ出力における１×１０−１７未満の誤り率に変換される。３２トラック・テープ・レイアウト設計は良好な無相関化特性を有する。本明細書に記載される実施形態によって、ＬＴＯ−５最小パケット・スペーシングからの５０％増加による無相関化の改善が可能である。
【００６２】
システム３００はさらに、１つまたはそれ以上のＳＤＳのＣ２  ＥＣＣ符号化の際に複数のＣ２コードワードを生成するために適合されたＣ２エンコーダ・モジュール３０６を含み、Ｃ２コードワードの各々は複数のシンボルを含む。Ｃ２コードワードはアレイ４００の列４０４によって表され、各列４０４は、さまざまな実施形態に従って１つのＣ２コードワードの一部、正確に１つのＣ２コードワード、またはそれ以上のＣ２コードワードを含む。しかし、この実施形態において、各Ｃ２コードワードは各ＣＷＩ（各行４０２）の各Ｃ１コードワードからの最大１つのシンボルを有し、各列４０４は正確に１つのＣ２コードワードである。
【００６３】
加えてシステム３００は、１つまたはそれ以上の符号化ＳＤＳを記憶媒体に書込むために適合された論理を含む。１つのアプローチにおいて、この論理は、テープ・レイアウト付加モジュール３１４、乱数発生器３１６、３１８、ＲＬＬエンコーダ３２０、３２２、マルチプレクサ３２４、３２６、および同期パターン挿入３２８、３３０に含まれてもよい。
【００６４】
一実施形態に従うと、システム３００において、Ｃ１  ＥＣＣ符号化はＣ２  ＥＣＣ符号化の前に行われ、その結果として図４に示されるとおりのＳＤＳ符号化が得られる。
【００６５】
図５〜６に示される別の実施形態に従うと、システム５００は（Ｃ２  ＥＣＣエンコーダ・モジュール３０６を用いた）Ｃ２  ＥＣＣ符号化を、（Ｃ１  ＥＣＣエンコーダ・モジュール３０２を用いた）Ｃ１  ＥＣＣ符号化の前に実行してもよく、一実施形態に従うと、その結果として図６に示されるとおりのＳＤＳ符号化が得られる。最初にＣ２符号化が行われるが、図６のＣ１行パリティ領域４１０の列は、Ｃ１行パリティ領域４１０内の垂直の実線で示されるＣ２コードワードである。これはプロダクト・コード構成の特性である。
【００６６】
しかし、図４のアレイ４００と同様に、図６のアレイ６００は符号化されないヘッダ４０６を有する。
【００６７】
この実施形態において、１つまたはそれ以上のＳＤＳのＣ２  ＥＣＣ符号化の際に複数のＣ２コードワードを生成するために適合されたＣ２エンコーダ・モジュール３０６を有することも可能である。Ｃ２コードワードはアレイ６００の列４０４によって表され、各列４０４は、さまざまな実施形態に従って１つのＣ２コードワードの一部、正確に１つのＣ２コードワード、またはそれ以上のＣ２コードワードを含む。しかし、この実施形態において、各Ｃ２コードワードは各ＣＷＩ（各行４０２）の各Ｃ１コードワードからの最大１つのシンボルを有し、各列４０４は正確に１つのＣ２コードワードである。
【００６８】
さらに、１つのアプローチにおいて、Ｃ１  ＥＣＣ符号化スキームはＧＦ（２５６）上のＲＳ（２４０，２３０，１１）コードを含んでもよく、Ｃ２  ＥＣＣはＧＦ（２５６）上のＲＳ（９６，８４，１３）コードを含んでもよい。
【００６９】
別の実施形態に従うと、図７〜８に示されるとおり、システム７００は前述の図３に存在するすべてのモジュールおよび論理を含んでもよい。しかし、図７〜８に示される実施形態においては、Ｃ１パリティ修正モジュール７０２を用いてヘッダ８０６を説明するようにＣ１行パリティを修正することによって、ヘッダ８０６がＣ１符号化スキームを用いて符号化されてもよい。これは、不均一誤り保護（ｕｎｅｑｕａｌ  ｅｒｒｏｒ  ｐｒｏｔｅｃｔｉｏｎ：ＵＥＰ）を有する連結コードと呼ばれてもよい。この実施形態において、ヘッダは１レベルのＥＣＣによって保護されるのに対し、データは２レベルのＥＣＣによって保護される。
【００７０】
言換えると、システム７００はさらに、１つまたはそれ以上のＳＤＳの各々にヘッダ８０６を付加するために適合された論理と、ヘッダの包含を説明するように複数のＣ１コードワードを修正するために適合された論理とを含んでもよい。
【００７１】
この実施形態において、各ヘッダ８０６は符号化を含み、これはＣＷＩの各々に１２バイトを加える。各行８０２に４つのコードワードが含まれるとき、ＣＷＩの４つのＣ１コードワードの各々に３バイトが加えられる。
【００７２】
しかし、前の実施形態と同様に、各Ｃ２コードワードは各ＣＷＩ（各行８０２）の各Ｃ１コードワードからの最大１つのシンボルを有し、各列８０４は正確に１つのＣ２コードワードである。
【００７３】
ここで図９〜１０を参照すると、システム９００は、前述の図５に存在するすべてのモジュールおよび論理を含んでもよい。しかし、図９〜１０に示される実施形態においては、Ｃ１パリティ修正モジュール７０２を用いてヘッダ８０６を説明するようにＣ１行パリティを修正することによって、ヘッダ８０６がＣ１符号化スキームを用いて符号化されてもよい。これは、ＵＥＰを有する連結コードと呼ばれてもよい。この実施形態において、ヘッダは１レベルのＥＣＣによって保護されるのに対し、データは２レベルのＥＣＣによって保護される。
【００７４】
言換えると、システム９００はさらに、１つまたはそれ以上のＳＤＳの各々にヘッダ８０６を付加するために適合された論理と、ヘッダの包含を説明するように複数のＣ１コードワードを修正するために適合された論理とを含んでもよい。
【００７５】
この実施形態においては、修正されたＣ１行パリティがアレイ１０００の各行８０２に存在するため、Ｃ２列パリティはアレイ１０００全体にわたって延在しない。さらに、各ヘッダ８０６は符号化を含み、これはＣＷＩの各々に１２バイトを加える。各行８０２に４つのコードワードが含まれるとき、Ｃ１コードワードの各々に３バイトが加えられる。
【００７６】
しかし、前の実施形態と同様に、各Ｃ２コードワードは各ＣＷＩ（各行８０２）の各Ｃ１コードワードからの最大１つのシンボルを有し、各列８０４は正確に１つのＣ２コードワードである。
【００７７】
ここで図１１〜１２を参照すると、一実施形態に従う、ＳＤＳを復号するための方法１１００が示される。さまざまな実施形態において、方法１１００は、特に図１〜１０および図１３〜１５に示される環境のいずれかにおいて、本発明に従って実行されてもよい。もちろん、本記載を読んだ当業者に理解されるとおり、図１１〜１２に特定的に記載される動作よりも多数または少数の動作が方法１１００に含まれてもよい。
【００７８】
方法１１００の各ステップは、動作環境のあらゆる好適なコンポーネントによって実行されてもよい。たとえば、さまざまな非限定的実施形態において、方法１１００は、Ｃ１／Ｃ２符号化／復号システム、テープ・ドライブ、ハード・ディスク・ドライブ、光学ドライブ、またはシステムに組み込まれるか、もしくはシステム内で動作するか、またはその両方であるプロセッサ（たとえばＣＰＵ、ＡＳＩＣ、ＦＰＧＡなど）などによって部分的または全体的に実行されてもよい。
【００７９】
図１１〜１２に示されるとおり、方法１１００は動作１１０２から始まってもよく、ここでは不均一誤り保護によって保護されるヘッダ付ＳＤＳが受信される。ヘッダ付ＳＤＳのヘッダは１レベルのＥＣＣによって保護され、ヘッダ付ＳＤＳのデータは２レベルのＥＣＣによって保護される。
【００８０】
動作１１０４において、ＳＤＳを得るために、ヘッダ付ＳＤＳからヘッダが復号され、復号ヘッダの影響がＣ１行パリティから除去される。
【００８１】
動作１１０６において、ヘッダ付ＳＤＳから復号ヘッダが抽出されることによってＳＤＳ１（０）が得られ、復号ヘッダに対して、たとえば周期的冗長チェック（ｃｙｃｌｉｃ  ｒｅｄｕｎｄａｎｃｙ  ｃｈｅｃｋ：ＣＲＣ）などの誤りチェックが行われる。
【００８２】
動作１１０８において、復号ヘッダが誤りチェックに合格するかどうかが判定される。もしそうであれば方法１１００は動作１１１２に続き、そうでなければ動作１１１０に続く。
【００８３】
動作１１１０において、復号ヘッダが誤りチェックに失敗したとき、Ｃ１’行パリティが消去されて、Ｃ１行パリティが未知であることが示される。厳密に言うと、Ｃ１コードワードはヘッダ・フラグメントを含まないのに対し、Ｃ１’コードワードはヘッダ・フラグメントを含む。言換えると、Ｃ１コードが（Ｎ１，Ｋ１）コードであり、ヘッダがＨシンボル（例、Ｈバイト）を含み、かつＳＤＳ行にｊ＿ｍａｘインタリーブが存在するとき、Ｃ１’コードは（Ｎ１＋Ｈ／ｊ＿ｍａｘ，Ｋ１）である。本文中ではＣ１’コードに対してＣ１コードが用いられることがある。しかし、記載されるコードの状況から、どのコードを意味するものかは明らかなはずである。
【００８４】
たとえば、受信されたＳＤＳのＲのヘッダが回復され、ＳＤＳのＱ＝Ｎ２−Ｒのヘッダが回復されないものと想定する。受信された最初のＳＤＳをＳＤＳ２（０）と呼ぶ。さらに、Ｑの未回復ヘッダの中に、データ・セット内のＳＤＳ行の位置を示すＰの復号ＣＷＩ−４指示があり、ここで０≦Ｐ≦Ｑであり、すなわちＱのヘッダは回復できなかったが、データ・セット内のこれらＰのＳＤＳ行の位置を示すＰのヘッダ部分は回復できている。Ｃ１’復号の後に、パラメータＥ’（ｊ）を、１）０≦Ｅ’（ｊ）≦Ｕ’（ｊ）および２）０≦Ｅ’（ｊ）＋（Ｑ−Ｐ）≦（Ｎ２−Ｋ２）が満たされるように選択してもよく、ここでＵ’（ｊ）はインタリーブｊ（ｊ＝１，２，３，４は、４つのインタリーブを示す好ましい選択である）における訂正不可能なＣ１’コードワードの数である。
【００８５】
動作１１１１において、ＳＤＳ１（０）が得られる。一実施形態において、ＳＤＳ１（０）は以下の説明に従って得られてもよい。
【００８６】
一実施形態に従うと、ＳＤＳ１（０）は受信したＳＤＳ２（０）から、以下のステップを行うことによって得られる。すなわち、ｊ＿ｍａｘがインタリーブの最大数であるときに、１≦ｊ≦ｊ＿ｍａｘの反復に対して反復的に、受信したＳＤＳ２（０，ｊ）のＮ２−Ｕ’（ｊ）行を復号成功したＣ１’コードワードで上書きするステップと、ＳＤＳ２（０，ｊ）における合計Ｕ’（ｊ）の訂正不可能なＣ１’コードワードからＥ’（ｊ）Ｃ１’コードワードを消去するステップと、ＳＤＳ２（０，ｊ）におけるＵ’（ｊ）−Ｅ’（ｊ）Ｃ１’コードワードを未訂正のまま維持するステップと、修正されたＳＤＳ２（０，ｊ）の各インタリーブを組み合わせてＳＤＳ１（０）を形成するステップとである。
【００８７】
動作１１１２において、反復処理を開始するために反復インデックス・カウンタｉが０に設定される。
【００８８】
動作１１１４において、反復インデックス・カウンタが１だけ増分されて、たとえばｉ＝ｉ＋１となる。
【００８９】
動作１１１６において、反復インデックス・カウンタｉが反復の最大数ｉ＿ｍａｘよりも大きく、たとえばｉ＞ｉ＿ｍａｘであるかどうかが判定される。もし反復インデックス・カウンタｉが反復の最大数ｉ＿ｍａｘよりも大きければ、方法１１００は停止され、ヘッダ付ＳＤＳが適切に復号され得ないという表示が出力される。そうでなければ、方法１１００は動作１１１８に続く。
【００９０】
動作１１１８において、ＳＤＳ１（ｉ−１）に対してＣ２列復号が行われる。
【００９１】
動作１１２０において、現在のインタリーブｊにおける訂正不可能なＣ２コードワードの数が定められ、訂正不可能なＣ２コードワードの数はＵ２（ｉ，ｊ）であり、０≦Ｕ２（ｉ，ｊ）≦Ｎ１であり、ここでＮ１はＣ１コードワードにおけるシンボルの総数である。
【００９２】
動作１１２２において、ｉが反復インデックス・カウンタであり、ｊが行における現在のインタリーブであるときに、０≦Ｅ２（ｉ，ｊ）≦Ｕ２（ｉ，ｊ）かつ０≦Ｅ２（ｉ，ｊ）≦（Ｎ１−Ｋ１）となるように、第１のパラメータＥ２（ｉ，ｊ）が選択される。Ｕ２（ｉ，ｊ）は現在のインタリーブｊにおける訂正不可能なＣ２コードワードの数であり、Ｋ１はＣ１コードワードにおけるデータ・シンボルの数である。
【００９３】
動作１１２４において、ＳＤＳ２（ｉ）が得られる。一実施形態に従うと、ＳＤＳ２（ｉ）はＳＤＳ１（ｉ−１）から、以下のステップを行うことによって得られる。すなわち、ｊ＿ｍａｘがインタリーブの最大数であるときに、１≦ｊ≦ｊ＿ｍａｘの反復に対して反復的に、ＳＤＳ１（ｉ−１，ｊ）のＮ１−Ｕ２（ｉ，ｊ）列を復号成功したＣ２コードワードで上書きするステップであって、ＳＤＳ１（ｉ−１，ｊ）はインタリーブｊに対する第１の算出ＳＤＳである、ステップと、ＳＤＳ１（ｉ−１，ｊ）における合計Ｕ２（ｉ，ｊ）のＣ２コードワードからＥ２（ｉ，ｊ）Ｃ２コードワードを消去するステップと、ＳＤＳ１（ｉ−１，ｊ）におけるＵ２（ｉ，ｊ）−Ｅ２（ｉ，ｊ）Ｃ２コードワードを未訂正のまま維持するステップと、上書きおよび消去されたＳＤＳ１（ｉ−１，ｊ）の各インタリーブを組み合わせてＳＤＳ２（ｉ）を形成するステップとである。
【００９４】
動作１１２６において、Ｕ２（ｉ，ｊ）＞０となるインタリーブｊが存在するかどうかが判定される。もしそうであれば、方法１１００は動作１１３０に続く。そうでなければ、１≦ｊ≦ｊ＿ｍａｘに対してＵ２（ｉ，ｊ）＝０であり、方法１１００は動作１１２８に続く。
【００９５】
動作１１２８において、ＳＤＳ２（ｉ）のすべての行がＣ１コードワードのみを含むかどうかが判定される。たとえばＣＷＩ−４における４つのＣ１コードワードなど、各行には２つ以上のＣ１コードワードが含まれてもよい。１≦ｊ≦ｊ＿ｍａｘに対してＵ２（ｉ，ｊ）＝０であるため、ＳＤＳ２（ｉ）のすべての列はＣ２コードワードのみを含む。もしそうであれば、復号されたＳＤＳであるＳＤＳ２（ｉ）が出力され、方法１１００は終了する。そうでなければ、方法１１００は動作１１３０に続く。
【００９６】
動作１１３０において、ＳＤＳ２（ｉ）に対してＣ１行復号が行われる。
【００９７】
動作１１３２において、現在のインタリーブｊにおける訂正不可能なＣ１コードワードの数が定められ、訂正不可能なＣ１コードワードの数はＵ１（ｉ，ｊ）であり、０≦Ｕ１（ｉ，ｊ）≦Ｎ２であり、ここでＮ２は列におけるシンボルの総数である。
【００９８】
動作１１３４において、０≦Ｅ１（ｉ，ｊ）≦Ｕ１（ｉ，ｊ）かつ０≦Ｅ１（ｉ，ｊ）≦（Ｎ２−Ｋ２）となるように第２のパラメータＥ１（ｉ，ｊ）が選択され、ここでＫ２は列におけるデータ・シンボルの数である。
【００９９】
動作１１３６において、ＳＤＳ１（ｉ）が得られる。一実施形態において、ＳＤＳ１（ｉ）はＳＤＳ２（ｉ）から、以下のステップを行うことによって得られる。すなわち、ｊ＿ｍａｘがインタリーブの最大数であるときに、１≦ｊ≦ｊ＿ｍａｘの反復に対して反復的に、ＳＤＳ２（ｉ，ｊ）のＮ２−Ｕ１（ｉ，ｊ）行を復号成功したＣ１コードワードで上書きするステップであって、ＳＤＳ２（ｉ，ｊ）はインタリーブｊに対する第２の算出ＳＤＳである、ステップと、ＳＤＳ２（ｉ，ｊ）における合計Ｕ１（ｉ，ｊ）のＣ１コードワードからＥ１（ｉ，ｊ）Ｃ１コードワードを消去するステップと、ＳＤＳ２（ｉ，ｊ）におけるＵ１（ｉ，ｊ）−Ｅ１（ｉ，ｊ）Ｃ１コードワードを未訂正のまま維持するステップと、上書きおよび消去されたＳＤＳ２（ｉ，ｊ）の各インタリーブを組み合わせてＳＤＳ１（ｉ）を形成するステップとである。
【０１００】
動作１１３８において、Ｕ１（ｉ，ｊ）＞０となるインタリーブが存在するかどうかが判定される。もしそうであれば、方法１１００は動作１１１４に戻る。そうでなければ、方法１１００は動作１１４０に続く。
【０１０１】
動作１１４０において、１≦ｊ≦ｊ＿ｍａｘに対してＵ１（ｉ，ｊ）＝０であるため、ＳＤＳ１（ｉ）のすべての行はＣ１コードワードからなる。したがって、ＳＤＳ１（ｉ）のすべての列がＣ２コードワードであるかどうかだけが判定される。もしそうであれば、復号されたＳＤＳであるＳＤＳ１（ｉ）が出力され、方法１１００は終了する。そうでなければ、方法１１００は動作１１１４に戻る。
【０１０２】
一実施形態において、ヘッダ付ＳＤＳのヘッダはＣ１符号化によって保護されてもよく、ヘッダ付ＳＤＳのデータはＣ１符号化およびＣ２符号化によって保護されてもよい。
【０１０３】
加えて、いくつかの代替的な実現においては、ブロック中に示される機能が図面に示される以外の順序で起こってもよいことに留意すべきである。たとえば、連続して示される２つのブロックは、伴われる機能に依存して、実際には実質的に同時に実行されてもよいし、それらのブロックがときには逆の順序で実行されてもよい。たとえば、別の実施形態において、最初にＣ１’復号を行った後にヘッダの影響を除去し、Ｅ’（ｊ）＝Ｕ’（ｊ）によってＣ２復号を行うと、有効なＳＤＳが得られないことがある。もしそうであれば、Ｃ１復号を行う代わりに、Ｅ’（ｊ）＝０と想定して生成されたＳＤＳ１（０）によって再びＣ２復号を行い、次いで反復的にＣ１復号およびＣ２復号を続ける方が有益であり得る。
【０１０４】
さまざまな実施形態に従うと、方法１１００は、各動作を実行する論理を介したシステムによって実行されてもよいし、コンピュータ・プログラム製品によって実行されてもよいし、何らかのその他のデバイスまたはシステムによって実行されてもよい。コンピュータ・プログラム製品は、ともに具現化されるプログラム・コードを有するコンピュータ読取り可能記憶媒体を含んでもよく、プログラム・コードは、方法１１００を実行させるためにテープ・ドライブによって読取り可能／実行可能であってもよい。
【０１０５】
ここで図１３を参照すると、一実施形態に従う方法１２００が示され、これは動作１１０４〜１１１０のより詳細な説明であってもよい。１つのアプローチにおいて、この方法１２００は、不均一に保護されるヘッダ付ＳＤＳからヘッダを抽出するために用いられてもよい。方法１２００は動作１２０２から始まり、ここで所与のインタリーブ（この実施例においては４コードワード・インタリーブＣＷＩ−４）におけるすべてのＣ１’コードワードが復号される。ここにはｄの復号されたＣ１’コードワードおよびｕの訂正不可能なＣ１’コードワードが存在し、ここでｕ＋ｄ＝４である。ヘッダ・フラグメントにおけるあらゆる誤りが訂正される。もちろん他の使用においては、任意の数のコードワード・インタリーブが用いられてもよい。
【０１０６】
動作１２０４において、この実施例では３バイトの復号または非復号ヘッダ・フラグメントが連結されて、単一の１２バイト・ヘッダが得られる。ヘッダを構築するやり方は２ｄ通り考えられる。もちろん他の使用においては、任意のサイズのヘッダもしくはバイト・フラグメントまたはその両方が用いられてもよい。
【０１０７】
動作１２０６において、ヘッダがＣＲＣチェックに合格するかどうかが判定される。もしそうであれば、この方法は動作１２０８に続く。そうでなければ、方法１２００は動作１２１２に続く。
【０１０８】
訂正不可能なＣ１’コードワードがあるとき、ヘッダを抽出する目的のためにそれらは未訂正のままにされてもよい。ヘッダがＣＲＣチェックをするとき、その行のＣ１’パリティは修正されてもよい。なぜなら、そのヘッダは正しいと想定されるため、動作１２１０においてそのＣ１’パリティに対する影響が除去され得るからである。
【０１０９】
動作１２０８において、ＣＲＣチェックに合格した任意のヘッダを用いて、ヘッダの内容が許可されるかどうかが判定される。もしそうであれば、この方法は動作１２１０に続く。そうでなければ、方法１２００は動作１２１２に続く。
【０１１０】
動作１２１０において、特定のＳＤＳ行において正しいＣＲＣを有するヘッダが得られたとき、Ｃ１’パリティに対するヘッダの影響を除去することによってＣ１’パリティを修正して、Ｃ１パリティを得てもよい。
【０１１１】
加えて、レガシ・テープ・ドライブのように、ヘッダ補間を用いてヘッダが得られてもよい。なお、読取り同時書込みの際の再書込みのために、ＳＤＳ行は固定された順序で受信されないことがあり、すなわち再書込みの際にヘッダ補間を用いてはならない。
【０１１２】
動作１２１２において、ヘッダが補間によって得られるかどうかが判定される。もしそうであれば、この方法は動作１２１０に続く。そうでなければ、方法１２００は動作１２１４に続く。
【０１１３】
動作１２１４において、特定のＳＤＳ行において正しいＣＲＣを有するヘッダが得られなかったか、またはヘッダの内容が許可されないとき、Ｃ１’パリティを修正することはできない。この場合、Ｃ１’パリティは消去されて、Ｃ１パリティは未知であることが示される。
【０１１４】
さまざまな実施形態に従うと、方法１２００は、各動作を実行する論理を介したシステムによって実行されてもよいし、コンピュータ・プログラム製品によって実行されてもよいし、何らかのその他のデバイスまたはシステムによって実行されてもよい。コンピュータ・プログラム製品は、ともに具現化されるプログラム・コードを有するコンピュータ読取り可能記憶媒体を含んでもよく、プログラム・コードは、方法１２００を実行させるためにテープ・ドライブによって読取り可能／実行可能であってもよい。
【０１１５】
図１４は、一実施形態に従うＳＤＳ２（ｉ，ｊ）の表現を示す。この表現は、行数Ｎ２と、列数Ｎ１と、ｉが反復カウンタであり、ｊが行における現在のインタリーブであるときの訂正不可能なＣ２コードワードの例示的な数Ｕ２（ｉ，ｊ）と、例示的な第２のパラメータＥ２（ｉ，ｊ）とを、関連する計算とともに示す。ＳＤＳ行は、ｊ＿ｍａｘ＊Ｎ１シンボルを含む。図１４は、すべての行がＣ１コードワードであり、かつすべての列がＣ２コードワードであるＳＤＳ２（ｉ）のインタリーブｊのみを示しており、ＳＤＳ２（ｉ）は図１４のアレイのｊ＿ｍａｘをインタリーブすることによって得られる。
【０１１６】
図１５は、一実施形態に従うＳＤＳ１（ｉ，ｊ）の表現を示す。この表現は、行数Ｎ２と、列数Ｎ１と、ｉが反復カウンタであり、ｊが行における現在のインタリーブであるときの訂正不可能なＣ１コードワードの例示的な数Ｕ１（ｉ，ｊ）と、例示的な第２のパラメータＥ１（ｉ，ｊ）とを、関連する計算とともに示す。ＳＤＳ行は、ｊ＿ｍａｘ＊Ｎ１シンボルを含む。図１５は、すべての行がＣ１コードワードであり、かつすべての列がＣ２コードワードであるＳＤＳ１（ｉ）のインタリーブｊのみを示しており、ＳＤＳ１（ｉ）は図１５のアレイのｊ＿ｍａｘをインタリーブすることによって得られる。
【０１１７】
ここで図１６を参照すると、一実施形態に従う、ＳＤＳを復号するための方法１５００が示される。さまざまな実施形態において、方法１５００は、特に図１〜１０および図１３〜１５に示される環境のいずれかにおいて、本発明に従って実行されてもよい。もちろん、本記載を読んだ当業者に理解されるとおり、図１６に特定的に記載される動作よりも多数または少数の動作が方法１５００に含まれてもよい。
【０１１８】
方法１５００の各ステップは、動作環境のあらゆる好適なコンポーネントによって実行されてもよい。たとえば、さまざまな非限定的実施形態において、方法１５００は、Ｃ１／Ｃ２符号化／復号システム、テープ・ドライブ、ハード・ディスク・ドライブ、光学ドライブ、またはシステムに組み込まれるか、もしくはシステム内で動作するか、またはその両方であるプロセッサ（たとえばＣＰＵ、ＡＳＩＣ、ＦＰＧＡなど）などによって部分的または全体的に実行されてもよい。
【０１１９】
図１６に示されるとおり、方法１５００は動作１５０２から始まってもよく、ここでは不均一誤り保護によって保護されるヘッダ付ＳＤＳが受信される。ヘッダ付ＳＤＳのヘッダは１レベルのＥＣＣによって保護され、ヘッダ付ＳＤＳのデータは２レベルのＥＣＣによって保護される。
【０１２０】
動作１５０４において、ＳＤＳを得るために、ヘッダ付ＳＤＳからヘッダが復号され、復号ヘッダの影響がＣ１’行パリティから除去される。
【０１２１】
動作１５０６〜１５２０は、予め定められた数以下の反復に対して繰り返される。
【０１２２】
動作１５０６において、ＳＤＳに対してＣ２列復号が行われる。
【０１２３】
動作１５０８〜１５１２は、インタリーブの総数以下の数だけ繰り返される。動作１５０８において、ＳＤＳのある数の列が復号成功したＣ２コードワードで上書きされる。
【０１２４】
動作１５１０において、ＳＤＳのある数のＣ２コードワードが消去され、この反復においては、あらゆる上書きされたＣ２コードワード（好ましい実施形態における列）は消去されない。
【０１２５】
動作１５１２において、ＳＤＳの残りの列は未訂正のまま維持される。
【０１２６】
動作１５１４において、ＳＤＳに対してＣ１行復号が行われる。
【０１２７】
動作１５１６〜１５２０は、インタリーブの総数以下の数だけ繰り返される。動作１５１６において、ＳＤＳのある数の行が復号成功したＣ１コードワードで上書きされる。
【０１２８】
動作１５１８において、ＳＤＳのある数のＣ１コードワードが消去され、この反復においては、あらゆる上書きされたＣ１コードワードは消去されない。
【０１２９】
動作１５２０において、ＳＤＳの残りの行は未訂正のまま維持される。
【０１３０】
動作１５２２において、ＳＤＳが適切に復号されたかどうかが判定される。
【０１３１】
動作１５２４において、ＳＤＳのすべての行がＣ１コードワードのみを含み、かつＳＤＳのすべての列がＣ２コードワードのみを含むとき、そのＳＤＳが出力される。そうでないときは、動作１５２６において、ＳＤＳが適切に復号され得ないという表示が出力される。
【０１３２】
いくつかのさらなる実施形態において、方法１５００は、復号ヘッダに対して誤りチェックを行うステップと、復号ヘッダが誤りチェックに失敗したとき、そのヘッダに関連する行パリティをＳＤＳから消去することによってＣ１行パリティが未知であることを示すステップとを含んでもよい。
【０１３３】
いくつかのアプローチに従うと、ヘッダ付ＳＤＳのヘッダはＣ１符号化によって保護されてもよく、ヘッダ付ＳＤＳのデータはＣ１符号化およびＣ２符号化によって保護されてもよい。
【０１３４】
別の実施形態において、方法１５００は、ｉが反復カウンタであり、ｊが行における現在のインタリーブであるときに、０≦Ｅ２（ｉ，ｊ）≦Ｕ２（ｉ，ｊ）かつ０≦Ｅ２（ｉ，ｊ）≦（Ｎ１−Ｋ１）となるように第１のパラメータＥ２（ｉ，ｊ）を選択するステップを含んでもよく、ここでＵ２（ｉ，ｊ）は現在のインタリーブｊにおける訂正不可能なＣ２コードワードの数であり、Ｎ１はＣ１コードワードにおけるシンボルの総数であり、Ｋ１はＣ１コードワードにおけるデータ・シンボルの数である。さらに、所与の反復および所与のインタリーブにおいて上書きされるＳＤＳの列の数はＮ１−Ｕ２（ｉ，ｊ）列であってもよく、消去されるＣ２コードワードの数はＥ２（ｉ，ｊ）Ｃ２コードワードであってもよい。
【０１３５】
別の実施形態において、方法１５００は、ｉが反復カウンタであり、ｊが行における現在のインタリーブであるときに、０≦Ｅ１（ｉ，ｊ）≦Ｕ１（ｉ，ｊ）かつ０≦Ｅ１（ｉ，ｊ）≦（Ｎ２−Ｋ２）となるように第２のパラメータＥ１（ｉ，ｊ）を選択するステップを含んでもよく、ここでＵ１（ｉ，ｊ）は現在のインタリーブｊにおける訂正不可能なＣ１コードワードの数であり、Ｎ２はＣ２コードワードにおけるシンボルの総数であり、Ｋ２はＣ２コードワードにおけるデータ・シンボルの数である。さらに、所与の反復および所与のインタリーブにおいて上書きされるＳＤＳのＣ１コードワードの数はＮ２−Ｕ１（ｉ，ｊ）Ｃ１コードワードであってもよく、消去されるＣ１コードワードの数はＥ１（ｉ，ｊ）Ｃ１コードワードであってもよい。
【０１３６】
さまざまな実施形態に従うと、方法１５００は、各動作を実行する論理を介したシステムによって実行されてもよいし、コンピュータ・プログラム製品によって実行されてもよいし、何らかのその他のデバイスまたはシステムによって実行されてもよい。コンピュータ・プログラム製品は、ともに具現化されるプログラム・コードを有するコンピュータ読取り可能記憶媒体を含んでもよく、プログラム・コードは、方法１５００を実行させるためにテープ・ドライブによって読取り可能／実行可能であってもよい。
【０１３７】
図面中の流れ図およびブロック図は、本発明のさまざまな実施形態に従うシステム、方法およびコンピュータ・プログラム製品の実現可能なアーキテクチャ、機能および動作を例示するものである。これに関して、流れ図またはブロック図における各ブロックは、指定された論理関数（単数または複数）を実施するための１つまたはそれ以上の実行可能な命令を含むモジュール、セグメント、またはコードの部分を表していてもよい。さらに、いくつかの代替的な実現においては、ブロック中に示される機能が図面に示される以外の順序で起こってもよいことに留意すべきである。たとえば、連続して示される２つのブロックは、伴われる機能に依存して、実際には実質的に同時に実行されてもよいし、それらのブロックがときには逆の順序で実行されてもよい。さらに、ブロック図もしくは流れ図またはその両方の各ブロック、およびブロック図もしくは流れ図またはその両方のブロックの組み合わせは、指定された機能もしくは動作を行う特定目的のハードウェアに基づくシステム、または特定目的のハードウェアとコンピュータ命令との組み合わせによって実現され得ることを注記する。
【０１３８】
上記にさまざまな実施形態を説明したが、それらは単なる例として提供されたものであって限定ではないことが理解されるべきである。よって、本発明の実施形態の広さおよび範囲は上述の例示的実施形態のいずれかによって限定されるべきではなく、以下の請求項およびその均等物のみに従って定義されるべきである。
【図１】
0006388599.tif 000002
【図２】
0006388599.tif 000003
【図３】
0006388599.tif 000004
【図４】
0006388599.tif 000005
【図５】
0006388599.tif 000006
【図６】
0006388599.tif 000007
【図７】
0006388599.tif 000008
【図８】
0006388599.tif 000009
【図９】
0006388599.tif 000010
【図１０】
0006388599.tif 000011
【図１１】
0006388599.tif 000012
【図１２】
0006388599.tif 000013
【図１３】
0006388599.tif 000014
【図１４】
0006388599.tif 000015
【図１５】
0006388599.tif 000016
【図１６】
0006388599.tif 000017