This disclosure relates generally to multimedia content analysis and, more particularly, to a method, a device and/or a system of iteratively scanning equalization coefficients to optimize signal quality in a data communication link.
Optimizing signal quality in a data communication link (e.g., a serial communication link compatible with a Peripheral Component Interface Express (PCIe)-based protocol) may involve equalization. Equalization may involve distorting a data signal through a transformation corresponding to an inverse of a response of the channel for communication. Once the equalization coefficients are found, a map thereof may be scanned to determine the set of coefficients for which the signal quality in the data communication link is optimum (e.g., a maximum). However, a time taken for the scanning may exceed a threshold specified, thereby leading to an optimal set of coefficients not being determined accurately.
Disclosed are a method, a device and/or a system of iteratively scanning equalization coefficients to optimize signal quality in a data communication link.
In one aspect, a method includes iteratively scanning, through a processor, at least a portion of a map of equalization coefficients related to channel equalization in a data communication link based on an ordinal integer step size S>1 for N (N>1) different sequences thereof to determine optimal points therein for which a signal quality in the data communication link is optimal. The method also includes performing, through the processor, a fine search for optimal equalization coefficients based on the determined optimal points.
In another aspect, a system includes a transmitter device, a receiver device, and a data communication link to serve as an information path between the transmitter device and the receiver device. The transmitter device and/or the receiver device include a processor communicatively coupled to a memory, with the processor being configured to execute instructions to iteratively scan at least a portion of a map of equalization coefficients related to channel equalization in the data communication link based on an ordinal integer step size S>1 for N (N>1) different sequences thereof to determine optimal points therein for which a signal quality in the data communication link is optimal. The processor is also configured to execute instructions to perform a fine search for optimal equalization coefficients based on the determined optimal points.
In yet another aspect, a device includes a memory and a processor communicatively coupled to the memory. The processor is configured to execute instructions to iteratively scan at least a portion of a map of equalization coefficients related to channel equalization in a data communication link based on an ordinal integer step size S>1 for N (N>1) different sequences thereof to determine optimal points therein for which a signal quality in the data communication link is optimal. The processor is also configured to execute instructions to perform a fine search for optimal equalization coefficients based on the determined optimal points.
The methods and systems disclosed herein may be implemented in any means for achieving various aspects, and may be executed in a form of a machine-readable medium embodying a set of instructions that, when executed by a machine, cause the machine to perform any of the operations disclosed herein. Other features will be apparent from the accompanying drawings and from the detailed description that follows.
The embodiments of this invention are illustrated by way of example and not limitation in the figures of the accompanying drawings, in which like references indicate similar elements and in which:
Other features of the present embodiments will be apparent from the accompanying drawings and from the detailed description that follows.
Example embodiments, as described below, may be used to provide a method, a system and/or a device of iteratively scanning equalization coefficients to optimize signal quality in a data communication link. Although the present embodiments have been described with reference to specific example embodiments, it will be evident that various modifications and changes may be made to these embodiments without departing from the broader spirit and scope of the various embodiments.
In one or more embodiments, channel 106 may be a transmission path between device 102 and device 104; for example, information may be transmitted in serial.
In an alternate implementation, device 102 and device 104 may be part of the same computing system/device. Such variations are within the scope of the exemplary embodiments discussed herein. Device 102 may serve as a transmitter and device 104 may serve as receiver in
The equalization discussed above may involve distorting a data signal through a transformation corresponding to an inverse of a response of channel 106. In one or more embodiments, equalization may be employed at device 102 and/or device 104.
Equalization may involve decision making. The data bits preceding a current data bit under decision may influence a signal value of the current data bit. The aforementioned undesired influence may be termed postcursor interference. Also, the signal value of the current data bit may be influenced by succeeding data bits. The aforementioned undesired influence may be termed precursor influence. Thus, in one or more embodiments, necessary corrections may be incorporated through equalizer 132 and/or equalizer 134. The aforementioned corrections may be generated as precursors and postcursors. Processor 112/114 may also be employed in conjunction with equalizer 132/134 for the generation of precursors and postcursors.
In one or more embodiments, there may be no set search portions of channel 106 where optimal coefficient pairs lie. Therefore, in one or more embodiments, all points on map 200 may need to be tested if possible. In an example implementation, each point may take approximately 200 μs to be evaluated, while the specification related to the communication protocol may merely provide for an allotted time of 24 ms for the entire search process. The aforementioned 24 ms total search time may be divided into two parts—one for a coarse search (say, ˜22 ms) and one for a fine search (say, ˜2 ms). The coarse search may involve a coarse searching of points of map 200 to determine a first region where the optimal coefficients are most likely to be found. The fine search may then involve exploring the region/space around the first region with the aim of successively refining better points to arrive at the optimal point(s).
In one or more embodiments, if search algorithm 162/164 related to coarse search process 300 runs out of time before the N sequences are completed, the best point found thus far may be stored in memory 122/124 and utilized during the fine search process. In one or more embodiments, the fine search process may thus start from a point that is likely to be close to the optimal point of map 200.
To summarize, in one or more embodiments, by breaking coarse search process 300 into N sequences, search algorithm 162/164 may be able to cover a wide area of map 200 during the early phase of the searching, and then cover the entire map 200 if time permits. In one or more embodiments, if system 100 involves a long channel 106 (e.g., systems involving servers), channel 106 may be extremely noisy; the subset of acceptable coefficients may be extremely small. Here, in one or more embodiments, search algorithm 162/164 implementing coarse search process 300 may quickly identify a region of map 200 where close-to-optimal points are present, thereby enabling the fine search process to start at a good point if time runs out.
In one or more embodiments, operation 512 may involve checking as to whether all iterative walks have been performed. In one or more embodiments, if no, control may once again pass to operation 502.
It should be noted that exemplary embodiments are not limited to covering the entire area of map 200. Covering a portion of map 200 based on the iterative walking discussed above is also within the scope of the exemplary embodiments. The precursors 202 and postcursors 204 may be generated through equalizer 132/134 (e.g., hardware and/or software) in optional conjunction with processor 112/114. It should also be noted that processor 112/114 may be part of equalizer 132/134 or at least associated therewith. Further, instructions associated with the abovementioned coarse search process 300 may be implemented in firmware and stored in memory 122/124.
Last but not the least, predictions (rough or accurate) of optimal points through software (e.g., executing on processor 112/114) may be combined with full or partial predictions through coarse search process 300 (and the later fine search process) to obtain/refine accurate results. All such variations are within the scope of the exemplary embodiments discussed herein.
Although the present embodiments have been described with reference to specific example embodiments, it will be evident that various modifications and changes may be made to these embodiments without departing from the broader spirit and scope of the various embodiments. For example, the various devices and modules described herein may be enabled and operated using hardware circuitry (e.g., CMOS based logic circuitry), firmware, software or any combination of hardware, firmware, and software (e.g., embodied in a machine readable medium). For example, the various electrical structure and methods may be embodied using transistors, logic gates, and electrical circuits (e.g., application specific integrated (ASIC) circuitry and/or Digital Signal Processor (DSP) circuitry).
In addition, it will be appreciated that the various operations, processes, and methods disclosed herein may be embodied in a machine-readable medium and/or a machine accessible medium compatible with a data processing system (e.g., device 102, device 104). Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense.