Systems and methods for fast layered decoding for low-density parity-check (LDPC) codes
11664824 · 2023-05-30
Assignee
Inventors
- Amirpasha Shirazinia (SOLNA, SE)
- Mattias Andersson (SUNDBYBERG, SE)
- Magnus Malmberg (Lund, SE)
- Sara Sandberg (Luleå, SE)
Cpc classification
H03M13/114
ELECTRICITY
H03M13/1137
ELECTRICITY
H03M13/116
ELECTRICITY
International classification
Abstract
According to certain embodiments, a method is provided for fast layered decoding for Low-density Parity-Check (LDPC) codes with a Parity-Check Matrix (PCM) that includes at least a first layer and a second layer. The method includes reading, from a memory, Variable Node (VN) soft information, wherein the VN soft information is associated with a message from a VN to a Check Node (CN) of the second layer of the PCM. A new CN to VN message is calculated from the CN of the second layer of the PCM. New VN soft information is calculated for the VN. The new VN soft information is calculated based on the VN soft information and a new CN to VN message from a CN of the first layer to the VN and an old CN to VN message from the CN of the first layer to the VN such that the updating of new VN soft information is delayed by at least one layer. The fast layered decoding has lower decoding latency and utilizes the decoding hardware more efficiently than standard layered decoding techniques. This may be achieved by keeping the memory access and processing hardware units active simultaneously to avoid excess decoding latency. More specifically, certain embodiments may carry out memory access and computation process simultaneously, without any effort to make the row layers mutually orthogonal to each other. Another technical advantage may be that the proposed decoding algorithm adjusts the LLRs to partially account for deviations from the layered decoding due to non-orthogonal rows.
Claims
1. A method for fast layered decoding for Low-density Parity-Check (LDPC) codes with a Parity-Check Matrix (PCM) comprising at least a first layer and a second layer, the method comprising: reading, from a memory, Variable Node (VN) soft information, wherein the VN soft information is associated with a message from a VN to a Check Node (CN) of the second layer of the PCM; calculating a new CN to VN message from the CN of the second layer of the PCM; and calculating new VN soft information for the VN, wherein the new VN soft information is calculated based on the VN soft information and a new CN to VN message from a CN of the first layer to the VN and an old CN to VN message from the CN of the first layer to the VN such that the updating of the new VN soft information is delayed by at least one layer, and wherein calculating the new VN soft information comprises adjusting the VN soft information to partially account for deviations from the layered decoding due to non-orthogonal rows; determining a correlation between all pairs of layers; and based on the correlation, reordering at least two of the layers.
2. The method of claim 1, further comprising switching from delayed updating to real-time updating of the VN soft information.
3. The method of claim 1, wherein at least one of the VN soft information and the new VN soft information comprises a log-likelihood ratio (LLR) value.
4. The method of claim 1, wherein while processing circuitry is calculating the new soft information for the VN, the method further includes simultaneously accessing the memory and performing at least one of: reading soft information of a VN associated with the CN from the memory; reading a message from the CN in the first layer from the memory; writing soft information of the VN in the first layer to the memory; and writing soft information associated with a message from the CN in the first layer to the VN.
5. The method of claim 1, wherein at least one of the soft information for the VN associated with the CN in the first layer may be based on an old message from the CN associated with the VN and a new message from the CN associated with the VN.
6. The method of claim 1, wherein the method is performed by a wireless device.
7. The method of claim 1, wherein the method is performed by a network node.
8. A system for fast layered decoding for Low-Density Parity-Check (LDPC) codes defined with a parity check matrix (PCM) comprising a first layer and a second layer, the system comprising: a memory storing instructions; and processing circuitry operable to execute the instructions to cause the processing circuitry to: obtain Variable node (VN) soft information associated with a message from a VN to a Check Node (CN) of the second layer of the PCM; and calculate a new CN to VN message from the CN of the second layer of the PCM; and calculate new VN soft information for the VN, wherein the new VN soft information is calculated based on the VN soft information and a new CN to VN message from a CN of the first layer to the VN and an old CN to VN message from the CN of the first layer to the VN such that the updating of the new VN soft information is delayed by at least one layer, and wherein calculating the new VN soft information comprises adjusting the VN soft information to partially account for deviations from the layered decoding due to non-orthogonal rows; determine a correlation between all pairs of layers; and based on the correlation, reorder at least two of the layers.
9. The system of claim 8, wherein the processing circuitry is further operable to execute the instructions to cause the processing circuitry to switch from delayed updating to real-time updating of the VN soft information.
10. The system of claim 8, wherein at least one of the VN soft information and the new VN soft information comprises a log-likelihood ratio (LLR) value.
11. The system of claim 10, wherein the message from the VN to the CN of the second layer is the difference between the VN soft information and an old CN to VN message from the CN of the second layer to the VN.
12. The system of claim 8, wherein while the processing circuitry is calculating the new soft information for the VN, the memory is simultaneously accessed and at least one of the following operations is performed: reading soft information of a VN associated with a CN from the memory; reading a message from the CN in the first layer from the memory; writing soft information of the VN to the memory; and writing soft information associated with a message from the CN in the first layer to the VN.
13. The system of claim 8, wherein the VN soft information for the VN associated with the CN in the first layer may be based on an old message from the CN associated with the VN and a new message from the CN associated with the VN.
14. The system of claim 8, wherein the new CN to VN message is calculated as a function of a set of values associated with a plurality of messages from a plurality of VNs to the CN of the second layer of the PCM.
15. The system of claim 8, wherein the correlation may be defined as the inner product of blocks in layers, where each block will map to 0 if its value is −1 and to 1, otherwise.
16. The system of claim 8, wherein the message from the VN to the CN of the second layer is a function of the VN soft information and an old CN to VN message from the CN of the second layer to the VN.
17. The system of claim 8, wherein the system comprises a wireless device.
18. The system of claim 8, wherein the system comprises a network node.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) For a more complete understanding of the disclosed embodiments and their features and advantages, reference is now made to the following description, taken in conjunction with the accompanying drawings, in which:
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
DETAILED DESCRIPTION
(13) Particular embodiments of the present disclosure may provide solutions enabling fast-layered decoding for low-density parity-check (LDPC) codes. Particular embodiments are described in
(14) According to certain embodiments, a fast-layered decoding method is provided that carries out memory access and computation processes simultaneously without requiring row layers to be mutually orthogonal to each other. According to certain embodiments, new notations are provided as follows: R.sub.mj.sup.new: new message from Check Node (CN) m in layer b connected to Variable Node (VN) j R.sub.mj.sup.old: old message from CN m in layer b connected to VN j
(15) According to certain embodiments, the proposed fast layered decoding method may be performed as follows:
(16) TABLE-US-00002 1: for iteration i=1: Max_iter 2: for layer b = 1:M/Z 3: for row r = 1:Z 4: m = (b − 1) × Z + r 5: L(q.sub.mj) − L(q.sub.j) − R.sub.mj.sup.old , j ∈ N(m) , m in layer b 6: R.sub.mj.sup.new = f(L(q.sub.mn)) , n ∈ N(m), n ≠ j 7: end for row 8: for row r’ = 1:Z 9: if b is equal to 1 10: m′ = M − Z + r′ 11: else 12: m′ = (b − 2) × Z + r′ 13: end if 14: L(q.sub.j) = L(q.sub.j) + R.sub.m′j.sup.new − R.sub.m′j.sup.old , j ∈ N(m′) 15: R.sub.m′j.sup.old = R.sub.m′j.sup.new 16: end for row 17: end for layer 18: end for iteration
(17) In certain embodiments, the following considerations may hold true: 1. L(q_j) can be initialized by channel Log-Likelihood-Ratios (LLRs), e.g., L(q.sub.j)=2r.sub.j/σ.sup.2 in the case of Binary Phase Shift Keying (BPSK) modulation, and R.sub.mj.sup.old can be initialized as zero. 2. In step (14), all LLR updates are related to m′ belonging to layer b-1, or layer M/Z in the case that b is equal to 1. 3. In step (6) of the algorithm, like the layered decoding, the function ƒ(⋅) can be chosen from sum-product, min-sum or any of their variants. 4. The compensation term R.sub.mj.sup.new−R.sub.mj.sup.old in step (14) must be considered as we delayed the update of the LLR messages L(q.sub.j). The compensation term enables the fast layered decoding since data dependency between two rows is removed. 5. It should be noted that the fast layered algorithm only calculates an estimate of the LLRs of the standard layered algorithm. Therefore, the Block Error Rate (BLER) performance is expected to be slightly reduced.
(18)
(Latency to read active nodes for one row both CN and VN value+latency to calculate VN value for each active position+CN calculation time+latency to write the active nodes for both the CN and VN value)*number of layers*number of iterations For fast layered decoding, decoding latency is calculated as follows:
(Max(latency to read+latency to write the CN and VN values, latency to calculate the VN value for each active position+CN calculation time))*number of layers*number of iterations
Therefore, the latency for the fast layered decoding is almost half of that of previous methods for layered decoding.
(19)
(20) At step 104, a new CN to VN message is calculated from the CN of the second layer of the PCM. According to certain embodiments, the new CN to VN message is calculated based on the VN to CN messages from all VNs that are connected to this particular CN.
(21) At step 106, new VN soft information for the VN is calculated. According to certain embodiments, the new VN soft information is calculated based on the VN soft information and a new CN to VN message from a CN of the first layer to the VN and an old CN to VN message from the CN of the first layer to the VN such that the updating of new VN soft information is delayed by at least one layer.
(22) In various particular embodiments, while the new soft information for the VN of the second layer is being calculated, a memory may be simultaneously accessed and information may be read from or written to the memory. For example, in a particular embodiment, soft information and/or a LLR value of a VN connected to or associated with a CN may be read from the memory. As another example, a message from the CN in the first layer may be read from the memory. As still another example, soft information and/or a LLR value of the VN in the first layer may be written to the memory. Alternatively or additionally, soft information and/or a LLR value from the CN connected to the VN in the first layer may be written to the memory.
(23) According to certain embodiments, layer permutation may be enabled. More specifically, in order to improve the performance of the fast layered decoding, the correlation of successive layers may be reduced by permuting them in an optimized manner. This will have an effect in steps (8)-(16), as the LLRs L(q.sub.j) are updated in a delayed fashion. In a particular embodiment, the following two-step method may be used for layer permutation: 1. Given the base graph of an LDPC code, the correlation between all pairs of layers is first calculated. The correlation is defined as the inner product of blocks in layers, where each block will map to 0 if its value is −1 (remember that the −1 notation corresponds to a zero sub block of size Z×Z) and to 1, otherwise. The correlations are stored in the matrix denoted by C. As an example, consider the base graph of
(24)
Returning to
(25)
(26) It may be observed that at a FER of 0.1 the gap between the layered (benchmark method) and fast layered (without layer permutation) is only 0.05 dB, while the fast layered requires in the best case only half of the layered decoding latency. It should be noted that the performance difference between layered and fast layered depends on the structure of the PCM. If the PCM is very dense, the impact of the approximations done for non-orthogonal rows with fast layered may be higher. On the other hand, if the PCM is very sparse, the impact may be low.
(27)
(28) In certain embodiments, network nodes 315 may interface with a radio network controller 320. Radio network controller 320 may control network nodes 315 and may provide certain radio resource management functions, mobility management functions, and/or other suitable functions. In certain embodiments, radio network controller 320 may interface with core network node 330 via an interconnecting network 325. The interconnecting network 325 may refer to any interconnecting system capable of transmitting audio, video, signals, data, messages, or any combination of the preceding. The interconnecting network may include all or a portion of a public switched telephone network (PSTN), a public or private data network, a local area network (LAN), a metropolitan area network (MAN), a wide area network (WAN), a local, regional, or global communication or computer network such as the Internet, a wireline or wireless network, an enterprise intranet, or any other suitable communication link, including combinations thereof.
(29) Core network node 330 may manage the establishment of communication sessions and provide various other functionality for wireless communication device 310. Wireless communication device 310 exchanges certain signals with core network node 330 using the non-access stratum layer. In non-access stratum (NAS) signaling, signals between wireless communication device 310 and core network node 330 pass transparently through network nodes 320.
(30) As described above, example embodiments of network 300 may include one or more wireless devices 310, and one or more different types of network nodes capable of communicating (directly or indirectly) with wireless devices 310. Wireless device 310 may refer to any type of wireless device communicating with a node and/or with another wireless device in a cellular or mobile communication system. Examples of wireless device 310 include a mobile phone, a smart phone, a PDA (Personal Digital Assistant), a portable computer (e.g., laptop, tablet), a sensor, a modem, a machine-type-communication (MTC) device/machine-to-machine (M2M) device, laptop embedded equipment (LEE), laptop mounted equipment (LME), USB dongles, a D2D capable device, or another device that can provide wireless communication. A wireless device 110 may also be referred to as UE, a station (STA), a device, or a terminal in some embodiments. Also, in some embodiments, generic terminology, “radio network node” (or simply “network node”) is used. It can be any kind of network node, which may comprise a Node B, base station (BS), multi-standard radio (MSR) radio node such as MSR BS, eNode B, network controller, radio network controller (RNC), base station controller (BSC), relay donor node controlling relay, base transceiver station (BTS), access point (AP), transmission points, transmission nodes, RRU, RRH, nodes in distributed antenna system (DAS), core network node (e.g. MSC, MME etc.), O&M, OSS, SON, positioning node (e.g. E-SMLC), MDT, or any suitable network node. Each of wireless communication device 310, network node 315, radio network controller 320, and core network node 330 include any suitable combination of hardware and/or software. Example embodiments of network nodes 315, wireless devices 310, and other network nodes (such as radio network controller or core network node) are described in more detail with respect to
(31) Although
(32)
(33) Network nodes 315 may be deployed throughout network 300 as a homogenous deployment, heterogeneous deployment, or mixed deployment. A homogeneous deployment may generally describe a deployment made up of the same (or similar) type of network nodes 315 and/or similar coverage and cell sizes and inter-site distances. A heterogeneous deployment may generally describe deployments using a variety of types of network nodes 315 having different cell sizes, transmit powers, capacities, and inter-site distances. For example, a heterogeneous deployment may include a plurality of low-power nodes placed throughout a macro-cell layout. Mixed deployments may include a mix of homogenous portions and heterogeneous portions.
(34) Network node 315 may include one or more of transceiver 410, processing circuitry 420, memory 430, and network interface 440. In some embodiments, transceiver 410 facilitates transmitting wireless signals to and receiving wireless signals from wireless device 410 (e.g., via an antenna 450), processing circuitry 420 executes instructions to provide some or all of the functionality described above as being provided by a network node 315, memory 430 stores the instructions executed by processing circuitry 420, and network interface 440 communicates signals to backend network components, such as a gateway, switch, router, Internet, Public Switched Telephone Network (PSTN), core network nodes or radio network controllers, etc.
(35) In certain embodiments, network node 315 may be capable of using multi-antenna techniques, and may be equipped with multiple antennas and capable of supporting MIMO techniques. The one or more antennas may have controllable polarization. In other words, each element may have two co-located sub elements with different polarizations (e.g., 90 degree separation as in cross-polarization), so that different sets of beamforming weights will give the emitted wave different polarization.
(36) Processing circuitry 420 may include any suitable combination of hardware and software implemented in one or more modules to execute instructions and manipulate data to perform some or all of the described functions of network node 315. According to certain embodiments, wherein network node 315 comprises a receiver for fast layered decoding for LDPC codes with a PCM that includes at least a first layer and a second layer, processing circuitry 420 may be operable to execute instructions to cause the network node to: read, from memory 430, VN soft information associated with a message from a VN to a CN of the second layer of the PCM; calculate a new CN to VN message from the CN of the second layer of the PCM; and calculate new VN soft information for the VN associated with the CN of the second layer, wherein the new VN soft information is calculated based on the VN soft information and a new CN to VN message from a CN of the first layer and an old CN to VN message from the CN of the first layer such that the updating of new VN soft information is delayed by at least one layer. In some embodiments, processing circuitry 420 may include, for example, one or more computers, one or more processors, one or more central processing units (CPUs), one or more microprocessors, one or more applications, and/or other logic.
(37) Memory 430 is generally operable to store instructions, such as a computer program, software, an application including one or more of logic, rules, algorithms, code, tables, etc. and/or other instructions capable of being executed by a processor. Examples of memory 430 include computer memory (for example, Random Access Memory (RAM) or Read Only Memory (ROM)), mass storage media (for example, a hard disk), removable storage media (for example, a Compact Disk (CD) or a Digital Video Disk (DVD)), and/or or any other volatile or non-volatile, non-transitory computer-readable and/or computer-executable memory devices that store information.
(38) In some embodiments, network interface 440 is communicatively coupled to processing circuitry 420 and may refer to any suitable device operable to receive input for network node 315, send output from network node 315, perform suitable processing of the input or output or both, communicate to other devices, or any combination of the preceding. Network interface 440 may include appropriate hardware (e.g., port, modem, network interface card, etc.) and software, including protocol conversion and data processing capabilities, to communicate through a network.
(39) Other embodiments of network node 315 may include additional components beyond those shown in
(40)
(41) Processing circuitry 520 may include any suitable combination of hardware and software implemented in one or more modules to execute instructions and manipulate data to perform some or all of the described functions of wireless device 310. According to certain embodiments, wherein wireless device 310 comprises a receiver for fast layered decoding for LDPC codes with a PCM that includes at least a first layer and a second layer, processing circuitry 420 may be operable to execute instructions to cause wireless device 310 to: read, from memory 430, VN soft information associated with a message from a VN to a CN of the second layer of the PCM; calculate a new CN to VN message from the CN of the second layer of the PCM; and calculate new VN soft information for the VN associated with the CN of the second layer, wherein the new VN soft information is calculated based on the VN soft information and a new CN to VN message from a CN of the first layer and an old CN to VN message from the CN of the first layer such that the updating of new VN soft information is delayed by at least one layer. In some embodiments, processing circuitry 520 may include, for example, one or more computers, one or more processors, one or more central processing units (CPUs), one or more microprocessors, one or more applications, and/or other logic.
(42) Memory 530 is generally operable to store instructions, such as a computer program, software, an application including one or more of logic, rules, algorithms, code, tables, etc. and/or other instructions capable of being executed by a processor. Examples of memory 530 include computer memory (for example, Random Access Memory (RAM) or Read Only Memory (ROM)), mass storage media (for example, a hard disk), removable storage media (for example, a Compact Disk (CD) or a Digital Video Disk (DVD)), and/or or any other volatile or non-volatile, non-transitory computer-readable and/or computer-executable memory devices that store information.
(43) Other embodiments of wireless device 310 may include additional components beyond those shown in
(44) In certain embodiments, the method for fast layered decoding for LDPC codes as described above may be performed by virtual computing device.
(45) The reading module 610 may perform the reading functions of virtual computing device 600. For example, in a particular embodiment, reading module 610 may 102 read, from a memory, Variable node (VN) soft information. According to certain embodiments, the VN soft information may be associated with a message from a Variable Node (VN) to a Check Node (CN) of the second layer of the PCM. In various embodiments, the VN soft information may include, for example, a log-likelihood ratio (LLR) value, a likelihood ratio (LR), or scaled or quantized versions of these. In particular embodiments, the soft information may be saturated to a maximum value.
(46) The first calculating module 620 may perform certain calculating functions of virtual computing device 600. For example, in a particular embodiment, first calculating module 620 may calculate a new CN to VN message from the CN of the second layer of the PCM. According to certain embodiments, the new CN may be calculated based on the VN to CN messages from all VNs that are connected to this particular CN.
(47) The second calculating module 620 may perform certain other calculating functions of virtual computing device. For example, in a particular embodiment, second calculating module 630 may calculate new VN soft information for the VN associated with the CN of the second layer. According to certain embodiments, the new VN soft information may be calculated based on the VN soft information and a new CN to VN message from an CN of the first layer and an old CN to VN message from the CN of the first layer such that the updating of new VN soft information is delayed by at least one layer.
(48) Other embodiments of virtual computing device 600 may include additional components beyond those shown in
(49)
(50) Processing circuitry 720 may include any suitable combination of hardware and software implemented in one or more modules to execute instructions and manipulate data to perform some or all of the described functions of the radio network controller or core network node 700. In some embodiments, processing circuitry 720 may include, for example, one or more computers, one or more processors, one or more central processing units (CPUs), one or more microprocessors, one or more applications, and/or other logic.
(51) Memory 730 is generally operable to store instructions, such as a computer program, software, an application including one or more of logic, rules, algorithms, code, tables, etc. and/or other instructions capable of being executed by a processor. Examples of memory 730 include computer memory (for example, Random Access Memory (RAM) or Read Only Memory (ROM)), mass storage media (for example, a hard disk), removable storage media (for example, a Compact Disk (CD) or a Digital Video Disk (DVD)), and/or or any other volatile or non-volatile, non-transitory computer-readable and/or computer-executable memory devices that store information.
(52) In some embodiments, network interface 740 is communicatively coupled to processing circuitry 720 and may refer to any suitable device operable to receive input for the network node, send output from the network node, perform suitable processing of the input or output or both, communicate to other devices, or any combination of the preceding. Network interface 740 may include appropriate hardware (e.g., port, modem, network interface card, etc.) and software, including protocol conversion and data processing capabilities, to communicate through a network.
(53) Other embodiments of the network node may include additional components beyond those shown in
(54) According to certain embodiments, a method for fast layered decoding for LDPC codes of a Parity-Check Matrix (PCM) comprising at least a first layer and a second layer, the method may include: reading, from a memory, Variable node (VN) soft information, wherein the VN soft information is associated with a message from a Variable Node (VN) to a Check Node (CN) of the second layer of the PCM; calculating a new CN to VN message from the CN of the second layer of the PCM; calculating new VN soft information for the VN associated with the CN of the second layer, wherein the new VN soft information is calculated based on the VN soft information and a new CN to VN message from an CN of the first layer and an old CN to VN message from the CN of the first layer such that the updating of new VN soft information is delayed by at least one layer; optionally, the method further includes switching from delayed updating to real-time updating of VN soft information; optionally, the method further includes: optionally, the VN soft information comprises a log-likelihood ratio (LLR) value; optionally, while processing circuitry is calculating soft information and/or a LLR value for the VN associated with the CN of the second layer, the method further includes simultaneously accessing a memory and performing at least one of: reading soft information and/or a LLR value of a VN connected to a CN from the memory; reading a message from the CN in the first layer from the memory; writing soft information and/or a LLR value of the VN in the first layer to the memory; writing soft information and/or a LLR value from the CN connected to the VN in the first layer; optionally, the soft information and/or the LLR value for the VN associated with the CN in the first layer may be based on an old message from the CN associated with the VN and a new message from the CN associated with the VN; optionally, the new CN to VN message is calculated as a function of a set of values associated with a plurality of messages from a plurality of VNs to the CN of the second layer of the PCM; optionally, the correlation between all pairs of layers is determined; optionally, the correlation may be defined as the inner product of blocks in layers, where each block will map to 0 if its value is −1 and to 1, otherwise; optionally, determining the estimated soft information and/or LLR value includes adjusting the soft information and/or LLR value to partially account for deviations from the layered decoding due to non-orthogonal rows.
(55) According to certain embodiments, a system for fast layered decoding for LDPC codes in a parity check matrix (PCM) may include: a memory storing instructions; and processing circuitry operable to execute the instructions to cause the processing circuitry to: read, from the memory, Variable node (VN) soft information, wherein the VN soft information is associated with a message from a Variable Node (VN) to a Check Node (CN) of the second layer of the PCM; calculate a new CN to VN message from the CN of the second layer of the PCM; calculate new VN soft information for the VN associated with the CN of the second layer, wherein the new VN soft information is calculated based on the VN soft information and a new CN to VN message from an CN of the first layer and an old CN to VN message from the CN of the first layer such that the updating of new VN soft information is delayed by at least one layer; optionally, the processing circuitry is further operable to execute the instructions to cause the processing circuitry to switch from delayed updating to real-time updating of VN soft information; optionally, the VN soft information comprises a log-likelihood ratio (LLR) value; optionally, while the processing circuitry is calculating soft information and/or a LLR value for the VN associated with the CN of the second layer, the memory is simultaneously accessed and at least one of the following operations is performed: reading soft information and/or a LLR value of a VN connected to a CN from the memory; reading a message from the CN in the first layer from the memory; writing soft information and/or a LLR value of the VN in the first layer to the memory; writing soft information and/or a LLR value from the CN connected to the VN in the first layer; optionally, the soft information and/or the LLR value for the VN associated with the CN in the first layer may be based on an old message from the CN associated with the VN and a new message from the CN associated with the VN; optionally, the new CN to VN message is calculated as a function of a set of values associated with a plurality of messages from a plurality of VNs to the CN of the second layer of the PCM; optionally, the correlation between all pairs of layers is determined; optionally, the correlation may be defined as the inner product of blocks in layers, where each block will map to 0 if its value is −1 and to 1, otherwise; optionally, determining the estimated soft information and/or LLR value includes adjusting the soft information and/or LLR value to partially account for deviations from the layered decoding due to non-orthogonal rows.
(56) Certain embodiments of the present disclosure may provide one or more technical advantages. For example, certain embodiments may provide a sub-optimal decoding method, called fast layered decoding, which has lower decoding latency and utilizes the decoding hardware more efficiently than previous layered decoding techniques. This may be done by keeping the memory access and processing hardware units active simultaneously to avoid excess decoding latency. More specifically, certain embodiments may carry out memory access and computation process simultaneously, without any effort to make the row layers mutually orthogonal to each other. Another technical advantage may be that the proposed decoding algorithm adjusts the LLRs to partially account for deviations from the layered decoding due to non-orthogonal rows. Since the fast layered decoding algorithm works with estimates of the LLRs calculated in layered decoding, the performance in terms of achieved block-error rate may be slightly worse.
(57) Still another technical advantage may be that by applying the fast layered decoding, the decoding is carried out faster, hence, the decoding latency will be reduced by almost half. In certain embodiments, the decoding hardware may also be utilized more efficiently, which may increase the area efficiency of the decoder with up to a factor of two.
(58) Modifications, additions, or omissions may be made to the systems and apparatuses described herein without departing from the scope of the disclosure. The components of the systems and apparatuses may be integrated or separated. Moreover, the operations of the systems and apparatuses may be performed by more, fewer, or other components. Additionally, operations of the systems and apparatuses may be performed using any suitable logic comprising software, hardware, and/or other logic. As used in this document, “each” refers to each member of a set or each member of a subset of a set.
(59) Modifications, additions, or omissions may be made to the methods described herein without departing from the scope of the disclosure. The methods may include more, fewer, or other steps. Additionally, steps may be performed in any suitable order.
(60) Although this disclosure has been described in terms of certain embodiments, alterations and permutations of the embodiments will be apparent to those skilled in the art. Accordingly, the above description of the embodiments does not constrain this disclosure. Other changes, substitutions, and alterations are possible without departing from the spirit and scope of this disclosure, as defined by the following claims.
(61) Abbreviations used in the preceding description include:
ABBREVIATION EXPLANATION
(62) LDPC Low Density Parity Check
(63) LLR Log Likelihood Ratio
(64) LR Likelihood Ratio
(65) VN Variable Node
(66) CN Check Node
(67) PCM Parity Check Matrix