Spacial derivative bus encoder and decoder

- Silicon Graphics, Inc.

A method and apparatus for providing efficient and accurate electronic data transmission of information on a data bus in the presence of noise. Data signals are received on a plurality of input lines by a spacial derivative encoder. The spacial derivative encoder encodes the signals and transmits them to a receiver having a spacial derivative decoder. The spacial derivative decoder then decodes the signals. Minimal overhead is required as for n input lines only n+1 lines are needed to transmit each of the encoded signals.

Skip to: Description  ·  Claims  · Patent History  ·  Patent History
Description
RELATED APPLICATIONS

[0001] This application is a continuation application of Ser. No. 08/971,185, filed on Nov. 17, 1997, entitled SPACIAL DERIVATIVE BUS ENCODER AND DECODER.

BACKGROUND OF THE INVENTION

[0002] 1. Field of the Invention

[0003] The present invention relates in general to methods and apparatus for electronic data transmission, and in particular to a system and method for efficiently and accurately transmitting information on a data bus in the presence of noise.

[0004] 2. Background Information

[0005] A data bus commonly consists of lines for transferring data words between devices within a computer. A data word is made up of data bits transmitted as varying voltages on the data bus lines. Noise, interference, or other events such as ground voltage shifts between transmitter and receiver alter the signal such that what is sent may not be what is received. The possibility of signal alteration, whether or not it actually occurs, creates a need for ways to improve signal integrity. Both hardware and software solutions have been considered in the development of accurate data transmission methods.

[0006] One method of improving signal integrity is to run a separate ground line between the transmitter and receiver. The ground line voltage is used as a reference voltage. The difference between the data signal received at the receiver and the ground line voltage at the receiver is used to determine the signal polarity. One problem with this method is that it is not precise—the margin of error inherent in measuring voltage levels at the receiver may either mask or exaggerate voltage level variations due to noise. In addition, since there is no signal being driven down the ground line, the ground line voltage may be affected differently by the interfering source, again potentially masking or exaggerating transmission errors. Many applications have a need, however, for highly accurate message transfer.

[0007] Another message verification method is to run a differential line for each data line. According to this method there are two lines for every channel between the transmitter and the receiver. The first line carries the signal and the second line carries the complement of that signal (for example, where the first line value is ‘1’, the second line value is ‘0’). The message being transferred is represented by the difference between the two signals. Any ground voltage shifts occurring during transmission equally affect both lines, so there is no net effect on the message because the difference between the two lines remains constant. One of the primary benefits of this method is that it requires no local reference value. The weakness is that it doubles the number of required transmission lines. With the continual push to manufacture devices with more elements and smaller overall size, there is a need to achieve a higher level of signal accuracy with minimal hardware overhead requirements.

SUMMARY OF THE INVENTION

[0008] A method is provided for electronically transmitting information on a data bus efficiently and effectively. The method of the present invention can be used in combination with a variety of operational modes, including but not limited to full duplex communications. By reducing noise generation at the transmitter and rejecting common mode noise at the receiver, the system of the present invention increases the data bandwidth on data buses.

[0009] The embodiments of the present invention are improvements over conventional systems and methods in part because fewer transmission lines are required and as a result noise generated at the transmitter circuit is reduced. Conventional differential transmission systems use 2*n lines for n bits, where the system of the invention requires only n+1 lines. In addition, power consumed by the transmitter circuit is decreased because fewer signals have to be transmitted. The reduced number of required lines allows devices employing the system and methods of the invention to maintain high quality data transmission while reducing the costs associated with manufacturing and maintaining more transmission lines. Another advantage of the present invention is that common mode noise is removed at the receiver. In one embodiment the system of the invention also compensates for crosstalk between the signals.

[0010] According to one embodiment of the invention, a method of encoding n signals is provided, using a reference voltage signal, wherein the differences between adjacent signals are determined and transmitted as n+1 encoded signals. A method of decoding m encoded signals is also provided, wherein the encoded signals are processed through an array of resistors, giving the original n signals.

