US20120054586A1 - Reconfigurable bch decoder - Google Patents

Reconfigurable bch decoder Download PDF

Info

Publication number
US20120054586A1
US20120054586A1 US13/044,809 US201113044809A US2012054586A1 US 20120054586 A1 US20120054586 A1 US 20120054586A1 US 201113044809 A US201113044809 A US 201113044809A US 2012054586 A1 US2012054586 A1 US 2012054586A1
Authority
US
United States
Prior art keywords
circuit
codeword
syndromes
correction values
current
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.)
Granted
Application number
US13/044,809
Other versions
US8621329B2 (en
Inventor
Pavel A. Panteleev
Elyar E. Gasanov
Ilya V. Neznanov
Andrey P. Sokolov
Yurii S. Shutkin
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.)
Avago Technologies International Sales Pte Ltd
Original Assignee
Individual
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
Assigned to LSI CORPORATION reassignment LSI CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: GASANOV, ELYAR E., NEZNANOV, ILYA V., PANTELEEV, PAVEL A., SHUTKIN, YURII S., SOKOLOV, ANDREY P.
Application filed by Individual filed Critical Individual
Publication of US20120054586A1 publication Critical patent/US20120054586A1/en
Application granted granted Critical
Publication of US8621329B2 publication Critical patent/US8621329B2/en
Assigned to DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT reassignment DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT PATENT SECURITY AGREEMENT Assignors: AGERE SYSTEMS LLC, LSI CORPORATION
Assigned to AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD. reassignment AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: LSI CORPORATION
Assigned to LSI CORPORATION, AGERE SYSTEMS LLC reassignment LSI CORPORATION TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (RELEASES RF 032856-0031) Assignors: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
Assigned to BANK OF AMERICA, N.A., AS COLLATERAL AGENT reassignment BANK OF AMERICA, N.A., AS COLLATERAL AGENT PATENT SECURITY AGREEMENT Assignors: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Assigned to AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD. reassignment AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD. TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Assignors: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Assigned to AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED reassignment AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED MERGER (SEE DOCUMENT FOR DETAILS). Assignors: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Assigned to AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED reassignment AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE OF THE MERGER PREVIOUSLY RECORDED AT REEL: 047230 FRAME: 0910. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Assignors: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Assigned to AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED reassignment AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED CORRECTIVE ASSIGNMENT TO CORRECT THE ERROR IN RECORDING THE MERGER IN THE INCORRECT US PATENT NO. 8,876,094 PREVIOUSLY RECORDED ON REEL 047351 FRAME 0384. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Assignors: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Assigned to BROADCOM INTERNATIONAL PTE. LTD. reassignment BROADCOM INTERNATIONAL PTE. LTD. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Assigned to AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED reassignment AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED MERGER (SEE DOCUMENT FOR DETAILS). Assignors: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED, BROADCOM INTERNATIONAL PTE. LTD.
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/65Purpose and implementation aspects
    • H03M13/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • H03M13/6516Support of multiple code parameters, e.g. generalized Reed-Solomon decoder for a variety of generator polynomials or Galois fields
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic 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/152Bose-Chaudhuri-Hocquenghem [BCH] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic 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/1525Determination and particular use of error location polynomials
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/65Purpose and implementation aspects
    • H03M13/6561Parallelized implementations

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

An apparatus generally having a port, a first circuit and a second circuit is disclosed. The port may be configured to receive a current length of a codeword. The current length may be less than a maximum length of the codeword that the apparatus is designed to decode. The first circuit may be configured to calculate in parallel (i) a sequence of intermediate syndromes from the codeword and (ii) a sequence of correction values based on the current length. The second circuit may be configured to generate a particular number of updated syndromes by modifying the intermediate syndromes with the correction values. The particular number is generally twice a maximum error limit of the codeword.

Description

  • This application claims the benefit of Russian Application No. 2010135817, filed Aug. 30, 2010 and is hereby incorporated by reference in its entirety.
  • FIELD OF THE INVENTION
  • The present invention relates to BCH codes generally and, more particularly, to a method and/or apparatus for implementing a reconfigurable BCH decoder.
  • BACKGROUND OF THE INVENTION
  • Binary BCH codes are a powerful class of multiple error-correcting codes. BCH codes have a wide range of applications, such as optical communications, wireless communications and magnetic recording systems. When applying systematic BCH encoding, data is transmitted in codewords. The codewords include the original data bits and a number of parity bits. Every binary BCH code within an extension field GF(2d) is defined by a codeword length (i.e., n) and a maximum error limit (i.e., t). Each BCH codeword uses parity symbols to correct the received message. Up to t errors created during transmission can be corrected.
  • Most hardware implementations of BCH encoders/decoders deal with a fixed maximum error limit and a fixed code length. The maximum error limit parameter and the code length parameter are fixed at instantiation time of the encoder module and the decoder module and cannot be changed at runtime. However, controllers in modern storage systems for Multi-Level Cell (MLC) FLASH memory and other systems are specified to support many different maximum error limits and codeword lengths in a single design.
  • Referring to FIG. 1, a block diagram of a conventional BCH decoder 20 is shown. The decoder 20 includes a circuit 22 for Syndrome Calculations (SC), a circuit 24 for Key Equation Solving (KES), a circuit 26 for Error Correction (EC) and a First-In-First-Out (FIFO) buffer 28. In operation, the circuit 22 accepts a received codeword symbol-by-symbol and provides a set of syndromes to the circuit 24. The circuit 24 implements a key equation solving technique, such as the Berlekamp-Massey technique, the Euclidian technique or the Peterson technique. The circuit 24 calculates an error-locator polynomial based on the syndromes. The error-locator polynomial provides the positions of errors in the codewords. The circuit 24 passes the error-locator polynomial to the circuit 26. The circuit 26 uses the error-locator polynomial to perform data corrections. A binary failure signal (i.e., FAIL) of the circuit 26 is asserted if a number of corrected data symbols is more than the maximum error limit.
  • SUMMARY OF THE INVENTION
  • The present invention concerns an apparatus generally having a port, a first circuit and a second circuit. The port may be configured to receive a current length of a codeword. The current length may be less than a maximum length of the codeword that the apparatus is designed to decode. The first circuit may be configured to calculate in parallel (i) a sequence of intermediate syndromes from the codeword and (ii) a sequence of correction values based on the current length. The second circuit may be configured to generate a particular number of updated syndromes by modifying the intermediate syndromes with the correction values. The particular number is generally twice a maximum error limit of the codeword.
  • The objects, features and advantages of the present invention include providing a method and/or apparatus for implementing a reconfigurable BCH decoder that may (i) provide rapid reconfiguration, (ii) be reconfigurable at runtime, (iii) use a small silicon area, (iv) operate with different codeword lengths and/or (v) operate with different correctable error limits for the codewords.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • These and other objects, features and advantages of the present invention will be apparent from the following detailed description and the appended claims and drawings in which:
  • FIG. 1 is a block diagram of a conventional BCH decoder;
  • FIG. 2 is a block diagram of an example implementation of an apparatus in accordance with a preferred embodiment of the present invention;
  • FIG. 3 is a block diagram of a partial implementation of an alpha calculation circuit of the apparatus; and
  • FIG. 4 is a detailed block diagram of a portion of the apparatus.
  • DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
  • Changing BCH (Bose, Ray-Chaudhuri, Hocquenghem) code parameters at runtime may be a criteria of in Solid-State Disk (SSD) FLASH controllers. The parameters may include the maximum error limit t and the codeword length n. Some embodiments of the present invention generally permit the maximum error limit t and/or the codeword length n to be changed at runtime through one or more configuration signals. To achieve a fast power up speed, the reconfiguration time is generally short (e.g., less than 3 cycles).
  • Referring to FIG. 2, a block diagram of an example implementation of an apparatus 100 is shown in accordance with a preferred embodiment of the present invention. The apparatus (or device) 100 may be configured as a BCH decoder apparatus. The apparatus 100 generally comprises a circuit (or module) 102, a circuit (or module) 104, a circuit (or module) 106 and a circuit (or module) 108. The circuit 102 may comprise a circuit (or module) 110 and a circuit (or module) 112. The apparatus 100 generally includes a port (or interface) 114, a port (or interface) 116, a port (or interface) 118 and a port (or interface) 120. The circuits 102 to 112 may represent modules and/or blocks that may be implemented as hardware, software, a combination of hardware and software, or other implementations.
  • The circuit 108 and the circuit 110 may receive a signal (e.g., INPUT) through the port 114. A signal (e.g., DELAY) may be presented from the circuit 108 to the circuit 106. The circuit 106 may generate and present a signal (e.g., FAIL) at the port 120. A signal (e.g., OUTPUT) may also be generated and presented by the circuit 106 at the port 118. A signal (e.g., SYN) may be generated by the circuit 110 and presented to the circuit 104. The circuit 104 may generate a signal (e.g., ERRATA) that is received by the circuit 106. A signal (e.g., CNFG) may be received at the port 116 and transferred to the circuits 104, 106 and 112. The signal CNFG generally comprises a signal (e.g., N′) received by the circuits 106 and 112. The signal CNFG may also comprise a signal (e.g., T′) that is received by the circuits 104 and 106. The circuit 112 may generate a signal (e.g., CV) which is received by the circuit 104. In some embodiments, the port 116 may comprise multiple (e.g., 2) ports, a single port for each component of the signal CNFG.
  • The circuit 102 may implement a calculator circuit. The circuit 102 is generally operation to generate in parallel both (i) a sequence of intermediate syndromes from a codeword and (ii) a sequence of correction values based on a current length (e.g., n′) of the codeword. Codewords may be received via the signal INPUT. The current length n′ of the codewords may be received via the signal N′. Intermediate syndromes may be presented in the signal SYN. Correction values may be presented in the signal CV. The current length n′ generally establishes a length of each codeword received in the signal INPUT. In some configurations of the apparatus 100, the current length n′ may be less than the maximum codeword length n that the apparatus 100 is designed to decode. In other configurations, the current length n′ may match the maximum codeword length n.
  • The circuit 104 may be implemented as a key equation solver circuit. The circuit 104 may be operational to calculate an error-locator polynomial based on (i) the syndromes from the signal SYN, (ii) the correction values from the signal CV and (iii) a current error limit (e.g., t′) from the signal T′. In some embodiments, the circuit 104 may implement the Berlekamp-Massey technique, the Euclidian technique or the Peterson technique. Other error-locator polynomial generating techniques may be implemented to meet the criteria of a particular application. Each error-locator polynomial generally provides the positions and magnitudes of errors in a corresponding codeword. The error-locator polynomials may be presented in the signal ERRATA. The current error limit t′ generally establishes a current number of potential errors in each codeword that may be correctable by the apparatus 100. In some configurations, the current error limit t′ may be less than the maximum error limit t that the apparatus 100 is designed to correct. In other configurations, the current error limit t′ may match the maximum error limit t.
  • The circuit 106 may implement an error correction circuit. The circuit 106 is generally operational to calculate reconstructed codewords based on (i) the error-locator polynomials, (ii) delayed copies of the received codewords, (iii) the current length n′ of the codewords and (iv) the current error limit t′. The error-locator polynomials may be received via the signal ERRATA. The delayed copies of the codewords are generally received in the signal DELAY. The current codeword length n′ may be received in the signal N′. The current error limit t′ may be received in the signal T′. The circuit 106 may also be operational to generate the signal FAIL based on the information provided in the signal ERRATA. The signal FAIL may be asserted by the circuit 106 if a number of errors in a codeword exceeds the current error limit t′.
  • The circuit 108 may implement a FIFO memory circuit. The circuit 108 may be designed to hold multiple copies (e.g., 2 copies) of the received codewords from the signal INPUT during multiple (e.g., 2) pipeline stages. After the delay, the each buffered codeword may be presented in sequence to the circuit 106 via the signal DELAY.
  • The circuit 110 may implement a syndrome calculator circuit. The circuit 110 is generally operational to generate multiple intermediate syndromes from each received codeword. The intermediate syndromes may be presented to the circuit 104 in the signal SYN. Where the current length n′ of a codeword is less than a maximum codeword length n, the circuit 110 may pad the codewords with constants (e.g., zeros) to expand the codewords to full size. Therefore, the intermediate syndromes generated for each truncated codeword should be adjusted before the error-locator polynomials are calculated.
  • The circuit 112 may implement an Alpha Calculator (AC) circuit. The circuit 112 is generally operational to calculate correction values that enable the circuit 104 to modify the intermediate syndromes generated by the circuit 110. The correction values may be presented to the circuit 104 in the signal CV.
  • The circuit 100 may be reconfigurable at runtime by setting a configuration value (e.g., current codeword length n′) in the signal N′ and another configuration value (e.g., current error limit t′) in the signal T′. The combination of the values in the signals N′ and T′ may represent reconfiguration data for the apparatus 100.
  • Apparatus 100 may receive a sequence of codewords in the signal INPUT. In the following example, (i) the current codeword length n′ may be the maximum codeword length n and (ii) the current error limit t′ may be the maximum error limit t. Each codeword generally comprises a set of symbols (Cn-1, . . . , C0), where each symbol Ci may be an element of a set {0,1}. Each codeword may be treated as a codeword polynomial C(X)=Cn-1Xn-1+ . . . +C1X+C0. A codeword polynomial may be used by the circuit 110 to generate syndromes as follows: Si=C(αi), i=1, 2, . . . , 2t. The value t is generally the maximum number of errors that the BCH code may correct in each codeword. The element α may be a primitive element of an extension field GF(2d) (e.g., a Galois Field having 2d elements) associated with the BCH code. In a case where the codeword length n matches 2d—1, the syndromes S1, S2, . . . , S2t may be generated by the circuit 110 in final form. Circuit 104 generally uses a key equation solving technique (e.g., Berlekamp-Massey technique) to generate the error-locator polynomial (e.g., Λ(x)) from the syndromes. Circuit 106 may use the error-locator polynomial to correct error positions in the delayed codeword received from the circuit 108. The circuit 106 may also report a failure if the number of error positions is more than the correctable error limit. The failure may be reported by asserting the signal FAIL.
  • The above example may be modified to handle BCH codes were the current error limit t′ is less than the maximal error limit t (e.g., t′<t). To account for the lower error limit, the circuit 104 may perform 2t′ iterations, instead of 2t iterations, in generating the error-locator polynomial. Modifications to handle a shortened codeword length n′ less than the regular codeword length n may be accomplished by using a truncated BCH code. For instance, a truncated codeword C′=(Cn′-1, . . . , C0) may be padded with constants (e.g., zeros) to create a full-length codeword C=(Cn′-1, . . . , C0, 0, . . . , 0). A corresponding codeword polynomial may be expressed as C′(X)=XΔnC′ (X), where C′ (X)=Cn′-1Xn-1+ . . . +C1X+C0 and Δn=n−n′=2d−1−n. Hence, a normal scheme for computing syndromes may generate intermediate syndromes S′i=C′ (αi), i=1, 2, . . . , 2t instead of the regular syndromes Si=C(αi), i=1, 2, . . . , 2t. To obtain the regular syndromes S1, S2, . . . , S2t, the intermediate syndromes S′1, S′2, . . . , S′2t may be calculated and subsequently modified by a formula SiiΔnS′i, i=1, 2, . . . , 2t.
  • The value Δn generally depends on the configuration parameter current codeword length n′ and thus may be difficult to evaluate in a small number of processing cycles. Standard techniques for calculating values αΔn, α2Δn, . . . , α2tΔn may utilize Δn processing cycles.
  • In some embodiments, the apparatus 100 may be configured in a constant number of processing cycles and independently of the current codeword length n′. Therefore, the apparatus 100 may be reconfigured on-the-fly in a small number of processing (reconfiguration) cycles. For example, the apparatus 100 may be configured at runtime when initially powered on. As such, the apparatus 100 may be applied in modern applications of BCH codes, such as the SSD FLASH controllers, in which the configuration parameters may be changeable at runtime. Furthermore, the circuitry of apparatus 100 may occupy a low area of the silicon.
  • Apparatus 100 generally achieves rapid configuration times by sequentially calculating correction values αΔn, α2Δn, . . . , α2tΔn substantially simultaneously (in parallel) with the sequential generation of the intermediate syndromes S′1, S′2, . . . , S′2t. As each intermediate syndrome and each corresponding correction value is generated, updated (regular) syndromes may be sequentially calculated as S1ΔnS′1, S22ΔnS′2, . . . , S2t2tΔnS′2t. Calculations of the correction values may be simplified because αΔn2̂d-1-n′−n′ and α2̂d-1=1 in the field GF(2d). Therefore, a sequence of correction values may be generated by the circuit 112 using a multiplier that performs multiplication by a constant value.
  • Referring to FIG. 3, a block diagram of a partial implementation of the circuit 112 is shown. The circuit 112 generally comprises a circuit (or module) 130, a circuit (or module) 132 and a circuit (or module) 134. The circuits 130 to 134 may represent modules and/or blocks that may be implemented as hardware, software, a combination of hardware and software, or other implementations.
  • A signal (e.g., START) may be received by the circuit 130 at a selection input. The circuit 130 may generate a signal (e.g., A) received at an input of the circuit 132. A signal (e.g., B) may convey a constant value (e.g., α−1) to another input of the circuit 132. The circuit 132 may generate a signal (e.g., C) received by the circuit 134. The circuit 134 may generate the signal CV. The signal CV may be connected to an input (e.g., a “0” input) of the circuit 130. A unity value (e.g., 1) in a field GF(2d) may be received by the circuit 130 at another input (e.g., a “1” input).
  • The circuit 130 may be implemented as a multiplexer circuit. The circuit 130 is generally operational to multiplex the unity value and the signal CV to the signal A. Control of the multiplexing may be provided by the signal START.
  • The circuit 132 may implement a Galois Field multiplier circuit. The circuit 132 may be operational to multiply the value received in the signal A by the constant value α−1 from the signal B. The resulting product value may be transferred in the signal C to the circuit 134.
  • The circuit 134 generally implements a buffer circuit. The circuit 134 may buffer the product value received in the signal C. A new product value may be stored in the circuit 134 for each processing cycle. The buffered product value may be presented in the signal CV to the circuit 130 and the circuit 104 (FIG. 2).
  • When the signal START has an initialization value (e.g., “1”), the circuit 112 generally initializes the calculations of the correction values. While the signal START has an active value (e.g., “0”), the circuit 112 may generate a new correction value in each processing cycle (e.g., each clock cycle), simultaneously with the circuit 110 (FIG. 2) generating the intermediate syndromes. During an initial cycle, the unity value may be presented from the circuit 130 to the circuit 132. The circuit 132 may multiply the unity value by the constant value α−1 and present the product value (e.g., α−1) to the circuit 134 for storage. The circuit 134 generally presents the buffered product value in the signal CV as the initial correction value.
  • During a next cycle, the circuit 130 may route the initial correction value from the circuit 134 to the circuit 132. The circuit 132 may multiply the initial correction value by the value and present the next product value (e.g., α−2) to the circuit 134 as the next correction value. The circuit 134 may present the next correction value in the signal CV. The cycles generally repeat until a final correction value (e.g., α−2t) is generated in the 2t-th cycle.
  • A new correction value may be transferred to the circuit 104 in each cycle. The circuit 104 may be designed to utilize the syndrome values sequentially. For example, during the initial cycle, the circuit 104 may iterate using only the intermediate syndrome S1. During a next cycle, the circuit 104 may iterate using two syndromes S1,S2. Iterations may continue in the circuit 104 until all of the syndromes have been utilized. Hence, sufficient time may exist during the operation of the circuits 104, 110 and 112 to calculate all appropriate values using only two non-constant multipliers.
  • Referring to FIG. 4, a detailed block diagram of a portion of the apparatus 100 is shown. The circuit 112 may comprise the circuit 130, the circuit 132, the circuit 134 and a circuit (or module) 136. The circuit 104 may comprise a circuit (or module) 140 and a circuit (or module) 142. The circuits 130 to 142 may represent modules and/or blocks that may be implemented as hardware, software, a combination of hardware and software, or other implementations.
  • The circuit 136 may generate the signal B. The signal CV may be generated by the circuit 134 and transferred to an input of the circuit 130 and the circuit 140. A signal (e.g., E) may be generated by the circuit 142 and received by another input of the circuit 140. The circuit 140 may generate a signal (e.g., F) that is received by the circuit 142. The signal SYN may transferred from the circuit 110 to the circuit 142. The signal START may be generated by the circuit 110 and received by the circuit 130. The signal N′ may be received by the circuit 136.
  • The circuit 136 may implement a read-only memory circuit. The circuit 136 may be programmed with multiple constant values, a different constant value for each possible current length n′. Selection among constant values may be determined by the signal N′. The selected constant value may be presented in the signal B.
  • The circuit 140 may implement a Galois Field multiplier circuit. The circuit 140 may be operational to multiply a correction value receive in the signal CV by an intermediate syndrome received in the signal E. The resulting product may be an updated syndrome. The updated syndrome may be transferred to the circuit 142 via the signal F.
  • The circuit 142 may implement a multi-word register. The circuit 142 may be operational to buffer the intermediate syndromes as received in the signal SYN. The circuit 142 may also overwrite the intermediate syndromes with the updated syndromes as received in the signal F. The contents of the circuit 142 are generally available to other circuitry within the circuit 104 to calculate the error-locator polynomial.
  • The circuit 110 may transition the signal START from the initialization value to the active value at the beginning of the initial cycle in which the intermediate syndrome S′1 and the correction value αΔn are calculated. By an end of the initial cycle, the intermediate syndrome S′1 may be transferred via the signal SYN to the circuit 142 for storage. The initial correction value αΔn may be stored in the circuit 134 by the end of the cycle.
  • At the start of a next cycle, the circuit 142 may present the intermediate syndrome S′1 to the circuit 140. The circuit 134 may present the correction value αΔn to the circuit 140. The circuit 140 may multiply the intermediate syndrome S′1 by the correction value αΔn to generate an updated syndrome S1. The updated syndrome S1 may be transferred back to the circuit 142 where the updated syndrome S1 replaces the intermediate syndrome S′1. During the cycle, the circuit 110 may generate the intermediate syndrome S′2 and the circuit 112 may generate the correction value α2Δn. By the end of the cycle, the intermediate syndrome S′2 may be stored in the circuit 142 and the correction value α2Δn may be stored in the circuit 134. The cycles may be repeated until all of the updated syndromes S1, S2, . . . , S2t are buffered in the circuit 142. In some embodiments, the circuit 104 may wait until the signal START returns to the initialization value (e.g., circuits 110 and 112 are finished) before generating the error-locator polynomial. In other embodiments, the circuit 104 may begin calculating the error-locator polynomial as soon as the updated syndrome S1 is available.
  • The functions performed by the diagrams of FIGS. 2-4 may be implemented using one or more of a conventional general purpose processor, digital computer, microprocessor, microcontroller, RISC (reduced instruction set computer) processor, CISC (complex instruction set computer) processor, SIMD (single instruction multiple data) processor, signal processor, central processing unit (CPU), arithmetic logic unit (ALU), video digital signal processor (VDSP) and/or similar computational machines, programmed according to the teachings of the present specification, as will be apparent to those skilled in the relevant art(s). Appropriate software, firmware, coding, routines, instructions, opcodes, microcode, and/or program modules may readily be prepared by skilled programmers based on the teachings of the present disclosure, as will also be apparent to those skilled in the relevant art(s). The software is generally executed from a medium or several media by one or more of the processors of the machine implementation.
  • The present invention may also be implemented by the preparation of ASICs (application specific integrated circuits), Platform ASICs, FPGAs (field programmable gate arrays), PLDs (programmable logic devices), CPLDs (complex programmable logic device), sea-of-gates, RFICs (radio frequency integrated circuits), ASSPs (application specific standard products) or by interconnecting an appropriate network of conventional component circuits, as is described herein, modifications of which will be readily apparent to those skilled in the art(s).
  • The present invention thus may also include a computer product which may be a storage medium or media and/or a transmission medium or media including instructions which may be used to program a machine to perform one or more processes or methods in accordance with the present invention. Execution of instructions contained in the computer product by the machine, along with operations of surrounding circuitry, may transform input data into one or more files on the storage medium and/or one or more output signals representative of a physical object or substance, such as an audio and/or visual depiction. The storage medium may include, but is not limited to, any type of disk including floppy disk, hard drive, magnetic disk, optical disk, CD-ROM, DVD and magneto-optical disks and circuits such as ROMs (read-only memories), RAMS (random access memories), EPROMs (electronically programmable ROMs), EEPROMs (electronically erasable ROMs), UVPROM (ultra-violet erasable ROMs), Flash memory, magnetic cards, optical cards, and/or any type of media suitable for storing electronic instructions.
  • The elements of the invention may form part or all of one or more devices, units, components, systems, machines and/or apparatuses. The devices may include, but are not limited to, servers, workstations, storage array controllers, storage systems, personal computers, laptop computers, notebook computers, palm computers, personal digital assistants, portable electronic devices, battery powered devices, set-top boxes, encoders, decoders, transcoders, compressors, decompressors, pre-processors, post-processors, transmitters, receivers, transceivers, cipher circuits, cellular telephones, digital cameras, positioning and/or navigation systems, medical equipment, heads-up displays, wireless devices, audio recording, storage and/or playback devices, video recording, storage and/or playback devices, game platforms, peripherals and/or multi-chip modules. Those skilled in the relevant art(s) would understand that the elements of the invention may be implemented in other types of devices to meet the criteria of a particular application. As used herein, the term “simultaneously” is meant to describe events that share some common time period but the term is not meant to be limited to events that begin at the same point in time, end at the same point in time, or have the same duration.
  • While the invention has been particularly shown and described with reference to the preferred embodiments thereof, it will be understood by those skilled in the art that various changes in form and details may be made without departing from the scope of the invention.

Claims (20)

1. An apparatus comprising:
a port configured to receive a current length of a codeword, wherein said current length is less than a maximum length of said codeword that said apparatus is designed to decode;
a first circuit configured to calculate in parallel (i) a sequence of intermediate syndromes from said codeword and (ii) a sequence of correction values based on said current length; and
a second circuit configured to generate a particular number of updated syndromes by modifying said intermediate syndromes with said correction values, wherein said particular number is twice a maximum error limit of said codeword.
2. The apparatus according to claim 1, wherein said apparatus performs a BCH decoding.
3. The apparatus according to claim 1, wherein said first circuit is further configured to generate a first of said correction values by multiplying a constant value by a unity value in a Galois Field.
4. The apparatus according to claim 3, wherein said first circuit is further configured to generate a second of said correction values by multiplying said constant value by said first correction value.
5. The apparatus according to claim 1, wherein said second circuit comprises a multiplier circuit configured to generate said updated syndromes by multiplying each of said intermediate syndromes with a different one of said correction values.
6. The apparatus according to claim 5, wherein said multiplying is performed sequentially to generate one of said updated syndromes at a time.
7. The apparatus according to claim 1, wherein (i) said port is further configured to receive a current error limit of said codeword and (ii) said current error limit is less than said maximum error limit of said codeword that said apparatus is designed to correct.
8. The apparatus according to claim 7, wherein (i) said second circuit is further configured to iterate at most a given number of times to locate one or more errors in said codeword and (ii) said given number is twice said current error limit.
9. The apparatus according to claim 1, wherein reconfiguration of said apparatus is (i) performed in a constant number of clock cycles and (ii) independent of said current length.
10. The apparatus according to claim 1, wherein said first circuit comprises (i) a syndrome calculator configured to generate said intermediate syndromes and (ii) a third circuit configured to generate said correction values.
11. A method for reconfiguration of a decoder, comprising the steps of:
(A) receiving a current length of a codeword, wherein said current length is less than a maximum length of said codeword that said decoder is designed to decode;
(B) calculating in parallel using said decoder (i) a sequence of intermediate syndromes from said codeword and (ii) a sequence of correction values based on said current length; and
(C) generating a particular number of updated syndromes by modifying said intermediate syndromes with said correction values, wherein said particular number is twice a maximum error limit of said codeword.
12. The method according to claim 11, wherein the steps perform a BCH decoding.
13. The method according to claim 11, further comprising the step of:
generating a first of said correction values by multiplying a constant value by a unity value in a Galois Field.
14. The method according to claim 13, further comprising the step of:
generating a second of said correction values by multiplying said constant value by said first correction value.
15. The method according to claim 11, wherein said generating of said updated syndromes multiplies each of said intermediate syndromes with a different one of said correction values.
16. The method according to claim 15, wherein said multiplying is performed sequentially to generate one of said updated syndromes at a time.
17. The method according to claim 11, further comprising the step of:
receiving a current error limit of said codeword, wherein current error limit is less than said maximum error limit of said codeword that said decoder is designed to correct.
18. The method according to claim 17, further comprising the step of:
iterating at most a given number of times to locate one or more errors in said codeword, wherein said given number is twice said current error limit.
19. The method according to claim 11, further comprising the step of:
reconfiguring said decoder (i) in a constant number of clock cycles and (ii) independent of said current length.
20. An apparatus comprising:
means for receiving a current length of a codeword, wherein said current length is less than a maximum length of said codeword that said apparatus is designed to decode;
means for calculating in parallel (i) a sequence of intermediate syndromes from said codeword and (ii) a sequence of correction values based on said current length; and
means for generating a particular number of updated syndromes by modifying said intermediate syndromes with said correction values, wherein said particular number is twice a maximum error limit of said codeword.
US13/044,809 2010-08-30 2011-03-10 Reconfigurable BCH decoder Active 2032-04-20 US8621329B2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
RU2010135817 2010-08-30
RU2010135817/08A RU2010135817A (en) 2010-08-30 2010-08-30 RECONFIGURABLE BCH CODE DECODER

Publications (2)

Publication Number Publication Date
US20120054586A1 true US20120054586A1 (en) 2012-03-01
US8621329B2 US8621329B2 (en) 2013-12-31

Family

ID=45698775

Family Applications (1)

Application Number Title Priority Date Filing Date
US13/044,809 Active 2032-04-20 US8621329B2 (en) 2010-08-30 2011-03-10 Reconfigurable BCH decoder

Country Status (2)

Country Link
US (1) US8621329B2 (en)
RU (1) RU2010135817A (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130019139A1 (en) * 2011-07-13 2013-01-17 Panteleev Pavel A Variable parity encoder
US20140068390A1 (en) * 2011-10-13 2014-03-06 Hyperstone Gmbh Hybrid decoding of bch codes for nonvolatile memories
US20140380134A1 (en) * 2012-01-30 2014-12-25 Schlumberger Technology Corporation Method of Performing Error-Correction of NMR Data
US9037564B2 (en) 2011-04-29 2015-05-19 Stephen Lesavich Method and system for electronic content storage and retrieval with galois fields on cloud computing networks
US9137250B2 (en) 2011-04-29 2015-09-15 Stephen Lesavich Method and system for electronic content storage and retrieval using galois fields and information entropy on cloud computing networks
US9361479B2 (en) 2011-04-29 2016-06-07 Stephen Lesavich Method and system for electronic content storage and retrieval using Galois fields and geometric shapes on cloud computing networks
US9569771B2 (en) 2011-04-29 2017-02-14 Stephen Lesavich Method and system for storage and retrieval of blockchain blocks using galois fields
US10009041B2 (en) * 2016-04-01 2018-06-26 Korea University Research And Business Foundation BCH decorder in which folded multiplier is equipped

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2601827C1 (en) * 2015-06-10 2016-11-10 Открытое акционерное общество Научно-производственный центр "Электронные вычислительно-информационные системы" Reconfigurable encoder of bch codes
RU2591474C1 (en) * 2015-07-21 2016-07-20 Открытое акционерное общество Научно-производственный центр "Электронные вычислительно-информационные системы" Parallel reconfigurable encoder of bch codes

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4525838A (en) * 1983-02-28 1985-06-25 International Business Machines Corporation Multibyte error correcting system involving a two-level code structure
US4675869A (en) * 1984-02-29 1987-06-23 U.S. Philips Corporation Fast decoder and encoder for Reed-Solomon codes and recording/playback apparatus having such an encoder/decoder
US5051999A (en) * 1989-03-13 1991-09-24 Motorola, Inc. Programmable error correcting apparatus within a paging receiver
US5430739A (en) * 1990-03-27 1995-07-04 National Science Council Real-time Reed-Solomon decoder
US5440570A (en) * 1990-03-27 1995-08-08 National Science Council Real-time binary BCH decoder
US5936978A (en) * 1996-12-05 1999-08-10 Telefonaktiebolaget L M Ericsson (Publ) Shortened fire code error-trapping decoding method and apparatus
US7761779B2 (en) * 2005-11-30 2010-07-20 Kabushiki Kaisha Toshiba Access control apparatus, access control system, processor, access control method, memory access control apparatus, memory access control system, and memory access control method
US7945842B2 (en) * 2007-06-19 2011-05-17 International Business Machines Corporation Method and apparatus for rateless source coding with/without decoder side information

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7823050B2 (en) 2006-12-20 2010-10-26 LSICorporation Low area architecture in BCH decoder
US8527851B2 (en) 2008-08-04 2013-09-03 Lsi Corporation System and method for using the universal multipole for the implementation of a configurable binary Bose-Chaudhuri-Hocquenghem (BCH) encoder with variable number of errors
US8464141B2 (en) 2008-08-13 2013-06-11 Infineon Technologies Ag Programmable error correction capability for BCH codes

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4525838A (en) * 1983-02-28 1985-06-25 International Business Machines Corporation Multibyte error correcting system involving a two-level code structure
US4675869A (en) * 1984-02-29 1987-06-23 U.S. Philips Corporation Fast decoder and encoder for Reed-Solomon codes and recording/playback apparatus having such an encoder/decoder
US5051999A (en) * 1989-03-13 1991-09-24 Motorola, Inc. Programmable error correcting apparatus within a paging receiver
US5430739A (en) * 1990-03-27 1995-07-04 National Science Council Real-time Reed-Solomon decoder
US5440570A (en) * 1990-03-27 1995-08-08 National Science Council Real-time binary BCH decoder
US5936978A (en) * 1996-12-05 1999-08-10 Telefonaktiebolaget L M Ericsson (Publ) Shortened fire code error-trapping decoding method and apparatus
US7761779B2 (en) * 2005-11-30 2010-07-20 Kabushiki Kaisha Toshiba Access control apparatus, access control system, processor, access control method, memory access control apparatus, memory access control system, and memory access control method
US7945842B2 (en) * 2007-06-19 2011-05-17 International Business Machines Corporation Method and apparatus for rateless source coding with/without decoder side information

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9037564B2 (en) 2011-04-29 2015-05-19 Stephen Lesavich Method and system for electronic content storage and retrieval with galois fields on cloud computing networks
US9137250B2 (en) 2011-04-29 2015-09-15 Stephen Lesavich Method and system for electronic content storage and retrieval using galois fields and information entropy on cloud computing networks
US9361479B2 (en) 2011-04-29 2016-06-07 Stephen Lesavich Method and system for electronic content storage and retrieval using Galois fields and geometric shapes on cloud computing networks
US9569771B2 (en) 2011-04-29 2017-02-14 Stephen Lesavich Method and system for storage and retrieval of blockchain blocks using galois fields
US20130019139A1 (en) * 2011-07-13 2013-01-17 Panteleev Pavel A Variable parity encoder
US8775893B2 (en) * 2011-07-13 2014-07-08 Lsi Corporation Variable parity encoder
US20140068390A1 (en) * 2011-10-13 2014-03-06 Hyperstone Gmbh Hybrid decoding of bch codes for nonvolatile memories
US20140380134A1 (en) * 2012-01-30 2014-12-25 Schlumberger Technology Corporation Method of Performing Error-Correction of NMR Data
US9582353B2 (en) * 2012-01-30 2017-02-28 Schlumberger Technology Corporation Method of performing error-correction of nuclear magnetic resonance data
US10009041B2 (en) * 2016-04-01 2018-06-26 Korea University Research And Business Foundation BCH decorder in which folded multiplier is equipped

Also Published As

Publication number Publication date
US8621329B2 (en) 2013-12-31
RU2010135817A (en) 2012-03-10

Similar Documents

Publication Publication Date Title
US8621329B2 (en) Reconfigurable BCH decoder
US9998148B2 (en) Techniques for low complexity turbo product code decoding
US9209832B2 (en) Reduced polar codes
US8397143B2 (en) BCH or reed-solomon decoder with syndrome modification
EP1017177B1 (en) Configurable Reed-Solomon encoder/decoder
US9450615B2 (en) Multi-bit error correction method and apparatus based on a BCH code and memory system
US8700977B2 (en) High-performance ECC decoder
US8612834B2 (en) Apparatus, system, and method for decoding linear block codes in a memory controller
CN101478314B (en) Reed-solomon coder-decoder and decoding method thereof
US5535225A (en) Time domain algebraic encoder/decoder
US20140006896A1 (en) Combined koetter-vardy and chase decoding of cyclic codes
US20100332956A1 (en) Polynomial division
US20100281344A1 (en) Soft reed-solomon decoder based on error-and-erasure reed-solomon decoder
US10236915B2 (en) Variable T BCH encoding
Park et al. Novel folded-KES architecture for high-speed and area-efficient BCH decoders
US10193574B1 (en) Efficient syndrome calculation in processing a GLDPC code
US9281844B2 (en) Configurable and low power encoder for cyclic error correction codes
KR101619049B1 (en) Parallel BCH decoder
US8775893B2 (en) Variable parity encoder
KR101154923B1 (en) BCH decoder, memory system having the same and BCHBCH decoding method
Lee et al. Implementation of parallel BCH encoder employing tree-type systolic array architecture
US8381080B2 (en) Reducing a degree of a polynomial in a polynomial division calculation
Subbiah et al. Fast BCH syndrome generator using parallel polynomial division algorithm for GPGPUs
KR101226439B1 (en) Rs decoder, memory system having the same and decoding method
US8429510B2 (en) Simplified parallel address-generation for interleaver

Legal Events

Date Code Title Description
AS Assignment

Owner name: LSI CORPORATION, CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:PANTELEEV, PAVEL A.;GASANOV, ELYAR E.;NEZNANOV, ILYA V.;AND OTHERS;REEL/FRAME:025933/0194

Effective date: 20100914

STCF Information on status: patent grant

Free format text: PATENTED CASE

AS Assignment

Owner name: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AG

Free format text: PATENT SECURITY AGREEMENT;ASSIGNORS:LSI CORPORATION;AGERE SYSTEMS LLC;REEL/FRAME:032856/0031

Effective date: 20140506

AS Assignment

Owner name: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:LSI CORPORATION;REEL/FRAME:035390/0388

Effective date: 20140814

AS Assignment

Owner name: AGERE SYSTEMS LLC, PENNSYLVANIA

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (RELEASES RF 032856-0031);ASSIGNOR:DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT;REEL/FRAME:037684/0039

Effective date: 20160201

Owner name: LSI CORPORATION, CALIFORNIA

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (RELEASES RF 032856-0031);ASSIGNOR:DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT;REEL/FRAME:037684/0039

Effective date: 20160201

AS Assignment

Owner name: BANK OF AMERICA, N.A., AS COLLATERAL AGENT, NORTH CAROLINA

Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.;REEL/FRAME:037808/0001

Effective date: 20160201

Owner name: BANK OF AMERICA, N.A., AS COLLATERAL AGENT, NORTH

Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.;REEL/FRAME:037808/0001

Effective date: 20160201

AS Assignment

Owner name: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD., SINGAPORE

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS COLLATERAL AGENT;REEL/FRAME:041710/0001

Effective date: 20170119

Owner name: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS COLLATERAL AGENT;REEL/FRAME:041710/0001

Effective date: 20170119

FPAY Fee payment

Year of fee payment: 4

AS Assignment

Owner name: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITE

Free format text: MERGER;ASSIGNOR:AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.;REEL/FRAME:047230/0910

Effective date: 20180509

AS Assignment

Owner name: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITE

Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE OF THE MERGER PREVIOUSLY RECORDED AT REEL: 047230 FRAME: 0910. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER;ASSIGNOR:AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.;REEL/FRAME:047351/0384

Effective date: 20180905

AS Assignment

Owner name: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITE

Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE ERROR IN RECORDING THE MERGER IN THE INCORRECT US PATENT NO. 8,876,094 PREVIOUSLY RECORDED ON REEL 047351 FRAME 0384. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER;ASSIGNOR:AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.;REEL/FRAME:049248/0558

Effective date: 20180905

AS Assignment

Owner name: BROADCOM INTERNATIONAL PTE. LTD., SINGAPORE

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED;REEL/FRAME:053771/0901

Effective date: 20200826

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 8

AS Assignment

Owner name: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED, SINGAPORE

Free format text: MERGER;ASSIGNORS:AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED;BROADCOM INTERNATIONAL PTE. LTD.;REEL/FRAME:062952/0850

Effective date: 20230202