[go: up one dir, main page]

CN112099986B - ECC decoding system and method of branch pipeline structure - Google Patents

ECC decoding system and method of branch pipeline structure Download PDF

Info

Publication number
CN112099986B
CN112099986B CN202010803124.9A CN202010803124A CN112099986B CN 112099986 B CN112099986 B CN 112099986B CN 202010803124 A CN202010803124 A CN 202010803124A CN 112099986 B CN112099986 B CN 112099986B
Authority
CN
China
Prior art keywords
data
error
stage
pipeline
syndrome
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
CN202010803124.9A
Other languages
Chinese (zh)
Other versions
CN112099986A (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.)
Xidian University
Original Assignee
Xidian University
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 Xidian University filed Critical Xidian University
Priority to CN202010803124.9A priority Critical patent/CN112099986B/en
Publication of CN112099986A publication Critical patent/CN112099986A/en
Application granted granted Critical
Publication of CN112099986B publication Critical patent/CN112099986B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Detection And Correction Of Errors (AREA)
  • Error Detection And Correction (AREA)

Abstract

本发明属于通信数据存储技术领域,公开了一种分支流水线结构的ECC译码方法及系统,主要包括BCH译码器、数据输出、分支流水线控制和RAM存储阵列四个模块。根据16位并行输入数据计算伴随式,判断输入数据是否出错,形成两个数据流水分支:当数据无错时,跳过BCH译码器的后续模块,直接读取RAM存储阵列进行数据输出;当数据出错时,在经过错误位置多项式求解模块和错误定位器模块确定出错误图样后,根据16位宽的错误图样,进行数据纠错输出,不同数据单元之间构成两级分支流水。本发明采用16位并行、两级分支流水结构,极大地提高了数据总线传输速率,加快整体译码速度,节约时钟周期。

Figure 202010803124

The invention belongs to the technical field of communication data storage, and discloses an ECC decoding method and system with a branch pipeline structure, which mainly includes four modules of BCH decoder, data output, branch pipeline control and RAM storage array. Calculate the syndrome according to the 16-bit parallel input data, judge whether the input data is wrong, and form two data pipeline branches: when the data is correct, skip the subsequent modules of the BCH decoder and directly read the RAM storage array for data output; When an error occurs, after the error pattern is determined by the error position polynomial solving module and the error locator module, data error correction is output according to the 16-bit wide error pattern, and a two-stage branch pipeline is formed between different data units. The invention adopts a 16-bit parallel, two-stage branch pipeline structure, which greatly improves the data bus transmission rate, accelerates the overall decoding speed, and saves the clock cycle.

Figure 202010803124

Description

ECC decoding system and method of branch pipeline structure
Technical Field
The invention belongs to the technical field of communication data storage, and particularly relates to an ECC decoding system and method of a branch pipeline structure.
Background
At present, a satellite-borne switching system is indispensable for satellite communication, network switching data cannot be transmitted in time and needs to be temporarily stored under many conditions in a special environment of the universe, and NAND FLASH is suitable for data storage of the satellite-borne switching system due to the characteristics of small size, large capacity, long service life, non-volatility in power failure and the like. However, due to the physical characteristics of Nand Flash, problems such as drift Effects (drift Effects), Program-Disturb Errors (Program-Disturb Errors) and Read-Disturb Errors (Read-Disturb Errors) can occur during data reading and writing, and bit flipping occurs at a certain probability. To ensure the reliability of data, a corresponding error detection and correction mechanism, namely ecc (error Checking and correction), is required. Satellite communication has high requirements on data reliability, needs to be stored for a longer time, has higher SLC type NAND FLASH transmission speed and lower power consumption, and meets the requirements of satellite communication. In a common application, for NAND FLASH of SLC type, hamming codes are generally used for ECC error detection and correction, but the reliability of data storage of the satellite-borne switching system is seriously affected by the defects of weak hamming check error correction capability, low coding efficiency and the like. In contrast, the BCH code is more suitable for NAND FLASH error detection and correction in the application scenario.
The ECC implementation of Nand Flash is mainly divided into two parts: encoding, decoding and error correction. The BCH-based ECC coding is mainly realized by a plurality of shift registers and is simple. The BCH-based ECC decoding and error correcting process mainly comprises three steps: syndrome solving, error position polynomial solving and chien searching. At present, the research on the ECC decoding and error correcting process mainly focuses on syndrome solution, error position polynomial solution or chien search, the key points are the internal algorithm optimization of a single module and the corresponding hardware circuit improvement, the whole structure of the ECC decoding system is rarely considered, and the whole decoding speed still has an improvement space. In the prior art, there are two main types of overall structure designs for ECC decoding systems: the non-pipelined BCH decoding structure and the common two-stage pipelined BCH decoding structure are only 8-bit parallel decoding, although the common two-stage pipelined structure is improved in decoding speed compared with the non-pipelined structure, functional redundancy still exists in the data decoding process, error-free data still needs to undergo error position polynomial solution and the error correction process of chien search, path delay is large, power consumption is high, and decoding speed can be improved.
Through the above analysis, the problems and defects of the prior art are as follows: the existing ECC decoding system still has functional redundancy in the data decoding process, the path delay is large, and the decoding speed can still be improved.
The difficulty in solving the above problems and defects is: the algorithm realization of the decoding process tends to be perfect, and the speed is improved from the integral control of a peripheral system, which is a new improvement direction; in addition, to accelerate the speed as much as possible, error-free data is needed to avoid the implementation path of the error correction algorithm as much as possible, which inevitably causes the problems of different optimal decoding routes of different sector data, asynchronous production lines and the like, the considered situation is more complicated, and the design difficulty is greatly increased.
The significance of solving the problems and the defects is as follows: the method provides a new direction for ECC system design, accelerates decoding speed, improves system performance, has strong portability and wide application range, can meet the special situation of the satellite-borne switching system, and is also suitable for NAND FLASH of daily or commercial SLC type and MLC type.
Disclosure of Invention
Aiming at the problems in the prior art, the invention provides an ECC decoding system and method of a branch pipeline structure.
The ECC decoding system of the branch pipeline structure comprises: the system comprises a BCH decoder module, a data output module, a branch pipeline control module and an RAM storage array;
and caching the input pure data, wherein each RAM corresponds to data of one sector, and a plurality of sectors are polled and written.
Calculating a corresponding syndrome from the input pre-decoded data, and judging whether the input data is in error according to the syndrome;
when data are wrong, solving a polynomial of the wrong position by the syndrome, and detecting the number of error codes;
determining error positions according to the solved error position polynomial, shifting out 16-bit-wide error patterns one by one, wherein each group of error patterns corresponds to one group of data error positions;
when the syndrome solving module judges that the data has no error, skipping a subsequent module of the BCH decoder, and directly outputting the data; when data are in error, after an error pattern is determined by the error position polynomial solving module and the error locator module, data are output with error correction according to the error pattern;
the whole decoding system carries out two-stage branch pipeline operation, the first-stage pipeline is syndrome solving, the second-stage pipeline branch is selected according to syndrome solving results, and the two branches correspond to two conditions of data error and no error;
further, the ECC decoding system and method of the branch pipeline structure determine a group of compiled code data units according to the BCH code, where the group of compiled code data units corresponds to a sector of the FLASH, and a data decoding process of the sector is as follows:
the data input is divided into two paths, one path discards check bits, and pure data is stored into a polled RAM; the other path of input data and the check bit are subjected to syndrome solving together, and whether the data have errors is judged according to the syndrome;
when the data are not wrong, reading correct data from the same RAM, and directly outputting the data;
when data are wrong, error positioning is carried out through an iBM algorithm and a chien search algorithm, exclusive OR is carried out on the data read from the same RAM and the positioned errors, bit inversion of wrong bits is completed, and correct data are output.
Further, the ECC decoding system and method of the branch pipeline structure has four stages for decoding data of one sector: the syndrome solving stage syn, the error position polynomial solving stage iBM, the error positioning stage chien and the data output stage tx judge whether the data is in error according to the syndrome, and two different decoding branches are generated.
Furthermore, NAND FLASH reads and writes by taking page as a unit, for 1page of data, multiple decoding operations of single sector are required, different sector data are decoded to form a two-stage branch pipeline structure, and a first-stage pipeline does not depend on two second-stage pipelines; all data need to pass through an adjoint solution stage syn, and the stage is defined as a first stage pipeline syn; for error data, the error location polynomial solution stage iBM, the error location stage chien and the corresponding error correction output stage tx are passed through, and the three stages are combined into a branched second-stage pipeline ibm _ chien _ tx; for error-free data, only the data output stage tx is passed, which is defined as the second stage pipeline tx of the other branch.
Further, the ECC decoding system and method of the branch pipeline structure is used for BCH (4200, 4096, 8) codes, and the first-level pipeline syn occupiesWith 263 clock cycles, the second stage pipeline ibm _ chien _ tx of the error data occupies 275 clock cycles, the second stage pipeline tx of the error-free data occupies the clock cycles depending on the effective data length, occupies 258 clock cycles for 4096 bits of full load per sector, and occupies only 258 clock cycles for 4096 bits of effective data length less than 4096 bits
Figure BDA0002628118440000041
One clock cycle.
Furthermore, the ECC decoding method of the branch pipeline structure performs pipeline synchronization on the condition that two stages of pipelines occupy unequal clock periods; when two stages of pipelines are simultaneously carried out, pipelines occupying short clock cycles need to wait for long-cycle pipelines to finish and then flow downwards; when all sectors in the read 1-page data have no errors, the pipeline only passes through the first-stage pipeline syn and the second-stage pipeline tx to reach the upper limit of the performance of the branch pipeline decoding system; when all sectors in the read 1-page data have errors, the pipeline only passes through the first-stage pipeline syn and the second-stage pipeline ibm _ chien _ tx to reach the lower limit of the performance of the branch pipeline decoding system.
Another object of the present invention is to provide an ECC decoding system with a tributary pipeline structure, which is mounted in a satellite-borne switching system.
By combining all the technical schemes, the invention has the advantages and positive effects that: the bit width of the ECC operation of the NANDFLASH is 8 bits, the bit width is expanded to 16 bits, the 16-bit parallel ECC operation is realized, and the transmission rate of a data bus is increased. The syndrome solving is expanded into 16-bit parallel, and the bit width expansion of the whole ECC decoding system is completed by using 16-bit parallel chien search.
The invention provides a pipeline structure with branches, which ensures that the decoded data of each sector only passes through the optimal pipeline branch by selectively carrying out pipeline operation, error-free data does not need to carry out error positioning and error correction, the integral decoding speed is accelerated, and the clock period is saved.
Drawings
In order to more clearly illustrate the technical solutions of the embodiments of the present application, the drawings needed to be used in the embodiments of the present application will be briefly described below, and it is obvious that the drawings described below are only some embodiments of the present application, and it is obvious for those skilled in the art that other drawings can be obtained from the drawings without creative efforts.
FIG. 1 is a block diagram of an ECC decoding system with a branch pipeline structure according to an embodiment of the present invention;
in fig. 1: 1. a RAM memory array; 2. a BCH decoder; 3. a data output module; 4. and a branch pipeline control module.
Fig. 2 is a schematic structural diagram of an ECC decoding system with a branch pipeline structure according to an embodiment of the present invention.
FIG. 3 is a block diagram of a sector data decoding process according to an embodiment of the present invention.
FIG. 4 is a pipeline branch diagram illustrating an ECC decoding method for a branch pipeline structure according to an embodiment of the present invention.
FIG. 5 is a schematic branch flow chart of an ECC decoding method for a branch flow structure according to an embodiment of the present invention.
Fig. 6 is a diagram of a branch pipeline worst case/normal pipeline decoding provided by an embodiment of the invention.
Fig. 7 is a schematic diagram of decoding an optimal situation of a branch flow according to an embodiment of the present invention.
Detailed Description
In order to make the objects, technical solutions and advantages of the present invention more apparent, the present invention is further described in detail with reference to the following embodiments. It should be understood that the specific embodiments described herein are merely illustrative of the invention and are not intended to limit the invention.
In view of the problems in the prior art, the present invention provides an ECC decoding system and method for a branch pipeline structure, and the present invention is described in detail below with reference to the accompanying drawings.
As shown in fig. 1, the present invention provides an ECC decoding system with a branch pipeline structure, which includes:
the RAM memory array is used for caching the input pure data;
the BCH decoder is used for judging whether the input data is in error, correcting error of the error data and outputting a 16-bit parallel error pattern;
the data output module is used for realizing correct data output according to different conditions, and skipping an error correction part when the data have no errors, and directly outputting the data; when the data is wrong, carrying out data error correction output according to the error pattern;
and the branch pipeline control module is used for controlling the whole decoding system to carry out two-stage branch pipeline operation.
The technical solution of the present invention is further described below with reference to the accompanying drawings.
The branch pipeline structure ECC decoding system is a BCH decoding controller developed based on NAND FLASH, can support NAND FLASH of SLC and MLC types to carry out correct data storage, adapts to the special environment of satellite communication, realizes 16-bit parallel ECC decoding, integrally realizes the adoption of a branch pipeline structure, and improves the decoding speed. Here the implementation is exemplified by BCH (4200, 4096, 8) codes. Fig. 2 shows the overall principle structure of the branch pipeline structure ECC decoding system.
RAM memory array: the incoming pure data is buffered by multiple RAMs. Each RAM corresponds to one sector of data, and a plurality of sectors are polled and written.
The BCH decoder consists of an adjoint solving module, an error position polynomial solving module and an error locator module, and has the following specific functions:
an syndrome solving module: and calculating a corresponding syndrome according to the input pre-decoded data, and judging whether the input data has errors or not according to the syndrome.
An error location polynomial solving module: the error location polynomial is solved by the syndrome and the number of errors is detected, here using the parallel non-inversion Berlekamp-Massey algorithm (iBM algorithm).
An error locator module: and determining error positions according to the solved error position polynomial, shifting out 16-bit-wide error patterns one by one, wherein each group of error patterns corresponds to one group of data error positions. Here a 16-bit parallel chien search is used to locate the error location.
The data output module is mainly divided into two sub-modules which respectively correspond to two conditions:
and when the syndrome solving module judges that the data has no error, skipping a subsequent module of the BCH decoder and directly outputting the data. When data are wrong, after an error pattern is determined through the error position polynomial solving module and the error locator module, data are output in an error correction mode according to the error pattern.
The branch pipeline control module: the method is used for controlling the whole decoding system to carry out two-stage branch pipeline operation, the first-stage pipeline is syndrome solving, the second-stage pipeline branch is selected according to whether data is in error or not, and the two branches correspond to two conditions of data error and data error prevention.
The present invention determines a set of compiled code data units according to the BCH code, which is implemented, for example, in BCH (4200, 4096, 8) code, where one compiled code data unit is 512Byte, corresponding to check bit 14Byte, and generally, one compiled code data unit is NAND FLASH sectors. The data decoding flow of a sector is shown in fig. 3 as follows:
the data input is divided into two paths, one path discards check bits, and pure data is stored into a polled RAM; and the other path of input data and the check bit are subjected to syndrome solving, and whether the data have errors is judged according to the syndrome.
When the data has no error, the correct data is read from the same RAM and directly output.
When data are wrong, error positioning is carried out through an iBM algorithm and a chien search algorithm, exclusive OR is carried out on the data read from the same RAM and the positioned errors, bit inversion of wrong bits is completed, and correct data are output.
NAND FLASH read/write is in units of pages, and for data read of 1page size, a decoding operation of a plurality of sectors is required. For data decoding of a sector, there are mainly four stages: the syndrome solving stage (syn), the error location polynomial solving stage (iBM), the error location stage (chien) and the data output stage (tx) judge whether the data is in error according to the syndrome, and two different decoding branches are generated, as shown in fig. 4 below:
all data need to pass through an adjoint solution stage (syn), and the stage is defined as a first-stage pipeline syn; for the erroneous data, it will go through an error location polynomial solving stage (iBM), an error locating stage (chien) and a corresponding error correction output stage (tx), which are combined into a branched second stage pipeline ibm _ chien _ tx; for error-free data, only the data output stage (tx) is traversed, which is defined as the second stage pipeline tx of the other branch. The whole decoding process forms a two-stage pipeline structure with branches, and a first-stage pipeline is independent of two second-stage pipelines. The specific flow diagram is shown in fig. 5 as follows:
the invention realizes 16-bit parallel ECC decoding, for BCH (4200, 4096, 8) codes, 263 clock cycles are occupied by the first-stage pipeline syn, 275 clock cycles are occupied by the second-stage pipeline ibm _ chien _ tx of error data, the clock cycle occupied by the second-stage pipeline tx of error-free data depends on the effective data length, 258 clock cycles are occupied when each sector is full of 4096 bits, and only 4096 bits are occupied when the effective data length is less than 4096 bits
Figure BDA0002628118440000081
One clock cycle.
And the pipeline synchronization is carried out on the condition that the two-stage pipeline occupies different clock periods. When two stages of pipelines are simultaneously operated, pipelines occupying short clock cycles need to wait for long-cycle pipelines to finish and then flow downwards. The running water shown in fig. 5 is only one of the cases, since the running water process has branches. When all sectors in the read 1-page data have no errors, the pipeline only passes through the first-stage pipeline syn and the second-stage pipeline tx to reach the upper limit of the performance of the branch pipeline decoding system. When all sectors in the read 1-page data have errors, the pipeline only passes through the first-stage pipeline syn and the second-stage pipeline ibm _ chien _ tx to reach the lower limit of the performance of the branch pipeline decoding system.
The technical effects of the present invention will be described in detail with reference to simulations.
Due to the characteristics of the BCH code, the decoding time of an ECC decoding system is long, the hardware cost is high, the problem to be solved is solved by shortening the decoding time of the ECC decoding system, the decoding time can be saved to a great extent and the performance can be improved by improving the ECC decoding control logic outside the BCH decoder besides improving the BCH internal decoding algorithm. The 16-bit parallel branch pipeline structure provided by the invention improves the decoding performance from the aspect of peripheral logic control.
When 1page data is read for decoding, the 16-bit parallel operation is used, and half of decoding time is saved compared with the 8-bit parallel operation.
In addition, for NAND FLASH with 8KB 1page, under the optimal condition, when the branch pipeline structure of the present invention is used and 1page data has no error, at least 200 clock cycles are saved compared with the common two-stage pipeline; when the spare area of NAND FLASH is not fully full and the sector is error free, the tx stage pipeline will save more clock cycles than the ibm _ chien _ tx stage pipeline. In the worst case, even if each sector in 1page data is erroneous, the same decoding speed as that of the general pipeline structure can be maintained. The combination of 16-bit parallel operation and a branch pipeline structure can greatly shorten the ECC decoding time and improve the decoding efficiency.
The implementation example is that for NAND FLASH, the 1-page capacity is 8192+448Byte, where the spare area stores valid data of 96Byte, and BCH (4200, 4096, 8) code is used to perform 16-bit parallel branch pipeline structure decoding, in the worst case, i.e. the normal two-stage pipeline structure, the decoding simulation waveform is as shown in fig. 6, and in the best case, the 1-page data decoding simulation waveform is as shown in fig. 7.
The branch pipeline structure ECC decoding system designed by the invention can meet the special situation of the satellite-borne switching system, and is also suitable for the design of daily or commercial NANDFLASH controllers of SLC type and MLC type and similar memory controllers.
The above description is only for the purpose of illustrating the present invention and the appended claims are not to be construed as limiting the scope of the invention, which is intended to cover all modifications, equivalents and improvements that are within the spirit and scope of the invention as defined by the appended claims.

