JP2013201479A - Encoding device, storage device and encoding method - Google Patents
Encoding device, storage device and encoding method Download PDFInfo
- Publication number
- JP2013201479A JP2013201479A JP2012066964A JP2012066964A JP2013201479A JP 2013201479 A JP2013201479 A JP 2013201479A JP 2012066964 A JP2012066964 A JP 2012066964A JP 2012066964 A JP2012066964 A JP 2012066964A JP 2013201479 A JP2013201479 A JP 2013201479A
- Authority
- JP
- Japan
- Prior art keywords
- encoding
- data
- data block
- parity
- circuit
- 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
Links
Images
Landscapes
- Error Detection And Correction (AREA)
Abstract
Description
本実施形態は、符号化装置、記憶装置および符号化方法に関する。 The present embodiment relates to an encoding device, a storage device, and an encoding method.
従来のBCH符号化等を行う符号化装置では、復号時の復号化装置への入力順と整合させるため、決められた順番にデータを符号化装置へ入力して符号化する。符号化装置へのデータの入力順番を変更すると、復号化装置のデータの入力順と整合しなくなり復号することができない。 In a conventional encoding apparatus that performs BCH encoding or the like, data is input to the encoding apparatus and encoded in a predetermined order in order to match the input order to the decoding apparatus at the time of decoding. If the data input order to the encoding device is changed, the data input order of the decoding device is not matched and decoding cannot be performed.
本発明の実施形態は、符号化装置へのデータの入力順に自由度を持たせた符号化装置、記憶装置および符号化方法を提供する。 Embodiments of the present invention provide an encoding device, a storage device, and an encoding method that have degrees of freedom in the order of data input to the encoding device.
本願発明の一態様によれば、L(Lは2以上の整数)個のデータブロックで構成される符号化対象データを符号化する符号化装置であって、データブロックに対して符号化処理を行う符号化回路と、符号化処理により生成されたパリティに基づいて、データブロックごとに符号化対象データ内の前記データブロックの位置に応じたパリティを生成するL個の位置調整回路と、を備える。 According to one aspect of the present invention, there is provided an encoding device that encodes encoding target data composed of L (L is an integer of 2 or more) data blocks, and performs encoding processing on the data blocks. An encoding circuit to perform, and L position adjustment circuits that generate a parity corresponding to the position of the data block in the data to be encoded for each data block based on the parity generated by the encoding process. .
以下に添付図面を参照して、実施形態にかかる符号化装置、記憶装置および符号化方法を詳細に説明する。なお、これらの実施形態により本発明が限定されるものではない。 Exemplary embodiments of an encoding device, a storage device, and an encoding method will be described below in detail with reference to the accompanying drawings. Note that the present invention is not limited to these embodiments.
図1は、第1の実施の形態にかかる符号化装置の構成例を示すブロック図である。図1に示すように、本実施の形態の符号化装置は、ECC(Error Checking and Correction)符号化回路(符号化回路)1と、位置調整回路2と、を備える。
FIG. 1 is a block diagram illustrating a configuration example of an encoding device according to the first embodiment. As shown in FIG. 1, the encoding apparatus according to the present embodiment includes an ECC (Error Checking and Correction) encoding circuit (encoding circuit) 1 and a
なお、本実施の形態では、符号化装置が生成する符号としてBCH符号を用いる例を説明するが、符号化装置が生成する符号は、リードソロモン符号(RS符号)等の他の誤り訂正符号であってもよいし、CRC(Cyclic Redundancy Check)等の誤り検出符号であってもよく、BCH符号に限定されない。 In this embodiment, an example in which a BCH code is used as a code generated by the encoding device will be described. However, the code generated by the encoding device is another error correction code such as a Reed-Solomon code (RS code). It may be an error detection code such as CRC (Cyclic Redundancy Check), and is not limited to a BCH code.
比較例の符号化装置では、復号時の復号化装置への入力順と整合させるため、決められた順番にデータを符号化装置へ入力して符号化する。例えば、1つの符号化対象データが複数のデータブロックで構成される場合、決められた順番にデータブロックを入力する必要がある。このため、データブロックの到着順が符号化装置への入力順と異なる場合、到着したデータブロックをバッファに格納しておき、入力順に並べなおして符号化装置へ入力することになる。このため、バッファが必要となるとともに符号化処理の速度も低下する。 In the encoding device of the comparative example, data is input to the encoding device and encoded in a predetermined order in order to match the input order to the decoding device at the time of decoding. For example, when one encoding target data is composed of a plurality of data blocks, it is necessary to input the data blocks in a predetermined order. For this reason, when the arrival order of the data blocks is different from the input order to the encoding apparatus, the arrived data blocks are stored in the buffer, rearranged in the input order, and input to the encoding apparatus. For this reason, a buffer is required and the speed of the encoding process is also reduced.
図2は、符号化対象データが複数のデータブロックで構成される場合のデータ構成例を示す図である。図2の例では、符号化対象データは、データブロック#0からデータブロック#NB(NBは1以上の整数)までのNB+1個のデータブロックで構成される。図2に示す符号化対象データに基づいて符号語を生成する場合、復号時のデータ入力順と一致させるため、一般に、データブロック#0、データブロック#1、データブロック#2、…等のようにあらかじめ定められた順に符号化装置へデータが入力される。あらかじめ定められた順に符号化装置へデータを入力しない場合でも、復号化装置ではあらかじめ定められた順にデータを入力するので、符号化と復号化でデータの入力順が異なることになり正しく復号できない。符号化装置へのデータの入力順を管理して、復号化装置が符号化対象データごとに入力順を変更することも考えられるが、この場合、管理データが膨大となりまた処理速度も低下する。
FIG. 2 is a diagram illustrating a data configuration example in a case where the encoding target data includes a plurality of data blocks. In the example of FIG. 2, the encoding target data includes NB + 1 data blocks from
図3は、比較例の符号化装置を用いた符号化復号化システムにおけるデータ入力順の一例を示す図である。図3は、比較例の符号化装置であるECC符号化回路101におけるデータ入力順の一例を示す図である。図3では、図の簡略化のためNB=3とし、符号化対象データがNB+1個のデータブロックで構成される場合のデータ入力順(データブロック#0、データブロック#1、データブロック#2、データブロック#3の順)の一例を示している。ECC復号化回路102では、データとECC符号化回路101により生成されたパリティとに基づいて復号処理を行う。この際、ECC復号化回路102に入力されるデータの入力順は、ECC符号化回路101への入力順と同じである。図4は、ECC復号化回路102へのデータの入力順の一例を示す図である。図4では、符号化処理において図3で示した入力順でデータが入力された場合の、ECC復号化回路102へのデータの入力順を示している。
FIG. 3 is a diagram illustrating an example of a data input order in an encoding / decoding system using an encoding apparatus according to a comparative example. FIG. 3 is a diagram illustrating an example of a data input order in the
例えば、図2のデータ構成例で、データブロック#0、データブロック#1、データブロック#2、データブロック#3の順に復号化を行うことが定められている場合に、データブロック#3がデータブロック#0、#1、#2より先に符号化装置へ到着したとする。
For example, in the data configuration example of FIG. 2, when it is determined that decoding is performed in the order of
図3に示す比較例の構成例において、データブロック#3がデータブロック#1、#2より先にECC符号化回路101へ到着したとする。この場合、ECC符号化回路101は、データブロック#0、#1、#2を入力する前にデータブロック#3を入力することはできないため、データブロック#0、#1、#2が到着するまでデータブロック#3を保持しつつ待機することになる。
In the configuration example of the comparative example shown in FIG. 3, it is assumed that the
これに対し、データブロック#3をデータブロック#0、#1、#2より先に入力して符号化を行うことができれば、データブロック#3を保持する必要はなく、また符号化処理の開始を待機する必要もない。例えば、符号化対象データ内の任意の位置の一部のデータを用いて符号化処理を行うことができれば、データブロック#3を先に入力することができ、符号化処理の開始を待機する必要もない。ただし、データブロック#3を用いて単に符号化処理を行っただけでは、データブロック#3だけデータ内のビットに対応した符号語が生成されるだけである。したがって、データブロック#3、データブロック#0、#1、データブロック#2を順に符号化するだけでは、符号化対象データ内のNB+1個のデータブロックにそれぞれ対応するNB+1個の符号語ができるだけであり、符号化対象データ全体が符号化されたことを前提として復号するECC復号化回路102では復号することができない。
On the other hand, if
任意の位置の一部のデータを用いて符号化処理を行う位置調整機能がない場合、実施方法によって以下の2つの問題が生じる。
(1)NB+1個のデータブロックに対してそれぞれ符号化を実施する場合は、NB+1個のデータブロックにそれぞれ対応するNB+1個の符号語ができるだけで、1個に符号語に統合することができない。
(2)NB+1個のデータブロックをある決まった順番で(符号化回路へ先に入力されたデータブロックのパリティを中間結果として後ろのデータブロックのパリティ計算の初期値にする)符号化を実施する場合は、NB+1個のデータブロックのこの順番だけに対応する1個の符号語ができるから、この順番でNB+1個のデータブロックを複号化回路に入力しなければならない。逆に、複号化回路へのデータの入力順番が決まったら、符号化回路へのデータ入力の順番も決まってしまう、という依存関係がある。
When there is no position adjustment function for performing encoding processing using a part of data at an arbitrary position, the following two problems occur depending on the implementation method.
(1) When encoding is performed for each of NB + 1 data blocks, NB + 1 codewords corresponding to NB + 1 data blocks are possible, and cannot be integrated into one codeword.
(2) Encoding NB + 1 data blocks in a certain order (using the parity of the data block input first to the encoding circuit as an intermediate result as the initial value for the parity calculation of the subsequent data block) In this case, since one code word corresponding to only this order of the NB + 1 data blocks is generated, the NB + 1 data blocks must be input to the decoding circuit in this order. On the contrary, there is a dependency relationship that if the data input order to the decoding circuit is determined, the data input order to the encoding circuit is also determined.
本実施の形態では、ECC符号化回路1が符号化対象データ内の任意位置の一部のデータを用いて符号化処理を行う。そして、符号化対象データ全体が符号化されたことを前提として復号した場合に正しく復号することができるように、位置調整回路2がECC符号化回路1による符号化処理で生成されたパリティに対して位置調整を行う。位置調整回路2は、符号化対象データ内の一部のデータを入力として符号化を行う場合に、当該データの符号化対象データ内の位置に応じて符号化処理により生成されたパリティに対してビット位置の調整を行う。これにより、例えば、データブロック#3、データブロック#0、データブロック#1、データブロック#2というように、復号化処理での入力順と異なる順で符号化処理を行ったとしても、位置調整後の各データブロックのパリティを用いて、決められた順序で符号化対象データ全体が符号化されたことを前提とした復号処理により復号可能なパリティを生成することができる。以降、決められた順序で符号化対象データ全体が符号化されたことを前提とした復号処理を、規定復号処理という。
In the present embodiment, the
具体的には、位置調整回路2は、例えば、ECC符号化回路1が生成する符号語に対して、符号化対象データ内の実際のデータが存在しない部分に0が入力されたことに相当する処理(以下0パディングという)を実施する。
Specifically, the
ここで、上記のような位置調整を行うことにより、規定復号処理により復号可能なパリティを生成することが可能なことを説明する。ここでは、ECC符号化回路1が巡回符号を生成するとして説明する。kビットの情報(図2の符号化対象データに相当)を(d0,d1,…,dk-1)とするとき、nビットの巡回符号(c0,c1,…,cm-1,d0,d1,…,dk-1)を生成するとする。(c0,c1,…,cm-1)は検査ビット(パリティ)であり、n=m+kである。
Here, it will be described that by performing the position adjustment as described above, it is possible to generate a decodable parity by the prescribed decoding process. Here, a description will be given assuming that the
nビットの巡回符号(c0,c1,…,cm-1,d0,d1,…,dk-1)を作成するには、次の式(1)で表されるように、生成多項式G(x)による割り算を実施する。P(x)は、情報ビットに対応する多項式であり、F(x)は、巡回符号(符号語)に対応する多項式である。 To create an n-bit cyclic code (c 0 , c 1 ,..., c m−1 , d 0 , d 1 ,..., d k− 1), as expressed by the following equation (1): Then, division by the generator polynomial G (x) is performed. P (x) is a polynomial corresponding to the information bits, and F (x) is a polynomial corresponding to the cyclic code (code word).
上記の式(1)に示した割り算を行った余りR(x)が、検査ビット(c0,c1,…,cm-1)に対応する多項式となる。この検査ビットを情報ビット(d0,d1,…,dk-1)に付加することにより、nビットの巡回符号(c0,c1,…,cm-1,d0,d1,…,dk-1)が得られる。 The remainder R (x) obtained by performing the division shown in the above equation (1) is a polynomial corresponding to the check bits (c 0 , c 1 ,..., C m−1 ). By adding this check bit to the information bits (d 0 , d 1 ,..., D k-1 ), n-bit cyclic codes (c 0 , c 1 ,..., C m−1 , d 0 , d 1). , ..., d k-1 ).
F(x)、G(x)、R(x)は、以下の式(2)で表すことができる。 F (x), G (x), and R (x) can be represented by the following formula (2).
すなわち、上記(1)の割り算の商をQ(x)とするとき、F(x)は、以下の式(3)で表すことができる。
F(x)=G(x)Q(x)=xn-kP(x)+R(x) …(3)
That is, when the quotient of the division in (1) is Q (x), F (x) can be expressed by the following equation (3).
F (x) = G (x) Q (x) = x nk P (x) + R (x) (3)
kビットの情報ビットをt個のデータブロックに分け、0次の項に対応するビット位置から順に1番目のデータブロック、2番目のデータブロック、…とするとき、1番目のデータブロックをiビット、1番目と2番目のデータブロックの合計のビット数をjビット、1番目からt−1番目までのデータブロックの合計のビット数をlとする。このとき、P(x)は、下記の式(4)に示すように各データブロックに対応する多項式P1(x),P2(x),P3(x),…,Pt(x)を加算したものとなる。 When k bits of information bits are divided into t data blocks, and the first data block, the second data block,... are sequentially from the bit position corresponding to the 0th order term, the first data block is i bits. The total number of bits of the first and second data blocks is j bits, and the total number of bits of the first to t−1th data blocks is l. At this time, P (x) is a polynomial P 1 (x), P 2 (x), P 3 (x),..., P t (x) corresponding to each data block as shown in the following equation (4). ) Is added.
上記の式(4)に示すように、各データブロックに対応する多項式P1(x),P2(x),P3(x),…,Pt(x)では、各データブロックに対応するビット位置に対応する項では情報に対応する値が乗算されているが、それ以外の項では0が乗算されている。 As shown in the above equation (4), the polynomials P 1 (x), P 2 (x), P 3 (x),..., P t (x) corresponding to each data block correspond to each data block. The term corresponding to the bit position to be multiplied is multiplied by the value corresponding to the information, but 0 is multiplied in the other terms.
上記式(3)、(4)により、F(x)は式(5)で表すことができる。 From the above formulas (3) and (4), F (x) can be expressed by formula (5).
P1(x),P2(x),P3(x),…,Pt(x)に対する検査ビットの多項式をそれぞれR1(x),R2(x),R3(x),…,Rt(x)とすると、以下に示すとおり、{R1(x)+R2(x)+R3(x)+…+Rt(x)}/G(x)の余りもR(x)となる。 The check bit polynomials for P 1 (x), P 2 (x), P 3 (x),..., P t (x) are R 1 (x), R 2 (x), R 3 (x), ..., R t (x), the remainder of {R 1 (x) + R 2 (x) + R 3 (x) + ... + R t (x)} / G (x) is R (x )
Q(x)は、上記(1)の商であり、R(x)は、上記(1)の余りであるから、以下の式(6)となる。
xn-kP(x)/G(x)=Q(x)+R(x)/G(x) …(6)
上記式(6)と、上記式(4)より、以下の式(7)、(8)となる。
xn-k{P1(x)+P2(x)+…+Pt(x)}/G(x)
=Q(x)+R(x)/G(x) …(7)
xn-k{P1(x)+P2(x)+…+Pt(x)}/G(x)
=xn-kP1(x)/G(x)+xn-kP2(x)/G(x)+…+xn-kPt(x)/G(x)
…(8)
Since Q (x) is the quotient of (1) above, and R (x) is the remainder of (1) above, the following equation (6) is obtained.
x nk P (x) / G (x) = Q (x) + R (x) / G (x) (6)
From the above formula (6) and the above formula (4), the following formulas (7) and (8) are obtained.
x nk {P 1 (x) + P 2 (x) +... + P t (x)} / G (x)
= Q (x) + R (x) / G (x) (7)
x nk {P 1 (x) + P 2 (x) +... + P t (x)} / G (x)
= X nk P 1 (x) / G (x) + x nk P 2 (x) / G (x) +... + X nk P t (x) / G (x)
(8)
上記式(8)中のxn-kPi(x)/G(x)の商をQi(x)、余りをRi(x)とすると、以下の式(9)が成り立つ。
xn-kPi(x)/G(x)=Qi(x)+Ri(x)/G(x) …(9)
If the quotient of x nk P i (x) / G (x) in the above equation (8) is Q i (x) and the remainder is R i (x), the following equation (9) is established.
x nk P i (x) / G (x) = Q i (x) + R i (x) / G (x) ... (9)
以上の式(7)、(8)、(9)より、以下の式(10)、(11)が導かれる。
Q1(x)+R1(x)/G(x)+Q2(x)+R2(x)/G(x)+
…+Qt(x)+Rt(x)/G(x)=xn-kP(x)/G(x)
=Q(x)+R(x)/G(x)…(10)
{R1(x)+R2(x)+…+Rt(x)}/G(x)
=Q(x)−Q1(x)−Q1(x)−…−Qt(x)+R(x)/G(x)…(11)
上記式(11)により、{R1(x)+R2(x)+R3(x)+…+Rt(x)}/G(x)の余りもR(x)となる。
From the above formulas (7), (8), and (9), the following formulas (10) and (11) are derived.
Q 1 (x) + R 1 (x) / G (x) + Q 2 (x) + R 2 (x) / G (x) +
... + Q t (x) + R t (x) / G (x) = x nk P (x) / G (x)
= Q (x) + R (x) / G (x) (10)
{R 1 (x) + R 2 (x) +... + R t (x)} / G (x)
= Q (x) -Q 1 ( x) -Q 1 (x) - ... -Q t (x) + R (x) / G (x) ... (11)
From the above equation (11), the remainder of {R 1 (x) + R 2 (x) + R 3 (x) +... + R t (x)} / G (x) is also R (x).
R1(x)+R2(x)+R3(x)+…+Rt(x)の最高次数はR(x)と同じm−1次であるから、R(x)は、以下の式(12)に示すようにR1(x),R2(x),R3(x),…,Rt(x)の加算(排他的論理和)となる。
R1(x)+R2(x)+R3(x)+…+Rt(x)=R(x) …(12)
Since the highest order of R 1 (x) + R 2 (x) + R 3 (x) +... + R t (x) is the same m−1 order as R (x), R (x) is expressed by the following formula ( 12), R 1 (x), R 2 (x), R 3 (x),..., R t (x) are added (exclusive OR).
R 1 (x) + R 2 (x) + R 3 (x) +... + R t (x) = R (x) (12)
このように、P1(x),P2(x),P3(x),…,Pt(x)に基づいて、R1(x),R2(x),R3(x),…,Rt(x)を求めておけば、kビットの情報に対応する検査ビットR(x)を求めることができる。以上のことから、R1(x),R2(x),R3(x),…,Rt(x)の算出順はどのような順でもよいことになる。このため、データブロックの到着順に符号化を行ったり、複数のデータブロックの符号化を並列したりして演算することが可能となる。 Thus, based on P 1 (x), P 2 (x), P 3 (x),..., P t (x), R 1 (x), R 2 (x), R 3 (x) ,..., R t (x), the check bit R (x) corresponding to k-bit information can be obtained. From the above, R 1 (x), R 2 (x), R 3 (x),..., R t (x) can be calculated in any order. For this reason, it is possible to perform calculation by performing encoding in the order of arrival of the data blocks or by parallel encoding of a plurality of data blocks.
本実施の形態では、まず、ECC符号化回路1が各データブロックに基づいて各データブロックのデータ長に基づく通常の符号化処理を行い検査ビット(パリティ)を中間結果として求める。そして、位置調整回路2が、中間結果に基づいて、上記式(2)に示したP1(x),P2(x),P3(x),…,Pt(x)に基づいて生成した検査ビットR1(x),R2(x),R3(x),…,Rt(x)に相当する検査ビットを生成する。具体的には、上記式(2)に示したP1(x),P2(x),P3(x),…,Pt(x)において0が乗算されている項に対応するビットに0を入力したことに相当する処理を行う。この処理は、具体的にどのような回路で実現してもよく、実際に0が乗算されている項に対応するビットに0を入力する処理を行ってもよいし、ビットをシフトする処理等により実現してもよい。
In the present embodiment, first, the
なお、P1(x),P2(x),P3(x),…,Pt(x)のそれぞれ対応する情報(データ)の一部しか最終的に得られない場合にも本実施の形態の位置調整は適用できる。例えば、図2においてデータブロック#3のみ到着して、他のデータブロックのデータが到着しない場合等に相当する。この場合も、情報が得られたデータブロックに対応するP1(x),P2(x),P3(x),…,Pt(x)に基づいてR1(x),R2(x),R3(x),…,Rt(x)を生成し、生成したR1(x),R2(x),R3(x),…,Rt(x)を加算することによりR(x)を求める(生成したR1(x),R2(x),R3(x),…,Rt(x)が1つの場合はそのまま用いる)。これにより、例えば、データ圧縮等のために、符号化対象データのうち一部のデータブロックのみにデータを格納して送信しても、通常と同様に規定復号処理により復号することができる。
This implementation is also performed when only a part of information (data) corresponding to P 1 (x), P 2 (x), P 3 (x),..., P t (x) is finally obtained. Position adjustment in the form of can be applied. For example, this corresponds to a case where only
図5は、ECC符号化処理回路1の構成例を示す図である。図5は、生成多項式G(x)=x3+x+1を用いる場合のECC符号化処理回路1の構成例を示している。図5に示すように、ECC符号化処理回路1は、レジスタ(R)11,12,13と、加算器14,18,19と、ゲート15,16,17と、を備える。なお、図5は一例であり、ECC符号化処理回路1の構成および生成多項式は図5の例に限定されない。
FIG. 5 is a diagram illustrating a configuration example of the ECC
図6、7は、位置調整回路2の構成例を示す図である。上述したP1(x),P2(x),P3(x),…,Pt(x)では、実際の情報が存在するビット位置より高次数のビット(例えば、P2(x)ではxj+1からxk-1までの項に対応するビット)と、実際の情報が存在するビット位置より低次数のビット(例えば、P2(x)ではx0からxi-1までの項に対応するビット)を0としているが、実際の情報が存在するビット位置より高次数のビットについては、0を入力してもしなくても結果は同じである。したがって、図6、7の構成例では、実際の情報が存在するビット位置より高次数のビットに0を入力する構成を示している。なお、図6では、パリティが3ビットの例を示している。
6 and 7 are diagrams illustrating a configuration example of the
図6の構成例では、位置調整回路2は、セレクタ4、XORゲート5およびFF(FlipFlop)6を備える。位置調整回路2は、内部または外部の制御部3により、調整するビット数(実際の情報が存在するビット位置より高次数で0を入力するビット数)に応じて繰り返し回数(1、2または3回)が制御される。セレクタ4は、制御部3からの制御により、入力された中間結果(ECC符号化処理回路1により生成されたパリティ)とFF6の出力とのいずれか一方を選択して出力する。1回目では、セレクタ4は入力された中間結果を選択し、これにより1ビット0を入力することになる。2回目および3回目ではセレクタ4はFF6の出力を選択する。これにより、繰り返し2回では2ビット、繰り返し3回では3ビット0を入力することができる。このように、繰り返し回数に応じて調整するビット数を変更することができる。
In the configuration example of FIG. 6, the
図7の構成例では、例えば、図6のようにsビット(図6の場合は3ビット)の0入力が可能であるsビット位置調整回路8と、セレクタ7と、FF9と、を備える。そして、制御部3は、sビット位置調整回路8に対してはsビット0入力をするよう制御すると、セレクタ7の選択に応じてsビット、2sビット、3sビット、…のようにsビット単位で0の入力を実施することができる。セレクタ7は、1回目の繰り返しでは入力された中間結果を選択し、これによりsビット0を入力することになる。2回目および3回目ではセレクタ7はFF9の出力を選択する。これにより、繰り返し2回では2sビット、繰り返し3回では3sビット0を入力することができる。なお、図6、7は一例であり、位置調整回路2の構成はこれらに限定されない。
The configuration example of FIG. 7 includes, for example, an s-bit
以上のように、本実施の形態では、符号化対象データ内の一部のデータを用いて符号化処理を行うECC符号化処理回路1と、ECC符号化処理回路1により生成されたパリティに基づいてビット位置の調整を行ったパリティを生成する位置調整回路2とを備えるようにした。これにより、ビット位置の調整を行ったパリティを用いて、符号化対象データ全体が符号化されたことを前提とした復号を行うことが可能となる。このため、符号化装置へのデータの入力順に自由度を持たせることができ、演算速度の向上やバッファの削減などを図ることができる。
As described above, in the present embodiment, the ECC
(第2の実施の形態)
図8は、第2の実施の形態にかかる記憶装置21の構成例を示すブロック図である。図8に示すように、記憶装置21は、メモリコントローラ22、半導体メモリ部23を備える。記憶装置21は、通信インタフェースを介してホスト24に接続され、ホスト24に対する外部記憶媒体として機能する。ホスト24の例としては、パーソナルコンピュータやCPU(Central Processing Unit)コア等があげられる。
(Second Embodiment)
FIG. 8 is a block diagram of a configuration example of the
半導体メモリ部23は、例えばNAND型フラッシュメモリ等の不揮発性半導体メモリにより構成されるが、NANDフラッシュメモリ以外のメモリであってもよい。
The
メモリコントローラ22は、内部バス30と、HostI/F(インタフェース)31と、メモリI/F(メモリインタフェース)32と、制御部33と、符号化/復号化処理部34と、RAM(Random Access Memory)37と、で構成される。符号化/復号化処理部34は、符号化部(符号化装置)35と、復号化部(復号化装置)36と、で構成される。 The memory controller 22 includes an internal bus 30, a host I / F (interface) 31, a memory I / F (memory interface) 32, a control unit 33, an encoding / decoding processing unit 34, and a RAM (Random Access Memory). 37). The encoding / decoding processing unit 34 includes an encoding unit (encoding device) 35 and a decoding unit (decoding device) 36.
HostI/F31は、ホスト24から受信した命令、データなどを内部バス30に出力する。また、HostI/F31は、内部バス30経由で入力されたデータ、制御部33からの応答通知(命令の実行完了を示す通知など)などをホスト24へ送信する。 The Host I / F 31 outputs the command, data, etc. received from the host 24 to the internal bus 30. The Host I / F 31 transmits data input via the internal bus 30, a response notification from the control unit 33 (such as a notification indicating the completion of execution of the command), and the like to the host 24.
制御部33は、半導体記憶装置21の各構成要素を統括的に制御する制御部であり、CPUコア、RAM、ROM(Read Only Memory)、DMA(Direct Memory Access)コントローラなどで構成される。制御部33は、ホスト24からHostI/F31および内部バス30経由で命令を受けた場合に、その命令に従った制御を行う。例えば、制御部33は、ホスト4からの命令に従って、半導体メモリ部23へのデータの書き込み、半導体メモリ部23からの読み出しなどをメモリI/F32へ指示する。また、制御部33は、半導体メモリ部23へ書き込む際に書き込みデータに対して符号化処理を実施するよう符号化部35を制御し、半導体メモリ部23からの読み出された符号語に基づいて復号化処理を実施するよう復号化部36を制御する。RAM37は、ホストから受信したデータやホストへ送信するデータを一時的に保持する。
The control unit 33 is a control unit that comprehensively controls each component of the
本実施の形態では、ホスト24から受信するデータを符号化して半導体メモリ部23へ書き込むこととし、符号化対象データが第1の実施の形態の図2で示したようにNB+1個のデータブロックで構成されているとする。復号化部36は、符号化対象データ単位であらかじめ決められたデータブロックの入力順で入力されることを前提に復号化処理を行う。
In the present embodiment, data received from the host 24 is encoded and written to the
ホスト24から受信したデータは、RAM37に一時的に格納される。制御部33は、ホスト24から受信したデータ(以下、ホストデータという)について、論理アドレスと半導体メモリ部23上のアドレスとの対応を管理しており、どのホストデータで符号化対象データを構成するかを決定する。また、制御部33は、符号化対象データ内のデータブロックの識別番号(例えば、データブロック#i(i=1,2,…,NB)のデータブロックの番号をiとする)がRAM37に格納されたかを管理している。制御部33は、RAM37に格納されたデータブロックの番号に応じて符号化部35を制御する。
Data received from the host 24 is temporarily stored in the
あらかじめ決められたデータブロックの入力順で復号処理を行う場合でも、符号化部35として第1の実施の形態で述べた符号化装置を用いると、データブロックの入力順を自由に設定することができる。例えば、図1に示した符号化装置により、データブロックを任意の順に処理し、各データブロックの位置調整後のパリティを保持しておき、符号化対象データ分のNB+1個の位置調整後のパリティが生成できた時点でパリティの排他的論理和をとることにより、最終的なパリティを生成することができる。一方、第1の実施の形態では、符号化対象データの情報が存在するビットの位置を固定せずに変更できるように構成しているが、図2のようにデータブロックの区切りがあらかじめわかっている場合、各々のデータブロックに対応した位置調整回路をそれぞれ備えることで処理の高速化を図ることができる。本実施の形態では、データブロックごとに位置調整回路を備える例を説明する。
Even when the decoding process is performed in a predetermined data block input order, if the encoding apparatus described in the first embodiment is used as the
図9は、本実施の形態の符号化部35の構成例を示す図である。本実施の形態の符号化部35は、図9に示すように、セレクタ41と、ECC符号化回路1と、位置調整回路2−1〜2−L(L=NB+1)と、加算器43と、を備える。ECC符号化回路1は、第1の実施の形態のECC符号化回路1と同様である。位置調整回路2−1〜2−Lは、それぞれ第1の位置調整回路2と同様であるが、0を入力するビット数が変更可能でなくともよく、固定の個数の0を入力する構成としてもよい。図9の構成例では、L=NB+2とし、位置調整回路2−1がデータブロック#0に対応し、位置調整回路2−2がデータブロック#1に対応し、・・・、位置調整回路2−Lがデータブロック#(LB+1)に対応している。したがって、例えば、位置調整回路2−1はデータブロック#0に対応するビット位置の調整を行うことができればよく、位置調整回路2−2はデータブロック#1に対応するビット位置の調整を行うことができればよい。
FIG. 9 is a diagram illustrating a configuration example of the
次に、本実施の形態の符号化処理について説明する。図10は、本実施の形態の符号化処理手順の一例を示す図である。図10は、1つの符号化対象データのパリティを生成する処理を示している。まず、制御部33は、HostI/F31経由でホスト24から書込み要求を受信した場合に、書込み対象のホストデータのアドレスに基づいて符号化対象データを構成するデータのアドレスの割当てを行う。 Next, the encoding process of this Embodiment is demonstrated. FIG. 10 is a diagram illustrating an example of an encoding process procedure according to the present embodiment. FIG. 10 shows processing for generating parity of one piece of encoding target data. First, when receiving a write request from the host 24 via the Host I / F 31, the control unit 33 assigns an address of data constituting the encoding target data based on the address of the host data to be written.
例えば、ホストからの送信が所定の第1のデータ単位で行われるとし、所定のデータ単位がさらに複数の第2のデータ単位で構成され、実際のデータの転送は第2のデータ単位で行われるとする。そして、第1のデータ単位ごとにホスト24からのデータの転送が管理され、第1のデータ単位間ではホスト24から送信された順にRAM37へ到着するとし、第1のデータ単位内では、第2のデータ単位間でRAM37への到着順は送信順となることを保証されていないとする。例えば、ホスト24からホストデータ#1、ホストデータ#2、ホストデータ#3の3つの第1のデータ単位のホストデータが、ホストデータ#1、ホストデータ#2、ホストデータ#3の順で送信された場合、RAM37への到着順はホストデータ#1、ホストデータ#2、ホストデータ#3であるとする。一方、例えば、ホストデータ#1が5個の第2のデータ単位であるホストデータ#1−1〜ホストデータ#1−5で構成され、ホストからホストデータ#1−1,ホストデータ#1−2,…,ホストデータ#1−5の順で送信される場合、ホストデータ#1−3がホストデータ#1−1より先に到着するような到着順の変更が有り得るとする。
For example, when transmission from the host is performed in a predetermined first data unit, the predetermined data unit is further composed of a plurality of second data units, and actual data transfer is performed in the second data unit. And Then, transfer of data from the host 24 is managed for each first data unit, and arrives at the
なお、ここでは、第1のデータ単位での到着順の変更はないとしたが、第1のデータ単位での到着順の変更がある場合にも、RAM37に複数の第1のデータ単位を格納できる容量があれば同様の符号化処理を実施可能である。
Here, it is assumed that there is no change in the arrival order in the first data unit, but a plurality of first data units are stored in the
また、ここでは、簡単のために、第1のデータ単位を図2の符号化対象データとし、第2のデータ単位を図2のデータブロックとする。第1のデータ単位と符号化対象データは異なっていてもよく、例えば、複数の第1のデータ単位で符号化対象データを構成してもよい。例えば、符号化対象データが2つの第1のデータ単位で構成され、第1のデータ単位が5つの第2のデータ単位(=データブロックとする)で構成される場合、符号化対象データは10個のデータブロックで構成される。この場合の動作は、1つの第1のデータ単位が符号化対象データを構成する場合とデータブロック数が異なるだけで同様である。また、データブロックの到着の管理が複雑になるが、第2のデータ単位とデータブロックが異なっていてもよい。 Here, for the sake of simplicity, the first data unit is the encoding target data in FIG. 2, and the second data unit is the data block in FIG. The first data unit and the encoding target data may be different. For example, the encoding target data may be configured by a plurality of first data units. For example, when the encoding target data is composed of two first data units, and the first data unit is composed of five second data units (= data block), the encoding target data is 10 It consists of data blocks. The operation in this case is the same as that in the case where one first data unit constitutes encoding target data, except that the number of data blocks is different. Further, although the management of the arrival of the data block is complicated, the second data unit and the data block may be different.
図10の説明に戻る。制御部33は、データブロック(=第1のデータ単位)を受信した(RAM37にデータブロックが格納された)ことを認識する(ステップS1)と、当該データブロックのデータブロック番号を把握する。データブロック番号は、HostI/F31がホストデータに格納されているデータブロック番号を識別するための識別情報(データのアドレス等)を参照して制御部33へ通知してもよいし、制御部33が直接ホストデータの識別情報を抽出してデータブロック番号を把握してもよい。 Returning to the description of FIG. When the control unit 33 recognizes that the data block (= first data unit) has been received (the data block is stored in the RAM 37) (step S1), the control unit 33 grasps the data block number of the data block. The data block number may be notified to the control unit 33 with reference to identification information (data address or the like) for identifying the data block number stored in the host data by the Host I / F 31, or the control unit 33 May directly extract the identification information of the host data and grasp the data block number.
制御部33は、受信済のデータブロック番号に基づいて、符号化処理対象のデータブロックを選択して符号化部35へデータブロックの選択信号を送信するとともに符号化処理の開始を指示し、ECC符号化回路1による符号化処理が実施される(ステップS3)。この際、セレクタ41は、制御部33からの選択信号に基づいて入力するデータブロックを選択してECC符号化回路1へ入力し、セレクタ42は、ECC符号化回路1により生成されたパリティ(中間結果)を選択信号に基づいて選択した位置調整回路(位置調整回路2−1〜2−Lのうちのいずれか1つ)に出力する。以下、データブロック#iに対応する中間結果であるパリティをパリティ#i´と表記する。
The control unit 33 selects a data block to be encoded based on the received data block number, transmits a data block selection signal to the
パリティ#i´が入力された位置調整回路2−iは、データブロック#iの符号化対象データ内の位置に基づいて、第1の実施の形態で述べた位置調整を実施してパリティ#iを生成する(ステップS4)。その後、制御部33は、符号化対象データ内の全データブロックを処理済(パリティを生成済)であるか否かを判断し(ステップS5)、処理済でない場合(ステップS5 No)は、ステップS2に戻る。 The position adjustment circuit 2-i to which the parity #i ′ is input performs the position adjustment described in the first embodiment on the basis of the position in the data to be encoded of the data block #i and performs the parity #i. Is generated (step S4). Thereafter, the control unit 33 determines whether or not all data blocks in the encoding target data have been processed (parity has been generated) (step S5), and if not (step S5 No), step Return to S2.
符号化対象データ内の全データブロックを処理済の場合(ステップS5 Yes)、
加算器43が、パリティ#0〜#Lの排他的論理和を当該符号化対象データのパリティPとして算出し(ステップS6)、処理を終了する。
When all the data blocks in the encoding target data have been processed (Yes in step S5),
The
パリティPは、符号化対象データとともに半導体メモリ部23へ書き込まれる。半導体メモリ部23からの読み出し時には、符号化対象データとパリティPとが読み出され、復号化部36により復号化され、復号化後のデータがホスト24へ送信される。
The parity P is written into the
なお、ここでは、符号化対象データの全てのデータブロックが揃ってからパリティPを求めるようにしたが、符号化対象データの一部のデータブロックしか到着しないことが分かっている場合には、一部のデータブロックについての位置調整後のパリティの排他的論理和を算出することでパリティPを求めるようにしてもよい。また、例えば、符号化対象の最後のデータブロックを受信してから所定の時間が経過しても符号化対象データの全てのデータブロックが揃わない場合、未受信のデータブロックは途中で失われたものと判断して、受信済のデータブロックを用いてパリティPを求めるようにしてもよい。 Here, the parity P is obtained after all the data blocks of the encoding target data are gathered. However, if it is known that only some data blocks of the encoding target data arrive, The parity P may be obtained by calculating the exclusive OR of the parity after the position adjustment for the data block of the part. Also, for example, if all the data blocks of the data to be encoded are not complete even after a predetermined time has elapsed since the last data block to be encoded was received, the unreceived data block was lost on the way Therefore, the parity P may be obtained using the received data block.
位置調整回路2−1〜2−Lの構成例について説明する。ここでは、一例として、データブロックのサイズを1ビットとし、NB=3(1つの符号化対象データを構成するデータブロック数は4)とし、L=4として4つの位置調整回路を備える例を説明する。また、パリティは3ビットとし、ECC符号化生成回路1により生成されたパリティ(中間結果)の各ビットの値をそれぞれr[0]、r[1]、r[2]とする。
A configuration example of the position adjustment circuits 2-1 to 2-L will be described. Here, as an example, an example in which the size of a data block is 1 bit, NB = 3 (the number of data blocks constituting one encoding target data is 4), and L = 4 is provided with four position adjustment circuits. To do. The parity is 3 bits, and the values of the bits of the parity (intermediate result) generated by the ECC
図11〜14は、位置調整回路2−1〜2−4の構成例を示す図である。図11は、位置調整回路2−1の構成例を示し、図12は、位置調整回路2−2の構成例を示し、図13は、位置調整回路2−3の構成例を示し、図14は、位置調整回路2−4の構成例を示している。また、図15は、図11〜14の構成を前提とした場合に入力される中間結果(パリティ#i´)と出力されるパリティ#iの一例を示す図である。 11 to 14 are diagrams illustrating configuration examples of the position adjustment circuits 2-1 to 2-4. 11 shows a configuration example of the position adjustment circuit 2-1, FIG. 12 shows a configuration example of the position adjustment circuit 2-2, FIG. 13 shows a configuration example of the position adjustment circuit 2-3, and FIG. These show a configuration example of the position adjustment circuit 2-4. FIG. 15 is a diagram illustrating an example of an intermediate result (parity #i ′) input and a parity #i output when the configurations of FIGS. 11 to 14 are assumed.
符号化対象データを(d3 d2 d3 d0)とするとき、各データブロックでは、以下のように0入力を行うことにより位置調整を行う。
(1)データブロック#0 ( d0)
(2)データブロック#1 ( d1 0)
(3)データブロック#2 ( d2 0 0)
(4)データブロック#3 (d3 0 0 0)
When the encoding target data is (d3 d2 d3 d0), each data block performs position adjustment by inputting 0 as follows.
(1) Data block # 0 (d0)
(2) Data block # 1 (d1 0)
(3) Data block # 2 (
(4) Data block # 3 (
データブロック#0に対応する位置調整回路2−1は、図11に示すように、0の入力を行う必要がないため、r[0]、r[1]、r[2]をそのまま出力する。図12に示すように、データブロック#1に対応する位置調整回路2−2は、XORゲート5を備える。位置調整回路2−2は、1つの0を入力する処理として、出力ビット#0(位置調整を行わない場合のr[0]の出力に対応)としてr[2]を出力し、出力ビット#1(位置調整を行わない場合のr[1]の出力に対応)r[0]^r[2]を出力し、出力ビット#2(位置調整を行わない場合のr[2]の出力に対応)としてr[0]を出力する。なお、^は排他的論理和の演算を示す。
Since the position adjustment circuit 2-1 corresponding to the
図13に示すように、データブロック#2に対応する位置調整回路2−3は、XORゲート5−1,5−2を備える。位置調整回路2−3は、2つの0を入力する処理として、出力ビット#0としてr[1]を出力し、出力ビット#1としてr[2]^r[1]を出力し、出力ビット#2r[1]を出力する。
As shown in FIG. 13, the position adjustment circuit 2-3 corresponding to the
図14に示すように、データブロック#3に対応する位置調整回路2−4は、XORゲート5−1,5−2,5−3を備える。位置調整回路2−4は、3つの0を入力する処理として、出力ビット#0としてr[0]^r[2]を出力し、出力ビット#1としてr[0]^r[2]^r[1]を出力し、出力ビット#2としてr[2]^r[1]を出力する。
As shown in FIG. 14, the position adjustment circuit 2-4 corresponding to the
図16は、入力される情報と0の入力の一例を示す図である。図17は、図16の情報が入力された場合の中間結果(パリティ#i´)と位置調整後のパリティ(パリティ#i)の具体例を示す図である。図16の右欄に示すように情報を1101(d3=1:d2=1:d1=0:d0=1)とすると、図16の左欄に示すように、データブロックに応じて0を入力する。 FIG. 16 is a diagram illustrating an example of input information and 0 input. FIG. 17 is a diagram illustrating specific examples of the intermediate result (parity #i ′) and the position-adjusted parity (parity #i) when the information in FIG. 16 is input. If the information is 1101 (d3 = 1: d2 = 1: d1 = 0: d0 = 1) as shown in the right column of FIG. 16, 0 is input according to the data block as shown in the left column of FIG. To do.
図17に示すように、データブロック#0については、ECC符号化回路1により生成されるパリティ#(Parity)0´は、{r[2],r[1],r[0]}={0,1,1}となる。データブロック#1については、ECC符号化回路1により生成されるパリティ#1´は、{r[2],r[1],r[0]}={0,1,1}となる。データブロック#2については、ECC符号化回路1により生成されるパリティ#2´は、{r[2],r[1],r[0]}={0,0,0}となる。データブロック#3については、ECC符号化回路1により生成されるパリティ#3´は、{r[2],r[1],r[0]}={0,1,1}となる。
As shown in FIG. 17, for the
また、図15を用いて説明した処理により、パリティ#0は{1,0,0}となり、パリティ#1は{1,1,1}となり、パリティ#2は{0,0,0}となり、パリティ#3は{0,1,1}となる。そして、最終的に得られるパリティPは、{0,0,1}となる。したがって、情報1101に対するパリティPは、001となり、符号語は1101001となる。
Further, by the processing described with reference to FIG. 15,
なお、ここでは、各データブロックサイズが等しい例を説明したが、各データブロックのデータサイズは異なっていてもよい。 Here, an example in which each data block size is the same has been described, but the data size of each data block may be different.
以上のように、本実施の形態では、データブロックごとに位置調整回路を備え、位置調整処理を並列に実施できるようにした。このため、符号化対象データ内のうち符号化を開始する位置をデータブロック単位で任意に設定できるとともに、位置調整回路の構成を簡易化することができる。また、データブロックの到着順が所定の順序と異なる場合にも、到着順に符号化処理を実施することができ、バッファ量を削減できるとともに処理速度を向上させることができる。 As described above, in this embodiment, the position adjustment circuit is provided for each data block, and the position adjustment processing can be performed in parallel. For this reason, it is possible to arbitrarily set the position to start encoding in the data to be encoded in units of data blocks, and to simplify the configuration of the position adjustment circuit. Further, even when the arrival order of the data blocks is different from the predetermined order, the encoding process can be performed in the arrival order, so that the buffer amount can be reduced and the processing speed can be improved.
(第3の実施の形態)
図18は、第3の実施の形態の符号化部35aの構成例を示す図である。本実施の形態の符号化部35aは、第2の実施の形態で述べた記憶装置21において符号化部35aの替わりに用いられる。第2の実施の形態と同様の機能を有する構成要素は、第2の実施の形態と同一の符号を用いて重複する説明を省略する。
(Third embodiment)
FIG. 18 is a diagram illustrating a configuration example of the encoding unit 35a according to the third embodiment. The encoding unit 35a of the present embodiment is used in place of the encoding unit 35a in the
符号化部35aは、第2の実施の形態の符号化25からセレクタ41,42を削除し、ECC符号化回路1の替わりにECC符号化回路1−1〜1−Lを備える以外は第2の実施の形態の符号化部35と同様である。第2の実施の形態では、ECC符号化回路1を各データブロックで共有したが、本実施の形態では、データブロックと同じ数のECC符号化回路1−1〜1−Lを備え、データブロックごとに異なるECC符号化回路で符号化処理を実施する。これにより、符号化処理を並列して行うことができ、第2の実施の形態に比べ、処理速度を向上させることができる。以上述べたように、本実施の形態の動作は、第2の実施の形態と同様である。
The encoding unit 35a deletes the
例えば、各データブロックのデータサイズが同じの場合、符号化処理の時間は、比較例の符号化装置の1/Lである。このように、本実施の形態では、第2の実施の形態と同様の効果が得られるとともに、符号化処理を並列化することができ、符号化処理速度を向上させることができる。 For example, when the data size of each data block is the same, the encoding processing time is 1 / L of the encoding device of the comparative example. As described above, according to the present embodiment, the same effects as those of the second embodiment can be obtained, the encoding processing can be parallelized, and the encoding processing speed can be improved.
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。 Although several embodiments of the present invention have been described, these embodiments are presented by way of example and are not intended to limit the scope of the invention. These novel embodiments can be implemented in various other forms, and various omissions, replacements, and changes can be made without departing from the scope of the invention. These embodiments and modifications thereof are included in the scope and gist of the invention, and are included in the invention described in the claims and the equivalents thereof.
1,1−1〜1−L ECC符号化回路、2,2−1〜2−L 位置調整回路、3,33 制御部、記憶装置21、半導体メモリ部23、34 符号化/復号化部、35 符号化部、36 復号化部、41,42 セレクタ、43 加算器。
1, 1-1 to 1-L ECC encoding circuit, 2, 2-1 to 2-L position adjustment circuit, 3,33 control unit,
Claims (11)
前記データブロックに対して符号化処理を行う符号化回路と、
前記符号化処理により生成されたパリティに基づいて、前記データブロックごとに前記符号化対象データ内の前記データブロックの位置に応じたパリティを生成するL個の位置調整回路と、
を備えることを特徴とする符号化装置。 An encoding device that encodes encoding target data composed of L (L is an integer of 2 or more) data blocks,
An encoding circuit for performing an encoding process on the data block;
L position adjustment circuits that generate parity according to the position of the data block in the data to be encoded for each data block based on the parity generated by the encoding process;
An encoding device comprising:
前記符号化対象データのうちの指定された位置から指定された長さのデータに対して符号化処理を行う符号化回路と、
前記符号化処理により生成されたパリティに基づいて、前記符号化対象データ内の前記データの位置に応じたパリティを生成する位置調整回路と、
を備えることを特徴とする符号化装置。 An encoding device for encoding data to be encoded,
An encoding circuit that performs an encoding process on data having a specified length from a specified position in the encoding target data;
A position adjustment circuit that generates parity according to the position of the data in the encoding target data based on the parity generated by the encoding process;
An encoding device comprising:
前記メモリ部に格納する所定のデータ長のデータを符号化対象データとして符号化処理を行うことにより符号語を生成する符号化部と、
前記メモリ部から読み出された符号語に基づいて復号処理を行う復号化部と、
を備え、
前記符号化部は、
前記符号化対象データを構成するL(Lは2以上の整数)個のデータブロックに対して符号化処理を行う符号化回路と、
前記符号化処理により生成されたパリティに基づいて、前記データブロックごとに前記符号化対象データ内の前記データブロックの位置に応じたパリティを生成するL個の位置調整回路と、
を備えることを特徴とする記憶装置。 A memory section;
An encoding unit that generates a codeword by performing an encoding process using data of a predetermined data length stored in the memory unit as encoding target data;
A decoding unit that performs a decoding process based on a codeword read from the memory unit;
With
The encoding unit includes:
An encoding circuit that performs an encoding process on L (L is an integer of 2 or more) data blocks constituting the encoding target data;
L position adjustment circuits that generate parity according to the position of the data block in the data to be encoded for each data block based on the parity generated by the encoding process;
A storage device comprising:
前記データブロックに対して符号化処理を行うステップと、
前記符号化処理により生成されたパリティに基づいて、L個の位置調整回路により前記データブロックごとに前記符号化対象データ内の前記データブロックの位置に応じたパリティを生成するステップと、
を含むことを特徴とする符号化方法。 An encoding method in an encoding device that encodes encoding target data composed of L (L is an integer of 2 or more) data blocks,
Performing an encoding process on the data block;
Based on the parity generated by the encoding process, a step of generating a parity according to the position of the data block in the encoding target data for each data block by L position adjustment circuits;
The encoding method characterized by including.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012066964A JP2013201479A (en) | 2012-03-23 | 2012-03-23 | Encoding device, storage device and encoding method |
US13/601,707 US8640013B2 (en) | 2011-09-22 | 2012-08-31 | Storage device |
US14/141,246 US9075739B2 (en) | 2011-09-22 | 2013-12-26 | Storage device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012066964A JP2013201479A (en) | 2012-03-23 | 2012-03-23 | Encoding device, storage device and encoding method |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2013201479A true JP2013201479A (en) | 2013-10-03 |
Family
ID=49521391
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012066964A Pending JP2013201479A (en) | 2011-09-22 | 2012-03-23 | Encoding device, storage device and encoding method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2013201479A (en) |
-
2012
- 2012-03-23 JP JP2012066964A patent/JP2013201479A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5768022B2 (en) | Memory controller, storage device, error correction device, and error correction method | |
US9128864B2 (en) | Memory controller, storage device and error correction method | |
JP5913560B2 (en) | Encoding and decoding techniques using low density parity check codes | |
US9075739B2 (en) | Storage device | |
JP2001175542A (en) | Recording and reproducing device and semiconductor memory | |
KR20160090054A (en) | Flash memory system and operating method thereof | |
KR20140025601A (en) | Efficient and scalable cyclic redundancy check circuit using galois-field arithmetic | |
US9960788B2 (en) | Memory controller, semiconductor memory device, and control method for semiconductor memory device | |
US10291258B2 (en) | Error correcting code for correcting single symbol errors and detecting double bit errors | |
WO2017018008A1 (en) | Encoding device, memory controller, communication system, and encoding method | |
US9164831B2 (en) | Memory controller, semiconductor storage device, and decoding method | |
US9015548B2 (en) | Error detection correction method and semiconductor memory apparatus | |
US8429508B2 (en) | Data storage apparatus with encoder and decoder | |
JP2008011025A (en) | Remainder calculation apparatus for cyclic redundancy check | |
JP7429223B2 (en) | Turbo product code decoding method, device, decoder and computer storage medium | |
US10970166B2 (en) | Memory system and method of controlling non-volatile memory | |
JP2004159333A (en) | Configuration for exchanging data using cyclic redundancy check (crc) code, method and apparatus for automatically generating crc code from data exchanged on data bus | |
KR102532623B1 (en) | Bose-chaudhuri-hocquenghem (bch) encoding and decoding method tailored for refundant array of inexpensive disks(raid), and apparatus there-of | |
WO2019214266A1 (en) | Method and device for calculating crc code | |
US20150256204A1 (en) | Memory controller, storage device and memory control method | |
US10404282B2 (en) | Apparatuses and methods for integrated interleaved Reed-Solomon encoding and decoding | |
JP2015019276A (en) | Storage device, crc generation device and crc generation method | |
JP2013201479A (en) | Encoding device, storage device and encoding method | |
US20150339183A1 (en) | Controller, storage device, and control method | |
US20140245101A1 (en) | Semiconductor memory |