JP2003527029A - Enhanced turbo product code - Google Patents

Enhanced turbo product code

Info

Publication number
JP2003527029A
JP2003527029A JP2001567139A JP2001567139A JP2003527029A JP 2003527029 A JP2003527029 A JP 2003527029A JP 2001567139 A JP2001567139 A JP 2001567139A JP 2001567139 A JP2001567139 A JP 2001567139A JP 2003527029 A JP2003527029 A JP 2003527029A
Authority
JP
Japan
Prior art keywords
block
parity
encoded
encoder
bits
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2001567139A
Other languages
Japanese (ja)
Inventor
ジョン ヒューイット,エリック
ウィリアム リンズトローム,ブラッドリー
ショーン ラドウ,ピーター
ロバート ダニエルソン,アラン
Original Assignee
コムテック テレコミュニケーションズ コーポレイション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by コムテック テレコミュニケーションズ コーポレイション filed Critical コムテック テレコミュニケーションズ コーポレイション
Publication of JP2003527029A publication Critical patent/JP2003527029A/en
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding
    • H03M13/296Particular turbo code structure
    • H03M13/2963Turbo-block codes, i.e. turbo codes based on block codes, e.g. turbo decoding of product codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2903Methods and arrangements specifically for encoding, e.g. parallel encoding of a plurality of constituent codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2909Product codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2918Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes with error correction codes in three or more dimensions, e.g. 3-dimensional product code where the bits are arranged in a cube
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2921Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes wherein error correction coding involves a diagonal direction

Abstract

(57)【要約】 ハイパーエンコードモジュールは、複数のサブブロックを有するブロックをエンコードする。各サブブロックは、複数のシステマティックブロック符号コードワードを含んでいる。パリティサブブロックは、ブロックに加えられる。パリティサブブロックは、所定の数のビットだけ回転される。n次元ブロックの一連の各サブブロックは、適当なビット数だけ回転され、ビットワイズ排他的論理和演算が施される。エンコード方法及び装置は、ハイパーエンコードモジュールを含み、データブロックを受信する。ブロックの行は、直ちに出力され、第1エンコードスキームに従って第1モジュールによってエンコードされる。列は、第2エンコードスキームに従って第2モジュールによってエンコードされる。エンコードされたデータの第2セットが生成され、反復的に更新され、出力モジュールにより出力される。ハイパーエンコードモジュールは、上記のように情報ビットをハイパーダイアゴナル上でエンコードして出力する。 (57) [Summary] The hyper-encoding module encodes a block having a plurality of sub-blocks. Each sub-block contains a plurality of systematic block codewords. Parity sub-blocks are added to the block. The parity sub-block is rotated by a predetermined number of bits. Each successive sub-block of the n-dimensional block is rotated by an appropriate number of bits and subjected to a bitwise exclusive OR operation. An encoding method and apparatus include a hyper-encoding module for receiving a data block. The rows of the block are output immediately and are encoded by the first module according to the first encoding scheme. The columns are encoded by a second module according to a second encoding scheme. A second set of encoded data is generated, updated iteratively, and output by the output module. The hyper-encoding module encodes and outputs the information bits on the hyper diagonal as described above.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【関連出願】[Related application]

この特許出願は、米国特許法35U.S.C119(e)の下、2000年3月14日
に出願され、発明の名称が「エンハンスドターボプロダクト符号」である出願中
の仮特許出願第60/189,345号に基づく、優先権を主張する。この2000年3月
14日に出願され、発明の名称が「エンハンスドターボプロダクト符号」である
仮特許出願第60/189,345号は、引用をもって本願への記載加入とする。
This patent application was filed on March 14, 2000 under US Patent Law 35 U.S.C. 119 (e), and the title of the invention is "enhanced turbo product code". Claim priority under No. 189,345. The provisional patent application No. 60 / 189,345 filed on Mar. 14, 2000 and whose title is "Enhanced Turbo Product Code" is incorporated into the present application by reference.

【0002】[0002]

【発明の背景】BACKGROUND OF THE INVENTION

本発明は、全般的に、エンハンスドターボプロダクト符号(eTPCs)に関し
ており、特にダイアゴナルエンコードによりハイパープロダクト符号をエンコー
ドする方法、及びそのための装置に関する。
The present invention relates generally to enhanced turbo product codes (eTPCs), and more particularly to a method for encoding hyper product codes by diagonal encoding, and apparatus therefor.

【0003】 プロダクト符号は、2または3以上のブロック符号の連結(concatenation)で
ある。例えば、ブロック符号はC1及びC2であり、各々はパラメータ(n1、
k1、d1)及び(n2、k2、d2)を有している。nはコードワード(codeword
)の長さであり、kは情報ビットの数であり、dは最小ハミング距離である。プ
ロダクト符号P=C1×C2は、k1個の行とk2個の列のアレイにk1×k2
情報ビットを配置することにより得られる。次に、k1個の行は符号C1を用い
て符号化され、n2個の列は符号C2を用いて符号化される。従って、プロダク
ト符号は、(n1×n2、k1×k2、d1×d2)となる。本構成では、行列P
の全ての行は、C1のコードワードであり、行列Pの全ての列は、C2のコード
ワードである。プロダクト符号は、2次元又は多次元である。しかしながら、プ
ロダクト符号の次元が高くなるにつれて、より大きな符号ユークリッド距離(d
min)を有する符号はより簡単に得られるが、ブロックサイズが著しく大きく
なることが負担となる。
The product code is a concatenation of two or more block codes. For example, the block codes are C1 and C2, each of which has a parameter (n1,
k1, d1) and (n2, k2, d2). n is a codeword
), K is the number of information bits, and d is the minimum Hamming distance. The product code P = C1 × C2 is k1 × k2 in an array of k1 rows and k2 columns.
It is obtained by arranging the information bits. Next, k1 rows are coded using code C1 and n2 columns are coded using code C2. Therefore, the product code is (n1 × n2, k1 × k2, d1 × d2). In this configuration, the matrix P
Are all C1 codewords and all columns of matrix P are C2 codewords. The product code is two-dimensional or multidimensional. However, as the dimension of the product code increases, the larger code Euclidean distance (d
min) is easier to obtain, but at the expense of a significantly larger block size.

【0004】 ターボプロダクト符号(TPCs)は、従来の連結符号よりもシャノン限界に近
い性能を提供する符号の部類である。TPCsは、プロダクト符号の反復的な軟
判定復号である。TPCsは、性能、複雑さ、符号化率に関して広範な柔軟性を
具えた符号の部類である。この柔軟性により、TPCsは広範な用途に用いられ
る。
Turbo Product Codes (TPCs) are a class of codes that provide performance closer to the Shannon limit than traditional concatenated codes. TPCs are iterative soft-decision decoding of product codes. TPCs are a class of codes with wide flexibility in performance, complexity, and code rate. Due to this flexibility, TPCs are used in a wide variety of applications.

【0005】 エンハンスドターボプロダクト符号は、TPCsに基づいて構築される符号で
ある。ベース符号は任意の次元であり、パリティ符号及び/又は拡張ハミング構
成符号を含む。符号の全ての軸がパリティのみの構成符号(constituent code)を
含むとき、その符号は「ハイパープロダクト符号」である。エンハンスドターボ
プロダクト符号(eTPCs)は、拡張されたハミング符号のN次元プロダクトと
、「ハイパーダイアゴナル(hyper diagonal)」に沿って演算される付加的なパリ
ティ演算で得られる単純なパリティ符号とを含む。プロダクト符号は、1又は2
以上の次元を有する。エンハンスドターボプロダクト符号は、複雑さが緩和され
た状態で実行可能であり、ソフトインソフトアウト(SISO)アルゴリズムを用
いて反復的にデコードされ得る。
The enhanced turbo product code is a code constructed based on TPCs. The base code is of arbitrary dimension and includes a parity code and / or an extended Hamming constituent code. A code is a "hyperproduct code" when all axes of the code include a constitutive code of parity only. Enhanced turbo product codes (eTPCs) include an N-dimensional product of an extended Hamming code and a simple parity code obtained by an additional parity operation performed along a “hyper diagonal”. Product code is 1 or 2
It has the above dimensions. The enhanced turbo product code can be executed with reduced complexity and can be iteratively decoded using a soft in soft out (SISO) algorithm.

【0006】 基となるTPCからeTPCに移行するには、ベース符号内のビットは、所定
のパターンに従って、シャッフル又はインターリーバされる。パリティはこのと
き新たにシャッフルされたアレイに亘って演算される。パリティは、1つの付加
的なビット行が、2−DTPCに追加され、又は1つの付加的な面が3−DTP
Cに追加されるように演算される。このことは、より高い次元について一般化さ
れる。なぜならn−1次元構造のパリティビットが、符号に追加されるからであ
る。ここで、nはベース符号の次元である。
To transition from the underlying TPC to eTPC, the bits in the base code are shuffled or interleaved according to a predetermined pattern. Parity is then computed over the newly shuffled array. For parity, one additional bit row is added to the 2-DTPC, or one additional plane is 3-DTP.
Calculated to be added to C. This generalizes to higher dimensions. This is because the parity bit of the n-1 dimensional structure is added to the code. Here, n is the dimension of the base code.

【0007】 ビット誤りレートの性能が改善されることに加えて、eTPCsは柔軟性に関
する有用性も有する。システム設計者は、誤り訂正を用いるシステムを開発する
際に、一般的に、様々なブロックサイズ及び符号化率を要求していた。eTPC
s(ターボプロダクト符号、エンハンスドターボプロダクト符号、及びそれらの
いかなる結合も含む)の全てのセットを用いることができれば、多大なる柔軟性
を持って、与えられたシステムに対して正確な符号を選択できる。
In addition to improved bit error rate performance, eTPCs also have utility with respect to flexibility. System designers have typically required various block sizes and coding rates when developing systems that use error correction. eTPC
Being able to use the full set of s (including turbo product codes, enhanced turbo product codes, and any combination thereof) allows a great deal of flexibility in choosing the correct code for a given system. .

【0008】 TPCsの符号化率及びベスト誤りレート(BER)性能は、プロダクト符号の
システマティックな構成ブロック符号コードワード及び軸の数に依存する。下記
に示すeTPCsのセットは、2又は3次元以上の符号を含み、各軸のベース符
号は、拡張ハミング符号及び/又はパリティ符号、又は他の同等のものを含むこ
とができる。下記の表は、2−D及び3−DeTPC符号の構成のセットを示し
ている。
The code rate and best error rate (BER) performance of TPCs depends on the number of systematic building block code codewords and axes of the product code. The set of eTPCs shown below includes codes in two or more dimensions, and the base code for each axis may include extended Hamming codes and / or parity codes, or other equivalent. The table below shows a set of configurations for 2-D and 3-DeTPC codes.

【0009】[0009]

【表1】 [Table 1]

【0010】 上記の表にて、「H」は、拡張ハミング符号の軸を表し、「P」は、パリティ
のみの軸、及び「+」は付加的なハイパーダイアゴナル軸を含むエンハンスドタ
ーボプロダクト符号を表す。例えば、HP+符号は、X軸に拡張ハミング符号を
、Y軸及び付加的なハイパーダイアゴナル軸にパリティのみの符号を含む。ハイ
パーダイアゴナル軸を含む符号の最小距離は、符号軸の長さに依存し、コンピュ
ータ解析によって見い出されなければならない。表は、右欄にこれらの符号に対
する概算最小距離を示している。上記表から、符号のより多くの軸が符号化され
るにつれ、符号の最小距離が増加することが分かる。加えて、符号の最小距離は
、ハイパーダイアゴナル軸が符号に加えられると増加する。また、符号をエンコ
ードする際に符号化率が減少すれば、エンコーダの性能は増加する。
In the above table, “H” represents an axis of the extended Hamming code, “P” is an axis of only parity, and “+” is an enhanced turbo product code including an additional hyper-diagonal axis. Represent For example, the HP + code includes an extended Hamming code on the X axis and a parity only code on the Y axis and an additional hyper-diagonal axis. The minimum distance of the code containing the hyper-diagonal axis depends on the length of the code axis and must be found by computer analysis. The table shows the approximate minimum distances for these codes in the right column. From the above table, it can be seen that the minimum distance of the code increases as more axes of the code are coded. In addition, the code's minimum distance increases when a hyper-diagonal axis is added to the code. Also, if the coding rate decreases when encoding the code, the performance of the encoder increases.

【0011】 ダイアゴナルパリティビット又はハイパーダイアゴナルは、次の式を用いてブ
ロックに沿ってビットをダイアゴナル上で足し加えることによって得られる。
A diagonal parity bit, or hyper-diagonal, is obtained by adding bits on the diagonal along a block using the following equation:

【0012】[0012]

【数1】 [Equation 1]

【0013】 Bijは、(i、j)番目のプロダクト符号ビットである。ダイアゴナルパリティ
ビットは、元のプロダクト符号のi番目の行をi+1ビットだけ右に「回転」さ
せて、次に、ダイアゴナルパリティビットを得るために各列を足し加えることに
よって生成される。同様に、ダイアゴナルパリティビットはまた、元のプロダク
ト符号のi番目の行をi−1ビットだけ左に「回転」させて、次にダイアゴナル
パリティビットを得るために各列を足し加えることによりダイアゴナルパリティ
ビットを得る。
B ij is the (i, j) th product code bit. The diagonal parity bits are generated by "rotating" the i-th row of the original product code to the right by i + 1 bits and then adding each column to get the diagonal parity bits. Similarly, the diagonal parity bits are also diagonally rotated by "rotating" the i-th row of the original product code to the left by i-1 bits and then adding each column to obtain the diagonal parity bits. Get a bit.

【0014】 ダイアゴナルパリティビットを追加することにより、符号の最小ユークリッド
距離dminは増加する。ダイアゴナル軸は、種々の軸にてハミング符号ととも
に用いられる場合でさえ、たいていハイパー軸と称される。増加した最小距離は
、符号の誤り下限を低くする結果になる。更に、ハイパー軸を追加することによ
り、限界(bound)に達する前に符号の性能を改善できる。
By adding diagonal parity bits, the minimum Euclidean distance dmin of the code is increased. Diagonal axes are often referred to as hyper-axes, even when used with Hamming codes in various axes. The increased minimum distance results in a lower error floor for the code. In addition, the addition of hyper-axes can improve the performance of the code before the bound is reached.

【0015】 従来技術のエンコード方法では、kx x ky(kx、ky)ビットアレイ内に
データを配置する。図1は、本発明によるエンコード方法を略示している。符号
のX軸は、各行をエンコードするX軸エンコーダ(10)によってエンコードされ、
その結果、データブロックは、1つの行がnxビットで構成されるky個の行(
nx、ky)を有する。このデータブロックは、Y軸にデータを追加することに
よって各列をエンコードするY軸エンコーダ(11)に入力され、(nx、ny)ブロ
ックを出力する結果になる。最終工程は、符号にダイアゴナルパリティビットを
追加するハイパー軸エンコーダ(12)を含む。ひいては、パリティのみのエンコー
ドがブロックの全ての列に追加される。その結果、1つの行がブロックに追加さ
れ、(nx、ny+1)ブロックが出力される。
Prior art encoding methods place data in a kx x ky (kx, ky) bit array. FIG. 1 schematically shows an encoding method according to the present invention. The X axis of the code is encoded by the X axis encoder (10) that encodes each row,
As a result, the data block has ky rows (1 row consisting of nx bits).
nx, ky). This data block is input to the Y-axis encoder (11) that encodes each column by adding data to the Y-axis, resulting in the output of (nx, ny) blocks. The final step involves a hyper-axis encoder (12) that adds diagonal parity bits to the code. In turn, a parity-only encoding is added to every column of the block. As a result, one row is added to the block and (nx, ny + 1) blocks are output.

【0016】 従来技術のエンコード方法は、幾つかの不利な点がある。完全にエンコードさ
れた或る2−Dブロックは、記憶手段に符号(nx、ny)を有しており、エンコ
ーダにてデータアレイと誤り訂正符号(ECC)ビットの両方を保持することが要
求される。加えて、エンコーダは、1ブロック分の待ち時間を有する。待ち時間
は、データブロックの最初のビットがエンコーダに入力され、同じブロックの最
後のビットがエンコーダから出力される間の時間と定義される。従来技術のエン
コーダは待ち時間が長い。なぜなら、エンコーダは、行及び列の両方のエンコー
ドが終了するまでは、データアレイを出力できないからである。このエンコード
工程を終了するには、エンコーダは全てのデータアレイを受信しなければならな
い。従って、ブロックの最初のデータビットは、同じブロックの最後のデータビ
ットが入力されて、1つのブロック全体の待ち時間が生じるまでは出力されない
。通信システムの多くのタイプは、長い待ち時間に対処できない。なぜなら、シ
ステムにサービス品質の抑制が起きるからである。例えば、電話回線上の1/2
秒の遅延は好ましくない。なぜなら、遅延により送信と受信が終わるまでの間、
通信が禁じられるからである。
The prior art encoding method has several disadvantages. Certain fully encoded 2-D blocks have codes (nx, ny) in their storage means and are required by the encoder to hold both the data array and the error correction code (ECC) bits. It In addition, the encoder has a latency of one block. Latency is defined as the time during which the first bit of a data block is input to the encoder and the last bit of the same block is output from the encoder. Prior art encoders have high latency. This is because the encoder cannot output the data array until both row and column encoding have been completed. To complete this encoding process, the encoder must receive the entire data array. Therefore, the first data bit of a block is not output until the last data bit of the same block is input and the latency of one entire block occurs. Many types of communication systems cannot handle long latencies. This is because the quality of service is suppressed in the system. For example, 1/2 on the telephone line
Second delay is not desirable. Because, due to the delay, until transmission and reception end
This is because communication is prohibited.

【0017】 必要とされるのは、ハイパーダイアゴナルパリティアレイが付加されるeTP
Csのために反復的にエンコードする能率的なハードウエアの実行、及びその実
行方法である。ここで、eTPCは、他の符号と同様に拡張ハミングコード、パ
リティコードのようなシステマティックなブロック符号コードワードを含む。反
復的なダイアゴナルエンコード及びデコードとともにeTPCsを用いることは
、有益である、なぜなら、そのようなeTPCは、現在のターボプロダクト符号
よりも3から5次のオーダーで誤り下限が低いからである。
What is needed is an eTP with a hyper-diagonal parity array added
It is an efficient hardware implementation for iteratively encoding for Cs and its implementation method. Here, the eTPC includes a systematic block code codeword such as an extended Hamming code and a parity code like other codes. Using eTPCs with iterative diagonal encoding and decoding is beneficial because such eTPCs have lower error bounds on the order of 3 to 5 than current turbo product codes.

【0018】 また、必要とされるのは、全てのブロックを記憶手段に格納することなしに、
「飛んでいる」データをエンコードできるエンコーダである。そのようなエンコ
ーダは非常に短い待ち時間を有する。なぜなら、エンコーダはデータビットを格
納せず、誤り訂正ビットのみを格納するからである。データビットは、通信路上
に直ちに伝送され、待ち時間を0に近くする。加えて、そのようなエンコーダは
より小さな記憶装置しか必要としない。なぜなら、エンコーダはデータアレイ自
体を格納しないからである。
Also, what is needed is to store all blocks in the storage means,
An encoder that can encode "flying" data. Such an encoder has a very low latency. This is because the encoder does not store data bits, only error correction bits. The data bits are transmitted immediately on the channel, making the latency close to zero. In addition, such encoders require less storage. This is because the encoder does not store the data array itself.

【0019】[0019]

【発明の概要】[Outline of the Invention]

本発明は、n次元のデータブロックをエンコードする方法である。ブロックは
複数のシステマティックなブロック符号コードワードを含み、それによって該方
法はブロック内のハイパーダイアゴナルに沿ってパリティ演算を行う工程を具え
ており、パリティ演算に対するパリティ結果が生成される。また、該方法は、パ
リティ結果をブロックデータに追加する工程を具える。
The present invention is a method of encoding an n-dimensional data block. The block includes a plurality of systematic block code codewords whereby the method comprises performing a parity operation along a hyper-diagonal within the block to generate a parity result for the parity operation. The method also includes adding the parity result to the block data.

【0020】 本発明は、複数の(n−1)次元のサブブロックを有するn次元のデータブロッ
クをエンコードする方法である。各サブブロックは、複数のシステマティックな
ブロック符号コードワードを含む。パリティサブブロックは、データブロックに
加えられる。該パリティサブブロックは複数のパリティビットを有し、本発明の
方法は、パリティサブブロックを、所定のビット数だけ回転された第1サブブロ
ックに等しくする工程を具える。また、n次元ブロック内の第1サブブロックに
平行な一連の各サブブロックの各々に対して、該平行なサブブロックとパリティ
サブブロックとでビットワイズ排他的論理和を演算する工程を具えている。ここ
で、パリティサブブロックは、適当なビット数だけ回転される。
The present invention is a method for encoding an n-dimensional data block having a plurality of (n-1) -dimensional sub-blocks. Each sub-block includes multiple systematic block code codewords. The parity sub-block is added to the data block. The parity sub-block has a plurality of parity bits and the method of the invention comprises the step of making the parity sub-block equal to the first sub-block rotated by a predetermined number of bits. The method also includes a step of calculating a bitwise exclusive OR of each of the series of sub-blocks parallel to the first sub-block in the n-dimensional block with the parallel sub-block and the parity sub-block. . Here, the parity sub-block is rotated by an appropriate number of bits.

