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 PDF

Info

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
Application number
JP2010228864A
Other languages
Japanese (ja)
Other versions
JP2012085057A (en
Inventor
浩二 住谷
浩二 住谷
久徳 沖林
久徳 沖林
松田 光司
光司 松田
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2010228864A priority Critical patent/JP5667408B2/en
Publication of JP2012085057A publication Critical patent/JP2012085057A/en
Application granted granted Critical
Publication of JP5667408B2 publication Critical patent/JP5667408B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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. Patent Document 1 discloses a technique for simplifying the circuit configuration of a chain search circuit (chain search circuit) that is particularly complicated among Reed-Solomon code decoding circuits.

特開平6−314978号公報JP-A-6-314978

金子敏信、外9名、「誤り訂正符号とその応用」、第1版、オーム社、平成8年12月25日、p.107−122,p.177−189Toshinobu Kaneko, 9 others, "Error correction code and its application", 1st edition, Ohmsha, December 25, 1996, p. 107-122, p. 177-189

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.

本発明の実施形態に係るSSD記憶装置の機能ブロックの構成の例を示した図。The figure which showed the example of the structure of the functional block of the SSD memory | storage device which concerns on embodiment of this invention. 本発明の実施形態に係るNFC(NAND型フラッシュメモリチップ)におけるブロック、ページおよびセクタの構成の例を示した図。The figure which showed the example of the structure of the block, page, and sector in NFC (NAND type flash memory chip) concerning the embodiment of the present invention. 本発明の実施形態に係るRS符号・復号化回路の構成の例を示した図。The figure which showed the example of the structure of RS encoding / decoding circuit which concerns on embodiment of this invention. 本発明の実施形態に係るRS符号・復号化回路における誤り位置探索の処理の流れの例を示した図。The figure which showed the example of the flow of a process of the error position search in RS encoding / decoding circuit which concerns on embodiment of this invention.

以下、本発明の実施形態について、図面を参照して詳細に説明する。   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 SSD storage device 2 is used by being connected to the host device 1 via the host bus 3. Here, the host device 1 is a computer that stores data and programs in the SSD storage device 2, or various control devices to which the computer is applied. At this time, as the host bus 3 for connecting the host device 1 and the SSD storage device 2, a small computer system interface (SCSI) bus, an integrated drive electronics (IDE) bus, or the like is usually used.

また、図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 SSD storage device 2 includes an SSD control unit 4 and an SSD storage medium unit 5. The SSD control unit 4 includes a host interface unit 41, a command processing control unit 42, a page data writing unit 43, a page data reading unit 45, a block state management unit 47, and the like. The page data writing unit 43 includes a Reed-Solomon code (hereinafter abbreviated as RS code) / encoding circuit 44, and the page data reading unit 45 includes an RS code / decoding circuit 46. On the other hand, the SSD storage medium unit 5 includes a plurality of NAND flash memory chips (hereinafter abbreviated as NFC) 51. In the example of FIG. 1, the SSD storage medium unit 5 includes 24 NFCs 51. In FIG. 1, a thick line with an arrow indicates a data flow, and a broken line with an arrow indicates a schematic control signal flow.

図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 Nb blocks 52, and one block 52 is composed of N pages 53. In the NFC 51, the block 52 is a data erasing unit, and the page 53 is a data writing or reading unit.

続いて、図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 block 52 is N = 64, 256 kB of data is stored in one block 52. When the storage capacity of one NFC 51 is, for example, 4 GB, the number Nb of blocks 52 constituting one NFC 51 is 16 KB (Nb = 16, 384).

再び、図1戻って、SSD制御部4の動作について説明する。
図1において、ホストインタフェース部41は、ホストバス3に対する電気的なインタフェースを整合させるとともに、ホストバス3に定義された通信のプロトコルに従って、ホスト装置1との間でコマンドやデータなどの送受信を行う。
Returning to FIG. 1 again, the operation of the SSD control unit 4 will be described.
In FIG. 1, the host interface unit 41 matches the electrical interface to the host bus 3 and transmits and receives commands and data to and from the host device 1 according to the communication protocol defined in the host bus 3. .

コマンド処理制御部42は、ホストインタフェース部41を介して、ホスト装置1から送信される各種のコマンド(例えば、ページデータ書き込みコマンド、ページデータ読み出しコマンドなど)を受信し、それぞれのコマンドに応じてあらかじめ定められた処理を実行する。   The command processing control unit 42 receives various commands (for example, a page data write command, a page data read command, etc.) transmitted from the host device 1 via the host interface unit 41, and in advance according to each command. Execute the specified process.

例えば、コマンド処理制御部42がホスト装置1からページデータ書き込みコマンドを受信した場合には、コマンド処理制御部42は、ホストインタフェース部41に対し、そのページデータ書き込みコマンドに付属または後続してホスト装置1から送信されるページアドレスおよびデータを受信し、その受信したページアドレスおよびデータを図示しない一時データ記憶部に格納することを指示する。さらに、ページデータ書込部43に対し、その一時データ記憶部に格納されたデータを、前記ページアドレスで指定されるNFC51内のページ53へ書き込むことを指示する。   For example, when the command processing control unit 42 receives a page data write command from the host device 1, the command processing control unit 42 attaches or follows the page data write command to the host interface unit 41. The page address and data transmitted from 1 are received, and the received page address and data are instructed to be stored in a temporary data storage unit (not shown). Further, it instructs the page data writing unit 43 to write the data stored in the temporary data storage unit to the page 53 in the NFC 51 specified by the page address.

ページデータ書込部43は、コマンド処理制御部42からページデータの書き込み指示を受けると、図示しない一時データ記憶部に格納されたデータを、図2(c)に示した形式のページデータに整形する。ページデータ書込部43は、そのページデータへの整形に際しては、セクタデータごとに、図示しないCRC生成回路を用いてCRC検査符号(4B)を生成し、また、RS符号・符号化回路44を用いてRS訂正符号(20B)を生成する。   When the page data writing unit 43 receives a page data write instruction from the command processing control unit 42, the page data writing unit 43 formats the data stored in the temporary data storage unit (not shown) into the page data in the format shown in FIG. To do. The page data writing unit 43 generates a CRC check code (4B) by using a CRC generation circuit (not shown) for each sector data when shaping the page data, and the RS code / encoding circuit 44 The RS correction code (20B) is generated by using this.

さらに、ページデータ書込部43は、当該ページデータ書き込みコマンドに付属したページアドレス(論理アドレス)を、所定の変換規則に従って、SSD記憶媒体部5内のすべてのNFC51に含まれるページ53を一意に識別可能な物理アドレスに変換し、前記整形したページデータを、その物理アドレスによって識別されるNFC51内のページ53へ書き込む。   Further, the page data writing unit 43 uniquely assigns the page address (logical address) attached to the page data write command to the page 53 included in all the NFCs 51 in the SSD storage medium unit 5 according to a predetermined conversion rule. The page data is converted into an identifiable physical address, and the formatted page data is written to the page 53 in the NFC 51 identified by the physical address.

また、コマンド処理制御部42は、ホスト装置1からページデータの読み出しコマンドを受信した場合には、ページデータ読出部45に対し、そのコマンドに付属したページアドレスで指定されるNFC51内のページ53からページデータを読み出すことを指示する。さらに、コマンド処理制御部42は、ページデータ読出部45によって、そのページデータがNFC51から読み出されたときには、ホストインタフェース部41に対し、その読み出されたページデータからヘッダ、CRC検査符号およびRS訂正符号を除去したデータをホスト装置1へ送信することを指示する。   When the command processing control unit 42 receives a page data read command from the host device 1, the command processing control unit 42 instructs the page data reading unit 45 from the page 53 in the NFC 51 specified by the page address attached to the command. Instructs to read page data. Further, when the page data reading unit 45 reads the page data from the NFC 51, the command processing control unit 42 sends the header, CRC check code, and RS to the host interface unit 41 from the read page data. An instruction to transmit data from which the correction code has been removed to the host device 1 is given.

ページデータ読出部45は、コマンド処理制御部42からページデータの読み出し指示を受けると、当該ページデータ読み出しコマンドに付属したページアドレス(論理アドレス)を、所定の変換規則に従って、SSD記憶媒体部5内のすべてのNFC51に含まれるページ53を一意に識別可能な物理アドレスに変換し、その物理アドレスによって識別されるNFC51内のページ53からページデータを読み出す。   When the page data read unit 45 receives a page data read instruction from the command processing control unit 42, the page data read unit 45 assigns the page address (logical address) attached to the page data read command in the SSD storage medium unit 5 according to a predetermined conversion rule. The page 53 included in all the NFCs 51 is converted into a uniquely identifiable physical address, and page data is read from the page 53 in the NFC 51 identified by the physical address.

また、ページデータ読出部45は、読み出したページデータからヘッダ、CRC検査符号およびRS訂正符号を除去するに際しては、RS符号・復号化回路46を用いて、図2(d)に示したセクタデータの内のデータおよびCRC検査符号部分におけるデータ誤りを訂正し、さらに、図示しないCRC検査回路を用いて、データ部分におけるデータ誤りの有無(すなわち、誤訂正の有無)を検査する。   The page data reading unit 45 uses the RS code / decoding circuit 46 to remove the header, CRC check code, and RS correction code from the read page data, using the sector data shown in FIG. The data error in the data and the CRC check code portion is corrected, and the presence or absence of the data error in the data portion (that is, the presence or absence of error correction) is further checked using a CRC check circuit (not shown).

また、ブロック状態管理部47は、図示しない欠陥ブロックテーブルなどを有し、その欠陥ブロックテーブルに、欠陥ブロックを識別するブロックのアドレス(物理アドレス)を記憶しておき、ページデータ書込部43によるページデータの書き込みに際し、その欠陥ブロックが使用されないように管理する。なお、欠陥ブロックとは、ブロックデータを消去できないようなブロック52、ページデータの書き込みができないページ53や読み出したページデータに訂正不可能な誤りが生じるようなページ53が所定数以上含まれるようなブロック52などをいう。   The block state management unit 47 has a defective block table (not shown) and the like, and stores the address (physical address) of the block for identifying the defective block in the defective block table. When writing page data, management is performed so that the defective block is not used. A defective block includes a block 52 in which block data cannot be erased, a page 53 in which page data cannot be written, and a page 53 in which an uncorrectable error occurs in the read page data. This refers to block 52 and the like.

なお、SSD制御部4は、以上の他にも、各ページ53へのページデータの書き込み回数を平準化するような機能を有する機能ブロックなど、様々な機能ブロックを含んでいるが、ここでは、それらの機能ブロックの説明を省略する。   In addition to the above, the SSD control unit 4 includes various functional blocks such as a functional block having a function of leveling the number of times of writing page data to each page 53. Description of those functional blocks is omitted.

続いて、本実施形態で用いられるRS符号の概要について説明する。RS符号は、複数のシンボル誤りを訂正することが可能な符号としてよく知られている。ここで、シンボルとは、例えば、mビットのデータであり、誤り訂正は、シンボルを単位として行われる。なお、シンボルがmビットである場合、RS符号により訂正可能な符号長(追加される訂正用の冗長シンボルを含む)の最大値は、2−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−α)(X−α)・・・(X−α16) 式(1)