[0011] Another embodiment describes a spacial derivative encoder, comprising one or more differential amplifiers, including a first and a second differential amplifier, one or more input data lines connected to the one or more differential amplifiers, a fixed reference voltage line, connected to the first and the second differential amplifier, and one or more output transmission lines connected to the one or more differential amplifiers, the number of output transmission lines equal to n+1, where n is the number of input data lines. A spacial derivative decoder is also provided, comprising one or more input transmission lines, one or more differential amplifiers, the number of differential amplifiers equal to m−1, where m is the number of encoded input transmission lines, a resistor network electrically located between the one or more input transmission lines and the one or more differential amplifiers, and one or more output data lines connected to the one ore more differential amplifiers, the number of output data lines equal to the number of differential amplifiers. In an additional embodiment the resistor network further comprises an array of resistors for averaging signals received on the one or more input transmission lines. Yet another embodiment provides a communications system, comprising a spacial derivative encoder and a spacial derivative decoder.

[0012] In another embodiment, signals are processed through a time-domain encoding scheme prior to differential encoding. This allows the system to account for the actual variation of a signal voltage, thereby compensating for signal dispersion and reducing base line wander due to frequency-dependent attenuation on lines. Time-domain encoding also reduces inter-symbol interference resulting from reflections or dispersion on the signal lines.

BRIEF DESCRIPTION OF THE DRAWINGS

[0013] FIG. 1 is a block diagram of a transmitter transferring encoded data to a receiver over a signal line.

[0014] FIG. 2 is a schematic drawing of a spacial derivative encoder/driver 100 comprising two input data lines according to one embodiment of the present invention.

[0015] FIG. 3 is a schematic drawing of a spacial derivative encoder/driver 100 comprising four input data lines according to another embodiment of the present invention.

[0016] FIG. 4 is a schematic drawing of a spacial derivative decoder 200 comprising three input data lines according to one embodiment of the present invention.

[0017] FIG. 5 is a schematic drawing of a spacial derivative decoder 200 comprising five input data lines according to another embodiment of the present invention.

[0018] FIG. 6 is a representation of oscilloscope displays of an input data signal and a reference voltage signal in their original form, after they have been encoded, and after they have been decoded.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0019] In the following Detailed Description of the Preferred Embodiments, reference is made to the accompanying drawings which form a part hereof, and in which is shown by way of illustration specific embodiments in which the invention may be practiced. It is to be understood that other embodiments may be utilized and structural changes may be made without departing from the scope of the present invention.

[0020] FIG. 1 is a block diagram of the basic process involved in transmitting data across a network. Input data is transferred to transmitter 100 from where it is then transmitted over one or more signal lines 130.0-130.4 to receiver 200. Receiver 200 then transfers the data out. An accurate data transmission system outputs data from receiver 200 which matches that input into transmitter 100. In one embodiment of the present invention data verification is accomplished through encoding the input data at transmitter 100 and then transmitting the encoded data to receiver 200 where it is decoded and verified before being transferred out.

[0021] FIG. 2 is a schematic drawing of a transmitter 100 comprising a spacial derivative encoder/driver according to one embodiment of the present invention. According to the embodiment shown, inputs to the encoder 100 include two fixed reference voltage lines 110, 112, and two input data lines 120.0-120.1. Data inputs are processed through differential amplifiers 150.0-150.2. A differential amplifier is a dual-input amplifier that amplifies the difference between its two signal inputs. A differential amplifier eliminates or greatly minimizes many common sources of error. For example, drift errors tend to cancel out in a differential architecture. In addition, a differential amplifier is able to reject common-mode signals (that is, unwanted signals present at both of the amplifier inputs or other common points).

