CN103870354B - A kind of error checking and correction code decoder and interpretation method - Google Patents

A kind of error checking and correction code decoder and interpretation method Download PDF

Info

Publication number
CN103870354B
CN103870354B CN201210526509.0A CN201210526509A CN103870354B CN 103870354 B CN103870354 B CN 103870354B CN 201210526509 A CN201210526509 A CN 201210526509A CN 103870354 B CN103870354 B CN 103870354B
Authority
CN
China
Prior art keywords
data group
module
syndrome
caching
value
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
CN201210526509.0A
Other languages
Chinese (zh)
Other versions
CN103870354A (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.)
Zhaoyi Innovation Technology Group Co ltd
Original Assignee
GigaDevice Semiconductor Beijing Inc
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 GigaDevice Semiconductor Beijing Inc filed Critical GigaDevice Semiconductor Beijing Inc
Priority to CN201210526509.0A priority Critical patent/CN103870354B/en
Publication of CN103870354A publication Critical patent/CN103870354A/en
Application granted granted Critical
Publication of CN103870354B publication Critical patent/CN103870354B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Error Detection And Correction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

The invention discloses a kind of error checking and code decoder and interpretation method are corrected, for the ECC decodings in memory, including:Grouping module, for the data read from memory to be divided into multiple data groups;Syndrome computing module, for reading a data group after decoding starts;The syndrome of data group is calculated, the data group is sent to the searching module after the completion of calculating;Module is solved, for the syndrome being calculated to be updated in error location polynomial, solves the value of error location polynomial;Find module to be used for after the value of error location polynomial is received, the errors present in data group according to transmitted by the value of the error location polynomial finds the syndrome computing module;Control module, for when the polynomial value of misalignment position is sent to and finds module by solution module, instruction syndrome computing module to read next data group.The present invention can improve the decoding speed of ECC in memory, shorten decoding time.

Description