ここで、αは、いわゆるガロア拡大体GF(210)の元であり、10次の原始多項式(例えば、X10+X+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 / encoding circuit 44 is represented by a polynomial of the order (number of symbols of input message-1) ( In this embodiment, it is a 515th order polynomial). Then, the coefficient of the message polynomial is represented by an element of the Galois extension field GF (2 10 ) corresponding to each symbol.

ここで、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)=a1515+a1414+・・・+aX+a 式(3)

ここで、パリティ多項式P(X)の係数a15,a14,・・・,a,aは、いずれも、ガロア拡大体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 / encoding circuit 44 is configured by a circuit that calculates the coefficient of the parity polynomial P (X) according to the equation (2). Since the circuit for calculating the coefficient of the parity polynomial P (X) is generally a well-known circuit, detailed description thereof is omitted here.

次に、複数シンボルの誤りを訂正する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 / decoding circuit 46 as a coefficient is hereinafter referred to as a reception polynomial R (X) according to common usage, the reception polynomial R (X) is expressed by the 531st order of X. Expressed in polynomial form.

以下、RS符号・復号化回路46では、次の手順に従って、復号化すなわち誤りシンボルの訂正が行われる。
(手順1)受信多項式R(X)に基づき、シンドローム(S,S,・・・,S16)を算出する。
(手順2)算出されたシンドローム(S,S,・・・,S16)を用いて、誤り位置多項式σ(X)の最高次数(以下、単に、次数という)と係数を求める。
(手順3)誤り位置多項式σ(X)を用いて、誤りシンボルの位置を求める。
(手順4)誤りシンボルを訂正する。
Hereinafter, the RS code / decoding circuit 46 performs decoding, that is, correction of error symbols, according to the following procedure.
(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 / decoding circuit 46 according to the embodiment of the present invention. As shown in FIG. 3, the RS code / decoding circuit 46 includes a syndrome calculation unit 461, an error position polynomial coefficient calculation unit 462, an error position search unit 463, and an error correction unit 464. The functions of these blocks substantially correspond to the above (Procedure 1) to (Procedure 4). In FIG. 3, the input symbol string input to the RS encoding / decoding circuit 46 is composed of a total of 532 symbols based on the sector data of the page data read from the page 53 of the NFC 51, and the reception polynomial R (X ).

シンドローム算出部461は、(手順1)を実現するための周知のシンドローム算出回路によって構成される。ここで、シンドロームS(i=1,2,・・・,16)とは、次の式(5)によって算出される値である。

=R(α) (i=1,2,・・・,16) 式(5)

なお、α(i=1,2,・・・,16)は、生成多項式G(X)=0の根である。つまり、シンドロームS(i=1,2,・・・,16)とは、受信多項式R(X)に生成多項式(G(X)=0)の根を代入することにより得られた値ということができる。
The syndrome calculation unit 461 includes a known syndrome calculation circuit for realizing (Procedure 1). Here, the syndrome S i (i = 1, 2,..., 16) is a value calculated by the following equation (5).

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)を参照すると容易に分かるように、すべてのシンドロームSは0、すなわち、S=0(i=1,2,・・・,16)となる。逆にいえば、すべてのシンドロームS(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)).