[0022] Amplifiers 150.0-150.2 have a differential output on transmission lines 130.0-130.2. To accomplish spacial encoding, the system drives each output transmission line 130 with the difference between the signals on adjacent input data lines 120. In the case of the first and last input data lines 120.0, 120.1, the respective amplifiers compare the input data with input from fixed reference voltage lines 110, 112 and adjacent input data lines 120.1, 120.0, respectively. Those skilled in the art will recognize that neither the spirit nor scope of the invention is exceeded by configurations incorporating a different number of input data lines. The number of input data lines that can be encoded in this way can be any number greater than zero. FIG. 3 is another example, and illustrates the spacial derivative encoder of the present invention encoding four input data lines 120.0-120.3. The first differential amplifier 150.0 compares reference voltage line 110 and input data line 120.0, giving output on output transmission line 130.0. The second differential amplifier 150.1 compares input data line 120.0 and input data line 120.1, giving output on output transmission line 130.1. The third differential amplifier 150.2 compares input data line 120.1 and input data line 120.2, giving output on output transmission line 130.2. The fourth differential amplifier 150.3 compares input data line 120.2 and input data line 120.3, giving output on output transmission line 130.3. And the fifth differential amplifier 150.4 compares reference voltage line 112 and input data line 120.3, giving output on output transmission line 130.4.

[0023] If the number of input data lines equals one, then this scheme becomes equivalent to a differential transmission line. Any number of data input lines greater than one increases the number of transmission lines by the same number. The number of required transmission lines can be determined by the simple formula n+1, where n is the number of input lines. As an example, four input data lines require five transmission lines, and eight input data lines require nine transmission lines. This provides significant savings in the number of transmission lines over conventional differential transmission, which requires two transmission lines for every one input data line (the conventional number of required transmission lines=n*2, where n is the number of input lines). The reduced number of transmission lines provides other benefits as well. Fewer lines means less power is consumed by the transmitter circuit. Also, since the transmitter is issuing fewer signals, the noise level at the transmitter is reduced.

[0024] FIG. 4 is a schematic drawing of a receiver comprising a spacial derivative decoder 200 according to one embodiment of the present invention. To decode the encoded signals received on data input lines 130.0-130.2 the following calculation is used for i=0 to (n−1), where n is the number of data input lines, Output(i) is the data output line reference, and IN(i) is the transmission line reference:

Output(i)=average(IN(0) through IN(i))−average(IN(i+1) through IN(n))

[0025] One skilled in the art will recognize that any number of input lines greater than one can be used without exceeding the scope or spirit of the invention. Differential output transmitted by encoder 100 is received by decoder 200 on transmission lines 130.0-130.2. Resistor network 400 comprises a pattern of resistors RA0-RC1 and averages the signals received on transmission lines 130.0-130.2. In the embodiment shown resistor network 400 comprises two resistors for every input data line. It is to be recognized that FIGS. 4 and 5 are exemplary only and that resistor network 400 is flexible enough to accommodate any number of input data lines.

[0026] As an example of the operation of the spacial derivative encoder shown in FIG. 4, line 210.0 carries the voltage received from transmission line 130.0 to one input of differential amplifier 310.0. Line 210.1 carries the average voltage from the remaining transmission lines 130.1, 130.2 to a second input of the differential amplifier 310.0. Differential amplifier 310.0 performs the subtraction, transmitting the decoded signal on output data line 140.0. Differential amplifier 310.1 generates the signal for output data line 140.1 by determining the difference between the average voltage of lines 130.0, 130.1 (received by differential amplifier 310.1 on line 210.2) and the voltage received on input data line 130.2 (received by differential amplifier 310.1 on line 210.3).

[0027] FIG. 5 illustrates a spacial derivative decoder comprising five input data lines. Input data lines 130.0-130.4 and differential amplifiers 310.0-310.3 are connected to resistor network 400. Differential amplifier 310.0 determines the difference between the voltage on data input line 130.0 (via line 210.0) and the average voltage of the remaining input data lines 130.1-130.4 (via line 210.0). Differential amplifier 310.1 determines the difference between the average voltage of data input lines 130.0 and 130.1 (via line 210.2) and the average voltage of the remaining input data lines 130.2-130.4 (via line 210.3). Differential amplifier 310.2 determines the difference between the average voltage of data input lines 130.0-130.2 (via line 210.4) and the average voltage of the remaining input data lines 130.3-130.4 (via line 210.5). Differential amplifier 310.3 determines the difference between the voltage on data input line 130.4 (via line 210.7) and the average voltage of the remaining input data lines 130.0-130.3 (via line 210.6). The decoded signals are transmitted by differential amplifiers 310.0-310.3 on output transmission lines 140.0-140.3, respectively.

