Examples relate to apparatuses, devices, methods, and computer programs for generating and employing LDPC (low-density parity-check code) matrices, and to communication devices, memory devices or storage devices comprising such apparatuses or devices.
LDPC codes are a widely used error correction mechanism in non-volatile memories and many other modem communication systems such as 5G (mobile communication in 5th generation cellular mobile communication systems), PON (Passive Optical Network), etc. Erasure decoding followed by error recovery is typically done in the decoding of Low-Density Parity-Check codes in different scenarios—When punctured bits are involved, and/or when a portion of the codeword is erased (e.g., due to partition or die fails). For hard decision decoding, it is straightforward to design LDPC codes with good performance. Designing good LDPC codes for soft reads is challenging when punctured or erased bits are involved. More particularly, when soft information is available, obtaining good performance is challenging when erased or punctured bits are present. In some approaches, the number of punctured bits or erased bits is limited, the performance available in the soft reads is not fully exploited. Accordingly, the full capacity of the punctured bits in the soft reads or the use of soft information in the erasure mode may not be achieved. As a result, the achievable performance may be limited.
Some examples of apparatuses and/or methods will be described in the following by way of example only, and with reference to the accompanying figures, in which
Some examples are now described in more detail with reference to the enclosed figures. However, other possible examples are not limited to the features of these examples described in detail. Other examples may include modifications of the features as well as equivalents and alternatives to the features. Furthermore, the terminology used herein to describe certain examples should not be restrictive of further possible examples.
Throughout the description of the figures same or similar reference numerals refer to same or similar elements and/or features, which may be identical or implemented in a modified form while providing the same or a similar function. The thickness of lines, layers and/or areas in the figures may also be exaggerated for clarification.
When two elements A and B are combined using an ‘or’, this is to be understood as disclosing all possible combinations, i.e. only A, only B as well as A and B, unless expressly defined otherwise in the individual case. As an alternative wording for the same combinations, “at least one of A and B” or “A and/or B” may be used. This applies equivalently to combinations of more than two elements.
If a singular form, such as “a”, “an” and “the” is used and the use of only a single element is not defined as mandatory either explicitly or implicitly, further examples may also use several elements to implement the same function. If a function is described below as implemented using multiple elements, further examples may implement the same function using a single element or a single processing entity. It is further understood that the terms “include”, “including”, “comprise” and/or “comprising”, when used, describe the presence of the specified features, integers, steps, operations, processes, elements, components and/or a group thereof, but do not exclude the presence or addition of one or more other features, integers, steps, operations, processes, elements, components and/or a group thereof.
Various examples of the present disclosure relate to the connectivity in LDPC codes for erasure decoding with the goal of having a good soft-read performance.
For many communication systems, soft reads are the primary mechanism to achieve the desired Uncorrectable Bit-Error Rate (UBER). As such, error-control codes with good soft read performance are crucial for the viability of these products. Also, some memory products need die-fail support, which means the bits in the failed die need to be recovered through erasure decoding. The techniques described in the present disclosure may facilitate error-correction schemes with superior correctability in both soft reads and die-fail cases, which will ultimately help deliver cheaper and better products to the customers.
Some LDPC decoders support a so-called erasure decoding mode, in which punctured or erased bits are supported. In general, an erased bit may be seen as a bit that is identified as not being properly received, e.g. due to interference on the channel, or due to the defect of a hardware component. For example, a decoder that supports erasure decoding can be used to provide protection from die fails. A punctured bit may be seen as a bit that is purposefully omitted, e.g. in order to decrease the number the bits required for transmitting the codeword.
Puncturing is e.g. used in wireless communication systems having varying channel conditions. With good channel conditions, shorter codewords having fewer bits can be transmitted, with worse channel conditions, longer codewords having more bits can be transmitted.
The same LDPC matrix can be used for both codeword lengths by “puncturing” out the superfluous bits, which are then reconstructed in the course of the LDPC iterative decoding.
The following description relates to the apparatus/device 10 of
Various examples of the present disclosure relate to the generation of an LDPC matrix.
LDPC are codes that are being used to provide both error detection and error correction for codewords comprising LDPC parity information. Such codewords are, for example, used in communication systems for transmitting information over a lossy channel, or in memory or storage applications, where transmission and/or memory/storage errors can be recovered using such codes. In general, an LDPC decoder takes a codeword as an input, and uses a so-called parity-check matrix (also called H matrix) to calculate a syndrome of the codeword (using a matrix multiplication). The afore-mentioned LDPC matrix is such a parity-check matrix or H matrix. The LDPC matrix comprises a plurality of columns corresponding to a plurality of code bits of the codeword, and one or more columns corresponding to one or more punctured (or erased) bits of the codeword. The component “low-density” in LDPC refers to the sparseness of the H matrix, in which only few non-zero elements (e.g. logical ones, or other non-binary values when a non-binary LDPC code is used) are interspersed among zeros. Accordingly, while the following description relates to “1s” and “0s”, the same concept may be applied to “non-zero values” and “zero values”. The syndrome indicates whether the codeword is correct—if the syndrome is 0 (i.e. all bits of the logical syndrome are logical 0) the codeword is correct. If not, or rather as long as this is not the case (and a maximal number of iterations has not been reached), an iterative process involving message passing is used to correct the code word, by passing “messages” between the variable bit nodes (of the codeword) and the so-called check nodes (of the syndrome) according to a decoder algorithm.
The processing circuitry 14 is configured to generate the LDPC matrix using the generator algorithm. In general, the generator algorithm may comprise a set of instructions for programmatically generating the LDPC matrix. A naïve approach to generating an LDPC would be to randomly generate matrices, and to test them out on various codewords, with various inserted bit errors. In various examples, however, the generator algorithm is generated based on a set of constraints. For example, this set of constraints may be focused on improving a so-called soft-read performance of a decoder using such a matrix, while taking into account the presence of punctured or erased bits. As mentioned before, an erased bit may be seen as a bit that is identified as not being properly received, and a punctured bit may be seen as a bit that is purposefully omitted. During decoding, these bits may be initially marked as “unknown” during the iterative LDPC decoding process. Usually, these bits can be recovered in the first few iterations of the LDPC decoding process. Accordingly, the LDPC matrix is generated for codewords with one or more punctured or erased bits, e.g. for codewords that may or may not contain a punctured bit or an erased bit.
Decoder algorithms for LDPC decoding can be assigned to either of two groups of decoder algorithms—hard-decision decoding algorithms, and soft-decision decoding algorithms. In hard-decision decoding algorithms, a fixed set of values is supported as input values, usually binary 0 and 1. In soft-decision decoding algorithms, however, a whole range of values is supported, often in the range between 0 and 1. Examples for such soft-decision decoding algorithms are belief-propagation-based algorithms or min-sum-based algorithms. For example, the distance of the values from the integer values may indicate the reliability of the respective values. The respective decoding algorithms use this additional information to provide an improved decoding efficiency. In various examples of the present disclosure, the LDPC matrix is generated for use with a soft-decision decoding algorithm. The LDPC matrix may be an LDPC matrix for use with an LDPC soft-decision decoding algorithm.
As mentioned before, the LDPC matrix is generated observing one or more constraints, e.g. one or more constraints that are focused in improving soft-decision decoding performance.
These constraints may be differentiated from parameters, such as codeword size, number of check nodes, and number or location of punctured bits.
For example, the one or more constraints may comprise, that for a given check node, the bits that were erased or punctured are recoverable in the first two iterations of a corresponding LDPC iterative decoding algorithm. In general, the bits that were erased or punctured are recoverable in the first two iteration by including, for each column corresponding to a punctured (or erased) bit, a row comprising a 1 (or non-binary/non-zero value) in the column and a 0 in the other columns corresponding to a punctured (or erased) bit. In other words, the LDPC may be generated to include for each column corresponding to a punctured or erased bit, a row comprising a 1 in the column and a 0 in the other columns corresponding to a punctured (or erased) bit. Consequently, with n punctured (or erased) bits, the LDPC may comprise at least n rows having exactly one 1/non-binary/non-zero value in the columns corresponding to punctured (or erased) bits.
Another constraint also refers to the number of is/non-binary/non-zero values in the columns corresponding to punctured (or erased) bits. For example, the one or more constraints may comprise, that, in a row for a given check node, at most two is/non-binary/non-zero values are present in columns corresponding to punctured (or erased) bits (for example 0, 1 or 2 is/non-binary/non-zero values). In other words, the LDPC matrix may comprise, in each row, at most two is/non-binary/non-zero values in columns corresponding to punctured (or erased) bits.
Additionally, the column weight may be constrained. In general, the “weight” of a column of the matrix may refer to the number of is/non-binary/non-zero values that are present in the column. The one or more constraints may comprise, that each column corresponding to a punctured (or erased) bit has a column weight of at least 5 (or at least 7) and at most 40 (or at most 35).
For example, the LDPC matrix may conform to one, two, or all of the above constraints.
The input circuitry or input means 12 may correspond to one or more inputs for receiving information, which may be in digital (bit) values according to a specified code, within a module, between modules or between modules of different entities. For example, the input circuitry or input means 12 may comprise interface circuitry configured to receive information.
In examples the processing circuitry or processing means 14 may be implemented using one or more processing units, one or more processing devices, any means for processing, such as a processor, a computer or a programmable hardware component being operable with accordingly adapted software. In other words, the described function of the processing circuitry or processing means 14 may as well be implemented in software, which is then executed on one or more programmable hardware components. Such hardware components may comprise a general-purpose processor, a Digital Signal Processor (DSP), a micro-controller, etc.
The output circuitry or output means 16 may correspond to one or more outputs for transmitting information, which may be in digital (bit) values according to a specified code, within a module, between modules or between modules of different entities. For example, the output circuitry or output means 16 may comprise interface circuitry configured to transmit information.
More details and aspects of the apparatus, device or method are mentioned in connection with the proposed concept or one or more examples described above or below (e.g.
The processing circuitry/means 24 is configured to perform LDPC iterative decoding on the LDPC codeword using a soft-decision decoding algorithm. The LDPC iterative decoding is based on the LDPC matrix. The LDPC matrix is generated for codewords with one or more punctured or erased bits, e.g. using the concept shown in connection with
The LDPC matrix adheres to one or more of the following constraints: a) for each column corresponding to a punctured (or erased) bit, the LDPC matrix comprises a row comprising a 1 in the column and a 0 in the other columns corresponding to a punctured (or erased) bit, b) in a row for a given check node, at most two is (or non-binary/non-zero values) are present in columns corresponding to punctured (or erased) bits, and c) each column corresponding to a punctured (or erased) bit has a column weight of at least 7 and at most 35. For example, the LDPC matrix may conform to one, two, or all of the above constraints.
The following description relate to the decoder apparatus/device and the corresponding decoder method.
While
The LDPC is based on the LDPC matrix, which in turn adheres to one or more of the mentioned constraints. More details with respect to the LDPC matrix can be found in connection with the generation apparatus/device/method of
The input circuitry or input means 22 may correspond to one or more inputs for receiving information, which may be in digital (bit) values according to a specified code, within a module, between modules or between modules of different entities. For example, the input circuitry or input means 22 may comprise interface circuitry configured to receive information.
In examples the processing circuitry or processing means 24 may be implemented using one or more processing units, one or more processing devices, any means for processing, such as a processor, a computer or a programmable hardware component being operable with accordingly adapted software. In other words, the described function of the processing circuitry or processing means 24 may as well be implemented in software, which is then executed on one or more programmable hardware components. Such hardware components may comprise a general-purpose processor, a Digital Signal Processor (DSP), a micro-controller, etc.
The output circuitry or output means 26 may correspond to one or more outputs for transmitting information, which may be in digital (bit) values according to a specified code, within a module, between modules or between modules of different entities. For example, the output circuitry or output means 26 may comprise interface circuitry configured to transmit information.
More details and aspects of the communication device are introduced in connection with the proposed concept or one or more examples described above or below (e.g.
In some examples, the memory device may be a memory device for implementing two-level memory (2LM). In some examples, where the memory device is configured as a 2LM system, the memory device 300 may serve as main memory for a computing device. For these examples, memory circuitry 310 may include the two levels of memory including cached subsets of system disk level storage. In this configuration, the main memory may include “near memory” arranged to include volatile types on memory and “far memory” arranged to include volatile or non-volatile types of memory. The far memory may include volatile or non-volatile memory that may be larger and possibly slower than the volatile memory included in the near memory. The far memory may be presented as “main memory” to an operating system (OS) for the computing device while the near memory is a cache for the far memory that is transparent to the OS. The management of the 2LM system may be done by a combination of logic and modules executed via processing circuitry (e.g., a CPU) of the computing device. Near memory may be coupled to the processing circuitry via high bandwidth, low latency means for efficient processing. Far memory may be coupled to the processing circuitry via low bandwidth, high latency means.
In some examples, the memory circuitry 310 may include non-volatile and/or volatile types of memory. Non-volatile types of memory may include, but are not limited to, 3-dimensional cross-point memory, flash memory, ferroelectric memory, silicon-oxide-nitride-oxide-silicon (SONOS) memory, polymer memory such as ferroelectric polymer memory, nanowire, ferroelectric transistor random access memory (FeTRAM or FeRAM), ovonic memory, nanowire or electrically erasable programmable read-only memory (EEPROM). Volatile types of memory may include, but are not limited to, dynamic random-access memory (DRAM) or static RAM (SRAM).
More details and aspects of the memory device are introduced in connection with the proposed concept or one or more examples described above or below (e.g.
More details and aspects of the storage device are introduced in connection with the proposed concept or one or more examples described above or below (e.g.
Error control codes (ECC) are an integral part of communication systems. Today, most of the ECC schemes are based on low-density parity-check (LDPC) codes. In several of these configurations, the LDPC decoder needs to recover from both errors and erasures. While errors are typically introduced when reading from the media, erasures arise for different reasons in different products. For example, in three-dimensional cross-point memory products, when there is a die fail, the decoder may erase that portion of the codeword stored in the failed die and attempts a decoding. Also, in several communication systems, a single LDPC code is designed to support multiple data and parity sizes. In such a case, a jumbo code is designed with largest data and parity sizes (among all the supported configurations) and the resulting codeword is appropriately punctured and shortened to support the configuration. In addition, constructing codes with appropriately designed punctured bits provides much superior decoding performance (See
Now, for the same code, the soft-decision decoding performance is considered, which is shown in
As can be seen in
Various examples of the present disclosure may provide a method for designing the LDPC code so that the erased or punctured bits do not degrade, but instead improve the performance of the soft read channel. To see the benefits of the proposed scheme (Construction-2), its performance is compared with Construction-1 (the construction used in
Other approaches for soft reads limit the usage of punctured bits, but this limits the gain achievable for both hard and soft reads. With the proposed concept, by carefully designing punctured bits, the gains in both hard and soft reads can be leveraged.
The primary difference between the Construction-1 and Construction-2 in
In order to obtain good soft-read performance for LDPC codes, various examples of the present disclosure are based on the finding that the connection profile among the punctured (or erased) bits may satisfy one or more of the following criteria:
Based on these observations, below, some examples of configurations are provided that illustrate the connectivity profile in punctured bits for good soft read performance.
Various examples of the present disclosure provide a systematic methodology to construct LDPC codes with punctured or erased bits that show improved performance with soft reads. With this technique, a design of LDPC codes with much better correction strength in the soft reads is facilitated. This may result in significant savings in terms of the reliability of the system.
A coding architecture that supports punctured bits uses an erasure decoding mode. When decoding an error-free codeword, without erasure decoding, a decoder may quickly (within a few clocks) declare a decode success without much activity. Otherwise, with erasure decoding being used, even for error-free codewords, the decoder performs a few iterations.
More details and aspects of the proposed concept are mentioned in connection with the proposed concept or one or more examples described above or below (e.g.
The aspects and features described in relation to a particular one of the previous examples may also be combined with one or more of the further examples to replace an identical or similar feature of that further example or to additionally introduce the features into the further example.
Example 1 relates to an apparatus (10) for generating a low-density parity-check code, LDPC, matrix, the apparatus comprising processing circuitry (14) configured to generate the LDPC matrix using a generator algorithm, wherein the LDPC matrix is generated for codewords with one or more punctured or erased bits, wherein the LDPC matrix is generated observing one or more constraints.
In Example 2, the subject matter of example 1 or any of the Examples described herein may further include, that the one or more constraints comprise, that for a given check node, the bits that were erased or punctured are recoverable in the first two iterations of a corresponding LDPC iterative decoding algorithm.
In Example 3, the subject matter of example 2 or any of the Examples described herein may further include, that the bits that were erased or punctured are recoverable in the first two iteration by including, for each column corresponding to a punctured or erased bit, a row comprising a 1 in the column and a 0 in the other columns corresponding to a punctured or erased bit.
In Example 4, the subject matter of one of the examples 1 to 3 or any of the Examples described herein may further include, that the one or more constraints comprise, that, in a row for a given check node, at most two 1s are present in columns corresponding to punctured or erased bits.
In Example 5, the subject matter of one of the examples 1 to 4 or any of the Examples described herein may further include, that the one or more constraints comprise, that each column corresponding to a punctured or erased bit has a column weight of at least 7 and at most 35.
In Example 6, the subject matter of one of the examples 1 to 5 or any of the Examples described herein may further include, that the LDPC matrix is an LDPC matrix for use with an LDPC soft-decision decoding algorithm.
In Example 7, the subject matter of one of the examples 1 to 6 or any of the Examples described herein may further include, that the LDPC matrix comprises a plurality of columns corresponding to a plurality of code bits of the codeword, and one or more columns corresponding to one or more punctured or erased bits of the codeword.
Example 8 relates to a decoding apparatus (20) for decoding a low-density parity-check code, LDPC, codeword, the apparatus comprising processing circuitry (24) configured to perform LDPC iterative decoding on the LDPC codeword using a soft-decision decoding algorithm, the LDPC iterative decoding being based on an LDPC matrix, wherein the LDPC matrix is generated for codewords with one or more punctured or erased bits, the codeword comprising one or more punctured or erased bits, wherein the LDPC matrix adheres to one or more of the following constraints: a) for each column corresponding to a punctured or erased bit, the LDPC matrix comprises a row comprising a 1 in the column and a 0 in the other columns corresponding to a punctured or erased bit, b) in a row for a given check node, at most two is are present in columns corresponding to punctured or erased bits, and c) each column corresponding to a punctured or erased bit has a column weight of at least 7 and at most 35.
In Example 9, the subject matter of example 8 or any of the Examples described herein may further include, that the soft-decision decoding algorithm is a message-passing algorithm.
In Example 10, the subject matter of one of the examples 8 to 9 or any of the Examples described herein may further include, that the soft-decision decoding algorithm is a belief-propagation-based algorithm or a min-sum-based algorithm.
Example 11 relates to a communication device (200) comprising receiver circuitry (210) and the decoding apparatus (20) according to one of the examples 8 to 10, wherein the decoding apparatus is configured to decode codewords received via the receiver circuitry.
In Example 12, the subject matter of example 11 or any of the Examples described herein may further include, that the communication device is a communication device for communicating via a passive optical network.
Example 13 relates to a memory device (300) comprising memory circuitry (310) and the decoding apparatus (20) according to one of the examples 8 to 10, wherein the decoding apparatus is configured to decode codewords obtained from the memory circuitry.
Example 14 relates to a storage device (400) comprising storage circuitry (410) and the decoding apparatus (20) according to one of the examples 8 to 10, wherein the decoding apparatus is configured to decode codewords obtained from the storage circuitry.
Example 15 relates to a device (10) for generating a low-density parity-check code, LDPC, matrix, the device comprising processing means (14) configured to generate the LDPC matrix using a generator algorithm, wherein the LDPC matrix is generated for codewords with one or more punctured or erased bits, wherein the LDPC matrix is generated observing one or more constraints.
In Example 16, the subject matter of example 15 or any of the Examples described herein may further include, that the one or more constraints comprise, that for a given check node, the bits that were erased or punctured are recoverable in the first two iterations of a corresponding LDPC iterative decoding algorithm.
In Example 17, the subject matter of one of the examples 15 to 16 or any of the Examples described herein may further include, that the bits that were erased or punctured are recoverable in the first two iteration by including, for each column corresponding to a punctured or erased bit, a row comprising a 1 in the column and a 0 in the other columns corresponding to a punctured or erased bit.
In Example 18, the subject matter of one of the examples 15 to 17 or any of the Examples described herein may further include, that the one or more constraints comprise, that, in a row for a given check node, at most two is are present in columns corresponding to punctured or erased bits.
In Example 19, the subject matter of one of the examples 15 to 18 or any of the Examples described herein may further include, that the one or more constraints comprise, that each column corresponding to a punctured or erased bit has a column weight of at least 7 and at most 35.
In Example 20, the subject matter of one of the examples 15 to 19 or any of the Examples described herein may further include, that the LDPC matrix is an LDPC matrix for use with an LDPC soft-decision decoding algorithm.
In Example 21, the subject matter of one of the examples 15 to 20 or any of the Examples described herein may further include, that the LDPC matrix comprises a plurality of columns corresponding to a plurality of code bits of the codeword, and one or more columns corresponding to one or more punctured or erased bits of the codeword.
Example 22 relates to a decoding device (20) for decoding a low-density parity-check code, LDPC, codeword, the device comprising processing means (24) configured to perform LDPC iterative decoding on the LDPC codeword using a soft-decision decoding algorithm, the LDPC iterative decoding being based on an LDPC matrix, wherein the LDPC matrix is generated for codewords with one or more punctured or erased bits, the codeword comprising one or more punctured or erased bits, wherein the LDPC matrix adheres to one or more of the following constraints: a) for each column corresponding to a punctured or erased bit, the LDPC matrix comprises a row comprising a 1 in the column and a 0 in the other columns corresponding to a punctured or erased bit, b) in a row for a given check node, at most two is are present in columns corresponding to punctured or erased bits, and c) each column corresponding to a punctured or erased bit has a column weight of at least 7 and at most 35.
In Example 23, the subject matter of example 22 or any of the Examples described herein may further include, that the soft-decision decoding algorithm is a message-passing algorithm.
In Example 24, the subject matter of one of the examples 22 to 23 or any of the Examples described herein may further include, that the soft-decision decoding algorithm is a belief-propagation-based algorithm or a min-sum-based algorithm.
Example 25 relates to a communication device (200) comprising receiver means (210) and the decoding device (20) according to one of the examples 22 to 24, wherein the decoding device is configured to decode codewords received via the receiver means.
In Example 26, the subject matter of example 25 or any of the Examples described herein may further include, that the communication device is a communication device for communicating via a passive optical network.
Example 27 relates to a memory device (300) comprising memory means (310) and the decoding device (20) according to one of the examples 22 to 26, wherein the decoding device is configured to decode codewords obtained from the memory means.
Example 28 relates to a storage device (400) comprising storage means (410) and the decoding device (20) according to one of the examples 22 to 27, wherein the decoding device is configured to decode codewords obtained from the storage means.
Example 29 relates to a method for generating a low-density parity-check code, LDPC, matrix, the method comprising generating (110) the LDPC matrix using a generator algorithm, wherein the LDPC matrix is generated for codewords with one or more punctured or erased bits, wherein the LDPC matrix is generated observing one or more constraints.
In Example 30, the subject matter of example 29 or any of the Examples described herein may further include, that the one or more constraints comprise, that for a given check node, the bits that were erased or punctured are recoverable in the first two iterations of a corresponding LDPC iterative decoding algorithm.
In Example 31, the subject matter of example 30 or any of the Examples described herein may further include, that the bits that were erased or punctured are recoverable in the first two iterations of a corresponding LDPC iterative decoding algorithm by including, for each column corresponding to a punctured or erased bit, a row comprising a 1 in the column and a 0 in the other columns corresponding to a punctured or erased bit.
In Example 32, the subject matter of one of the examples 29 to 31 or any of the Examples described herein may further include, that the one or more constraints comprise, that, in a row for a given check node, at most two is are present in columns corresponding to punctured or erased bits.
In Example 33, the subject matter of one of the examples 29 to 32 or any of the Examples described herein may further include, that the one or more constraints comprise, that each column corresponding to a punctured or erased bit has a column weight of at least 7 and at most 35.
In Example 34, the subject matter of one of the examples 29 to 33 or any of the Examples described herein may further include, that the LDPC matrix is an LDPC matrix for use with a soft-read LDPC iterative decoding algorithm.
In Example 35, the subject matter of one of the examples 29 to 34 or any of the Examples described herein may further include, that the LDPC matrix comprises a plurality of columns corresponding to a plurality of code bits of the codeword, and one or more columns corresponding to one or more punctured or erased bits of the codeword.
Example 36 relates to a decoding method for decoding a low-density parity-check code, LDPC, codeword, the method comprising performing (220) LDPC iterative decoding on the LDPC codeword using a soft-decision decoding algorithm, the LDPC iterative decoding being based on an LDPC matrix, wherein the LDPC matrix is generated for codewords with one or more punctured or erased bits, the codeword comprising one or more punctured or erased bits, wherein the LDPC matrix adheres to one or more of the following constraints: a) for each column corresponding to a punctured or erased bit, the LDPC matrix comprises a row comprising a 1 in the column and a 0 in the other columns corresponding to a punctured or erased bit, b) in a row for a given check node, at most two 1s are present in columns corresponding to punctured or erased bits, and c) each column corresponding to a punctured or erased bit has a column weight of at least 7 and at most 35.
In Example 37, the subject matter of example 36 or any of the Examples described herein may further include, that the soft-decision decoding algorithm is a message-passing algorithm.
In Example 38, the subject matter of one of the examples 29 to 37 or any of the Examples described herein may further include, that the soft-decision decoding algorithm is a belief-propagation-based algorithm or a min-sum-based algorithm.
Example 39 relates to a machine-readable storage medium including program code, when executed, to cause a machine to perform the method of one of the examples 29 to 35, or the method of one of the examples 36 to 38.
Example 40 relates to a computer program having a program code for performing the method of one of the examples 29 to 35, or the method of one of the examples 36 to 38, when the computer program is executed on a computer, a processor, or a programmable hardware component.
Example 41 relates to a machine-readable storage including machine readable instructions, when executed, to implement a method or realize an apparatus as claimed in any pending claim or shown in any example.
Examples may further be or relate to a (computer) program including a program code to execute one or more of the above methods when the program is executed on a computer, processor or other programmable hardware component. Thus, steps, operations, or processes of different ones of the methods described above may also be executed by programmed computers, processors, or other programmable hardware components. Examples may also cover program storage devices, such as digital data storage media, which are machine-, processor- or computer-readable and encode and/or contain machine-executable, processor-executable or computer-executable programs and instructions. Program storage devices may include or be digital storage devices, magnetic storage media such as magnetic disks and magnetic tapes, hard disk drives, or optically readable digital data storage media, for example. Other examples may also include computers, processors, control units, (field) programmable logic arrays ((F)PLAs), (field) programmable gate arrays ((F)PGAs), graphics processor units (GPU), application-specific integrated circuits (ASICs), integrated circuits (ICs) or system-on-a-chip (SoCs) systems programmed to execute the steps of the methods described above.
It is further understood that the disclosure of several steps, processes, operations or functions disclosed in the description or claims shall not be construed to imply that these operations are necessarily dependent on the order described, unless explicitly stated in the individual case or necessary for technical reasons. Therefore, the previous description does not limit the execution of several steps or functions to a certain order. Furthermore, in further examples, a single step, function, process, or operation may include and/or be broken up into several sub-steps, -functions, -processes or -operations.
If some aspects have been described in relation to a device or system, these aspects should also be understood as a description of the corresponding method. For example, a block, device or functional aspect of the device or system may correspond to a feature, such as a method step, of the corresponding method. Accordingly, aspects described in relation to a method shall also be understood as a description of a corresponding block, a corresponding element, a property or a functional feature of a corresponding device or a corresponding system.
The following claims are hereby incorporated in the detailed description, wherein each claim may stand on its own as a separate example. It should also be noted that although in the claims a dependent claim refers to a particular combination with one or more other claims, other examples may also include a combination of the dependent claim with the subject matter of any other dependent or independent claim. Such combinations are hereby explicitly proposed, unless it is stated in the individual case that a particular combination is not intended. Furthermore, features of a claim should also be included for any other independent claim, even if that claim is not directly defined as dependent on that other independent claim.