一方、シンドロームS(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 coefficient calculation unit 462 obtains the order and coefficient of the error locator polynomial σ (X).

誤り位置多項式σ(X)は、次の式(6)によって定義される。

σ(X)=1+σX+σ+・・・+σ 式(6)

ここで、誤り位置多項式σ(X)の次数kは、誤りシンボルの数である。また、誤り位置多項式σ(X)の係数σ(j=1,2,・・・,k)は、次の式(7)によって定義される。

Figure 0005667408
The error locator polynomial σ (X) is defined by the following equation (6).

σ (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).
Figure 0005667408

まず、誤り位置多項式係数算出部462は、式(7)から誤り位置多項式σ(X)の次数kを求める。誤り位置多項式係数算出部462は、まず、仮の次数k’の初期値としてk’=t(t=8:訂正可能なシンボル数の最大値)とおき、シンドロームS(i=1,2,・・・,2k−1)で構成された式(7)の左辺の行列式の値を求める。そして、その行列式の値が0でなかった場合には、次数k=k’=tと定める。 First, the error locator polynomial coefficient calculation unit 462 obtains the order k of the error locator polynomial σ (X) from Equation (7). First, the error locator polynomial coefficient calculation unit 462 sets k ′ = t (t = 8: the maximum number of correctable symbols) as an initial value of the provisional order k ′, and syndromes S i (i = 1, 2). , ..., 2k-1), the value of the determinant on the left side of equation (7) is obtained. If the value of the determinant is not 0, the order k = k ′ = t is determined.