【0021】 本発明は、入力源から受信したn次元のデータブロックをエンコードする方法
である。ブロックは複数の情報ビットを含む。本発明の方法は、ブロックの行を
受信し、直ちに該行を出力する工程を具える。本発明の方法は、情報ビットをエ
ンコードする工程を含み、エンコードされたデータの第1セットは、第1エンコ
ードスキームに従って生成される。本発明の方法は、エンコードされたデータの
第1セットを出力する工程を含む。本発明の方法は、第2エンコードスキーム(s
cheme)に従って列内の情報ビットをエンコードする工程を含み、エンコードされ
たデータの第2セットは、行内の情報ビットに従って生成され、反復的に更新さ
れる。本発明の方法は、パリティをエンコードするスキームに従って、ブロック
内の情報ビットをハイパーダイアゴナルエンコードする工程を具え、エンコード
されたデータのハイパーセットは、行及び列内の情報ビット、及びエンコードさ
れたデータの第1及び第2セットに従って生成される。本発明の方法は、全ての
情報ビット及びそれに続くエンコードされたデータの第1セットの全てが出力さ
れた後に、エンコードされたデータの更新された第2セットを出力する工程を具
える。本発明の方法は、エンコードされたハイパーセットを出力する工程がある
The present invention is a method of encoding an n-dimensional data block received from an input source. A block contains multiple information bits. The method of the present invention comprises the steps of receiving a row of blocks and immediately outputting the row. The method of the present invention includes the step of encoding information bits, the first set of encoded data being generated according to a first encoding scheme. The method of the present invention includes the step of outputting a first set of encoded data. The method of the present invention uses the second encoding scheme (s
The second set of encoded data is generated and iteratively updated according to the information bits in the rows. The method of the invention comprises hyper-diagonally encoding the information bits in a block according to a parity encoding scheme, wherein the hyperset of encoded data is the information bits in rows and columns, and of the encoded data. It is generated according to the first and second sets. The method of the invention comprises outputting an updated second set of encoded data after all the information bits and all of the subsequent first set of encoded data have been output. The method of the present invention includes the step of outputting the encoded hyperset.

【0022】 本発明は、複数の情報ビットを有するデータブロックをエンコードするエンコ
ーダである。エンコーダは、情報ビットを受信した後、直ちに情報ビットを出力
する。エンコーダは、ブロックの行内の情報ビットをエンコードする第1エンコ
ーダモジュールを具え、該第1エンコーダモジュールは、エンコードされた行ビ
ットのセットを生成する。エンコーダは、ブロックの列内の情報ビットをエンコ
ードする第2エンコーダモジュールを具え、該第2エンコーダモジュールは、各
行内の情報ビットに従ってエンコードされた列ビットのセットを生成する。第2
エンコーダは、第1エンコーダによってエンコードされた各行について、エンコ
ードされた列ビットを更新する。エンコーダは、全ての情報ビット及びエンコー
ドされた全てのビットを、ブロックに沿ってダイアゴナル上でハイパーダイアゴ
ナルエンコードするハイパーエンコーダモジュールを具えている。ハイパーエン
コーダは、パリティ結果のセットを生成し、各パリティ結果は、エンコードされ
たビットのダイアゴナルに対応している。
The present invention is an encoder that encodes a data block having a plurality of information bits. The encoder outputs the information bit immediately after receiving the information bit. The encoder comprises a first encoder module that encodes information bits in the rows of the block, the first encoder module producing a set of encoded row bits. The encoder comprises a second encoder module encoding the information bits in the columns of the block, the second encoder module producing a set of column bits encoded according to the information bits in each row. Second
The encoder updates the encoded column bits for each row encoded by the first encoder. The encoder comprises a hyper-encoder module that hyper-diagonally encodes all information bits and all encoded bits on the diagonal along the block. The hyper encoder produces a set of parity results, each parity result corresponding to a diagonal of the encoded bits.

【0023】 本発明は、データブロックを、エンコードされたデータブロックにエンコード
するエンコーダである。データブロックは、複数の行及び列内に配置された複数
の情報ビットを有する。本発明のエンコーダは、データブロックを受信する手段
を具え、受信された情報ビットは出力手段によって直ちに出力される。エンコー
ダは、第1エンコードスキームに従って各行をエンコードする第1手段を具え、
該第1手段は、第1エンコードスキームによってエンコードされた各行について
行エンコード結果を生成する。本発明のエンコーダは、第2エンコードスキーム
に従って各列をエンコードする第2手段を具え、該第2手段は、第2エンコード
スキームによってエンコードされた各列について、列エンコード結果を生成する
。列エンコード結果は、第1手段によってエンコードされた各行に対して、反復
的に更新される。エンコーダは、エンコードされたデータブロックに沿ってハイ
パーダイアゴナルエンコードする手段を具え、ハイパーダイアゴナルエンコード
する手段は、エンコードされたデータブロック内の各々対応するダイアゴナルに
対して、ハイパーパリティ結果を生成する。
The present invention is an encoder that encodes a data block into an encoded data block. A data block has multiple information bits arranged in multiple rows and columns. The encoder of the invention comprises means for receiving a block of data, the received information bits being immediately output by the output means. The encoder comprises first means for encoding each row according to a first encoding scheme,
The first means generates a row encoding result for each row encoded according to the first encoding scheme. The encoder of the present invention comprises second means for encoding each column according to a second encoding scheme, the second means generating a column encoding result for each column encoded by the second encoding scheme. The column encoding result is iteratively updated for each row encoded by the first means. The encoder comprises means for hyper-diagonally encoding along the encoded data block, the means for hyper-diagonal encoding producing a hyper-parity result for each corresponding diagonal in the encoded data block.

【0024】 本発明は、データブロックを、エンコードされたデータブロック内にエンコー
ドするエンコーダであり、データブロックは複数の情報ビットを有している。エ
ンコーダは情報ビットを受信すると直ちに情報ビットを出力し、エンコーダはブ
ロック行内の情報ビットをエンコードする第1エンコーダモジュールを具え、該
第1のエンコーダはエンコードされた行ビットのセットを生成する。エンコーダ
は、ブロックの列内の情報ビットをエンコードする第2エンコーダモジュールを
具え、該第2エンコーダモジュールは、各行内の情報ビットに従ってエンコード
された列ビットのセットを生成する。第2エンコーダは、第1エンコーダによっ
てエンコードされた各行についてエンコードされた列ビットを更新する。
The present invention is an encoder that encodes a data block within an encoded data block, the data block having a plurality of information bits. The encoder outputs the information bits as soon as it receives the information bits, and the encoder comprises a first encoder module for encoding the information bits in the block row, the first encoder producing a set of encoded row bits. The encoder comprises a second encoder module encoding the information bits in the columns of the block, the second encoder module producing a set of column bits encoded according to the information bits in each row. The second encoder updates the encoded column bits for each row encoded by the first encoder.

【0025】 本発明の他の特徴及び有利さは、下記に示す好ましい実施例の詳細な記載を精
読した後に、明らかになるであろう。
Other features and advantages of the present invention will become apparent after reading the detailed description of the preferred embodiments presented below.

【0026】[0026]

【好ましい実施例の詳細な説明】Detailed Description of the Preferred Embodiments

以下の例では、ハイパーダイアゴナル(Hyper-diagonal)エンコードを用いてエ
ンハンスドターボプロダクト符号(eTPC)をエンコードする方法が示されて
いる。下の図は、パリティ計算のオーダーを示すレタリングで、基礎となる2−
Dのパリティのみの符号を表している。ブロックの各文字は、1つのビットを示
している。特に、図に見られるパリティブロックは、パラメータ(5,4)x(6,
4)を有している。ゆえに、ブロック内のデータは、各行と列は4ビットである
4行4列のデータから成り立っている。ブロックは、eTPCブロックであるの
で、拡張ハミング符号(extending Hamming codes)又はパリティ符号のような誤
り訂正ビットが各行と各列に追加されて、ブロックは5行5列になる。さらに、
ハイパーパリティ行又はアレイが、ブロックの一部として又は別個にeTPCに
追加される。エンコードされたeTPCブロックは、ECCビットに加えて4x
4ブロックの情報ビットを含み、ハイパーパリティアレイは、該eTPCブロッ
クの全てについてのハイパーダイアゴナル計算の結果を含んでいる。
In the following example, a method for encoding an enhanced turbo product code (eTPC) using hyper-diagonal encoding is shown. The figure below is the lettering showing the order of parity calculation, which is the basis of the 2-
A code having only D parity is shown. Each character in the block represents one bit. In particular, the parity block seen in the figure has parameters (5,4) x (6,
4). Therefore, the data in a block consists of 4 rows and 4 columns of data, where each row and column is 4 bits. Since the block is an eTPC block, error correction bits such as extending Hamming codes or parity codes are added to each row and each column to make the block 5 rows and 5 columns. further,
Hyperparity rows or arrays are added to the eTPC as part of the block or separately. Encoded eTPC block is 4x in addition to ECC bits
It contains 4 blocks of information bits and the hyper parity array contains the results of the hyper-diagonal calculation for all of the eTPC blocks.

【0027】[0027]

【外1】 [Outer 1]

【0028】 同じ文字(AからE)を有する上記の全てのビットは、ハイパーパリティ行に
配置される付加的なパリティビットの計算に使用される。例えば、ラベルAが付
された全てのビットは偶パリティを有し、ラベルBが付された全てのビットは偶
パリティを有し、等となる。3次元ハイパーダイアゴナルパリティビットは、3
−Dアレイの3つ全ての軸に亘って処理することによって追加される。任意の次
元数でも同様に行える。上図において、エンコーダは、データブロック内のビッ
トのダイアゴナル上のストリング(string)に沿ってパリティ計算を行った後に、
パリティ行を「回転」させることによって、ハイパーダイアゴナルを行う。例え
ば、エンコーダは、ビットAのストリングをダイアゴナル上に横切ることによっ
てパリティ計算を行い、パリティ行を一列右へ配置する。次に、エンコーダは、
ビットBのストリングをダイアゴナル上に横切ることによってパリティ計算を行
い、パリティ行を一列右へ配置する。これは、エンコーダが全てのストリングに
ついてパリティ計算を行うまで続けられる。そして、エンコーダはパリティ行を
一列右へ回転して、パリティ行は上図のようになる。なお、他のハイパーエンコ
ードの方法を用いてもよい。上記の2−Dコードについては、ハイパーダイアゴ
ナルパリティの結果は、下方へ、下方の代わりに左方へ、右方へ移動しても計算
できる。さらに、付加的なパリティの複数の行を、符号に追加することも可能で
ある。
All the above bits with the same letters (A to E) are used in the calculation of the additional parity bits placed in the hyperparity row. For example, all bits labeled A have even parity, all bits labeled B have even parity, and so on. 3D hyper-diagonal parity bit is 3
-Add by processing across all three axes of the D array. The same can be done with any number of dimensions. In the figure above, the encoder performs a parity calculation along a diagonally string of bits in a data block,
Performs hyper-diagonal by "rotating" the parity row. For example, the encoder performs the parity calculation by diagonally traversing the string of bits A and placing the parity row one column to the right. Then the encoder
Parity calculation is performed by traversing the string of bits B diagonally, placing the parity row one column to the right. This continues until the encoder has performed parity calculations on all strings. Then, the encoder rotates the parity row to the right by one column, and the parity row becomes as shown in the above figure. Other hyper-encoding methods may be used. For the 2-D code above, the hyper-diagonal parity result can also be calculated by moving down, to the left instead of down, to the right. Further, multiple rows of additional parity can be added to the code.

【0029】 エンコーダは、1つのアレイを符号に追加することによって、より高次元の符
号をエンコードできる。例えば、(16,11)x(16,11)x(16,11)は、(
16,11)x(16,11)x(17,11)符号にエンコードされる。図2に示すよ
うに、エンコードは、追加されるエンコーダが、「Y軸をエンコード」するモジ
ュール(21)と「ハイパー軸をエンコード」するモジュール(22)との間に加えられ
る以外は、2−Dの場合と同様な仕組みで行われる。「Z軸をエンコード」と付
されたモジュール(23)は、Z軸のエンコードを実行する。従って、ブロックは
、(nx,ny,nz+1)として出力される。
The encoder can encode higher dimensional codes by adding one array to the code. For example, (16,11) x (16,11) x (16,11) becomes (
It is encoded into a (16,11) x (16,11) x (17,11) code. As shown in FIG. 2, the encoding is performed in two steps except that an additional encoder is added between the “encode Y axis” module (21) and the “encode hyperaxis” module (22). The mechanism is similar to that of D. The module (23) labeled "Encode Z-axis" performs Z-axis encoding. Therefore, the block is output as (nx, ny, nz + 1).

【0030】 本発明のエンコーダは、新しい技術を用いて、エンコード過程に要求される記
憶空間を制限し、エンコーダの待ち時間を短縮させている。本発明の簡単化され
たブロック図を図3に示す。kx x kxのビットアレイ内にデータを置く代わ
りに、本発明のエンコーダ(100)は、2次元ブロックのデータの各ビットをx_
エンコーダ(40)、y_エンコーダ(41)、及びハイパー_エンコーダ(42)に入力し
、エンコードされたデータを出力、送信する。x_エンコーダ(40)は、記憶手段
にn1−k1ビットを含み、X軸での符号は(n1,k1)となる。y_エンコー
ダ(41)は、記憶手段に(n2−k2) x k1ビットを含み、ハイパー_エンコー
ダ(42)は、記憶手段にn1ビットを含む。
The encoder of the present invention uses a new technique to limit the storage space required for the encoding process and reduce the latency of the encoder. A simplified block diagram of the present invention is shown in FIG. Instead of putting the data in a bit array of kx x kx, the encoder (100) of the present invention allows each bit of data in a two-dimensional block to be x_.
The encoder 40, the y_encoder 41, and the hyper_encoder 42 are input, and the encoded data is output and transmitted. The x_encoder (40) includes n1-k1 bits in the storage means, and the code on the X axis is (n1, k1). The y_encoder (41) includes (n2-k2) x k1 bits in the storage means, and the hyper_encoder (42) includes n1 bits in the storage means.

【0031】 2次元ブロックのデータのエンコードは、次のように進められる。ブロックの
第1行のデータが、一度に1又は2以上のビットで各エンコーダに入力されると
共に、通信路に直ちに伝送される。x_エンコーダ(40)は、データが入力される
と第1行をエンコードする。y_エンコーダ(41)は、k1個のパラレル符号をエ
ンコードする。パラレル符号の各々は、アレイのある列(k)に対応している。最
後に、ハイパー_エンコーダ(42)は、n1個のパラレルパリティ符号をエンコー
ドする。パラレルパリティ符号の各々は、アレイのあるハイパーダイアゴナルに
対応している
The encoding of the data of the two-dimensional block proceeds as follows. The data in the first row of the block is input to each encoder one or more bits at a time and immediately transmitted on the channel. The x_encoder (40) encodes the first row when data is input. The y_encoder (41) encodes k1 parallel codes. Each of the parallel codes corresponds to a column (k) of the array. Finally, the hyper encoder (42) encodes n1 parallel parity codes. Each of the parallel parity codes corresponds to a hyper-diagonal with an array

【0032】 第1行のk1個のデータビットが全て入力されると、拡張ハミング符号、パリ
ティ符号、又は任意の同等物をその行に加えるというようなエンコードスキーム
に基づいて、x_エンコーダ(40)は該行をエンコードする。x_エンコーダ(40)
が第1行をエンコードした後、第1行のECCビット又はエンコードされたデー
タのセットを出力する準備ができる。マルチプレクサ(43)がy_エンコーダ(41)
及びマルチプレクサ(44)に第1行のECCビットを出力する間、入力データ列ス
トリームは停止される。データ列の停止により、この時間の間、y_エンコーダ
(41)はアイドル状態になる。x軸の第1行のECCビットが出力されると、x_
エンコーダ(40)のメモリ内の全てのビットがゼロになって、x_エンコーダ(40)
のメモリがクリアされ、次のデータ行が、x_エンコーダ(40)に入力される。そ
して、一連のデータ行がエンコーダ(100)に入力されると、y_エンコーダ(41)
は、自身のエンコードスキームによって、各列をエンコードして、繰り返し更新
する。同様に、データがエンコーダ(100)に入力されると、ハイパー_エンコー
ダ(42)は、各ハイパーダイアゴナルパリティビットをエンコードすることによっ
て、自身のエンコードスキームで更新する。
Once all the k1 data bits of the first row have been input, the x_encoder (40) is based on an encoding scheme such as adding an extended Hamming code, a parity code, or any equivalent to that row. Encodes the row. x_encoder (40)
After the first row has encoded the first row, it is ready to output the ECC bits of the first row or the set of encoded data. The multiplexer (43) is the y_encoder (41)
And the output of the first row of ECC bits to the multiplexer (44), the input data stream is stopped. Due to the stop of the data stream, the y_encoder during this time
(41) becomes idle. When the ECC bit of the first row on the x-axis is output, x_
All bits in the memory of the encoder (40) are zero, and the x_encoder (40)
Memory is cleared and the next row of data is input to the x_encoder (40). Then, when a series of data rows are input to the encoder (100), the y_encoder (41)
Encodes each column according to its encoding scheme and updates it repeatedly. Similarly, when data is input to the encoder (100), the hyper_encoder (42) updates with its encoding scheme by encoding each hyper-diagonal parity bit.

【0033】 この過程は、k2個の列がエンコーダ(100)から出力されるまで反復される。
k2個の列が出力されると、y_エンコーダ(41)は、エンコードされた列ビット
の全セットについて行順にパリティ計算をすることにより、全ての残っている列
ビットのエンコードを終了する。この時点で、y_エンコーダ(41)は、y軸の全
てのECCデータを出力する準備ができる。マルチプレクサ(44)は切り替えられ
て、x_エンコーダ(40)が新しいコードワードをエンコードし続け、ハイパー_
エンコーダ(42)がy軸のECCデータからデータをエンコードして更新し続ける
間、y軸のECCデータがエンコーダ(100)から出力される。入力データのn2
個の行がエンコードされて、エンコーダ(100)から出力された後、y軸のECC
データは、排出される(exhausted)。この時、y_エンコーダ(41)のメモリは、
y_エンコーダ(41)のメモリの全てのビットをゼロにすることでクリアされる。
さらに、ハイパー_エンコーダ(42)は、全ブロックのハイパーダイアゴナルエン
コードを完了する。次に、マルチプレクサ(45)が切り替えられた後に、ハイパー
_エンコーダ(42)からのパリティビットの付加的な行が出力される。
This process is repeated until k2 columns are output from the encoder (100).
When k2 columns have been output, the y_encoder (41) finishes encoding all remaining column bits by performing a parity calculation in row order on the entire set of encoded column bits. At this point, the y_encoder (41) is ready to output all the y-axis ECC data. The multiplexer (44) is switched so that the x_encoder (40) continues to encode new codewords and hyper_
While the encoder (42) continuously encodes and updates the data from the y-axis ECC data, the y-axis ECC data is output from the encoder (100). N2 of input data
Number of rows are encoded and output from the encoder (100), then the y-axis ECC
The data is exhausted. At this time, the memory of y_encoder (41) is
Cleared by zeroing all bits of the y_encoder (41) memory.
Further, the hyper_encoder (42) completes hyper-diagonal encoding of all blocks. Then, after the multiplexer (45) is switched, an additional row of parity bits from the hyper_encoder (42) is output.

【0034】 (n,k,d)ビットを有するデータの3次元ブロックでは、対応するマルチプレ
クサを具えるz_エンコーダ(図示せず)が、データのd−面をエンコードする
のに使用される。z_エンコーダは、最初の及び一連の行がエンコーダ(100)に
各々入力されると、自己のエンコードスキームによって、各面をエンコードし、
繰り返し更新する。z_エンコーダはx_エンコーダ(40)及びy_エンコーダ(4
1)により生成された、エンコードされたECCデータを使用し、面内のビットを
エンコードする。図3は、最初に行が入力され、列とハイパーダイアゴナルが該
行によりエンコードされることを示しているが、本発明の方法では、このように
することは必ずしも必要ではない。例えば、最初に列をエンコードし、一方で行
を更新するなどしてもよい。
For a three-dimensional block of data having (n, k, d) bits, a z_encoder (not shown) with a corresponding multiplexer is used to encode the d-plane of the data. The z_encoder encodes each surface according to its own encoding scheme when the first and series of rows are each input to the encoder (100),
Update repeatedly. The z_encoder is an x_encoder (40) and a y_encoder (4
The encoded ECC data generated in 1) is used to encode in-plane bits. Although FIG. 3 shows that a row is entered first, columns and hyper-diagonals are encoded by the row, this is not necessary in the method of the present invention. For example, the columns may be encoded first while the rows are updated, and so on.

【0035】 図4は、本発明のエンコーダの図である。エンコーダ(100)は、4つのモジュ
ールを具えている。これらは、入力モジュール(102)、データパスモジュール(10
4)、制御モジュール(105)、及び出力モジュール(106)である。入力モジュール(1
02)は、レディ/アクセプト(ready/accept)ハンドシェイクによって入力データを
受信する。データは、データパスモジュールでエンコードされ、出力モジュール
(108)を通って、レディ/アクセプトハンドシェイクによって出力される。制御モ
ジュール(106)は、エンコードで用いられるエンコーダのコンフィグレーション
設定、状態機械、及び制御信号を含んでいる。出力モジュール(108)は、データ
パスモジュール(104)及び制御モジュール(106)からエンコードされたデータを受
信し、エンコードされた符号を出力する。
FIG. 4 is a diagram of the encoder of the present invention. The encoder (100) comprises four modules. These are the input module (102) and the data path module (10
4), a control module (105), and an output module (106). Input module (1
02) receives input data by ready / accept handshake. The data is encoded in the datapath module and output module
It is output through the ready / accept handshake through (108). The control module (106) contains configuration settings, state machine and control signals for the encoder used in the encoding. The output module (108) receives the encoded data from the data path module (104) and the control module (106) and outputs the encoded code.

【0036】 入力モジュールは、DATA_RATEビットのレートで、一時に入力データ
を受信する。ここで、DATA_RATEは、クロックサイクル当たりに処理さ
れるエンコードされたデータビット数を示す値である。DATA_RATEの値
は、ブロックのx軸でエンコードされたビットの最小数に達することはできない
。入力モジュール(102)は、入力データを受信し、エンコード中の行に要求され
る数のビットを与える。必要とされるデータビットの数は、エンコード過程に依
存しており、DATA_RATEビットに等しい値に至ってもよい。入力モジュ
ール(102)は、最後のビットが入力モジュール(102)に受信される際に、入力モジ
ュール(102)に情報を与える制御モジュール(106)から、last_block_bits信号
及びlast_block_row信号を受信する。
The input module receives input data at a rate of DATA_RATE bits. Here, DATA_RATE is a value indicating the number of encoded data bits processed per clock cycle. The DATA_RATE value cannot reach the minimum number of bits encoded on the x-axis of the block. The input module (102) receives the input data and provides the required number of bits for the row being encoded. The number of data bits required depends on the encoding process and may reach a value equal to DATA_RATE bits. The input module (102) receives the last_block_bits and last_block_row signals from the control module (106) which informs the input module (102) when the last bit is received by the input module (102).

【0037】 制御モジュール(106)は、制御ロジックを具えており、該制御ロジックにより
、入力、データパス、及び出力モジュールが、データをエンコードするために他
のモジュールと通信可能となる。図7に詳細を示すように、制御モジュール(106
)は、レジスタ_制御手段(300)、入力_データ_制御手段(302)、ブロック_制
御手段(304)、出力_データ_制御手段(306)、x_エンコード_制御手段(308)
、y_エンコード_制御手段(310)、z_エンコード_制御手段(312)、及びハイ
パー_制御手段(314)を具えている。レジスタ_制御手段(300)は、全ての入力モ
ジュール制御信号を記録する。入力_データ_制御手段(302)は、入力モジュー
ル(102)から入力データを受信するために用いられる制御信号を生成する。ブロ
ック_制御手段(304)は、ブロック状態を特定する制御信号を生成する。出力_
データ_制御手段(306)は、出力データモジュール(108)からのデータを出力する
ために用いられる制御信号を生成する。x_エンコード_制御手段(308)は、x
_エンコーダ(110)により行われるx軸エンコードに用いられる制御信号を生成
する。同様に、y_エンコード_制御手段及びz_エンコード_制御手段は、各
々、y_エンコーダ(112)及びz_エンコーダ(114)により行われるy軸及びz軸
エンコードに用いられる制御信号を生成する。さらに、ハイパー_制御信号は、
ハイパー_エンコーダ(116)によって行われるハイパーエンコードに使用される
。出力モジュール(106)は、クロック当たり、DATA_RATEビットでデー
タを受信し、クロック当たり、DATA_RATEビットで出力データを送る。
データは、ブロックの最初及び最後のビットの位置を示す、first_bit_flag及
びlast_bit_flagを含んでいる。
The control module (106) comprises control logic that enables the input, data path, and output modules to communicate with other modules to encode the data. As shown in detail in FIG. 7, the control module (106
) Is register_control means (300), input_data_control means (302), block_control means (304), output_data_control means (306), x_encode_control means (308)
, Y_encode_control means (310), z_encode_control means (312), and hyper_control means (314). The register_control means (300) records all input module control signals. The input_data_control means (302) generates control signals used to receive input data from the input module (102). The block_control means (304) generates a control signal that specifies the block state. output_
The data_control means (306) generates control signals used to output the data from the output data module (108). The x_encoding_control means (308) uses x
_ Generates a control signal used for x-axis encoding performed by the encoder (110). Similarly, the y_encode_control means and the z_encode_control means generate control signals used for the y-axis and z-axis encoding performed by the y_encoder (112) and the z_encoder (114), respectively. Furthermore, the hyper_control signal is
Used for hyper-encoding performed by Hyper-Encoder 116. The output module 106 receives data on the DATA_RATE bits per clock and sends output data on the DATA_RATE bits per clock.
The data includes first_bit_flag and last_bit_flag, which indicate the positions of the first and last bits of the block.

【0038】 状態機械(316)は、reset_n_pulseが与えられるまでアイドルモードで動作す
る。reset_n_pulseが与えられると、状態機械(316)は、アクティブ状態になり
、次のreset_n_pulseが得られるまでアイドル状態に戻らない。データが入力
された場合、x_エンコードビット、y_エンコードビット、z_エンコードビ
ット、又はハイパービットの何れかを出力する。
The state machine (316) operates in idle mode until reset_n_pulse is applied. Given a reset_n_pulse, the state machine (316) becomes active and does not return to idle until the next reset_n_pulse is available. When data is input, either x_encoded bit, y_encoded bit, z_encoded bit, or hyperbit is output.

【0039】 図5に示すデータパスモジュール(104)は、詳細を図5に示すように、エンコ
ード機能を果たす。データパスモジュール(104)は、x、y、及びz次元の3次
元ブロックデータをエンコードし、データパスが可能な場合ハイパービットを追
加する。これは、x_エンコーダ(110)、y_エンコーダ(112)、z_エンコーダ
(114)、及びハイパー_エンコーダ(116)からなる4つの異なるエンコーダにより
行われる。2次元ブロックデータの場合、データパスモジュール(104)は、x_
エンコーダ(110)、y_エンコーダ(112)、及びハイパー_エンコーダ(116)のみ
を使用する。各エンコーダは、データ列を検討して、独立したエンコードされた
データストリームをパスへ出力する。load_in_reg信号がアクティブである場
合、データは、idata_in信号によりin_regレジスタに格納される。そして、デ
ータは、全てのエンコーダに送られる。データは、また、data_outとして出力
マルチプレクサ(120)へ送られる。 出力マルチプレクサ(120)は、データを通過
させるか、1つ又は全てのエンコーダからout_regレジスタへ通すデータを選択
する。load_out_reg信号がアクティブの場合、データはout_regレジスタに格
納される。各エンコーダは、選択的にRAMバス構造を介して外部メモリと通信
可能である。
The data path module (104) shown in FIG. 5 performs an encoding function, as shown in detail in FIG. The datapath module 104 encodes the 3D block data in the x, y, and z dimensions and adds hyperbits if the datapath is possible. This is x_encoder (110), y_encoder (112), z_encoder
(114) and four different encoders consisting of a hyper encoder (116). In the case of two-dimensional block data, the data path module (104) uses x_
Only the encoder 110, y_encoder 112 and hyper_encoder 116 are used. Each encoder examines the data stream and outputs an independent encoded data stream to the path. If the load_in_reg signal is active, the data is stored in the in_reg register by the idata_in signal. The data is then sent to all encoders. The data is also sent to the output multiplexer (120) as data_out. The output multiplexer (120) either passes the data or selects the data to pass to the out_reg register from one or all encoders. If the load_out_reg signal is active, the data is stored in the out_reg register. Each encoder can optionally communicate with an external memory via a RAM bus structure.

【0040】 x_エンコーダ(110)、y_エンコーダ(112)、及びz_エンコーダ(114)モジ
ュールは、ハミング符号生成ロジックによって、さらに、エンコーダが、システ
マティックなコードワードをデータブロックの全てのデータビットに加えること
を可能にする他のロジックによって動作する。実施例では、x_エンコーダ(110
)は、列エンコード格納アレイのような内部レジスタに、ハミング計算結果及び
パリティ計算結果を格納する。DATA_RATEが1より大きい場合、DAT
A_RATEビットのハミング計算はパラレルに行われる。y_エンコーダ(112
)は、DATA_RATEが1に等しいと、外部RAM又は列エンコード格納ア
レイのような外部メモリにハミング計算結果を格納する。しかしながら、DAT
A_RATEが1より大きい場合、データは、DATA_RATEワイドグルー
プとして外部メモリに格納される。この場合、アドレス数が1/DATA_RA
TEとなり、アドレス当たりのビット数がDATA_RATE倍となる。z_エ
ンコーダ(114)は、y_エンコーダ(112)と同様に作用して、面エンコード格納ア
レイにエラー訂正ビットを格納する。
The x_encoder (110), y_encoder (112), and z_encoder (114) modules are provided by the Hamming code generation logic, and further the encoder adds a systematic codeword to all data bits of the data block. To work with other logic that allows In the embodiment, the x_encoder (110
) Stores the Hamming calculation result and the parity calculation result in an internal register such as a column encoding storage array. If DATA_RATE is greater than 1, then DAT
Hamming calculation of A_RATE bit is performed in parallel. y_encoder (112
) Stores the Hamming calculation result in an external memory such as an external RAM or a column encode storage array when DATA_RATE equals 1. However, DAT
If A_RATE is greater than 1, the data is stored in the external memory as DATA_RATE wide group. In this case, the number of addresses is 1 / DATA_RA
TE, and the number of bits per address is DATA_RATE times. The z_encoder (114) operates similarly to the y_encoder (112) and stores the error correction bits in the surface encode storage array.

【0041】 ハイパー_エンコーダモジュール(116)は、付加的な行又は列を2−Dブロッ
クへ追加するか、付加的なハイパービットの面を3−Dブロックに追加する。ハ
イパービットは、ブロックのダイアゴナル軸に沿って偶パリティ処理を行うこと
によって計算される。結果のパリティビットは、パリティアレイのような外部メ
モリに格納される。RAMアドレス、データ、及び制御信号の全ては、RAMバ
スに出力されて、外部メモリに送られる。y_エンコーダは、最下位ビットを使
用し、存在するならば、z_エンコーダは中位ビットを使用し、ハイパー_エン
コーダは、最上位ビットを使用している。
The hyper_encoder module 116 adds an additional row or column to the 2-D block or an additional hyperbit plane to the 3-D block. Hyperbits are calculated by performing even parity processing along the diagonal axis of the block. The resulting parity bits are stored in external memory such as a parity array. All RAM addresses, data, and control signals are output to the RAM bus and sent to external memory. The y_encoder is using the least significant bits, the z_encoder is using the middle bits and the hyper_encoder is using the most significant bits, if any.

【0042】 o_first信号は、ブロック出力の最初のビットをアサート(assert)する。o_l
ast信号は、ブロック出力の最後のビットをアサートする。DATA_RATE
が1より大きい場合、両方の信号は同時にアサートされ得る。バス中のどのビッ
トが最初と最後のビットであるかということは、ユーザーにより決定される。
The o_first signal asserts the first bit of the block output. o_l
The ast signal asserts the last bit of the block output. DATA_RATE
If is greater than 1, both signals may be asserted at the same time. Which bit in the bus is the first and last bit is determined by the user.

【0043】 ハイパー_エンコーダ(116)は、入力ブロックについてダイアゴナルを横切っ
て、パリティビットを計算する。図6に、本発明に係るハイパー_エンコーダ(1
16)の詳細を示す。ハイパー_エンコーダ(116)は、入力パイプステージ(202)、
ハイパーコア(200)、及び出力パイプステージ(204)を含む。入力パイプステージ
(202)は、ハイパー_エンコーダ(116)内の他のモジュールによって使用される全
てのデータを格納する。データは、enc_rdyとenc_acptで夫々が示されるレデ
ィ/アクセプトハンドシェイクにより、入力パイプステージを通ってハイパーエ
ンコーダに入る。同様に、出力パイプステージ(204)は、hyper_rdyとhyper_ac
ptで夫々が示されるレディ/アクセプトハンドシェイクにより、ハイパーエンコ
ードされたデータを出力する。
The Hyper_Encoder (116) computes parity bits across the diagonal for the input block. FIG. 6 shows a hyper encoder (1
Details of 16) are shown below. The hyper_encoder (116) has an input pipe stage (202),
It includes a hypercore (200) and an output pipe stage (204). Input pipe stage
(202) stores all the data used by other modules in the Hyper Encoder (116). Data enters the hyper encoder through the input pipe stage by a ready / accept handshake, indicated by enc_rdy and enc_acpt, respectively. Similarly, the output pipe stage (204) has hyper_rdy and hyper_ac
The hyper-encoded data is output by the ready / accept handshake indicated by pt.

【0044】 ハイパー_コア(200)は、完全な行を格納できるハイパーレジスタ又はハイパ
ーアレイを有している。ハイパー_コア(200)は、RAMの読出し及び書込みの
全てを生じさせる制御モジュールを含む。2−Dエンハンスドターボプロダクト
符号の場合、レジスタは完全な行をホールドできる。よって、データは、直前の
行レジスタとハイパーレジスタの間で転送される。3−Dブロックの場合、完全
なハイパー面がハイパーエンコーダに格納される。ゆえに、RAMが、ハイパー
面パリティビットをホールドするために使用される。よって、データが出力パイ
プステージ(204)に送られるにつれて、行はハイパーレジスタ内に蓄積される。
行の最後が到達すると、該行はRAMに書き込まれる。入力データは、以下で議
論するように直前の行を配置すること、及び入力データで排他的論理和演算を施
すことにより操作される。そして、このデータはRAMに書き込まれる。第1面
全部の間、直前の行は0にセットされる。直前の行は、どの行が面内にあるかと
いうことに依存して更新される。行が面内の最後の行である場合、それは、RA
Mに書き込まれている現在のデータを受信する。しかしながら、行が面内の他の
行である場合、それは、現在のRAMのアドレスの内容を受信し、書き込まれる
。なお、例外がある。例えば、第1面の間、直前の行は0にされる。また、第2
面では、shortr内の領域は0にされる。これらの場合、直前の行は明らかに0に
されて、以前のRAMの内容がハイパーオペレーションを破壊することが防止さ
れる。
The hyper_core (200) has a hyper register or hyper array that can store a complete row. The Hyper_Core (200) contains a control module that causes all RAM reads and writes. For 2-D enhanced turbo product codes, the register can hold a complete row. Therefore, the data is transferred between the immediately preceding row register and the hyper register. For 3-D blocks, the complete hyperplane is stored in the hyperencoder. Therefore, RAM is used to hold the hyperplane parity bits. Thus, as data is sent to the output pipestage (204), rows are stored in hyperregisters.
When the end of the row is reached, the row is written to RAM. The input data is manipulated by placing the previous row and performing an exclusive-OR operation on the input data, as discussed below. Then, this data is written in the RAM. The previous row is set to 0 during the entire first surface. The previous row is updated depending on which row is in the plane. If the row is the last row in the plane, it is RA
Receives the current data written to M. However, if the row is another row in the plane, it receives and writes the contents of the current RAM address. There are exceptions. For example, during the first surface, the previous row is set to 0. Also, the second
On the surface, the area in the shortr is set to zero. In these cases, the previous row is obviously zeroed to prevent the previous RAM contents from corrupting the hyper-operation.

【0045】 ハイパー_エンコーダ(116)は、eTPCブロックのハイパーダイアゴナルに
沿ってパリティを計算する。ハイパーダイアゴナルのトラバーサル(traversal)
は、eTPC符号のタイプで異なる。eTPC符号が2−Dである場合、ブロッ
クの一部としてブロックに追加される又は別個に存在する、1つのハイパーパリ
ティビット行が存在する。しかしながら、1行よりも多くのハイパーパリティビ
ット行がブロックに加えられてもよい。3−Dブロック符号では、ハイパーパリ
ティの完全な面がエンコーダ(100)によってブロックに追加される。
The hyper_encoder (116) calculates parity along the hyper diagonal of the eTPC block. Hyper Diagonal traversal
Vary depending on the type of eTPC code. If the eTPC code is 2-D, then there is one hyper parity bit row that is either added to the block as part of the block or is present separately. However, more than one row of hyper parity bits may be added to the block. In 3-D block codes, the full plane of hyperparity is added to the block by the encoder (100).

【0046】 データは、ブロックの左上隅から入力される。第1行の場合、データは、出力
のハイパーレジスタへロードされる。行の最後では、データは、直前の行レジス
タを用いて排他的論理和演算を施され、直前の行レジスタに格納される。最後の
eTPCブロックのDATA_RATEの集まりが出力に送られた後、データは
直前の行レジスタに送られる。続いて、結果は、直前の行レジスタから出力パイ
プステージへ送り出される。
Data is input from the upper left corner of the block. In the first row, the data is loaded into the output hyperregister. At the end of the row, the data is XORed with the previous row register and stored in the previous row register. After the last eTPC block's DATA_RATE collection is sent to the output, the data is sent to the previous row register. The result is then sent from the previous row register to the output pipestage.

【0047】 ワードは、完全にhyper_regレジスタにある場合に、RAMに書き込まれる。
そして、アドレスはインクリメントされる。面の最後の行が書き込まれると、ア
ドレスは0にリセットされる。第1面の間、データが書き込まれるのみであり、
全ての読出しは無視される。これに続く面の間、データはRAMから読み出され
、直前の行レジスタに入れられて、ハイパーレジスタ内のデータは同じアドレス
に書き込まれる。最後の面の最後の行の最後のワードが出力パイプラインに送ら
れると、アドレスは0にリセットされる。ハイパーレジスタのワードは、直ちに
出力される。ハイパーレジスタの最後のワードが出力パイプラインに出力される
と、アドレスはインクリメントされる。ハイパービット出力の各行の最後で、ア
ドレスはインクリメントされる。アドレスがyサイズに至ると、出力は終了する
A word is written to RAM if it is entirely in the hyper_reg register.
Then, the address is incremented. The address is reset to 0 when the last row of the surface is written. During the first side only data is written,
All reads are ignored. During the surface that follows, the data is read from RAM, placed in the previous row register, and the data in the hyperregister is written to the same address. The address is reset to 0 when the last word of the last row of the last facet has been sent to the output pipeline. The word in the hyperregister is output immediately. The address is incremented when the last word of the hyperregister is output to the output pipeline. At the end of each line of hyperbit output, the address is incremented. When the address reaches the y size, the output ends.

【0048】 エンコーダ(100)は、2及び3次元符号をエンコードするとして記載されてい
るが、エンコーダ(100)は、より高次元のデータをエンコードしてもよく、上記
の次元に限定されないことに留意すべきである。エンコーダ(100)に入力されて
いるデータが3より高次元であると、エンコーダ(100)は、上記の方法を用いて
、行、列等のデータのサブブロックをエンコードする。
Although the encoder (100) is described as encoding 2 and 3 dimensional codes, the encoder (100) may encode higher dimensional data and is not limited to the above dimensions. It should be noted. If the data being input to the encoder (100) is higher than 3 in size, then the encoder (100) will encode sub-blocks of data such as rows, columns, etc. using the methods described above.

【0049】 また、エンコーダ(100)は、符号短縮をサポートしている。例えば、減らされ
るx、y、及びz行の数は、shortx()、shorty()、及びshoutz()の入力データで
特定される。shoutb入力データは、データの追加ビットによってブロックサイズ
を短くすることに使用できる。これらの入力データにより、エンコーダ(100)は
、如何なる長さのブロックサイズもエンコードできる。ビット短縮はx行の最初
のビットを取り去る。短縮ビットはデータストリームに出力されない。
The encoder (100) also supports code shortening. For example, the number of x, y, and z rows that are reduced is specified by the input data for shortx (), shorty (), and shoutz (). The shoutb input data can be used to reduce the block size by the extra bits of data. With these input data, the encoder (100) can encode a block size of any length. Bit shortening removes the first bit of x rows. The shortened bits are not output in the data stream.

【0050】 ビットは、種々の量で短縮されるので、データ入力は、ブロックに整然と配列
されない。それゆえに、shortb及びshortrはビットをブロック内に並べるために
使用される。特に、shortbは「ビットの短縮量」信号を表し、2−Dブロックか
ら減じられる、行内のビット数を決める。2−Dエンハンスドターボプロダクト
符号では、shortrは0に設定されなければならない。加えて、shortrは、「行の
短縮量」を示し、短縮される第1面のビット数を定める。3−Dブロックでは、
shortrの値は、第1面から短縮される行数を定める。
Since the bits are shortened by various amounts, the data inputs are not arranged in blocks. Therefore shortb and shortr are used to align bits within a block. In particular, shortb represents the "bit shortening amount" signal, which determines the number of bits in a row subtracted from a 2-D block. For 2-D Enhanced Turbo Product code, shortr must be set to 0. In addition, the shortr indicates the "line shortening amount", and defines the number of bits of the first surface to be shortened. In the 3-D block,
The value of shortr defines the number of lines shortened from the first side.

【0051】 図10aのブロックは、2−Dエンハンスドターボプロダクト符号におけるsh
oprtbの使用を示す図である。ビット中の「−」は、行内で短縮されたビットを
示し、絶対的に0である。図10aでは、「−」は、短縮された各行、すなわち
行1のアドレス0乃至4に置かれている。入力データは、面の左上隅からスター
トしないが、その代わりに最後の「−」の後から開始する。これは、データが最
初に格納される位置を変えるので、エンコード過程に影響を与える。しかしなが
ら、パリティ行は、ハイパーエンコードの第1工程で0に初期化されるので、デ
ータの初期位置は、ハイパーパリティチェックの結果又は出力を変化させない。
The block of FIG. 10 a is sh in the 2-D enhanced turbo product code.
FIG. 6 is a diagram showing the use of oprtb. A "-" in a bit indicates a shortened bit in a row and is absolutely 0. In FIG. 10a, a "-" is placed in each shortened row, row 1, at addresses 0-4. The input data does not start in the upper left corner of the face, but instead after the last "-". This affects the encoding process as it changes the location where the data is initially stored. However, since the parity row is initialized to 0 in the first step of hyperencoding, the initial position of the data does not change the result or output of the hyperparity check.

【0052】 図10bは、3−Dエンハンスドターボプロダクト符号における、shortb及び
shortrの使用を示す。shortbを用いた2−Dエンハンスドターボプロダクト符号
と同様に、短縮された行に「−」記号が置かれ、該記号は絶対的に0を示す。再
び、入力データは、データが最初に記録される位置を変更する最後の「−」記号
の後に置かれる。しかしながら、2−Dブロックの場合のように、データの最初
の位置は、ハイパーパリティチェックの結果又は出力を変化させない。ハイパー
パリティ面は0に初期化されているからである。
FIG. 10 b shows shortb and 3-b in 3-D enhanced turbo product code.
Indicates the use of shortr. Similar to the 2-D Enhanced Turbo Product code with shortb, a "-" symbol is placed in the shortened row, which symbol indicates an absolute 0. Again, the input data is placed after the last "-" sign that changes the position where the data is first recorded. However, as in the case of 2-D blocks, the initial position of the data does not change the result or output of the hyper parity check. This is because the hyper parity plane has been initialized to 0.

【0053】 ハイパービットの計算を制御する、hyper_index及びaddrと称する2つのカウ
ンタがある。hyper_indexは入力ベクトルを作成するために使用され、addrはR
AMのアドレスである。shortr及びshortbは、カウンタをプレロードすることに
よって処理される。shortbでは、hyper_indexレジスタが使用される。入ってく
るeTPCのまさしく最初の行は、shortb個のビットを短縮される。入ってくる
コードワードの最初のワードであるenc_startが、データと共に送られた場合、
hyper_indexレジスタは、shortb+1でロードされる。hyper_regレジスタは、D
ATA_RATE受信ビットが配置された場所を除いて全てゼロにされる。この
ポイントから、ビットが入力されると、それらは、hyper_regにロードされる。
続く行では、全てのローディングは、hyper_indexが0にセットされると開始さ
れる。
There are two counters, hyper_index and addr, which control the calculation of hyperbits. hyper_index is used to create the input vector, addr is R
This is the AM address. Shortr and shortb are processed by preloading the counter. In shortb, the hyper_index register is used. The very first row of the incoming eTPC is shortened by shortb bits. If the first word of the incoming codeword, enc_start, is sent with the data,
The hyper_index register is loaded with shortb + 1. hyper_reg register is D
ATA_RATE Receive bits are all zeroed except where they are located. From this point, when bits are input, they are loaded into hyper_reg.
In the lines that follow, all loading begins when hyper_index is set to zero.

【0054】 shortrでは、addrレジスタが使用される。開始時点で、書き込まれた第1ワー
ドのアドレスは、shortrである。RAMは、shortrから満たされる。面の最後で
は、アドレスが0にラップアラウンド(wrap around)する。この時点で、0からs
hort-1までのアドレスは、データをホールドしていない。第2面の間の全ての読
み出しは0にさせられる。アドレスは、3−D符号にのみ生成され、2−D符号
には必要ではない。
In shortr, the addr register is used. At the start, the address of the first word written is shortr. RAM is filled from shortr. At the end of the plane, the address wraps around to 0. At this point, 0 to s
Addresses up to hort-1 do not hold data. All reads between the second side are forced to zero. Addresses are only generated for 3-D code, not for 2-D code.

【0055】 本発明に基づくエンコーダ(100)の構造を記述してきたが、今度は、エンコー
ダ(100)の作用的側面について説明する。図8a−8cは、異なるサイズの幾つ
かのeTPCブロックを示している。2−Dブロックでは、ブロックは、ダイア
ゴナルに沿ったビットを具えており、パリティは、該ダイアゴナルについて計算
される。図8a−8cに示すブロックは、情報ビットに追加される拡張ハミング
符号を含む。図8aでは、ハイパーエンコード後、7x7ブロックが8x7eT
PCブロックになっている。図8bでは、ハイパーエンコード後、15x5ブロ
ックが16x5eTPCブロックになっている。図8cでは、ハイパーエンコー
ド後、4x8ブロックが4x9eTPCブロックになっている。各図において、
ブロックの各ビットの番号は、ビットのアドレス番号を表している。さらに、各
図では、ハイパービットは、記号「h」で表されており、該記号の後ろには、パ
リティが計算されるときに沿う各バイトのアドレス番号がある。各図では、ブロ
ックの行の各アドレスは、(y軸に沿った)次の行では右側に配置される。デー
タは、各ブロックの左隅から1行単位でブロックに入力される。データは、図8
a−8cに示すように、正確に入力される。
Having described the structure of the encoder (100) according to the present invention, the operational aspects of the encoder (100) will now be described. 8a-8c show several eTPC blocks of different sizes. In a 2-D block, the block comprises the bits along the diagonal and the parity is calculated for that diagonal. The blocks shown in Figures 8a-8c include extended Hamming codes added to the information bits. In FIG. 8a, after hyper-encoding, the 7x7 block is 8x7eT.
It is a PC block. In FIG. 8b, after hyper-encoding, the 15x5 block becomes a 16x5e TPC block. In FIG. 8c, after hyper-encoding, the 4x8 block becomes a 4x9e TPC block. In each figure,
The number of each bit of the block represents the address number of the bit. In addition, in each figure, the hyperbits are represented by the symbol "h", followed by the address number of each byte along which the parity is calculated. In each figure, each address in a row of blocks is located to the right in the next row (along the y-axis). Data is input to the block row by row from the left corner of each block. The data is shown in Figure 8.
It is entered correctly, as shown in a-8c.

【0056】 データは、第1行から始まって、行ごとに入力される。データは、x_エンコ
ーダ(110)、y_エンコーダ(112)、及びz_エンコーダ(114)によりエンコード
されており、拡張ハミング符号ビットを含む。最後の行がアレイに入力された後
、配置手段が、複数行又は複数列のような、一連のアレイに作用する。本発明に
基いてeTPCブロックのハイパーパリティビットを計算するために、以下の工
程が行われることが好ましい。1.ブロックのパリティ行をゼロ(0)にする。
つまり、0をパリティ行の全ビットに配置される。2.パリティ行を「回転」、
すなわち1ビットアドレスだけ右へ配置する。この工程は、行又は列に行っても
よい。3.パリティ行と入力ビットで排他的論理和演算を行う。4.結果をパリ
ティ行に格納する。プロセスは、パリティ行と最後の行の排他的論理和演算の結
果がパリティ行に置かれるまで、工程2から繰り返される。最後の行に対する結
果がパリティ行に置かれると、好ましくはパリティ行は右へ1回転され、結果が
出力される。
Data is entered line by line, starting with the first line. The data is encoded by the x_encoder (110), y_encoder (112), and z_encoder (114) and includes extended Hamming code bits. After the last row is input to the array, the placement means act on a series of arrays, such as rows or columns. In order to calculate the hyper parity bits of the eTPC block according to the present invention, the following steps are preferably performed. 1. Set the parity row of the block to zero (0).
That is, 0s are arranged in all bits of the parity row. 2. "Rotate" parity row,
That is, only the 1-bit address is arranged to the right. This step may be performed on rows or columns. 3. Perform an exclusive OR operation on the parity row and the input bit. 4. Store the result in the parity row. The process is repeated from step 2 until the result of the XOR operation of the parity row and the last row is placed in the parity row. When the result for the last row is placed in the parity row, the parity row is preferably rotated one revolution to the right and the result is output.

【0057】 しかしながら、これらの工程は、このように行われる必要はない。データをエ
ンコードする、本発明に基づく上記工程の他の組合せが行われると、同じ結果を
得るであろう。また、パリティ行は1だけ右に配置されるが、パリティ行は他の
如何なる方向に配置されてよいことに留意すべきである。さらに、必ずしも、パ
リティ行は、入力される各行に排他的論理和演算がされた後に1だけ回転される
ことはない。つまり、パリティ行は、2又は3以上のビットアドレスだけ移動さ
れてもよい。
However, these steps need not be performed in this way. Other combinations of the above steps according to the invention for encoding the data will give the same result. Also, it should be noted that while the parity row is placed one to the right, the parity row may be placed in any other direction. Furthermore, the parity row is not necessarily rotated by one after each input row is subjected to an exclusive OR operation. That is, the parity row may be moved by two or more bit addresses.

【0058】 図9は、3−Dエンハンスドターボプロダクト符号の図である。2−Dエンハ
ンスドターボプロダクト符号についての前図のように、ブロックの番号は、ビッ
トアドレスであり、「h」で前置きされた番号はハイパーダイゴナルである。2
−Dエンハンスドターボプロダクト符号とは異なり、3−Dブロックのパリティ
ビットは、それ自体が面として、又は別個の面としてブロックに加えられる。第
1面は、左端のブロックとして示してある。同様に、第2面は左から2番目であ
り、第3面は第2面の右に示してある。さらに、パリティ面は右端に示してある
。2−Dエンハンスドターボプロダクト符号の例のように、ブロックの行の間の
位置関係がある。3−Dエンハンスドターボプロダクト符号では、ビットは、1
列下げられて、パリティチェックがz軸に沿って進むと、1ビット又は列、右へ
移動する。つまり、各面の各行は、先の面について、次行に下がり、1ビット又
は列右へ移動される。引き続く各面では、(前の面の)最後の行は、続く面の第
1行に上げられて、1ビット又は列だけ右へ移動される。
FIG. 9 is a diagram of a 3-D enhanced turbo product code. As in the previous figure for the 2-D Enhanced Turbo Product code, the block number is the bit address and the number prefixed with "h" is hyper-diagonal. Two
Unlike the -D enhanced turbo product code, the parity bits of a 3-D block are added to the block either as a face, either as a face or as a separate face. The first surface is shown as the leftmost block. Similarly, the second surface is the second from the left and the third surface is shown to the right of the second surface. Further, the parity plane is shown at the far right. There is a positional relationship between the rows of the block, as in the example of a 2-D enhanced turbo product code. In the 3-D Enhanced Turbo Product code, the bit is 1.
Moved down one row or column, right, as the parity check progresses down the z axis. That is, each row of each surface is moved down one row or column right to the next row for the previous surface. For each subsequent face, the last row (of the previous face) is raised to the first row of the following face and moved one bit or column to the right.

【0059】 3−D符号のハイパーパリティビットを決定する過程を以下に述べる。データ
は、第1行から始まって、行ごとに入力される。データは、x_エンコーダ(110
)、y_エンコーダ(112)、及びz_エンコーダ(114)によりエンコードされてお
り、拡張ハミング符号ビットを含む。最後の行が面に入力された後、複数行又は
複数列のような一連の面に、配置手段が作用する。本発明に基いてeTPCブロ
ックのハイパーパリティビットを計算するために、以下の工程が行われることが
好ましい。1.ブロックのハイパー面をゼロにする。2.次の面内の各行を「回
転」、すなわち1ビットアドレスだけ右へ配置する。この工程は、行又は列に行
ってもよい。3.ハイパー面と入力ビットで排他的論理和演算を行う。4.結果
をハイパー面に格納する。5.パリティチェックが最後の面まで施されるまで2
乃至4の工程が繰り返される。6.ハイパー面の各行を1ビットアドレスだけ回
転又は移動する。7.面を出力する。
The process of determining the hyper parity bit of the 3-D code will be described below. Data is entered line by line, starting with the first line. The data is x_encoder (110
), Y_encoder (112), and z_encoder (114) and includes extended Hamming code bits. After the last row is entered in the surface, the placement means act on a series of surfaces, such as rows or columns. In order to calculate the hyper parity bits of the eTPC block according to the present invention, the following steps are preferably performed. 1. Zero the hyper side of the block. 2. Each row in the next plane is "rotated", that is, placed one bit address to the right. This step may be performed on rows or columns. 3. The exclusive OR operation is performed on the hyper side and the input bit. 4. Store the result in the hyper side. 5. 2 until the parity check is done to the last face
The steps 4 to 4 are repeated. 6. Rotate or move each row of the hyper surface by 1 bit address. 7. Output the face.

【0060】 しかしながら、これらの工程は、このように行われる必要はない。データをエ
ンコードする、本発明に基づく上記工程の他の組合せが行われると、同じ結果を
得るであろう。また、パリティ行は1だけ右に配置されるが、パリティ行は他の
如何なる方向に配置されてよいことに留意すべきである。さらに、必ずしも、パ
リティ行は、入力される各行に排他的論理和演算がされた後に1だけ回転される
ことはない。つまり、パリティ行は、2又は3以上のビットアドレスだけ移動さ
れてもよい。
However, these steps need not be performed in this way. Other combinations of the above steps according to the invention for encoding the data will give the same result. Also, it should be noted that while the parity row is placed one to the right, the parity row may be placed in any other direction. Furthermore, the parity row is not necessarily rotated by one after each input row is subjected to an exclusive OR operation. That is, the parity row may be moved by two or more bit addresses.

【0061】 本発明の構造原理及び目的の理解を助けるために、本発明は、詳細を含む特定
の実施例について説明された。実施例及び細部を示す、本明細書におけるこのよ
うな説明は、添付された請求の範囲を限定することを意図したものではない。当
該技術分野の通常の知識を有する者には、本発明の精神及び目的から逸脱するこ
となく、説明上選択された本発明の実施例を変更できることは明らかであろう。
To aid in understanding the structural principles and objectives of the present invention, the present invention has been described in terms of specific embodiments including details. Such descriptions in the specification, which show examples and details, are not intended to limit the scope of the appended claims. It will be apparent to those of ordinary skill in the art that modifications can be made to the embodiments of the present invention selected for illustration without departing from the spirit and purpose of the invention.

【図面の簡単な説明】[Brief description of drawings]

【図1】 図1は、本発明に基づいた、2次元符号をエンコードする方法のブロック図であ
る。
FIG. 1 is a block diagram of a method for encoding a two-dimensional code according to the present invention.

【図2】 図2は、本発明に基づいた、3次元符号をエンコードする方法のブロック図であ
る。
FIG. 2 is a block diagram of a method for encoding a three-dimensional code according to the present invention.

【図3】 図3は、本発明に基づいた、2次元符号のエンコーダのブロック図である。[Figure 3] FIG. 3 is a block diagram of a two-dimensional code encoder according to the present invention.

【図4】 図4は、本発明に基づいた、エンコーダモジュールの最高レベルの図である。[Figure 4] FIG. 4 is a top-level diagram of an encoder module according to the present invention.

【図5】 図5は、本発明に基づいた、データパスモジュールの詳細な図である。[Figure 5] FIG. 5 is a detailed diagram of a datapath module according to the present invention.

【図6】 図6は、本発明に基づいた、ハイパーエンコーダの詳細な図である。[Figure 6] FIG. 6 is a detailed diagram of a hyper encoder according to the present invention.

【図7】 図7は、本発明に基づいた、制御モジュールの詳細な図である。[Figure 7] FIG. 7 is a detailed diagram of a control module according to the present invention.

【図8】 図8a、図8b、図8cは、本発明に基づいた、2次元エンハンスドターボプロダ
クト符号を示す。
8a, 8b, 8c show a two-dimensional enhanced turbo product code according to the present invention.

【図9】 図9は、本発明に基づいた、3次元エンハンスドターボプロダクト符号を示す。[Figure 9] FIG. 9 shows a three-dimensional enhanced turbo product code according to the present invention.

【図10】 図10aは、本発明に基づいた、短縮ビットを有する2次元エンハンスドターボ
プロダクト符号を示す。 図10bは、本発明に基づいた、短縮ビットを有する3次元エンハンスドターボ
プロダクト符号を示す。 0
FIG. 10a shows a two-dimensional enhanced turbo product code with shortened bits according to the present invention. FIG. 10b shows a three-dimensional enhanced turbo product code with shortened bits according to the present invention. 0

───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE,TR),OA(BF ,BJ,CF,CG,CI,CM,GA,GN,GW, ML,MR,NE,SN,TD,TG),AP(GH,G M,KE,LS,MW,MZ,SD,SL,SZ,TZ ,UG,ZW),EA(AM,AZ,BY,KG,KZ, MD,RU,TJ,TM),AE,AG,AL,AM, AT,AU,AZ,BA,BB,BG,BR,BY,B Z,CA,CH,CN,CR,CU,CZ,DE,DK ,DM,DZ,EE,ES,FI,GB,GD,GE, GH,GM,HR,HU,ID,IL,IN,IS,J P,KE,KG,KP,KR,KZ,LC,LK,LR ,LS,LT,LU,LV,MA,MD,MG,MK, MN,MW,MX,MZ,NO,NZ,PL,PT,R O,RU,SD,SE,SG,SI,SK,SL,TJ ,TM,TR,TT,TZ,UA,UG,UZ,VN, YU,ZA,ZW (72)発明者 リンズトローム,ブラッドリー ウィリア ム アメリカ合衆国 94306 カリフォルニア, パロアルト,チェリー エスダブリュ 605 (72)発明者 ラドウ,ピーター ショーン アメリカ合衆国 99163 ワシントン,プ ルマン,バリー ロード エヌイー 1805 (72)発明者 ダニエルソン,アラン ロバート アメリカ合衆国 83843 アイダホ,モス コウ,ステファニー レーン 997 Fターム(参考) 5B001 AA02 AA05 AA13 AE04 AE07 5J065 AA01 AA03 AB01 AC01 AD02 AD05 AE06 AF02 AG06 AG09 AH01 AH08 AH21 ─────────────────────────────────────────────────── ─── Continued front page    (81) Designated countries EP (AT, BE, CH, CY, DE, DK, ES, FI, FR, GB, GR, IE, I T, LU, MC, NL, PT, SE, TR), OA (BF , BJ, CF, CG, CI, CM, GA, GN, GW, ML, MR, NE, SN, TD, TG), AP (GH, G M, KE, LS, MW, MZ, SD, SL, SZ, TZ , UG, ZW), EA (AM, AZ, BY, KG, KZ, MD, RU, TJ, TM), AE, AG, AL, AM, AT, AU, AZ, BA, BB, BG, BR, BY, B Z, CA, CH, CN, CR, CU, CZ, DE, DK , DM, DZ, EE, ES, FI, GB, GD, GE, GH, GM, HR, HU, ID, IL, IN, IS, J P, KE, KG, KP, KR, KZ, LC, LK, LR , LS, LT, LU, LV, MA, MD, MG, MK, MN, MW, MX, MZ, NO, NZ, PL, PT, R O, RU, SD, SE, SG, SI, SK, SL, TJ , TM, TR, TT, TZ, UA, UG, UZ, VN, YU, ZA, ZW (72) Inventor Linstrom, Bradley Willia             Mu             United States 94306 California,             Palo Alto, Cherry Es-W             605 (72) Inventor Rad, Peter Shawn             United States 99163 Washington, P             Le Mans, Barry Road N 1805 (72) Inventor Danielson, Alan Robert             United States 83843 Moss, Idaho             Kou, Stephanie Lane 997 F-term (reference) 5B001 AA02 AA05 AA13 AE04 AE07                 5J065 AA01 AA03 AB01 AC01 AD02                       AD05 AE06 AF02 AG06 AG09                       AH01 AH08 AH21

Claims (40)

【特許請求の範囲】[Claims] 【請求項1】複数のシステマティックなブロック符号コードワードを含むn
次元のデータブロックをエンコードする方法であって、 a.データブロックのハイパータイアゴナルに沿ってパリティ計算を行い、パリ
ティ計算のパリティ結果を生成する工程と、 b.データブロックにパリティ結果を追加する工程とを具える方法。
1. An n containing a plurality of systematic block code codewords.
A method of encoding a dimensional data block, comprising: a. Performing a parity calculation along the hyper-tiagonal of the data block and generating a parity result of the parity calculation; b. Adding a parity result to the data block.
【請求項2】さらに、パリティ結果をパリティアレイに格納する工程を具え
、そのパリティアレイは、別個のアレイとしてデータブロックに追加される請求
項1に記載の方法。
2. The method of claim 1, further comprising storing the parity result in a parity array, the parity array being added to the data block as a separate array.
【請求項3】さらに、パリティアレイを回転して、そのパリティアレイに格
納されたパリティ結果を、そのパリティ結果を計算する際に沿ったハイパーダイ
アゴナルにほぼ揃える工程を具える請求項2に記載の方法。
3. The method of claim 2 further comprising the step of rotating the parity array to substantially align the parity results stored in the parity array with the hyper-diagonals along which the parity result was calculated. Method.
【請求項4】さらに、ハイパーダイアゴナルに沿ってパリティ計算を行う工
程が実行される前に、パリティアレイを初期化してパリティビットをゼロに設定
する工程を具える請求項2に記載の方法。
4. The method of claim 2, further comprising the step of initializing the parity array and setting the parity bits to zero before the step of performing parity calculation along the hyper-diagonal is performed.
【請求項5】さらに、パリティ結果をハイパーダイアゴナルにほぼ揃える際
に、エンコードされたブロックデータを出力する工程を具える請求項1に記載の
方法。
5. The method of claim 1, further comprising the step of outputting encoded block data when the parity results are substantially aligned in hyper-diagonal.
【請求項6】データブロックは3次元である請求項1に記載の方法。6. The method according to claim 1, wherein the data block is three-dimensional. 【請求項7】パリティ計算のパリティ結果はパリティ面に格納され、そのパ
リティ面は、別個の面としてブロックデータに追加される請求項6に記載の方法
7. The method of claim 6, wherein the parity result of the parity calculation is stored in a parity plane, which parity plane is added to the block data as a separate plane.
【請求項8】複数の(n−1)次元サブブロックを有するn次元データブロ
ックをエンコードする方法であって、 各サブブロックは、複数のシステマティックなブロック符号コードワードを含
み、 複数のパリティビットを有するパリティサブブロックがデータブロックに追加
されており、 a.パリティサブブロックを、所定数のビットだけ回転された第1サブブロック
と等しくする工程と、 b.n次元ブロック内の第1サブブロックに平行な一連のサブブロックの各々に
ついて、平行なサブブロックとパリティサブブロックでビットワイズ排他的論理
和演算処理をする工程とを具え、そのパリティサブブロックは、適当なビット数
だけ回転している方法。
8. A method for encoding an n-dimensional data block having a plurality of (n-1) -dimensional sub-blocks, each sub-block including a plurality of systematic block code codewords and a plurality of parity bits. A parity sub-block having has been added to the data block, and a. Equalizing a parity sub-block with a first sub-block rotated by a predetermined number of bits; b. for each of a series of sub-blocks parallel to the first sub-block in the n-dimensional block, performing a bitwise exclusive-OR operation on the parallel sub-block and the parity sub-block, the parity sub-block comprising: The method of rotating by an appropriate number of bits.
【請求項9】さらに、各パリティビットがゼロになるようにパリティサブブ
ロックを初期化する工程を含み、この初期化する工程は、パリティサブブロック
が第1面に等しくなる前に行われる請求項8に記載の方法。
9. The method further comprises the step of initializing the parity sub-block such that each parity bit is zero, the step of initializing being performed before the parity sub-block is equal to the first side. The method according to 8.
【請求項10】さらに、エンコードされたデータブロックを出力する工程を
具える請求項8に記載の方法。
10. The method of claim 8, further comprising outputting the encoded data block.
【請求項11】複数の情報ビットを含み、入力源から受信されるn次元のデ
ータブロックをエンコードする方法であって、 a.ブロックの行を受信し、その行を直ちに出力する工程と、 b.行内の情報ビットをエンコードし、エンコードされたデータの第1セットは
第1エンコードスキームに従って生成される工程と、 c.エンコードされたデータの第1セットを出力する工程と、 d.第2エンコードスキームに従って列内の情報ビットをエンコードし、エンコ
ードされたデータの第2セットが生成され、第2セットは、行内の情報ビットに
従って反復的に更新される工程と、 e.パリティエンコードスキームに従って、情報ビットをハイパーダイアゴナル
上でエンコードし、エンコードされたデータのハイパーセットが、行及び列内の
情報ビットと、エンコードされたデータの第1及び第2セットとに従って生成さ
れる工程と、 f.全ての情報ビット、及びエンコードされたデータの全ての一連の第1セット
が出力された後、エンコードされたデータの更新された第2セットを出力する工
程と、 g.エンコードされたデータのハイパーセットを出力する工程とを具える方法。
11. A method of encoding an n-dimensional data block that includes a plurality of information bits and is received from an input source, comprising: a. Receiving a row of blocks and outputting the row immediately; b. Encoding information bits in a row and producing a first set of encoded data according to a first encoding scheme; c. Outputting a first set of encoded data, d. Encoding information bits in a column according to a second encoding scheme to generate a second set of encoded data, the second set being iteratively updated according to the information bits in the rows; e. Encoding information bits on a hyper-diagonal according to a parity encoding scheme and producing a hyperset of encoded data in accordance with the information bits in rows and columns and the first and second sets of encoded data. And f. Outputting all the information bits and the updated second set of encoded data after all the first set of encoded data has been output, g. Outputting a hyperset of encoded data.
【請求項12】さらに、受信された全ての情報ビットがエンコードされるよ
うに、第1エンコードスキームに従って、1行ごとに、エンコードされたデータ
の第2セットをエンコードする工程を具える請求項11に記載の方法。
12. The method further comprising encoding a second set of encoded data row by row according to a first encoding scheme such that all received information bits are encoded. The method described in.
【請求項13】さらに、受信された全ての情報ビットがエンコードされるよ
うに、第2エンコードスキームに従って、1行ごとに、エンコードされたデータ
の第2セットをエンコードする工程を具える請求項11に記載の方法。
13. The method further comprising encoding a second set of encoded data row by row according to a second encoding scheme such that all received information bits are encoded. The method described in.
【請求項14】データブロックは3次元であって、エンコードされたビット
面を含み、その面は行及び列に直交する請求項11に記載の方法。
14. The method of claim 11, wherein the data block is three-dimensional and includes encoded bit planes, the planes being orthogonal to rows and columns.
【請求項15】さらに、 a.第3のエンコードスキームに従って面内の情報ビットをエンコードし、エン
コードされたデータの第3セットが生成され、その第3セットは、行内の情報ビ
ットに応じて反復的に更新される工程と、 b.エンコードされたデータの全ての一連の第2セットが出力された後に、エン
コードされたデータの第3セットを出力する工程とを具える請求項14に記載の
方法。
15. Further comprising: a. Encoding the in-plane information bits according to a third encoding scheme to generate a third set of encoded data, the third set being iteratively updated according to the in-row information bits; b. . 15. The method of claim 14, comprising outputting a third set of encoded data after all the second set of encoded data has been output.
【請求項16】ハイパーパリティアレイはハイパーパリティ面である請求項
14に記載の方法。
16. The method of claim 14, wherein the hyper parity array is a hyper parity plane.
【請求項17】エンコードされたデータの第1セットは、行エンコード格納
アレイに格納され、その行エンコード格納アレイは、複数の行アレイビットを含
む請求項11に記載の方法。
17. The method of claim 11, wherein the first set of encoded data is stored in a row encode storage array, the row encode storage array including a plurality of row array bits.
【請求項18】さらに、全ての行アレイがゼロになるように行エンコード格
納アレイをリセットする工程を具え、そのリセットする工程は、エンコードされ
たデータの第1セットが出力された後に実行される請求項17に記載の方法。
18. The method further comprises resetting the row-encoding storage array such that all row arrays are zero, the resetting step being performed after the first set of encoded data is output. The method according to claim 17.
【請求項19】エンコードされたデータの第2セットは、列エンコード格納
アレイに格納される請求項11に記載の方法。
19. The method of claim 11, wherein the second set of encoded data is stored in a column encode storage array.
【請求項20】エンコードされたデータのハイパーセットは、ハイパーパリ
ティアレイに格納され、そのハイパーパリティアレイは、複数のパリティアレイ
ビットを含む請求項11に記載の方法。
20. The method of claim 11, wherein the hyperset of encoded data is stored in a hyperparity array, the hyperparity array including a plurality of parity array bits.
【請求項21】ハイパーダイアゴナル上でエンコードする工程は、さらに、
a.情報ビットのパリティアレイと、各行についてエンコードされたデータの第
1セット及び第2セットとを反復的にエンコードすることにより、ハイパーパリ
ティアレイを更新する工程と、 b.所定数のビットだけハイパーパリティアレイを回転させる工程とを具えてい
る請求項20に記載の方法。
21. The step of encoding on hyper-diagonal further comprises:
a. Updating the hyper parity array by iteratively encoding the parity array of information bits and the first and second sets of encoded data for each row; b. 21. Rotating the hyper parity array by a predetermined number of bits.
【請求項22】全てのパリティアレイビットがゼロに設定されるようにハイ
パーパリティアレイを初期化する工程を具え、その初期化する工程は、任意の情
報ビットがエンコードされる前に実行される請求項20に記載の方法。
22. The method comprises the step of initializing the hyper parity array such that all parity array bits are set to zero, the step of initializing being performed before any information bits are encoded. Item 21. The method according to Item 20.
【請求項23】複数のシステマティックなブロック符号コードワードを有す
るデータブロックをエンコードするデータパスモジュールを具え、 各コードワードは、複数の情報ビット及び複数の誤り訂正ビットを含み、 データパスモジュールは、パイパーダイアゴナル上でブロック符号コードワー
ドのストリングをエンコードすると共に、そのストリングにパリティ計算を施し
て、各ストリングのパリティ結果が生成されるエンコーダ。
23. A datapath module encoding a data block having a plurality of systematic block code codewords, each codeword including a plurality of information bits and a plurality of error correction bits, the datapath module comprising a piper. An encoder that encodes a string of block code codewords on a diagonal and performs a parity calculation on the string to produce a parity result for each string.
【請求項24】各ストリングのパリティ結果は、パリティアレイに格納され
る請求項23に記載のエンコーダ。
24. The encoder of claim 23, wherein the parity result for each string is stored in a parity array.
【請求項25】さらに、データブロックを受信する入力モジュールを具える
請求項23に記載のエンコーダ。
25. The encoder of claim 23, further comprising an input module that receives the block of data.
【請求項26】さらに、エンコードされたデータブロックを出力する出力モ
ジュールを具える請求項23に記載のエンコーダ。
26. The encoder of claim 23, further comprising an output module that outputs the encoded data block.
【請求項27】データパスモジュールは、さらに、 a.データブロックからの複数の行をエンコードし、それら行に誤り訂正ビット
を追加する第1エンコーダモジュールと、 b.データブロックからの複数の列をエンコードし、エンコードされたデータブ
ロックが形成されるように、それら列に誤り訂正ビットを追加する第2エンコー
ダモジュールとを具える請求項23に記載のエンコーダ。
27. The datapath module further comprises: a. A first encoder module encoding multiple rows from the data block and adding error correction bits to the rows; b. 24. The encoder of claim 23, comprising a second encoder module that encodes multiple columns from a data block and adds error correction bits to the columns so that encoded data blocks are formed.
【請求項28】さらに、全てのエンコーダモジュールと接続され、エンコー
ドされたデータブロックを出力する出力マルチプレクサを具える請求項27に記
載のエンコーダ。
28. An encoder according to claim 27, further comprising an output multiplexer connected to all encoder modules and outputting encoded data blocks.
【請求項29】データパスモジュールは、さらに、データブロックからの複
数の面をエンコードし、それら面に誤り訂正ビットを追加する第3エンコーダモ
ジュールを具える請求項27に記載のエンコーダ。
29. The encoder of claim 27, wherein the datapath module further comprises a third encoder module that encodes multiple planes from the data block and adds error correction bits to those planes.
【請求項30】複数の情報ビットを有するデータブロックをエンコードし、
情報ビットを受信した後、その情報ビットを直ちに出力するエンコーダであって
、 a.ブロックの行内の情報ビットをエンコードし、エンコードされた行ビットの
セットを生成する第1エンコーダモジュールと、 b.ブロックの列内の情報ビットをエンコードし、各行内の情報ビットに従って
エンコードされた列ビットのセットを生成し、第1エンコーダモジュールにより
エンコードされた各行について、エンコードされた列ビットを更新する第2エン
コーダモジュールと、 c.全ての情報ビットとエンコードされた全てのビットとを、ブロックのダイア
ゴナル上でハイパーダイアゴナルエンコードして、パリティ結果のセットを生成
するハイパーエンコーダモジュールとを具え、 各パリティ結果は、エンコードされたビットのダイアゴナルに対応しているエ
ンコーダ。
30. Encoding a data block having a plurality of information bits,
An encoder that outputs an information bit immediately after receiving the information bit, comprising: a. A first encoder module that encodes information bits within a row of a block and produces a set of encoded row bits; b. A second encoder that encodes the information bits in the columns of the block, produces a set of column bits encoded according to the information bits in each row, and updates the encoded column bits for each row encoded by the first encoder module. A module, c. A hyper-encoder module that hyper-diagonally encodes all information bits and all encoded bits on the block's diagonal to produce a set of parity results, each parity result being a diagonal of the encoded bits. Compatible encoder.
【請求項31】ハイパーエンコーダはパリティアレイを回転させ、各パリテ
ィ結果は対応するダイアゴナルに揃えられる請求項30に記載のエンコーダ。
31. The encoder of claim 30, wherein the hyperencoder rotates the parity array and each parity result is aligned with the corresponding diagonal.
【請求項32】さらに、ブロックの面内の情報ビットをエンコードする第3
エンコーダモジュールを具え、その第3エンコーダモジュールは、各行及び列内
の情報ビットに従って、エンコードされた面ビットのセットを生成し、エンコー
ドされた行及び列ビットの各セットに従って、エンコードされた面ビットを更新
する請求項30に記載のエンコーダ。
32. A third encoding of information bits in the plane of the block.
An encoder module is provided, the third encoder module generating a set of encoded surface bits according to the information bits in each row and column, and encoding the encoded surface bits according to each set of encoded row and column bits. The encoder according to claim 30, which is updated.
【請求項33】第1エンコーダモジュールは、エンコードされた行ビットの
セットを出力する請求項30に記載のエンコーダ。
33. The encoder of claim 30, wherein the first encoder module outputs a set of encoded row bits.
【請求項34】第2エンコーダモジュールは、エンコードされた行ビットの
全てのセットが出力された後に、エンコードされた列ビットのセットを出力する
請求項33に記載のエンコーダ。
34. The encoder of claim 33, wherein the second encoder module outputs the set of encoded column bits after all the sets of encoded row bits have been output.
【請求項35】ハイパーエンコーダモジュールは、エンコードされた全ての
行ビット及びエンコードされた全ての列ビットが出力された後に、パリティ結果
のセットを出力する請求項34に記載のエンコーダ。
35. The encoder of claim 34, wherein the hyperencoder module outputs the set of parity results after all encoded row bits and all encoded column bits have been output.
【請求項36】、複数の行及び列に並べられた複数の情報ビットを有するブ
ロックデータを、エンコードされたブロックデータにエンコードするエンコーダ
であって、 a.データブロックを受信する手段を具えており、受信された情報ビットは出力
手段によって直ちに出力され、 b.第1エンコードスキームに従って各行をエンコードし、その第1エンコード
スキームによってエンコードされた各行に対する行エンコード結果を生成する第
1手段と、 c.第2エンコードスキームに従って各列をエンコードし、その第2エンコード
スキームによってエンコードされた各列に対する列エンコード結果を生成し、そ
の行エンコード結果は、第1手段によりエンコードされた各行について反復的に
更新される第2手段と、 d.エンコードされたブロックデータをハイパーダイアゴナル上でエンコードし
、エンコードされたデータブロック内の対応する各ダイアゴナルについてハイパ
ーパリティ結果を生成する手段とを具えるエンコーダ。
36. An encoder for encoding block data having a plurality of information bits arranged in a plurality of rows and columns into encoded block data, comprising: a. Means for receiving a block of data, the received information bits being immediately output by the output means, b. First means for encoding each row according to a first encoding scheme and producing a row encoding result for each row encoded by the first encoding scheme; c. Encoding each column according to a second encoding scheme and producing a column encoding result for each column encoded by the second encoding scheme, the row encoding result being iteratively updated for each row encoded by the first means. Second means for d. Encoder for encoding the encoded block data on the hyper-diagonal and producing a hyper-parity result for each corresponding diagonal in the encoded data block.
【請求項37】複数の情報ビットを有するデータブロックを、エンコードさ
れたブロックデータにエンコードし、情報ビットを受信した後、直ちに情報ビッ
トを出力するエンコーダであって、 a.ブロックの行内の情報ビットをエンコードし、エンコードされた行ビットの
セットを生成する第1エンコーダモジュールと、 b.ブロックの列内の情報ビットをエンコードし、各行内の情報ビットに従って
、エンコードされた列ビットのセットを生成し、第1エンコーダモジュールによ
りエンコードされた各行について、エンコードされた列ビットを更新する第2エ
ンコーダモジュールとを具えるエンコーダ。
37. An encoder that encodes a data block having a plurality of information bits into encoded block data, and outputs the information bits immediately after receiving the information bits, comprising: a. A first encoder module that encodes information bits within a row of a block and produces a set of encoded row bits; b. A second encoding encoded information bits in columns of the block, producing a set of encoded column bits according to the information bits in each row, updating the encoded column bits for each row encoded by the first encoder module; An encoder with an encoder module.
【請求項38】さらに、エンコードされたブロックデータをハイパーダイア
ゴナル上でエンコードし、パリティ結果のセットを生成し、各パリティ結果はエ
ンコードされた各ダイアゴナルに対応している、ハイパーエンコーダモジュール
を具えている請求項37に記載のエンコーダ。
38. A hyper-encoder module is further provided for encoding the encoded block data on a hyper-diagonal to produce a set of parity results, each parity result corresponding to a respective encoded diagonal. The encoder according to claim 37.
【請求項39】ハイパーエンコーダモジュールは、パリティ結果のセットを
、パリティアレイとしてエンコードされたデータブロックに追加する請求項38
に記載のエンコーダ。
39. The hyperencoder module adds the set of parity results to a data block encoded as a parity array.
The encoder described in.
【請求項40】さらに、ブロックの面内の情報ビットをエンコードする第3
エンコーダモジュールを具え、その第3エンコーダモジュールは、各行及び列の
情報ビットに従ってエンコードされた面ビットのセットを生成し、第1エンコー
ダモジュールによりエンコードされた各行と、第2エンコーダモジュールにより
エンコードされた各列とについて、エンコードされた面ビットを更新する請求項
37に記載のエンコーダ。
40. A third encoding of information bits within a plane of the block.
An encoder module is provided, the third encoder module generating a set of surface bits encoded according to the information bits of each row and column, each row encoded by the first encoder module and each row encoded by the second encoder module. 38. The encoder of claim 37, which updates the encoded face bits for columns and.
JP2001567139A 2000-03-14 2001-03-14 Enhanced turbo product code Pending JP2003527029A (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US18934500P 2000-03-14 2000-03-14
US60/189,345 2000-03-14
PCT/US2001/008101 WO2001069797A2 (en) 2000-03-14 2001-03-14 Enhanced turbo product codes

Publications (1)

Publication Number Publication Date
JP2003527029A true JP2003527029A (en) 2003-09-09

Family

ID=22696908

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001567139A Pending JP2003527029A (en) 2000-03-14 2001-03-14 Enhanced turbo product code

Country Status (5)

Country Link
EP (1) EP1273095A2 (en)
JP (1) JP2003527029A (en)
AU (1) AU2001250837A1 (en)
CA (1) CA2402257C (en)
WO (1) WO2001069797A2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117650870A (en) * 2023-12-06 2024-03-05 北京荷智科技有限公司 Communication method, system, equipment and medium based on longitudinal coding error correction

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5024819A (en) * 1973-07-07 1975-03-17
JPS61147619A (en) * 1984-12-21 1986-07-05 Sony Corp Error correction system
US4796260A (en) * 1987-03-30 1989-01-03 Scs Telecom, Inc. Schilling-Manela forward error correction and detection code method and apparatus
JPH0756757A (en) * 1993-08-10 1995-03-03 Fujitsu Ltd Method for detecting/correcting error by high-dimensional matrix

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0519669A3 (en) * 1991-06-21 1994-07-06 Ibm Encoding and rebuilding data for a dasd array

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5024819A (en) * 1973-07-07 1975-03-17
JPS61147619A (en) * 1984-12-21 1986-07-05 Sony Corp Error correction system
US4796260A (en) * 1987-03-30 1989-01-03 Scs Telecom, Inc. Schilling-Manela forward error correction and detection code method and apparatus
JPH0756757A (en) * 1993-08-10 1995-03-03 Fujitsu Ltd Method for detecting/correcting error by high-dimensional matrix

Also Published As

Publication number Publication date
AU2001250837A1 (en) 2001-09-24
CA2402257C (en) 2010-04-13
EP1273095A2 (en) 2003-01-08
WO2001069797A2 (en) 2001-09-20
WO2001069797A3 (en) 2002-02-28
CA2402257A1 (en) 2001-09-20

Similar Documents

Publication Publication Date Title
US7356752B2 (en) Enhanced turbo product codes
US6385751B1 (en) Programmable, reconfigurable DSP implementation of a Reed-Solomon encoder/decoder
US5612693A (en) Sliding window data compression using a toroidal bit shift register
US6639865B2 (en) Memory device, method of accessing the memory device, and reed-solomon decoder including the memory device
US6763494B2 (en) Turbo product code decoder
JP4634387B2 (en) In-place (IN-PLACE) data deinterleaving (DEINTERLEAVING)
US8321746B2 (en) Systems and methods for quasi-cyclic LDPC code production and decoding
JP2000068862A (en) Error correction coder
EP1490976A2 (en) Method for iterative hard-input forward error correction
JPH0730439A (en) Operation of cyclic viterbi decoder
CN101800560A (en) Method for expanding error correcting capability of BCH (Broadcast Channel) encoding and decoding in Flash controller
US8924829B2 (en) Device and method for turbo-encoding a block of data
WO2019096184A1 (en) Method and device for decoding staircase code, and storage medium
JPS63275225A (en) Error correction device
US7743287B2 (en) Using SAM in error correcting code encoder and decoder implementations
JPH07212336A (en) Reduction length trace back
EP1295401B1 (en) Viterbi decoding with path metric update implemented in the order of bit-slices
JP2003527029A (en) Enhanced turbo product code
US6691275B1 (en) Encoder with vector-calculated disparity logic
CN113014269A (en) NAND Flash controller with error correction capability and control method
JP3628013B2 (en) Signal transmitting apparatus and encoding apparatus
CN113839679B (en) Huffman decoding system, method, equipment and computer readable storage medium
CN111106837B (en) LDPC decoding method, decoding device and storage medium
JP3253906B2 (en) Data processing device and data processing method
JP3728011B2 (en) Error correction method and error correction apparatus

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080222

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101203

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101221

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110712