A kind of error checking and correction code decoder and interpretation method
Technical field
The present invention relates to circuit field, more particularly to a kind of error checking and correction code decoder and interpretation method.
Background technology
ECC (Error Correcting Code, error checking and correction code) for memory is programmed in memory Encoded during operation, decoded when memory does read operation.The decoding algorithm of ECC, such as Reed-Solomon (RS) decoding And BCH (abbreviation of Bose, Ray-Chaudhuri and Hocquenghem) decodings are generally divided into etc. and to be generally divided into three steps: Syndrome is calculated, solves error location polynomial, finds errors present.Memory read operation carries out generally in units of page, and The size of one page commonly greater than decoding process unit, so first the data of a page are divided into during decoding more A data group, the unit of the size of each data group as decoding process;Then each data group is carried out successively above-mentioned Three steps, after a data group completes above three step, then carry out above three step to next data group.
If the data of a page are all decoded, then ECC decoding needs are repeated several times completing.And general solution Code time it is suitable with read time, if according to be sequentially repeated several times ECC decode, the consumption to the time be it is objective, sometimes Even read procedure is unacceptable
The content of the invention
The technical problem to be solved in the present invention is the decoding speed for how improving ECC in memory, shortens decoding time.
To solve the above-mentioned problems, the present invention provides a kind of error checking and correction code decoder, in memory ECC decoding, including:Solve module, find module;
Grouping module, for the data read from memory to be divided into multiple data groups;
Syndrome computing module, obtained data group is divided for reading one after decoding starts;Calculate read The syndrome of data group, the searching module is sent to after the completion of calculating by the data group, and the syndrome being calculated is sent To the solution module;
The solution module is used to the syndrome being calculated being updated in error location polynomial, solves error bit Put polynomial value and be sent to the searching module;
The searching module is used for after the value of error location polynomial is received, according to the value of the error location polynomial Find the errors present in the data group transmitted by the syndrome computing module;
Control module, for when it is described solution module by the polynomial value of misalignment position be sent to it is described find module when, Indicate that the syndrome computing module reads next data group.
Further, the searching module corrects the mistake on the errors present when searching out errors present, and error correction is complete Errors present is continually looked for after;
The control module is additionally operable to, when the searching module searching terminates, and finds errors present, indicate the companion Syndrome is interrupted with formula computing module to calculate;When the searching module completes the correcting data error at errors present described in instruction Syndrome computing module continues interrupted syndrome and calculates.
Further, the control module is additionally operable to after the completion of the searching module finds errors present, sends first Notify to the syndrome computing module;
The syndrome computing module is except directly transmitting the syndrome calculated for the first time in this decoding and directly sending out Send outside the data group read for the first time, syndrome is just only sent to the solution module after first notice is received, with And data group is sent to the searching module.
Further, the decoder further includes:
First caching, the second caching;
Data group after division is stored in first caching by the grouping module;
The syndrome computing module is that the data group for dividing and obtaining is read from the described first caching;
Data group is sent to the searching module and referred to by the syndrome computing module:The syndrome computing module will Data group is stored in the second caching, by searching module after the value of error location polynomial is received, from the described second caching Read the data group.
Present invention also offers a kind of error checking and code coding method is corrected, for the error checking in memory and is entangled Code decodes, including:
The data read from memory are divided into multiple data groups;Following processing are carried out to each data group successively:
Calculate the syndrome of the data group;
The syndrome being calculated is updated in error location polynomial, solves the value of error location polynomial;
Errors present in the data group is found according to the value of the error location polynomial;
Wherein, start to calculate the syndrome of next data group when solving the polynomial value of misalignment position.
Further, the method further includes:
Terminate when finding module and finding, and find that interrupting syndrome during errors present calculates, and corrects on the errors present Mistake;
Recover syndrome when error correction is completed to calculate.
Further, further included after the step of calculating the syndrome of the data group:
The data group storage of syndrome will be calculated in the buffer;
It is to find caching in the step of finding the errors present in the data group according to the value of the error location polynomial In data group in errors present.
Technical scheme can substantially reduce the ECC decoding required times for completing one page of memory, from And memory read time is greatly saved, improve reading speed.
Brief description of the drawings
Fig. 1 is the structural schematic block diagram of the ECC decoders of embodiment one;
Fig. 2 is the flow diagram in one example of embodiment;
Fig. 3 is the process flow schematic diagram in period T3 in one example of embodiment.
Embodiment
Technical scheme is described in detail below in conjunction with accompanying drawings and embodiments.
Embodiment one, a kind of ECC decoders, for the ECC decodings in memory, as shown in Figure 1, including:Syndrome meter Module is calculated, module is solved, finds module;
Grouping module, for the data read from memory to be divided into multiple data groups;
Syndrome computing module, obtained data group is divided for reading one after decoding starts;Calculate read The syndrome of data group, the searching module is sent to after the completion of calculating by the data group, and the syndrome being calculated is sent To the solution module;
Module is solved, for the syndrome being calculated to be updated in error location polynomial, solves errors present Polynomial value is sent to the searching module;
The searching module is used for after the value of error location polynomial is received, according to the value of the error location polynomial Find the errors present in the data group transmitted by the syndrome computing module;
Control module, for when it is described solution module by the polynomial value of misalignment position be sent to it is described find module when, Indicate that the syndrome computing module reads next data group.
In the present embodiment, the size of a data group should be less than or equal to the syndrome computing module, solve module and Find module once treatable data volume minimum value.
In the present embodiment, when data are divided into data group by the grouping module, it can be, but not limited to be by every page (page) data are divided into four data groups, for example the capacity of a page is 2k bytes, then each data group can be 512 Byte, or 1k bytes.
In the present embodiment, the syndrome computing module calculates syndrome, solves module solution error location polynomial Value and find module and find errors present and realize that details can refer to the prior art.
As can be seen that the present embodiment just finds error bit when the error location polynomial for completing a data group calculates Put, and calculate the syndrome of next group of data group at the same time, so as to save the time.In general, in the computing of decoding, solve The time of error polynomial consumption is shorter, and syndrome calculates and finds errors present (in the case of being not counted in the make-up time) institute Time-consuming is suitable, and both upon execution need not be interactively with each other, the present embodiment both are performed it is time-multiplexed, so as to save About approximately half of decoding time.
In an embodiment of the present embodiment, the decoder can also include:
First caching, the second caching;
Data group after division is stored in first caching by the grouping module;
The syndrome computing module is that the data group for dividing and obtaining is read from the described first caching;
Data group is sent to the searching module and referred to by the syndrome computing module:The syndrome computing module will Data group is stored in the second caching, by searching module after the value of error location polynomial is received, from the described second caching Read the data group.
The order that the data group is stored in the first caching can according to the order kept in memory per page data, i.e., the It is followed successively by one caching:Data group that data group that first page data is split into, the second page data are split into ....It is described As soon as the second caching may be configured as at most storing a data group, the number deleted when module reads data group in the second caching is found According to group, or when syndrome computing module stores data group every time, empties the second caching or covering all data therein.
In other embodiments, grouping module oneself can also preserve ready-portioned data group, for the syndrome meter Module is calculated to read;Data group directly can also be sent to searching module by the syndrome computing module, by searching module Lai temporarily Deposit.
In an embodiment of the present embodiment, the searching module corrects the errors present when searching out errors present On mistake, continually look for errors present after the completion of error correction;
The control module can be also used for, when the searching module searching terminates, and finds errors present, indicating institute State syndrome computing module and interrupt syndrome calculating;Indicated when the searching module completes the correcting data error at errors present The syndrome computing module continues interrupted syndrome and calculates.
In the another embodiment of the present embodiment, the control module can be also used for when the searching module finds mistake By mistake after the completion of position, send first and notify to the syndrome computing module;
The syndrome computing module is except directly transmitting the syndrome calculated for the first time in this decoding and directly sending out Send outside the data group read for the first time, syndrome is just only sent to the solution module after first notice is received, with And data group is sent to the searching module.
Both embodiments are provided to ensure before module unfinished work is found, and do not have new error polynomial Value be dealt into searching module.
Illustrated below with a specific example:
When calculating data group m (m is the positive integer more than or equal to 0) and data group m+1, according to the difference of processing stage Five stages are divided time into, are represented here with T1~T5.Due to the data group divided according to the unit of page and decoding processing There are many, optionally several data groups illustrate that its process flow is as shown in Figure 2 herein.
First in the period tl to data group m carry out syndrome calculating, after the completion of calculating in period T2 basis Syndrome result of calculation solves error location polynomial, inputs the value of error location polynomial and data group m after the completion of solution Find module.Can need not be since the value of error location polynomial at this time has been stored in searching module, therefore in period T3 Error location polynomial;So the syndrome that next data group m+1 can be carried out at the same time in period T3 calculates, and together The searching of the errors present of Shi Jinhang data groups m.It is suitable with duration used in syndrome is calculated to find errors present, therefore in the time In section T3 can complete paired data group m searching errors present, and the syndrome of data group m+1 is calculated.So to the period It is exactly that error location polynomial is solved to data group m+1 in T4;Into period T5, and data group m+1 is carried out at the same time wrong The searching of position by mistake, and syndrome calculating is carried out to data group m+2.To the process flows of other data groups can and so on, directly Data group to a page is all decoded and terminated.The approximately half of time can be saved by so calculating, and substantially increase decoding Speed.
Fig. 3 show the process chart in period T3, is carried out at the same time syndrome calculating and the data group of data group m+1 During the searching error location polynomial of m, the control module is found when the searching module to be terminated, and finds error bit Sent when putting and interrupt the control signal that syndrome calculates, interrupt the work of the syndrome computing module;When the searching module Sent when being completed to the correcting data error at errors present and continue the control signal that syndrome calculates, recovered the syndrome and calculate mould The work of block.If not finding mistake, the searching module meeting constant search is until the Data Position terminal of data group m (i.e. last bit data), searching terminates.In general, syndrome calculates the Data Position terminal for also arriving data group m+1 at this time, Syndrome, which calculates, to be terminated.When both terminating, the processing of entry time section T4.
Embodiment two, a kind of ECC interpretation methods, for the ECC decodings in memory, including:
The data read from memory are divided into multiple data groups;Following processing are carried out to each data group successively:
Calculate the syndrome of the data group;
The syndrome being calculated is updated in error location polynomial, solves the value of error location polynomial;
Errors present in the data group is found according to the value of the error location polynomial;
Wherein, when solving the polynomial value of misalignment position, start to calculate the syndrome of next data group.
In the present embodiment, the method can also include:
Terminate when finding module and finding, and find that interrupting syndrome during errors present calculates, and corrects on the errors present Mistake;
Recover syndrome when error correction is completed to calculate.
In an embodiment of the present embodiment, it can also include after the step of calculating the syndrome of the data group:
The data group storage of syndrome will be calculated in the buffer;
It is in caching in the step of finding the errors present in the data group according to the value of the error location polynomial Data group in progress searching.
Certainly, the present invention can also have other various embodiments, ripe in the case of without departing substantially from spirit of the invention and its essence Know those skilled in the art and make various corresponding changes and deformation in accordance with the present invention, but these change and become accordingly Shape should all belong to the scope of the claims of the present invention.