[0028] FIG. 6 is a representation of oscilloscope displays of the transitions of an input data signal and a reference voltage signal through the various stages according to one embodiment of the present invention. The first display 610 shows a representation of an input data signal 612 and a reference voltage signal 611, such as might be received by encoder 100 on lines 120.0, 110, respectively. The data being transmitted is represented by the difference between the two signals 612, 611. The second display 620 shows a representation of two encoded transmissions 621, 622 such as are transmitted by encoder 100 on transmission lines 130.0-130.4. Note that the differential amplifiers 150.0-150.3 introduce a gain of one to enable more accurate interpretation of the signals at the receiving end. As can be seen from the display, the reference voltage signal effectively complements the input data signal. The third display 630 shows the decoded signals 631, 632 after they have been received and decoded by decoder 200. The data message is reflected by the difference between the signals 631, 632.

[0029] In another embodiment, signals are processed through a time-domain encoding scheme prior to differential encoding. Time-domain encoding enables the system to account for the actual variation of a signal voltage over time. Thus the system is able to compensate for signal dispersion and reduce the effect of base line wander due to frequency-dependent attenuation on lines. Time-domain encoding also reduces inter-symbol interference caused by propagation delays between the first- and last-arriving significant signal components resulting from reflections or dispersion on the signal lines.

[0030] The system of the present invention increases the data bandwidth on data buses by reducing noise generation at the transmitter and rejecting common mode noise at the receiver. The affect of purely random noise must still be considered, but a properly configured digital system minimizes this type of noise.

[0031] Although the present invention has been described with reference to the preferred embodiments, those skilled in the art will recognize that changes may be made in form and detail without departing from the spirit and scope of the invention.

Claims

1. A method of transferring a first and a second input signal over a set of signal lines, wherein the set of signal lines includes a first, a second and a third signal line, wherein the method comprises the steps of:

providing a first and a second reference voltage;
generating a first output signal as a function of the difference between the first reference voltage and the first input signal;
generating a second output signal as a function of the difference between the first and second input signals;
generating a third output signal as a function of the difference between the second reference voltage and the second input signal;
driving the first signal line with the first output signal;
driving the second signal line with the second output; and
driving the third signal line with the third output signal.

2. A method of encoding n signals, wherein n is an integer greater than one and wherein the n signals include signals in(0) through in(n−1), the method comprising the steps of:

providing a reference voltage; and
encoding the n signals into n+1 encoded signals comprising signals enc(0) through enc(n), wherein the step of encoding comprises the steps of:
determining the difference between the reference voltage and signal in(0) and generating a signal enc(0) as a function of the difference between the reference voltage and signal in(0) as signal enc(0);
for i from 1 to (n−1) determining the difference between signal in(i−1) and signal in(i) and generating a signal enc(i) as a function of the difference between signal in(i−1) and signal in(i); and
determining the difference between the reference voltage and signal in(n) and generating a signal enc(i) as a function of the difference between the reference voltage and signal in(n).

3. The method of claim 2 wherein the step of encoding further comprises the step of encoding the n signals using time domain encoding.

4. A method of decoding encoded signals, wherein the encoded signals include signals enc(0) through enc(m−1), wherein m is an integer greater than two, the method of decoding comprising the steps of:

receiving the encoded signals;
decoding the encoded signals into (m−1) output signals, wherein the output signals include signals out(0) through out(m−2) and wherein the step of decoding includes the steps, for i from 0 to m−2, of:
determining a first average as a function of signals enc(0) though enc(i);
determining a second average as a function of signals enc(i+1) though enc(m−1);
determining a difference between the first average and the second average; and
transmitting the difference as signal out(i).

5. A communications system, comprising:

a spacial derivative encoder for driving two input data signals onto three output signal lines, wherein the three output signal lines include a first, a second and a third output signal line and wherein the spacial derivative encoder drives the first output signal line with a first output signal generated as a function of the difference between the first reference voltage and the first input signal, drives the second output signal line with a second output signal generated as a function of the difference between the first and second input signals and drives the third output signal line with a third output signal generated as a function of the difference between the second reference voltage and the second input signal; and
a spacial derivative decoder for decoding the first, second and third output signals into a first and a second output data signal, wherein the spacial derivative decoder receives the encoded first, second and third output signals and determines the first and second output data signals as a function of the first, second and third output signals.

