WO2018229703A1 - Reduced latency error correction decoding - Google Patents
Reduced latency error correction decoding Download PDFInfo
- Publication number
- WO2018229703A1 WO2018229703A1 PCT/IB2018/054360 IB2018054360W WO2018229703A1 WO 2018229703 A1 WO2018229703 A1 WO 2018229703A1 IB 2018054360 W IB2018054360 W IB 2018054360W WO 2018229703 A1 WO2018229703 A1 WO 2018229703A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- syndrome
- determining
- computer
- condition
- 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.)
- Ceased
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/1515—Reed-Solomon codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/1575—Direct decoding, e.g. by a direct determination of the error locator polynomial from syndromes and subsequent analysis or by matrix operations involving syndromes, e.g. for codes with a small minimum Hamming distance
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/158—Finite field arithmetic processing
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/65—Purpose and implementation aspects
- H03M13/6502—Reduction of hardware complexity or efficient processing
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/65—Purpose and implementation aspects
- H03M13/6561—Parallelized implementations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0045—Arrangements at the receiver end
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0045—Arrangements at the receiver end
- H04L1/0052—Realisations of complexity reduction techniques, e.g. pipelining or use of look-up tables
Definitions
- ECC error correcting code
- RAS reliability, availability, and serviceability
- a computer-implemented method for performing reduced latency error decoding of a received codeword that comprises a set of input symbols includes determining a first syndrome, a second syndrome, and a third syndrome associated with the received codeword and determining that at least one of the first syndrome, the second syndrome, or the third syndrome is non-zero.
- the method further includes determining a set of constant multipliers and performing a multiplication of the first syndrome with each constant multiplier in the set of constant multipliers to generate a set of products.
- the method additionally includes determining, based at least in part on the set of products, that a first condition is satisfied with respect to the second syndrome and determining that a second condition is satisfied with respect to the third syndrome.
- a single input symbol in the received codeword that contains one or more bit errors is then identified based at least in part on the first condition and the second condition being satisfied and the one or more bit errors in the single input symbol are corrected to obtain an original codeword.
- a system for performing reduced latency error decoding of a received codeword that comprises a set of input symbols includes at least one memory storing computer-executable instructions and at least one processor configured to access the at least one memory and execute the computer-executable instructions to perform a set of operations.
- the operations include determining a first syndrome, a second syndrome, and a third syndrome associated with the received codeword and determining that at least one of the first syndrome, the second syndrome, or the third syndrome is non-zero.
- the operations further include determining a set of constant multipliers and performing a multiplication of the first syndrome with each constant multiplier in the set of constant multipliers to generate a set of products.
- the operations additionally include determining, based at least in part on the set of products, that a first condition is satisfied with respect to the second syndrome and determining that a second condition is satisfied with respect to the third syndrome.
- a single input symbol in the received codeword that contains one or more bit errors is then identified based at least in part on the first condition and the second condition being satisfied and the one or more bit errors in the single input symbol are corrected to obtain an original codeword.
- a computer program product for performing reduced latency error decoding of a received codeword that comprises a set of input symbols.
- the computer program product includes a storage medium readable by a processing circuit.
- the storage medium stores instructions executable by the processing circuit to cause a method to be performed.
- the method includes determining a first syndrome, a second syndrome, and a third syndrome associated with the received codeword and determining that at least one of the first syndrome, the second syndrome, or the third syndrome is non-zero.
- the method further includes determining a set of constant multipliers and performing a multiplication of the first syndrome with each constant multiplier in the set of constant multipliers to generate a set of products.
- the method additionally includes determining, based at least in part on the set of products, that a first condition is satisfied with respect to the second syndrome and determining that a second condition is satisfied with respect to the third syndrome.
- a single input symbol in the received codeword that contains one or more bit errors is then identified based at least in part on the first condition and the second condition being satisfied and the one or more bit errors in the single input symbol are corrected to obtain an original codeword.
- FIG. 1 is a schematic block diagram illustrating a conventional Reed-Solomon decoding process.
- FIG. 2 is a schematic block diagram illustrating a reduced latency error decoding process in accordance with one or more example embodiments of the disclosure.
- FIG. 3A is a schematic diagram illustrating logic for implementing a reduced latency error decoding process in accordance with one or more example embodiments of the disclosure.
- FIG. 3B is an additional schematic diagram illustrating how the logic of FIG. 3A can be used to implement decode term sharing in accordance with one or more example embodiments of the disclosure.
- FIG. 4 is a schematic block diagram of components configured to implement a reduced latency error decoding process in accordance with one or more example embodiments of the disclosure.
- FIG. 5 is a schematic block diagram illustrating an example L4 cache organization in accordance with one or more example embodiments of the disclosure.
- FIG. 6 is a schematic block diagram illustrating an example L3 cache organization in accordance with one or more example embodiments of the disclosure.
- FIG. 7 is a process flow diagram of an illustrative reduced latency error decoding process in accordance with one or more example embodiments of the disclosure.
- FIG. 8 is a schematic diagram of an illustrative networked architecture configured to implement one or more example embodiments of the disclosure.
- Example embodiments of the disclosure include, among other things, systems, methods, computer- readable media, techniques, and methodologies for performing symbol error decoding and correction using an improved reduced latency symbol error correction decoder.
- the reduced latency symbol error correction decoder may be an improved Reed-Solomon (RS) decoder that utilizes enumerated parallel multiplication in lieu of division and replaces general multiplication with constant multiplication.
- RS Reed-Solomon
- the use of parallel multiplication in lieu of division can provide reduced latency particularly for small numbers of symbols. Further, replacement of general multiplication with constant multiplication allows for logic reduction and reduced latency.
- the reduced symbol error correction decoder can utilize decode term sharing which can yield a significant further reduction in decoder logic and further improvement in latency.
- RS codes are a group of error correction codes that belong to the class of non-binary cyclic error correcting codes. RS codes are based on univariate polynomials over finite fields.
- the class of RS codes may include, for example, single error correction (SEC)/double error detection (DED) codes that are capable of detecting and correcting a single symbol with one or more bit errors and detecting but not correcting two symbols, each with one or more bit errors.
- SEC single error correction
- DED double error detection
- An RS code using n-bit symbols can be defined over a Galois field (GF)(2 n ) with a maximum code length of 2 n — 1 symbols.
- GF Galois field
- Each finite field has a primitive element a whose powers express all non-zero field elements.
- each symbol of the codeword C can be viewed as a coefficient of the polynomial C(x).
- a codeword C may include 15 data symbols and 3 check/parity symbols.
- a property of RS codes is that there exists values 1 , a, and a 2 that each yield the zero value for the polynomial C(x) assuming that no errors are present in the codeword C.
- the syndromes may have the same bit length as the symbols of the codeword C.
- So [000010100]
- Si [101011 1 10]
- S 2 [10101 101 1].
- So indicates which bits are in error within the single symbol that is in error.
- So indicates that bits 4 and 6 are in error in the symbol that is in error.
- So may be referred to as a bit-flip vector because it indicates which bits need to be flipped in the symbol in error in order to obtain the original data in the codeword C.
- Si and S 2 can be used to determine the position p of that symbol in the received codeword R.
- syndrome Si is the product of the bit-flip vector So and the value a raised to the power p, where p indicates the position of the single symbol that is in error.
- Conventional RS codes operate by first performing a check to determine whether the product of So and S 2 equals S-i 2 . If so, it can be determined that a single symbol is in error.
- Conventional RS codes then divide Si by So to yield a p , which is then compared to each of the powers of a (e.g., a 0 , a 1 , a ( # of s y mbols - 1 )) t 0 determine which power of a matches, which in turn, indicates the position p of the single symbol in error.
- a e.g., a 0 , a 1 , a ( # of s y mbols - 1 )
- Conventional RS codes may implement the division of Si by So by first performing a lookup of a table of inverses to determine the inverse of So (So -1 ) and then multiplying Si by the inverse So "1 .
- an improved RS code in accordance with example embodiments of the disclosure performs enumerated parallel multiplication in lieu of division.
- an improved RS code in accordance with example embodiments of the disclosure achieves a reduction in latency as compared to conventional RS codes by utilizing constant multiplication in lieu of general multiplication.
- an improved RS code in accordance with example embodiments of the disclosure achieves further reduced latency as compared to conventional RS codes by virtue of performing enumerated parallel multiplication in lieu of division.
- an improved RS code in accordance with example embodiments of the disclosure performs a multiplication of So with each power of a (e.g., a 0 , a 1 , a ( # of s y mbols -
- an improved RS code in accordance with example embodiments of the disclosure also performs a multiplication of Si with each power of a (e.g., a 0 , a 1 , a ' # of symbols " 1 ⁇ ) to determine whether any of the resulting products matches S 2 .
- a e.g., a 0 , a 1 , a ' # of symbols " 1 ⁇
- both of these checks may be performed in parallel. If both of these conditions are met by the same power (pj of a, then it can be determined that a single correctable symbol error is present. This enumerated parallel multiplication with constants achieves a latency reduction over the general multiplication and division performed by conventional RS codes.
- So ⁇ can be added (XORed) with the symbol in the received codeword R that is at position p to correct the error(s) in that symbol and obtain the original codeword C.
- the bit-flip vector So would be XORed with the symbol at position p.
- FIG. 1 is a schematic block diagram illustrating a conventional RS decoding process. While FIG. 1 depicts a decoding and look-up process to obtain the inverse So "1 followed by general multiplication and compare operations, it should be appreciated that conventional RS decoding may instead utilize division (e.g., Si / So), which is associated with an even larger latency than multiplication by the inverse. However, even the conventional process depicted in FIG. 1 that utilizes multiplication by the inverse to implement the division is associated with a significantly larger latency than a symbol error correction decoding process in accordance with example embodiments of the disclosure.
- division e.g., Si / So
- the conventional RS decoding process depicted in FIG. 1 would result in 26 latency levels.
- the process of FIG. 1 includes a decoding step whereby a decoder (DCD) 102 performs a 9-way AND which is equivalent to an INV and 3 levels of AND operations. This results in a latency value of 3. Then a constant look-up 104 is performed which includes a 256-way
- FIG. 1 does not depict the general multiplication step that is performed in conventional RS decoding to determine whether the product of So and S 2 equals S-i 2 .
- conventional RS decoders typically perform this step in parallel with the step to determine the inverse So "1 (or the step to perform the division of So by Si whichever the case may be).
- FIG. 2 is a schematic block diagram illustrating a reduced latency error decoding process in accordance with one or more example embodiments of the disclosure.
- FIG. 4 is a schematic block diagram of components configured to implement a reduced latency error decoding process in accordance with one or more example embodiments of the disclosure.
- FIG. 7 is a process flow diagram of an illustrative reduced latency error decoding method 700 in accordance with one or more example embodiments of the disclosure. FIGS. 2, 4, and 7 will be described in conjunction with one another hereinafter.
- a reduced latency error decoding process in accordance with example embodiments of the disclosure may rest on the assumptions that an error correcting code is short and that minimizing latency is desirable.
- a reduced latency error decoding process in accordance with example embodiments of the disclosure provides ECC protection of a cache design through single-symbol correction/double-symbol detection (SSC/DSD).
- SSC/DSD single-symbol correction/double-symbol detection
- a reduced latency error decoding process in accordance with example embodiments of the disclosure replaces division with enumerated parallel multiplication and further replaces general multiplication with constant multiplications. In doing so, a reduction in logic and reduced latency over conventional decoding processes is achieved.
- a reduced latency error decoding process in accordance with example embodiments of the disclosure may begin with receipt of a codeword R containing at least one data symbol and at least one check symbol.
- the codeword R may include, for example, 9-bit symbols defined over GF(512).
- the received codeword R may contain 15 data symbols and 3 check symbols.
- syndrome generator 402 (FIG. 4) may be executed to compute syndromes So, S-i , and S 2 for the polynomial R(x).
- the syndromes So, S-i, and S 2 represent the values of the polynomial R(x) at the points 1 , a, and a 2 , respectively.
- the GF(512) code may be generated over GF(2) by a root of the primitive polynomial a 9 + a 4 + 1.
- the syndromes So, S-i, and S 2 are computed by evaluating the polynomial R(x) at the points 1 , a, and a 2 , respectively. This may be done in parallel by an XOR circuit which takes 18 received symbols and produces the 3 syndromes.
- the 27 bits outputted by the syndrome generator circuit 402 may include the parts So, S-i, and S 2 , each of which is 9 bits in length.
- So may be a 9-bit vector of the error that indicates which bit(s) in the correctable symbol need to be flipped.
- CE correctable error
- UE uncorrectable error
- the So term may be generated for the bit-flip vector to indicate which of the 9 bits in a corrected symbol needs to be corrected. So can then be used against all the symbols to pre- correct all symbols (each of which may have a tentative correction). As will be described in more detail hereinafter, secondary tests of So, S-i, and S 2 and some constants can then be used to determine which (if any) of the symbols needs correction.
- a decoder 404 may determine whether any of the syndromes So, S-i , or S 2 is non-zero. In response to a negative determination at block 708, which indicates that all syndromes are zero, the method 700 may end because it can be determined that the received codeword R contains no errors. On the other hand, in response to a positive determination at block 708, indicating that one or more of the syndromes So, S-i , and S 2 are non-zero, the method 700 may proceed to block 710, where the decoder circuit 404 may perform an enumerated parallel multiplication of So with each power of a ranging from 0 to [(# symbols in the codeword R) - 1].
- the enumerated parallel multiplication of So with powers of a performed at block 710 and the enumerated parallel multiplication of Si with powers of a performed at block 714 as well as the checks at blocks 712 and 716 may be performed at least partially in parallel.
- the codeword R contains 18 total symbols (15 data symbols and 3 check symbols)
- syndrome So is the error value (e.g., the non-zero bits in So indicate the bits that need to be flipped in the symbol in error in order to correct the symbol).
- Each constant multiplier may be an XOR circuit that takes 9 bits of input and produces 9 bits of output.
- So can be multiplied 202 with a 9X9 constant matrix, for example, to obtain the 9-bit So x A p .
- So x A p may then be compared 204 with Si.
- Si x A p may also be performed. In this manner, which symbol (if any) needs correction may be determined.
- the constant matrix A p may be applied to both So and Si in a constant multiplication operation. Two product vectors of length 18*9 may be produced. These vectors may then be split into 18 successive 9-bit symbols corresponding to the 18 symbols in the codeword R for the example introduced earlier.
- the products of So x A p may be compared with Si and the products of Si x A p may be compared with S 2 .
- the position of the error whose value is So may be identified when both comparisons match for a given pair of product symbols. If there is no position where the products match, then multiple uncorrectable symbol errors are present in the received codeword R.
- FIG. 3A is a schematic diagram illustrating example decoder logic 300 for implementing a reduced latency error decoding process in accordance with one or more example embodiments of the disclosure.
- FIG. 3B is an additional schematic diagram illustrating how the logic 300 of FIG. 3A can reuse constant terms through decode term sharing in accordance with one or more example embodiments of the disclosure.
- S1-S8 can be covered by re-using terms for S2, S4, S16, which are calculated. This can result in a reduction of 25% of the major XOR logic in the decoder 300, for example.
- the logic 300 may include an 18 pack of eDRAMs contained in L3 double data word wrapper outputs, where each eDRAM in the wrapper outputs a 9-bit symbol.
- the symbol ECC may support correction of any number of corrupted bits within a single symbol and detection of any two simultaneously corrupted symbols.
- Two doublewords of data are stored in bits 0: 127 followed by a 7-bit special uncorrectable error (SPUE) stamp and 3 checkbit symbols in bit positions 135: 161.
- SPUE special uncorrectable error
- the 7-bit SPUE stamp may be used to record a detected (uncorrectable error) UE or SPUE on store data going into the eDRAMs.
- the codeword R has a code length of 18 (e.g., 15 data symbols + 3 check symbols) and p ranges from 0 to 17
- decode term sharing results in removing 8 constant multipliers of the 34 that otherwise would be required because the calculation of S 0 a p for even values of p correspond to products which can also be used in the S 2 comparison.
- the comparison with respect to the syndrome S- ⁇ involves computing S 0 a p for all values of p ranging from 0 to 510, which correspond to all the non-zero elements in the finite field.
- a set of positions may be chosen such that all doubles of positions in the set are also contained in the set.
- the following set of positions is chosen: ⁇ 1 , 2, 4, 8, 16, 32, 64, 128, 256 ⁇ .
- This set contains all doubles of positions in the set.
- the code is defined over GF(512), which has 511 non-zero elements, the chosen positions (which represent exponents of the element a) can be interpreted modulo 511.
- 2*256 512 is equivalent to 1 mod 511 and 1 can be interpreted as the double of 256 in modulo 511.
- the above-described set of positions has length 9.
- the example shortened RS code containing 18 symbols requires 17 non-zero positions.
- another set of non-standard positions that contains all doubles of positions in the set must be chosen. Any starting point not contained in the first set may be selected.
- 2*260 520, which is equal to 9 mod 511 , and thus, 9 can be interpreted as the double of 260. Accordingly, this second set of non-standard positions also contains all of its doubles.
- a maximal doubling set modulo 511 has a length of 9.
- the following 18 positions can be chosen for the RS code: ⁇ 0, 1 , 2, 4, 8, 9, 16, 18, 32, 36, 64, 65, 72, 128, 130, 144, 256, 260 ⁇ .
- the corresponding doubles modulo 511 then become: ⁇ 0, 2, 4, 8, 16, 18, 32, 36, 64, 72, 128, 130, 144, 256, 260, 288, 1 , 9 ⁇ .
- the only power contained in the doubled set that is not contained in the original set is 288.
- the 17 non-zero positions can be selected from the original set along with position 288 from the doubled set to yield 18 constant multipliers.
- the latency is significantly lower than with conventional decoding processes.
- the compare operation 204 includes both a pattern compare and a final compare.
- the final compare is a single AND operation resulting in a latency value of 1.
- the compare operation may include an AND operation and an 8-way OR which is equivalent to an AND operation and 3 OR operations, producing a latency value of 4 rather than the 6 described above.
- FIG. 1 An example matrix for checkbit generation is shown below. Assuming eighteen 9-bit input symbols, the matrix for checkbit generation along with the corresponding bit positions may be given by the following table.
- the first column is the output (27 bits, 3 symbols x 9 used for checkbits) which are numbered 0 to 26 vertically within the first column.
- a zero (0) means that bit is NOT part of the calculation and a one (1) means the particular input is part of the calculation of that checkbit.
- the first column (0) is for checkbit 0, which is generated by the XOR of Inputs 1 , 4, 5, 10, 11, 12, 14, 15, 16, 19, 20, 21 , 22, 23, 24, 25, 26, 30, 31 , 32, 33, 35, 39, 41 , 42, 43, 45, 46, 48, 49, 50, 52, 53, 56, 58, 60, 61 , 63, 64, 66, 68, 71 , 72, 73, 76, 78, 81, 82, 84, 85, 86, 88, 93, 98, 99, 100, 101 , 104, 105, 106, 107, 108, 111 , 112, 117, 122, 123, 125, 126, 133, and 134.
- ECC 110011001111011100001000100 134
- Various techniques may be used to convert from one ECC code to another, while still protecting the data.
- One such approach is to generate parity on the data after it is corrected/processed by one code and before it is encoded into a second code.
- Another technique is ECC conversion as described hereinafter that achieves a lower latency by correcting one code while initiating generation of a second code in parallel.
- an ECC generator 406 may perform checkbit generation on the raw data into a second ECC code (for instance a Hamming code) while, in parallel, correction vectors may be generated based on multiplying So by another constant matrix.
- This constant matrix may be based on taking the 9-bit segments of the ECC matrix for the code being converted to (the 6472 code) that are equivalent to the 9-bit symbols distributed in the 9-bit symbol code. So is multiplied against these segments of the matrix to generate, in parallel, those ECC bits that would need to be flipped for each 9-bit symbol that potentially could contain an error.
- late selects may occur on both the data and the 6472 check bits to generate both corrected data and checkbits.
- FIG. 5 is a schematic block diagram illustrating an example error correction flow 502 in accordance with one or more example embodiments of the disclosure.
- the error correction flow 502 includes syndrome generation from a codeword, error decoding using the generated syndromes, and application of the correction to the data of the received codeword. Any new error correction code would then be generated off the corrected data.
- the "syn decode -> flip" block in FIG. 5 may include the same functionality as the decoder 404 depicted in FIG. 4.
- FIG. 6 is a schematic block diagram illustrating an example error correction flow 602 in accordance with one or more example embodiments of the disclosure.
- the example error correction flows 502 and 602 shown respectively in FIGS. 5 and 6 may be implemented using the example decoder logic of FIGS. 3 and 4, for example.
- One or more operations of a reduced latency error decoding process in accordance with example embodiments of the disclosure may be performed, at least in part, by one or more of program modules configured to implement underlying hardware logic.
- program modules may be implemented in any combination of hardware, software, and/or firmware.
- one or more of these program modules may be implemented, at least in part, as software and/or firmware modules that include computer-executable instructions that when executed by a processing circuit cause one or more operations to be performed.
- a system or device described herein as being configured to implement example embodiments of the disclosure may include one or more processing circuits, each of which may include one or more processing units or nodes.
- Computer-executable instructions may include computer-executable program code that when executed by a processing unit may cause input data contained in or referenced by the computer-executable program code to be accessed and processed to yield output data.
- FIG. 8 is a schematic diagram of an illustrative networked architecture 800 configured to implement one or more example embodiments of the disclosure.
- the architecture may include one or more decoding servers 802, one or more networks 804, and one or more datastores, potentially accessible by the decoding server(s) 802 directly or over one or more of the network(s) 804. While the decoding server(s) 802 may be described herein in the singular, it should be appreciated that multiple instances of the decoding server 802 may be provided, and functionality described in connection with the decoding server 802 may be distributed across such multiple instances.
- the decoding server 802 may include one or more processors (processor(s)) 808, one or more memory devices 810 (generically referred to herein as memory 810), one or more input/output (“I/O") interface(s) 812, one or more network interfaces 814, and data storage 816.
- the decoding server 802 may further include one or more buses 818 that functionally couple various components of the decoding server 802.
- the bus(es) 818 may include at least one of a system bus, a memory bus, an address bus, or a message bus, and may permit the exchange of information (e.g., data (including computer-executable code), signaling, etc.) between various components of the decoding server 802.
- the bus(es) 818 may include, without limitation, a memory bus or a memory controller, a peripheral bus, an accelerated graphics port, and so forth.
- the bus(es) 818 may be associated with any suitable bus architecture including, without limitation, an Industry Standard Architecture (ISA), a Micro Channel Architecture (MCA), an Enhanced ISA (EISA), a Video Electronics Standards Association (VESA) architecture, an Accelerated Graphics Port (AGP) architecture, a Peripheral Component Interconnects (PCI) architecture, a PCI-Express architecture, a Personal Computer Memory Card International Association (PCMCIA) architecture, a Universal Serial Bus (USB) architecture, and so forth.
- ISA Industry Standard Architecture
- MCA Micro Channel Architecture
- EISA Enhanced ISA
- VESA Video Electronics Standards Association
- AGP Accelerated Graphics Port
- PCI Peripheral Component Interconnects
- PCMCIA Personal Computer Memory Card International Association
- USB Universal Serial Bus
- the memory 810 may include volatile memory (memory that maintains its state when supplied with power) such as random access memory (RAM) and/or non-volatile memory (memory that maintains its state even when not supplied with power) such as read-only memory (ROM), flash memory, ferroelectric RAM (FRAM), and so forth.
- volatile memory memory that maintains its state when supplied with power
- non-volatile memory memory that maintains its state even when not supplied with power
- ROM read-only memory
- flash memory flash memory
- ferroelectric RAM ferroelectric RAM
- Persistent data storage may include non-volatile memory.
- volatile memory may enable faster read/write access than non-volatile memory.
- certain types of non-volatile memory e.g., FRAM may enable faster read/write access than certain types of volatile memory.
- the memory 810 may include multiple different types of memory such as various types of static random access memory (SRAM), various types of dynamic random access memory (DRAM), embedded DRAM (eDRAM), various types of unalterable ROM, and/or writeable variants of ROM such as electrically erasable programmable read-only memory (EEPROM), flash memory, and so forth.
- the memory 810 may include main memory as well as various forms of cache memory such as instruction cache(s), data cache(s), translation lookaside buffer(s) (TLBs), and so forth.
- cache memory such as a data cache may be a multilevel cache organized as a hierarchy of one or more cache levels (L1, L2, etc.).
- the data storage 816 may include removable storage and/or non-removable storage including, but not limited to, magnetic storage, optical disk storage, and/or tape storage.
- the data storage 816 may provide nonvolatile storage of computer-executable instructions and other data.
- the memory 810 and the data storage 816, removable and/or non-removable, are examples of computer-readable storage media (CRSM) as that term is used herein.
- CRSM computer-readable storage media
- the data storage 816 may store computer-executable code, instructions, or the like that may be loadable into the memory 810 and executable by the processor(s) 808 to cause the processor(s) 808 to perform or initiate various operations.
- the data storage 816 may additionally store data that may be copied to memory 810 for use by the processor(s) 808 during the execution of the computer-executable instructions.
- output data generated as a result of execution of the computer-executable instructions by the processor(s) 808 may be stored initially in memory 810 and may ultimately be copied to data storage 816 for non-volatile storage.
- the data storage 816 may store one or more operating systems (O/S) 820; one or more database management systems (DBMS) 822 configured to access the memory 810 and/or one or more external data store(s) 806; and one or more program modules, applications, engines, computer-executable code, scripts, or the like such as, for example, a syndrome generator 824, a decoder 826, and an ECC generator 828.
- O/S operating systems
- DBMS database management systems
- program modules, applications, engines, computer-executable code, scripts, or the like such as, for example, a syndrome generator 824, a decoder 826, and an ECC generator 828.
- Any of the components depicted as being stored in data storage 816 may include any combination of software, firmware, and/or hardware.
- the software and/or firmware may include computer-executable instructions (e.g., computer- executable program code) that may be loaded into the memory 810 for execution by one or more of the processor(s) 808 to perform any of the operations described earlier in connection with correspondingly named components.
- computer-executable instructions e.g., computer- executable program code
- the data storage 816 may further store various types of data utilized by components of the decoding server 802 (e.g., input message data, pointer data, output data from the processing of input message blocks of an input message, padding signature data, message digest data, etc.). Any data stored in the data storage 816 may be loaded into the memory 810 for use by the processor(s) 808 in executing computer- executable instructions. In addition, any data stored in the data storage 816 may potentially be stored in the external data store(s) 806 and may be accessed via the DBMS 822 and loaded in the memory 810 for use by the processor(s) 808 in executing computer-executable instructions.
- data utilized by components of the decoding server 802 e.g., input message data, pointer data, output data from the processing of input message blocks of an input message, padding signature data, message digest data, etc.
- Any data stored in the data storage 816 may be loaded into the memory 810 for use by the processor(s) 808 in executing computer- executable instructions.
- the processor(s) 808 may be configured to access the memory 810 and execute computer- executable instructions loaded therein.
- the processor(s) 808 may be configured to execute computer- executable instructions of the various program modules, applications, engines, or the like of the decoding server 802 to cause or facilitate various operations to be performed in accordance with one or more embodiments of the disclosure.
- the processor(s) 808 may include any suitable processing unit capable of accepting data as input, processing the input data in accordance with stored computer-executable instructions, and generating output data.
- the processor(s) 808 may include any type of suitable processing unit including, but not limited to, a central processing unit, a microprocessor, a Reduced Instruction Set Computer (RISC) microprocessor, a Complex Instruction Set Computer (CISC) microprocessor, a microcontroller, an Application Specific Integrated Circuit (ASIC), a Field-Programmable Gate Array (FPGA), a System-on-a-Chip (SoC), a digital signal processor (DSP), and so forth. Further, the processor(s) 808 may have any suitable microarchitecture design that includes any number of constituent components such as, for example, registers, multiplexers, arithmetic logic units, cache controllers for controlling read/write operations to cache memory, branch predictors, or the like. The microarchitecture design of the processor(s) 808 may be capable of supporting any of a variety of instruction sets.
- the O/S 820 may be loaded from the data storage 816 into the memory 810 and may provide an interface between other application software executing on the decoding server 802 and hardware resources of the decoding server 802. More specifically, the O/S 820 may include a set of computer-executable instructions for managing hardware resources of the decoding server 802 and for providing common services to other application programs. In certain example embodiments, the O/S 820 may include or otherwise control execution of one or more of the program modules depicted as being stored in the data storage 816.
- the O/S 820 may include any operating system now known or which may be developed in the future including, but not limited to, any server operating system, any mainframe operating system, or any other proprietary or non-proprietary operating system.
- the DBMS 822 may be loaded into the memory 810 and may support functionality for accessing, retrieving, storing, and/or manipulating data stored in the memory 810, data stored in the data storage 816, and/or data stored in the external data store(s) 806.
- the DBMS 822 may use any of a variety of database models (e.g., relational model, object model, etc.) and may support any of a variety of query languages.
- the DBMS 822 may access data represented in one or more data schemas and stored in any suitable data repository.
- External data store(s) 806 that may be accessible by the decoding server 802 via the DBMS 822 may include, but are not limited to, databases (e.g., relational, object-oriented, etc.), file systems, flat files, distributed datastores in which data is stored on more than one node of a computer network, peer-to-peer network datastores, or the like.
- databases e.g., relational, object-oriented, etc.
- file systems e.g., flat files
- distributed datastores in which data is stored on more than one node of a computer network e.g., peer-to-peer network datastores, or the like.
- the input/output (I/O) interface(s) 812 may facilitate the receipt of input information by the decoding server 802 from one or more I/O devices as well as the output of information from the decoding server 802 to the one or more I/O devices.
- the I/O devices may include any of a variety of components such as a display or display screen having a touch surface or touchscreen; an audio output device for producing sound, such as a speaker; an audio capture device, such as a microphone; an image and/or video capture device, such as a camera; a haptic unit; and so forth. Any of these components may be integrated into the decoding server 802 or may be separate.
- the I/O devices may further include, for example, any number of peripheral devices such as data storage devices, printing devices, and so forth.
- the I/O interface(s) 812 may also include an interface for an external peripheral device connection such as universal serial bus (USB), FireWire, Thunderbolt, Ethernet port or other connection protocol that may connect to one or more networks.
- the I/O interface(s) 812 may also include a connection to one or more antennas to connect to one or more networks via a wireless local area network (WLAN) (such as Wi-Fi) radio, Bluetooth, and/or a wireless network radio, such as a radio capable of communication with a wireless communication network such as a Long Term Evolution (LTE) network, WiMAX network, 3G network, etc.
- WLAN wireless local area network
- LTE Long Term Evolution
- WiMAX Worldwide Interoperability for Mobile communications
- 3G network etc.
- the decoding server 802 may further include one or more network interfaces 814 via which the decoding server 802 may communicate with any of a variety of other systems, platforms, networks, devices, and so forth.
- the network interface(s) 814 may enable communication, for example, with one or more other devices via one or more of the network(s) 804.
- the network(s) 804 may include, but are not limited to, any one or more different types of communications networks such as, for example, cable networks, public networks (e.g., the Internet), private networks (e.g., frame-relay networks), wireless networks, cellular networks, telephone networks (e.g., a public switched telephone network), or any other suitable private or public packet-switched or circuit-switched networks.
- the network(s) 804 may have any suitable communication range associated therewith and may include, for example, global networks (e.g., the Internet), metropolitan area networks (MANs), wide area networks (WANs), local area networks (LANs), or personal area networks (PANs).
- network(s) may include communication links and associated networking devices (e.g., link-layer switches, routers, etc.) for transmitting network traffic over any suitable type of medium including, but not limited to, coaxial cable, twisted-pair wire (e.g., twisted-pair copper wire), optical fiber, a hybrid fiber-coaxial (HFC) medium, a microwave medium, a radio frequency communication medium, a satellite communication medium, or any combination thereof.
- program modules depicted in FIG. 8 as being stored in the data storage 816 are merely illustrative and not exhaustive and that processing described as being supported by any particular module may alternatively be distributed across multiple modules, engines, or the like, or performed by a different module, engine, or the like.
- various program module(s), script(s), plug-in(s), Application Programming Interface(s) (API(s)), or any other suitable computer-executable code hosted locally on the decoding server 802 and/or hosted on other computing device(s) accessible via one or more networks may be provided to support functionality provided by the modules depicted in FIG. 8 and/or additional or alternate functionality.
- functionality may be modularized in any suitable manner such that processing described as being performed by a particular module may be performed by a collection of any number of program modules, or functionality described as being supported by any particular module may be supported, at least in part, by another module.
- program modules that support the functionality described herein may be executable across any number of servers 802 in accordance with any suitable computing model such as, for example, a client-server model, a peer-to-peer model, and so forth.
- any of the functionality described as being supported by any of the modules depicted in FIG. 8 may be implemented, at least partially, in hardware and/or firmware across any number of devices.
- the decoding server 802 may include alternate and/or additional hardware, software, or firmware components beyond those described or depicted without departing from the scope of the disclosure. More particularly, it should be appreciated that software, firmware, or hardware components depicted as forming part of the decoding server 802 are merely illustrative and that some components may not be present or additional components may be provided in various embodiments. While various illustrative modules have been depicted and described as software modules stored in data storage 816, it should be appreciated that functionality described as being supported by the modules may be enabled by any combination of hardware, software, and/or firmware. It should further be appreciated that each of the above-mentioned modules may, in various embodiments, represent a logical partitioning of supported functionality.
- a decoding process in accordance with example embodiments of the disclosure may be performed by a decoding server 802 having the illustrative configuration depicted in FIG. 8, or more specifically, by hardware logic, hardware devices, program modules, engines, applications, or the like executable on such a device. It should be appreciated, however, that such operations may be implemented in connection with numerous other device configurations.
- Any operations described herein may be carried out or performed in any suitable order as desired in various example embodiments of the disclosure. Additionally, in certain example embodiments, at least a portion of the operations may be carried out in parallel. Furthermore, in certain example embodiments, less, more, or different operations than those described may be performed.
- any operation, element, component, data, or the like described herein as being based on another operation, element, component, data, or the like may be additionally based on one or more other operations, elements, components, data, or the like. Accordingly, the phrase "based on,” or variants thereof, should be interpreted as “based at least in part on.”
- the present disclosure may be a system, a method, and/or a computer program product.
- the computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present disclosure.
- the computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device.
- the computer readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing.
- a non-exhaustive list of more specific examples of the computer readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing.
- a computer readable storage medium, as used herein, is not to be construed as being transitory signals per se, such as radio waves or other freely propagating
- electromagnetic waves electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire.
- Computer readable program instructions described herein can be downloaded to respective computing/processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and/or a wireless network.
- the network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers.
- a network adapter card or network interface in each computing/processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing/processing device.
- Computer readable program instructions for carrying out operations of the present disclosure may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C++ or the like, and conventional procedural programming languages, such as the "C" programming language or similar programming languages.
- the computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server.
- the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
- electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present disclosure.
- These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
- These computer readable program instructions may also be stored in a computer readable storage medium that can direct a computer, a programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the function/act specified in the flowchart and/or block diagram block or blocks.
- the computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions/acts specified in the flowchart and/or block diagram block or blocks.
- each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s).
- the functions noted in the block may occur out of the order noted in the figures.
- two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved.
Landscapes
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Engineering & Computer Science (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Algebra (AREA)
- General Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Error Detection And Correction (AREA)
Abstract
Description
Claims
Priority Applications (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| GB1918172.6A GB2576860B (en) | 2017-06-16 | 2018-06-14 | Reduced latency error correction decoding |
| DE112018001951.9T DE112018001951T5 (en) | 2017-06-16 | 2018-06-14 | ERROR CORRECTION DECODING WITH REDUCED LATENCY |
| JP2019568093A JP7116374B2 (en) | 2017-06-16 | 2018-06-14 | Reduced Latency Error Correction Decoding |
| CN201880035724.6A CN110679090B (en) | 2017-06-16 | 2018-06-14 | Reduced delay error correction decoding |
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201762521128P | 2017-06-16 | 2017-06-16 | |
| US62/521,128 | 2017-06-16 | ||
| US15/830,526 | 2017-12-04 | ||
| US15/830,526 US10601448B2 (en) | 2017-06-16 | 2017-12-04 | Reduced latency error correction decoding |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2018229703A1 true WO2018229703A1 (en) | 2018-12-20 |
Family
ID=64657747
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/IB2018/054360 Ceased WO2018229703A1 (en) | 2017-06-16 | 2018-06-14 | Reduced latency error correction decoding |
Country Status (6)
| Country | Link |
|---|---|
| US (1) | US10601448B2 (en) |
| JP (1) | JP7116374B2 (en) |
| CN (1) | CN110679090B (en) |
| DE (1) | DE112018001951T5 (en) |
| GB (1) | GB2576860B (en) |
| WO (1) | WO2018229703A1 (en) |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11082062B2 (en) * | 2019-09-17 | 2021-08-03 | SK Hynix Inc. | Hardware implementations of a quasi-cyclic syndrome decoder |
| CN111628834B (en) * | 2020-04-08 | 2022-03-25 | 成都芯通软件有限公司 | EQ calibration and configuration method for multi-band HFC equipment |
| CN112953570B (en) * | 2021-02-04 | 2022-08-19 | 山东云海国创云计算装备产业创新中心有限公司 | Error correction decoding method, device and equipment and computer readable storage medium |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5901158A (en) * | 1997-04-22 | 1999-05-04 | Quantum Corporation | Error correction encoder/decoder |
| US20020104059A1 (en) * | 2000-12-15 | 2002-08-01 | Clara Baroncelli | In-band FEC syndrome computation for SONET |
| US20060031741A1 (en) * | 2004-08-03 | 2006-02-09 | Elaine Ou | Error-correcting circuit for high density memory |
Family Cites Families (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4637021A (en) * | 1983-09-28 | 1987-01-13 | Pioneer Electronic Corporation | Multiple pass error correction |
| JPS61126826A (en) * | 1984-11-22 | 1986-06-14 | Hiroichi Okano | Decoder for double length single error correction double error detection read solomon code |
| US4763330A (en) * | 1986-05-06 | 1988-08-09 | Mita Industrial Co., Ltd. | Syndrome calculating apparatus |
| JP3170920B2 (en) * | 1992-12-25 | 2001-05-28 | ソニー株式会社 | Error correction method and correction circuit |
| JPH0828672B2 (en) * | 1993-03-25 | 1996-03-21 | 博一 岡野 | Double-length single error correction Double error detection Reed-Solomon code decoder |
| US5771244A (en) | 1994-03-09 | 1998-06-23 | University Of Southern California | Universal Reed-Solomon coder/encoder |
| US6421805B1 (en) * | 1998-11-16 | 2002-07-16 | Exabyte Corporation | Rogue packet detection and correction method for data storage device |
| GB2368754B (en) * | 2000-10-31 | 2004-05-19 | Hewlett Packard Co | Error detection and correction |
| US7089276B2 (en) | 2002-10-18 | 2006-08-08 | Lockheed Martin Corp. | Modular Galois-field subfield-power integrated inverter-multiplier circuit for Galois-field division over GF(256) |
| US7418645B2 (en) * | 2003-09-24 | 2008-08-26 | Hitachi Global Storage Technologies Netherlands B.V. | Error correction/detection code adjustment for known data pattern substitution |
| FR2860360B1 (en) | 2003-09-29 | 2005-12-09 | Canon Kk | ENCODING / DECODING DEVICE USING REED-SOLOMON ENCODER / DECODER |
| US7228467B2 (en) * | 2003-10-10 | 2007-06-05 | Quantum Corporation | Correcting data having more data blocks with errors than redundancy blocks |
| US8707143B1 (en) | 2011-06-13 | 2014-04-22 | Altera Corporation | Multiplication-based reed-solomon encoding architecture |
-
2017
- 2017-12-04 US US15/830,526 patent/US10601448B2/en active Active
-
2018
- 2018-06-14 WO PCT/IB2018/054360 patent/WO2018229703A1/en not_active Ceased
- 2018-06-14 DE DE112018001951.9T patent/DE112018001951T5/en active Pending
- 2018-06-14 GB GB1918172.6A patent/GB2576860B/en active Active
- 2018-06-14 CN CN201880035724.6A patent/CN110679090B/en active Active
- 2018-06-14 JP JP2019568093A patent/JP7116374B2/en active Active
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5901158A (en) * | 1997-04-22 | 1999-05-04 | Quantum Corporation | Error correction encoder/decoder |
| US20020104059A1 (en) * | 2000-12-15 | 2002-08-01 | Clara Baroncelli | In-band FEC syndrome computation for SONET |
| US20060031741A1 (en) * | 2004-08-03 | 2006-02-09 | Elaine Ou | Error-correcting circuit for high density memory |
Also Published As
| Publication number | Publication date |
|---|---|
| JP7116374B2 (en) | 2022-08-10 |
| CN110679090A (en) | 2020-01-10 |
| CN110679090B (en) | 2023-05-26 |
| GB2576860B (en) | 2020-08-05 |
| GB2576860A (en) | 2020-03-04 |
| US20180367166A1 (en) | 2018-12-20 |
| JP2020524930A (en) | 2020-08-20 |
| DE112018001951T5 (en) | 2020-02-20 |
| GB201918172D0 (en) | 2020-01-22 |
| US10601448B2 (en) | 2020-03-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US9998148B2 (en) | Techniques for low complexity turbo product code decoding | |
| US10187085B2 (en) | Decoding method, decoding apparatus and decoder | |
| JP4036338B2 (en) | Method and apparatus for correcting and detecting multiple spotty byte errors in a byte with a limited number of error bytes | |
| US9450615B2 (en) | Multi-bit error correction method and apparatus based on a BCH code and memory system | |
| US8806295B2 (en) | Mis-correction and no-correction rates for error control | |
| US20210218419A1 (en) | Method, device and apparatus for storing data, computer readable storage medium | |
| US9843414B2 (en) | Low complexity error correction | |
| US20090259921A1 (en) | Method and apparatus for decoding shortened bch codes or reed-solomon codes | |
| JP2013523043A (en) | How to identify and protect the integrity of a source dataset | |
| US10601448B2 (en) | Reduced latency error correction decoding | |
| US20160049962A1 (en) | Method and apparatus of ldpc encoder in 10gbase-t system | |
| US20170264320A1 (en) | Code reconstruction scheme for multiple code rate tpc decoder | |
| US20050204268A1 (en) | Decoding and error correction for algebraic geometric codes | |
| US9236890B1 (en) | Decoding a super-code using joint decoding of underlying component codes | |
| WO2012109872A1 (en) | Method, apparatus and lte terminals for cyclic redundancy checking in communication system | |
| TWI446728B (en) | Apparatus and method of processing cyclic codes | |
| US9391647B2 (en) | Decoder and decoding method thereof for min-sum algorithm low density parity-check code | |
| CN102882651B (en) | Cyclic redundancy check method and cyclic redundancy check device | |
| US20160132385A1 (en) | Using error correcting codes for parity purposes | |
| CN119602907B (en) | Encoder, encoding method and chip | |
| KR102119764B1 (en) | Appartus and method for transmiting/receiving message packet in vehicle | |
| US20160020785A1 (en) | Low density parity-check code decoder and decoding method thereof | |
| JP2006060465A (en) | Spotty byte error correction / detection method and apparatus | |
| WO2023244620A1 (en) | Detection and correction of errors using limited error correction data | |
| CN101369242A (en) | Self-inspection method for program code and data in computer memory |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 18816486 Country of ref document: EP Kind code of ref document: A1 |
|
| ENP | Entry into the national phase |
Ref document number: 2019568093 Country of ref document: JP Kind code of ref document: A |
|
| ENP | Entry into the national phase |
Ref document number: 201918172 Country of ref document: GB Kind code of ref document: A Free format text: PCT FILING DATE = 20180614 |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 18816486 Country of ref document: EP Kind code of ref document: A1 |