JP5667408B2 - Reed-Solomon code / decoding circuit, Reed-Solomon code / decoding method, and storage device - Google Patents
Reed-Solomon code / decoding circuit, Reed-Solomon code / decoding method, and storage device Download PDFInfo
- Publication number
- JP5667408B2 JP5667408B2 JP2010228864A JP2010228864A JP5667408B2 JP 5667408 B2 JP5667408 B2 JP 5667408B2 JP 2010228864 A JP2010228864 A JP 2010228864A JP 2010228864 A JP2010228864 A JP 2010228864A JP 5667408 B2 JP5667408 B2 JP 5667408B2
- Authority
- JP
- Japan
- Prior art keywords
- error
- search
- reed
- polynomial
- chain
- 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.)
- Active
Links
Images
Landscapes
- Error Detection And Correction (AREA)
Description
本発明は、リードソロモン符号復号化回路、リードソロモン符号復号化方法、および、リードソロモン符号復号化回路を備えた記憶装置に関する。 The present invention relates to a Reed-Solomon code decoding circuit, a Reed-Solomon code decoding method, and a storage device including the Reed-Solomon code decoding circuit.
近年、ハードディスク記憶装置を代替する記憶装置として、半導体のフラッシュメモリで構成されたSSD(Solid State Drive)記憶装置が注目を集めている。SSD記憶装置は、可動部品を含まないため、動作の信頼性が高い、アクセス時間が短い、小型化し易い、など多くの長所を有している。一方で、SSD記憶装置は、その構成要素であるフラッシュメモリが超微細加工技術を駆使して製造されているため、一部のビット欠けを除去できない、あるいは、データ書き込み・消去に伴う疲労現象のために、データの書き込み回数に制限(例えば、10万回)がある、などの欠点も有している。そこで、SSD記憶装置においては、これらの欠点をカバーするために、データの誤り訂正技術やデータの書き込み回数の平準化技術など様々な技術が導入されている。 In recent years, an SSD (Solid State Drive) storage device composed of a semiconductor flash memory has attracted attention as a storage device that replaces a hard disk storage device. Since the SSD storage device does not include moving parts, it has many advantages such as high operation reliability, short access time, and easy miniaturization. On the other hand, in the SSD storage device, the flash memory, which is a component of the SSD storage device, is manufactured using ultra-fine processing technology. For this reason, there is a disadvantage that the number of data writing is limited (for example, 100,000 times). Therefore, in the SSD storage device, various techniques such as a data error correction technique and a data writing frequency leveling technique have been introduced to cover these drawbacks.
SSD記憶装置における誤り訂正のための符号としては、いわゆるリードソロモン符号が用いられている。リードソロモン符号は、複数ワードの誤りを訂正することが可能な、訂正能力に優れた符号であり、すでに、DVD(Digital Versatile Disk)、衛星通信、地上波ディジタル放送などの分野で広く応用されている。一方、リードソロモン符号における、とくに、復号化の手順や回路は、決して簡単といえるものではなく、それゆえ、その復号化に要する時間が長くなるという弱点も有している。 A so-called Reed-Solomon code is used as a code for error correction in the SSD storage device. Reed-Solomon code is a code that can correct errors in multiple words and has excellent correction capability, and has already been widely applied in fields such as DVD (Digital Versatile Disk), satellite communications, and terrestrial digital broadcasting. Yes. On the other hand, in particular, the decoding procedure and circuit in the Reed-Solomon code are never simple, and therefore have a weak point that the time required for the decoding becomes long.
リードソロモン符号の符号化・復号化の手順や回路については、符号理論やその応用を解説した教科書(例えば、非特許文献1)などに示されている。また、特許文献1には、リードソロモン符号の復号化回路の中でもとくに複雑とされているチェン探索回路(チェン・サーチ回路)の回路構成を簡略化する技術が開示されている。
Reed-Solomon code encoding / decoding procedures and circuits are described in textbooks (for example, Non-Patent Document 1) that explain coding theory and its application.
SSD記憶装置においてリードソロモン符号の復号化に時間が掛かることは、SSD記憶装置に記憶されたデータのアクセス時間が増大することを意味し、そのアクセス時間の増大は、SSD記憶装置の主たる性能を低下させることを意味する。多くの場合、SSD記憶装置は、ハードディスク記憶装置と同様に、コンピュータの補助記憶装置として用いられるが、コンピュータの多くのユーザにとって、SSD記憶装置などの補助記憶装置のアクセス時間は短いほうが好ましい。コンピュータの処理能力は、しばしば、補助記憶装置の性能に制約される場合があるからである。 The time required to decode the Reed-Solomon code in the SSD storage device means that the access time of data stored in the SSD storage device increases, and the increase in the access time reduces the main performance of the SSD storage device. It means to lower. In many cases, an SSD storage device is used as an auxiliary storage device of a computer like a hard disk storage device. However, for many users of a computer, it is preferable that an access time of an auxiliary storage device such as an SSD storage device is short. This is because the processing power of the computer is often limited by the performance of the auxiliary storage device.
そこで、本発明の目的は、リードソロモン符号の復号化時間を短縮することができるリードソロモン符号・復号化回路、リードソロモン符号・復号化方法、および、そのリードソロモン符号・復号化回路を備えた記憶装置を提供することにある。 Accordingly, an object of the present invention is to provide a Reed-Solomon code / decoding circuit, a Reed-Solomon code / decoding method, and a Reed-Solomon code / decoding circuit that can shorten the decoding time of the Reed-Solomon code. To provide a storage device.
本発明に係るリードソロモン符号・復号化回路は、リードソロモン符号の生成多項式を用いて、複数のシンボルからなる入力シンボル列に対するシンドロームを算出するシンドローム算出部と、そのシンドローム算出部により算出されたシンドロームを用いて、前記入力シンボル列に含まれる誤りシンボルの数および誤り位置多項式の係数を算出する誤り位置多項式係数算出部と、その算出された係数を有する誤り位置多項式に基づき、前記入力シンボル列に含まれる誤りシンボルの位置である誤り位置を探索する誤り位置探索部と、その探索された誤り位置における誤りシンボルを訂正する誤り訂正部と、を含んで構成される。 A Reed-Solomon code / decoding circuit according to the present invention uses a Reed-Solomon code generator polynomial to calculate a syndrome for an input symbol sequence composed of a plurality of symbols, and a syndrome calculated by the syndrome calculation unit Is used to calculate the number of error symbols included in the input symbol sequence and the coefficient of the error locator polynomial, and to the input symbol sequence based on the error locator polynomial having the calculated coefficient. An error position search unit that searches for an error position that is the position of the included error symbol and an error correction unit that corrects an error symbol at the searched error position are configured.
そして、その誤り位置探索部は、前記入力シンボル列のシンボルの位置を表す位置データを順次変更して、前記誤り位置多項式の値が0になる誤り位置を探索する複数のチェン探索回路と、前記複数のチェン探索回路のそれぞれに1つずつ対応するように設けられ、前記位置データが順次変更されていくとき、前記複数のチェン探索回路のそれぞれによって探索される前記誤り位置の数をそれぞれカウントする複数のカウンタと、前記複数のカウンタの値を加算して出力する加算器と、前記複数のチェン探索回路の動作を制御する探索制御回路と、を備え、その探索制御回路は、前記入力シンボル列のそれぞれ異なるシンボルの位置についての誤り位置の探索を、前記複数のチェン探索回路に互いに独立に並行して実行させ、前記加算器の出力が前記誤りシンボルの数と等しくなったとき、前記チェン探索回路における前記誤り位置の探索を終了させることを特徴とする。 The error position search unit sequentially changes position data representing the position of the symbol of the input symbol sequence, and searches for an error position where the value of the error position polynomial is 0, Each of the plurality of chain search circuits is provided so as to correspond to each of the plurality of chain search circuits. When the position data is sequentially changed, the number of the error positions searched by each of the plurality of chain search circuits is counted. A plurality of counters, an adder that adds and outputs the values of the plurality of counters, and a search control circuit that controls operations of the plurality of chain search circuits, the search control circuit including the input symbol string The plurality of chain search circuits execute an error position search for each different symbol position independently and in parallel with each other. There when it becomes equal to the number of the error symbols, characterized in that to terminate the search for the error location in the Chien search circuit.
本発明のリードソロモン符号・復号化回路では、誤り位置の探索が複数のチェン探索回路により互いに独立に並行して行われるので、誤り位置探索時間が短縮される。しかも、その複数のチェン探索回路により検知された誤り位置の数が誤り位置多項式係数算出部で求められていた誤りシンボルの数と同じになったとき、その複数のチェン探索回路における誤り位置の探索は終了されるので、誤り位置探索時間は、さらに短縮される。以上のようにして、誤り位置探索時間が短縮される結果として、本発明のリードソロモン符号・復号化回路における復号化時間が短縮される。 In the Reed-Solomon encoding / decoding circuit of the present invention, the error position search time is shortened because the error position search is performed independently and in parallel by a plurality of chain search circuits. In addition, when the number of error positions detected by the plurality of chain search circuits becomes the same as the number of error symbols obtained by the error position polynomial coefficient calculation unit, the error position search in the plurality of chain search circuits is performed. Is terminated, the error location search time is further shortened. As described above, as a result of shortening the error position search time, the decoding time in the Reed-Solomon code / decoding circuit of the present invention is shortened.
本発明によれば、リードソロモン符号の復号化時間を短縮することができるリードソロモン符号・復号化回路、リードソロモン符号・復号化方法、および、そのリードソロモン符号・復号化回路を備えた記憶装置が提供される。 According to the present invention, a Reed-Solomon code / decoding circuit, a Reed-Solomon code / decoding method, and a storage device including the Reed-Solomon code / decoding circuit can shorten the decoding time of the Reed-Solomon code. Is provided.
以下、本発明の実施形態について、図面を参照して詳細に説明する。 Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
図1は、本発明の実施形態に係るSSD記憶装置の機能ブロックの構成の例を示した図である。
図1に示すように、SSD記憶装置2は、ホストバス3を介してホスト装置1に接続されて用いられる。ここで、ホスト装置1は、SSD記憶装置2にデータやプログラムを記憶するコンピュータ、またはコンピュータを応用した様々な制御装置などである。このとき、ホスト装置1とSSD記憶装置2とを接続するホストバス3としては、通常、SCSI(Small Computer System Interface)バス、IDE(Integrated Drive Electronics)バスなどが用いられる。
FIG. 1 is a diagram showing an example of a functional block configuration of an SSD storage device according to an embodiment of the present invention.
As shown in FIG. 1, the
また、図1において、SSD記憶装置2は、SSD制御部4およびSSD記憶媒体部5により構成される。そして、SSD制御部4は、ホストインタフェース部41、コマンド処理制御部42、ページデータ書込部43、ページデータ読出部45、ブロック状態管理部47などを含んで構成される。ページデータ書込部43は、リードソロモン符号(以下、RS符号と略称)・符号化回路44を備え、また、ページデータ読出部45は、RS符号・復号化回路46を備えている。一方、SSD記憶媒体部5は、複数のNAND型フラッシュメモリチップ(以下、NFCと略称)51を含んで構成される。図1の例では、SSD記憶媒体部5は、24個のNFC51により構成されている。なお、図1において、矢印付きの太線は、データの流れを示し、矢印付きの破線は、概略の制御信号の流れを示す。
In FIG. 1, the
図2は、本発明の実施形態に係るNFC51におけるブロック、ページおよびセクタの構成の例を示した図である。図2(a)および(b)に示すように、NFC51は、Nb個のブロック52により構成され、また、1つのブロック52は、N個のページ53により構成される。なお、NFC51において、ブロック52は、データ消去の単位であり、また、ページ53は、データの書き込みまたは読み出しの単位である。
FIG. 2 is a diagram illustrating an example of the configuration of blocks, pages, and sectors in the NFC 51 according to the embodiment of the present invention. As shown in FIGS. 2A and 2B, the NFC 51 is composed of
続いて、図2(c)に示すように、1つのページ53には、ヘッダ(26B)と8つのセクタ(各536B)とからなるページデータが記憶される(以下、Bは、バイトの略、bは、ビットの略とし、1B=8bであるとする)。さらに、図2(d)に示すように、1つのセクタは、データ(512B)と、CRC(Cyclic Redundancy Check)検査符号(4B)と、RS訂正符号(20B)と、によって構成される。 Subsequently, as shown in FIG. 2C, page data including a header (26B) and eight sectors (each 536B) is stored in one page 53 (hereinafter, B is an abbreviation of a byte). , B is an abbreviation for bits, and 1B = 8b). Furthermore, as shown in FIG. 2 (d), one sector includes data (512B), a CRC (Cyclic Redundancy Check) check code (4B), and an RS correction code (20B).
従って、1つのページ53には、4kBのデータが記憶される。このとき、1つのブロック52を構成するページ53の数Nを、N=64とすれば、1つのブロック52には、256kBのデータが記憶されることになる。そして、1つのNFC51の記憶容量が、例えば、4GBである場合には、1つのNFC51を構成するブロック52の数Nbは、16KB(Nb=16,384)となる。
Accordingly, 4 kB of data is stored in one page 53. At this time, if the number N of pages 53 constituting one
再び、図1戻って、SSD制御部4の動作について説明する。
図1において、ホストインタフェース部41は、ホストバス3に対する電気的なインタフェースを整合させるとともに、ホストバス3に定義された通信のプロトコルに従って、ホスト装置1との間でコマンドやデータなどの送受信を行う。
Returning to FIG. 1 again, the operation of the
In FIG. 1, the
コマンド処理制御部42は、ホストインタフェース部41を介して、ホスト装置1から送信される各種のコマンド(例えば、ページデータ書き込みコマンド、ページデータ読み出しコマンドなど)を受信し、それぞれのコマンドに応じてあらかじめ定められた処理を実行する。
The command
例えば、コマンド処理制御部42がホスト装置1からページデータ書き込みコマンドを受信した場合には、コマンド処理制御部42は、ホストインタフェース部41に対し、そのページデータ書き込みコマンドに付属または後続してホスト装置1から送信されるページアドレスおよびデータを受信し、その受信したページアドレスおよびデータを図示しない一時データ記憶部に格納することを指示する。さらに、ページデータ書込部43に対し、その一時データ記憶部に格納されたデータを、前記ページアドレスで指定されるNFC51内のページ53へ書き込むことを指示する。
For example, when the command
ページデータ書込部43は、コマンド処理制御部42からページデータの書き込み指示を受けると、図示しない一時データ記憶部に格納されたデータを、図2(c)に示した形式のページデータに整形する。ページデータ書込部43は、そのページデータへの整形に際しては、セクタデータごとに、図示しないCRC生成回路を用いてCRC検査符号(4B)を生成し、また、RS符号・符号化回路44を用いてRS訂正符号(20B)を生成する。
When the page
さらに、ページデータ書込部43は、当該ページデータ書き込みコマンドに付属したページアドレス(論理アドレス)を、所定の変換規則に従って、SSD記憶媒体部5内のすべてのNFC51に含まれるページ53を一意に識別可能な物理アドレスに変換し、前記整形したページデータを、その物理アドレスによって識別されるNFC51内のページ53へ書き込む。
Further, the page
また、コマンド処理制御部42は、ホスト装置1からページデータの読み出しコマンドを受信した場合には、ページデータ読出部45に対し、そのコマンドに付属したページアドレスで指定されるNFC51内のページ53からページデータを読み出すことを指示する。さらに、コマンド処理制御部42は、ページデータ読出部45によって、そのページデータがNFC51から読み出されたときには、ホストインタフェース部41に対し、その読み出されたページデータからヘッダ、CRC検査符号およびRS訂正符号を除去したデータをホスト装置1へ送信することを指示する。
When the command
ページデータ読出部45は、コマンド処理制御部42からページデータの読み出し指示を受けると、当該ページデータ読み出しコマンドに付属したページアドレス(論理アドレス)を、所定の変換規則に従って、SSD記憶媒体部5内のすべてのNFC51に含まれるページ53を一意に識別可能な物理アドレスに変換し、その物理アドレスによって識別されるNFC51内のページ53からページデータを読み出す。
When the page data read
また、ページデータ読出部45は、読み出したページデータからヘッダ、CRC検査符号およびRS訂正符号を除去するに際しては、RS符号・復号化回路46を用いて、図2(d)に示したセクタデータの内のデータおよびCRC検査符号部分におけるデータ誤りを訂正し、さらに、図示しないCRC検査回路を用いて、データ部分におけるデータ誤りの有無(すなわち、誤訂正の有無)を検査する。
The page
また、ブロック状態管理部47は、図示しない欠陥ブロックテーブルなどを有し、その欠陥ブロックテーブルに、欠陥ブロックを識別するブロックのアドレス(物理アドレス)を記憶しておき、ページデータ書込部43によるページデータの書き込みに際し、その欠陥ブロックが使用されないように管理する。なお、欠陥ブロックとは、ブロックデータを消去できないようなブロック52、ページデータの書き込みができないページ53や読み出したページデータに訂正不可能な誤りが生じるようなページ53が所定数以上含まれるようなブロック52などをいう。
The block
なお、SSD制御部4は、以上の他にも、各ページ53へのページデータの書き込み回数を平準化するような機能を有する機能ブロックなど、様々な機能ブロックを含んでいるが、ここでは、それらの機能ブロックの説明を省略する。
In addition to the above, the
続いて、本実施形態で用いられるRS符号の概要について説明する。RS符号は、複数のシンボル誤りを訂正することが可能な符号としてよく知られている。ここで、シンボルとは、例えば、mビットのデータであり、誤り訂正は、シンボルを単位として行われる。なお、シンボルがmビットである場合、RS符号により訂正可能な符号長(追加される訂正用の冗長シンボルを含む)の最大値は、2m−1シンボルとされている。 Then, the outline | summary of RS code used by this embodiment is demonstrated. The RS code is well known as a code that can correct a plurality of symbol errors. Here, the symbol is, for example, m-bit data, and error correction is performed in units of symbols. When the symbol is m bits, the maximum value of the code length that can be corrected by the RS code (including a redundant symbol for correction to be added) is 2 m −1 symbols.
一般には、1シンボルを1バイトのデータに対応させることが多いが、本実施形態の場合、図2(d)に示したように、1つのセクタデータは、536Bであるので、536Bのデータにおける誤り訂正を可能にするために、m=10とする。すなわち、本実施形態では、1シンボルは、10ビットのデータであるとする。そのため、セクタを構成する各バイトのデータ(8ビット)には、例えば、“00”など、所定の2ビットのデータが追加されて、10ビットのデータ、つまり、シンボルとして取り扱われる。 In general, one symbol is often associated with 1-byte data. However, in the present embodiment, as shown in FIG. 2D, one sector data is 536B, so in the data of 536B. In order to enable error correction, m = 10. That is, in this embodiment, it is assumed that one symbol is 10-bit data. Therefore, predetermined 2-bit data such as “00” is added to the data (8 bits) of each byte constituting the sector, and is handled as 10-bit data, that is, a symbol.
また、RS符号においては、t個のシンボル誤りを訂正するには、2t個の冗長シンボルを追加する必要がある。tの値は、訂正対象のデータに含まれる誤り率などに応じて、適宜定めることができるが、ここでは、例えば、t=8であるとする。従って、冗長シンボルの総ビット数は、10ビット×2×8=160ビットとなり、この160ビットの冗長シンボルのデータを記憶するために、図2(d)に示したセクタデータでは、RS訂正符号20B(=160ビット)が用意されている。 Further, in the RS code, it is necessary to add 2t redundant symbols in order to correct t symbol errors. The value of t can be determined as appropriate according to the error rate included in the data to be corrected. Here, for example, it is assumed that t = 8. Therefore, the total number of bits of the redundant symbol is 10 bits × 2 × 8 = 160 bits. In order to store the 160-bit redundant symbol data, the sector data shown in FIG. 20B (= 160 bits) is prepared.
すなわち、本実施形態では、RS符号・符号化回路44(図1参照)は、セクタデータ(図2参照)の内、512Bのデータおよび4BのCRC検査符号の各バイトのデータを10ビット化した516シンボルを入力シンボル列として、16シンボルのRS訂正符号を生成し、入力シンボル列に追加する。 That is, in the present embodiment, the RS code / encoding circuit 44 (see FIG. 1) converts the 512B data and the data of each byte of the 4B CRC check code into 10 bits in the sector data (see FIG. 2). Using 516 symbols as an input symbol string, a 16-symbol RS correction code is generated and added to the input symbol string.
ここで、RS符号の定義によれば、16シンボルのRS訂正符号を生成する生成多項式G(X)は、次に示す式(1)で表される。
G(X)=(X−α)(X−α2)(X−α3)・・・(X−α16) 式(1)
ここで、αは、いわゆるガロア拡大体GF(210)の元であり、10次の原始多項式(例えば、X10+X3+1=0)の根である。
Here, according to the definition of the RS code, a generator polynomial G (X) for generating a 16-symbol RS correction code is expressed by the following equation (1).
G (X) = (X−α) (X−α 2 ) (X−α 3 ) (X−α 16 ) Formula (1)
Here, α is an element of a so-called Galois extension field GF (2 10 ) and a root of a 10th-order primitive polynomial (for example, X 10 + X 3 + 1 = 0).
また、RS符号・符号化回路44への入力シンボル列(以下、入力メッセージという)によって表されるメッセージ多項式M(X)は、(入力メッセージのシンボル数−1)次の多項式で表される(本実施形態の場合、515次の多項式となる)。そして、そのメッセージ多項式の係数は、各シンボルに対応するガロア拡大体GF(210)の元で表される。
Further, a message polynomial M (X) represented by an input symbol string (hereinafter referred to as an input message) to the RS code /
ここで、RS訂正符号を表す多項式(以下、パリティ多項式という)をP(x)と表すと、パリティ多項式P(x)は、次に示す式(2)により求めることができる。
P(X)=X16M(X)moduloG(X) 式(2)
ここで、X16M(X)moduloG(X)は、多項式X16M(X)を多項式G(X)で割った剰余を表す。
Here, when a polynomial representing an RS correction code (hereinafter referred to as a parity polynomial) is represented as P (x), the parity polynomial P (x) can be obtained by the following equation (2).
P (X) = X 16 M (X) modulo G (X) Formula (2)
Here, X 16 M (X) modulo G (X) represents a remainder obtained by dividing the polynomial X 16 M (X) by the polynomial G (X).
従って、パリティ多項式P(X)は、高々15次の多項式であり、具体的には、次の式(3)で表すことができる。
P(X)=a15X15+a14X14+・・・+a1X+a0 式(3)
ここで、パリティ多項式P(X)の係数a15,a14,・・・,a1,a0は、いずれも、ガロア拡大体GF(210)の元である。これらの16個の係数は、入力メッセージに付加される16シンボル(=160ビット=20B)のRS訂正符号に他ならない。
Therefore, the parity polynomial P (X) is a 15th-order polynomial at most, and can be specifically expressed by the following equation (3).
P (X) = a 15 X 15 + a 14 X 14 +... + A 1 X + a 0 formula (3)
Here, the coefficients a 15 , a 14 ,..., A 1 , a 0 of the parity polynomial P (X) are all elements of the Galois extension field GF (2 10 ). These 16 coefficients are nothing but the 16 symbols (= 160 bits = 20B) RS correction code added to the input message.
従って、入力メッセージにRS訂正符号が追加されて得られる符号化多項式C(X)は、次の式(4)で表すことができる。
C(X)=X16M(X)+P(X)
=Q(X)G(X) 式(4)
すなわち、符号化多項式C(X)は、生成多項式G(X)で割り切ることができる。そして、Q(X)は、そのときの商を表す多項式である。
Therefore, the encoding polynomial C (X) obtained by adding the RS correction code to the input message can be expressed by the following equation (4).
C (X) = X 16 M (X) + P (X)
= Q (X) G (X) Formula (4)
That is, the encoding polynomial C (X) can be divided by the generator polynomial G (X). Q (X) is a polynomial representing the quotient at that time.
以上の説明から分かるように、RS符号・符号化回路44は、式(2)に従ってパリティ多項式P(X)の係数を算出する回路によって構成される。なお、そのパリティ多項式P(X)の係数を算出する回路は、一般に周知の回路であるので、ここでは、その詳細な説明を省略する。
As can be seen from the above description, the RS code /
次に、複数シンボルの誤りを訂正するRS符号の復号化手順の概略について説明する。本実施形態では、RS符号の復号化、すなわち、SSD記憶媒体部5からの読み出しデータの誤り訂正は、NFC51のページ53から読み出されたページデータのセクタデータ(図2(d)参照)を単位として行われる。 Next, an outline of an RS code decoding procedure for correcting an error of a plurality of symbols will be described. In the present embodiment, the decoding of the RS code, that is, the error correction of the read data from the SSD storage medium unit 5 is performed by using the sector data of the page data read from the page 53 of the NFC 51 (see FIG. 2D). Done as a unit.
なお、セクタデータの復号化においては、符号化(RS訂正符号の生成)の場合と同様に、読み出されたページデータのセクタデータの内、データ(512B)+CRC検査符号(4B)については、各バイトのデータ(8ビット)に、例えば、“00”など、所定の2ビットのデータが追加されて、10ビットのデータ、つまり、シンボルとして取り扱われる。また、20B(160ビット)のRS訂正符号は、10ビットの16個のシンボルに変換される。 In the sector data decoding, as in the case of encoding (RS correction code generation), the data (512B) + CRC check code (4B) in the sector data of the read page data is as follows. For example, predetermined 2-bit data such as “00” is added to the data (8 bits) of each byte, and the data is handled as 10-bit data, that is, a symbol. Also, the 20B (160 bits) RS correction code is converted into 16 symbols of 10 bits.
従って、RS符号・復号化回路46(図1参照)には、全532シンボルが入力されることになる。そこで、RS符号・復号化回路46へ入力されるシンボルを係数とする多項式を、以下、慣用に従って受信多項式R(X)と呼ぶことにすると、受信多項式R(X)は、Xの531次の多項式で表される。
Accordingly, all 532 symbols are input to the RS code / decoding circuit 46 (see FIG. 1). Therefore, when a polynomial having a symbol input to the RS encoding /
以下、RS符号・復号化回路46では、次の手順に従って、復号化すなわち誤りシンボルの訂正が行われる。
(手順1)受信多項式R(X)に基づき、シンドローム(S1,S2,・・・,S16)を算出する。
(手順2)算出されたシンドローム(S1,S2,・・・,S16)を用いて、誤り位置多項式σ(X)の最高次数(以下、単に、次数という)と係数を求める。
(手順3)誤り位置多項式σ(X)を用いて、誤りシンボルの位置を求める。
(手順4)誤りシンボルを訂正する。
Hereinafter, the RS code /
(Procedure 1) Based on the reception polynomial R (X), syndromes (S 1 , S 2 ,..., S 16 ) are calculated.
(Procedure 2) Using the calculated syndromes (S 1 , S 2 ,..., S 16 ), the highest order (hereinafter simply referred to as the order) and coefficient of the error position polynomial σ (X) are obtained.
(Procedure 3) The position of the error symbol is obtained using the error position polynomial σ (X).
(Procedure 4) Correct the error symbol.
図3は、本発明の実施形態に係るRS符号・復号化回路46の構成の例を示した図である。図3に示すように、RS符号・復号化回路46は、シンドローム算出部461、誤り位置多項式係数算出部462、誤り位置探索部463、および、誤り訂正部464によって構成される。なお、これらのブロックの機能は、前記の(手順1)〜(手順4)にほぼ対応している。また、図3において、RS符号・復号化回路46に入力される入力シンボル列は、NFC51のページ53から読み出されたページデータのセクタデータに基づく全532シンボルにより構成され、受信多項式R(X)の係数に相当する。
FIG. 3 is a diagram showing an example of the configuration of the RS encoding /
シンドローム算出部461は、(手順1)を実現するための周知のシンドローム算出回路によって構成される。ここで、シンドロームSi(i=1,2,・・・,16)とは、次の式(5)によって算出される値である。
Si=R(αi) (i=1,2,・・・,16) 式(5)
なお、αi(i=1,2,・・・,16)は、生成多項式G(X)=0の根である。つまり、シンドロームSi(i=1,2,・・・,16)とは、受信多項式R(X)に生成多項式(G(X)=0)の根を代入することにより得られた値ということができる。
The
S i = R (α i ) (i = 1, 2,..., 16) Equation (5)
Α i (i = 1, 2,..., 16) is the root of the generator polynomial G (X) = 0. That is, the syndrome S i (i = 1, 2,..., 16) is a value obtained by substituting the root of the generator polynomial (G (X) = 0) into the reception polynomial R (X). be able to.
なお、ここで、受信多項式R(X)に誤りがなかった場合には、受信多項式R(X)と符号化多項式C(X)は同じ、つまり、R(X)=C(X)となる。このとき、式(4)および式(1)を参照すると容易に分かるように、すべてのシンドロームSiは0、すなわち、Si=0(i=1,2,・・・,16)となる。逆にいえば、すべてのシンドロームSi(i=1,2,・・・,16)が0となった場合には、訂正すべき誤りは存在しないことになるので、その後の誤り訂正の処理((手順2)〜(手順4))を行う必要はない。 Here, when there is no error in the reception polynomial R (X), the reception polynomial R (X) and the encoding polynomial C (X) are the same, that is, R (X) = C (X). . At this time, as can be easily understood by referring to the equations (4) and (1), all the syndromes S i are 0, that is, S i = 0 (i = 1, 2,..., 16). . In other words, when all the syndromes S i (i = 1, 2,..., 16) are 0, there is no error to be corrected. It is not necessary to perform ((Procedure 2) to (Procedure 4)).
一方、シンドロームSi(i=1,2,・・・,16)の内、1つでも0でないものがあった場合には、受信多項式R(X)に誤りが存在することを意味する。そこで、次に、(手順2)の処理として、誤り位置多項式係数算出部462は、誤り位置多項式σ(X)の次数と係数を求める。
On the other hand, if any one of the syndromes S i (i = 1, 2,..., 16) is not 0, it means that there is an error in the reception polynomial R (X). Therefore, next, as the processing of (Procedure 2), the error locator polynomial
誤り位置多項式σ(X)は、次の式(6)によって定義される。
σ(X)=1+σ1X+σ2X2+・・・+σkXk 式(6)
ここで、誤り位置多項式σ(X)の次数kは、誤りシンボルの数である。また、誤り位置多項式σ(X)の係数σj(j=1,2,・・・,k)は、次の式(7)によって定義される。
σ (X) = 1 + σ 1 X + σ 2 X 2 +... + σ k X k equation (6)
Here, the order k of the error locator polynomial σ (X) is the number of error symbols. Further, the coefficient σ j (j = 1, 2,..., K) of the error position polynomial σ (X) is defined by the following equation (7).
まず、誤り位置多項式係数算出部462は、式(7)から誤り位置多項式σ(X)の次数kを求める。誤り位置多項式係数算出部462は、まず、仮の次数k’の初期値としてk’=t(t=8:訂正可能なシンボル数の最大値)とおき、シンドロームSi(i=1,2,・・・,2k−1)で構成された式(7)の左辺の行列式の値を求める。そして、その行列式の値が0でなかった場合には、次数k=k’=tと定める。
First, the error locator polynomial
一方、式(7)の左辺の行列式の値が0であった場合には、誤り位置多項式係数算出部462は、k’=k’−1として、同様に、式(7)の左辺の行列式の値を求め、以下、その行列式の値が0でなくなるまで、k’を1つずつ減じながら、同様の処理を繰り返す。そして、式(7)の左辺の行列式の値が0でなくなったときのk’の値を、誤り位置多項式σ(X)の次数kと定める(すなわち、k=k’)。こうして求められた誤り位置多項式σ(X)の次数kは、受信多項式R(X)に存在する誤りシンボルの数である(以下、誤りシンボルの数もkと表記する)。
On the other hand, when the value of the determinant on the left side of Expression (7) is 0, the error locator polynomial
以上のようにして、誤り位置多項式σ(X)の次数kが定められると、誤り位置多項式係数算出部462は、式(7)に基づき、誤り位置多項式σ(X)の係数σj(j=1,2,・・・,k)を求める。
As described above, when the order k of the error locator polynomial σ (X) is determined, the error locator
なお、誤り位置多項式σ(X)の係数σj(j=1,2,・・・,k)を求める具体的なアルゴリズムとしては、バーレカンプ・マッシイ法(BM法)など各種のアルゴリズムが開発され、また、そのアルゴリズムに基づく回路も開発されている。従って、そのような周知の回路を用いて誤り位置多項式係数算出部462を構成することができるので、ここでは、その説明を省略する。
As specific algorithms for obtaining the coefficients σ j (j = 1, 2,..., K) of the error locator polynomial σ (X), various algorithms such as the Balecamp Massey method (BM method) have been developed. A circuit based on the algorithm has also been developed. Therefore, since the error locator polynomial
次に、誤り位置探索部463は、(手順3)の処理として、誤り位置多項式σ(X)を用いて、誤りシンボルの位置を求める。式(6)で表された誤り位置多項式σ(X)は、k個の誤り位置をβj(j=1,2,・・・,k)とした場合には、次の式(8)が成り立つことが知られている。
σ(X)=(1+β1X)(1+β2X)・・・(1+βkX) 式(8)
すなわち、式(8)によれば、誤り位置βj(j=1,2,・・・,k)は、誤り位置多項式(σ(X)=0)の根の逆数によって与えられる。
Next, the error
σ (X) = (1 + β 1 X) (1 + β 2 X) (1 + β k X) Equation (8)
That is, according to equation (8), the error position β j (j = 1, 2,..., K) is given by the inverse of the root of the error position polynomial (σ (X) = 0).
誤り位置多項式(σ(X)=0)の根の逆数である誤り位置βj(j=1,2,・・・,k)を求める具体的な回路としてチェン探索回路が知られている。チェン探索回路は、式(6)を計算する回路であり、その回路にすべての誤り位置βjの逆数(1/βj)を代入してみて、σ(X)=0となるときのβjを探索するものである。 A chain search circuit is known as a specific circuit for obtaining an error position β j (j = 1, 2,..., K) that is the inverse of the root of the error position polynomial (σ (X) = 0). The Chien search circuit is a circuit that calculates the equation (6). When the inverse number (1 / β j ) of all error positions β j is substituted into the circuit, β when σ (X) = 0 is obtained. j is searched.
ここで、本実施形態の場合、誤り位置多項式(σ(X)=0)の根になりえるのは、ガロア拡大体GF(210)の1023個の元(α0,α1,α2,・・・,α1022)のうちのいずれかである。従って、チェン探索回路を用いて誤り位置βj(j=1,2,・・・,k)を求めようとすると、チェン探索回路による1023回の演算が必要となり、誤り位置の探索時間が長くなる。そこで、本実施形態では、チェン探索回路を複数用い、かつ、誤り位置の個数kがこの時点で既知であることを利用して、すなわち、図3に示す誤り位置探索部463を用いることにより、誤り位置の探索時間の短縮を図る。
Here, in this embodiment, the root of the error locator polynomial (σ (X) = 0) can be 1023 elements (α 0 , α 1 , α 2 ) of the Galois extension field GF (2 10 ). ,..., Α 1022 ). Therefore, if an error position β j (j = 1, 2,..., K) is to be obtained using the chain search circuit, 1023 operations are required by the chain search circuit, and the error position search time is long. Become. Therefore, in the present embodiment, by using a plurality of chain search circuits and using the fact that the number k of error positions is known at this time, that is, by using the error
図3に示すように、誤り位置探索部463は、探索制御回路4631と、2つのチェン探索回路4632(CS#0,CS#1)と、その2つのチェン探索回路4632(CS#0,CS#1)で誤り位置が検知されたことをそれぞれカウントする2つのエラーカウンタ4633(EC#0,EC#1)と、2つのチェン探索回路4632(CS#0,CS#1)で検知された誤り位置のデータを格納する誤り位置格納レジスタ4634と、2つのエラーカウンタ4633(EC#0,EC#1)の内容を加算する加算器4635と、を含んで構成される。
As shown in FIG. 3, the error
図4は、本発明の実施形態に係るRS符号・復号化回路46における誤り位置探索の処理の流れの例を示した図である。ここでは、図3を参照しつつ、図4を用いて、誤り位置探索部463で行われる誤り位置探索の処理の流れについて説明する。
FIG. 4 is a diagram showing an example of the flow of error position search processing in the RS encoding /
図4に示すように、誤り位置探索部463における誤り位置探索処理は、誤り位置多項式係数算出部462から、所定の起動指示信号を受信することによって開始される。なお、誤り位置多項式係数算出部462からその起動信号が供給されるときには、誤り位置多項式係数算出部462で求められた、誤りシンボル数kおよび誤り位置多項式σ(X)の係数σj(j=1,2,・・・,k)が併せて供給される。
As illustrated in FIG. 4, the error position search process in the error
そこで、探索制御回路4631は、誤り位置多項式係数算出部462からの起動指示信号を受信すると、まず、誤り位置探索部463に含まれるカウンタ類を初期化する(ステップS11)。ここで、カウンタ類とは、2つのエラーカウンタ4633(EC#0,EC#1)および2つのチェン探索回路4632(CS#0,CS#1)にそれぞれ含まれる誤り位置カウンタ(図示せず、以下では、その値をj0,j1で表す)を指す。従って、カウンタ類の初期化とは、2つのエラーカウンタ4633(EC#0,EC#1)をゼロクリアし、一方のチェン探索回路4632(CS#0)に含まれる誤り位置カウンタに値266をセットし(j0=266)、他方のチェン探索回路4632(CS#1)に含まれる誤り位置カウンタに値532をセットする(j1=532)ことを意味する。
Therefore, when receiving the activation instruction signal from the error position polynomial
なお、値532は、本実施形態における10ビット化されたセクタデータ(CRC検査符号およびRS訂正符号をふくむ)のデータ長、つまり、入力シンボル列のシンボル数を意味している。また、値266は、入力シンボル列のシンボル数の1/2の値である。すなわち、本実施形態では、チェン探索回路4632(CS#0)により、入力シンボル列の前半部分における誤り位置を探索し、チェン探索回路4632(CS#1)により、入力シンボル列の後半部分における誤り位置を探索する。 The value 532 means the data length of 10-bit sector data (including the CRC check code and RS correction code) in this embodiment, that is, the number of symbols in the input symbol string. The value 266 is a value that is ½ of the number of symbols in the input symbol string. That is, in this embodiment, an error position in the first half of the input symbol string is searched for by the chain search circuit 4632 (CS # 0), and an error in the second half of the input symbol string is searched by the chain search circuit 4632 (CS # 1). Search for a location.
次に、2つのチェン探索回路4632(CS#0,CS#1)は、探索制御回路4631からの誤り位置の探索開始の指示を受けると、与えられた誤り位置(j0,j1)に対する誤り位置多項式σ(X)の値を、それぞれ互いに独立に並行して算出し(ステップS12,S12a)、その誤り位置多項式σ(X)の値が0であるか否かを、それぞれ独立に判定する(ステップS13,S13a)。
Next, when the two chain search circuits 4632 (
そして、その判定の結果、誤り位置多項式σ(X)の値が0となった場合には(ステップS13,S13aでYes)、チェン探索回路4632(CS#0,CS#1)は、エラーカウンタ4633(EC#0,EC#1)をカウントアップし(ステップS14,S14a)、さらに、そのときの誤り位置カウンタの値(j0,j1)を誤り位置格納レジスタ4634に格納する(ステップS15,S15a)。一方、ステップS13,S13aにおける判定で、誤り位置多項式σ(X)の値が0とならなかった場合には(ステップS13,S13aでNo)チェン探索回路4632(CS#0,CS#1)は、ステップS14,S14a〜ステップS15,S15aの処理をスキップする。
If the error position polynomial σ (X) is 0 as a result of the determination (Yes in steps S13 and S13a), the chain search circuit 4632 (
次に、探索制御回路4631は、加算器4635を介して、2つのエラーカウンタ4633(EC#0,EC#1)のカウント値の合計を取得し、そのカウント値の合計が誤り位置多項式係数算出部462から与えられた誤りシンボル数kと等しいか否かを判定する(ステップS16)。そして、その判定の結果、2つのエラーカウンタ4633(EC#0,EC#1)のカウント値の合計が誤りシンボル数kと等しかった場合には(ステップS16でYes)、探索制御回路4631は、その誤りシンボル数kと同数の誤り位置を取得したことになるので、チェン探索回路4632(CS#0,CS#1)に対して誤り位置の探索終了を指示し、誤り位置探索部463における当該誤り位置探索処理を終了する。
Next, the
一方、2つのエラーカウンタ4633(EC#0,EC#1)のカウント値の合計が誤りシンボル数kと等しくなかった場合には(ステップS16でNo)、探索制御回路4631は、さらに、誤り位置カウンタの値(j0)が1に到達しているか否かを判定する(ステップS17)。そして、その判定において、誤り位置カウンタの値(j0)が1に到達していた場合には(ステップS17でYes)、2つのチェン探索回路4632(CS#0,CS#1)によりすべての誤り位置について誤り位置多項式σ(X)の値が0であるか否かの判定がされたことになるので、探索制御回路4631は、チェン探索回路4632(CS#0,CS#1)に対して誤り位置の探索終了を指示し、誤り位置探索部463における当該誤り位置探索処理を終了する。
On the other hand, if the sum of the count values of the two error counters 4633 (
また、ステップS17の判定で、誤り位置カウンタの値(j0)が1に到達していなかった場合には(ステップS17でNo)、探索制御回路4631および2つのチェン探索回路4632(CS#0,CS#1)は、それぞれの誤り位置カウンタをカウントダウンした(j0=j0−1,j1=j1−1:ステップS18)後、ステップS12,S12aへ戻って、ステップS12,S12a以下の処理を繰り返して実行する。
If it is determined in step S17 that the error position counter value (j0) has not reached 1 (No in step S17), the
以上の誤り位置探索処理が終了すると、誤り位置格納レジスタ4634には、既知の誤りシンボル数の数kと同じ個数の誤り位置のデータが格納されたことになる。誤り位置探索部463は、誤り訂正部464に対し、その旨を通知する起動信号を送信する。
When the above error position search processing is completed, the error
誤り訂正部464は、その起動信号を受信すると、誤り位置格納レジスタ4634に格納されている誤り位置のデータと、シンドローム算出部461から供給されるシンドロームSi(i=1,2,・・・,16)と、を用いて誤りパターンを算出し、その誤りパターンに基づき、当該RS符号・復号化回路46に入力された入力シンボル列に含まれる誤りシンボルを訂正し、訂正済みシンボル列を出力する。
When receiving the activation signal, the
なお、誤り訂正部464における誤りパターンの算出処理は、周知のフォーネイアルゴリズムなどを用いて実現することができる。また、その算出回路も周知であるので、ここでは、その説明を省略する。
Note that the error pattern calculation processing in the
以上、本実施形態によれば、RS符号・復号化回路46は、2つのチェン探索回路4632が独立に並行して誤り位置を探索するので、誤り位置の探索時間を半減させることができる。また、本実施形態では、誤り位置を探索するときには、誤りシンボル数kが既知であることを利用して、誤り位置が誤りシンボル数kと同数探索された時点で、探索処理を終了させる、すなわち、探索処理を途中で打ち切るようにしている。従って、探索処理を早めに打ち切る分だけ探索時間は、短縮されることになる。その短縮効果は、確率的なものであるが、その確率を単純に平均すれば、1/2となる。
As described above, according to the present embodiment, the RS code /
以上の通り、本実施形態におけるRS符号・復号化回路46では、チェン探索回路4632を2個並列に動作させて使用し、かつ、誤り位置が既知の誤りシンボル数kと同数探索し次第、探索処理を打ち切ることによって誤り位置の探索時間を、従来のチェン探索回路を1つ用いた場合に比べ、1/4程度まで短縮することができる。よって、RS符号・復号化回路46におけるRS符号の復号化時間を短縮することができる。さらに、このようなRS符号・復号化回路46を有するSSD記憶装置2においては、そのページデータの読み出し時間が短縮されるので、SSD記憶装置2の平均的なアクセス時間が短縮される。
As described above, in the RS encoding /
なお、以上に説明した実施形態では、RS符号・復号化回路46は、2つのチェン探索回路4632を含むとしているが、例えば、4個や5個など、さらに多くのチェン探索回路4632を含むとしても構わない。その場合には、その分だけ、誤り位置の探索時間を短縮することができる。ただし、チェン探索回路4632自体は、かなりの回路規模を有する回路であるので、チェン探索回路4632の数をむやみに増やすことができないことにも注意すべきである。
In the embodiment described above, the RS encoding /
また、以上に説明した実施形態では、RS符号・復号化回路46を適用した記憶装置の例として、SSD記憶装置2について説明しているが、RS符号・復号化回路46を適用する記憶装置は、SSD記憶装置2に限定されるものではなく、例えば、ハード磁気ディスク記憶装置、DVD記憶装置、ブルーレイディスク(登録商標)記憶装置などであっても構わない。
In the embodiment described above, the
1 ホスト装置
2 SSD記憶装置
3 ホストバス
4 SSD制御部
5 SSD記憶媒体部
41 ホストインタフェース部
42 コマンド処理制御部
43 ページデータ書込部
44 RS符号・符号化回路
45 ページデータ読出部
46 RS符号・復号化回路
47 ブロック状態管理部
51 NFC
52 ブロック
53 ページ
461 シンドローム算出部
462 誤り位置多項式係数算出部
463 誤り位置探索部
464 誤り訂正部
4631 探索制御回路
4632 チェン探索回路
4633 エラーカウンタ
4634 誤り位置格納レジスタ
4635 加算器
1
52 blocks 53
Claims (3)
前記シンドローム算出部により算出されたシンドロームを用いて、前記入力シンボル列に含まれる誤りシンボルの数および誤り位置多項式の係数を算出する誤り位置多項式係数算出部と、
前記算出された係数を有する誤り位置多項式に基づき、前記入力シンボル列に含まれる誤りシンボルの位置である誤り位置を探索する誤り位置探索部と、
前記探索された誤り位置における誤りシンボルを訂正する誤り訂正部と、
を含んで構成されたリードソロモン符号・復号化回路であって、
前記誤り位置探索部は、
前記入力シンボル列のシンボルの位置を表す位置データを順次変更して、前記誤り位置多項式の値が0になる誤り位置を探索する複数のチェン探索回路と、
前記複数のチェン探索回路のそれぞれに1つずつ対応するように設けられ、前記位置データが順次変更されていくとき、前記複数のチェン探索回路のそれぞれによって探索される前記誤り位置の数をそれぞれカウントする複数のカウンタと、
前記複数のカウンタの値を加算して出力する加算器と、
前記複数のチェン探索回路の動作を制御する探索制御回路と、
を備え、
前記探索制御回路は、
前記入力シンボル列のそれぞれ異なるシンボルの位置についての誤り位置の探索を、前記複数のチェン探索回路に互いに独立に並行して実行させ、
前記加算器の出力が前記誤りシンボルの数と等しくなったとき、前記チェン探索回路における前記誤り位置の探索を終了させること
を特徴とするリードソロモン符号・復号化回路。 Using a root of the Reed-Solomon code generator polynomial, a syndrome calculation unit that calculates a syndrome for an input symbol sequence composed of a plurality of symbols;
An error locator polynomial coefficient calculator that calculates the number of error symbols and the coefficient of an error locator polynomial included in the input symbol sequence using the syndrome calculated by the syndrome calculator;
An error position search unit that searches for an error position that is a position of an error symbol included in the input symbol sequence based on the error position polynomial having the calculated coefficient;
An error correction unit that corrects an error symbol at the searched error position;
A Reed-Solomon encoding / decoding circuit comprising:
The error position search unit includes:
A plurality of chain search circuits for sequentially searching for an error position where the value of the error position polynomial is 0 by sequentially changing position data representing a position of a symbol of the input symbol sequence;
Each of the plurality of chain search circuits is provided so as to correspond to each of the plurality of chain search circuits, and when the position data is sequentially changed, the number of error positions searched by each of the plurality of chain search circuits is counted. Multiple counters to
An adder that adds and outputs the values of the counters;
A search control circuit for controlling operations of the plurality of chain search circuits;
With
The search control circuit includes:
A search for error positions for different symbol positions in the input symbol sequence is performed in parallel by the plurality of chain search circuits independently of each other;
The Reed-Solomon encoding / decoding circuit, wherein when the output of the adder becomes equal to the number of error symbols, the error search in the chain search circuit is terminated.
前記シンドローム算出部により算出されたシンドロームを用いて、前記入力シンボル列に含まれる誤りシンボルの数および誤り位置多項式の係数を算出する誤り位置多項式係数算出部と、
前記入力シンボル列のシンボルの位置を表す位置データを順次変更して、前記算出された係数を有する誤り位置多項式の値が0になるシンボルの位置を誤り位置として探索する複数のチェン探索回路、前記複数のチェン探索回路のそれぞれに1つずつ対応するように設けられ、前記位置データが順次変更されていくとき、前記複数のチェン探索回路のそれぞれによって探索される前記誤り位置の数をそれぞれカウントする複数のカウンタ、前記複数のカウンタの値を加算して出力する加算器、および、前記複数のチェン探索回路の動作を制御する探索制御回路を有し、前記入力シンボル列に含まれる誤り位置を探索する誤り位置探索部と、
前記探索された誤り位置における誤りシンボルを訂正する誤り訂正部と、
を含んで構成されたリードソロモン符号・復号化回路におけるリードソロモン符号・復号化方法であって、
前記誤り位置探索部において前記探索制御回路は、
前記入力シンボル列のそれぞれ異なるシンボルの位置についての誤り位置の探索を、前記複数のチェン探索回路に互いに独立に並行して実行させ、
前記加算器の出力が前記誤りシンボルの数と等しくなったとき、前記チェン探索回路における前記誤り位置の探索を終了させること
を特徴とするリードソロモン符号・復号化方法。 Using a root of the Reed-Solomon code generator polynomial, a syndrome calculation unit that calculates a syndrome for an input symbol sequence composed of a plurality of symbols;
An error locator polynomial coefficient calculator that calculates the number of error symbols and the coefficient of an error locator polynomial included in the input symbol sequence using the syndrome calculated by the syndrome calculator;
A plurality of chain search circuits that sequentially change position data representing the positions of symbols in the input symbol sequence, and search for the position of a symbol where the value of the error position polynomial having the calculated coefficient is 0 as an error position; Each of the plurality of chain search circuits is provided so as to correspond to each of the plurality of chain search circuits. When the position data is sequentially changed, the number of the error positions searched by each of the plurality of chain search circuits is counted. A plurality of counters, an adder for adding and outputting the values of the plurality of counters, and a search control circuit for controlling operations of the plurality of chain search circuits, and searching for an error position included in the input symbol string An error location search unit to perform,
An error correction unit that corrects an error symbol at the searched error position;
A Reed-Solomon encoding / decoding method in a Reed-Solomon encoding / decoding circuit comprising:
In the error position search unit, the search control circuit includes:
A search for error positions for different symbol positions in the input symbol sequence is performed in parallel by the plurality of chain search circuits independently of each other;
The Reed-Solomon encoding / decoding method, wherein when the output of the adder becomes equal to the number of error symbols, the search for the error position in the chain search circuit is terminated.
前記リードソロモン符号・復号化回路は、
リードソロモン符号の生成多項式の根を用いて、複数のシンボルからなる入力シンボル列に対するシンドロームを算出するシンドローム算出部と、
前記シンドローム算出部により算出されたシンドロームを用いて、前記入力シンボル列に含まれる誤りシンボルの数および誤り位置多項式の係数を算出する誤り位置多項式係数算出部と、
前記算出された係数を有する誤り位置多項式に基づき、前記入力シンボル列に含まれる誤りシンボルの位置である誤り位置を探索する誤り位置探索部と、
前記探索された誤り位置における誤りシンボルを訂正する誤り訂正部と、
を含んで構成され、
前記誤り位置探索部は、
前記入力シンボル列のシンボルの位置を表す位置データを順次変更して、前記誤り位置多項式の値が0になる誤り位置を探索する複数のチェン探索回路と、
前記複数のチェン探索回路のそれぞれに1つずつ対応するように設けられ、前記位置データが順次変更されていくとき、前記複数のチェン探索回路のそれぞれによって探索される前記誤り位置の数をそれぞれカウントする複数のカウンタと、
前記複数のカウンタの値を加算して出力する加算器と、
前記複数のチェン探索回路の動作を制御する探索制御回路と、
を備え、
前記探索制御回路は、
前記入力シンボル列のそれぞれ異なるシンボルの位置についての誤り位置の探索を、前記複数のチェン探索回路に互いに独立に並行して実行させ、
前記加算器の出力が前記誤りシンボルの数と等しくなったとき、前記チェン探索回路における前記誤り位置の探索を終了させること
を特徴とする記憶装置。 A storage device comprising a Reed-Solomon code / encoding circuit for encoding write data and a Reed-Solomon code / decoding circuit for decoding read data,
The Reed-Solomon encoding / decoding circuit is
Using a root of the Reed-Solomon code generator polynomial, a syndrome calculation unit that calculates a syndrome for an input symbol sequence composed of a plurality of symbols;
An error locator polynomial coefficient calculator that calculates the number of error symbols and the coefficient of an error locator polynomial included in the input symbol sequence using the syndrome calculated by the syndrome calculator;
An error position search unit that searches for an error position that is a position of an error symbol included in the input symbol sequence based on the error position polynomial having the calculated coefficient;
An error correction unit that corrects an error symbol at the searched error position;
Comprising
The error position search unit includes:
A plurality of chain search circuits for sequentially searching for an error position where the value of the error position polynomial is 0 by sequentially changing position data representing a position of a symbol of the input symbol sequence;
Each of the plurality of chain search circuits is provided so as to correspond to each of the plurality of chain search circuits, and when the position data is sequentially changed, the number of error positions searched by each of the plurality of chain search circuits is counted. Multiple counters to
An adder that adds and outputs the values of the counters;
A search control circuit for controlling operations of the plurality of chain search circuits;
With
The search control circuit includes:
A search for error positions for different symbol positions in the input symbol sequence is performed in parallel by the plurality of chain search circuits independently of each other;
When the output of the adder becomes equal to the number of error symbols, the search for the error position in the chain search circuit is terminated.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010228864A JP5667408B2 (en) | 2010-10-08 | 2010-10-08 | Reed-Solomon code / decoding circuit, Reed-Solomon code / decoding method, and storage device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010228864A JP5667408B2 (en) | 2010-10-08 | 2010-10-08 | Reed-Solomon code / decoding circuit, Reed-Solomon code / decoding method, and storage device |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012085057A JP2012085057A (en) | 2012-04-26 |
JP5667408B2 true JP5667408B2 (en) | 2015-02-12 |
Family
ID=46243464
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010228864A Active JP5667408B2 (en) | 2010-10-08 | 2010-10-08 | Reed-Solomon code / decoding circuit, Reed-Solomon code / decoding method, and storage device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5667408B2 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10439643B2 (en) * | 2016-07-28 | 2019-10-08 | Indian Institute Of Science | Reed-Solomon decoders and decoding methods |
DE102017125617B8 (en) * | 2017-11-02 | 2020-08-27 | Infineon Technologies Ag | DETERMINATION AND USE OF BYTE ERROR POSITION SIGNALS |
CN116961823A (en) * | 2022-04-19 | 2023-10-27 | 华为技术有限公司 | Data processing method and device |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3197058B2 (en) * | 1992-05-28 | 2001-08-13 | 株式会社東芝 | Pulse counter |
JPH0746228A (en) * | 1993-08-02 | 1995-02-14 | Fujitsu Ltd | Error counter circuit |
JP2000332617A (en) * | 1999-05-21 | 2000-11-30 | Matsushita Electric Ind Co Ltd | Method and circuit for chain search |
JP2001086005A (en) * | 1999-09-14 | 2001-03-30 | Nec Wireless Networks Ltd | Chain searching circuit and error correction encoding/ decoding device using the same |
JP5248300B2 (en) * | 2008-12-24 | 2013-07-31 | 三菱電機株式会社 | Error correction decoding apparatus and error correction decoding method |
-
2010
- 2010-10-08 JP JP2010228864A patent/JP5667408B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2012085057A (en) | 2012-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9088300B1 (en) | Cyclic redundancy check for out-of-order codewords | |
US8468432B2 (en) | Coder-decoder and method for encoding and decoding an error correction code | |
US20180212624A1 (en) | Method and apparatus for processing data | |
US8042030B2 (en) | Encoding apparatus, decoding apparatus, encoding method, decoding method, and storage device | |
JP2001175542A (en) | Recording and reproducing device and semiconductor memory | |
US20110072331A1 (en) | Memory system and control method for the same | |
US7788570B1 (en) | Optimized Reed-Solomon decoder | |
US9450615B2 (en) | Multi-bit error correction method and apparatus based on a BCH code and memory system | |
US8429489B2 (en) | Data retrieval from a storage device using a combined error correction and detection approach | |
KR20010033954A (en) | A physical block address recovery apparatus, system and method for cyclic error correction codes | |
US8683293B2 (en) | Method and system for fast two bit error correction | |
WO2014174370A2 (en) | Syndrome tables for decoding turbo-product codes | |
US9960788B2 (en) | Memory controller, semiconductor memory device, and control method for semiconductor memory device | |
JP4733403B2 (en) | Decoder, data storage device, and data error correction method | |
JP5667408B2 (en) | Reed-Solomon code / decoding circuit, Reed-Solomon code / decoding method, and storage device | |
KR101314232B1 (en) | Coding and decoding method and codec of error correction code | |
JP2009100369A (en) | Error detection/correction circuit, semiconductor memory controller, and error detection/correction method | |
JP2007207325A (en) | Error correction processing apparatus and method | |
TWI664636B (en) | Error checking and correcting decoder | |
KR100594002B1 (en) | Reed Solomon Decoder with Variable Pipeline Structure | |
US9236890B1 (en) | Decoding a super-code using joint decoding of underlying component codes | |
US7228467B2 (en) | Correcting data having more data blocks with errors than redundancy blocks | |
KR101154923B1 (en) | BCH decoder, memory system having the same and BCHBCH decoding method | |
TWI354999B (en) | Memory module and writing and reading method there | |
KR101226439B1 (en) | Rs decoder, memory system having the same and decoding method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130123 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20131022 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20131210 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140311 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140512 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20141202 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20141212 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5667408 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |