Joint compression of multiple types of soft metrics in soft decoders

Joint compression of soft metrics in iterative decoders addresses memory challenges by combining channel, intermediate, and combined LLRs, reducing memory and power consumption while maintaining decoding efficiency.

WO2026106756A1PCT designated stage Publication Date: 2026-05-21RETYM INC
View PDF 4 Cites 0 Cited by

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
RETYM INC
Filing Date
2025-10-19
Publication Date
2026-05-21

AI Technical Summary

Technical Problem

Existing soft decoding systems require substantial memory resources for storing and processing soft metrics, especially in iterative decoding systems where soft metrics are repeatedly accessed and updated throughout multiple decoding iterations.

Method used

Implement joint compression techniques that combine multiple types of soft metrics, such as channel, intermediate, and combined LLRs, to reduce memory requirements while preserving essential reliability information.

Benefits of technology

Significantly reduces memory requirements, cost, and power consumption of iterative decoders by leveraging correlations and redundancies among soft metrics, maintaining effective soft decoding performance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure US2025051596_21052026_PF_FP_ABST
    Figure US2025051596_21052026_PF_FP_ABST
Patent Text Reader

Abstract

An apparatus includes a decoder (32), a compressor (36) and a decompressor (40). The decoder decodes a codeword of an ECC in a sequence of decoding steps. In a given decoding step, the decoder attempts decoding a respective subset of bits of the codeword by: (a) receiving a combination of (i) channel soft metrics and (ii) intermediate soft metrics that have gone through one or more previous decoding steps, for the bits in the subset, (b) attempting to decode the subset by processing the channel soft metrics and the intermediate soft metrics, and (c) updating one or more of the intermediate soft metrics. The compressor converts at least some of the intermediate LLRs belonging to a subset into a joint compressed representation. The decompressor decompresses the joint compressed representation to produce decompressed intermediate soft metrics, and provides the decompressed intermediate soft metrics for use in subsequent decoding steps.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] JOINT COMPRESSION OF MULTIPLE TYPES OF SOFT METRICS IN SOFT DECODERS CROSS-REFERENCE TO RELATED APPLICATIONS This application claims the benefit of U.S. Provisional Patent Application 63 / 720,193, filed November 14, 2024, whose disclosure is incorporated herein by reference.

[0002] FIELD OF THE INVENTION

[0003] The present invention relates generally to error correction coding, and particularly to methods and systems for joint compression of multiple types of soft metrics.

[0004] BACKGROUND OF THE INVENTION

[0005] Error correction codes (ECCs) are widely used in digital communication systems and data storage devices to detect and correct errors that may occur during data transmission or storage. An ECC adds redundancy to the original data, allowing the receiver or reader to identify and correct errors. Soft decoding techniques, which utilize reliability information associated with each received bit, have become increasingly popular due to their superior error-correcting performance compared to hard decision decoding.

[0006] In soft decoding, soft metrics such as Log-Likelihood Ratios (LLRs), are commonly used to represent the reliability of each received bit. The LLR values are typically extracted from demodulated symbols and provide a measure of the probability that a particular bit is a 'O' or a T'. The magnitude of an LLR indicates the reliability of the corresponding bit, with larger magnitudes suggesting higher reliability.

[0007] SUMMARY OF THE INVENTION

[0008] An embodiment of the present invention that is described herein provides an apparatus including a decoder, a compressor, a memory and a decompressor. The decoder is configured to decode a codeword of an Error Correction Code (ECC) in a sequence of decoding steps. In a given decoding step, the decoder is configured to attempt decoding a respective subset of bits of the codeword by: (a) receiving a combination of (i) channel soft metrics and (ii) intermediate soft metrics that have gone through one or more previous decoding steps, for the bits in the subset, (b) attempting to decode the subset of the bits by processing the channel soft metrics and the intermediate soft metrics, and (c) updating one or more of the intermediate soft metrics. The compressor is configured to convert at least some of the intermediate LLRs belonging to a subset into a joint compressed representation. The memory is configured to store the joint compressed representation. The decompressor is configured to read the joint compressed representation from the memory, to decompress the joint compressed representation so as to produce decompressed intermediate soft metrics, and to provide the decompressed intermediate soft metrics to the decoder for use in one or more subsequent decoding steps.

[0009] In an embodiment, the channel soft metrics and the intermediate soft metrics include Log Likelihood Ratios (LLRs). In an embodiment, the ECC is a composite ECC including multiple constituent codes, and each subset of bits includes a respective constituent code of the composite code.

[0010] In a disclosed embodiment, the compressor is configured to allocate a total number of bits for the entire joint compressed representation of the intermediate soft metrics. In an example embodiment, the compressor is configured to include in the joint compressed representation one or more additional intermediate soft metrics belonging to at least one additional codeword.

[0011] There is additionally provided, in accordance with an embodiment of the present invention, an apparatus including a decoder and a compressor. The decoder is configured to decode a codeword of an Error Correction Code (ECC) in a sequence of decoding steps. In a given decoding step, the decoder is configured to attempt decoding a respective subset of bits of the codeword by: (a) receiving combined soft metrics for the bits in the subset, each combined soft metric corresponding to a respective bit in the subset and including a combination of (i) a channel soft metric of the bit and (ii) an intermediate soft metric of the bit that has gone through one or more previous decoding steps, (b) attempting to decode the subset of the bits by processing the combined soft metrics, and (c) updating one or more of the intermediate soft metrics. The compressor is configured to jointly compress one or more difference values, each difference value representing a difference between (i) an updated combined soft metric produced by the decoder, and (ii) a corresponding channel soft metric, for use in one or more subsequent decoding steps.

[0012] In some embodiments, the apparatus further includes a channel soft metric approximator, configured to approximate one or more of the channel soft metrics based on (i) one or more corresponding difference values produced by the compressor and (ii) one or more corresponding combined soft metrics, and to provide the approximated channel soft metrics to the compressor for compression, in preparation for subsequent decoding steps.

[0013] In an embodiment, the channel soft metrics and the combined soft metrics include Log Likelihood Ratios (LLRs). In an embodiment, the ECC is a composite ECC comprising multiple constituent codes, and each subset of bits includes a respective constituent code of the composite code. There is also provided, in accordance with an embodiment of the present invention, a method including, using a decoder, decoding a codeword of an Error Correction Code (ECC) in a sequence of decoding steps, wherein in a given decoding step, the decoder attempts to decode a respective subset of bits of the codeword by: (a) receiving a combination of (i) channel soft metrics and (ii) intermediate soft metrics that have gone through one or more previous decoding steps, for the bits in the subset, (b) attempting to decode the subset of the bits by processing the channel soft metrics and the intermediate soft metrics, and (c) updating one or more of the intermediate soft metrics. At least some of the intermediate LLRs belonging to a subset are converted into a joint compressed representation. The joint compressed representation is stored in a memory. The joint compressed representation is read from the memory and decompressed so as to produce decompressed intermediate soft metrics. The decompressed intermediate soft metrics are provided to the decoder for use in one or more subsequent decoding steps.

[0014] There is further provided, in accordance with an embodiment of the present invention, a method including, using a decoder, decoding a codeword of an Error Correction Code (ECC) in a sequence of decoding steps, wherein in a given decoding step, the decoder attempts to decode a respective subset of bits of the codeword by: (a) receiving combined soft metrics for the bits in the subset, each combined soft metric corresponding to a respective bit in the subset and including a combination of (i) a channel soft metric of the bit and (ii) an intermediate soft metric of the bit that has gone through one or more previous decoding steps, (b) attempting to decode the subset of the bits by processing the combined soft metrics, and (c) updating one or more of the intermediate soft metrics. One or more difference values are jointly compressed, each difference value representing a difference between (i) an updated combined soft metric produced by the decoder, and (ii) a corresponding channel soft metric, for use in one or more subsequent decoding steps.

