The present disclosure relates generally to signal processing, and more specifically to adaptive decision feedback equalization (DFE) tuning.
This section is intended to introduce the reader to various aspects of art that may be related to various aspects of the present disclosure, which are described and/or claimed below. This discussion is believed to be helpful in providing the reader with background information to facilitate a better understanding of the various aspects of the present disclosure. Accordingly, it may be understood that these statements are to be read in this light, and not as admissions of prior art.
Data may be transferred from a transmitter to a receiver using a non-ideal (e.g., lossy and/or reflective) channel. Physical characteristics of the channel may reduce or degrade signal fidelity via inter-symbol interference (ISI), crosstalk, and other forms of signal fidelity loss. Increasing a rate of data transferred from the transmitter to the receiver may increase signal fidelity loss on the channel. Decision feedback equalization (DFE) may be implemented to reduce signal fidelity loss on the channel.
Various aspects of this disclosure may be better understood upon reading the following detailed description and upon reference to the drawings in which:
One or more specific embodiments will be described below. In an effort to provide a concise description of these embodiments, not all features of an actual implementation are described in the specification. It should be appreciated that in the development of any such actual implementation, as in any engineering or design project, numerous implementation-specific decisions must be made to achieve the developers' specific goals, such as compliance with system-related and business-related constraints, which may vary from one implementation to another. Moreover, it should be appreciated that such a development effort might be complex and time consuming, but would nevertheless be a routine undertaking of design, fabrication, and manufacture for those of ordinary skill having the benefit of this disclosure.
When introducing elements of various embodiments of the present disclosure, the articles “a,” “an,” and “the” are intended to mean that there are one or more of the elements. The terms “comprising,” “including,” and “having” are intended to be inclusive and mean that there may be additional elements other than the listed elements. Additionally, it should be understood that references to “one embodiment” or “an embodiment” of the present disclosure are not intended to be interpreted as excluding the existence of additional embodiments that also incorporate the recited features.
As described above, decision feedback equalization (DFE) may be implemented to reduce signal fidelity loss on a non-ideal (e.g., lossy) channels or physical transmission media that communicatively couple devices for exchanging data signals. For example, DFE may be implemented at a receiving device to reduce or suppress signal fidelity loss such as inter-symbol interference (ISI) by increasing high frequency content of data signals without amplifying noise content such as crosstalk. DFE generally involves filtering a data signal with a number of taps that each store delayed samples of data encoded in the data signal. Each tap may have a tap weight with a value that controls a weight or relative contribution of a corresponding delayed sample of data to a current sample of the data. DFE tuning may be implemented using an optimization process such as stochastic gradient descent that tunes or adjusts each tap weight value to improve signal integrity.
Different approaches for implementing DFE tuning may measure error using different signals to obtain a desired trade-off between stability and robustness. For example, some approaches for implementing DFE tuning may measure error using analog signals received from a channel and equalized or filtered signals that correspond to the received analog signals following DFE correction. Such approaches may use the received analog signals and the equalized or filtered signals to determine analog error vectors for implementing DFE tuning. While effective, analog signals received from a channel and equalized or filtered signals that correspond to the received analog signals following DFE correction may be unavailable for measuring error in some architectures that implement DFE. For example, some architectures that implement DFE such as double data rate fifth generation (DDR5) architectures may have architectural restrictions that limit available signals for measuring error to transmitted signals that include data coded for transmission via a channel and quantized signals that DFE circuitry output based on the transmitted signals.
With the foregoing in mind,
In operation, the controller 112 may cause the driver 118 to transmit data signals to the second device 120 via the channel 137. A data signal may be an analog signal that represents data coded for transmission to the second device 120 as a pattern or stream of data symbols. For example, a data signal may be a non-return-to-zero (NRZ) signal (e.g., a polar NRZ signal) or a Pulse Amplitude Modulation (PAM) signal (e.g., a PAM-4 signal). A unit interval (UI) or time interval may denote a duration of a data symbol in a data signal. A periodicity or frequency of a data timing or strobe signal associated with a data signal may correspond to a UI of a data signal. For example, one UI of a data signal may be equal to a period of the data timing signal. In an embodiment, the controller 112 may cause the interface circuitry 116 to transmit a data timing or strobe signal associated with a data signal to the second device 120.
A data symbol of a data signal transmitted by the driver 118 may represent an integer multiple (e.g., one, two, etc.) of bits of data coded for transmission to the second device 120. For example, a data symbol of a data signal may represent one bit of data coded for transmission to the second device 120 where the data signal is an NRZ signal. As another example, a data symbol of a data signal may represent two bits of data coded for transmission to the second device 120 where the data signal is a PAM-4 signal. A data signal transmitted by the driver 118 may transition between an integer multiple (e.g., two, three, etc.) of voltages. Different voltages of a data signal transmitted by the driver 118 may correspond to different logic or binary values of bits of data coded for transmission to the second device 120. For example, a data signal that is an NRZ signal may transition between a first voltage and a second voltage that correspond to a first logic value (e.g., a binary “1”) and a second logic value (e.g., a binary “0”), respectively. Data signals transmitted by the driver 118 may propagate to the input 127 of the DFE circuitry 126 via the channel 137.
The DFE circuitry 126 may receive data signals at the input 127 from the channel 137. The DFE circuitry 126 may also receive a reference voltage (e.g., VREF) from the control circuitry 122. VREF may be a quantization threshold voltage of a data signal received at the input 127. The quantization threshold voltage may be between a first voltage and a second voltage of the data signal that correspond to a first logic value (e.g., a binary “1”) and a second logic value (e.g., a binary “0”), respectively. The DFE tuner 114 of the first device 110 may control VREF using instructions or signals that the interface circuitry 116 sends to the control circuitry 122 of the second device 120 over the control interconnect 132.
The DFE circuitry 126 may quantize data signals received at the input 127 using VREF to provide quantized signals (DFEout) at the output 129. DFEout may include a stream of data symbols that each represent an integer multiple (e.g., one, two, etc.) of bits. A data symbol of DFEout may be an estimate of a corresponding data symbol in a data signal transmitted by the driver 118. For example, a data signal that includes a data symbol may be received at the input 127 and the DFE circuitry 126 may sample the data signal during a UI of the data symbol. In this example, the DFE circuitry 126 may compare the sample of the data signal to VREF and DFEout provided at the output 129 may include a data symbol corresponding to the data symbol of the data signal based on that comparison.
The feedback circuitry 124 may provide a feedback signal based on DFEout provided at the output 129 of the DFE circuitry 126. The feedback circuitry 124 may provide the feedback signal to the interface circuitry 116 of the first device 110 over the feedback interconnect 134. In an embodiment, the feedback circuitry 124 may also provide a feedback timing signal that corresponds to the feedback signal. In an embodiment, the feedback circuitry 124 may provide the feedback timing signal based on a data timing signal sent by the interface circuitry 116 of the first device 110.
Differences may exist between data symbols of DFEout provided at the output 129 and corresponding data symbols of data signals transmitted by the driver 118. Such differences may relate to signal fidelity loss introduced by the channel 137. Some signal fidelity loss may include ISI related to physical characteristics of the channel 137. ISI generally involves interference between data symbols corresponding to different unit intervals of a data signal. The interference may include a data symbol in a given unit interval of a data signal contributing to data symbols in unit intervals of the data signal that follow the given unit interval. For example, the sample of the data signal during the UI of the data symbol that the DFE circuitry 126 compares to VREF in the preceding example may include contributions from data symbols that correspond to a number of UIs that precede the UI of the data symbol. The sample of the data signal during the UI of the data symbol may be erroneously quantized (e.g., the first logic value being erroneously represented at the output 129 as the second logic value or vice versa) by the DFE circuitry 126 due to the contributions from data symbols of the preceding UIs.
The DFE circuitry 126 may equalize or filter data signals received at the input 127 to reduce signal fidelity loss such as ISI related to physical characteristics of the channel 137. The DFE circuitry 126 may include N-taps that each store a delayed sample of a data signal received at the input 127, where N is an integer number greater than zero. For example, each tap among the N-taps of the DFE circuitry 126 may buffer a data symbol that corresponds to a UI of a data signal that precedes a current UI of the data signal. Each tap among the N-taps of the DFE circuitry 126 may have a programmable tap weight with a value that controls a weight or relative contribution of a corresponding delayed sample of a data signal (e.g., buffered data symbol) to a current sample the data signal. For example, increasing the value of the tap weight may increase the weight or relative contribution of the corresponding delayed sample or buffered data symbol to the current sample. As another example, decreasing the value of the tap weight may decrease the weight or relative contribution of the corresponding delayed sample or buffered data symbol to the current sample.
The DFE tuner 114 of the first device 110 may be generally configured to implement adaptive DFE tuning of the DFE circuitry 126 to reduce signal fidelity loss. The DFE tuner 114 may implement adaptive DFE tuning by causing (e.g., via the controller 112) the driver 118 to transmit data signals with a pattern or stream of training data to the DFE circuitry 126 via the channel 137. The DFE tuner 114 may also implement adaptive DFE tuning by updating or adjusting tap weight values of the DFE circuitry 126 to reduce or minimize error associated with the channel 137 such as a bit error rate (BER) at the output 129 of the DFE circuitry 126. The DFE tuner 114 may cause the control circuitry 122 of the second device 120 to provide the DFE circuitry 126 with updated tap weight values using instructions or signals that the interface circuitry 116 sends to over the control interconnect 132. As described above, different approaches for implementing DFE tuning may measure error using different signals to obtain a desired trade-off between stability and robustness.
The diagram 200 also includes a filtered or equalized signal {circumflex over (r)}(i) that represents the received signal r(i) following DFE correction. The filtered signal {circumflex over (r)}(i) may include a difference between the received signal r(i) at a current symbol instance or unit interval DFE correction may involve and a weighted combination of symbol decisions output by a slicer 206 over a number of preceding symbol instances or unit intervals. DFE correction may involve a number of delay elements 208 storing delayed versions of symbol decisions output by the slicer 206. DFE correction may also involve a feedback filter 210 providing an equalization signal to a subtractor 212 based on the delayed versions of symbol decisions stored by the delay elements 208 and a number of DFE tap weights. In an embodiment, the filtered signal {circumflex over (r)}(i) may be output by an equalization or filtering operation that is implemented between the input 127 and the output 129 of the DFE circuitry 126. The diagram 200 also includes a quantized signal {circumflex over (t)}(i) that represents symbol decisions output by the slicer 206 based on the filtered signal (i). The quantized signal {circumflex over (t)}(i) may be an estimate of the pattern or stream of data symbols represented by the transmitted signal t(i). In an embodiment, the quantized signal (i) may be DFEout provided at the output 129 of the DFE circuitry 126 in
Absent architectural restrictions, error may be measured for implementing DFE tuning using various combinations of the transmitted signal t(i), the received signal r(i), the filtered signal {circumflex over (r)}(i), and the quantized signal {circumflex over (r)}(i) shown in
The system 300 may include a host processor 310 and elements of a memory subsystem such as a memory module 320. The host processor 310 may include a memory controller 312, a DFE tuner 314, and interface circuitry 316 that may include one or more drivers 318. The host processor 310, the memory controller 312, the DFE tuner 314, the interface circuitry 316, and the one or more drivers 318 may be an embodiment of the first device 110, the controller 112, the DFE tuner 114, the interface circuitry 116, and the driver 118 of
The memory module 320 with control circuitry 322, feedback circuitry 324, one or more DFE circuits 326. Each DFE circuit 326 may include a respective input 327 and a respective output 329. The memory module 320, the control circuitry 322, the feedback circuitry 324, and the one or more DFE circuits 326 may be an embodiment of the second device 120, the control circuitry 122, the feedback circuitry 124, and the DFE circuitry 126 of
The interface circuitry 316 of the host processor 310 may be coupled to the memory module 320 by interconnect 330. In an embodiment, the host processor 310 may communicate with the memory module 320 over the interconnect 330 in accordance with a DDR memory technology or standard developed by the JEDEC such as a DDR5 memory technology or standard. The interconnect 330 may include control interconnect 332 (e.g., command and address interconnect) and feedback interconnect 334. In an embodiment, the control interconnect 332 may be coupled between the interface circuitry 316 of the host processor 310 and the control circuitry 322 of the memory module 320. In an embodiment, the control circuitry 322 may be implemented using a registered clock driver. In an embodiment, the feedback interconnect 334 may be coupled between the interface circuitry 316 of the host processor 310 and the feedback circuitry 324 of the memory module 320.
The interconnect 330 may also include x-data interconnects 336, where x is an integer number greater than zero. Each data interconnect of the x-data interconnects 336 may include a different respective channel 337. In an embodiment, the x-data interconnects 336 may be coupled between the one or more drivers 318 of the host processor 310 and the one or more DFE circuits 326 of the memory module 320. In an embodiment, a ratio between the x-data interconnects 336 and the one or more DFE circuits 326 may be equal to one. For example, the one or more DFE circuits 326 of the memory module 320 may include x-DFE circuits (e.g., one DFE circuit for each data interconnect). In an embodiment, a ratio between the x-data interconnects 336 and the one or more DFE circuits 326 may be different than one. For example, the one or more DFE circuits 326 of the memory module 320 may include x+1 or x−1 DFE circuits.
In operation, the memory controller 312 may cause the one or more drivers 318 to transmit data signals (e.g., DQ) to the memory module 320 via a respective channel 337. For example, the memory controller 312 may cause the one or more drivers 318 to transmit data signals during a write operation. Data signals transmitted by the one or more drivers 318 may correspond to the transmitted signal t(i) of
The one or more DFE circuits 326 may quantize data signals received at a respective input 327 using VREF to provide DFEout at a respective output 329. DFEout that the one or more DFE circuits 326 provided at a respective output 329 may correspond to the quantized signal {circumflex over (t)}(i) of
The DFE tuner 314 of the host processor 310 may be generally configured to implement adaptive DFE tuning of the one or more DFE circuits 326 to reduce signal fidelity loss. The DFE tuner 314 may implement adaptive DFE tuning by causing (e.g., via the memory controller 312) the one or more drivers 318 to transmit data signals with a pattern or stream of training data to the one or more DFE circuits 326 via a respective channel 337. The DFE tuner 314 may also implement adaptive DFE tuning by updating or adjusting tap weight values of the one or more DFE circuits 326 to reduce or minimize error associated with a respective channel 337. The DFE tuner 314 may cause the control circuitry 322 of the memory module 320 to provide the one or more DFE circuits 326 with updated tap weight values using instructions or signals that the interface circuitry 316 sends to over the control interconnect 332.
Data signals received by the one or more DFE circuits 326 and the data signals following DFE correction (e.g., the received signal r(i) and the filtered signal {circumflex over (r)}(i) of
In an example architecture of the DFE circuitry 126, a first input (e.g., a non-inverting input), a second input (e.g., an inverting input), and an output of the amplifier 402 may be coupled to the input 127, a source of VREF (e.g., control circuitry 122), and a first input of the first adder 404, respectively. A second input and an output of the first adder 404 may be coupled to an output of the second adder 410 and an input of the slicer 406, respectively. An output of the slicer 406 may be coupled to the output 129 and an input of the first delay element 418. First and second outputs of the first delay element 418 may be coupled to a first input of the first multiplier 420 and an input of the second delay element 422, respectively. A second input and an output of the first multiplier 420 may be coupled to a source (e.g., control circuitry 122) of a first tap weight (To) and a first input of the second adder 410, respectively. First and second outputs of the second delay element 422 may be coupled to a first input of the second multiplier 424 and an input of the third delay element 426, respectively. A second input and an output of the second multiplier 424 may be coupled to a source (e.g., control circuitry 122) of a second tap weight (T1) and a second input of the second adder 410, respectively. A first input, a second input, and an output of the third multiplier 428 may be coupled to an output of the third delay element 426, a source (e.g., control circuitry 122) of a third tap weight (TN-1), and a third input of the second adder 410, respectively. An output of the second adder 410 may be coupled to a second input of the first adder 404.
In an example operation of the DFE circuitry 126, the first input of the amplifier 402 may receive a data signal (e.g., DQ) at the input 127 during a current unit interval. In an embodiment, the data signal received at the input 127 may correspond to the received signal r(i) of
The equalization signal provided by the feedback filter 408 may be based N-data symbols of DFEout provided at the output of the slicer 406 before the current unit interval of the data signal. The N-data symbols of DFEout provided at the output of the slicer 406 may correspond to N-unit intervals of the data signal that precede the current unit interval. The N-data symbols of DFEout provided at the output of the slicer 406 before the current unit interval of the data signal may contribute to the equalization signal by operation of the N-delay elements (e.g., delay elements 418, 422, and 426) and the second adder 410. A value of a tap weight provided to a respective multiplier of each tap of the feedback filter 408 may control a weight or relative contribution of a corresponding data symbol of DFEout among the N-data symbols to the equalization signal provided by the feedback filter 408. For example, increasing the value of the tap weight may increase the weight or relative contribution of the corresponding data symbol of DFEout to the equalization signal provided by the feedback filter 408. As another example, decreasing the value of the tap weight may decrease the weight or relative contribution of the corresponding data symbol of DFEout to the equalization signal provided by the feedback filter 408.
The output of the slicer 406 may provide a data symbol of DFEout for the current unit interval of the data signal based on the corrected sample signal provided at the output of the first adder 404 for the current unit interval. For example, the slicer 406 may be configured to provide the data symbol of DFEout for the current unit interval of the data signal by quantizing the corrected sample signal provided at the output of the first adder 404 for the current unit interval. The data symbol of DFEout at the output of the slicer 406 for the current unit interval of the data signal may be provided to the input of the first delay element 418. The data symbol of DFEout provided at the output of the slicer 406 for the current unit interval of the data signal may also be provided at the output 129 of the DFE circuitry 126 for further processing (e.g., downstream processing).
As described above with reference to
The DFE tuner 114 may determine updated tap weight values of the DFE circuitry 126 to reduce or minimize the measured error associated with the channel 137. For example, the DFE tuner 114 may provide the data signals with the training data and/or the feedback signals that the feedback circuitry 124 provides based on DFEOUT at the output 129 of the DFE circuitry 126 as input to an optimization process such as stochastic gradient descent optimization process. The optimization process may update or adjust each tap weight value to improve signal integrity or reduce error as measured by one or more of the data signals with the training data transmitted by the driver 118 and/or the feedback signals provided by the feedback circuitry 124. In an embodiment, the optimization process of the DFE tuner 114 may be implemented using one or more of software (e.g., firmware) executing on the first device 110 and hardware (e.g., register-transfer level logic implemented in a programmable fabric and/or hardware circuitry) of the first device 110.
In an embodiment, a DFE tuner (e.g., the DFE tuner 114) may determine updated values for one or more tap weights of DFE circuitry (e.g., the DFE circuitry 126) according to:
p
K(i+1)=pk(i)+μ(i)Ak(i) (1)
where k denotes a tap weight index, i denotes a symbol instance or index in a stream or pattern of data symbols of training data, pk(i) denotes a value of a tap weight for tap k of N-taps at symbol instance i to form a tap weight vector ({right arrow over (p)}), u(i) denotes an adaptive tap step size at symbol instance i, and Ak(i) denotes a value of a tap error accumulator at symbol instance i. In an embodiment, {right arrow over (p)}∈N and/or μ(i)∈. In an embodiment, an adaptive tap step size
A value of an offset or delta voltage parameter (VΔ) may control a value of μ(i). An inverse relationship may exist between the value of VΔ and the value of μ(i). For example, increasing the value of VΔ may decrease the value of μ(i). As another example, decreasing the value of VΔ may increase the value of μ(i). The value of VΔ may control the value of μ(i) to decrease proportional to an effective BER at an output of the DFE circuitry. In an embodiment, μ(i) may be determined according to:
where μ0 denotes an initial (or starting) tap step size in terms of a quantization tap step size of the DFE circuitry, and a denotes a decay rate parameter for μ(i). In an embodiment, a value of μ0 may control a convergence rate associated with adaptation of the DFE circuitry to the channel. A value of a may control a rate at which the value of VΔ may control the value of μ(i) to decrease. In an embodiment where μ(i) is determined according to equation (2), a flow operator and a vertical shift of 1 step may ensure that a value of μ(i) approaches 1 (e.g., a single quantization step) as the value of VΔ becomes sufficiently large based on the value of a.
In an embodiment, Ak(i) may be determined according to:
where e(i) represents an error or difference at symbol instance i between a transmitted signal provided to a channel and a quantized signal provided at the output of the DFE circuitry (e.g., e(i)=t(i)−{circumflex over (t)}(i)), b denotes a block size of the tap error accumulator, and q denotes a bit-error threshold for the block size of b. In an embodiment, and with reference to
sgn({circumflex over (r)}(i−k−j))=sgn({circumflex over (t)}(i−k−j)) (4)
In an embodiment where sgn({circumflex over (r)}(i−k−j)) is determined according to equation (4), Ak(i) may be determined according to equation (3) based on bits or data symbols of a transmitted data signal (e.g., t(i)) provided to a channel and corresponding bits or data symbols of a quantized signal (e.g., {circumflex over (t)}(i)) provided at the output of DFE circuitry.
One or more tap error accumulators (e.g., Ak(i)) of the DFE tuner may have respective values or magnitudes that indirectly or implicitly measure a channel BER surface. For example, respective values or magnitudes of the one or more tap error accumulators may indirectly or implicitly measure channel BER surfaces similar to the example shown by
In
The plot 500 shows that DFE tuning using the first step size (e.g., a large step size), as represented by the line 510, may be unable to convergence and its stability may be subject to noise (e.g., Gaussian gradient noise). The plot 500 also shows that DFE tuning using the second step size (e.g., a small step size), as represented by the line 512, may experience longer convergence times related to wandering from gradient noise. The plot 500 further shows that the DFE tuning using the adaptive step size that decreases over time, as represented by the line 514, may provide convergence that is both accurate and balanced with step directions being unimpacted by gradient noise.
A comparison between
Convergence rates may decrease, as channel performance improves (e.g., as a data eye opens), inasmuch as less error information (e.g., quantization errors) is generally available for adaptation as a performance metric (e.g., BER) of DFE circuitry approaches a target performance metric (e.g., a target BER). Some DFE architectures may further limit availability of error information. For example, sources of error information in the system 300 of
Line 13 of the pseudocode 800 includes a loop that transmits a number (e.g., the error accumulator block size or b) bits or data symbols over a channel at a first reference voltage (e.g., Vo+VΔ) of an oscillating reference voltage and at a second reference voltage (e.g., Vo−VΔ) of the oscillating reference voltage. For example, the DFE tuner 314 of
Separation between the first reference voltage (e.g., Vo+VΔ) and the second reference voltage (e.g., Vo−VΔ) with respect to opposing edges of a data eye may render tracking bit error signs impractical or inefficient. For example, as described above with reference to
The pseudocode 800 may continue to perform adaptive DFE tuning of the DFE circuitry until one or more exit conditions (e.g., a heuristic exit condition) at line 29 are satisfied. In an embodiment, the one or more exit conditions at line 29 may include a defined runtime duration (e.g., an upper-bound of runtime). Adaptive DFE tuning implemented by the pseudocode 800 may be runtime deterministic when the one or more exit conditions include a defined runtime duration. In some instances, adaptive DFE tuning implemented by the pseudocode 800 may terminate prematurely when the one or more exit conditions include a defined runtime duration. For example, the adaptive DFE tuning may terminate when an accuracy of at least one tap weight value of the DFE circuitry is less than optimal.
In an embodiment, the one or more exit conditions at line 29 may include a deviation threshold (e.g., a lower-bound of deviation) for the tap weight parameter vector (e.g., taps[N]). For example, adaptive DFE tuning implemented by the pseudocode 800 may evaluate deviation of at least one tap weight parameter of the tap weight parameter vector over an observation window (e.g., a defined time period and/or a defined number of tap weight updates). In this example, adaptive DFE tuning implemented by the pseudocode 800 may terminate when the deviation of the at least one tap weight parameter does not exceed the deviation threshold over the observation window, such as when there is a net zero change in the at least one tap weight parameter over the observation window. In an embodiment, the adaptive DFE tuning implemented by the pseudocode 800 may evaluate the deviation by comparing a current value of the at least one tap weight parameter with preceding values over the observation window. In an embodiment, a value of the at least one tap weight parameter over the observation window may be averaged to update that tap weight parameter when the deviation does not exceed the deviation threshold.
In an embodiment, deviation or a rate of change in a tap weight parameter over an observation window may be referred to as tap velocity. A tap weight parameter may have zero tap velocity when there is a net zero change or deviation in the tap weight parameter over an observation window; otherwise, the tap weight parameter may have a non-zero tap velocity. DFE tuning operation with zero tap velocity may appear physically as random, Brownian motion at lower values of BER. In
The simulation environment implementation represented by convergence plot 902 included a memory model, a DFE model, and a channel model to provide cycle-accurate simulation granularity. In an embodiment, the memory model and/or the DFE model may be a DDR5 compliant model. The DFE model was implemented at a receiver of the memory model in accordance with the DFE architecture implemented by the system 300 of
The hardware environment implementation represented by convergence plot 904 included an FPGA (e.g., an INTEL® AGILEX™ 7 M-Series FPGA by INTEL CORPORATION of Santa Clara, California) coupled to a memory module (e.g., a single rank 16 GB 4×8 DDR5 Unbuffered Dual In-Line Memory Module (UDIMM) memory) by a silicon interposer. Convergence plot 904 includes line 916 that corresponds to an offset voltage parameter (e.g., VΔ) of the hardware environment implementation. Convergence plot 904 also includes lines 918, 920, 922, and 924 that correspond to first, second, third, and fourth tap weight parameters of the hardware environment implementation, respectively.
Tap weights of the DFE circuitry corresponding to the shmoo plot 1004 were set with zero forcing (ZF) criterion-based DFE tuning from channel pulse response measurements. Tap weights of the DFE circuitry corresponding to the shmoo plot 1006 were set with adaptive DFE tuning, in accordance with aspects of the present disclosure. A comparison between the shmoo plot 1004 and the shmoo plot 1006 illustrates that receiver circuit performance with adaptive DFE tuning may be the same or substantially similar to receiver circuit performance with ZF criterion-based DFE tuning. For example, the height dimension (e.g., about 225.5 millivolts (mV)) of the data eye shown by the shmoo plot 1006 may be the same or substantially similar to the height dimension (e.g., about 225.5 mV) of the data eye shown by the shmoo plot 1004. As another example, the width dimension (e.g., about 0.23 UI) of the data eye shown by the shmoo plot 1006 may be the same or substantially similar to the width dimension (e.g., about 0.23 UI) of the data eye shown by the shmoo plot 1004.
With the foregoing in mind, the system 100 may be a component included in a data processing system, such as a data processing system 1100, shown in
The memory and/or storage circuitry 1104 may include random access memory (RAM), read-only memory (ROM), one or more hard drives, flash memory, or the like. In an embodiment, the memory and/or storage circuitry 1104 may include the memory module 320. The memory and/or storage circuitry 1104 may hold data to be processed by the data processing system 1100. In some cases, the memory and/or storage circuitry 1104 may also store configuration programs (e.g., bitstreams, mapping function) for programming the system 100. The network interface 1106 may allow the data processing system 1100 to communicate with other electronic devices. The data processing system 1100 may include several different packages or may be contained within a single package on a single package substrate. For example, components of the data processing system 1100 may be located on several different packages at one location (e.g., a data center) or multiple locations. For instance, components of the data processing system 1100 may be located in separate geographic locations or areas, such as cities, states, or countries. The data processing system 1100 may be part of a data center that processes a variety of different requests. For instance, the data processing system 1100 may receive a data processing request via the network interface 1106 to perform encryption, decryption, machine learning, video processing, voice recognition, image recognition, data compression, database search ranking, bioinformatics, network security pattern identification, spatial navigation, digital signal processing, or other specialized tasks.
While the embodiments set forth in the present disclosure may be susceptible to various modifications and alternative forms, specific embodiments have been shown by way of example in the drawings and have been described in detail herein. However, it should be understood that the disclosure is not intended to be limited to the particular forms disclosed. The disclosure is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the disclosure as defined by the following appended claims.
The techniques presented and claimed herein are referenced and applied to material objects and concrete examples of a practical nature that demonstrably improve the present technical field and, as such, are not abstract, intangible or purely theoretical. Further, if any claims appended to the end of this specification contain one or more elements designated as “means for [perform]ing [a function] . . . ” or “step for [perform]ing [a function] . . . ”, it is intended that such elements are to be interpreted under 35 U.S.C. 112(f). However, for any claims containing elements designated in any other manner, it is intended that such elements are not to be interpreted under 35 U.S.C. 112(f).
EXAMPLE EMBODIMENT 1. An integrated circuit including interface circuitry coupled to decision feedback equalization (DFE) circuitry by data interconnect. The integrated circuit also includes a DFE tuner to control adaptation of the DFE circuitry using an oscillating reference voltage provided to the DFE circuitry, where the interface circuitry is coupled between the DFE tuner and the DFE circuitry.
EXAMPLE EMBODIMENT 2. The device of example embodiment 1, where the DFE tuner is to cause the interface circuitry to transmit training data at first and second voltages of the oscillating reference voltage, and where a quantization threshold voltage is between the first and second voltages.
EXAMPLE EMBODIMENT 3. The device of example embodiment 1, where the DFE tuner is to control adaptation of the DFE circuitry by increasing an amplitude of the oscillating reference voltage as a performance metric of the DFE circuitry approaches a target performance metric.
EXAMPLE EMBODIMENT 4. The device of example embodiment 1, where the DFE tuner is to induce quantization errors at the DFE circuitry by increasing an amplitude of the oscillating reference voltage.
EXAMPLE EMBODIMENT 5. The device of example embodiment 1, where the DFE tuner is to control adaptation of the DFE circuitry by updating a tap weight of the DFE circuitry with an adaptive tap step size that varies over time.
EXAMPLE EMBODIMENT 6. The device of example embodiment 5, where the DFE tuner is to control a magnitude of the adaptive tap step size based on an amplitude of the oscillating reference voltage.
EXAMPLE EMBODIMENT 7. The device of example embodiment 5, where the DFE tuner is to control a magnitude of the adaptive tap step size based on a decay rate parameter.
EXAMPLE EMBODIMENT 8. The device of example embodiment 5, where an initial tap step size of the adaptive tap step size controls a convergence rate associated with adaptation of the DFE circuitry.
EXAMPLE EMBODIMENT 9. The device of example embodiment 1, where the DFE tuner is to cease adaptation of the DFE circuitry based on a tap velocity threshold.
EXAMPLE EMBODIMENT 10. The device of example embodiment 1, where the DFE tuner is to trigger a tap update for the DFE circuitry based on a quantization error threshold and an accumulator error signal indicative of multiple quantization errors detected.
EXAMPLE EMBODIMENT 11. The device of example embodiment 1, where the DFE tuner is to filter quantization errors induced by noise based on an error accumulator block size, a quantization error threshold, or a combination thereof.
EXAMPLE EMBODIMENT 12. The device of example embodiment 1, where a memory module comprising the DFE circuitry is compatible with a double data rate (DDR) standard.
EXAMPLE EMBODIMENT 13. The device of example embodiment 1, where the oscillating reference voltage is centered at a quantization threshold voltage of a data signal.
EXAMPLE EMBODIMENT 14. A device that includes decision feedback equalization (DFE) circuitry coupled to interface circuitry by data interconnect, where the DFE circuitry is to equalize a data signal received over the data interconnect. The device also includes control circuitry coupled to a DFE tuner by a control interconnect that is separate from the data interconnect, where the control circuitry is to receive a control signal from the DFE tuner over the control interconnect and to provide an oscillating reference voltage to the DFE circuitry based on the control signal.
EXAMPLE EMBODIMENT 15. The device of example embodiment 14, that also includes feedback circuitry coupled to the interface circuitry by feedback interconnect that is separate from the data interconnect, where the feedback circuitry is to receive a quantized signal from the DFE circuitry based on the data signal and is to provide the quantized signal to the interface circuitry over the feedback interconnect.
EXAMPLE EMBODIMENT 16. The device of example embodiment 15, where the quantized signal causes the DFE tuner to send an updated control signal to the control circuitry over the control interconnect, and the control circuitry is to increase an amplitude of the oscillating reference voltage provided to the DFE circuitry based on the updated control signal.
EXAMPLE EMBODIMENT 17. The device of example embodiment 14, where the interface circuitry is coupled between the DFE circuitry and a memory controller of a host processor.
EXAMPLE EMBODIMENT 18. A system that includes a memory module and a host processor. The memory module includes decision feedback equalization (DFE) circuitry coupled to data interconnect. The host processor includes a DFE tuner and interface circuitry, where the DFE tuner is to control adaptation of the DFE circuitry using an oscillating reference voltage provided to the DFE circuitry, and the interface circuitry is coupled between the DFE tuner and the data interconnect.
EXAMPLE EMBODIMENT 19. The system of example embodiment 18, where the memory module includes a registered clock driver (RCD).
EXAMPLE EMBODIMENT 20. The system of example embodiment 18, where the host processor is to communicate with the memory module over the data interconnect in accordance with a double data rate version 5 (DDR5) memory technology or standard.