One or more embodiments relate to modulation. More particularly, one or more of the embodiments relates to a method and apparatus for grey encoding modulated data.
Various forms of modulation have long been used to encode data with greater efficiency so that more data can be transmitted during a particular time period over a transmission medium. Combinations of various modulation techniques, such as, pulse width modulation, amplitude modulation and rise time modulation have been employed to improve the encoding density of modulation schemes. See, for example, U.S. Pat. No. 6,697,420 issued to Simon, entitled “Symbol-Based Signaling for an Electromagnetically-Coupled Bus System,” issued Feb. 24, 2004. However, such schemes often require pre-emphasis and channel equalization, which increases the cost and complexity of the system. Moreover, in any event, it remains desirable to improve coding density to allow for even higher bit rates.
The various embodiments of the present embodiments described herein are illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings and in which:
In the following description, numerous specific details such as logic implementations, sizes and names of signals and buses, types and interrelationships of system components, and logic partitioning/integration choices are set forth to provide a more thorough understanding. It will be appreciated, however, by one skilled in the art that the embodiments described herein may be practiced without such specific details. In other instances, control structures and gate level circuits have not been shown in detail to avoid obscuring the embodiments described herein. Those of ordinary skill in the art, with the included descriptions, will be able to implement appropriate logic circuits without undue experimentation.
In the following description, certain terminology is used to describe features of the embodiments described herein. For example, the term “logic” is representative of hardware and/or software configured to perform one or more functions. For instance, examples of “hardware” include, but are not limited or restricted to, an integrated circuit, a finite state machine or even combinatorial logic. The integrated circuit may take the form of a processor such as a microprocessor, application specific integrated circuit, a digital signal processor, a micro-controller, or the like.
The digital bandwidth (BW) of a communications channel may be represented as:
BW =FsNs (1)
Here, Fs is the frequency at which symbols are transmitted on a channel and Ns is the number of bits transmitted per symbol per clock cycle (“symbol density”). Channel refers to a basic unit of communication, for example, a board trace for a single ended signaling or the two complementary traces for differential signaling. Modulation techniques have been employed in some digital systems to encode multiple bits in each transmitted symbol, thereby increasing Ns. As described herein, the term “digital symbol” refers to a timing sequence of symbol alphabet used to encode input data. In other words, a digital symbol represents plural bits of data encoded according to a symbol alphabet. As described herein, the term “symbol waveform” refers to a signal waveform version of each digital symbol within a symbol alphabet and may alternately be referred to as a “transmitted symbol.”
In the following discussion a “pulse” refers to a symbol waveform having both a leading (rising) edge and a trailing (falling) edge. For pulse-based signaling, information may be encoded, for example, in edge positions and signal amplitudes between edge pairs. The embodiments described herein are not limited to pulse-based signaling, however, other signal waveforms, such as edge-based signaling and various types of amplitude, phase or frequency-modulated periodic waveforms may be implemented as well.
In accordance with one embodiment,
As shown in
Accordingly, in one embodiment, a symbol alphabet for encoding phase positions in an edge position modulation system is described where the symbol alphabet is defined using single distance digital symbol edge positions such that transmitted symbol waveforms having adjacent edge positions represent adjacent digital symbols. In one embodiment, adjacent digital symbols represent bit sequences that differ by a single bit, for example, as shown in
Representatively, encode block 210 receives plural data bits 202 (202-1, . . . , 202-N), which may be encoded into time values 212. As described herein, these time values represent digital symbols of a symbol alphabet, which select a symbol waveform using logic gate, or multiplexor (MUX) 230. As illustrated, clock signal (CLK) 204 is provided to MUX 230. CLK signal 204 is also passed through delay blocks 220-1, 220-2 and 220-3, for example, to provide symbol waveforms 204, 222, 224 and 226 with phase positions, as shown in
In accordance with one embodiment, symbol waveform 224 includes a third phase position, to encode bit pattern 11. Hence, if noise causes a phase position to be incorrectly decoded by a demodulator, a single bit error is incurred, as opposed to the multiple bit error incurred by conventional encoding of edge position modulated data, as shown in
Referring again to
As described herein, PM and PWM are examples of time-to-domain modulation schemes. Each time-to-domain modulation scheme encodes one or more bits in the time(s) at which one or more events, such as a rising edge or a rising edge followed by a falling edge, occur in the symbol period. That is, different bit states are represented by different events or differences between event times in the symbol period. A bit interval associated with each time-to-main modulation scheme represents a minimum amount of time necessary to reliably distinguish between the different bit states of the scheme. The modulation scheme selected for a particular system, the number of bits represented by a selected modulation scheme is determined, in part, by the bit intervals of candidate modulation schemes and time available to accommodate them, i.e., the symbol period.
Calibration circuit 520 manages various parameters that may impact the performance of interface 500. In one embodiment, calibration circuit 520 may be used to adjust termination resistances, amplifier gains, or signal delays in interface 500, responsive to variations in process, temperature, voltage and the like. In one embodiment, interface 500 is suitable for handling waveforms in which data bits are encoded using phase, pulse width and amplitude modulation based on, for example, a signal, as shown in
For the disclosed embodiment of transceiver 600, transmitter 540 includes a phase modulator 630, a pulse width modulator 620, an amplitude modulator 610 and an output buffer 605. Output buffer 605 provides inverted and non-inverted outputs to pad 502 and 504, respectively, to support differential signaling. A clock signal (CLK_PULSE) 506 is provided to phase modulator 610 to synchronize transceiver 600 with the system clock. The disclosed configuration of modulators 610, 620 and 630 is provided only for purposes of illustration. The corresponding modulation schemes may be applied in a different order or two or more schemes may be applied in parallel.
The disclosed embodiment of receiver 530 includes an amplifier 650, an amplitude demodulator 660, a phase demodulator 670 and a pulse width demodulator 680. The order of demodulators 660, 670 and 680 is provided for illustration and is not required to illustrate the described embodiments. Representatively, phase demodulator 670 detects phase positions in received symbol waveforms using received clock (clk) 509. For example, various demodulators may operate on a signal in parallel or in an order different from that indicated.
In one embodiment, symbol waveforms, such as leading edge symbol waveforms 705 and trailing edge symbol waveforms 710 are identified as symbol waveforms having adjacent transitions when the waveforms have a matching edge position at either a leading edge or a trailing edge and an adjacent edge position at a leading edge or trailing edge. For example, a symbol waveform composed of leading edge waveform 725 and trailing edge waveform 745 is adjacent to a symbol waveform composed of leading edge symbol waveform 730 and trailing edge symbol waveform 745. Likewise, the symbol waveform composed of leading edge symbol waveform 725 and trailing edge symbol waveform 750 is adjacent to the symbol waveform composed of leading edge symbol waveform 725 and trailing edge symbol waveform 745. Conversely, a symbol waveform composed of leading edge symbol waveform 730 and trailing edge symbol waveform 750 is not adjacent to a symbol waveform composed of leading edge symbol waveform 725 and trailing edge symbol waveform 745.
Representatively, transmitter 800 includes leading edge phase modulator 830 and trailing edge phase modulator 820. Representatively, encode block 810 may convert input data stream 802 into time position values (812 and 814). These time position values 814 may be used to select a leading edge, for symbol waveform 852. Likewise, the time values 812 may be used to select a phase position for a trailing edge of symbol waveform 852. Representatively, transmitter 800 modulates a clock signal (CLK_PULSE) to encode four outbound bits per symbol. Two bits are encoded in the symbol's leading edge phase and two bits are encoded in the symbol's trailing edge phase. In the embodiment illustrated, phase modulator 830 includes multiplexor (MUX) 840 and delay modules 832, 834 and 836. MUX 840 receives a delayed version of signal 804 as symbol waveforms.
In one embodiment, the control input of MUX 840 transmits one of waveforms 804, 833, 835 or 837 responsive to the value of phase bit 814. In general, a phase modulator 830 that encodes p-phase bits may select one of 2P versions of CLK_PULSE 804 subject to different delays. For the disclosed embodiment, the output of phase modulator 830 indicates the leading edge of symbol waveform 852 and serves as a timing reference for generation of the trailing edge by phase modulator 820. A delay-matching block (DMB) 842 is provided to offset circuit delays in phase modulator 820 (such as the delay of MUX 829), which might detrimentally impact the width of a symbol waveform 852. The output of DMB 842 is a start signal (START), which is provided to edge-to-pulse generator (EPG) 850.
Pulse modulator 820 includes DMs 821, 823, 825, 827 and MUX 829 to generate a second edge that is delayed relative to the first edge by an amount indicated by the phase bits 812. The delayed second edge forms a stop signal (_STOP) 846 that is input to EPG 850. For the disclosed embodiment of transmitter 800, two bits 812 applied to the control input of MUX 829 select one of four different delays for the second edge, which is provided at the output of MUX 829. Inputs 00, 01, 11 and 10 of MUX 829 sample the input signal, i.e., the first edge, following its passage through DMs 821, 823, 825 and 827, respectively. If the phase bits 812 indicate input 11, for example, the trailing edge output by MUX 829 is delayed by DM 821+DM 823+DM 825 relative to the leading edge.
In one embodiment, EPG 850 uses START 846 and _STOP 846 signals to generate symbol waveform 852 (pulse) having a leading edge and a trailing edge according to bits 812 and 814, respectively, provided to transmitter 800 for a given symbol period. On receipt of signal START 844, EPG 850 initiates a symbol pulse, which it terminates on receipt of signal 846 STOP to generate output symbol waveform 852. Accordingly, based on the values of leading edge phase bits 814 and trailing edge phase bits 812, output symbol waveform 852 is possible having any combination of leading edge waveforms 705 and trailing edge waveforms 710 of
For a given symbol pulse, START may be deasserted (negative-going edge) before or after the corresponding _STOP is asserted. For example, the disclosed embodiment of transmitter 800 is timed with CLK_PULSE, and higher symbol densities may be obtained by employing narrow CLK_PULSEs. The widths of STARTS and _STOP are thus a function of the CLK_PULSE width, while the separation between START and _STOP is a function of the width bits. The different possible relative arrivals of the end of START and beginning of _STOP may adversely impact the modulation of symbol 852 by the phase bits 812. Specifically, transistor 858 may be on or off when a negative-going edge of _STOP terminates the symbol pulse. Node N may thus either be exposed to the parasitic capacitances at node P through transistor 854, or not. This variability may affect the delay of trailing symbol edge through EPG 850 in an unintended way.
The chipset 810 is also coupled to main memory 110, which also includes transceiver 500 for grey encoding modulated data. Memory controller 912 includes transceiver 500 to provide an interface with main memory 830 via memory bus 820. In one embodiment, BER is reduced by a factor or to when transceiver 500 modulate data according to edge position with symbol waveforms having neighboring edges representing bit sequences that differ by one bit. In one embodiment, main memory 830 is a volatile memory including, but not limited to, random access memory (RAM), static RAM (SRAM), double data rate (DDR), synchronous DRAM (SDRAM), rambus data RAM (RDRAM), or the like. In addition, hard disk drive devices HDD, as well as one or more input/output (I/O) devices may also couple to chipset 910. In one embodiment, FSB 904 is compatible with a Pentium® 4 front-side bus and is a pipelined data bus.
In the foregoing specification the features have been described with reference to specific embodiments thereof. It will, however, be evident that various modifications and changes can be made thereto without departing from the broader spirit and scope of embodiments as set forth in the appended claims. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.
It will be appreciated that, for other embodiments, a different system configuration may be used. For example, while the system 900 includes a single CPU 902, for other embodiments, a multiprocessor system (where one or more processors may be similar in configuration and operation to the CPU 902 described above) may benefit from the grey encoding of modulated data of various embodiments. Further different type of system or different type of computer system such as, for example, a server, a workstation, a desktop computer system, a gaming system, an embedded computer system, a blade server, etc., may be used for other embodiments.
Having disclosed embodiments and the best mode, modifications and variations may be made to the disclosed embodiments while remaining within the scope of the embodiments as defined by the following claims.