(57)【要約】      （修正有）【課題】ディジタルデータ内のエラーを検出および補正するのに必要な量のエラー補正コードデータを減少させ、しかも隣接するデータの大きいグループ内のエラーを補正する能力を維持する方法を開示する。【解決手段】エラー補正コードの計算のために数学的にグループ化された記号間に空間的または時間的に距離を置く。【効果】エラーは、１次元エラー補正コードのみを使用してエラーを容易に補正することができ、２次元プロダクトエラー補正コードの必要性、および列ＥＣＣデータが必然的にブロックに追加する追加のデータオーバヘッドはなくなる。【選択図】図１
2007243953.tif 000002
【特許請求の範囲】
【請求項１】
ユーザデータを第１順序の方法で受信するステップと、
前記ユーザデータを行および列状に構成するステップと、
ＥＣＣデータを前記行の各々について計算するステップと、
前記ＥＣＣデータを前記行の各々に付加する際、前記行の特定の行に関して計算されたＥＣＣデータが前記行の特定の行に付加されるステップと、
結合されたユーザデータおよびＥＣＣデータを第２順序の方法で送信するステップとを含む方法。
【請求項２】
ユーザデータを受信するステップが、内部に含められたＥＣＣデータの最初の集合を有するユーザデータを受信するステップを含む、請求項１に記載の方法。
【請求項３】
結合されたユーザデータおよびＥＣＣデータを送信するステップが、結合されたユーザデータおよびＥＣＣデータを列ごとに送信するステップを含む、請求項１に記載の方法。
【請求項４】
データ集合を第１順序の方法で受信し、データ集合を行および列状に記憶し、データ集合の各々が他のデータ集合とは異なる行に記憶されるメモリと、
前記メモリに結合され、各々の行内の各々のデータ集合ごとにＥＣＣデータを生成し、生成されたＥＣＣデータを個々の行のデータ集合に付加するＥＣＣデータ生成器と、
前記メモリに接続され、結合されたデータ集合およびＥＣＣデータを第２順序の方法で抽出するデバイスとを含む符号器。
【請求項５】
前記デバイスが、結合されたデータ集合およびＥＣＣデータを列ごとに抽出する、請求項４に記載の符号器。
【請求項６】
前記メモリに結合された前記デバイスが、結合されたデータ集合およびＥＣＣデータを特定のチャネルに応じて変調する変調器から成る、請求項４に記載の符号器。
【請求項７】
各々のデータ集合が、各々のデータ集合が、内部に含まれたＥＣＣデータの最初の集合を有する、請求項４に記載の符号器。
【請求項８】
前記メモリが復号器の一部でもある、請求項４に記載の符号器。
【請求項９】
復号器であって、
第１順序の方法で符号化されたデータを抽出する第１デバイスと、
符号化されたデータを受信する第１デバイスに結合されたメモリが、行および列内のデータを第２順序の方法で記憶し、その結果、各々の行が、前記データ集合に対して計算されたデータ集合およびＥＣＣデータを含むメモリと、
前記メモリに結合され、第２順序の方法でメモリからデータを受信し、ＥＣＣデータを使用してデータ集合内のエラーを補正し、エラー補正を前記メモリに送信するＥＣＣ復号器およびデータ補正器と、
前記メモリに結合された第２デバイスであって、データ集合を第２順序の方法で抽出する第２デバイスとを備える復号器。
【請求項１０】
前記第１順序の方法が列ごとである、請求項９に記載の復号器。
【請求項１１】
前記第１デバイスが、特定チャネルからのデータを復調する復調器である、請求項９に記載の復号器。
【請求項１２】
各々のデータ集合が、内部に含まれたＥＣＣデータの最初の集合を有する、請求項９に記載の復号器。
【請求項１３】
前記メモリが、符号器回路の一部でもある、請求項９に記載の復号器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エラー補正コードの分野に関し、特に、従来プロダクトエラー補正コードを必要とするアプリケーションに関する。
【背景技術】
【０００２】
エラー補正コード（ＥＣＣ）は、ディジタルデータ内のエラーを突き止めるのを支援し、予め決められた数のエラーが補正されることを可能にする。エラーを検出および補正する能力は、冗長な情報を特定のアルゴリズムに従ってデータに追加することによって達成される。冗長な情報の各々のビットは、オリジナルのデータビットに基づいて生成される。
【０００３】
ブロックエラー補正コードは、データの一定サイズのブロックに使用される。ブロックエラー補正コードの例としては、リードソロモン、ゴーレイ、およびハミングコードが挙げられる。ブロックコードは、ディジタル記憶媒体上に記録されているか、またはディジタルで伝送されるデータの正確さを保護するために広く使用されている。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
エラー補正のコード化では、データの各々のブロックは、行および列状に構成される。データブロック内のＥＣＣスキームによって補正に供されうる可能性のあるエラーの数および範囲を増加するため、エラー補正データは、多くの場合、ブロック内の各々の行および各々の列の両方について計算される。行および列の両方のエラー補正コードを１つのデータブロックに使用するこの方法は、プロダクトコードまたは２次元ブロックエラー補正コードと呼ばれる。プロダクトコードを使用してエラーを補正する能力が高まると、ＥＣＣデータを行および列の両方に追加しなければならないため、データに追加される冗長な情報の量も増加する。その結果、エラー補正データの量が増加し、ひいては、記憶または伝送できるオリジナルのユーザデータの量が減少する。
【０００５】
図５に示すとおり、プロダクトコードＥＣＣスキームによって保護されるユーザデータ３０は、行および列状に構成される（行１−Ｕおよび列１−Ｖ参照）。各々の列は、一般に１バイトのデータだが、ＥＣＣ記号に関連する任意の数のビットで良い（たとえば、１０ビット）。ユーザデータ自体は、あるタイプのエラー補正またはエラー検出コード、たとえば周期的冗長性検査（ＣＲＣ）を既に含んでいることに注意するべきである。ＥＣＣデータは、使用するＥＣＣスキームに従ってユーザデータの各々の行に関して計算され、ＥＣＣスキームは、リードソロモン、ゴーレイ、ハミング、またはその他の何らかのブロックＥＣＣで良い。このデータは、次に各々の行の終わりに付加される。追加のＥＣＣデータも各々の列について計算され、各々の列の下端に配置される。次に、ユーザおよびＥＣＣデータの両方を含むこの全体のブロックが記憶または伝送される。記号は、一般に、行１（２０）、列１（１０）に存在する記号で始まり、行１（２０）の残りの記号が続き、列Ｙ（１４）方向に進んで記憶または伝送される。次に、各々の行が、同様の順序で、行Ｘ（２４）方向に進んで、ブロック全体が完了するまで記憶または伝送される。
【０００６】
エラーは、行ＥＣＣデータのみを使用して補正することができるが、個々の行が、個々の行のＥＣＣスキームが補正するには多すぎるエラーを含む場合、列ＥＣＣデータも使用して、エラーを補正しなければならない。これは、殆どの場合、ブロック全体が、何れかのユーザデータがアクセスされた場合は常に、ブロック全体がアクセスされたことを意味する。
【０００７】
多くのアプリケーションは、行および列の両方のＥＣＣデータを補正する必要があるエラーを伴う場合が多い。ディジタル記憶媒体の掻き傷もしくは欠点、または有線もしくは無線ディジタル通信におけるあるタイプの干渉によるエラーは、個別に生じるよりもグループで生じることが多いようである。上記のプロダクトコードを使用すると、多量の隣接するエラーを補正することができるが、このスキームによって、追加のＥＣＣデータの著しい間接使用が導入される。この間接使用は、実際のユーザデータの記憶容量または処理量を減少させ、システムの全体的な複雑さを増加させる。
【課題を解決するための手段】
【０００８】
本発明は、ディジタルデータ内のエラーを検出して補正するために必要なＥＣＣデータの量を減少させ、なおかつ隣接するデータの大きいグループ内のエラーを補正する規定の能力を維持する。本発明は、関連記号間に空間的または時間的に距離を置くことによってこれを達成する。関連する記号は、ＥＣＣの計算上、数学的にグループ化される記号である。隣接する記号に影響を与えるエラー、たとえばディジタル記憶媒体内の掻き傷もしくはその他の欠点、または有線もしくは無線ディジタル通信におけるあるタイプの干渉などは多くのＥＣＣグループに影響を与えるが、各々のグループの１つの記号にのみ影響を与えるであろう。各グループの１つ記号のみが影響を受けるため、１次元ＥＣＣを使用してエラーを容易に補正することができ、２次元プロダクトコードＥＣＣの必要性およびそのデータのオーバヘッドはなくなる。
【発明を実施するための最良の形態】
【０００９】
本発明の第１実施態様の図１を見ると分かるとおり、ＣＲＣまたはその他のエラー検出もしくは補正データを含むユーザデータは行および列状に構成される。各々の列は１バイト、またはその他の一定量のデータである。ＥＣＣデータは、使用するＥＣＣスキームに従ってユーザデータの各々の行に関して計算され、ＥＣＣスキームは、リードソロモン、ゴーレイ、ハミング、またはその他の何らかのブロックＥＣＣで良い。各々の列について計算されたＥＣＣデータは、各々の行に付加される。列ＥＣＣデータは計算または使用されない。各々のデータ記号が１回のＥＣＣ計算にのみ含まれるＥＣＣスキームは、１次元ＥＣＣスキームと呼ばれる。
【００１０】
次に、データブロックがディジタル記憶媒体に書き込まれるか、または伝送される。書き込まれるかまたは伝送される最初の記号は、やはり行１（１２０）、列１（１１０）に存在する記号である。行１（１２０）に沿って進むのではなく、書き込まれるかまたは伝送される次の記号は、行２（１２４）、列１（１１０）に存在する記号である。次に、列１（１１０）内の各々の記号が記憶または伝送され、行Ｕ（１２２）列１（１１０）に存在する記号で終わる。列１（１１０）が記憶または伝送されると、次に、列２（１１６）が伝送され、行２（１２４）、列１（１１０）に存在する記号で始まって、行Ｕ（１２２）、列２（１１６）に存在する記号に進む。各々の列が記憶または伝送され、順に列Ｙ（１１４）方向に進み、列Ｙ（１１４）を含むブロック全体が記憶または伝送される。これは、行ＥＣＣデータ１４０を含み、ユーザデータ１３０と同様に、列によって記憶または伝送される。データは、記憶または伝送される前に、先ず、新しいＥＣＣストライピング（分散化）順序でメモリバッファにコピーされ、記憶または伝送ステップを容易にする。
【００１１】
データが記憶または伝送される順序が決まっていない列ごとの方法を意味するＥＣＣストライピングのために、全体のデータブロックを順に読み込むか、もしくは受信して、データを元の順序で使用するか、最後に記憶または伝送された行ＥＣＣを使ってデータを補正しなければならない。この効果は、プロダクトコードスキームを使って行および列ＥＣＣデータが生成される場合と同じであり、データの個々の行ではなく、全体のデータブロックを読み込むかまたは受信しなければならない。
【００１２】
ＥＣＣストライピングのために、全体の列が隣接するエラーに負けた場合でも、各ＥＣＣグループの１つの記号のみが損害を受け、容易に補正することができる。使用されるＥＣＣスキームの補正能力は、期待されるエラーの数およびタイプに基づいて選択される。
【００１３】
図２は、説明の目的上、特定の実施例を含む本発明の第２実施態様を示す。説明の目的上、特定の行および列および記号を使用するが、どのような数の実施例でも本発明の範囲に適合することに注意する。ユーザデータ２３０のブロックは、６４行を有する。各々の行は５１２バイトのユーザデータ、および４バイトのＣＲＣ２３２を含む。ユーザデータの各々の行には、行上で計算して８８バイトのリードソロモンＥＣＣフィールド２４０が付加される。これは、ブロック内で合計３８，６５６バイトであり、ユーザデータ２３０およびＥＣＣデータ２４０を含む。プロダクトコードＥＣＣスキームが使用され、７バイトの列ＥＣＣが計算されて各々の列に付加される場合、合計４２，８８４バイトになる。本発明により、ユーザデータは減少せずに、ブロックのサイズが４，２２８バイト、つまり約１０％減少し、しかも隣接するデータの大きいグループ内のエラーを補正する能力は維持される。
【００１４】
本発明による符号器ステージのプロセスフローの一実施態様を図３に示す。図３では、ホスト４６０からのユーザデータは、バッファメモリ４５０に書き込まれる。ホスト４６０は、本発明を使用する任意のデバイス、たとえばデータ通信または記憶に関連する電子デバイスで良い。ユーザデータは、バッファメモリ４５０に書き込まれる前に、その他のＥＣＣシステムを含むその他のシステムによって既に処理されていることに注目すべきである。ユーザデータは、次に、バッファメモリ４５０からストライピングバッファ４３０およびＥＣＣデータ生成器４４０の両方に送信される。行ＥＣＣデータは、使用されるＥＣＣスキーム（たとえば、リードソロモン、ゴーレイ、ハミング）に応じてＥＣＣデータ生成器４４０によって計算される。行ＥＣＣデータは、次に、ストライピングバッファ４３０に送信されて、本発明によりユーザデータの終わりのデータブロックに含有される。次に、ユーザデータおよびＥＣＣ行データの両方を含む全体のデータブロックは、本発明により列ごとにストライピングバッファ４３０から変調器４１０に送信されて変調され、チャネル４１０に書き込まれる。１つのストライピングバッファ４３０が使用されるが、複数のストライピングバッファ４３０および４３１を使用しても、バッファメモリ４５０からストライピングバッファ４３０または４３１の一方にデータを書き込むことができるが、その際、データは、その他のストライピングバッファ４３０または４３１から変調器４２０に書き込まれる。複数のストライピングバッファを使用する場合、これらのストライピングバッファが処理する。その結果、符号化速度およびデータ処理量が増加する。チャネル４１０は、データ記憶システムの書込みチャネル、通信チャネルまたは任意のその他の媒体で良い。
【００１５】
図４は、本発明の復号器ステージの一実施態様を示す。本発明により符号化されたチャネル変調データは、最初にチャネル４１０から読み取られ、復調器５２０によって復調される。チャネル４１０から読み取られるデータは、記憶装置または伝送媒体によって導入され（たとえば、媒体上の掻き傷によって導入され）、依然としてＥＣＣストライピング順で存在する。次に、データは、ストライピングバッファ５３０に列ごとに書き込まれ、ストライピングバッファ５３０はデータを元の順序に戻す。次に、データは、元の順序で、しかしなお可能性のあるエラーを含む状態でＥＣＣ復号器およびデータ補正器５４０に送信される。ＥＣＣ復号器およびデータ補正器５４０は、使用するＥＣＣスキーム（上記のとおり）に従って行ＥＣＣデータを復号化し、このＥＣＣデータを使用して、チャネル４１０によってデータに導入された何らかのエラーを補正する。次に、ストライピングバッファ５３０内のデータは、ＥＣＣ復号器およびデータ補正器５４０によって行われた補正を含むように修正される。すべての修正が行われると、補正されたデータは、バッファメモリ５５０に書き込まれ、ホスト５６０に送信することができる。やはり、復号化には１つのストライピングバッファ５３０のみが必要であり、複数のストライピングバッファ５３０および５３１を使用する場合、データは、復調器５２０からストライピングバッファ５３０または５３１の一方に書き込まれ、補正されたデータは、他のストライピングバッファ５３０または５３１からバッファメモリ５５０に書き込まれ、その結果、復号化速度およびデータ処理量が増加する。チャネルによって導入されたすべてのエラーを補正する能力を有するＥＣＣスキームが選択される場合、ユーザデータは、符号化されてチャネルに書き込まれる元のユーザデータと同じである。ＣＲＣまたはその他の情報または処理が、符号化前にユーザデータに追加される場合、このデータは、他のシステムに送信されてからホスト５６０に送信される。
【００１６】
データが同時に読み書きされないアプリケーションの場合、図３の符号器からのバッファメモリ４５０並びにストライピングバッファ４３０および４３１は、図４の復号器からのバッファメモリ５５０並びにストライピングバッファ５３０および５３１としても使用されることに注目するべきである。図４のホスト５６０も、図３のホスト４６０と同じであるか、あるいはやはりチャネル４１０にアクセスする第２デバイスで良い。
【００１７】
本発明の説明は様々な実施態様を使用しているが、本発明は、説明された特定の実施態様に限定されないことが分かるであろう。むしろ、本発明は、上記の説明に提示されたアイデアの本質を含むすべての変形例を包含する。
【００１８】
本発明の第３実施態様は、図２の第２実施態様と同様に構成されるが、各々の記号のサイズが８ビットより広い１０ビットであり、各々１０ビットの４６４のユーザ記号が存在する点が異なる。各々の行は、１１２のＥＣＣ記号が５７６の記号の合計行サイズに付加される。第３実施態様の動作は、図２の第２実施態様の動作と同じである。
【図面の簡単な説明】
【００１９】
【図１】本発明の第１実施態様を示す。
【図２】本発明の第２実施態様を示す。
【図３】本発明の符号化部分の実施態様を示す。
【図４】本発明の復号化部分の実施態様を示す。
【図５】プロダクトコードエラー補正スキームを示す。
【符号の説明】
【００２０】
３０  ユーザデータ
１３０  ユーザデータ
１４０  データ
２３０  ユーザデータ
２４０  フィールド、データ
４１０  変調器、チャネル
４２０  変調器
４３０  ストライピングバッファ
４４０  データ生成器
４５０  バッファメモリ
４６０  ホスト
５２０  復調器
５３０  ストライピングバッファ
５３１  ストライピングバッファ
５４０  データ補正器
５５０  バッファメモリ
５６０  ホスト
【図１】
2007243953.tif 000003
【図２】
2007243953.tif 000004
【図３】
2007243953.tif 000005
【図４】
2007243953.tif 000006
【図５】
2007243953.tif 000007