JP2013201479A - Encoding device, storage device and encoding method - Google Patents

Encoding device, storage device and encoding method Download PDF

Info

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
Application number
JP2012066964A
Other languages
Japanese (ja)
Inventor
Dong Chang
棟 張
Toshikatsu Hida
敏克 檜田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2012066964A priority Critical patent/JP2013201479A/en
Priority to US13/601,707 priority patent/US8640013B2/en
Publication of JP2013201479A publication Critical patent/JP2013201479A/en
Priority to US14/141,246 priority patent/US9075739B2/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Error Detection And Correction (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide an encoding device that has a degree of freedom in the order of data input to the encoding device.SOLUTION: The encoding device for encoding data to be encoded which comprises L (L is an integer of two or more) data blocks includes an encoding circuit for performing an encoding process on the data blocks, and L position adjustment circuits for generating parity depending on the position of the data blocks in the data to be encoded for the respective data blocks on the basis of parity generated by the encoding process.

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.

特開2009−212623号公報JP 2009-212623 A 特開2009−211742号公報JP 2009-211742 A

本発明の実施形態は、符号化装置へのデータの入力順に自由度を持たせた符号化装置、記憶装置および符号化方法を提供する。   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. .

図1は、第1の実施の形態にかかる符号化装置の構成例を示すブロック図である。FIG. 1 is a block diagram illustrating a configuration example of an encoding device according to the first embodiment. 図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. 図3は、比較例の符号化装置を用いた符号化復号化システムにおけるデータ入力順の一例を示す図である。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. 図4は、ECC復号化回路へのデータの入力順の一例を示す図である。FIG. 4 is a diagram illustrating an example of the order of data input to the ECC decoding circuit. 図5は、ECC符号化処理回路の構成例を示す図である。FIG. 5 is a diagram illustrating a configuration example of the ECC encoding processing circuit. 図6は、位置調整回路の構成例を示す図である。FIG. 6 is a diagram illustrating a configuration example of the position adjustment circuit. 図7は、位置調整回路の構成例を示す図である。FIG. 7 is a diagram illustrating a configuration example of the position adjustment circuit. 図8は、第2の実施の形態にかかる記憶装置の構成例を示すブロック図である。FIG. 8 is a block diagram of a configuration example of the storage device according to the second embodiment. 図9は、第2の実施の形態の符号化部の構成例を示す図である。FIG. 9 is a diagram illustrating a configuration example of an encoding unit according to the second embodiment. 図10は、第2の実施の形態の符号化処理手順の一例を示す図である。FIG. 10 is a diagram illustrating an example of an encoding process procedure according to the second embodiment. 図11は、位置調整回路の構成例を示す図である。FIG. 11 is a diagram illustrating a configuration example of the position adjustment circuit. 図12は、位置調整回路の構成例を示す図である。FIG. 12 is a diagram illustrating a configuration example of the position adjustment circuit. 図13は、位置調整回路の構成例を示す図である。FIG. 13 is a diagram illustrating a configuration example of the position adjustment circuit. 図14は、位置調整回路の構成例を示す図である。FIG. 14 is a diagram illustrating a configuration example of the position adjustment circuit. 図15は、中間結果(パリティ#i´)と出力されるパリティ#iの一例を示す図である。FIG. 15 is a diagram illustrating an example of the intermediate result (parity #i ′) and the output parity #i. 図16は、入力される情報と0の入力の一例を示す図である。FIG. 16 is a diagram illustrating an example of input information and 0 input. 図17は、図16の情報が入力された場合の中間結果(パリティ#i´)と位置調整後のパリティ(パリティ#i)の具体例を示す図である。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. 図18は、第3の実施の形態の符号化部の構成例を示す図である。FIG. 18 is a diagram illustrating a configuration example of an encoding unit according to the third embodiment.

以下に添付図面を参照して、実施形態にかかる符号化装置、記憶装置および符号化方法を詳細に説明する。なお、これらの実施形態により本発明が限定されるものではない。   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 position adjustment circuit 2.

なお、本実施の形態では、符号化装置が生成する符号として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 data block # 0 to data block #NB (NB is an integer equal to or greater than 1). When generating a codeword based on the data to be encoded shown in FIG. 2, generally, data block # 0, data block # 1, data block # 2,. Are input to the encoding device in a predetermined order. Even when data is not input to the encoding device in a predetermined order, since the decoding device inputs data in a predetermined order, the input order of data differs between encoding and decoding, and decoding cannot be performed correctly. It is conceivable that the input order of data to the encoding device is managed and the decoding device changes the input order for each encoding target data. However, in this case, the management data becomes enormous and the processing speed decreases.

図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 ECC encoding circuit 101 which is an encoding apparatus according to a comparative example. In FIG. 3, for simplification of the figure, NB = 3, and the data input order (data block # 0, data block # 1, data block # 2, An example of the order of data block # 3 is shown. The ECC decoding circuit 102 performs a decoding process based on the data and the parity generated by the ECC encoding circuit 101. At this time, the input order of the data input to the ECC decoding circuit 102 is the same as the input order to the ECC encoding circuit 101. FIG. 4 is a diagram illustrating an example of the order in which data is input to the ECC decoding circuit 102. FIG. 4 shows the input order of data to the ECC decoding circuit 102 when data is input in the input order shown in FIG. 3 in the encoding process.

例えば、図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 data block # 0, data block # 1, data block # 2, and data block # 3, data block # 3 is data Assume that the encoder arrives before the blocks # 0, # 1, and # 2.

図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 data block # 3 arrives at the ECC encoding circuit 101 earlier than the data blocks # 1 and # 2. In this case, since the ECC encoding circuit 101 cannot input the data block # 3 before inputting the data blocks # 0, # 1, and # 2, the data blocks # 0, # 1, and # 2 arrive. Until the data block # 3 is held.

これに対し、データブロック#3をデータブロック#0、#1、#2より先に入力して符号化を行うことができれば、データブロック#3を保持する必要はなく、また符号化処理の開始を待機する必要もない。例えば、符号化対象データ内の任意の位置の一部のデータを用いて符号化処理を行うことができれば、データブロック#3を先に入力することができ、符号化処理の開始を待機する必要もない。ただし、データブロック#3を用いて単に符号化処理を行っただけでは、データブロック#3だけデータ内のビットに対応した符号語が生成されるだけである。したがって、データブロック#3、データブロック#0、#1、データブロック#2を順に符号化するだけでは、符号化対象データ内のNB+1個のデータブロックにそれぞれ対応するNB+1個の符号語ができるだけであり、符号化対象データ全体が符号化されたことを前提として復号するECC復号化回路102では復号することができない。   On the other hand, if data block # 3 can be input and encoded before data blocks # 0, # 1, and # 2, it is not necessary to retain data block # 3, and the encoding process starts. There is no need to wait. For example, if the encoding process can be performed using a part of data at an arbitrary position in the encoding target data, the data block # 3 can be input first and it is necessary to wait for the start of the encoding process. Nor. However, if the encoding process is simply performed using the data block # 3, only the data word corresponding to the bits in the data is generated for the data block # 3. Therefore, by simply encoding data block # 3, data block # 0, # 1, and data block # 2, in order, NB + 1 code words respectively corresponding to NB + 1 data blocks in the encoding target data can be obtained. In other words, the ECC decoding circuit 102 that performs decoding on the assumption that the entire data to be encoded has been encoded cannot be decoded.

任意の位置の一部のデータを用いて符号化処理を行う位置調整機能がない場合、実施方法によって以下の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 ECC encoding circuit 1 performs an encoding process using a part of data at an arbitrary position in the encoding target data. Then, the position adjustment circuit 2 applies the parity generated by the encoding process by the ECC encoding circuit 1 so that it can be correctly decoded when decoding is performed on the assumption that the entire encoding target data is encoded. Adjust the position. The position adjustment circuit 2, when performing encoding using a part of data in the encoding target data as an input, for the parity generated by the encoding process according to the position of the data in the encoding target data Adjust the bit position. As a result, even if encoding processing is performed in an order different from the input order in decoding processing, such as data block # 3, data block # 0, data block # 1, and data block # 2, position adjustment is performed. Using the parity of each subsequent data block, it is possible to generate a decodable parity by a decoding process on the assumption that the entire data to be encoded is encoded in a predetermined order. Hereinafter, a decoding process that assumes that the entire encoding target data has been encoded in a predetermined order is referred to as a prescribed decoding process.

具体的には、位置調整回路2は、例えば、ECC符号化回路1が生成する符号語に対して、符号化対象データ内の実際のデータが存在しない部分に0が入力されたことに相当する処理(以下0パディングという)を実施する。   Specifically, the position adjustment circuit 2 corresponds to, for example, that 0 is input to a portion where no actual data exists in the encoding target data with respect to the codeword generated by the ECC encoding circuit 1. Processing (hereinafter referred to as 0 padding) is performed.

ここで、上記のような位置調整を行うことにより、規定復号処理により復号可能なパリティを生成することが可能なことを説明する。ここでは、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 ECC encoding circuit 1 generates a cyclic code. When the k-bit information (corresponding to the data to be encoded in FIG. 2) is (d 0 , d 1 ,..., d k-1 ), the n-bit cyclic code (c 0 , c 1 ,. −1 , d 0 , d 1 ,..., D k-1 ). (C 0 , c 1 ,..., C m−1 ) are check bits (parity), and n = m + k.

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).

Figure 2013201479
Figure 2013201479

上記の式(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).

Figure 2013201479
Figure 2013201479

すなわち、上記(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.

Figure 2013201479
Figure 2013201479

上記の式(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).

Figure 2013201479
Figure 2013201479

1(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)となる。
n-kP(x)/G(x)=Q(x)+R(x)/G(x) …(6)
上記式(6)と、上記式(4)より、以下の式(7)、(8)となる。
n-k{P1(x)+P2(x)+…+Pt(x)}/G(x)
=Q(x)+R(x)/G(x) …(7)
n-k{P1(x)+P2(x)+…+Pt(x)}/G(x)
=xn-k1(x)/G(x)+xn-k2(x)/G(x)+…+xn-kt(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-ki(x)/G(x)の商をQi(x)、余りをRi(x)とすると、以下の式(9)が成り立つ。
n-ki(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)が導かれる。
1(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).

1(x)+R2(x)+R3(x)+…+Rt(x)の最高次数はR(x)と同じm−1次であるから、R(x)は、以下の式(12)に示すようにR1(x),R2(x),R3(x),…,Rt(x)の加算(排他的論理和)となる。
1(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 ECC encoding circuit 1 performs a normal encoding process based on the data length of each data block based on each data block, and obtains a check bit (parity) as an intermediate result. Then, the position adjustment circuit 2 is based on P 1 (x), P 2 (x), P 3 (x),..., P t (x) shown in the above equation (2) based on the intermediate result. Check bits corresponding to the generated check bits R 1 (x), R 2 (x), R 3 (x),..., R t (x) are generated. Specifically, the bit corresponding to the term multiplied by 0 in P 1 (x), P 2 (x), P 3 (x),..., P t (x) shown in the above equation (2). A process corresponding to the input of 0 is performed. This process may be realized by any specific circuit, and may be a process of inputting 0 to a bit corresponding to a term actually multiplied by 0, a process of shifting a bit, or the like. May be realized.

なお、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 data block # 3 arrives in FIG. 2 and data of other data blocks do not arrive. Also in this case, R 1 (x), R 2 based on P 1 (x), P 2 (x), P 3 (x),..., P t (x) corresponding to the data block from which information is obtained. (X), R 3 (x), ..., R t (x) are generated, and the generated R 1 (x), R 2 (x), R 3 (x), ..., R t (x) are added. Thus, R (x) is obtained (if the generated R 1 (x), R 2 (x), R 3 (x),..., R t (x) is one, it is used as it is). Thereby, for example, even if data is stored and transmitted only in some data blocks of the encoding target data for data compression or the like, it can be decoded by the normal decoding process as usual.

図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 encoding processing circuit 1. FIG. 5 shows a configuration example of the ECC encoding processing circuit 1 when the generator polynomial G (x) = x 3 + x + 1 is used. As shown in FIG. 5, the ECC encoding processing circuit 1 includes registers (R) 11, 12, 13, adders 14, 18, 19, and gates 15, 16, 17. FIG. 5 is an example, and the configuration and generator polynomial of the ECC encoding processing circuit 1 are not limited to the example of FIG.

図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 position adjustment circuit 2. In the above-described P 1 (x), P 2 (x), P 3 (x),..., P t (x), the higher-order bits (for example, P 2 (x)) than the bit position where the actual information exists. in the x j + 1 and bit) corresponding to the terms up to x k-1, the actual lower order than the bit position where information exists of bits (e.g., P 2 (x) from the x 0 to x i-1 The bit corresponding to the above term is 0, but the result is the same regardless of whether or not 0 is input for bits of higher order than the bit position where the actual information exists. Therefore, in the configuration examples of FIGS. 6 and 7, a configuration is shown in which 0 is input to higher-order bits than the bit position where the actual information exists. FIG. 6 shows an example in which the parity is 3 bits.

図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 position adjustment circuit 2 includes a selector 4, an XOR gate 5, and an FF (FlipFlop) 6. The position adjustment circuit 2 is controlled by an internal or external control unit 3 according to the number of repetitions (1, 2, or 3) according to the number of bits to be adjusted (the number of bits in which 0 is input in a higher order than the bit position where the actual information exists). Times) is controlled. The selector 4 selects and outputs either the input intermediate result (parity generated by the ECC encoding processing circuit 1) or the output of the FF 6 under the control of the control unit 3. In the first time, the selector 4 selects the inputted intermediate result, and thereby 1 bit 0 is inputted. In the second time and the third time, the selector 4 selects the output of the FF 6. Thereby, 2 bits can be input 2 times and 3 bits 0 can be input 3 times. Thus, the number of bits to be adjusted can be changed according to the number of repetitions.

図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 position adjustment circuit 8 capable of 0-input of s bits (3 bits in the case of FIG. 6), a selector 7 and an FF 9 as shown in FIG. When the control unit 3 controls the s bit position adjusting circuit 8 to input s bit 0, the control unit 3 performs s bit units such as s bit, 2 s bit, 3 s bit,. 0 can be input. The selector 7 selects the input intermediate result in the first iteration, and thereby inputs the s bit 0. In the second and third times, the selector 7 selects the output of the FF 9. As a result, 2s bits can be input 2 times, and 3s bits 0 can be input 3 times. 6 and 7 are examples, and the configuration of the position adjustment circuit 2 is not limited to these.

以上のように、本実施の形態では、符号化対象データ内の一部のデータを用いて符号化処理を行うECC符号化処理回路1と、ECC符号化処理回路1により生成されたパリティに基づいてビット位置の調整を行ったパリティを生成する位置調整回路2とを備えるようにした。これにより、ビット位置の調整を行ったパリティを用いて、符号化対象データ全体が符号化されたことを前提とした復号を行うことが可能となる。このため、符号化装置へのデータの入力順に自由度を持たせることができ、演算速度の向上やバッファの削減などを図ることができる。   As described above, in the present embodiment, the ECC encoding processing circuit 1 that performs encoding processing using a part of the data to be encoded, and the parity generated by the ECC encoding processing circuit 1 are used. And a position adjusting circuit 2 for generating a parity whose bit position has been adjusted. Accordingly, it is possible to perform decoding on the assumption that the entire data to be encoded has been encoded using the parity whose bit position has been adjusted. Therefore, the degree of freedom can be given in the order of data input to the encoding device, and the calculation speed can be improved and the number of buffers can be reduced.

(第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 storage device 21 according to the second embodiment. As illustrated in FIG. 8, the storage device 21 includes a memory controller 22 and a semiconductor memory unit 23. The storage device 21 is connected to the host 24 via a communication interface and functions as an external storage medium for the host 24. Examples of the host 24 include a personal computer and a CPU (Central Processing Unit) core.

半導体メモリ部23は、例えばNAND型フラッシュメモリ等の不揮発性半導体メモリにより構成されるが、NANDフラッシュメモリ以外のメモリであってもよい。   The semiconductor memory unit 23 is configured by a nonvolatile semiconductor memory such as a NAND flash memory, for example, but may be a memory other than the NAND flash memory.

メモリコントローラ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 semiconductor memory device 21, and includes a CPU core, a RAM, a ROM (Read Only Memory), a DMA (Direct Memory Access) controller, and the like. When receiving a command from the host 24 via the Host I / F 31 and the internal bus 30, the control unit 33 performs control according to the command. For example, the control unit 33 instructs the memory I / F 32 to write data to the semiconductor memory unit 23 and read data from the semiconductor memory unit 23 in accordance with an instruction from the host 4. The control unit 33 also controls the encoding unit 35 to perform encoding processing on the write data when writing to the semiconductor memory unit 23, and based on the code word read from the semiconductor memory unit 23. The decryption unit 36 is controlled to perform the decryption process. The RAM 37 temporarily holds data received from the host and data to be transmitted to the host.

本実施の形態では、ホスト24から受信するデータを符号化して半導体メモリ部23へ書き込むこととし、符号化対象データが第1の実施の形態の図2で示したようにNB+1個のデータブロックで構成されているとする。復号化部36は、符号化対象データ単位であらかじめ決められたデータブロックの入力順で入力されることを前提に復号化処理を行う。   In the present embodiment, data received from the host 24 is encoded and written to the semiconductor memory unit 23, and the encoding target data is NB + 1 data blocks as shown in FIG. 2 of the first embodiment. Assume that it is configured. The decoding unit 36 performs the decoding process on the assumption that the data blocks are input in the input order determined in advance in units of data to be encoded.

ホスト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 RAM 37. The control unit 33 manages the correspondence between the logical address and the address on the semiconductor memory unit 23 for data received from the host 24 (hereinafter referred to as host data), and the host data constitutes the encoding target data. To decide. In addition, the control unit 33 stores the identification number of the data block in the data to be encoded (for example, the data block number of the data block #i (i = 1, 2,..., NB) is i) in the RAM 37. I manage what was done. The control unit 33 controls the encoding unit 35 according to the data block number stored in the RAM 37.

あらかじめ決められたデータブロックの入力順で復号処理を行う場合でも、符号化部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 encoding unit 35, the data block input order can be freely set. it can. For example, the encoding device shown in FIG. 1 processes data blocks in an arbitrary order, holds the adjusted parity of each data block, and stores NB + 1 position-adjusted parity for the encoding target data. The final parity can be generated by taking the exclusive OR of the parity at the time when can be generated. On the other hand, in the first embodiment, the bit position where the information of the encoding target data exists can be changed without being fixed. However, as shown in FIG. In such a case, it is possible to increase the processing speed by providing a position adjustment circuit corresponding to each data block. In this embodiment, an example in which a position adjustment circuit is provided for each data block will be described.

図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 encoding unit 35 of the present embodiment. As shown in FIG. 9, the encoding unit 35 according to the present embodiment includes a selector 41, an ECC encoding circuit 1, position adjustment circuits 2-1 to 2-L (L = NB + 1), an adder 43, . The ECC encoding circuit 1 is the same as the ECC encoding circuit 1 of the first embodiment. The position adjustment circuits 2-1 to 2-L are the same as the first position adjustment circuit 2, respectively, but the number of bits for inputting 0 may not be changeable, and a fixed number of 0s are input. Also good. In the configuration example of FIG. 9, L = NB + 2, and the position adjustment circuit 2-1 corresponds to the data block # 0, the position adjustment circuit 2-2 corresponds to the data block # 1,. -L corresponds to data block # (LB + 1). Therefore, for example, the position adjustment circuit 2-1 only needs to be able to adjust the bit position corresponding to the data block # 0, and the position adjustment circuit 2-2 should adjust the bit position corresponding to the data block # 1. If you can.

次に、本実施の形態の符号化処理について説明する。図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 RAM 37 in the order of transmission from the host 24 between the first data units. It is assumed that the arrival order at the RAM 37 is not guaranteed to be the transmission order between the data units. For example, host data in three first data units, host data # 1, host data # 2, and host data # 3, are transmitted from host 24 in the order of host data # 1, host data # 2, and host data # 3. In this case, it is assumed that the arrival order to the RAM 37 is host data # 1, host data # 2, and host data # 3. On the other hand, for example, host data # 1 is composed of five second data units, host data # 1-1 to host data # 1-5, and the host data # 1-1 and host data # 1- 2,..., And host data # 1-5 are transmitted in the order, host data # 1-3 can be changed in arrival order so that it arrives before host data # 1-1.

なお、ここでは、第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 RAM 37 even when there is a change in the arrival order in the first data unit. If there is enough capacity, the same encoding process can be performed.

また、ここでは、簡単のために、第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 encoding unit 35, and instructs the start of the encoding process. Encoding processing by the encoding circuit 1 is performed (step S3). At this time, the selector 41 selects a data block to be input based on a selection signal from the control unit 33 and inputs the data block to the ECC encoding circuit 1, and the selector 42 generates a parity (intermediate) generated by the ECC encoding circuit 1. The result is output to the position adjustment circuit (any one of the position adjustment circuits 2-1 to 2-L) selected based on the selection signal. Hereinafter, the parity that is an intermediate result corresponding to the data block #i is referred to as parity #i ′.

パリティ#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 adder 43 calculates the exclusive OR of the parities # 0 to #L as the parity P of the encoding target data (step S6), and ends the process.

パリティPは、符号化対象データとともに半導体メモリ部23へ書き込まれる。半導体メモリ部23からの読み出し時には、符号化対象データとパリティPとが読み出され、復号化部36により復号化され、復号化後のデータがホスト24へ送信される。   The parity P is written into the semiconductor memory unit 23 together with the data to be encoded. At the time of reading from the semiconductor memory unit 23, the data to be encoded and the parity P are read, decoded by the decoding unit 36, and the decoded data is transmitted to the host 24.

なお、ここでは、符号化対象データの全てのデータブロックが揃ってからパリティ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 encoding generation circuit 1 are r [0], r [1], and r [2], respectively.

図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 (d2 0 0)
(4) Data block # 3 (d3 0 0 0)

データブロック#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 data block # 0 does not need to input 0 as shown in FIG. 11, it outputs r [0], r [1], r [2] as it is. . As shown in FIG. 12, the position adjustment circuit 2-2 corresponding to the data block # 1 includes an XOR gate 5. The position adjustment circuit 2-2 outputs r [2] as output bit # 0 (corresponding to the output of r [0] when position adjustment is not performed) as a process of inputting one 0, and outputs bit # 0. 1 (corresponding to the output of r [1] when position adjustment is not performed) r [0] ^ r [2] is output and output bit # 2 (output of r [2] when position adjustment is not performed) R [0] is output as a response. Note that ^ indicates an exclusive OR operation.

図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 data block # 2 includes XOR gates 5-1 and 5-2. Position adjustment circuit 2-3 outputs r [1] as output bit # 0, outputs r [2] ^ r [1] as output bit # 1, and outputs two bits as a process of inputting two 0s. # 2r [1] is output.

図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 data block # 3 includes XOR gates 5-1, 5-2, and 5-3. The position adjustment circuit 2-4 outputs r [0] ^ r [2] as output bit # 0 and r [0] ^ r [2] ^ as output bit # 1 as a process of inputting three zeros. r [1] is output, and r [2] ^ r [1] is output as output bit # 2.

図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 data block # 0, the parity # (Parity) 0 ′ generated by the ECC encoding circuit 1 is {r [2], r [1], r [0]} = { 0,1,1}. For the data block # 1, the parity # 1 ′ generated by the ECC encoding circuit 1 is {r [2], r [1], r [0]} = {0, 1, 1}. For the data block # 2, the parity # 2 ′ generated by the ECC encoding circuit 1 is {r [2], r [1], r [0]} = {0, 0, 0}. For the data block # 3, the parity # 3 ′ generated by the ECC encoding circuit 1 is {r [2], r [1], r [0]} = {0, 1, 1}.

また、図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, parity # 0 becomes {1, 0, 0}, parity # 1 becomes {1, 1, 1}, and parity # 2 becomes {0, 0, 0}. Parity # 3 is {0, 1, 1}. The finally obtained parity P is {0, 0, 1}. Therefore, the parity P for the information 1101 is 001, and the code word is 1101001.

なお、ここでは、各データブロックサイズが等しい例を説明したが、各データブロックのデータサイズは異なっていてもよい。   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 storage device 21 described in the second embodiment. Constituent elements having the same functions as those of the second embodiment are denoted by the same reference numerals as those of the second embodiment, and redundant description is omitted.

符号化部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 selectors 41 and 42 from the encoding 25 of the second embodiment, and includes the ECC encoding circuits 1-1 to 1-L instead of the ECC encoding circuit 1. This is the same as the encoding unit 35 of the embodiment. In the second embodiment, the ECC encoding circuit 1 is shared by each data block. However, in this embodiment, the same number of ECC encoding circuits 1-1 to 1-L as the data blocks are provided, and the data block The encoding process is performed by a different ECC encoding circuit for each. Thereby, the encoding process can be performed in parallel, and the processing speed can be improved as compared with the second embodiment. As described above, the operation of this embodiment is the same as that of the second embodiment.

例えば、各データブロックのデータサイズが同じの場合、符号化処理の時間は、比較例の符号化装置の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, storage device 21, semiconductor memory unit 23, 34 encoding / decoding unit, 35 encoding unit, 36 decoding unit, 41, 42 selector, 43 adder.

Claims (11)

L(Lは2以上の整数)個のデータブロックで構成される符号化対象データを符号化する符号化装置であって、
前記データブロックに対して符号化処理を行う符号化回路と、
前記符号化処理により生成されたパリティに基づいて、前記データブロックごとに前記符号化対象データ内の前記データブロックの位置に応じたパリティを生成する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:
前記位置調整回路は、前記符号化対象データ内の対応する前記データブロック以外のビット位置に0を入力する処理を行うことを特徴とする請求項1に記載の符号化装置。   The encoding apparatus according to claim 1, wherein the position adjustment circuit performs a process of inputting 0 to a bit position other than the corresponding data block in the encoding target data. 前記位置調整回路は、前記符号化対象データ内の対応する前記データブロックのビット位置より下位のビット位置に0を入力する処理を行うことを特徴とする請求項1または2に記載の符号化装置。   The encoding apparatus according to claim 1, wherein the position adjustment circuit performs a process of inputting 0 to a bit position lower than a bit position of the corresponding data block in the encoding target data. . 前記符号化回路を前記データブロックごとに備え、データブロックごとの前記符号化処理を並列に実施する、ことを特徴とする請求項1、2または3に記載の符号化装置。   The encoding apparatus according to claim 1, wherein the encoding circuit is provided for each data block, and the encoding processing for each data block is performed in parallel. 符号化対象データを符号化する符号化装置であって、
前記符号化対象データのうちの指定された位置から指定された長さのデータに対して符号化処理を行う符号化回路と、
前記符号化処理により生成されたパリティに基づいて、前記符号化対象データ内の前記データの位置に応じたパリティを生成する位置調整回路と、
を備えることを特徴とする符号化装置。
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:
前記符号を誤り訂正符号または誤り検出符号とすることを特徴とする請求項1乃至5のいずれか一項に記載の符号化装置。   6. The encoding apparatus according to claim 1, wherein the code is an error correction code or an error detection code. 前記符号をBCH符号とすることを特徴とする請求項5に記載の符号化装置。   6. The encoding apparatus according to claim 5, wherein the code is a BCH code. 前記符号をリードソロモン符号とすることを特徴とする請求項5に記載の符号化装置。   The encoding apparatus according to claim 5, wherein the code is a Reed-Solomon code. 前記符号をCRCとすることを特徴とする請求項5に記載の符号化装置。   6. The encoding apparatus according to claim 5, wherein the code is a CRC. メモリ部と、
前記メモリ部に格納する所定のデータ長のデータを符号化対象データとして符号化処理を行うことにより符号語を生成する符号化部と、
前記メモリ部から読み出された符号語に基づいて復号処理を行う復号化部と、
を備え、
前記符号化部は、
前記符号化対象データを構成する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(Lは2以上の整数)個のデータブロックで構成される符号化対象データを符号化する符号化装置における符号化方法であって、
前記データブロックに対して符号化処理を行うステップと、
前記符号化処理により生成されたパリティに基づいて、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.
JP2012066964A 2011-09-22 2012-03-23 Encoding device, storage device and encoding method Pending JP2013201479A (en)

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)

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