一方、式(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 coefficient calculation unit 462 sets k ′ = k′−1 in the same manner as the left side of Expression (7). The value of the determinant is obtained, and thereafter, the same processing is repeated while subtracting k ′ one by one until the value of the determinant is not zero. Then, the value of k ′ when the value of the determinant on the left side of Equation (7) is no longer 0 is determined as the order k of the error position polynomial σ (X) (that is, k = k ′). The degree k of the error position polynomial σ (X) thus determined is the number of error symbols existing in the reception polynomial R (X) (hereinafter, the number of error symbols is also expressed as k).

以上のようにして、誤り位置多項式σ(X)の次数kが定められると、誤り位置多項式係数算出部462は、式(7)に基づき、誤り位置多項式σ(X)の係数σ(j=1,2,・・・,k)を求める。 As described above, when the order k of the error locator polynomial σ (X) is determined, the error locator polynomial coefficient calculator 462 calculates the coefficient σ j (j of the error locator polynomial σ (X) based on the equation (7). = 1, 2, ..., k).

なお、誤り位置多項式σ(X)の係数σ(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 coefficient calculation unit 462 can be configured using such a known circuit, description thereof is omitted here.

次に、誤り位置探索部463は、(手順3)の処理として、誤り位置多項式σ(X)を用いて、誤りシンボルの位置を求める。式(6)で表された誤り位置多項式σ(X)は、k個の誤り位置をβ(j=1,2,・・・,k)とした場合には、次の式(8)が成り立つことが知られている。

σ(X)=(1+βX)(1+βX)・・・(1+βX) 式(8)

すなわち、式(8)によれば、誤り位置β(j=1,2,・・・,k)は、誤り位置多項式(σ(X)=0)の根の逆数によって与えられる。
Next, the error position search unit 463 obtains the position of the error symbol using the error position polynomial σ (X) as the processing of (Procedure 3). The error locator polynomial σ (X) expressed by the equation (6) has the following equation (8) when k error positions are β j (j = 1, 2,..., K). Is known to hold.

σ (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=1,2,・・・,k)を求める具体的な回路としてチェン探索回路が知られている。チェン探索回路は、式(6)を計算する回路であり、その回路にすべての誤り位置βの逆数(1/β)を代入してみて、σ(X)=0となるときのβを探索するものである。 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個の元(α,α,α,・・・,α1022)のうちのいずれかである。従って、チェン探索回路を用いて誤り位置β(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 position search unit 463 shown in FIG. Shorten the search time for error locations.

図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 position search unit 463 includes a search control circuit 4631, two chain search circuits 4632 (CS # 0, CS # 1), and two chain search circuits 4632 (CS # 0, CS #). # 1) are detected by two error counters 4633 (EC # 0, EC # 1) and two chain search circuits 4632 (CS # 0, CS # 1), which respectively count that the error position has been detected. An error position storage register 4634 that stores error position data and an adder 4635 that adds the contents of two error counters 4633 (EC # 0 and EC # 1) are configured.

図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 / decoding circuit 46 according to the embodiment of the present invention. Here, the flow of error position search processing performed by the error position search unit 463 will be described with reference to FIG. 3 and FIG. 4.

図4に示すように、誤り位置探索部463における誤り位置探索処理は、誤り位置多項式係数算出部462から、所定の起動指示信号を受信することによって開始される。なお、誤り位置多項式係数算出部462からその起動信号が供給されるときには、誤り位置多項式係数算出部462で求められた、誤りシンボル数kおよび誤り位置多項式σ(X)の係数σ(j=1,2,・・・,k)が併せて供給される。 As illustrated in FIG. 4, the error position search process in the error position search unit 463 is started by receiving a predetermined activation instruction signal from the error position polynomial coefficient calculation unit 462. When the activation signal is supplied from the error locator polynomial coefficient calculator 462, the error symbol number k and the coefficient σ j of the error locator polynomial σ (X) obtained by the error locator polynomial coefficient calculator 462 (j = 1, 2, ..., k) are supplied together.

そこで、探索制御回路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 coefficient calculation unit 462, the search control circuit 4631 first initializes counters included in the error position search unit 463 (step S11). Here, the counters are error position counters (not shown) included in two error counters 4633 (EC # 0, EC # 1) and two chain search circuits 4632 (CS # 0, CS # 1), respectively. In the following, the value is represented by j0, j1). Therefore, the counters are initialized by clearing the two error counters 4633 (EC # 0, EC # 1) to zero and setting the value 266 in the error position counter included in one of the chain search circuits 4632 (CS # 0). This means that the value 532 is set to the error position counter included in the other chain search circuit 4632 (CS # 1) (j1 = 532).

なお、値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 (CS # 0, CS # 1) receive an instruction to start searching for an error position from the search control circuit 4631, the error position corresponding to the given error position (j0, j1). The values of the polynomial σ (X) are calculated independently and in parallel with each other (steps S12 and S12a), and whether or not the value of the error locator polynomial σ (X) is 0 is determined independently ( Steps S13 and S13a).

そして、その判定の結果、誤り位置多項式σ(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 (CS # 0, CS # 1) 4633 (EC # 0, EC # 1) is counted up (steps S14, S14a), and the error position counter value (j0, j1) at that time is stored in the error position storage register 4634 (steps S15, S15a). ). On the other hand, if it is determined in steps S13 and S13a that the value of the error locator polynomial σ (X) is not 0 (No in steps S13 and S13a), the chain search circuit 4632 (CS # 0 and CS # 1) , Steps S14 and S14a to Steps S15 and S15a are skipped.

次に、探索制御回路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 search control circuit 4631 acquires the sum of the count values of the two error counters 4633 (EC # 0, EC # 1) via the adder 4635, and the sum of the count values is calculated as an error locator polynomial coefficient. It is determined whether or not the number k of error symbols given from the unit 462 is equal (step S16). If the sum of the count values of the two error counters 4633 (EC # 0, EC # 1) is equal to the number of error symbols k as a result of the determination (Yes in step S16), the search control circuit 4631 Since the same number of error positions as the number of error symbols k has been acquired, the chain search circuit 4632 (CS # 0, CS # 1) is instructed to end the search for the error position, and the error position search unit 463 executes the error position search. The error position search process is terminated.

一方、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 (EC # 0, EC # 1) is not equal to the number k of error symbols (No in step S16), the search control circuit 4631 further determines the error position. It is determined whether or not the counter value (j0) has reached 1 (step S17). In the determination, if the error position counter value (j0) has reached 1 (Yes in step S17), all the errors are detected by the two chain search circuits 4632 (CS # 0, CS # 1). Since the determination is made as to whether or not the value of the error position polynomial σ (X) is 0 for the position, the search control circuit 4631 selects the chain search circuit 4632 (CS # 0, CS # 1). An instruction to end the search for the error position is given, and the error position search process in the error position search unit 463 is ended.

また、ステップ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 search control circuit 4631 and the two chain search circuits 4632 (CS # 0, CS # 0,. CS # 1) counts down each error position counter (j0 = j0-1, j1 = j1-1: step S18), and then returns to steps S12 and S12a, and repeats the processes in steps S12 and S12a. Run.

以上の誤り位置探索処理が終了すると、誤り位置格納レジスタ4634には、既知の誤りシンボル数の数kと同じ個数の誤り位置のデータが格納されたことになる。誤り位置探索部463は、誤り訂正部464に対し、その旨を通知する起動信号を送信する。   When the above error position search processing is completed, the error position storage register 4634 stores data of the same number of error positions as the number k of known error symbols. The error position search unit 463 transmits an activation signal notifying the error correction unit 464 to that effect.

誤り訂正部464は、その起動信号を受信すると、誤り位置格納レジスタ4634に格納されている誤り位置のデータと、シンドローム算出部461から供給されるシンドロームS(i=1,2,・・・,16)と、を用いて誤りパターンを算出し、その誤りパターンに基づき、当該RS符号・復号化回路46に入力された入力シンボル列に含まれる誤りシンボルを訂正し、訂正済みシンボル列を出力する。 When receiving the activation signal, the error correction unit 464 receives the error position data stored in the error position storage register 4634 and the syndrome S i (i = 1, 2,...) Supplied from the syndrome calculation unit 461. , 16) to calculate an error pattern, correct an error symbol included in the input symbol string input to the RS code / decoding circuit 46 based on the error pattern, and output a corrected symbol string To do.

なお、誤り訂正部464における誤りパターンの算出処理は、周知のフォーネイアルゴリズムなどを用いて実現することができる。また、その算出回路も周知であるので、ここでは、その説明を省略する。   Note that the error pattern calculation processing in the error correction unit 464 can be realized using a well-known Forney algorithm or the like. Since the calculation circuit is also well known, the description thereof is omitted here.

以上、本実施形態によれば、RS符号・復号化回路46は、2つのチェン探索回路4632が独立に並行して誤り位置を探索するので、誤り位置の探索時間を半減させることができる。また、本実施形態では、誤り位置を探索するときには、誤りシンボル数kが既知であることを利用して、誤り位置が誤りシンボル数kと同数探索された時点で、探索処理を終了させる、すなわち、探索処理を途中で打ち切るようにしている。従って、探索処理を早めに打ち切る分だけ探索時間は、短縮されることになる。その短縮効果は、確率的なものであるが、その確率を単純に平均すれば、1/2となる。   As described above, according to the present embodiment, the RS code / decoding circuit 46 can halve the error position search time because the two chain search circuits 4632 independently search for an error position in parallel. In the present embodiment, when searching for an error position, using the fact that the number k of error symbols is known, the search process is terminated when the same number of error positions are searched for as the number k of error symbols. The search process is terminated halfway. Therefore, the search time is shortened by the amount that the search process is terminated early. The shortening effect is probabilistic, but if the probability is simply averaged, it becomes 1/2.

以上の通り、本実施形態におけるRS符号・復号化回路46では、チェン探索回路4632を2個並列に動作させて使用し、かつ、誤り位置が既知の誤りシンボル数kと同数探索し次第、探索処理を打ち切ることによって誤り位置の探索時間を、従来のチェン探索回路を1つ用いた場合に比べ、1/4程度まで短縮することができる。よって、RS符号・復号化回路46におけるRS符号の復号化時間を短縮することができる。さらに、このようなRS符号・復号化回路46を有するSSD記憶装置2においては、そのページデータの読み出し時間が短縮されるので、SSD記憶装置2の平均的なアクセス時間が短縮される。   As described above, in the RS encoding / decoding circuit 46 according to the present embodiment, two chain search circuits 4632 are operated in parallel, and the search is performed as soon as the same number of error symbols k as known error positions are searched. By aborting the processing, the error position search time can be shortened to about ¼ compared to the case where one conventional chain search circuit is used. Therefore, the RS code decoding time in the RS code / decoding circuit 46 can be shortened. Further, in the SSD storage device 2 having such an RS encoding / decoding circuit 46, the page data read time is shortened, so the average access time of the SSD storage device 2 is shortened.

なお、以上に説明した実施形態では、RS符号・復号化回路46は、2つのチェン探索回路4632を含むとしているが、例えば、4個や5個など、さらに多くのチェン探索回路4632を含むとしても構わない。その場合には、その分だけ、誤り位置の探索時間を短縮することができる。ただし、チェン探索回路4632自体は、かなりの回路規模を有する回路であるので、チェン探索回路4632の数をむやみに増やすことができないことにも注意すべきである。   In the embodiment described above, the RS encoding / decoding circuit 46 includes two chain search circuits 4632. However, for example, the RS code / decode circuit 46 includes more chain search circuits 4632 such as four or five. It doesn't matter. In that case, the search time for an error position can be shortened accordingly. However, it should also be noted that the number of chain search circuits 4632 cannot be increased unnecessarily because the chain search circuit 4632 itself is a circuit having a considerable circuit scale.

また、以上に説明した実施形態では、RS符号・復号化回路46を適用した記憶装置の例として、SSD記憶装置2について説明しているが、RS符号・復号化回路46を適用する記憶装置は、SSD記憶装置2に限定されるものではなく、例えば、ハード磁気ディスク記憶装置、DVD記憶装置、ブルーレイディスク(登録商標)記憶装置などであっても構わない。   In the embodiment described above, the SSD storage device 2 is described as an example of the storage device to which the RS code / decoding circuit 46 is applied. However, the storage device to which the RS code / decoding circuit 46 is applied is described. For example, a hard magnetic disk storage device, a DVD storage device, or a Blu-ray Disc (registered trademark) storage device may be used.

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 Host device 2 SSD storage device 3 Host bus 4 SSD control unit 5 SSD storage medium unit 41 Host interface unit 42 Command processing control unit 43 Page data writing unit 44 RS code / encoding circuit 45 Page data reading unit 46 RS code / Decoding circuit 47 Block state management unit 51 NFC
52 blocks 53 pages 461 syndrome calculation unit 462 error position polynomial coefficient calculation unit 463 error position search unit 464 error correction unit 4631 search control circuit 4632 chain search circuit 4633 error counter 4634 error position storage register 4635 adder

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.
JP2010228864A 2010-10-08 2010-10-08 Reed-Solomon code / decoding circuit, Reed-Solomon code / decoding method, and storage device Active JP5667408B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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