U.S. patent application number 14/612241 was filed with the patent office on 2015-08-06 for method for code evaluation using isi ratio.
The applicant listed for this patent is Kandou Labs SA. Invention is credited to Ali Hormati, Amin Shokrollahi, Roger Ulrich.
Application Number | 20150222458 14/612241 |
Document ID | / |
Family ID | 52544575 |
Filed Date | 2015-08-06 |
United States Patent
Application |
20150222458 |
Kind Code |
A1 |
Hormati; Ali ; et
al. |
August 6, 2015 |
Method for Code Evaluation Using ISI Ratio
Abstract
An efficient communications apparatus is described for a vector
signaling code to transport data and optionally a clocking signal
between integrated circuit devices. Methods of designing such
apparatus and their associated codes based on a new metric herein
called the "ISI Ratio" are described which permit higher
communications speed, lower system power consumption, and reduced
implementation complexity.
Inventors: |
Hormati; Ali;
(Chavannes-pres-Renens, CH) ; Shokrollahi; Amin;
(Preverenges, CH) ; Ulrich; Roger; (Bern,
CH) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Kandou Labs SA |
Lausanne |
|
CH |
|
|
Family ID: |
52544575 |
Appl. No.: |
14/612241 |
Filed: |
February 2, 2015 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
61934804 |
Feb 2, 2014 |
|
|
|
Current U.S.
Class: |
375/257 |
Current CPC
Class: |
H04L 25/4919 20130101;
H04L 25/0272 20130101; H04J 13/004 20130101; H04L 25/0276 20130101;
H04L 25/14 20130101; H04L 25/03343 20130101 |
International
Class: |
H04L 25/03 20060101
H04L025/03; H04L 25/02 20060101 H04L025/02 |
Claims
1. A method comprising: receiving a set of information bits;
generating a reduced-alphabet codeword vector with an encoder by
forming a weighted sum of sub-channel code vectors wherein a
weighting of each sub-channel code vector is based in part on a
corresponding antipodal weight determined by a corresponding
information bit in the set of received bits, and wherein the
sub-channel code vectors form a reduced-alphabet weight matrix, and
are mutually orthogonal and orthogonal to a common mode vector;
and, transmitting the reduced-alphabet codeword vector using a
plurality of line drivers, wherein the reduced-alphabet codeword
vector comprises a plurality of reduced-alphabet codeword vector
elements, and each reduced-alphabet codeword vector element is
transmitted on a wire of a multi-wire communication bus by a
respective one of the plurality of line drivers.
2. The method of claim 1 wherein the encoder is an orthogonal
encoding logic circuit, and wherein generating a reduced-alphabet
codeword vector comprises mapping the received set of information
bits to a respective reduced-alphabet codeword vector and
outputting a reduced-alphabet codeword vector selector signal.
3. The method of claim 2 wherein the reduced-alphabet codeword
vector selector signal is provided to the plurality of line
drivers, and wherein each line driver of the plurality of line
drivers uses a portion of the reduced-alphabet codeword vector
selector signal to output a corresponding a current or voltage
representing the reduced-alphabet codeword vector element.
4. The method of claim 1 wherein at least one of the sub-channel
code vectors has a non-normalized magnitude and wherein the
row-wise linear combinations of the reduced-alphabet provide a
reduced alphabet.
5. The method of claim 1, wherein the reduced-alphabet codeword
vector elements are selected from the normalized set of elements
{+1, +1/3, -1/3, -1}.
6. The method of claim 1 wherein there are five sub-channel
vectors, and the multi-wire communication bus comprises six
wires.
7. The method of claim 1 wherein the antipodal weights are selected
from the normalized set of elements {+1, -1}.
8. The method of claim 1 wherein an antipodal weight of at least
one sub-channel is modulated according to a clock signal.
9. The method of claim 1 wherein a non-modulated common mode
sub-channel vector is included to provide a voltage offset.
10. The method of claim 1 wherein sub-channel code vectors having
three non-zero elements comprise a first non-zero element twice as
large as each of a second non-zero element and a third non-zero
element, and a position of the first non-zero element is aligned to
where only one other sub-channel codeword vector has a non-zero
element.
11. An apparatus comprising: a plurality of signal conductors for
receiving a set of information bits; an encoder connected to the
signal conductors for generating a reduced-alphabet codeword vector
by forming a sum of sub-channel code vectors wherein a weighting of
each sub-channel code vector is based in part on a corresponding
antipodal weight determined by a corresponding information bit in
the set of received bits, and wherein the sub-channel code vectors
form a reduced-alphabet weight matrix, and are mutually orthogonal
and orthogonal to a common mode vector; and a plurality of line
drivers for transmitting the reduced alphabet codeword vector,
wherein the reduced-alphabet codeword vector comprises a plurality
of reduced-alphabet codeword vector elements, and each
reduced-alphabet codeword vector element is transmitted on a wire
of a multi-wire communication bus by a respective one of the
plurality of line drivers.
12. The apparatus of claim 11, wherein the encoder further
comprises a logic circuit that maps the received set of information
bits to a respective reduced-alphabet codeword vector and outputs a
reduced-alphabet codeword vector selector signal.
13. The apparatus of claim 12, further comprising wire connections
for providing the reduced-alphabet codeword vector selector signal
to the plurality of line drivers, wherein each line driver of the
plurality of line drivers uses a portion of the reduced-alphabet
codeword vector selector signal to output a corresponding a current
or voltage representing the reduced-alphabet codeword vector
element.
14. The apparatus of claim 11, wherein the encoder is configured to
produce a reduced-alphabet comprising a set of elements {+1, +1/3,
-1/3, -1}.
15. The apparatus of claim 14, wherein the multi-wire
communications bus comprises six wires to transmit a set of five
sub-channel code vectors.
16. The apparatus of claim 11, wherein the encoder is configured to
select the antipodal weights from a set of elements {+1,-1}.
17. The apparatus of claim 11, wherein the encoder is configured to
modulate at least one sub-channel code vector according to a clock
signal.
18. The apparatus of claim 11, wherein the encoder is configured to
provide a voltage offset by providing a non-modulated common mode
sub-channel vector.
Description
[0001] This application claims priority to U.S. Provisional Patent
Application 61/934,803, filed Feb. 2, 2014, naming Ali Hormati and
Amin Shokrollahi, entitled "Method for Code Evaluation using ISI
Ratio" which is herein incorporated by reference in its entirety
for all purposes.
REFERENCES
[0002] The following references are herein incorporated by
reference in their entirety for all purposes:
[0003] U.S. Patent Publication 2011/0268225 of application Ser. No.
12/784,414, filed May 20, 2010, naming Harm Cronie and Amin
Shokrollahi, entitled "Orthogonal Differential Vector Signaling"
(hereinafter "Cronie I");
[0004] U.S. patent application Ser. No. 13/030,027, filed Feb. 17,
2011, naming Harm Cronie, Amin Shokrollahi and Armin Tajalli,
entitled "Methods and Systems for Noise Resilient, Pin-Efficient
and Low Power Communications with Sparse Signaling Codes",
hereinafter identified as [Cronie II];
[0005] U.S. patent application Ser. No. 14/158,452, filed Jan. 17,
2014, naming John Fox, Brian Holden, Peter Hunt, John D Keay, Amin
Shokrollahi, Richard Simpson, Anant Singh, Andrew Kevin John
Stewart, and Giuseppe Surace, entitled "Chip-to-Chip Communication
with Reduced SSO Noise", hereinafter identified as [Fox I];
[0006] U.S. patent application Ser. No. 14/178,051, filed Feb. 11,
2014, naming John Fox, Brian Holden, Peter Hunt, John D Keay, Amin
Shokrollahi, Richard Simpson, Andrew Kevin John Stewart, Giuseppe
Surace, and Roger Ulrich, entitled "Methods and Systems for High
Bandwidth Chip-to-Chip Communications Interface", hereinafter
identified as [Fox II];
[0007] U.S. patent application Ser. No. 13/842,740, filed Mar. 15,
2013, naming Brian Holden, Amin Shokrollahi and Anant Singh,
entitled "Methods and Systems for Skew Tolerance in and Advanced
Detectors for Vector Signaling Codes for Chip-to-Chip
Communication", hereinafter identified as [Holden I];
[0008] U.S. Provisional Patent Application 61/839,360, filed Jun.
23, 2013, naming Amin Shokrollahi, entitled "Vector Signaling with
Reduced Receiver Complexity" (hereinafter "Shokrollahi I");
[0009] U.S. Provisional Patent Application No. 61/839,360, filed
Jun. 23, 2013, naming Amin Shokrollahi, entitled "Vector Signaling
Codes with Reduced Receiver Complexity", hereinafter identified as
[Shokrollahi II].
[0010] U.S. Provisional Patent Application No. 61/946,574, filed
Feb. 28, 2014, naming Amin Shokrollahi, Brian Holden, and Richard
Simpson, entitled "Clock Embedded Vector Signaling Codes",
hereinafter identified as [Shokrollahi III].
[0011] U.S. Provisional Patent Application No. 62/015,172, filed
Jul. 10, 2014, naming Amin Shokrollahi and Roger Ulrich, entitled
"Vector Signaling Codes with Increased Signal to Noise
Characteristics", hereinafter identified as [Shokrollahi IV].
[0012] U.S. patent application Ser. No. 13/895,206, filed May 15,
2013, naming Roger Ulrich and Peter Hunt, entitled "Circuits for
Efficient Detection of Vector Signaling Codes for Chip-to-Chip
Communications using Sums of Differences", hereinafter identified
as [Ulrich I].
[0013] U.S. Provisional Patent Application No. 62/026,860, filed
Jul. 21, 2014, naming Roger Ulrich and Amin Shokrollahi, entitled
"Bus Reversible Orthogonal Differential Vector Signaling Codes",
hereinafter identified as [Ulrich II].
[0014] U.S. patent application Ser. No. 14/315,306, filed Jun. 25,
2014, naming Roger Ulrich, entitled "Multilevel Driver for High
Speed Chip-to-Chip Communications", hereinafter identified as
[Ulrich III].
[0015] The following additional references to prior art have been
cited in this application:
[0016] U.S. Pat. No. 7,053,802, filed Apr. 22, 2004 and issued May
30, 2006, naming William Cornelius, entitled "Single-Ended
Balance-Coded Interface with Embedded-Timing", hereinafter
identified as [Cornelius];
[0017] U.S. Pat. No. 8,649,460, filed Mar. 11, 2010 and issued Feb.
11, 2014, naming Frederick Ware and Jade Kizer, entitled
"Techniques for Multi-Wire Encoding with an Embedded Clock",
hereinafter identified as [Ware].
FIELD OF THE INVENTION
[0018] The present invention relates generally to the field of
communications, and more particularly to the transmission and
reception of signals capable of conveying information within and
between devices.
BACKGROUND
[0019] In communication systems, a goal is to transport information
from one physical location to another. It is typically desirable
that the transport of this information is reliable, is fast and
consumes a minimal amount of resources. One common information
transfer medium is the serial communications link, which may be
based on a single wire circuit relative to ground or other common
reference, or multiple such circuits relative to ground or other
common reference. A common example uses singled-ended signaling
("SES"). SES operates by sending a signal on one wire, and
measuring the signal relative to a fixed reference at the receiver.
A serial communication link may also be based on multiple circuits
used in relation to each other. A common example of the latter uses
differential signaling ("DS"). Differential signaling operates by
sending a signal on one wire and the opposite of that signal on a
matching wire. The signal information is represented by the
difference between the wires, rather than their absolute values
relative to ground or other fixed reference.
[0020] There are a number of signaling methods that maintain the
desirable properties of DS while increasing pin efficiency over DS.
Vector signaling is a method of signaling. With vector signaling, a
plurality of signals on a plurality of wires is considered
collectively although each of the plurality of signals might be
independent. Each of the collective signals is referred to as a
component and the number of plurality of wires is referred to as
the "dimension" of the vector. In some embodiments, the signal on
one wire is entirely dependent on the signal on another wire, as is
the case with DS pairs, so in some cases the dimension of the
vector might refer to the number of degrees of freedom of signals
on the plurality of wires instead of exactly the number of wires in
the plurality of wires.
[0021] Any suitable subset of a vector signaling code denotes a
"subcode" of that code. Such a subcode may itself be a vector
signaling code. With binary vector signaling, each component or
"symbol" of the vector takes on one of two possible values. With
non-binary vector signaling, each symbol has a value that is a
selection from a set of more than two possible values. The set of
all values required to represent all symbols is called the
"alphabet" of the code. Thus, as examples, a binary vector
signaling code requires at least an alphabet of two values, while a
ternary vector signaling code requires at least an alphabet of
three values. When transmitted as physical signals on a
communications medium, symbols may be represented by particular
physical values appropriate to that medium; as examples, in one
embodiment a voltage of 150 mV may represent a "+1" symbol and a
voltage of 50 mV may represent a "-1" symbol, while in another
embodiment "+1" may be represented by 800 mV and "-1" as -800
mV.
[0022] A vector signaling code, as described herein, is a
collection C of vectors of the same length N, called codewords. The
ratio between the binary logarithm of the size of C and the length
N is called the pin-efficiency of the vector signaling code. The
Orthogonal Differential Vector Signaling or ODVS codes of [Cronie
I], [Cronie II], [Fox I], [Shokrollahi I], [Shokrollahi II], and
[Shokrollahi III] are examples of vector signaling codes, and are
used herein for descriptive purposes.
[0023] Inter-symbol interference (ISI) is the distortion of a
symbol to be decoded at the receiver by the residual effects of
symbols previously sent through the system. This effect is mainly
due to properties of the underlying communication channel, and
often is the limiting characteristic precluding higher speed or
lower error communications. Well-known examples of channels
vulnerable to ISI include wireless communications with multipath
interference and band-limited channels in wired systems. Since ISI
degradation is deterministic, it is advisable to cancel its effect
before trying to decode the current symbol to obtain its embedded
information. In some cases, a sequence of previously-sent symbols
that constructively combine to maximize their impact on the
detection margin of the current symbol. Since these worst-case
symbol patterns usually occur with a high probability compared to
the target error-rate of the system, their effect and how to
quantify and minimize their destructive behavior is a major concern
in the design of communication systems. Beyond such ad-hoc
identification of problematic patterns, there is no reliable metric
to assess the impact of ISI on communications system performance,
nor to suggest channel or coding modifications to mitigate such
effects.
[0024] One way to combat the ISI problem is to use equalizers which
render the equivalent channel ISI-free. Equalizers are functional
processing blocks or circuits that try to invert the channel in
such a way that the transmitted data at each symbol interval
becomes (ideally) independent of the other symbols sent through the
system. In a Serializer-Deserializer (SerDes) design, FIR (Finite
Impulse Response filtering) and CTLE (Continuous Time Linear
Equalization) are two well-known linear equalization methods used
respectively at the transmitter and receiver sides of the system
while DFE (Decision Feedback Equalization) is a receiver-side
non-linear equalization method. Other equalization methods such as
the Tomlinson-Harashima precoding method are also known to
practitioners of the field. Such pre-coding is often equivalent to
equalization at the transmitter. On one hand, equalizers can be
expensive in terms of implementation complexity, power consumption,
and calibration requirements, especially in multi-gigabit/s
communication systems. Thus, there is a need for both metrics that
accurately reflect the impact of ISI on communications system
performance, and for channel processing solutions that mitigate ISI
effects in an efficient, high performance manner.
BRIEF DESCRIPTION
[0025] An efficient communications apparatus is described for a
vector signaling code to transport data and optionally a clocking
signal between integrated circuit devices. Methods of designing
such apparatus and their associated codes based on a new metric
herein called the "ISI Ratio" are described which permit higher
communications speed, lower system power consumption, and reduced
implementation complexity.
BRIEF DESCRIPTION OF FIGURES
[0026] FIG. 1 illustrates an embodiment of a communications system
in accordance with the invention.
[0027] FIG. 2 shows the case of differential signaling on two wires
sending one bit per symbol.
[0028] FIG. 3 shows the case of PAM-4 signaling on two wires
sending two bits per symbol.
[0029] FIG. 4 shows the pulse response of the example channel used
for the simulations herein.
[0030] FIG. 5 shows eye diagrams for the first case MIC embodiment
of a P3 receiver.
[0031] FIG. 6 shows eye diagrams for the second case MIC embodiment
of a P3 receiver.
[0032] FIGS. 7A through 7E show eye diagrams for the five
sub-channels of a 5b6w code receiver.
[0033] FIGS. 8A through 8C show eye diagrams for the three
sub-channels of an ENRZ code receiver.
[0034] FIGS. 9A and 9B show eye diagrams for the 4.5b5w code of
[Shokrollahi I].
[0035] FIGS. 10A and 10B show eye diagrams for an 8b8w code.
[0036] FIG. 11 is a graph comparing performance of NRZ, PAM-4, and
ENRZ signaling over the same channel model.
[0037] FIG. 12 shows an eye-diagram for NRZ as an example of common
practice signaling methods on this channel.
[0038] FIG. 13 shows the eye-diagrams for PAM-4 as an example of
common practice signaling methods on this channel.
[0039] FIG. 14 is a block diagram of a Glasswing receiver.
[0040] FIG. 15 is a block diagram of a Glasswing receiver
recovering an embedded clock.
[0041] FIG. 16 is a schematic of one embodiment of a multi-input
comparator with input weights as defined by row 6 of the matrix of
Eqn. 3, both with and without equalization.
[0042] FIG. 17 is a schematic of one alterative one embodiment of a
multi-input comparator with input weights as defined by row 6 of
the matrix of Eqn. 3, both with and without equalization.
[0043] FIG. 18 is a schematic of one embodiment of a multi-input
comparator with input weights as defined by row 3 of the matrix of
Eqn. 3, both with and without equalization. With suitable
substitution of wire inputs, it also may be used to embody the
comparator of row 5 of the matrix of Eqn. 3.
[0044] FIG. 19 is a schematic of one alterative embodiment of a
multi-input comparator with input weights as defined by row 3 of
the matrix of Eqn. 3, both with and without equalization. With
suitable substitution of wire inputs, it also may be used to embody
the comparator of row 5 of the matrix of Eqn. 3.
[0045] FIG. 20 is a schematic of one embodiment of a multi-input
comparator with input weights as defined by row 2 of the matrix of
Eqn. 3, both with and without equalization. With suitable
substitution of wire inputs, it also may be used to embody the
comparator of row 4 of the matrix of Eqn. 3.
[0046] FIG. 21 is a block diagram of one embodiment of a Glasswing
5b6w transmit driver.
[0047] FIG. 22 is a block diagram of one embodiment of a Glasswing
5b6w.sub.--10.sub.--5 transmit driver.
[0048] FIG. 23 is a flow diagram of a transmission method.
[0049] FIG. 24 is a flow diagram of a reception method.
DETAILED DESCRIPTION
[0050] FIG. 1 illustrates an embodiment of a communication system
in accordance with the invention employing a vector signaling code.
Source data to transmitter 110, herein illustrated as S.sub.0,
S.sub.1, S.sub.2, S.sub.3, S.sub.4 enters as a source data word 100
into encoder 112. The size of the source data word may vary and
depends on the parameters of the vector signaling code. The encoder
112 generates a codeword of the vector signaling code for which the
system is designed. In operation, the codeword produced by encoder
112 is used to control PMOS and NMOS transistors within driver 118,
generating two, three, or more distinct voltages or currents on
each of the N communication wires 125 of communications channel
120, to represent the N symbols of the codeword. In the embodiment
of FIG. 1, the size of the source data word is shown as five bits
and the codeword size is six symbols. Thus, communications channel
110 is shown as being comprised of six signal wires 125, each
transporting one codeword symbol. One familiar with the encoding
arts may also describe this code as having a block length of six
(i.e. producing an output word of six symbols) and a code size of
32 (i.e. having 32 distinct codewords, sufficient to encode 5
binary bits of data.)
[0051] Within communications receiver 130, detector 132 reads the
voltages or currents on wires 125, possibly including
amplification, frequency compensation, and common mode signal
cancellation. In the present example, the received results 140,
herein shown as R.sub.0, R.sub.1, R.sub.2, R.sub.3, R.sub.4, are
provided directly by detector 132, without need of optional decoder
138.
[0052] As will be readily apparent, different codes may be
associated with different block sizes and different codeword sizes;
for descriptive convenience and without implying limitation, the
example of FIG. 1 illustrates a system using an ODVS code capable
of encoding five binary bit values for transmission over six wires,
a so-called 5b6w code.
[0053] Depending on which vector signaling code is used, there may
be no decoder, or no encoder, or neither a decoder nor an encoder.
For example, for the 8b8w code disclosed in [Cronie II], both
encoder 112 and decoder 138 exist. On the other hand, for the 5b6w
code of the present example, an explicit decoder is unnecessary, as
the system may be configured such that detector 132 generates the
received results 140 directly.
[0054] The operation of the communications transmitter 110 and
communications receiver 130 have to be completely synchronized in
order to guarantee correct functioning of the communication system.
In some embodiments, this synchronization is performed by an
external clock shared between the transmitter and the receiver.
Other embodiments may combine the clock function with one or more
of the data channels, as in the well-known Biphase encoding used
for serial communications, or other methods described herein.
[0055] Signaling in a Communications System
[0056] Signaling is a method of transmitting information over
communication channels. Any form of mapping information (typically
represented as bits) to physical quantities that are carried on the
communication channel is referred to as signaling. In preferred
embodiments, information to be conveyed on a communication channel
is modulated through a shaped pulse having a real-valued function
of finite support. The signals transmitted on the wires are of the
form
.SIGMA..sub.i=-.infin..sup.+.infin.C.sub.iP(t-iT) [Eqn. 1]
where C.sub.i is the codeword vector of length N (equal to the
number of wires), T is the temporal length of a unit interval (UI)
of the pulse representing one transmitted value, and P is a
function on the interval [0,T] defining the pulse shape used for
modulation. The codewords C.sub.i determine the information sent at
every instance. The choice of the set to which the C.sub.i belongs,
together with the choice of the mapping between the information
bits and the C.sub.i determines the signaling method.
[0057] Pulse amplitude modulation (PAM) is a method of signaling in
which the C.sub.i can take one of the values [-1, -1+2/(X-1),
-1+4/(X-1), . . . ,1-4/(X-1), 1-2/(X-1), 1] representing equal
amplitude intervals over the allowable signal range. This type of
signaling is referred to as PAM-X signaling. Often (but not
exclusively), X is a power of 2, and each C.sub.i carries log 2(X)
(binary logarithm of X) information bits. In many high-speed SerDes
applications, X=2, though values such as X=4, X=8, or X=16 have
also been proposed in various standards bodies.
[0058] It is well known to those of skill in the art that while
PAM-X signaling leads to a higher ratio of transmitted bits per
unit interval, it is more susceptible to ISI than PAM-2. This is
often falsely attributed to the fact that in PAM-X signaling has
more possible transition extents (i.e. changes in signal
amplitude,) with the different amounts of time needed to traverse
these extents leading to the increased ISI. Based on this false
premise, it has also often been suggested that any signaling method
that uses an alphabet size larger than 2 will suffer from ISI more
than PAM-2. However, we subsequently show the alphabet size does
not directly impact ISI.
[0059] A vector signaling code, as described here, is a collection
C of vectors of the same dimension N, called codewords, a second
collection .LAMBDA. of vectors of dimension N, called multi-input
comparators (MIC's), and a set of "don't cares" wherein each don't
care is a pair C.sub.i, .lamda., with C.sub.i being an element of C
and .lamda. being an element of .LAMBDA.. In operation, the
coordinates of the elements of C are bounded, and we choose to
represent them by real numbers between -1 and 1.
[0060] In operation, a codeword is uniquely determined by the
vector of the scalar products of that codeword with all the MIC's
.lamda. for which C.sub.i, .lamda. is not a don't care. If a pair
C.sub.i, .lamda. is not a don't care, we say that C.sub.i is active
for MIC .lamda..
[0061] An example is provided as follows: the collection C of
codewords consists of the 12 vectors obtained from the permutations
of the vector (1,0,0,-1), the MIC's are the six vectors [0062]
(1,-1,0,0), (1,0,-1,0), (1,0,0,-1), (0,1,-1,0), (0,1,0,-1),
(0,0,1,-1) and the set of don't cares are those pairs of codewords
and MIC's such that the scalar product of the MIC with the codeword
is zero. In other words, the don't cares are the pairs [0063]
((1,0,0,-1), (0,1,-1,0)), ((1,0,-1,0), (0,1,0,-1)),
((1,-1,0,0),(0,0,1,-1)), ((0,1,-1,0),(1,0,0,-1)), [0064]
((0,1,0,-1), (1,0,-1,0)), ((0,0,1,-1),(1,-1,0,0)),
((0,0,-1,1),(1,-1,0,0)), ((0,-1,1,0),(1,0,0,-1)), [0065]
((0,-1,0,1),(1,0,-1,0)), ((-1,0,0,1),(0,1,-1,0)),
((-1,0,1,0),(0,1,0,-1)), ((-1,1,0,0),(0,0,1,-1)).
[0066] In the following we will use interchangeably the
interpretation of a MIC being defined as a vector, and as a
hyper-plane given by the set of all points orthogonal to this
vector.
[0067] The ISI problem is examined from this signaling point of
view with the intent to determine how to transfer data in a manner
less sensitive to the uncorrected residual ISI in the system. In
situations where the detection of signals is achieved using
comparisons of signal values to fixed references or to one another,
the ISI susceptibility shown to be primarily determined by the
signal levels observed at the output of these comparators, rather
than by the signal levels observed on the wires themselves. We
introduce the concept of the ISI-Ratio, a metric that will help us
quantify the effect of the ISI noise as a function of the signaling
and the detection methods used. We will use this concept to design
vector signaling methods that are robust against ISI noise and will
show simulation results confirming this approach.
[0068] Receivers Using Multi-Input Comparators
[0069] As described in [Holden I], a practical embodiment of a
multi-input comparator or MIC with coefficients a.sub.0, a.sub.1, .
. . , a.sub.m-1 is a summation circuit that accepts as its input a
vector (x.sub.0, x.sub.1, . . . , x.sub.m-1) from a plurality of
signal conductors and outputs
Result=(a.sub.0*x.sub.0+ . . . +a.sub.m-1*x.sub.m-1) (Eqn. 2)
where (x.sub.0 . . . x.sub.m-1) is the signal weight vector for the
summation circuit. In many embodiments, the desired output is a
binary value, thus the value Result is sliced with an analog
comparator or other such signal slicer circuit to produce a binary
decision output. Because this is a common use case, the colloquial
name of this circuit incorporates the term "comparator", although
other embodiments may apply the summation result to a PAM-3 or
PAM-4 slicer to obtain ternary or quaternary outputs, or indeed may
retain the analog output of Eqn. 2 for further computation.
[0070] Receivers Described in Matrix Notation
[0071] Mathematically, the set of multi-input comparators
comprising a code receiver may be concisely described using matrix
notation, with the columns of the matrix corresponding to
consecutive elements of input vector (x.sub.0, x.sub.1, . . . ,
x.sub.m-1) i.e. the plurality of signal conductor or wire inputs
carrying the vector signaling code, and each row of the matrix
corresponding to the vector defining a particular multi-input
comparator and its output. In this notation, the value of matrix
element corresponds to the weight vector or set of scaling factors
applied to that column's input values by that row's multi-input
comparator.
[0072] The matrix of Eqn. 3 describes one such set of multi-input
comparators comprising a code receiver.
1 1 1 1 1 1 1 - 1 0 0 0 0 1 / 2 1 / 2 - 1 0 0 0 0 0 0 1 - 1 0 0 0 0
1 / 2 1 / 2 - 1 1 / 3 1 / 3 1 / 3 - 1 / 3 - 1 / 3 - 1 / 3 ( Eqn . 3
) ##EQU00001##
[0073] In this embodiment, six input wires, represented by the six
matrix columns, are processed by five multi-input comparators
represented by matrix rows 2-6. For purposes to be subsequently
described, the first matrix row is comprised of all "1" values,
creating a square 6.times.6 matrix.
[0074] As used herein, a matrix M such as that of Eqn. 3 is called
"orthogonal" if M.sup.T M=D that is, if the product of the matrix
and its transpose is a diagonal matrix having non-zero values only
on its diagonal. This is a weaker definition than commonly used,
where the result is required to be the identity matrix, i.e. having
diagonal values equal to 1. Matrix M may be normalized to satisfy
the stronger conventional orthogonality requirement, but as will
subsequently be described such normalization is neither necessary
nor desirable in practice.
[0075] Functionally, orthogonality requires that the vector of
weights in a row representing a multi-input comparator be
orthogonal to all other rows, and that each row representing a
multi-input comparator sums to zero. As this implies the comparator
outputs are also orthogonal (and therefore independent,) they
represent distinct communications modes, herein described as
"sub-channels" of the Vector Signaling Code communications
system.
[0076] Given this modal interpretation, the initial row of the
matrix may be seen to represent the common-mode communications
channel over the transmission medium. As it is desirable in a
practical system for the receiver to have common-mode rejection,
the first row is set to all "1" values, maximizing the common mode
contribution of each wire input to this one matrix row. As by
definition all rows of the matrix are orthogonal, it follows that
no other matrix row (i.e. no receiver output) may then be impacted
by common mode signals. Embodiments having such common mode
rejection need not implement a physical comparator corresponding to
the first row of their descriptive matrix.
[0077] For avoidance of confusion, it is noted that all data
communications in an ODVS system, including the state changes
representing signals carried in sub-channels, are communicated as
codewords over the entire channel. An embodiment may associate
particular mappings of input values to codewords and correlate
those mappings with particular detector results, as taught herein
and by [Holden I] and [Ulrich I], but those correlations should not
be confused with partitions, sub-divisions, or sub-channels of the
physical communications medium itself. Similarly, the concept of
ODVS sub-channels is not limited by the example embodiment to a
particular ODVS code, transmitter embodiment, or receiver
embodiment. Encoders and/or decoders maintaining internal state may
also be components of embodiments in accordance with the invention.
Sub-channels may be represented by individual signals, or by states
communicated by multiple signals.
[0078] [Shokrollahi II] describes methods of constructing
orthogonal matrices that may be utilized as described herein.
[0079] Generating ODVS Codes Corresponding to a Receiver Matrix
[0080] As described in [Cronie I] and [Cronie II], an Orthogonal
Differential Vector Signaling code may be constructed from a
generator matrix by multiplication of an input modulation vector of
the form (0, a.sub.1, a.sub.2, . . . a.sub.n) by the matrix M. In
the simplest case, each a.sub.i of this vector is the positive or
negative of a single value, as example .+-.1, representing one bit
of transmitted information.
[0081] Given our understanding of M as describing the various
communications modes of the system, it may readily be seen that
multiplication of the matrix by such an input vector comprises
excitation of the various modes by the a.sub.i, of that vector,
with the zeroth mode corresponding to common mode transmission not
being excited at all. It will be obvious to one familiar with the
art that transmission energy emitted in the common mode is both
unnecessary and wasteful in most embodiments. However, in at least
one embodiment in accordance with the invention, a nonzero
amplitude for the common mode term is used to provide a nonzero
bias or baseline value across the communications channel.
[0082] It also may be seen that the various codewords of the code
generated using this method represent linear combinations of the
various orthogonal communication modes. Without additional
constraints being imposed (e.g., for purposes of implementation
expediency,) this method results in systems capable of
communicating N-1 distinct sub-channels over N wires, typically
embodied as a N-1 bit/N wire system. The set of discrete codeword
values needed to represent the encoded values is called the
alphabet of the code, and the number of such discrete alphabet
values is its alphabet size.
[0083] As a further example, the code generated by this method from
the matrix of Eqn. 3 is shown in Table 1.
TABLE-US-00001 TABLE 1 .+-.[1, 1/3, -1/3, -1, -1/3, 1/3] .+-.[1,
1/3, -1/3, 1/3, -1, -1/3] .+-.[1/3, 1, -1/3, -1, -1/3, 1/3]
.+-.[1/3, 1, -1/3, 1/3, -1, -1/3] .+-.[1/3, -1/3, 1, -1, -1/3, 1/3]
.+-.[1/3, -1/3, 1, 1/3, -1, -1/3] .+-.[-1/3, 1/3, 1, -1, -1/3, 1/3]
.+-.[-1/3, 1/3, 1, 1/3, -1, -1/3] .+-.[1, 1/3, -1/3, -1, 1/3, -1/3]
.+-.[1, 1/3, -1/3, 1/3, -1/3, -1] .+-.[1/3, 1, -1/3, -1, 1/3, -1/3]
.+-.[1/3, 1, -1/3, 1/3, -1/3, -1] .+-.[1/3, -1/3, 1, -1, 1/3, -1/3]
.+-.[1/3, -1/3, 1, 1/3, -1/3, -1] .+-.[-1/3, 1/3, 1, -1, 1/3, -1/3]
.+-.[-1/3, 1/3, 1, 1/3, -1/3, -1]
[0084] As may be readily observed, the alphabet of this code
consists of the values +1, +1/3, -1/3, -1, thus this is a
quaternary code (e.g. having an alphabet size of four.) This code
will subsequently be described herein as the 5b6w or "Glasswing"
code, and its corresponding receive matrix of Eqn. 3 as the
"Glasswing receiver".
[0085] Timing Information on a Sub-Channel
[0086] As an ODVS communications system must communicate each
combination of data inputs as encoded transmissions, and the rate
of such encoded transmissions is of necessity constrained by the
capacity of the communications medium, the rate of change of the
data to be transmitted must be within the Nyquist limit, where the
rate of transmission of codewords represents the sampling interval.
As one example, a binary clock or strobe signal may be transmitted
on an ODVS sub-channel, if it has no more than one clock edge per
codeword transmission.
[0087] An embodiment of an ODVS encoder and its associated line
drivers may operate asynchronously, responding to any changes in
data inputs. Other embodiments utilize internal timing clocks to,
as one example, combine multiple phases of data processing to
produce a single high-speed output stream. In such embodiments,
output of all elements of a codeword is inherently simultaneous,
(absent any logic delay or other implementation constrain,) thus a
strobe or clock signal being transported on a sub-channel of the
code will be seen at the receiver as a data-aligned clock (e.g.
with its transition edges occurring simultaneous to data edges on
other sub-channels of the same code.) Methods are well known in the
art to convert such a data-aligned clock into a delayed or
center-of-eye-aligned clock, suitable for initiating sampling of
data sub-channels in combination with the present invention. Such
methods may include introduction of a fixed time delay, adjustable
time delay, delay-locked loop, etc.
[0088] ISI-Ratio
[0089] The ISI-Ratio is a measure of the sensitivity of a signaling
scheme to the inter-symbol interference in a communication system.
It is in a sense a measure for the deterioration of a signaling
scheme due to residual uncorrected ISI.
[0090] To formalize the above definition, assume that we have N
communication wires. At each Unit Interval (called UI in the
following), the Encoder picks one out of K possible codewords of
length N (based on the bits to be sent) and the drivers create
voltages/currents proportional to the coordinate values of the
codeword and drive the wires with those values. Without implying
limitation, we assume in this example that a rectangular pulse
shape P.sub.t is used for the value on each wire. The codewords
travel on the channel towards the receiver. On the receiver side,
the wire values may pass through an equalizer and possibly a gain
stage at the Rx front-end, and these new values are combined in
(possibly) multiple linear ways in the comparator network to arrive
at a set of decision values. As discussed before, the comparators
may take linear combinations of wire values and compare them
against fixed references, or against other linear combinations of
wire values. The receiver comparator network has M MIC's. The MIC's
can be conveniently described as "affine linear forms" on the wire
values. In other words, to each MIC is associated a set of
coefficients a.sub.0, a.sub.1, . . . , a.sub.n In operation, the
output of the MIC is the sign of the expression
a.sub.0+a.sub.1x.sub.1+ . . . +a.sub.nx.sub.n where x.sub.1, . . .
, x.sub.n are the values on wires 1, . . . , N, respectively, and
-a.sub.0 is the corresponding reference value. We call the MIC
"central" if its reference value is 0. Otherwise we call the MIC
non-central. A central MIC is often also written as the vector of
the coefficients of its linear form, i.e., as [a.sub.0, a.sub.1, .
. . , a.sub.n]. Central MIC's can be of two flavors: reference-less
MIC's and referenced MIC's. A reference-less MIC is a central MIC
for which the sum of its coefficients is zero.
[0091] For example, in standard differential signaling, the MIC
coefficients are simply the pair [+1, -1] with the result compared
against 0. This is a central reference-less MIC. In PAM-4
signaling, the same MIC is used, but two of the three MIC's have
references. In other words, if the largest signal value is 1 and
the smallest signal value is -1, the MIC's are given by the
following 3 affine linear forms:
x.sub.1-x.sub.2-2/3,x.sub.1-x.sub.2,x.sub.1-x.sub.2+2/3 [Eqn.
4]
[0092] In general, some of the coefficients of a MIC may be zero,
in which case their corresponding inputs are simply discarded.
[0093] At times, it is advantageous to use a geometric view of a
MIC, by considering a MIC as a hyper-plane in the N-dimensional
Euclidean space. The MIC is then identified with the set of all
vectors that evaluate to 0 for that MIC. For example, for the MIC
[1,-1] with reference 0 the hyper-plane is just the line x=y in the
two-dimensional Euclidean plane. We will often and interchangeably
identify MIC's with their corresponding vectors, or their
associated hyper-planes. In this geometric view, a MIC is central
if its hyper-plane passes through the origin, and it is non-central
if not.
[0094] Each of the K codewords in the code can be interpreted as
points in an N dimensional Euclidean space. The task of the MIC's
is to separate the points. A MIC that is not a don't care for two
codewords separates the points if the points lie on opposite sides
of the hyper-plane corresponding to the MIC.
[0095] FIGS. 2 and 3 show the case of differential and PAM-4
signaling on two wires sending one and two bits per symbol,
respectively. In the case of differential signaling, shown in FIG.
2, the hyper-plane is the line of angle 45 degrees passing through
the origin, and the codewords are the points with coordinates
(1,-1) and (-1,1). These codewords are separated by the
hyper-plane, and they have equal distance from the hyper-plane. For
PAM-4 signaling as shown in FIG. 3, the hyper-planes are the line
of angle 45 degrees passing through the origin, and the two
translations of this line by the vectors (2/3, -2/3) and (-2/3,
2/3). The codewords are the points (1,-1), (1/3,-1/3), (-1/3, 1/3)
and (-1,1), all lying on the line perpendicular to the MIC's. As
can be seen, the MIC's separate the codewords.
[0096] We will show new signaling methods designed based on the
ISI-Ratio concept. The ISI-Ratio is defined for a MIC .lamda., with
respect to the set C of codewords. Let .DELTA..sub.m be the set of
codeword indices that are active for MIC m (i.e., they are not
don't cares for that MIC). In order to precisely define the
ISI-Ratio, we need to distinguish the central MIC's (where the
hyper-plane passes through the origin) and non-central MICs (where
the hyper-plane does not pass through the origin as in the two MICs
in the PAM-4 signaling) separately.
[0097] ISI-Ratio Calculation for Central MICs
[0098] Let d(C.sub.k,MIC.sub.m) be the distance between codeword
C.sub.k and the hyper-plane representing MIC.sub.m. The ISI-Ratio
for MIC.sub.m is defined as:
ISIRatio ( m ) = max 1 .ltoreq. k .ltoreq. K d ( C k , MIC m ) min
k .di-elect cons. .DELTA. m d ( C k , MIC m ) . [ Eqn . 5 ]
##EQU00002##
[0099] Geometrically, the ISI-Ratio may be seen to be the ratio of
the maximum distance of any active codeword to the MIC hyper-plane,
to the minimum distance of any active codeword to the MIC hyper
plane. If we compute this quantity for the signaling examples
above, we obtain the following numbers:
Differential signaling:
[0100] ISI-Ratio is 1 for the MIC.
PAM-4 signaling:
[0101] ISI-Ratio is 3 for the middle MIC (which is central).
[0102] These values may be verified by examining the differential
signaling case of FIG. 2, where the two codeword points are
equidistant from the MIC plane, representing a max/min distance
ratio of 1. In the PAM-4 signaling of FIG. 3, a ratio of 3:1 is
seen in the distances of the farthest to nearest codeword points to
the central MIC plane.
[0103] Other examples will be presented addressing signaling design
based on ISI-Ratio.
[0104] ISI-Ratio Calculation for Non-Central MICs
[0105] Let d(C.sub.k,MIC.sub.m) be the distance between codeword
C.sub.k and the hyper-plane representing the referenced MIC.sub.m.
Denote by d.sub.0(C.sub.k, MIC.sub.m) the distance between the
codeword C.sub.k and the shifted version of MIC.sub.m passing
through the origin. Then, the ISI-Ratio for the non-central
MIC.sub.m is defined as:
ISIRatio ( m ) = max 1 .ltoreq. k .ltoreq. K d 0 ( C k , MIC m )
min k .di-elect cons. .DELTA. m d ( C k , MIC m ) . [ Eqn . 6 ]
##EQU00003##
[0106] By this formula, the ISI-Ratio for the two non-central MICs
of PAM-4 signaling is also equal to 3. Therefore, the ISI-Ratio of
all the MICs in a PAM-4 communication system is 3.
[0107] ISI-Ratio and Horizontal Eye-Opening
[0108] Each of the k codewords C.sub.k k=1, . . . , K generates a
pulse response of its own at the output of MIC.sub.m which is given
by:
P.sub.m,k(t)=.SIGMA..sub.rx=1.sup.NMIC.sub.m(rx)
[.SIGMA..sub.tx=1.sup.NC.sub.k(tx)P(t)*h.sub.rx,tx(t)] [Eqn. 7]
[0109] Under the assumption that there is negligible crosstalk in
the system and the channels h.sub.i,i(t) are all equal (=h(t)), the
pulse response generated by codeword K at the output of MIC.sub.m
is given by:
P.sub.m,k(t)=[.SIGMA..sub.i=1.sup.NMIC.sub.m(i)C.sub.k(i)]P.sub.h(t)
[Eqn. 8]
where P.sub.h(t)=P(t)*h(t) is the pulse response of the system,
including all the linear equalizers, MIC.sub.m(i) is the i-th
coordinate of the m-th MIC, and C.sub.k(i) is the i-th coordinate
of the codeword C.sub.k. Assuming that the MIC is central and its
coefficients are normalized such that their sum of squares is equal
to 1, the quantity |.SIGMA..sub.i=1.sup.NMIC.sub.m(i)C.sub.k(i)|
represents the distance between the codeword K and the central
hyper-plane representing MIC.sub.m. Note that the ISI-Ratio is
invariant under nonzero scalar multiplications of the MIC's by
arbitrary nonzero real numbers. Therefore, it can be assumed that
the vectors representing the MIC's have norm 1 (i.e., the sum of
squares of their coefficients is 1).
[0110] The signal at the output of MIC.sub.m is the super-position
of the pulse responses P.sub.m,k(t) shifted in time by integer
multiples of the UI length (=T) and for arbitrary choices of the
codewords. Let us assume that t.sub.0 is the reference sampling
time for the codeword C.sub.0. At time t.sub.0 we have
r.sub.m(t.sub.0)=.SIGMA..sub.kP.sub.m,k(t.sub.0-kT)=.SIGMA..sub.k[.SIGMA-
..sub.i=1.sup.NMIC.sub.m(i)C.sub.k(i)]P.sub.h(t.sub.0-kT). [Eqn.
9]
[0111] For a central MIC, the receiver eye at the MIC output is
closed for the sampling time t in which r.sub.m(t) changes sign
with respect to its sign at t.sub.0. This determines the horizontal
opening of the eye at the MIC output. For many communication
systems, the goal is to achieve very low detection error rates at
the receiver (e.g., less than 10.sup.-12) and therefore, it is the
worst-case codeword pattern that determines the eye-opening. The
worst-case codeword pattern occurs when the codeword to be detected
is the closest codeword to the hyper-plane representing MIC.sub.m
(we call it C.sub.min(m)) and the pre- and post-cursor codewords
are at the farthest distance (we call it C.sub.max(m)) from that
hyper-plane. Choosing these codewords, we can write:
r m ( t 0 ) = d ( C min ( m ) , MIC m ) P h ( t 0 ) - k d ( C max (
m ) , MIC m ) P h ( t 0 - kT ) = d ( C min ( m ) , MIC m ) [ P h (
t 0 ) - ISIRatio * k P h ( t 0 - kT ) ] [ Eqn . 10 ]
##EQU00004##
[0112] By changing the sampling phase t.sub.0, the eye closes
whenever the term
P.sub.h(t.sub.0)-ISIRatio*.SIGMA..sub.kP.sub.h(t.sub.0-kT) [Eqn.
11]
changes sign. The higher the ISI-Ratio for the signaling scheme,
the bigger the residual ISI we see from the neighboring codewords
and the eye will close sooner. Note that for a given pulse response
P.sub.h(t) (determined by the channel, equalizers, transmitter
pulse-shape and the baud-rate of the system), the horizontal
opening depends only on the ISI-Ratio of the underlying signaling
scheme. The higher the ISI-Ratio, the smaller the horizontal
opening of the eye.
[0113] For the case of non-central signaling, it is the distance to
the reference of the MIC, denoted by ref(m) that determines the
horizontal opening of the eye. Therefore, Eqn. 8 is changed to:
r m ( t 0 ) = i = 1 N MIC m ( i ) C min ( i ) - ref ( m ) P h ( t 0
) - k d ( C max ( m ) , MIC m ) P h ( t 0 - kT ) = d ( C min ( m )
, MIC m ) [ P h ( t 0 ) - ISIRatio * k P h ( t 0 - kT ) ] [ Eqn .
12 ] ##EQU00005##
again showing that the horizontal eye-opening is solely determined
by the ISI-Ratio of the underlying MIC.
[0114] Signaling Design Based on the ISI-Ratio Metric
[0115] Based on the discussion above, we can design signaling
schemes based on the ISI-Ratio concept. For purposes of
description, examples are drawn from the domain of wire-line
transmission systems, although no limitation is implied.
[0116] As a first example, we wish to send b bits of information
over a channel, thus requiring us to have at least 2.sup.b
codewords in our signaling scheme. We have also the following
considerations in our design: [0117] The dimension N is equal to
the number of wires (i.e. independent communications elements or
sub-channels) in the channel. [0118] The codewords have all their
coordinates in the range [-1, 1] because of voltage swing
constraints at the transmitter.
[0119] The goal is to find the codewords, the MICs, and the don't
care pairs, such that the codewords can be distinguished by these
MICs and the maximum ISI-Ratio of the MICs is minimized. As shown
in the previous section, the MIC with the highest ISI-Ratio will
dominate and the horizontal opening of its corresponding eye will
determine the error rate of the entire communication system.
[0120] In the following examples a 4-wire transmission line is
used, with channel characteristics based on the reference channel
provide by TE (www.te.com) for 2 wires on a back-plane channel
measured for the IEEE 802.3bj standard (found online at
www-dot-ieee802.org/3/100GCU/public/channel.html). That described
channel response was expanded to a 4 wire channel with crosstalk
removed between wires. The baud rate was fixed at 8 GBaud per
second. A continuous-time linear equalizer (CTLE) with equalization
range between 0 dB to 12 dB and a 3-tap filter at the transmitter
were assumed, with equalizer settings optimized to obtain the best
horizontal eye openings. The pulse response of the resulting
channel is shown in FIG. 4.
[0121] As examples of common practice signaling methods on this
channel, FIG. 12 shows an eye-diagram for NRZ (throughput=4
Gbps/wire, horizontal opening=106.2 psec) and FIG. 13 shows the
eye-diagrams for PAM-4 (throughput=8 Gbps/wire, horizontal
opening=40.0 psec) signaling.
[0122] A first embodiment of a vector signaling code design is
called P3 signaling, and uses 4 codewords (1, 0, -1), (-1, 0, 1),
(0, 1, -1) and (0, -1 , 1) to send 2 bits over 3 wires of the
example channel. We consider the two following cases:
[0123] Case 1: We choose the MICs as (1, -1, 0) and (0, 1, -1). The
outputs for the two MICs on the four codewords are the values 1,
-1, -1, 1 and 1, -1, 2, -2, respectively. It is obvious from
examination that the two MICs can distinguish the 4 codewords from
each other. The ISI-Ratio for the first MIC is 1 (horizontal
opening=106.2 psec) while the ISI-Ratio for the second MIC is 2
(horizontal opening=60 psec). The throughput is 5.33 Gbps/wire. The
eye-diagrams are shown in FIG. 5.
[0124] Case 2: We choose the MICs as (1, -1, 0) and (1/2, 1/2, -1).
The outputs of the second MIC becomes 3/2, -3/2, 3/2, -3/2. The two
MICs can still distinguish the codewords but the ISI_Ratio is 1 for
both MIC's (horizontal opening=106.2 psec for both MICs). The
throughput is 5.33 Gbps/wire. The eye-diagrams are shown in FIG.
6.
[0125] This example confirms that MICs with the same ISI-Ratio on
the same channel under the same clock rate lead to approximately
the same horizontal eye openings, and that the right choice of the
MICs is crucial for the signal integrity of the transmission
system.
[0126] A second embodiment of a signaling design utilizes linear
coding; that is, the signaling scheme is defined by means of a
matrix-vector product. The vector contains the bits to be
transmitted and the matrix defines the transformation applied to
the bits in order to generate the codewords. In this scheme, one
can in principle send N-1 bits over N wires. The vector
representing the bits is of the form (0, .+-.1, .+-.1, . . . ,
.+-.1). The coding matrix has the first row as all ones and the
other N-1 rows are orthogonal to first row and span the remaining
(N-1)-dimensional subspace; thus, this is an orthogonal matrix as
previously described herein. The MIC coefficients are found simply
from the corresponding N-1 columns of the inverse of the coding
matrix.
[0127] An interesting property of the linear coding scheme based on
an orthogonal matrix is that the output of all the MICs are simply
of the form .+-.1 and therefore the ISI-Ratio is guaranteed to be
1. As will be seen, this guarantee has a profound effect on
communications system performance using such codes.
[0128] In a further embodiment, we can make use of the P3 code
above and build the following Glasswing coding matrix to send 5
bits over 6 wires:
S A = w where A = [ 1 1 1 1 1 1 1 - 1 0 0 0 0 1 1 - 2 0 0 0 0 0 0 1
- 1 0 0 0 0 1 1 - 2 1 1 1 - 1 - 1 - 1 ] [ Eqn . 13 ]
##EQU00006##
and S=a row vector of information bits [0, S.sub.0, S.sub.1,
S.sub.2, S.sub.3, S.sub.4] representing antipodal weights (e.g.,
.+-.1 for logic bits 0, 1, or alternatively .+-.1/3), and w is the
codeword vector to be transmitted [w.sub.0, w.sub.1, w.sub.2,
w.sub.3, w.sub.4, w.sub.5]. If antipodal weights of .+-.1 are used,
then the transmitted codewords may then be normalized by a factor
of 1/3 to result in codewords having a quaternary alphabet of
{.+-.1/3, .+-.1}. Furthermore, because of the selection of the
sub-channel code words of equation 13, the linear combinations of
the sub-channel codes that form the codewords that are ultimately
transmitted will provide a reduced alphabet of codeword elements.
That is, at least one of the sub-channel code vectors has a
non-normalized magnitude and wherein the row-wise linear
combinations of the reduced-alphabet provide a reduced alphabet. It
may be observed that sub-channel code vectors having three non-zero
elements comprise a first non-zero element twice as large as each
of a second non-zero element and a third non-zero element, and a
position of the first non-zero element is aligned to where only one
other sub-channel codeword vector has a non-zero element.
[0129] The inverse matrix whose columns define the MIC coefficients
is simply the transpose of the matrix A of Eqn. 13 with appropriate
normalization, and was previously described as Eqn. 3. The
throughput is 6.66 Gbps/wire. The eye-diagrams of this scheme are
shown in FIG. 7A through FIG. 7E. The horizontal opening is 106.2
psec for all the MICs. The five bit over six wire or 5b6w code of
Eqn. 13, MIC matrix of Eqn. 3, and codewords of Table 1 will herein
be called the "Glasswing" code.
[0130] A third embodiment of a signaling design also utilizes
linear coding and is called Ensemble-NRZ or ENRZ. A full
description of ENRZ may be found in [Cronie I]. ENRZ has 8
codewords of the form .+-.perm(1, -1/3, -1/3, -1/3) where "perm"
means all the permutations of the coefficients, and 3 MICs of the
form (1/2, -1/2, 1/2, -1/2), (1/2, 1/2, -1/2, -1/2) and (1/2, -1/2,
-1/2, 1/2), and can send 3 bits over 4 wires per unit interval. The
coding matrix is a scaled version of the 4.times.4-Hadamard
matrix:
A = 1 3 [ 1 1 1 1 1 - 1 1 - 1 1 1 - 1 - 1 1 - 1 - 1 1 ] [ Eqn . 14
] ##EQU00007##
[0131] The scale factor 1/3 is chosen so that the final values are
constrained to be between -1 and 1. The throughput is 6 Gbps/wire.
The eye-diagrams for ENRZ signaling are shown in FIGS. 8A through
8C. The horizontal opening is 106.2 psec for the three MICs.
[0132] A fourth embodiment is a vector-signaling code design having
the property of containing different MICs with different ISI-Ratios
as well as non-active codewords for the MICs. This category of
codes allows the designer to provide codes with fewer number of
MICs compared to the codes with the same throughput and all
ISI-Ratios equal. Moreover, as we see in the following examples,
the MICs with smaller ISI-Ratio are generally ones that make the
linear combination on more wires compared to the MICs with higher
ISI-Ratios. Since these MICs provide more horizontal opening, this
property makes these MICs more tolerant to higher skew when more
wires are involved in the linear combination. An example of this
design strategy is drawn from [Shokrollahi I], which describes a
code having 24 codewords of the form .+-.(perm(1,1,0,-1)|-1) where
"perm" means all the permutations of the coefficients. This code
can send 4.5 bits over 5 wires in each unit interval. There are 7
MICs in this scheme, the first 6 are all the pairwise comparisons
between the first four wires and all have ISI-Ratio 2. The last MIC
has coefficients (1/4, 1/4, 1/4, 1/4, -1) and has ISI-Ratio 1. The
throughput is 7.2 Gbps/wire. The eye-diagrams in s 9A and 9B show
the wider horizontal opening of the last MIC (FIG. 9B, horizontal
opening=106.2 psec) compared to the pairwise comparator MICs with
higher ISI-Ratios (FIG. 9A, horizontal opening=62.5 psec).
[0133] The final example embodiment is a code that sends 8 bits
over 8 wires using 13 MICs. The codewords are of the
form.+-.(perm(1,1,0,-1)|perm(-1,-1,0,1)) where "perm" means all the
permutations of the coefficients. The MIC's are 6 pairwise
comparators on the first four wires, 6 pairwise comparators on the
second four wires, and one MIC (1,1,1,1,-1,-1,-1,-1)/4. The last
input MIC has ISI ratio of 1 while each of the pairwise comparator
MICs has an ISI-Ratio of 2. The throughput is 8 Gbps/wire. The
eye-diagrams are shown in FIGS. 10A and 10B. The MIC with ISI-Ratio
1 has horizontal opening of 106.2 psec (FIG. 10B) while the other
MICs with ISI-Ratio 2 has horizontal opening of 62.5 psec (FIG.
10A).
[0134] To allow direct comparison of these embodiments, we
calculate the horizontal eye openings for the previously described
ENRZ, NRZ and PAM-4 signaling schemes and then plot the
relationship of horizontal eye opening as a function of the
throughput. The throughput values are normalized for comparison
purposes, as the required baud rate to obtain the same throughput
differ for each of these signaling schemes.
[0135] The result is shown in the graph of FIG. 11. Comparing NRZ
and ENRZ, the ISI-Ratio of both is equal to 1 while the baud rate
of ENRZ is 2/3 that of NRZ. Comparing PAM4 and ENRZ, the baud rate
of ENRZ is 4/3 of PAM4, but its ISI-Ratio is 3 times smaller. Thus,
the embodiment having the lowest ISI-Ratio, ENRZ with its ISI-Ratio
of 1, is the overall winner across the throughput range,
illustrating that low ISI-Ratio is a predictor of good
communications system performance
[0136] Normalizing Sub-Channel Gain
[0137] Performing a numerical analysis of the codes of Table 1 and
the receiver defined by the matrix of Eqn. 3, it may be observed
that comparators defined by matrix rows 1, 3, and 5 produce output
values of .+-.2/3, whereas the comparators defined by matrix rows 2
and 4 produce output values of .+-.1. The loss in vertical eye
opening compared to differential signaling is therefore
20*log.sub.10(3)=.about.9.5 dB. This output level variation is the
result of our loosened definition of orthogonality for the receive
matrix, as the non-unity values of the diagonal M.sup.TM=D
represent non-unity gains for the corresponding sub-channels. As
will be apparent to one familiar with the art, normalizing the
matrix (i.e. scaling its elements such that the diagonal values are
1), will result in a system having constant unity gain across all
sub-channels. However, such known normalization methods may lead to
suboptimal embodiments as the large number of distinct normalized
coefficient values, in many cases including irrational values, are
difficult to embody in a practical system.
[0138] At least one embodiment retains the unnormalized matrix as
exemplified by Eqn. 3 with its convenient-to-implement coefficient
values, and instead compensates for the variation of sub-channel
amplitude by modifying the input signal amplitudes modulating the
various sub-channel. For example, a hypothetical system having
eight sub-channels of unity gain and one sub-channel of 0.8 gain
will ultimately be SNR limited by the latter output. Thus,
increasing the last sub-channel's transmission input to {+1.2,
-1.2} rather than {+1, -1} will bring up the corresponding channel
output. Alternatively, decreasing all other sub-channel inputs to
{+0.8, -0.8} will lower the corresponding channel outputs, such
that all channels have equal output levels with less transmit power
required.
[0139] This compensation technique is not without cost, however. As
taught by [Shokrollahi IV], modifying the input vector in this
manner leads to an increase in the alphabet size needed (and thus,
the number of discrete signal levels the transmitter must generate)
to communicate the codewords over the channel. [Shokrollahi IV]
teaches numeric methods to select suitable modulation amplitudes
that result in closer matching of sub-channel outputs with minimal
expansion of the required alphabet size.
[0140] Applying the procedure taught by [Shokrollahi IV], the
optimal initial code set for Glasswing is calculated to be (0,
.+-.3/8, .+-.1/4, .+-.3/8, .+-.1/4, .+-.3/8) with the corresponding
code having an alphabet of size 10 given by (1, 7/8, 1/2, 1/4, 1/8,
-1/8, -1/4, -1/2, -7/8, -1). The resulting codewords are shown in
Table 2, with the new code herein called the 5b6w.sub.--10.sub.--5
code. One embodiment of a driver generating these signal levels is
shown as FIG. 22. Each driver slice 1010 produces one wire output
signal, with multiple driver elements on each slice being enabled
in combination so as to produce the 10 distinct output levels
required.
TABLE-US-00002 TABLE 2 .+-.[1, 1/4, -1/8, 1/4, -1/2, -7/8] .+-.[1,
1/4, -1/8, -1/4, -1, 1/8] .+-.[1/4, 1, -1/8, 1/4, -1/2, -7/8]
.+-.[1/4, 1, -1/8, -1/4, -1, 1/8] .+-.[1/2, -1/4, 7/8, 1/4, -1/2,
-7/8] .+-.[1/2, -1/4, 7/8, -1/4, -1, 1/8] .+-.[-1/4, 1/2, 7/8, 1/4,
-1/2, -7/8] .+-.[-1/4, 1/2, 7/8, -1/4, -1, 1/8] .+-.[1, 1/4, -1/8,
-1/2, 1/4, -7/8] .+-.[1, 1/4, -1/8, -1, -1/4, 1/8] .+-.[1/4, 1,
-1/8, -1/2, 1/4, -7/8] .+-.[1/4, 1, -1/8, -1, -1/4, 1/8] .+-.[1/2,
-1/4, 7/8, -1/2, 1/4, -7/8] .+-.[1/2, -1/4, 7/8, -1, -1/4, 1/8]
.+-.[-1/4, 1/2, 7/8, -1/2, 1/4, -7/8] .+-.[-1/4, 1/2, 7/8, -1,
-1/4, 1/8]
[0141] With this code all comparators as in Eqn. 3 produce output
values of .+-.3/4. The increase in vertical eye opening compared to
the unmodified 5b6w code is 20*log.sub.10((3/4)/(2/3))=.about.1 dB.
The termination power of 5b6w.sub.--10.sub.--5 is about 88% of the
termination power of the unmodified 5b6w code, so even at a smaller
termination power, 5b6w.sub.--10.sub.--5 leads to a fractionally
improved vertical eye opening. However, the implementation cost to
obtain this improvement is the added complexity within the
transmitter to encode data into an internal representation capable
of selecting among ten rather than four symbol values per wire, and
line drivers capable of generating ten discrete output levels
rather than four. Such a transmitter embodiment would be fully
compatible with any Glasswing receiver defined by the matrix of
Eqn. 3, and would require less line driver power than an unmodified
5b6w transmit driver. Because of this generally disadvantageous
cost/benefit tradeoff, most embodiments of Glasswing transmitters
are expected to utilize unmodified 5b6w signal levels; where they
are cost-effective, alternative embodiments incorporating the
5b6w.sub.--10.sub.--5 modifications may transparently be
interchanged and/or interoperate with unmodified ones.
[0142] Basic Glasswing Receiver
[0143] An embodiment of the Glasswing receiver as defined by the
matrix of Eqn. 3 is shown in FIG. 14. The six input wires are
w.sub.0 through w.sub.5, and the five sub-channel outputs are
S.sub.0 through S.sub.5. In the drawing convention used here, each
of the inputs of the multiple-input comparators 210 through 250 is
identified by a weight, representing the relative contribution of
that input to the final result output, as defined by the matrix
rows of Eqn. 3 defining each MIC. Thus, 210 and 230 may be seen to
be conventional dual input differential comparators, each having
one positive and one negative input of equal and opposite weight.
Comparators 220 and 240 each have two positive inputs each
contributing one half to the total positive value, and one input
contributing the entire negative value. Comparator 250 has three
inputs each contributing one third to the total positive value, and
three inputs each contributing one third to the total negative
value.
[0144] Embodiments of the five multi-input comparators
corresponding to rows two through six of the matrix of Eqn. 3 may
use the expanded differential pair design of [Holden I] or the
alternative design of [Ulrich I]. In some embodiments,
Continuous-Time Linear Equalization (CTLE) is also incorporated in
the multi-wire comparator stage. Transistor-level schematics of
such embodiments suitable for use with Glasswing are described in
[Shokrollahi IV] and provided as examples herein as FIGS. 16
through 20. Each design is shown both with and without integrated
CTLE and where applicable, alternative embodiments are
illustrated.
[0145] The embodiment of FIG. 16 or its alternative embodiment of
FIG. 17 is suitable for use as comparator 250 of FIG. 14. The
embodiment of FIG. 18 or its alternative embodiment of FIG. 19 is
suitable for use as comparator 220, and with the obvious
substitution of inputs w0, w1, and w2 with w3, w4, and w5, for use
as comparator 240. The embodiment of FIG. 20 is suitable for use as
comparator 210, and with the same substitution of inputs, for
comparator 230.
[0146] In general, Decision Feedback Equalization (DFE) techniques
are not required in a typical Glasswing embodiment, where the
channel length is typically small and signal propagation
characteristics good. No limitation is implied, however, as DFE and
other known art methods may be combined in a straightforward manner
with the described invention. In at least some such embodiments,
DFE is performed not on the received wire signals, but instead on
the sub-channels. In such configurations, the DFE history and
correction computations may be performed on binary signal values,
rather than on quaternary (for 5b6w) or decinary (for
5b6w.sub.--10.sub.--5) wire signals, as would be required where DFE
is performed directly on wire signals.
[0147] Glasswing Transmitter
[0148] A variety of known art solutions may be applied to a
Glasswing transmitter, depending on the specific characteristics of
the communications channel and the process used for fabricating the
semiconductor devices. Extremely short and/or moderate data rate
Glasswing channels may utilize high impedance "CMOS-like"
point-to-point interconnections, which are optimally driven using
conventional voltage-mode drivers. Higher speed and/or longer
channels having matched impedance terminations may preferably be
driven using current-mode drivers.
[0149] It will be apparent to one skilled in the art that the
required multilevel output drivers represent a specialized instance
of Digital-to-Analog (D/A) conversion, a well-known field in the
art. Thus, the corpus of known methods of D/A conversion, including
those based on resistive chains, resistive ladders, summation of
regulated voltages or currents, or selection among regulated
voltages or currents, may be used in association with the present
invention. Regulation may be to absolute values, such as a
predetermined voltage or current, or may be relative or
proportional to a provided level such as the integrated circuit
supply voltage.
[0150] One embodiment of a resistive source terminated driver for a
5b6w transmitter using the teachings of [Ulrich III] is shown in
FIG. 21. Each driver slice 910 produces one wire output signal,
with multiple driver elements on each slice being enabled in
combination so as to produce the four distinct output levels which
must be generated by the transmitter, representing the codeword
alphabet of +1, +1/3, -1/3, and -1 symbols. Thus, as will be
obvious to one familiar with the art, the output of Encoder in FIG.
21 is comprised of at least two binary selector signals per driver
slice 910, allowing selection of output values representing at
least the alphabet of four symbols per wire. Larger alphabets may
be utilized as previously described for optimization of Glasswing
receive channel gain by utilizing modified modulation values, at
the cost of additional transmitter complexity such as wider sets of
selector signals between the Encoder and the wire drivers to enable
selection of output values representing at least the larger
alphabet set. One embodiment of a driver generating multiple signal
levels is shown as FIG. 22.
[0151] Known transmission driver equalization techniques such as
Finite Impulse Response filtering may be used in combination with
Glasswing, as required by the particular channel characteristics
and system design goals of the embodiment.
[0152] In one embodiment, a method 2300 is described with respect
to FIG. 23. At block 2302 a set of information bits is received. At
block 2304, a reduced-alphabet codeword vector is generated with an
encoder. The encoder forms a weighted sum of sub-channel code
vectors wherein a weighting of each sub-channel code vector is
based in part on a corresponding antipodal weight determined by a
corresponding information bit in the set of received bits. In
various embodiments, the encoder is an orthogonal encoding logic
circuit, and it generates a reduced-alphabet codeword vector by
mapping the received set of information bits to a respective
reduced-alphabet codeword vector and outputting a reduced-alphabet
codeword vector selector signal. The selector signal may then be
provided to the plurality of line drivers. Each line driver of the
plurality of line drivers uses a portion of the reduced-alphabet
codeword vector selector signal to output a corresponding current
or voltage representing the reduced-alphabet codeword vector
element. As described previously, the sub-channel code vectors form
a reduced-alphabet weight matrix, and they are also are mutually
orthogonal and orthogonal to a common mode vector.
[0153] At block 2306, the reduced-alphabet codeword vector is
transmitted using a plurality of line drivers. In particular, the
reduced-alphabet codeword vector comprises a plurality of
reduced-alphabet codeword vector elements, and each
reduced-alphabet codeword vector element is transmitted on a wire
of a multi-wire communication bus by a respective one of the
plurality of line drivers. In some embodiments, the
reduced-alphabet codeword vector elements are selected from the
normalized set of elements {+1, +1/3, -1/3, -1}.
[0154] The method 2300 may be used with a system having five
sub-channel vectors, for use with a six-wire multi-wire
communication bus. The antipodal weights are selected from the
normalized set of elements {+1, -1}. Alternative methods may
modulate an antipodal weight of at least one sub-channel according
to a clock signal. Further, in some embodiments, a voltage offset
may be modeled as including a constant weight applied to the common
mode sub-channel vector.
[0155] A method 2400 will be described with respect to FIG. 24. At
block 2402, a set of signals is received over a multi-wire
communications bus. The set of signals represents a
reduced-alphabet codeword vector formed from an antipodal-weighted
sum of sub-channel code vectors. At block 2404 a plurality of
sub-channel multi-input comparators generates a plurality of
sub-channel output signals. Each multi-input comparator of the
plurality of multi-input comparators implements an input weight
vector corresponding to a sub-channel code vector, and outputs an
antipodal output signal. At block 2406, a set of information bits
is determined based on the respective antipodal output signals,
such as by slicing the antipodal output signals with respect to a
reference value. In one embodiment, the reduced-alphabet codeword
vector elements are from the normalized set of elements {+1, +1/3,
-1/3, -1}, and there are five sub-channel multi-input comparators,
and the multi-wire communication bus comprises six wires.
[0156] Glasswing with Embedded Clock
[0157] The embodiment of FIG. 15 utilizes the basic Glasswing
receiver of FIG. 14, further incorporating an embedded clock signal
carried by one sub-channel. Typically, when embedding a clock in a
sub-channel, the highest-amplitude channel is chosen to carry the
clock, as taught by [Shokrollahi III]. As a general design
practice, this choice generally results in the clock channel having
the best SNR, and thus the cleanest output results.
[0158] However, with the modest gain variations seen across the
various Glasswing channels in actual embodiments, there is no
significant practical motivation to select a particular sub-channel
for the clock based on that criterion. In the embodiment of FIG.
15, the sub-channel defined by the bottom row of the matrix of Eqn.
3 is designated to carry the clock, as its symmetry and delay
characteristics in a practical embodiment were found to be
conducive to integration with the delay-and-sample behavior of
conventional clock/data recovery circuits. One example of such a
circuit is shown as 380, being comprised of clock edge detector
382; a fixed, adjustable, or DLL-controlled time delay 385, and
sample-and-hold or equivalent data samplers 388.
Embodiments
[0159] In one embodiment, a method comprises: receiving a set of
information bits; generating a reduced-alphabet codeword vector
with an encoder by forming a weighted sum of sub-channel code
vectors wherein a weighting of each sub-channel code vector is
based in part on a corresponding antipodal weight determined by a
corresponding information bit in the set of received bits, and
wherein the sub-channel code vectors form a reduced-alphabet weight
matrix, and are mutually orthogonal and orthogonal to a common mode
vector; and, transmitting the reduced-alphabet codeword vector
using a plurality of line drivers, wherein the reduced-alphabet
codeword vector comprises a plurality of reduced-alphabet codeword
vector elements, and each reduced-alphabet codeword vector element
is transmitted on a wire of a multi-wire communication bus by a
respective one of the plurality of line drivers.
[0160] In one embodiment, the encoder is an orthogonal encoding
logic circuit, and generating a reduced-alphabet codeword vector
comprises mapping the received set of information bits to a
respective reduced-alphabet codeword vector and outputting a
reduced-alphabet codeword vector selector signal.
[0161] In one embodiment, the reduced-alphabet codeword vector
selector signal is provided to the plurality of line drivers, and
wherein each line driver of the plurality of line drivers uses a
portion of the reduced-alphabet codeword vector selector signal to
output a corresponding a current or voltage representing the
reduced-alphabet codeword vector element.
[0162] In one embodiment, at least one of the sub-channel code
vectors has a non-normalized magnitude and wherein the row-wise
linear combinations of the reduced-alphabet provide a reduced
alphabet.
[0163] In one embodiment, the reduced-alphabet codeword vector
elements are selected from the normalized set of elements {+1,
+1/3, -1/3, -1}. There are five sub-channel vectors, and the
multi-wire communication bus comprises six wires.
[0164] In one embodiment, the antipodal weights are selected from
the normalized set of elements {+1, -1}. In one embodiment, an
antipodal weight of at least one sub-channel is modulated according
to a clock signal.
[0165] In one embodiment, a non-modulated common mode sub-channel
vector is included to provide a voltage offset.
[0166] In one embodiment, sub-channel code vectors having three
non-zero elements comprise a first non-zero element twice as large
as each of a second non-zero element and a third non-zero element,
and a position of the first non-zero element is aligned to where
only one other sub-channel codeword vector has a non-zero
element.
[0167] In one embodiment, a method comprises: receiving a set of
signals over a multi-wire communications bus, the set of signals
representing a reduced-alphabet codeword vector formed from an
antipodal-weighted sum of sub-channel code vectors; generating a
plurality of sub-channel output signals using a plurality of
sub-channel multi-input comparators, each multi-input comparator of
the plurality of multi-input comparators implementing an input
weight vector corresponding to a sub-channel code vector, and
outputting an antipodal output signal; determining a set of
information bits from the respective antipodal output signals.
[0168] In one embodiment, the method may determine the set of
information bits is done using a plurality of signal slicers. In
one embodiment, the reduced-alphabet codeword vector elements are
from the normalized set of elements {+1, +1/3, -1/3, -1}, and there
are five sub-channel multi-input comparators, and the multi-wire
communication bus comprises six wires.
[0169] In one embodiment, an apparatus comprises: a plurality of
signal conductors for receiving a set of information bits; an
encoder connected to the signal conductors for generating a
reduced-alphabet codeword vector by forming a sum of sub-channel
code vectors wherein a weighting of each sub-channel code vector is
based in part on a corresponding antipodal weight determined by a
corresponding information bit in the set of received bits, and
wherein the sub-channel code vectors form a reduced-alphabet weight
matrix, and are mutually orthogonal and orthogonal to a common mode
vector; and a plurality of line drivers for transmitting the
reduced alphabet codeword vector, wherein the reduced-alphabet
codeword vector comprises a plurality of reduced-alphabet codeword
vector elements, and each reduced-alphabet codeword vector element
is transmitted on a wire of a multi-wire communication bus by a
respective one of the plurality of line drivers.
[0170] In one embodiment, the encoder further comprises a logic
circuit that maps the received set of information bits to a
respective reduced-alphabet codeword vector and ouputs a
reduced-alphabet codeword vector selector signal.
[0171] In one embodiment, the apparatus includes wire connections
for providing the reduced-alphabet codeword vector selector signal
to the plurality of line drivers, wherein each line driver of the
plurality of line drivers uses a portion of the reduced-alphabet
codeword vector selector signal to output a corresponding a current
or voltage representing the reduced-alphabet codeword vector
element.
[0172] In one embodiment, the encoder is configured to produce a
reduced-alphabet comprising a set of elements {+1, +1/3, -1/3, -1}.
The multi-wire communications bus comprises six wires to transmit a
set of five sub-channel code vectors. In one embodiment, the
encoder is configured to select the antipodal weights from a set of
elements {+1,-1}.
[0173] The encoder is configured to modulate at least one
sub-channel code vector according to a clock signal. The encoder is
configured to provide a voltage offset by providing a non-modulated
common mode sub-channel vector.
[0174] In one embodiment, an apparatus comprises: a multi-wire
communications bus configured to receive a set of signals, the set
of signals representing a reduced-alphabet codeword vector formed
from an antipodal-weighted sum of sub-channel code vectors; a
plurality of sub-channel multi-input comparators, each multi-input
comparator of the plurality of multi-input comparators implementing
an input weight vector corresponding to a sub-channel code vector,
and outputting an antipodal output signal; a plurality of signal
slicers configured to determine a set of information bits from the
respective antipodal output signals.
[0175] In one embodiment, the apparatus may receive a
reduced-alphabet codeword vector elements selected from the
normalized set of elements {+1, +1/3, -1/3, -1}, and there are five
sub-channel multi-input comparators, and the multi-wire
communication bus comprises six wires.
[0176] In a further embodiment, a diagnostic tool is provided using
a method comprising: receiving a plurality of candidate codewords;
calculating a ratio for each of a plurality of multi-input
comparators, of the maximum distance of an active codeword to a
multi-input comparator hyperplane passing through the origin and
the minimum distance of an active codeword to the multi-input
comparator hyperplane passing through the origin; and exporting the
ratio for each central multi-input comparator for analysis.
Furthermore, the hyperplane may contain an offset and is shifted,
and the ratio is the maximum distance of an active codeword to the
shifted hyperplane to the minimum distance of an active codeword to
the shifted hyperplane.
[0177] The examples presented herein illustrate the use of vector
signaling codes for point-to-point wire communications. For
purposes of explanation, interconnection between a first
transmitting device and a second receiving device have been
described as unidirectional signaling networks. However, this
should not been seen in any way as limiting the scope of the
described invention. The methods disclosed in this application are
equally applicable to networks capable of alternating signaling
direction (i.e. half duplex), or of providing simultaneous
communication between separate transmitters and receivers in both
directions (i.e. full duplex.) Similarly, more than one instance of
the described invention may be used essentially in parallel to
communicate wider data words and/or provide higher overall
communication bandwidth, with individual instances having
individual embedded clocks, or two or more instances sharing a
common clock. Other communication media including optical and
wireless communications may similarly be used rather than the
described wire interconnections. Thus, descriptive terms herein
such as "voltage" or "signal level" should be considered to include
equivalents in other measurement systems, such as "optical
intensity", "RF modulation", etc. As used herein, the term
"physical signal" includes any suitable behavior and/or attribute
of a physical phenomenon capable of conveying information. Physical
signals may be tangible and non-transitory.
* * * * *