SOFT INFORMATION GENERATION FOR CONCATENATED FORWARD ERROR CORRECTION IN DIGIRAL SIGNAL PROCESSING
20250343561 ยท 2025-11-06
Inventors
- Haitao Xia (Sunnyvale, CA, US)
- John Szeming Wang (Sunnyvale, CA, US)
- Vasudevan Parthasarathy (Irvine, CA, US)
- Chung-Jue Chen (Irvine, CA)
- Sian She (Lafayette, CO, US)
- Thomas V. Souvignier (Boulder, CO, US)
Cpc classification
H03M13/6331
ELECTRICITY
International classification
Abstract
A method for generating soft information for a digital signal decoder. The method includes receiving a first plurality of signals, each corresponding to a time index, each time index being associated with two states including state 1 and state 0. The method also includes processing the first plurality of signals to calculate path metric values of state 0 and 1 for generating each of a second plurality of most-likely symbols by hard decisions and intermediate information for a most-likely path and a second-likely path at each time index. The method includes computing a difference between the most-likely path and a second-likely path for a given one of the two states at each time index. The method also includes determining a soft information corresponding to either one of the two states at the time index per one of the second plurality of most-likely symbols.
Claims
1. A method for generating soft information for a digital signal decoder comprising: receiving a first plurality of signals from a filter, each of the plurality of signals corresponding to a time index determined by a signal clock, each time index being associated with two states including state 1 and state 0, each state corresponding to two bits in terms of the symbol; processing the first plurality of signals to calculate path metric values of state 0 and state 1 for generating each of a second plurality of most-likely symbols by hard decisions and intermediate information for a most-likely path and a second-likely path at each time index; computing a difference between the most-likely path and the second-likely path to obtain a delta value for a given one of the two states at each time index; and determining soft information for the digital signal decoder at each time index corresponding to one of the second plurality of most-likely symbols based on the delta value and the intermediate information.
1. The method of claim Error! Reference source not found., wherein determining the soft information comprising assigning the delta value for a given one of the two states at each time index as the soft information at the corresponding time index if a soft information trace-back mode is set off.
2. The method of claim 1, further comprising revising the soft information for a selected time index if the delta value is less than a programmable threshold and the soft information trace-back mode is enabled.
3. The method of claim 1, wherein receiving the first plurality of signals comprises filtering the signals based on outputs from a feed-forward equalizer.
5. The method of claim 4, wherein processing the first plurality of signals comprises using a first part of the first plurality of signals for warm-up calculation of the path metric values and using a second part of the first plurality of signals for generating the second plurality of most-likely symbols by hard decisions based on a Maximum Likelihood Sequence Estimation (MLSE) process.
6. The method of claim 5, wherein processing the first plurality of signals comprises generating the intermediate information for each time index including the most-likely current state being state 0, the most-likely path and second-likely path to current state 0 coming from previous state 0 or state 1, the most-likely current state being state 1, and the most-likely path and second-likely path to current state 1 from previous state 0 or state 1.
7. The method of claim 1, wherein computing a difference between the most-likely path and a second-likely path to obtain a delta value for current state 0/1 at each time index comprises calculated an absolute value of a difference between a path metric value from state 0/1 at a previous time index to the current state 0/1 at the time index and a path metric value from state 1/0 at a previous time index to the current state 0/1 at the time index.
8. The method of claim 1, further comprising using the soft information in Chase-type algorithm for inner code decoding.
9. A method for generating soft information at each time index from a maximum likelihood sequence estimation (MLSE) process for a digital signal decoder comprising: accumulating path metric values for a first plurality of time indices from a first index forward to a middle index and from a last index backward to the middle index, each time index corresponding to a coding symbol; generating two sets of first delta values for respective two optional states at each time index from the first index forward to the middle index and two sets of second delta values for respective two optional states at each time index from the last index backward to the middle index; determining a most-likely state at the middle index; tracing backward from the most-likely state at the middle index to the first index to determine a first half of a second plurality of coding symbols by hard decisions; tracing forward from the most-likely state at the middle index to the last index to determine a second half of the second plurality of coding symbols by hard decisions; and assigning one of the first delta values as soft formation for one of the two optional states at first half of the first plurality of time indices corresponding to each hard decision during tracing backward and one of the second delta values as soft information for one of the two optional states at second half of the first plurality of time indices corresponding to each hard decision during tracing forward.
10. The method of claim 9, wherein accumulating the path metric values comprises calculating a first branch metric value between state 0 at time index n and state 0 at time index n+1; adding the first branch metric value to a path metric value of state 0 at time index n to obtain a first path metric value from state 0 at time index n to state 0 at time index n+1; calculating a second branch metric value between state 1 at time index n and state 0 at time index n+1; adding the second branch metric value to a path metric value of state 1 at time index n to obtain a second path metric value from state 1 at time index n to state 0 at time index n+1; and assigning a minimum one of the first path metric value and the second path metric value as a forward path metric value of state 0 at time index n+1, wherein n is initialized from 0 and increased to the middle index with an increment of 1.
11. The method of claim 10, wherein accumulating the path metric values also comprises calculating a third branch metric value between state 0 at time index n and state 1 at time index n+1; adding the third branch metric value to a path metric value of state 0 at time index n to obtain a third path metric value from state 0 at time index n to state 1 at time index n+1; calculating a fourth branch metric value between state 1 at time index n and state 1 at time index n+1; adding the fourth branch metric value to a path metric value of state 1 at time index n to obtain a fourth path metric value from state 1 at time index n to state 1 at time index n+1; and assigning a minimum one of the third path metric value and the fourth path metric value as a forward path metric value of state 1 at time index n+1, wherein n is initialized from 0 and increased to the middle index with an increment of 1.
12. The method of claim 11, wherein accumulating the path metric values also comprises calculating a backward path metric value of state 0 at time index n1 based on two path metric values respectively from state 0 and state 1 at time index n to state 0 at time index n1 and a backward path metric value of state 1 at time index n1 based on two path metric values respectively from state 0 and state 1 at time index n to state 1 at time index n1, wherein n is initialized from the last index and decreased to the middle index with a decrement of 1.
13. The method of claim 12, wherein determining a most-likely state at the middle index comprises adding the forward path metric value of state 0 at the middle index to the backward path metric value of state 0 at the middle index to obtain a path metric value of state 0 at the middle index; adding the forward path metric value of state 1 at the middle index to the backward path metric value of state 1 at the middle index to obtain a path metric value of state 1 at the middle index; and determining the most-likely state at the middle index to be state 0/1 if the path metric value of state 0 is smaller/greater than the path metric value of state 1.
14. The method of claim 13, comprising finding an absolute value of a sum of the forward path metric value of state 0 at the middle index plus the backward path metric value of state 0 at the middle index minus the forward path metric value of state 1 at the middle index minus the backward path metric value of state 1 at the middle index; assigning the absolute value as a soft information of the middle index.
15. The method of claim 11, wherein generating the two sets of first delta values comprises finding an absolute value of a difference between the first path metric value and the second path metric value for a survival state 0 from each time index n to n+1, and an absolute value of a difference between the third path metric value and the fourth path metric value for a survival state 1 from each time index n to n+1, wherein n is initialized from 0 and increased to the middle index with an increment of 1.
16. The method of claim 12, wherein generating the two sets of first delta values comprises finding an absolute value of a difference between the two path matric values respectively from state 0 and state 1 at time index n to state 0 at time index n1, and an absolute value of a difference between the two path matric values respectively from state 0 and state 1 at time index n to state 1 at time index n1, wherein n is initialized from the last index and decreased to the middle index with a decrement of 1.
17. The method of claim 14, comprising revising the soft information obtained for the second plurality of time indices around the middle index by tracing backward from the middle index towards both ends of the first plurality of time indices if the soft information at one time index is found to be greater than the soft information of the middle index under a condition that the soft information of time index is smaller than a programmable threshold value, wherein the condition is enabled or disabled by setting a register value to 1 or 0 in MLSE.
18. The method of claim 9, further comprising using the soft information obtained for the second plurality of time indices around the middle index for inner code decoding of the corresponding second plurality of coding symbols in the digital signal decoder.
19. An apparatus for generating soft information from a Maximum Likelihood Sequence Estimation (MLSE) process comprising: a feed-forward equalizer receiving signals to produce equalized outputs; a filter coupled to the feed-forward equalizer in an adaptive equalizer loop to provide MLSE inputs at a series of time indices based on filtering adaptation of the equalized outputs; a MLSE block configured to process the MLSE inputs to generate hard decision coding symbols and intermediate path metric information for the series of time indices; a soft information generator configured to generate soft information corresponding to each hard decision coding symbol at each of the series of time indices based on the intermediate path metric information; a multiplexer combining the soft information and the hard decision coding symbols; and a forward error correction decoder configured to use the soft information for inner code decoding of the corresponding coding symbol.
20. The apparatus of claim 19, further comprising: a saturation block in a channel following the soft information generator to saturate each 10-bits soft information to v-bits data; a channel interleaver to split the v-bits data to m codewords; each codeword including 64 PAM4 symbols and m sorting blocks following the channel interleaver to generate and store p least reliable symbols from each of the m codewords; wherein the number m (m>1), v (v<10), and p (p<m64) are selected based on design complexity and performance tradeoff.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0004] A further understanding of the nature and advantages of particular embodiments may be realized by reference to the remaining portions of the specification and the drawings, in which like reference numerals are used to refer to similar components. In some instances, a sub-label is associated with a reference numeral to denote one of multiple similar components. When reference is made to a reference numeral without specification to an existing sub-label, it is intended to refer to all such multiple similar components.
[0005]
[0006]
[0007]
[0008]
[0009]
[0010]
[0011]
[0012]
[0013]
[0014]
[0015]
DETAILED DESCRIPTION OF THE INVENTION
[0016] The subject technology provides a method and system for generating soft information of MLSE process for a digital signal decoder. The method includes processing a first plurality of signals to calculate path metric values for generating each of a second plurality of most-likely symbols by hard decisions and intermediate information for a most-likely path and a second-likely path at each specific point in time, i.e., time index, determined by a signal clock. The method includes computing a difference between the most-likely path and a second-likely path for a given state 0 or 1 at each time index. The method also includes determining a soft information corresponding to either state 0 or 1 at the time index per one of the second plurality of most-likely symbols. There are other embodiments as well.
[0017] In some embodiments, the subject technology provides a method for generating soft information of MLSE process within a concatenated FEC scheme for achieving 200 Gbps or more per lane in SerDes designs. This soft information of MLSE captures nuances in the received signal that hard decisions would miss, allowing the inner FEC code to more accurately correct errors based on the confidence level of each bit's value. In high-speed data transmission like a 200 Gbps per lane SerDes (Serializer/Deserializer) system, the term symbol or coding symbol represents a discrete unit of information conveyed by a specific state or configuration of the communication signal over a defined interval of time or space. For instance, in binary modulation schemes, each symbol represents a single bit (0 or 1), whereas in more complex modulation schemes like QAM (Quadrature Amplitude Modulation) or PAM-4 (Pulse Amplitude Modulation with 4 levels), each symbol can represent multiple bits. In a 200 Gbps system, the use of multi-bit-per-symbol schemes is often necessary to achieve the required data rates within the available bandwidth. Symbols are the result of the modulation process, where bits of digital data are encoded into specific states of the signal such as amplitude, phase, or frequency variations. This encoding facilitates the efficient use of the communication medium, allowing for the transmission of high data rates over physical channels. In systems employing FEC code, the ability to correct errors at the symbol levelrecognizing when a received symbol has been distorted due to noise, interference, or channel imperfections, and then deducing the original intended symbolis fundamental to maintaining high fidelity in data transmission.
[0018]
[0019] In an embodiment, the outputs of the FFE 140 are further processed by a filter (or filtering/reshaping system) to further shape the signals (e.g., the FFE outputs) for improved performance, particularly in mitigating ISI and optimizing the signals to produce digital inputs for subsequent processing blocks, such as a MLSE block 110 and Hamming decoder. In a specific implementation, the filter may include a reflection canceller (RC) 135 for signal shaping followed by a finite impulse response filter 130, denoted as (1+aD) to apply a specific correction to the signal based on the symbol immediately following the current one to further optimize the signals as inputs for MLSE 110. RC135 can be included or optionally by-passed. The (1+aD) filter 130 may be implemented in some alternated ways. For example, the filter 130 may be completely removed or not placed after the RC 135, instead, it can be implemented together with an adaptation engine in an adaptive equalizer loop. Note,
[0020] MLSE block 110 takes a series of MLSE inputs produced by the RC 135 and filter 130 (in one possible embodiment) and generates hard decision (e.g., PAM4) coding symbols respectively for a plurality of time indices (there are two states 0 or 1 for each time index corresponding to each MLSE input). In an example, the system includes two MLSE blocks. Only one MLSE block is shown in
[0021] Along with MLSE hard decision coding symbols at respective time indices, four pieces of intermediate information are also generated by the MLSE block 110 in each time index: (a) the most-likely current state (survival state) being at state 0, which is a 2-bit register in terms of a PAM4 symbol in the MLSE block; (b) the most-likely path (survival path) coming from previous state 0 or state 1 to current state 0, which is an 1 bit register in the MLSE block; (c) the most-likely current state being at state 1, 2-bit register; (d) the most-likely path coming from previous state 0 or state 1 to current state 1, 1 bit register. Then, a Soft Information Generator (block) 120 of the system uses at least the four pieces of intermediate information to create soft information which will be used for inner code decoding. Soft information refers to the use of probabilistic information or confidence levels about the received bits or symbols, rather than just making a hard decision on their values (0 or 1 in binary systems). This approach leverages the fact that the received signal contains more information about each transmitted bit or symbol than just its most likely value. By using soft information, the decoder considers the likelihood or confidence level of each bit or symbol being a 1 or a 0. This is often represented as a likelihood ratio, log-likelihood ratio (LLR), or simply the amplitude of the received signal. Soft decoding retains the information about how close the signal was to the threshold, improving its error correction performance, especially in noisy environments.
[0022] Alternatively, the system may include a slicer 170 to make immediate, hard decisions on the value of each received symbol (i.e., the FFE outputs) based on a thresholding operation. In the case of PAM4, which has four distinct amplitude levels representing two bits per symbol, the slicer divides the range of received signal amplitudes into four regions, each corresponding to one of the PAM4 symbols (00, 01, 10, 11). When a symbol is received, the slicer determines which region the symbol's amplitude falls into and thus decides on the symbol's value. Optionally, some systems might equip the slicer with the capability to measure how close the received signal is to each decision boundary, which can be interpreted as a form of soft information. For example, the distance from the received signal to the nearest constellation points can be used to infer the likelihood or confidence level of each symbol decision. LLRs or other probabilistic metrics can be calculated based on the received signal's characteristics. These metrics provide a quantitative measure of confidence in each bit or symbol decision, serving as soft information. As shown in
[0023] In some embodiments, in high-speed digital communication systems, particularly those employing advanced modulation schemes like PAM4 and complex error correction codes, an adaptation engine 180 is employed for optimizing performance across various components from the FFE 140 and the subsequent MLSE block 110. The adaptation engine 180 analyzes the output from the FFE 140, along with feedback from the MLSE block 110 in an adaptive equalizer loop, to dynamically adjust the FFE taps. This adjustment is aimed at minimizing ISI and other linear distortions based on the current channel conditions, which can vary due to temperature changes, equipment aging, or other environmental factors. Also, the adaptation engine 180 fine-tunes the MLSE parameters, such as branch metrics used for sequence estimation, to enhance its decoding performance. In systems that support both hard and soft decision decoding, the adaptation engine 180 decides the optimal strategy to use based on current conditions and continuously monitors the system's performance, including error rates and signal quality metrics, to adapt the decoding process dynamically.
[0024] There are various possible topologies to implement the adaptation engine 180 in relevant system architecture.
[0025] The whole system architecture for generating filtered FFE outputs as optimized MLSE inputs for the subsequent MLSE process can vary but would not alter the implementation of the subject technology to provide soft information of MLSE for concatenated Forward Error Correction in 200G/lane Serdes design. In other words, the method and system described herein should covers all possible topologies to implement the filter or the adaptation engine.
[0026] The following description is presented to enable one of ordinary skill in the art to make and use the invention and to incorporate it in the context of particular applications. Various modifications, as well as a variety of uses in different applications will be readily apparent to those skilled in the art, and the general principles defined herein may be applied to a wide range of embodiments. Thus, the present invention is not intended to be limited to the exemplary embodiments presented, but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.
[0027] In the following detailed description, numerous specific details are set forth in order to provide a more thorough understanding of the present invention. However, it will be apparent to one skilled in the art that the present invention may be practiced without necessarily being limited to these specific details. In other instances, well-known structures and devices are shown in block diagram form, rather than in detail, in order to avoid obscuring the present invention.
[0028] The reader's attention is directed to all papers and documents which are filed concurrently with this specification and which are open to public inspection with this specification, and the contents of all such papers and documents are incorporated herein by reference. All the features disclosed in this specification, (including any accompanying claims, abstract, and drawings) may be replaced by alternative features serving the same, equivalent or similar purpose, unless expressly stated otherwise. Thus, unless expressly stated otherwise, each feature disclosed is one example only of a generic series of equivalent or similar features.
[0029] Furthermore, any element in a claim that does not explicitly state means for performing a specified function, or step for performing a specific function, is not to be interpreted as a means or step clause as specified in 35 U.S.C. Section 112, Paragraph 6. In particular, the use of step of or act of in the Claims herein is not intended to invoke the provisions of 35 U.S.C. 112, Paragraph 6.
[0030] When an element is referred to herein or illustrated herein as being connected or coupled to another element, it is to be understood that the elements can be directly connected to the other element, or have intervening elements present between the elements. In contrast, when an element is referred to as being directly connected or directly coupled to another element, it should be understood that no intervening elements are present in the direct connection between the elements. However, the existence of a direct connection does not exclude other connections, in which intervening elements may be present.
[0031] When an element is referred to herein as being disposed in some manner relative to another element (e.g., disposed on, disposed between, disposed under, disposed adjacent to, or disposed in some other relative manner), it is to be understood that the elements can be directly disposed relative to the other element (e.g., disposed directly on another element), or have intervening elements present between the elements. In contrast, when an element is referred to as being disposed directly relative to another element, it should be understood that no intervening elements are present in the direct example. However, the existence of a direct disposition does not exclude the possibility of other examples in which intervening elements may be present.
[0032] Moreover, the terms left, right, front, back, top, bottom, forward, reverse, clockwise and counterclockwise are used for purposes of explanation only and are not limited to any fixed direction or orientation. Rather, they are used merely to indicate relative locations and/or directions between various parts of an object and/or components.
[0033] Furthermore, the methods and processes described herein may be described in a particular order for ease of description. However, it should be understood that, unless the context dictates otherwise, intervening processes may take place before and/or after any portion of the described process, and further various procedures may be reordered, added, and/or omitted in accordance with various embodiments.
[0034] Unless otherwise indicated, all numbers used herein to express quantities, dimensions, and so forth should be understood as being modified in all instances by the term about. In this application, the use of the singular includes the plural unless specifically stated otherwise, and use of the terms and and or means and/or unless otherwise indicated. Moreover, the use of the terms including and having, as well as other forms, such as includes, included, has, have, and had, should be considered non-exclusive. Also, terms such as element or component encompass both elements and components comprising one unit and elements and components that comprise more than one unit, unless specifically stated otherwise.
[0035] As used herein, the phrase at least one of preceding a series of items, with the term and or or to separate any of the items, modifies the list as a whole, rather than each member of the list (i.e., each item). The phrase at least one of does not require selection of at least one of each item listed; rather, the phrase allows a meaning that includes at least one of any one of the items, and/or at least one of any combination of the items. By way of example, the phrases at least one of A, B, and C or at least one of A, B, or C each refer to only A, only B, or only C; and/or any combination of A, B, and C. In instances where it is intended that a selection be of at least one of each of A, B, and C, or alternatively, at least one of A, at least one of B, and at least one of C, it is expressly described as such.
[0036] One general aspect of the subject technology includes method for generating soft information for a digital signal decoder. The method includes receiving a first plurality of signals from a filter, each of the plurality of signals corresponding to a symbol at a time index determined by a signal clock, each time index being associated with two states including state 1 and state 0, each state corresponding to two bits in terms of the symbol. The method also includes processing the first plurality of signals to calculate path metric values of state 0 and state 1 for generating each of a second plurality of most-likely symbols by hard decisions and intermediate information for a most-likely path and a second-likely path through each time index. The method also includes computing a difference between the most-likely path and the second-likely path to obtain a delta value for a given one of the two states at each time index. The method also includes determining a soft information for the digital signal decoder at each time index corresponding to one of the second plurality of most-likely symbols based on the delta value and the intermediate information. Other embodiments of this aspect include corresponding signal processing systems, apparatus, and computation programs recorded on one or more storage devices, each configured to perform the actions of the methods.
[0037] Implementations may include one or more of the following features. The method for determining the soft information may include assigning the delta value for a given one of the two states at each time index as the soft information at the corresponding time index if a soft information trace-back mode is set off. The method may include revising the soft information for a selected time index if the delta value is less than a programmable threshold and the soft information trace-back mode is enabled. Receiving the first plurality of signals may include filtering the signals based on outputs from a feed-forward equalizer. Processing the first plurality of signals may include using a first part of the first plurality of signals for warm-up calculation of the path metric values and using a second part of the first plurality of signals for generating the second plurality of most-likely symbols by hard decisions based on a maximum likelihood sequence estimation (MLSE) process. Processing the first plurality of signals may include generating the intermediate information for each time index including the most-likely current state being state 0, the most-likely path and second-likely path to current state 0 coming from previous state 0 or state 1, the most-likely current state being state 1, and the most-likely path and second-likely path to current state 1 from previous state 0 or state 1. Computing a difference between the most-likely path and the second-likely path to obtain a delta value for current state 0/1 at each time index may include calculating an absolute value of a difference between a path metric value from state 0/1 at a previous time index to the current state 0/1 at the time index and a path metric value from state 1/0 at a previous time index to the current state 0/1 at the time index. The method may include using the soft information in a Chase-type algorithm for inner code decoding. Implementations of the described techniques may include hardware, a method or process, or computation software or firmware programmed on a computation medium.
[0038] Another general aspect of the subject technology includes a method for generating soft information at each time index from a maximum likelihood sequence estimation (MLSE) process for a digital signal decoder. The method also includes accumulating path metric values for a first plurality of time indices from a first index forward to a middle index and from a last index backward to the middle index, each time index corresponding to a coding symbol. The method also includes generating two sets of first delta values for respective two optional states at each time index from the first index forward to the middle index and two sets of second delta values for respective two optional states at each time index from the last index backward to the middle index. The method also includes determining a most-likely state at the middle index. The method also includes tracing backward from the most-likely state at the middle index to the first index to determine a first half of a second plurality of coding symbols by hard decisions. The method also includes tracing forward from the most-likely state at the middle index to the last index to determine a second half of the second plurality of coding symbols by hard decisions. The method also includes assigning one of the first delta values as soft formation for one of the two optional states at first half of the first plurality of time indices corresponding to each coding symbol determined by hard decision during tracing backward and one of the second delta values as soft information for one of the two optional states at second half of the first plurality of time indices corresponding to each coding symbol determined by hard decision during tracing forward. Other embodiments of this aspect include corresponding signal processing systems, apparatus, and computation programs recorded on one or more computer devices, each configured to perform the actions of the methods.
[0039] Implementations may include one or more of the following features. Accumulating the path metric values may include calculating a first branch metric value between state 0 at time index n and state 0 at time index n+1; adding the first branch metric value to a path metric value of state 0 at time index n to obtain a first path metric value from state 0 at time index n to state 0 at time index n+1; calculating a second branch metric value between state 1 at time index n and state 0 at time index n+1; adding the second branch metric value to a path metric value of state 1 at time index n to obtain a second path metric value from state 1 at time index n to state 0 at time index n+1; and assigning a minimum one of the first path metric value and the second path metric value as a forward path metric value of state 0 at time index n+1, where n is initialized from 0 and increased to the middle index with an increment of 1. Accumulating the path metric values also may include calculating a third branch metric value between state 0 at time index n and state 1 at time index n+1; adding the third branch metric value to a path metric value of state 0 at time index n to obtain a third path metric value from state 0 at time index n to state 1 at time index n+1; calculating a fourth branch metric value between state 1 at time index n and state 1 at time index n+1; adding the fourth branch metric value to a path metric value of state 1 at time index n to obtain a fourth path metric value from state 1 at time index n to state 1 at time index n+1; and assigning a minimum one of the third path metric value and the fourth path metric value as a forward path metric value of state 1 at time index n+1, where n is initialized from 0 and increased to the middle index with an increment of 1. Accumulating the path metric values also may include calculating a backward path metric value of state 0 at time index n1 based on two path metric values respectively from state 0 and state 1 at time index n to state 0 at time index n1 and a backward path metric value of state 1 at time index n1 based on two path metric values respectively from state 0 and state 1 at time index n to state 1 at time index n1, where n is initialized from the last index and decreased to the middle index with a decrement of 1. Determining a most-likely state at the middle index may include adding the forward path metric value of state 0 at the middle index to the backward path metric value of state 0 at the middle index to obtain a path metric value of state 0 at the middle index; adding the forward path metric value of state 1 at the middle index to the backward path metric value of state 1 at the middle index to obtain a path metric value of state 1 at the middle index; and determining the most-likely state at the middle index to be state 0/1 if the path metric value of state 0 is smaller/greater than the path metric value of state 1. The method may include finding an absolute value of a sum of the forward path metric value of state 0 at the middle index plus the backward path metric value of state 0 at the middle index minus the forward path metric value of state 1 at the middle index minus the backward path metric value of state 1 at the middle index; assigning the absolute value as a soft information of the middle index. The condition is enabled or disabled by setting a register value to 1 or 0 in MLSE. Generating the two sets of first delta values may include finding an absolute value of a difference between the two path matric values respectively from state 0 and state 1 at time index n to state 0 at time index n1, and an absolute value of a difference between the two path matric values respectively from state 0 and state 1 at time index n to state 1 at time index n1, where n is initialized from the last index and decreased to the middle index with a decrement of 1. Generating the two sets of first delta values may include finding an absolute value of a difference between the first path metric value and the second path metric value for a survival state 0 from each time index n to n+1, and an absolute value of a difference between the third path metric value and the fourth path metric value for a survival state 1 from each time index n to n+1, where n is initialized from 0 and increased to the middle index with an increment of 1. The method may include using the soft information obtained for the second plurality of time indices around the middle index for inner code decoding of the corresponding second plurality of coding symbols in the digital signal decoder. Implementations of the described techniques may include hardware, a method or process, or computation software firmware on a computation medium.
[0040] Yet another general aspect of the subject technology includes an apparatus for generating soft information of a maximum likelihood sequence estimation (MLSE) process. The apparatus also includes a feed-forward equalizer receiving signals to produce equalized outputs. The apparatus also includes a filter coupled to the feed-forward equalizer in an adaptive equalizer loop to provide MLSE inputs at a series of time indices based on filtering adaptation of the equalized outputs. The apparatus also includes a MLSE block configured to process the MLSE inputs to generate hard decision coding symbols and intermediate path metric information for the series of time indices. The apparatus also includes a soft information generator configured to generate soft information corresponding to each hard decision coding symbol at each of the series of time indices based on the intermediate path metric information. The apparatus also includes a multiplexer combining the soft information and the hard decision coding symbols. The apparatus also includes a decoder configured to use the soft information for inner code decoding of the corresponding coding symbols. The apparatus may further include: a saturation block in a channel following the soft information generator to saturate each 10-bits soft information to v-bits data; a channel interleaver to split the v-bits data to m codewords; each codeword including 64 PAM4 symbols and m sorting blocks following the channel interleaver to generate and store p least reliable symbols from each of the m codewords; where the number m (m>1), v (v<10), and p (p<m64) are selected based on design complexity and performance tradeoff.
[0041] In an embodiment, the generation of MLSE soft information contains three steps: (1) Step 1: Compute the difference between a most-likely (ML) path and second-likely path called delta for a given state at a certain time index. (2) Step 2: During a MLSE hard decision trace back procedure, while choosing a hard decision coding symbol of MLSE, the soft information delta value at each time index will also be determined in the meantime. (3) Step 3: if SOFT_TRACE_MODE=1, and delta corresponding to the selected hard decision is less than a programmable threshold, DELTA_THRSH, then a soft information trace-back operation will be conducted to revise or update the soft information obtained in Step 2 by simply assigning soft information delta at certain time index. Step 3 can be turn on and off by setting register code SOFT_TRACE_MODE.
And a path metric value from state 1 at time index n to state 0 at time index n+1 can be expressed as
Similarly, we have another two path metric values:
Therefore, a ML path metric value for state 0 at time index n+1 can be obtained by taking a minimum value of PM.sub.A(n+1, 0) and PM.sub.B(n+1,0), i.e.,
And a ML path metric value for state 1 at time index n+1 can be obtained by taking a minimum value of PM.sub.A(n+1, 1) and PM.sub.B(n+1, 1), i.e.,
Accordingly, the second-likely path metric value in each of above two cases would be the one with a larger value among the corresponding pair of PM.sub.A and PM.sub.B. At the same time, two delta values, delta (n, 0) and delta (n, 1), are generated by taking an absolute value of a difference between the two path metric values, i.e., between the ML path and second-likely path, for each given state, one for state 0 and another for state 1, at a certain time index:
[0042] The ML path, also called a survival path, indicates a path leading to a current (or survival) state (or symbol) at a given time index n+1 with most likelihood from one of previous states at time index n. The second-likely path refers to a path leading to the current state at time index n+1 with less likelihood from (another) one of the previous states at the time index n. If the state represents a binary choice of 0 or 1, there are only one second-likely path following the most-likely path. If the state refers to a symbol with four levels, then there can be a third-likely path and a fourth likely path from a previous state to the current state or survival state. For a path over more time indices, the ML path is referred as an accumulated one of the above ML path from one time index to subsequent next time index. Accordingly, a hard decision will be applied to choose a symbol corresponding to the survival state. Here in a simplified version, a symbol is referred to just two states: 0 and 1. If state 0 is the survival path at time index n+1, the symbol corresponding to state 0 will be chosen as a hard decision coding symbol (by the MLSE process). In this case, delta (n, 0) will be recorded as soft information (denoted as soft (n)) for this hard decision coding symbol. Otherwise, delta (n, 1) will be recorded as soft information soft (n) for hard decision corresponding to state 1. Additionally, the Soft Information Generator block 120 is configured with a soft information trace-back which is enabled by setting a register parameter (SOFT_TRACE_MODE) to 1 and determining that the delta value corresponding to the selected symbol by hard decision is less than a programmable threshold, DELTA_THRSH. The soft information trace-back is to extend the hard decision process by considering the probabilities or confidences of each symbol's value rather than just the ML path. The algorithm maintains a distribution of probabilities or confidence levels for each possible symbol at each state. The algorithm doesn't simply choose the path with the best path metric. Instead, it calculates the likelihood of each symbol being a state 1 or a state 0 (in the case of binary symbols) based on the accumulated soft metrics, a P2P information for state 0 and state 1 for each time index which tells that from which previous state (path) the current state 0 and state 1 come from. The soft information trace-back mode can be turned off by setting the register parameter SOFT_TRACE_MODE=0. In other words, by default, the soft information is the delta value obtained for each time index.
[0043]
[0044]
[0045]
[0046]
[0047] After the survival node and path at the middle time index 25, trace-back in both directions are proceeded to find hard decision coding symbols of MLSE process and soft information for each time index 0 to 51.
[0048] A similar hard decision trace back process can be applied for the other half of the series of time indices. As the survival path was generated using the backward MLSE process from the last time index 51 to the middle index, the hard decision trace back process is to conduct trace forward operations. As the survival nodes at respective time index denoted by the solid dots and the survival path by the lines with thicker line width, the soft information for each respective time index is also generated. For example, soft (26)=delta (26,0), . . . soft (49)=delta (49,1), soft (50)=delta (50,0), and soft (51)=delta (51,0). The hard decision trace back process leads to the generation of all soft information of MLSE for total 52 time indices, as shown in the example, while only soft information for time index 6 to 45 will be used by soft decoding of inner code in next digital signal decoding process (see
[0049] Once the hard decision coding symbol of MLSE (i.e., corresponding PAM4 symbol) and soft information for each time index are obtained, optionally, a soft information trace back may be conducted further depending on the tradeoff between final performance and implementation complexity. Referring back to the Step 3 for generating soft information of MLSE for inner code decoding: if the register parameter SOFT_TRACE_MODE=1, the soft information trace-back mode is enabled, and if the delta value corresponding to the selected symbol by hard decision is less than a programmable threshold, DELTA_THRSH, then a soft information trace-back will be conducted using an algorithm shown in
[0050] The second loop (backward trace-back loop) is a symmetrical operation to the first loop but in reverse, going from i=45 down to i=26. It follows a similar logic but checks the path going forward (using i+j instead of ij) and makes sure the index doesn't exceed the bounds of the sequence ((i+j)<46). The trace-back process seems to be refining the soft decisions of the symbols based on a comparison of two potential paths. If the current decision for a symbol is uncertain (below the threshold), and there is a discrepancy between the two paths, the algorithm updates or revises the soft information of the symbol in question to reflect a potentially more accurate decision based on the surrounding context.
[0051] As illustrated in
[0052] Referring to
[0053]
[0054] In an alternative embodiment, a diagnostic feature associated with the subject technology of generating soft information of MLSE for concatenated FEC in digital signal processing. Since each MLSE engine works on each of multiple (like 40) filtered FFE outputs, the diagnostic feature can dump the related register values such as hard decision coding symbols, all intermediate state-state transfer information values, delta values, etc. based on the trigger that soft information<DELTA_THRSH. Firmware can read out those values for debug.
[0055] While the above is a full description of the specific embodiments, various modifications, alternative constructions and equivalents may be used. Therefore, the above description and illustrations should not be taken as limiting the scope of the present invention, which is defined by the appended claims.