[0015] The present invention will be more fully understood from the following detailed description of the embodiments thereof, taken together with the drawings in which:

[0016] BRIEF DESCRIPTION OF THE DRAWINGS

[0017] Fig. l is a block diagram that schematically illustrates an iterative Error Correction Code (ECC) decoder that uses joint compression of intermediate LLRs, in accordance with an embodiment of the present invention;

[0018] Fig. 2 is a flow chart that schematically illustrates a method for ECC decoding using joint compression of intermediate LLRs, in accordance with an embodiment of the present invention; Fig. 3 is a block diagram that schematically illustrates an iterative ECC decoder that uses joint compression of channel LLRs and combined LLRs, in accordance with an embodiment of the present invention; and

[0019] Fig. 4 is a flow chart that schematically illustrates a method for joint compression of channel LLRs and combined LLRs, in accordance with an embodiment of the present invention.

[0020] DETAILED DESCRIPTION OF EMBODIMENTS OVERVIEW

[0021] Embodiments of the present invention that are described herein provide improved methods and systems for processing and storing soft metrics used by soft Error Correction Code (ECC) decoders.

[0022] In soft decoding, soft metrics such as Log-Likelihood Ratios (LLRs) are used to represent the reliability of received bits, providing superior error-correcting performance compared to hard decoding. However, storing and processing soft metrics requires substantial memory resources, especially in iterative decoding systems where the soft metrics are repeatedly accessed and updated throughout multiple decoding iterations.

[0023] The disclosed embodiments address this challenge through joint compression techniques that reduce memory requirements while preserving the essential reliability information needed for effective soft decoding. Rather than compressing different types of soft metrics independently, the disclosed approach recognizes that multiple types of soft metrics used in iterative decoding can be compressed together more efficiently, taking advantage of correlations and redundancies between them.

[0024] The present disclosure addresses three different types of soft metrics, by way of example: - Channel soft metrics. The channel soft metric of a is indicative of the belief (e.g., likelihood or reliability measure) of whether the transmitted value of the was "0" or "1", given the characteristics of the communication channel. Channel soft metrics are derived from the output of the communication channel, regardless of any decoding steps that the bits may have gone through. Channel soft metrics depend on the channel, but not on the code, and they do not carry any information obtained from the decoding of other bits.

[0025] - Intermediate soft metrics. The intermediate soft metric of a bit is indicative of the current belief (e.g., likelihood or reliability measure) of whether the transmitted value of the was "0" or "1", based on the (one or more) previous decoding steps that the bit has gone through. - Combined soft metrics. The combined soft metric of a bit is a combination (e.g., a weighted sum) of the channel soft metric and the intermediate soft metric of the bit. The combined soft metrics are typically used as the input to a given decoding step. The embodiments described herein refer mainly to channel LLRs, intermediate LLRs and combined LLRs, as non-limiting examples of channel soft metrics, intermediate soft metrics and combined soft metrics, respectively. The disclosed techniques, however, can be used with any other suitable type of soft metrics. The description below refers mainly to LLRs, for clarity.

[0026] In the disclosed embodiments, an iterative decoder decodes a codeword of an ECC in a sequence of decoding steps. In each decoding step, the decoder attempts to decode a respective subset of bits of the codeword. In some embodiments, the ECC is a composite code that comprises a plurality of smaller constituent codes having overlapping bits. Common examples of composite codes are Turbo codes and product codes. In these embodiments, each decoding step attempts to decode a certain constituent code. In other embodiments, the ECC is not a composite code, but the decoder operates iteratively, applying each decoding step to a small subset of the codeword bits. One common example is an iterative decoder of a Low Density Parity Check (LDPC) code.

[0027] Two main families of solutions are provided herein. The first family focuses on the joint compression of intermediate LLRs of bits that belong to the same subset of bits decoded in a given decoding step. Such intermediate LLRs, although not belonging to the same symbol, do have a certain amount of commonality or correlation, and therefore lend themselves to efficient joint compression.

[0028] The second family of solutions targets the joint compression of channel LLRs and the corresponding combined LLRs. In this approach, the system compresses difference values that represent the delta between updated combined soft metrics and their corresponding channel soft metrics. This differential compression approach is effective because the differences often exhibit favorable statistical properties for compression.

[0029] Both compression schemes described herein significantly reduce memory requirements while maintaining the essential reliability information needed for effective soft decoding. The reduced memory requirements in turn reduce the cost, size and power consumption of the iterative decoder.

[0030] JOINT COMPRESSION OF INTERMEDIATE SOFT METRICS Channel LLRs of bits belonging to different modulation symbols are generally unrelated. Later in the decoding process, however, intermediate LLRs of bits that undergo decoding together, gradually develop some correlation. Therefore, in some embodiments, an iterative ECC decoder may jointly compress intermediate LLRs that belong to the same subset of bits being decoded in the same decoding step. The term "subset of bits" (or simply "subset") in this context may refer to a constituent code, or to any other suitable group of bits to which a given decoding step is applied en-bloc.

[0031] Consider, for example, a decoding step applied to a certain constituent code of a composite ECC. The outcome of the decoding step may be one of the following, for example:

[0032] - The constituent code decoding algorithm found no valid constituent codewords. In some decoders this will cause the decoder to set the intermediate LLRs of all the bits in the constituent code to zero.

[0033] - The constituent code decoding algorithm found a single valid constituent codeword.

[0034] In some decoders this will cause the decoder to set the intermediate LLRs of all the bits in the constituent code to the same (typically high) value.

[0035] - The constituent code decoding algorithm found multiple valid constituent codewords, but for many of the bits all of these codewords have the same bit value. In some decoders this would cause the decoder to assign the same (typically high) value to all the intermediate LLRs of these bits.

[0036] As seen, in all the above scenarios there is considerable commonality among intermediate LLRs of bits that belong to the same subset of bits that undergo a decoding step together. It is therefore highly effective to compress such intermediate LLRs jointly. The joint compression significantly reduces the memory size needed for storing the intermediate LLRs.

[0037] Fig. l is a block diagram that schematically illustrates an iterative Error Correction Code (ECC) decoder 20 that uses joint compression of intermediate LLRs, in accordance with an embodiment of the present invention. Iterative ECC decoder 20 may be part of any suitable communication system, e.g., an optical fiber communication modem.

[0038] In the present example, iterative ECC decoder 20 comprises a channel LLR memory 24, a group LLR memory 28, a soft decoder 32, a compressor 36, a decompressor 40, and a combiner 44.

[0039] Initially, iterative ECC decoder 20 receives a set of modulated input symbols that were received over a communication channel. Iterative ECC decoder 20 calculates channel LLRs for the bits carried by the input symbols, and stores the channel LLRs in channel LLR memory 24.

[0040] To decode a selected subset of bits (e.g., a selected constituent code), the channel LLRs of the bits in the subset are provided to combiner 44. Combiner 44 combines the channel LLRs with intermediate LLRs (available in all but the first decoding step) to produce combined LLRs for decoding by soft decoder 32. In the first decoding step, the channel LLRs are used alone as the input to soft decoder 32.

[0041] Soft decoder 32 applies a decoding step to the subset of bits (e.g., attempts to decode the selected constituent code). During or after the decoding step, soft decoder 32 updates one or more of the intermediate LLRs of the subset based on the decoding results. The updated intermediate LLRs are processed by compressor 36, which converts at least some of the intermediate LLRs belonging to the subset into a joint compressed representation.

[0042] The joint compressed representation is stored in group LLR memory 28 for use in subsequent decoding steps. Thanks to the joint compression, the memory size (and therefore the physical size, cost and power consumption) of memory 28 is reduced considerably.

[0043] To perform the next decoding step, once the next subset of bits is selected, decompressor 40 reads the joint compressed representation of the intermediate LLRs of this subset from memory 28. Decompressor 40 decompresses the joint representation to produce decompressed intermediate LLRs. These intermediate LLRs are provided to combiner 44, in parallel with the corresponding channel LLRs read from memory 24. Combiner 44 receives both the channel LLRs from channel LLR memory 24 and the decompressed intermediate LLRs from decompressor 40, combining them to create the input of decoder 32 for the next decoding step.

[0044] The iterative decoding process described above is repeated iteratively until the entire codeword is decoded successfully, or until some stopping criterion is met.

[0045] In various embodiments, compressor 36 may use various techniques for jointly representing multiple intermediate LLRs. In an example embodiment, instead of allocating a fixed number of bits for representing each intermediate LLR in the subset, compressor 36 allocates a global number of bits to represent the intermediate LLRs jointly.

[0046] In some embodiments, compressor 36 extends this solution, so that the joint representation comprises groups of intermediate LLRs belonging to multiple different subsets (e.g., constituent codewords). The compressor selects the chunks such that the LLR redundancy within each chunk is roughly constant, enabling compression with fixed output size.

[0047] Fig. 2 is a flow chart that schematically illustrates a method for ECC decoding using joint compression of intermediate LLRs, in accordance with an embodiment of the present invention.

[0048] The method begins at a symbol input stage 50, where iterative ECC decoder 20 receives a set of input symbols that have been transmitted over a communication channel. The input symbols are modulated to carry the bits of a codeword of an ECC. At an initial channel LLR calculation stage 54, iterative ECC decoder 20 calculates channel LLRs from the received symbols and stores them in channel LLR memory 24. These channel LLRs represent the initial reliability information for each bit based on the channel characteristics. The subsequent stages (stages 58-74) describe a given decoding step in the iterative decoding process.

[0049] At a subset selection stage 58, iterative ECC decoder 20 selects a subset of bits for the next decoding step. This subset may correspond to a constituent code in composite ECC systems or any other grouping of bits that will be processed together in the decoding operation.

[0050] At a decompression stage 62, decompressor 40 reads the joint compressed representation of the intermediate LLRs of the bits of the selected subset from group LLR memory 28. Decompressor 40 decompresses the compressed representation to produce decompressed intermediate LLRs. In the first iteration, this stage is typically bypassed since no intermediate LLRs have been generated yet.

[0051] At a combining stage 66, combiner 44 combines the decompressed intermediate LLRs with the corresponding channel LLRs to create combined LLRs of the bits of the selected subset. These combined LLRs serve as input to soft decoder 32 in the present decoding step.

[0052] At a decoding stage 70, soft decoder 32 performs a decoding step on the selected subset of bits using the combined LLRs. During this stage, the soft decoder attempts to decode the subset and updates one or more of the intermediate LLRs based on the decoding results.

[0053] Finally, at compression stage 74, compressor 36 jointly compresses the updated intermediate LLRs and stores them in group LLR memory 28. The joint compression takes advantage of correlations and redundancies among intermediate LLRs that belong to the same subset of bits, significantly reducing memory requirements compared to storing each LLR independently.

[0054] JOINT COMPRESSION OF CHANNEL SOFT METRICS AND COMBINED SOFT METRICS

[0055] As noted above, in some embodiments the input to a given decoding step is a set of combined LLRs, each combined LLR comprising a combination of a channel LLR and an intermediate LLR of a respective bit. In a typical implementation, the combined LLR is a weighted sum of the channel LLR and the intermediate LLR:

[0056] CombinedLLR = ChannelLLR + a ■ IntermediateLLR wherein a denotes a combining coefficient. In some embodiments of the present invention, the iterative ECC decoder jointly compresses the channel LLR and the combined LLR of a given bit. ChannelLLR and CombinedLLR of a given bit have similarity because ChannelLLR appears in the right-hand side of the sum defining CombinedLLR, and the second argument in the sum (a ■ Intermediate LLR) is often relatively small.

[0057] Fig. 3 is a block diagram that schematically illustrates an iterative ECC decoder 80 that uses joint compression of channel LLRs and combined LLRs, in accordance with an embodiment of the present invention. Iterative ECC decoder 80 may be part of any suitable communication system, e.g., an optical fiber communication modem.

[0058] In the present example, iterative ECC decoder 80 comprises a combined LLR memory 84, a soft decoder 88, a combiner 92, a delta compressor 96, a channel approximator 100, and a delta memory 104.

[0059] Combined LLR memory 84 stores combined LLRs from previous decoding steps. Once a subset of bits (e.g., a constituent code) is selected for the next decoding step, the combined LLRs of the bits in the subset are provided to soft decoder 88 for decoding. During or after the decoding step, soft decoder 88 updates one or more of the intermediate LLRs of the bits in the subset based on the decoding results. Soft decoder 88 provides the intermediate LLRs to combiner 92.

[0060] Combiner 92 combines each intermediate LLR with an approximate channel LLR provided by channel LLR approximator 100 (whose functionality is explained further below), to produce an updated combined LLR.

[0061] The updated combined LLRs from combiner 92 are stored back in combined LLR memory 84, in place of their previous values. In addition, the updated combined LLRs are provided to delta compressor 96.

[0062] Delta compressor 96 calculates the difference between each combined LLR and the corresponding approximated channel LLR, and compresses the difference. In an example embodiment, delta compressor 96 compresses the differences by quantizing them, e.g., taking the b Most Significant Bits (MSBs) of the differences. The compressed differences are denoted DELTA in the figure. In the present context, the compressed differences DELTA are considered a non-limiting example of a compressed joint representation of a combined soft metric and a corresponding channel soft metric of a given bit.

[0063] The DELTA values are stored in delta memory 104, and provided as input to channel LLR approximator 100. The task of estimator 100 is to calculate an approximation of the channel LLR of each bit in the subset undergoing the present decoding step, from (i) the combined LLR of the bit that is currently saved in combined LLR memory 84, and (ii) the DELTA value calculated for the bit. The channel LLR approximations are provided to combiner 92 and to delta compressor 96, as explained above.

[0064] The approximation of the channel LLRs eliminates the need to store the original channel LLRs for the entire duration of the iterative decoding process. Instead of storing the channel LLRs, iterative ECC decoder 80 stores the corresponding DELTA values (in memory 104) and the corresponding combined LLRs (in memory 84), enabling approximator 100 to approximate any channel LLR as needed. Since the memory size needed for storing the DELTA values is considerably smaller than the memory size needed for storing the channel LLRs, the solution of Fig. 3 provides considerable memory saving.

[0065] The joint representation of a channel LLR and a corresponding combined LLR is equivalent, up to simple arithmetic, to the joint representation of a channel LLR and the corresponding intermediate LLR. The advantage of the former representation is that it allows embedding the combined LLRs into the same space of the channel LLRs, which enjoys a natural structure governed by the modulation. For example, in four-level Pulse- Amplitude Modulation (PAM4) or 16-symbol Quadrature- Amplitude Modulation (QAM 16) modulation, channel LLRs of two bits can be represented by a single number on the real axis. In this joint representation, the combined LLRs of these two bits can similarly be represented as a single real number. This suggests the joint compression flow described below.

[0066] Fig. 4 is a flow chart that schematically illustrates a method for joint compression of channel LLRs and combined LLRs, in accordance with an embodiment of the present invention. The method may be carried out, for example, by delta compressor 96 of Fig. 3. The DELTA calculation described above is a non-limiting special case of this method.

[0067] The method begins at a channel LLR mapping stage 110, where compressor 96 maps channel LLRs of multiple bits to a first point in a defined space. This mapping operation establishes a spatial representation of the channel reliability information for the selected subset of bits. At a combined LLR mapping stage 114, compressor 96 maps the combined LLRs of the same bits to a second point in the same defined space.

[0068] At a delta calculation stage 118, compressor 96 calculates the difference between the first point (representing channel LLRs) and the second point (representing combined LLRs) in the defined space.

[0069] At a delta compression stage 122, delta compressor 96 quantizes the calculated difference to b bits, creating a compressed joint representation of the channel and combined LLRs. Finally, at a storage stage 126, compressor 96 stores the combined LLRs and the quantized difference in combined LLR memory 84. Alternatively, the system may store the channel LLRs and the quantized difference.

[0070] ***

[0071] The configurations of iterative decoders 20 and 80 shown in Figs. 1 and 3 are example configurations that are chosen purely for the sake of conceptual clarity. Any other suitable configurations can be used in alternative embodiments. In various embodiments, iterative decoders 20 and 80 may be implemented using suitable software, using suitable hardware such as one or more Application-Specific Integrated Circuits (ASICs) or Field-Programmable Gate Arrays (FPGAs), or using a combination of hardware and software elements.

[0072] In some embodiments, certain functions of iterative decoders 20 and 80 may be implemented using one more general-purpose processors, which are programmed in software to carry out the techniques described herein. The software may be downloaded to the processors in electronic form, over a network, for example, or it may, alternatively or additionally, be provided and / or stored on non-transitory tangible media, such as magnetic, optical, or electronic memory.

[0073] Although the embodiments described herein mainly address decoding of ECC, the methods and systems described herein can also be used in other applications performing inference tasks using statistical measures of information reliability.

[0074] It will thus be appreciated that the embodiments described above are cited by way of example, and that the present invention is not limited to what has been particularly shown and described hereinabove. Rather, the scope of the present invention includes both combinations and sub-combinations of the various features described hereinabove, as well as variations and modifications thereof which would occur to persons skilled in the art upon reading the foregoing description and which are not disclosed in the prior art. Documents incorporated by reference in the present patent application are to be considered an integral part of the application except that to the extent any terms are defined in these incorporated documents in a manner that conflicts with the definitions made explicitly or implicitly in the present specification, only the definitions in the present specification should be considered.

Claims

CLAIMS1. An apparatus, comprising:a decoder, configured to decode a codeword of an Error Correction Code (ECC) in a sequence of decoding steps, wherein in a given decoding step, the decoder is configured to attempt decoding a respective subset of bits of the codeword by:receiving a combination of (i) channel soft metrics and (ii) intermediate soft metrics that have gone through one or more previous decoding steps, for the bits in the subset;attempting to decode the subset of the bits by processing the channel soft metrics and the intermediate soft metrics; andupdating one or more of the intermediate soft metrics;a compressor, configured to convert at least some of the intermediate LLRs belonging to a subset into a joint compressed representation;a memory, configured to store the joint compressed representation; anda decompressor, configured to read the joint compressed representation from the memory, to decompress the joint compressed representation so as to produce decompressed intermediate soft metrics, and to provide the decompressed intermediate soft metrics to the decoder for use in one or more subsequent decoding steps.

2. The apparatus according to claim 1, wherein the channel soft metrics and the intermediate soft metrics comprise Log Likelihood Ratios (LLRs).

3. The apparatus according to claim 1, wherein the ECC is a composite ECC comprising multiple constituent codes, and wherein each subset of bits comprises a respective constituent code of the composite code.

4. The apparatus according to any of claims 1-3, wherein the compressor is configured to allocate a total number of bits for the entire joint compressed representation of the intermediate soft metrics.

5. The apparatus according to any of claims 1-3, wherein the compressor is configured to include in the joint compressed representation one or more additional intermediate soft metrics belonging to at least one additional codeword.

6. An apparatus, comprising:a decoder, configured to decode a codeword of an Error Correction Code (ECC) in a sequence of decoding steps, wherein in a given decoding step, the decoder is configured to attempt decoding a respective subset of bits of the codeword by:receiving combined soft metrics for the bits in the subset, each combined soft metric corresponding to a respective bit in the subset and comprising a combination of (i) a channel soft metric of the bit and (ii) an intermediate soft metric of the bit that has gone through one or more previous decoding steps;attempting to decode the subset of the bits by processing the combined soft metrics; andupdating one or more of the intermediate soft metrics; anda compressor, configured to jointly compress one or more difference values, each difference value representing a difference between (i) an updated combined soft metric produced by the decoder, and (ii) a corresponding channel soft metric, for use in one or more subsequent decoding steps.

7. The apparatus according to claim 6, further comprising a channel soft metric approximator, configured to approximate one or more of the channel soft metrics based on (i) one or more corresponding difference values produced by the compressor and (ii) one or more corresponding combined soft metrics, and to provide the approximated channel soft metrics to the compressor for compression, in preparation for subsequent decoding steps.

8. The apparatus according to claim 6 or 7, wherein the channel soft metrics and the combined soft metrics comprise Log Likelihood Ratios (LLRs).

9. The apparatus according to claim 6 or 7, wherein the ECC is a composite ECC comprising multiple constituent codes, and wherein each subset of bits comprises a respective constituent code of the composite code.

10. A method, comprising:using a decoder, decoding a codeword of an Error Correction Code (ECC) in a sequence of decoding steps, wherein in a given decoding step, the decoder attempts to decode a respective subset of bits of the codeword by:receiving a combination of (i) channel soft metrics and (ii) intermediate soft metrics that have gone through one or more previous decoding steps, for the bits in the subset;attempting to decode the subset of the bits by processing the channel soft metrics and the intermediate soft metrics; andupdating one or more of the intermediate soft metrics;converting at least some of the intermediate LLRs belonging to a subset into a joint compressed representation;storing the joint compressed representation in a memory; andreading the joint compressed representation from the memory, decompressing the joint compressed representation so as to produce decompressed intermediate soft metrics, and providing the decompressed intermediate soft metrics to the decoder for use in one or more subsequent decoding steps.

11. The method according to claim 10, wherein the channel soft metrics and the intermediate soft metrics comprise Log Likelihood Ratios (LLRs).

12. The method according to claim 10, wherein the ECC is a composite ECC comprising multiple constituent codes, and wherein each subset of bits comprises a respective constituent code of the composite code.

13. The method according to any of claims 10-12, wherein converting the intermediate LLRs comprises allocating a total number of bits for the entire joint compressed representation of the intermediate soft metrics.

14. The method according to any of claims 10-12, wherein converting the intermediate LLRs comprises including in the joint compressed representation one or more additional intermediate soft metrics belonging to at least one additional codeword.

15. A method, comprising:using a decoder, decoding a codeword of an Error Correction Code (ECC) in a sequence of decoding steps, wherein in a given decoding step, the decoder attempts to decode a respective subset of bits of the codeword by:receiving combined soft metrics for the bits in the subset, each combined soft metric corresponding to a respective bit in the subset and comprising a combination of (i) a channel soft metric of the bit and (ii) an intermediate soft metric of the bit that has gone through one or more previous decoding steps;attempting to decode the subset of the bits by processing the combined soft metrics; andupdating one or more of the intermediate soft metrics; andjointly compressing one or more difference values, each difference value representing a difference between (i) an updated combined soft metric produced by the decoder, and (ii) a corresponding channel soft metric, for use in one or more subsequent decoding steps.

16. The method according to claim 15, further comprising approximating one or more of the channel soft metrics based on (i) one or more corresponding difference values produced by the compressor and (ii) one or more corresponding combined soft metrics, and providing the approximated channel soft metrics for compression, in preparation for subsequent decoding steps.

17. The method according to claim 15 or 16, wherein the channel soft metrics and the combined soft metrics comprise Log Likelihood Ratios (LLRs).

18. The method according to claim 15 or 16, wherein the ECC is a composite ECC comprising multiple constituent codes, and wherein each subset of bits comprises a respective constituent code of the composite code.