Claims (4)

1. a kind of error checking and correction code decoder, for the error checking in memory and correct decoding, including:
Grouping module, for the data read from memory to be divided into multiple data groups;
It is characterized in that, further include:Solve module, find module;
Syndrome computing module, obtained data group is divided for reading one after decoding starts;Calculate read data The syndrome of group, is sent to the searching module by the data group after the completion of calculating, the syndrome being calculated is sent to institute State solution module;
The solution module is used to the syndrome being calculated being updated in error location polynomial, and it is more to solve errors present The value of item formula is sent to the searching module;
The searching module is used for after the value of error location polynomial is received, and is found according to the value of the error location polynomial The errors present in data group transmitted by the syndrome computing module;
Control module, for when the polynomial value of misalignment position is sent to the searching module by the solution module, indicating The syndrome computing module reads next data group;
The searching module corrects the mistake on the errors present when searching out errors present, and mistake is continually looked for after the completion of error correction Position by mistake;
The control module is additionally operable to, when the searching module searching terminates, and finds errors present, indicate the syndrome Computing module interrupts syndrome and calculates;Indicated when the searching module completes the correcting data error at errors present described adjoint Formula computing module continues interrupted syndrome and calculates;
Further include:First caching, the second caching;
Data group after division is stored in first caching by the grouping module;
The syndrome computing module is that the data group for dividing and obtaining is read from the described first caching;
Data group is sent to the searching module and referred to by the syndrome computing module:The syndrome computing module is by data Group is stored in the second caching, by searching module after the value of error location polynomial is received, is read from the described second caching The data group;
Second buffer setting is at most to store a data group;Find when module reads data group and just delete the second caching In data group, or when syndrome computing module stores data group every time empty the second caching or covering all numbers therein According to.
2. decoder as claimed in claim 1, it is characterised in that:
The control module is additionally operable to after the completion of the searching module finds errors present, is sent first and is notified to described adjoint Formula computing module;
The syndrome computing module is except directly transmitting in this decoding the syndrome that calculates for the first time and directly transmitting the Outside the data group once read, syndrome is just sent to the solution module only after first notice is received, and will Data group is sent to the searching module.
3. a kind of error checking and correction code coding method, decode for the error checking in memory and correction code, including:
The data read from memory are divided into multiple data groups;Following processing are carried out to each data group successively:
Calculate the syndrome of the data group;
The syndrome being calculated is updated in error location polynomial, solves the value of error location polynomial;
Errors present in the data group is found according to the value of the error location polynomial;
Wherein, start to calculate the syndrome of next data group when solving the polynomial value of misalignment position;
Terminate when finding module and finding, and find that interrupting syndrome during errors present calculates, and corrects the mistake on the errors present;
Recover syndrome when error correction is completed to calculate;
Data group after division is stored in the first caching;
The data group for dividing and obtaining is read from the described first caching;
Data group is sent to searching module, is specifically included:Data group is stored in the second caching, is being received by searching module After the value of error location polynomial, the data group is read from the described second caching;
Second buffer setting is at most to store a data group;Find when module reads data group and just delete the second caching In data group, or when syndrome computing module stores data group every time empty the second caching or covering all numbers therein According to.
4. method as claimed in claim 3, it is characterised in that further included after the step of calculating the syndrome of the data group:
The data group for calculating syndrome is stored in the second caching;
It is to find the second caching in the step of finding the errors present in the data group according to the value of the error location polynomial In data group in errors present.
CN201210526509.0A 2012-12-07 2012-12-07 A kind of error checking and correction code decoder and interpretation method Active CN103870354B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210526509.0A CN103870354B (en) 2012-12-07 2012-12-07 A kind of error checking and correction code decoder and interpretation method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210526509.0A CN103870354B (en) 2012-12-07 2012-12-07 A kind of error checking and correction code decoder and interpretation method