Claims (8)

1.一种分支流水线结构的ECC译码方法,其特征在于,所述分支流水线结构的ECC译码方法包括:1. an ECC decoding method of branch pipeline structure, it is characterized in that, the ECC decoding method of described branch pipeline structure comprises: 缓存输入的纯数据,每个RAM对应一个扇区的数据,多个扇区轮询写入;Cache the input pure data, each RAM corresponds to the data of one sector, and multiple sectors are polled and written; 由输入的预译码数据,计算出相应伴随式,根据伴随式判断输入数据是否出错;Calculate the corresponding syndrome from the input pre-decoding data, and judge whether the input data is wrong according to the syndrome; 当数据出错时,由伴随式求解错误位置多项式,并检测到误码数;When the data is wrong, the error position polynomial is solved by the syndrome, and the number of errors is detected; 根据求解的错误位置多项式,确定错误位置,将逐个16位宽的错误图样移出;根据错误图样,进行数据纠错输出;According to the solved error position polynomial, the error position is determined, and the 16-bit wide error patterns are removed one by one; according to the error pattern, data error correction output is performed; 当伴随式求解模块判断出数据无错时,跳过BCH译码器的后续模块,直接进行数据输出;When the syndrome solving module judges that the data is correct, it skips the subsequent modules of the BCH decoder and directly outputs the data; 所述分支流水线结构的ECC译码方法根据BCH码决定一组编译码数据单元,一个扇区的数据译码过程如下:The ECC decoding method of the branch pipeline structure determines a group of encoding and decoding data units according to the BCH code, and the data decoding process of a sector is as follows: 数据输入时分为两路,一路丢弃校验位,将纯数据存入轮询到的一个RAM中;另一路输入数据与校验位一起进行伴随式求解,根据伴随式判断数据是否出错;The data input is divided into two ways, one way discards the check digit, and the pure data is stored in one of the polled RAMs; the other way of input data and the check digit are used to solve the syndrome together, and judge whether the data is wrong according to the syndrome; 当数据无错时,从同一RAM中读取正确数据,直接输出;When the data is correct, read the correct data from the same RAM and output it directly; 当数据出错时,通过iBM算法和chien氏搜索算法进行错误定位,读取同一RAM中的数据与定位的错误进行异或,完成错误位的位翻转,并将正确数据输出。When the data is wrong, use the iBM algorithm and Chien's search algorithm to locate the error, read the data in the same RAM and perform XOR with the located error, complete the bit flip of the wrong bit, and output the correct data. 2.如权利要求1所述的分支流水线结构的ECC译码方法,其特征在于,所述分支流水线结构的ECC译码方法对于一个扇区的数据译码,有四个阶段:伴随式求解阶段syn、错误位置多项式求解阶段iBM、错误定位阶段chien和数据输出阶段tx,根据伴随式判断数据是否出错,将产生两个不同译码分支。2. the ECC decoding method of branch pipeline structure as claimed in claim 1 is characterized in that, the ECC decoding method of described branch pipeline structure has four stages for the data decoding of a sector: syndrome solving stage syn, the error location polynomial solution stage iBM, the error location stage chien and the data output stage tx, according to the syndrome to determine whether the data is wrong, will generate two different decoding branches. 3.如权利要求2所述的分支流水线结构的ECC译码方法,其特征在于,NAND FLASH读写以page为单位,对于1page的数据,要进行多次单扇区的译码操作,不同扇区数据译码形成两级分支流水线结构,第一级流水线不依赖于两个第二级流水线;所有数据都需要经过伴随式求解阶段syn,该阶段为第一级流水线syn;对于出错数据,将经历错误位置多项式求解阶段iBM、错误定位阶段chien和相应纠错输出阶段tx,三个阶段组成错误数据分支的第二级流水线ibm_chien_tx;对于无错数据,只经历数据输出阶段tx,该阶段为无错数据分支的第二级流水线tx,整个译码过程形成一个有分支的两级流水线结构,第一级流水线不依赖于两个第二级流水线。3. the ECC decoding method of branch pipeline structure as claimed in claim 2, it is characterized in that, NAND FLASH read and write is unit with page, for the data of 1page, will carry out the decoding operation of multiple single sectors, different sectors The region data decoding forms a two-stage branch pipeline structure, the first-stage pipeline does not depend on the two second-stage pipelines; all data need to go through the syndrome solution stage syn, which is the first-stage pipeline syn; for error data, the Going through the error location polynomial solution stage iBM, the error localization stage chien and the corresponding error correction output stage tx, the three stages form the second-stage pipeline ibm_chien_tx of the error data branch; for error-free data, only the data output stage tx is passed, and this stage is no For the second-stage pipeline tx of the wrong data branch, the entire decoding process forms a branched two-stage pipeline structure, and the first-stage pipeline does not depend on the two second-stage pipelines. 4.如权利要求1所述的分支流水线结构的ECC译码方法,其特征在于,所述分支流水线结构的ECC译码方法对于BCH(4200,4096,8)码,第一级流水syn占用263个时钟周期,错误数据的第二级流水线ibm_chien_tx占用275个时钟周期,无错数据的第二级流水线tx占用时钟周期取决于有效数据长度,对于每个扇区4096bit满负荷时,占用258个时钟周期,对于有效数据长度不足4096bit时,只占用
Figure FDA0003366597300000021
个时钟周期。
4. The ECC decoding method of branch pipeline structure as claimed in claim 1, it is characterized in that, for BCH (4200,4096,8) code, the ECC decoding method of described branch pipeline structure, the first stage pipeline syn occupies 263 The second-stage pipeline ibm_chien_tx for error data occupies 275 clock cycles, and the second-stage pipeline tx for error-free data occupies clock cycles depending on the effective data length, for each sector 4096bit full load, it takes 258 clocks Period, when the effective data length is less than 4096bit, only occupy
Figure FDA0003366597300000021
clock cycles.
5.如权利要求1所述的分支流水线结构的ECC译码方法,其特征在于,所述分支流水线结构的ECC译码方法对于两级流水线占用时钟周期不等的情况,进行了流水线同步;两级流水线同时进行时,占用时钟周期短的流水线需要等待长周期的流水线完成后,再向下流动;当读取的1page数据中,所有扇区都无错时,流水线只经过第一级流水syn和第二级流水tx,达到该分支流水译码系统的性能上限;当读取的1page数据中,所有扇区都出错时,流水线则只经过第一级流水syn和第二级流水ibm_chien_tx,达到该分支流水译码系统的性能下限。5. the ECC decoding method of branch pipeline structure as claimed in claim 1 is characterized in that, the ECC decoding method of described branch pipeline structure has carried out pipeline synchronization for the situation that two-stage pipelines occupy the unequal clock cycle; When the two-stage pipelines are running at the same time, the pipelines occupying a short clock cycle need to wait for the long-cycle pipelines to complete before flowing downward; when all sectors in the read 1page data are error-free, the pipeline only passes through the first-stage pipelines syn and The second-stage pipeline tx reaches the upper limit of the performance of the branch pipeline decoding system; when all sectors in the read 1page data are in error, the pipeline only passes through the first-stage pipeline syn and the second-stage pipeline ibm_chien_tx to reach this level. Lower performance limit of branch-pipeline decoding systems. 6.一种计算机设备,其特征在于,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:6. A computer device, characterized in that the computer device comprises a memory and a processor, the memory stores a computer program, and when the computer program is executed by the processor, the processor is caused to perform the following steps: 缓存输入的纯数据,每个RAM对应一个扇区的数据,多个扇区轮询写入;Cache the input pure data, each RAM corresponds to the data of one sector, and multiple sectors are polled and written; 由输入的预译码数据,计算出相应伴随式,根据伴随式判断输入数据是否出错;Calculate the corresponding syndrome from the input pre-decoding data, and judge whether the input data is wrong according to the syndrome; 当数据出错时,由伴随式求解错误位置多项式,并检测到误码数;When the data is wrong, the error position polynomial is solved by the syndrome, and the number of errors is detected; 根据求解的错误位置多项式,确定错误位置,将逐个16位宽的错误图样移出;According to the solved error position polynomial, determine the error position, and move out the 16-bit wide error patterns one by one; 根据错误图样,进行数据纠错输出;According to the error pattern, perform data error correction output; 当伴随式求解模块判断出数据无错时,跳过BCH译码器的后续模块,直接进行数据输出。When the syndrome solving module judges that the data is correct, it skips the subsequent modules of the BCH decoder and directly outputs the data. 7.一种运行权利要求1~5任意一项所述分支流水线结构的ECC译码方法的分支流水线结构ECC译码系统,其特征在于,所述分支流水线结构的ECC译码系统包括:7. A branch-pipeline structure ECC decoding system for running the branch-pipeline structure ECC decoding method according to any one of claims 1 to 5, wherein the branch-pipeline structure ECC decoding system comprises: RAM存储阵列,用于缓存输入的纯数据,每个RAM对应一个扇区的数据,多个扇区轮询写入;RAM storage array, used to cache input pure data, each RAM corresponds to one sector of data, and multiple sectors are polled for writing; BCH译码器,用于判断输入数据是否出错,并对错误数据进行纠错,输出16位并行错误图样;The BCH decoder is used to judge whether the input data is wrong, correct the wrong data, and output a 16-bit parallel error pattern; 所述BCH译码器包括:伴随式求解模块、错误位置多项式求解模块、错误定位器模块;The BCH decoder includes: a syndrome solving module, an error position polynomial solving module, and an error locator module; 伴随式求解模块:由输入的预译码数据,计算出相应伴随式,根据伴随式判断输入数据是否出错;Syndrome solving module: Calculate the corresponding syndrome from the input pre-decoded data, and judge whether the input data is wrong according to the syndrome; 错误位置多项式求解模块:由伴随式求解错误位置多项式,并检测到误码数;Error position polynomial solving module: solve the error position polynomial by the syndrome, and detect the number of errors; 错误定位器模块:根据求解的错误位置多项式,确定错误位置,将逐个16位宽的错误图样移出,每组错误图样对应一组数据错误位置;Error locator module: According to the solved error position polynomial, the error position is determined, and the 16-bit wide error patterns are removed one by one, and each group of error patterns corresponds to a group of data error positions; 数据输出模块,用于根据不同情况实现正确数据输出,当数据无错时,跳过纠错部分,直接进行数据输出;当数据出错时,根据错误图样,进行数据纠错输出;The data output module is used to realize the correct data output according to different situations. When the data is correct, skip the error correction part and directly output the data; when the data is wrong, according to the error pattern, perform the data error correction output; 分支流水线控制模块,用于控制整个译码系统进行两级分支流水线操作,第一级流水为伴随式求解,根据数据是否出错选择第二级流水分支,两个分支对应数据出错和不出错两种情况。The branch pipeline control module is used to control the entire decoding system to perform a two-stage branch pipeline operation. The first stage pipeline is a concomitant solution, and the second stage pipeline branch is selected according to whether the data is wrong or not. The two branches correspond to data errors and no errors. Happening. 8.一种星载交换系统,其特征在于,所述星载交换系统搭载权利要求7所述的分支流水线结构的ECC译码系统。8 . An on-board switching system, characterized in that, the on-board switching system is equipped with the ECC decoding system of the branch pipeline structure according to claim 7 .
CN202010803124.9A 2020-08-11 2020-08-11 ECC decoding system and method of branch pipeline structure Active CN112099986B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010803124.9A CN112099986B (en) 2020-08-11 2020-08-11 ECC decoding system and method of branch pipeline structure

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010803124.9A CN112099986B (en) 2020-08-11 2020-08-11 ECC decoding system and method of branch pipeline structure

Publications (2)

Publication Number Publication Date
CN112099986A CN112099986A (en) 2020-12-18
CN112099986B true CN112099986B (en) 2022-02-01

Family

ID=73753539

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010803124.9A Active CN112099986B (en) 2020-08-11 2020-08-11 ECC decoding system and method of branch pipeline structure

Country Status (1)

Country Link
CN (1) CN112099986B (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114237969A (en) * 2021-11-09 2022-03-25 珠海亿智电子科技有限公司 Method and device for parallel BCH error correction decoding
CN117081611B (en) * 2023-10-17 2024-03-26 北京融为科技有限公司 Decoding method and device based on parallel processing

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101488369A (en) * 2009-02-20 2009-07-22 苏州国芯科技有限公司 Interface circuit for BCH code controller
CN103762991A (en) * 2013-12-20 2014-04-30 记忆科技(深圳)有限公司 Decoding method and system of BCH codes
CN107688506A (en) * 2017-08-31 2018-02-13 华中科技大学 A kind of BCH decoding systems of flowing structure
CN110389854A (en) * 2019-07-17 2019-10-29 深圳市盈和致远科技有限公司 ECC decodes error correction method, ECC decoding error correction device and computer readable storage medium

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102163463B (en) * 2011-04-26 2013-01-02 西安交通大学 Double coin search method for reducing BCH (broadcast channel) decoding delay
US20170161141A1 (en) * 2015-12-02 2017-06-08 Samsung Electronics Co., Ltd. Method and apparatus for correcting data in multiple ecc blocks of raid memory
KR102461738B1 (en) * 2016-08-16 2022-11-02 에스케이하이닉스 주식회사 Semiconductor memory device and operating method thereof
KR102777471B1 (en) * 2016-11-25 2025-03-10 에스케이하이닉스 주식회사 Error correction circuit and memory controller including the error correction circuit

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101488369A (en) * 2009-02-20 2009-07-22 苏州国芯科技有限公司 Interface circuit for BCH code controller
CN103762991A (en) * 2013-12-20 2014-04-30 记忆科技(深圳)有限公司 Decoding method and system of BCH codes
CN107688506A (en) * 2017-08-31 2018-02-13 华中科技大学 A kind of BCH decoding systems of flowing structure
CN110389854A (en) * 2019-07-17 2019-10-29 深圳市盈和致远科技有限公司 ECC decodes error correction method, ECC decoding error correction device and computer readable storage medium

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
High performance low complexity BCH error correction circuit for SSD controllers;ping Chen等;《2015 IEEE international conference on Electron devices and solid-state circuits》;20151231;第217-220页 *
基于BCH码的NAND Flash纠错算法设计与实现;陈昭林 , 张晋宁 , 沈辉;《电子测量技术》;20170331(第3期);第127-132页 *

Also Published As

Publication number Publication date
CN112099986A (en) 2020-12-18

Similar Documents

Publication Publication Date Title
US6216247B1 (en) 32-bit mode for a 64-bit ECC capable memory subsystem
US8671329B2 (en) Low overhead and timing improved architecture for performing error checking and correction for memories and buses in system-on-chips, and other circuits, systems and processes
US8677205B2 (en) Hierarchical error correction for large memories
CN112099986B (en) ECC decoding system and method of branch pipeline structure
US8566672B2 (en) Selective checkbit modification for error correction
EP3566139A1 (en) Error-correcting code memory
CN104765650A (en) Data processing apparatus
US5768294A (en) Memory implemented error detection and correction code capable of detecting errors in fetching data from a wrong address
CN113076219B (en) An energy-efficient on-chip memory error detection and error correction circuit and implementation method
WO2013147794A1 (en) Enhanced storage of metadata utilizing improved error detection and correction in computer memory
JPS60173930A (en) Pipeline processing viterbi decoder
WO2017116722A1 (en) Apparatus and method for multi-bit error detection and correction
CN107992376A (en) Dsp processor data storage Active Fault Tolerant method and apparatus
CN104409103A (en) Novel two-dimensional coding reinforcing method and circuit arrangement for aerospace memory
US3898443A (en) Memory fault correction system
US12149259B2 (en) Single-cycle byte correcting and multi-byte detecting error code
CN107688506B (en) BCH decoding system with flow structure
JP5772192B2 (en) Semiconductor device, information processing apparatus, and error detection method
US20130227368A1 (en) Hierarchical error correction
KR20230049537A (en) Machine-learning error-correcting code controller
US8316283B2 (en) Hybrid error correction code (ECC) for a processor
CN110309014A (en) A kind of full row encoding and decoding SRAM encoder data read-write structure and data read-write method
CN105320575A (en) Self-checking and recovering device and method for dual-modular redundancy assembly lines
CN117112318A (en) Dual-core fault-tolerant system based on RISC-V architecture
Maamar et al. A 32 bit RISC processor with concurrent error detection

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant