Companies connect chips in electronic devices via multiple wires. This is because the required throughput immediately saturates the available bandwidth of one, (or even a few) wires.
Chord signaling coordinates the traffic on these already connected wires to better combat noise. This increases the signal to noise ratio (SNR), which in turn both:
It is a generalization of already existing differential signaling technology, which is becoming obsolete due to faster communication requirements over more challenging channels.
Chord signaling theory defaults to differential signaling when transmitting data over two wires. When we increase the number of wires however, we are able to keep the same advantages of differential signaling whilst improving pin efficiency.
Differential signaling sends one bit of information over two wires. One wire carries the signal, the other carries the inverted signal. These are known as complementary voltage signals. A comparator at the receiving end of the signals validates these signals.
This is half as efficient as transmitting one bit of information over each wire. This means that we need to double the transmission frequency, or that that differential pin-efficiency is 1/2.
This type of signaling is desirable for high speed links however, as it:
With chord signaling we can send more bits of data over more wires whilst keeping all of the above desirable properties. For example, with our CRNZ chord signaling method, we can send five bits of data over six wires. This is the signaling method used in our Glasswing products.
Chord signaling is only part of the solution however. Apart from the signaling method itself, it requires an integrated approach that includes the circuits, architectures, practical simulations, and diagnostic applications. At Kandou Bus, we construct, analyze, and implement chord signaling in practical products.
See below for a comparison of our chord signaling versus other similar schemes:
In this section we compare different signaling techniques on four wires against each other. The channel model for these comparisons is extracted using connectors, packages, and PCB traces and has the response as follows:
The parameters below apply for all simulations. For each signaling method in the comparison, we record the parameters of the worst eye diagram (in terms of vertical and horizontal opening).
The most straightforward way to increase the throughput on communication wires is to use multiple levels on a pair of wires. This technique is commonly called Pulse Amplitude Modulation (PAM). If there are n levels used, then the scheme is more precisely called PAM-x. For example,
Lowering the baud-rate does not necessarily improve the performance. This is due to inter-symbol interference (ISI) and the concept of ISI-ratio. This is a Figure of Merit (FoM) describing the susceptibility of a signaling scheme to ISI. The ISI-ratio is a number ≥ 1, and the larger it is, the more susceptible is the signaling scheme to ISI. It is also a proxy for the size of the alphabet at the input of the slicer for the given comparators. The ISI-ratio of PAM-X signaling is X-1, for any X ≥ 2.
Almost all previous multiwire signaling schemes use a type of coding that David Slepian introduced in his 1965 Permutation Modulation paper. A permutation modulation code consists of all the permutations of a base vector (a_1,…,a_n). If the coordinates of the transmitted vector are perturbed independently by additive white Gaussian noise, then Slepian proves that the maximum likelihood decoder for this code is the one that ranks the entries and computes from that the permutation that transforms the base vector to the received one. For example, if the base vector is [1,0,0,-1] and the received vector is [0.1, -1.4, 0.3, 0.9], then the ranking information recovers the vector [0,-1,0,1].
The permutation modulation code generated by the base vector (a_1,…,a_n) is denoted by PM([a_1,…,a_n]). The number of codewords of this code is n!/c_1! c_2!…c_t! if the base vector has t distinct coordinates, each appearing with multiplicity c_1, c_2, …,c_t. For example, the number of codewords of PM([1,0,0,-1]) is 4!/2!1!1!=12.
We can compute the complete ranking in a variety of ways, though for chip-to-chip communication the easiest is to compute all pairwise comparisons of wire values and deducing the ranking from that. Care is required when comparing two values that are equal in the base vector as the outcome at the receiver can be anything, even if the channel is perfectly noiseless. This is because the behavior of electronic comparison circuit is undefined when the incoming values are too close. In previous literature, these comparisons produce “don’t care” results. This means that the algorithm which computes the ranking should not take into account the outcome of this comparison.
For example, suppose that we are using PM([1,0,0,-1]) together with all six pairwise comparators. For now, we denote a comparator comparing wires with indices a and b by a:b. If the value on wire a is greater than that on wire b, then we denote this by a +, if it is smaller by a -, and if they are equal, then we denote it by X. The following table summarizes the results:
Permutation modulation codes can increase the throughput per wire compared to differential signaling. For example, since PM([1,0,0,-1]) has 12 codewords, it can send 3.5 bits over an interface of four wires, which is 75% more than differential signaling. The largest permutation modulation code on four wires has 24 codewords, hence can send 4.5 bits over an interface with 4 wires. This is 2.25 times more data than differential signaling. The code is PM([1,1/3,-1/3,-1]), and has quaternary values on the wires like PAM-4 signaling.
The main issue with permutation modulation codes for chip-to-chip communication is their susceptibility to ISI noise, and possibly crosstalk (depending on the routing of the communication wires).
Where does the ISI come from? This is because at the input of the slicers within the comparators, values of different magnitudes are present. The ratio between the largest and the smallest possible magnitudes is essentially the ISI-ratio of the comparator. We show how the ISI-ratio is calculated without going into the mathematical details of the derivation of this algorithm:
Think of a comparator as a circuit that takes the difference of the values on its two legs, followed by a slicer which compares the difference to a preset value (and determines the bit). Thinking this way, each slicer sees at its input the values -2, -1, 0, 1, and 2, wherein the value 0 is not really taken into account for the decision. For example, the comparator 1:2 sees the values ±2 on the codewords ±[1,-1,0,0], the values ±1 on the codewords ±[1,0,-1,0], and the value 0 on the codeword [0,0,-1,1]. The ratio of the magnitudes it sees is therefore 2/1=2. This number is the ISI-ratio of this comparator. By symmetry all comparators of PM([1,0,0,-1]) have the same ISI-ratio 2.
It may seem that there would have been an easier way to look at the ISI effect on this code: the symbols on the wires are ternary, and hence we expect to see the ISI caused by ternary signaling. It turns out that for PM-codes this answer is accidentally true. In fact, the theory of Chord signaling™ reveals that the number of levels on the wires does not have a direct effect on the ISI. It is only the number of levels present at the slicer, and more importantly the ratio between the largest and the smallest magnitude, which is important. The next section provides some more examples.
The ENRZ code consists of the codewords ±[-1,1/3,1/3,1/3], ±[1/3,-1,1/3,1/3], ±[1/3,1/3,-1,1/3], and ±[1/3,1/3,1/3,-1]. The comparators are av(0,1):av(2,3), av(0,2):av(1,3) and av(0,3):av(1,2), where av(a,b) is the average value of values on wires a and b. The code has eight codewords, so we can send three bits in every UI. This means that the pin-efficiency of this code is 0.75, which is 50% more than that of NRZ. On the other hand, it is only 75% of the pin-efficiency of PAM-4 signaling. So, without further investigation, we expect ENRZ to perform worse than PAM-4.
However, this code has a very interesting property: Its ISI-ratio is 1 (whereas that of PAM-4 is 3). To see this, we compute the values of the comparators before the slicer; that is, we compute the difference of the values at the two legs of the comparators for all the codewords, the same way we did that for the code PM([1,0,0,-1]) above.
Interestingly, for every comparator, the magnitude of the values seen before the slicer is the same regardless of the codeword. This is not the case for PAM-4 signaling, or in fact for any PAM-X signaling with X > 2. This property is key to the superior ISI performance of ENRZ and manifests itself in the superior horizontal opening of the eye, as we will see later.
A bird’s eye view of the architecture ENRZ is given in the figure below. The values on the wires are quaternary, whereas the values before the slicer are binary. The comparators directly produce the output bits, without further decoding.
High level architecture of a link based on ENRZ signaling. Note that while the wires carry quaternary signals, only binary signals are observed at the input to the slicers, leading to superior ISI performance.
Therefore, ENRZ satisfies all the properties of differential signaling stated above:
ENRZ is not just limited to NRZ. For any PAM-X signaling scheme, there is an equivalent EPAM-X signaling on four wires, yielding 1.5 times the throughput of PAM-X while keeping the ISI-ratio the same. For example, Kandou’s EP3L code consists of 16 codewords with five levels, and can be decoded using the same comparators as ENRZ, followed by a PAM-3 slicer. A bird’s eye view of the architecture of this link is given below:
High level architecture of a link based on EP3L signaling. Note that while the wires carry five-level signals, ternary signals are observed at the input to the slicers. These are detected via PAM-3 slicers, each providing two bits. The final four bits are calculated by a very efficient decoder. The pin-efficiency of this system is 1.
The ISI-ratio of EP3L is 2, while it has the exact same pin-efficiency as PAM-4. This means that the eye diagrams associated with this signaling are expected to produce a larger horizontal opening. Indeed, this is the case, as can be seen in the following table.
The additional “6 dB” version of ENRZ is obtained by adding a 6 dB gain stage to the RX frontend, effectively changing the averaging to a summation. Since ENRZ does not have any references, there are no linearity issues associated with this gain stage. This is not true for other signaling schemes in which the slicer has references, such as PAM-X, or EP3L.
The following figure summarizes the above results. The horizontal axis corresponds to the horizontal opening (in pico-seconds) and the vertical axis corresponds to the vertical opening (in mV). Both ENRZ and EP3L signaling schemes exhibit the best horizontal opening. In addition, ENRZ exhibits also the best vertical opening. In particular, both ENRZ and EP3L are better than PAM-4 signaling in this case.
Horizontal and vertical eye openings for the examples above.
The figure does not show the relative advantage of ENRZ for a large range of throughputs. In fact, if we sweep the per-wire-speed from 7 Gbps all the way to 28 Gbps (corresponding to the speeds of the CEI-56G standards), then we obtain the following tables:
As we see, ENRZ has the best performance among these signaling methods. For high speed, its horizontal opening is almost twice that of PAM-4 even though its fundamental frequency is higher. Moreover, since ENRZ is inherently a binary signaling method, it is much better compatible with advanced equalization schemes such as decision feedback equalization than PAM-4 is.
A graphical representation of this table is given by the following two figures:
Vertical opening of various signaling schemes as a function of the throughput per wire.
Horizontal opening of various signaling schemes as a function of the throughput per wire.
To answer this, we need to clarify what a chordal code is. We find that the best way of describing a chordal code is a geometric view: in a first approximation, a chordal code consists of a number of points in the n-dimensional space with coordinates between -1 and +1, together with a number of affine hyperplanes that separate these points. The hyperplanes correspond to the comparators (and if they are affine, then they need references), and the points correspond to the codewords that are transmitted on the collection of n wires. We didn’t really articulate exactly what it means for the comparators to separate the points; an exact definition will make things a bit more complicated, as it needs to take care of situations that we denoted by “don’t cares” above. But for now, perhaps the figure on the left is a good way of thinking of hyperplanes separating the points: the hyperplanes define “chambers”, and we should not have two points in the same chamber. In the figure on the left, the chordal code has 24 codewords, and 6 comparators. Everything is in three dimensions, so this corresponds to transmitting 24 codewords (4.5 bits) on three wires, and detecting them with 6 comparators. Though it is not at all clear from this description, this figure is completely equivalent to the code PM([1,1/3,-1/3,-1]). The theory of chordal coding, which we are not going to lay down here because of its complexity, provides the equivalence in a very natural way.
24 points in the three dimensional space separated by six planes
The geometric view also lets us describe what we mean by the ISI-ratio of a comparator: it is the ratio of the distance of the closest point to the comparator and the distance of the furthest point to that comparator. As can be seen in the above figure, NRZ has ISI-ratio 1: both points of its code have the same distance from its comparator. The situation is more difficult for PAM-4, and this is because the definition of ISI-ratio has to be modified when there are comparators with references. In that case, the ISI-ratio of any comparator is the same as the one passing through 0, i.e., the one that has no reference. With this modified definition, it can be seen that the ISI-ratio of PAM-4 is 3: the top left point has 3 times the distance from the middle line as any of the two inner points.
Geometric view of NRZ and PAM-4
The geometric view creates new chordal codes which have not been investigated before, like the following two-wire codes with 6 and 8 codewords (and 3 and 4 comparators, respectively):
As can be seen, the code C6 has ISI-ratio 2, since for every one of its comparators the closest point to the comparator has distance 1/2, whereas the furthest point has distance 1. In fact, the full theory of chordal codes shows that this code is functionally equivalent to the code PM([1,0,-1]); The code C8 has ISI-ratio 1+sqrt(2), since the closest point to every comparator has distance sin(Pi/8) and the furthest point has distance sin(5Pi/8), and the ratio sin(5Pi/8)/sin(Pi/8) turns out to be 1+sqrt(2). In particular, this example shows that the ISI-ratio does not have to be an integer (not even a rational number).
The codes C6 and C8 an their ISI-ratio computation.
Many of the desired properties of a chordal code can be described succinctly using the geometric language.
Except for the NRZ code above, this section did not constitute a single chordal code satisfying all these constraints. We end this section with one such example which we call the P3-code. The codewords are ±[1,0,-1] and ±[0,1,-1], so there are four codewords (=2 bits) transmitted on three wires. The pin-efficiency of this code is thus 2/3. The comparators are 0:1 and av(0,1):2. The first comparator evaluates to values ±1 and the second to values ±1.5, so both have ISI-ratio 1. A geometric picture of this code as well as a high-level architecture of the system using it is given below.
Geometric representation of the P3-code and a high level architecture of the an associated Chord Signaling system. Both comparators see binary values at the input of their associated slicers.
This code is also detectable with the comparators 0:1, and 0:2, which seems to be easier than the comparators given in the figure. Here is a figure of the code and its associated architecture:
Geometric representation of a code with simpler comparators and a high level architecture of the associated Chord Signaling system. Even though the second comparator is simpler, it does not see binary values at the input of its slicer.
The first comparator in this code is the same as that of the P3 code. The second, however, is different. It has ISI-ratio 2. One can already see from the geometric picture that this code is not as good. The final proof is in the eye diagrams. For an example channel and the same settings for the two signaling systems, we obtain the following eye diagrams using KEYE™.
Comparison of the P3 code and the code with a simpler second comparator. As can be seen, this simpler comparator performs worse, because its ISI-ratio is 2 instead of 1.
The scales are the same in all these eye diagrams. Clearly, the comparator with an ISI-ratio of 2 leads to a worse eye then the second comparator of the P3 code. The choice of the comparators for a chordal code therefore matters a lot.
The simplest answer to this question is: Chord Signaling is a signaling method which uses a chordal code for transmission on detection of signals on multiple wires.
However, this is only part of the story. Chord Signaling doesn’t only consist of the signaling method itself, which is a vast area at the intersection of information theory and discrete mathematics, but also of the circuits, architectures, and an array of practical simulation and diagnostic applications developed by Kandou Bus to construct, analyze, and implement Chord Signaling in practical products. For example, the simulations leading to the eye diagrams for the signaling schemes in the above sections were all done using Kandou’s in-house statistical eye diagram tool KEYE™. The time domain counterpart of this tool called TAU™ was used extensively during the design of GW28-125-USR. The code for this product, called CNRZ-5, was designed using a set of proprietary tools and algorithms for the design of chordal codes with given constraints.
Kandou Bus is constantly adding to these tools. The story goes on!