Publications (2)

Publication Number Publication Date
CN103870354A CN103870354A (en) 2014-06-18
CN103870354B true CN103870354B (en) 2018-04-17

Family

ID=50908914

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210526509.0A Active CN103870354B (en) 2012-12-07 2012-12-07 A kind of error checking and correction code decoder and interpretation method

Country Status (1)

Country Link
CN (1) CN103870354B (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110389854B (en) * 2019-07-17 2023-09-22 深圳市盈和致远科技有限公司 ECC decoding and error correction method, ECC decoding and error correction device and computer readable storage medium

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5570378A (en) * 1992-04-28 1996-10-29 Mitsubishi Denki Kabushiki Kaisha Error-correcting apparatus
EP1830471A1 (en) * 2006-02-10 2007-09-05 Deutsche Thomson-Brandt Gmbh Apparatus and method for decoding data
CN101488369A (en) * 2009-02-20 2009-07-22 苏州国芯科技有限公司 Interface circuit for BCH code controller
CN101834617A (en) * 2010-06-01 2010-09-15 福建新大陆电脑股份有限公司 RS (Reed-Solomon) error correction decoder
CN102655443A (en) * 2011-03-04 2012-09-05 上海华虹集成电路有限责任公司 Partial parallel realizing method and device of Euclidean algorithm

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5570378A (en) * 1992-04-28 1996-10-29 Mitsubishi Denki Kabushiki Kaisha Error-correcting apparatus
EP1830471A1 (en) * 2006-02-10 2007-09-05 Deutsche Thomson-Brandt Gmbh Apparatus and method for decoding data
CN101488369A (en) * 2009-02-20 2009-07-22 苏州国芯科技有限公司 Interface circuit for BCH code controller
CN101834617A (en) * 2010-06-01 2010-09-15 福建新大陆电脑股份有限公司 RS (Reed-Solomon) error correction decoder
CN102655443A (en) * 2011-03-04 2012-09-05 上海华虹集成电路有限责任公司 Partial parallel realizing method and device of Euclidean algorithm

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
NAND Flash控制器的BCH编/译码器设计;王杰等;《计算机工程》;20100820;第36卷(第16期);222-225 *

Also Published As

Publication number Publication date
CN103870354A (en) 2014-06-18

Similar Documents

Publication Publication Date Title
CN102567134B (en) Error check and correction system and error check and correction method for memory module
US8468432B2 (en) Coder-decoder and method for encoding and decoding an error correction code
CN102938653B (en) A kind of parallel RS decoding method utilizing graphic process unit GPU to realize
CN102377521B (en) Systems and methods for performing forward error correction
CN102017425B (en) System and method for performing concatenated error correction
US8201058B2 (en) Method and apparatus for parallel ECC error location
US20080320369A1 (en) Data retrieval from a storage device using a combined error correction and detection approach
US20140245104A1 (en) Latency Reduced Error Correction Scheme with Error Indication Function for Burst Error Correction Codes
US20100241932A1 (en) Error detector/corrector, memory controller, and semiconductor memory device
US20120144261A1 (en) Error checking and correcting circuit, memory system compising error checking and correcting circuit, and related methods of operation
US20100199156A1 (en) Method And Circuit For Encoding An Error Correction Code
CN101477481A (en) Automatic error correction system and method
CN110768751B (en) Decoding method and circuit, memory controller, storage device and controller
WO2014174370A2 (en) Syndrome tables for decoding turbo-product codes
US20150331742A1 (en) Data managing method, memory control circuit unit and memory storage apparatus
CN103870354B (en) A kind of error checking and correction code decoder and interpretation method
CN101938280A (en) Coding and decoding method and codec of error correction code
CN100393017C (en) Reed-soloman decoder of processing (m) or (zm) bit data and its decoding method
US20110161773A1 (en) Correcting double-bit burst errors using a low density parity check technique
US20060200731A1 (en) System and method of error detection for unordered data delivery
CN109756231B (en) Cyclic shift processing device and method
CN104376876B (en) A kind of adjusting method and adjusting means of ECC error correction ability
TWI739157B (en) Flash memory controller, storage device and reading method
CN101795140B (en) Method and circuit for encoding an error correction code
JP2012085057A (en) Reed-solomon encoding/decoding circuit, reed-solomon encoding/decoding method, and memory device

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: Room 101, Floor 1-5, Building 8, Yard 9, Fenghao East Road, Haidian District, Beijing 100094

Patentee after: Zhaoyi Innovation Technology Group Co.,Ltd.

Address before: 100083 12 Floors, Block A, Tiangong Building, Science and Technology University, 30 College Road, Haidian District, Beijing

Patentee before: GIGADEVICE SEMICONDUCTOR(BEIJING) Inc.