6. The system according to claim 5, wherein the spacial derivative decoder determines a first average as a function of the first and second output signals, determines a second average as a function of signals enc(i+1) though enc(m−1) and determines a difference between the first average and the second average.

7. A communications system, comprising:

a spacial derivative encoder wherein the spacial derivative encoder includes:
a first, a second and a third differential amplifier, wherein each of the differential amplifiers has a first signal input, a second signal input, and a signal output;
a first reference voltage line connected to the first signal input of the first differential amplifier;
a second reference voltage line connected to the second signal input of the third differential amplifier;
a first input data line connected to the second signal input of the first differential amplifier and to the first signal input of the second differential amplifier; and
a second input data line connected to the second signal input of the second differential amplifier and to the first signal input of the third differential amplifier; and
a spacial derivative decoder for receiving and decoding signals received from the signal outputs of said first, second and third differential amplifiers and for generating a first and a second output signal as a function of the signals received from the signal outputs of said first, second and third differential amplifiers.

8. The communications system of claim 7, wherein the spacial derivative decoder comprises:

a resistor network, connected to the signal outputs of said first, second and third differential amplifiers; and
a first differential amplifier connected to the resistor network, for generating a signal representative of a signal on the first input data line; and
a second differential amplifier connected to the resistor network, for generating a signal representative of a signal on the second input data line.

9. The spacial derivative decoder of claim 8, wherein the resistor network comprises an array of resistors for averaging signals received from the signal outputs of said first, second and third differential amplifiers.

10. A spacial derivative encoder, comprising:

a reference signal;
a plurality of input data signals, including a first and a second input data signal; and
a first, a second and a third differential amplifier;
wherein the first differential amplifier is connected to the reference signal and the first input data signal and generates a signal as a function of the difference between the reference signal and the first input data signal;
wherein the second differential amplifier is connected to the first and second input data signal and generates a signal as a function of the difference between the first and second input data signals; and
wherein the third differential amplifier is connected to the second input data signal.

12. The spacial derivative encoder of claim 11, wherein the third differential amplifier is further connected to the reference signal and wherein the third differential amplifier generates a signal as a function of the difference between the second input data signal and the reference signal.

13. The spacial derivative encoder of claim 11, wherein the spacial derivative encoder further comprises a third and a fourth input data signal and a fourth and a fifth differential amplifier;

wherein the third differential amplifier is further connected to the third input data signal and generates a signal as a function of the difference between the second and third input data signals;
wherein the fourth differential amplifier is connected to the third and fourth input data signals and generates a signal as a function of the difference between the third and fourth input data signal; and
wherein the fifth differential amplifier is connected to the reference signal and the fourth input data signal and generates a signal as a function of the difference between the reference signals and the fourth input data signal.

14. A spacial derivative decoder, comprising:

a resistor network;
a first and a second differential amplifier connected to the resistor network; and
a plurality of input data signals, including a first and a last input data signal, wherein the plurality of input data signals are connected to the resistor network;
wherein the first differential amplifier determines the difference between the first input data signal and the average of each of the remaining input data signals;
wherein the second differential amplifier determines the difference between the last input data signal and the average of each of the remaining input data signals.

15. The spacial derivative decoder of claim 14, wherein the spacial derivative decoder further comprises a third and fourth differential amplifier, wherein the third and fourth differential amplifiers are connected to the resistor network;

wherein the plurality of input data signals further includes a second and a third input data signal;
wherein the third differential amplifier determines the difference between an average of the first and second input data signals and an average of the remaining input data signals; and
wherein the fourth differential amplifier determines the difference between an average of the first, second and third input data signals and an average of the remaining input data signals.
Patent History
Publication number: 20030072378
Type: Application
Filed: Jun 13, 2002
Publication Date: Apr 17, 2003
Patent Grant number: 7167523
Applicant: Silicon Graphics, Inc.
Inventor: Daniel C. Mansur (Chippewa Falls, WI)
Application Number: 10171095
Classifications
Current U.S. Class: Pulse Code Modulation (375/242)
International Classification: H04B014/04;