Bus reversible orthogonal differential vector signaling codes

Information

  • Patent Grant
  • 10003424
  • Patent Number
    10,003,424
  • Date Filed
    Tuesday, August 30, 2016
    7 years ago
  • Date Issued
    Tuesday, June 19, 2018
    6 years ago
Abstract
Properties and the construction method of Orthogonal Differential Vector Signaling Codes are disclosed which are tolerant of order-reversal, as may occur when physical routing of communications channel wires causes the bus signal order to be reversed. Operation using the described codes with such bus-reversed signals can avoid complete logical or physical reordering of received signals or other significant duplication of receiver resources.
Description
BACKGROUND

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.


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.


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 values that a symbol of the vector may take on is called the “alphabet” of the vector signaling code. A vector signaling code, as described herein, is a collection C of vectors of the same length N, called codewords. Any suitable subset of a vector signaling code denotes a “subcode” of that code. Such a subcode may itself be a vector signaling code. Orthogonal Differential Vector Signaling codes (ODVS) as described in [Cronie I] are one specific example of a vector signaling code as used in descriptions herein.


In operation, the coordinates of the codewords are bounded, and we choose to represent them by real numbers between −1 and 1. 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.


A vector signaling code is called “balanced” if for all its codewords the sum of the coordinates is always zero. Balanced vector signaling codes have several important properties. For example, as is well-known to those of skill in the art, balanced codewords lead to lower electromagnetic interference (EMI) noise than non-balanced ones. Also, if common mode resistant communication is required, it is advisable to use balanced codewords, since otherwise power is spent on generating a common mode component that is cancelled at the receiver.


Additional examples of vector signaling methods are described in Cronie I, Cronie II, Cronie III, Cronie IV, Fox I, Fox II, Fox III, Holden I, Shokrollahi I, and Hormati I.


BRIEF DESCRIPTION

Properties and the construction method of Orthogonal Differential Vector Signaling Codes are disclosed which are tolerant of order-reversal, as may occur when physical routing of communications channel wires causes the bus signal order to be reversed. Operation using the described codes with such bus-reversed signals can avoid complete logical or physical reordering of received signals or other significant duplication of receiver resources.





BRIEF DESCRIPTION OF FIGURES


FIG. 1 shows a prior art configuration of a transmitter and receiver interconnected by a multiwire channel that may be bus reversed.



FIG. 2 shows a system in accordance with at least one embodiment, capable of communicating information from a transmitting device to a receiving device over a communications channel which may be bus-reversed.



FIG. 3 shows one embodiment of a receiver producing received data from non-bus-reversed received signals, and producing the same received data if the received signals are bus-reversed.



FIG. 4 is a block diagram of a procedure to find reversal-amenable permutations of a matrix.



FIG. 5 is a block diagram of an additional procedure to find reversal-amenable permutations of a matrix if matrix columns are permuted.



FIG. 6 shows a method in accordance with at least one embodiment.





DETAILED DESCRIPTION

The concept of orthogonal vector signaling has been introduced in [Croniel]. As presented there, an orthogonal differential vector signaling (ODVS) code may be obtained via the multiplication

(0,x2, . . . ,xnM/a  [Eqn. 1]

wherein M is an orthogonal n×n-matrix in which the sum of the columns is zero except at the first position, x2, . . . , xn belong to a set S describing the original modulation of these symbols, and a is a normalization constant which ensures that all the coordinates of the resulting vector are between −1 and +1. In the following, we call an orthogonal matrix for which the sum of the columns is zero except in the first position an “ODVS generating matrix.”


For example, in case of binary modulation, the set S may be chosen to be {−1,+1}. In case of ternary modulation, the set S may be chosen as {−1,0,1}, in case of quaternary modulation, the set S may be chosen as {−3,−1,1,3}, and in case of quintary modulation S may be chosen as {−2,−1,0,1,2}.


In operation, the matrix M does not need to be orthogonal. It suffices that all its rows are pairwise orthogonal (even if the rows are not of Euclidean norm 1). In the following, we call such matrices s-orthogonal (scaled orthogonal).


For proper working of this scheme it is not necessary that all the xi are modulated by the same set S.


Detection of the transmitted signals can be accomplished with the matrix M in the following manner. Each row of M is scaled in such a way as to ensure that the sum of the positive entries in that row is equal to 1. Then the entries of each row of the new matrix (except for the first) are used as coefficients of a multi-input comparator as defined in [Holden I]. For example, if n=6, the values on the 6 wires (possibly after equalization) are denoted by a, b, c, d, e, f, and the row is [½,¼,−½,¼,−½,0], then the multi-input comparator would calculate the value










a
2

+


b
+
d

2

-

(


c
+
e

2

)





[

Eqn
.




2

]








and would slice the result. In case of binary modulation, such slicing is performed by a digital comparator, whereas for higher order modulation a stack of digital comparators with distinct threshold references may be used as taught in [Shokrollahi II]. Alternatively, the result may be passed through an Analog-to-Digital converter with appropriate precision.


In a typical application using an ODVS code to communicate between two integrated circuit devices, multiple chip pins or pads are interconnected as a parallel bus. Following conventional best practice, one chip will be designed to have the required number of I/O pins sequentially assigned to the communications interface function, as one example along its rightmost package edge, and the other chip will be designed to have the same connections assigned, continuing the example, along its leftmost package edge such that a series of equal-length straight signal traces may connect the pins in consecutive order.


However, even when integrated circuit devices are designed to facilitate such optimized physical interconnection, the desired results may be impractical to achieve in practice. The physical placement of the two chips may preclude direct equal-length connections, requiring trace routing at right angles or using vias, which introduce impedance anomalies and signal path length differences. In the worst case, often occurring with “flip chip” packaging and/or actives-both-sides PCB designs, the only available routing path between the two devices results in the sequential order of the I/O pin signals being reversed between the two devices. Such situations may also occur if symmetrical “plug in either way” connectors are used for interconnections. This is typically referred to as “bus reversal” since effectively the signals on the wires are presented to the receiver in reversed sequential order.



FIG. 1 illustrates a prior art transmitting device 110 connected to a receiving device 130 via a multiwire channel 120 which may (or may not) be bus reversed. If the bus is not reversed, transmitted channel signals w0in, . . . , w5in correspond directly to received channel signals w0out, . . . , w5out. If the bus is reversed, the signal w0in appears at w5out, w1in appears at w4out, w2in appears at w3out, w3in appears at w2out, w4in appears at w1out, and w5in appears at w0out. To insure that received data rxb0-rxb4 in receiving device 130 duplicates transmitted data txb0-txb4 in the transmitting device, receiver 130 must include a selectable permutation device 132 to permute the received signal order back to its intended order, prior to analog detection and processing 135.


Such known solutions for bus reversal generally rely on physical reordering of the received bus signals using analog multiplexers or other steering logic at the input of the receiving chip, at the cost of significant receiver complexity. At very high signaling rates, these additional circuit elements introduce impedance anomalies leading to signal degradation. Moreover, it may be impractical to route the necessary signals from one end of the bus across the receiver chip to multiplexers at the other end of the bus to perform such physical bus reordering and still meet timing constraints. Similarly, even though the receiver is typically aware of a reversed bus, it may not be practical to include both a receiver for when the bus wires are reversed, and one for the case of normal operation, as this will lead to area and power penalties.


One familiar with the art may observe that some known art receive solutions, such as use of single-ended line receivers to detect incoming signals, might permit the selectable permutation device 132 to operate in the digital domain, after the line receivers. However, such solutions will not in general be available if differential receivers are used, as will often be the case for high speed, high performance interconnections.


Furthermore, if an ODVS code is used, ignoring bus reversal may have a disastrous effect on differentially detected received signals. For example, consider an ODVS code generated by the s-orthogonal matrix M given below:









M
=


(



1


1


1




1



-
1



0




1


1



-
2




)

.





[

Eqn
.




3

]







Consider the encoding of the vector (0, 1, −1) as the codeword (0, 1, −1) (after normalization by division by 2, i.e., with a=2 in Eqn. 1). A bus-reversed communications channel would transform this vector into (−1, 1, 0), which is not even a valid codeword. Trying to detect this codeword with the comparators (1,−1,0) and (½, ½, −1) would lead to the vector (0, −2, 0) which is not the same as the original encoded vector (and cannot even be detected reliably because the last “0” in the vector introduces an ambiguous comparator state.)


However, ODVS code embodiments also exist where bus reversal does not have a disastrous effect and for which compensation can be very efficiently applied using simple digital logic. In one such embodiment, the ODVS code is generated by the Hadamard matrix









H
=


(



1


1


1


1




1



-
1



1



-
1





1


1



-
1




-
1





1



-
1




-
1



1



)

.





[

Eqn
.




4

]







A vector (0,x, y, z) is encoded with this matrix to

((x+y+z)/a,(y−x−z)/a,(x−y−z)/3,(z−x−y)/a)  [Eqn. 5]

wherein a is chosen to normalize the resulting values to the range −1 to +1. Bus reversal transforms these values into a set of permuted symbols corresponding to

((z−x−y)/a,(x−y−z)/a,(y−x−z)/a,(x+y+z)/a)  [Eqn. 5]

and final detection of this vector by the comparators (1, −1, 1, −1)/2, (1,1,−1,−1)/2, and (1,−1,−1,1)/2 yields the vector

2(−x,−y,z)/a.  [Eqn. 6]


This is, up to a sign change on the first two entries and scaling, equal to the original bits (x, y, z). This sign change can be easily implemented in digital logic after detection of the signals by the analog receiver. A sign change may correspond to a binary inversion, a signal negation, or any other relevant sign changes known to one of skill in the art.


We call an ODVS code “reversal-amenable” if bus reversal has a similar effect on the signals as for the matrix H. This means that a wire permutation (including but not limited to a full bus reversal) of a codeword, followed by the comparators given by the matrix produces a possibly permuted vector of input bits in which some of the entries may have a reversed sign. An orthogonal generating matrix that generates such an ODVS code is called “reversal-amenable.” In applications, a reversal-amenable ODVS code may be preferable to one that is not reversal-amenable. Even if some permutation of the resulting received bits is required to return to non-bus-reversed order, the amount of permutation required will be less than the full bus reversal required by prior art solutions, such permutation may be performed by post-detection digital logic (versus by analog circuitry at the chip input) and, for embodiments using multiple phases of receive signal processing, the required permutations and sign reversals can be done at lower speed within each of the multiple processing phases. Embodiments requiring an explicit decoding operation to recover received data from the detected signals may also advantageously incorporate the required permutation and negation operations for compensation for bus reversal into the decoder logic.


A system incorporating such a reversal-amenable ODVS code in accordance with at least one embodiment is illustrated in FIG. 2. Transmitting device 220 encodes transmit data txb0, . . . , txb4 to produce an ODVS code, which is emitted as signals w0in, . . . , w5in to communications channel 220. Communications channel 220 may or may not reverse the consecutive ordering of signals w0in, . . . , w5in during transmission to w0out, . . . , w5out, where they are received by receiving device 230. Without explicit permutation or other controllable redirection being performed on the received signals, analog decoder and processing devices shown as 235, which may include without limitation differential line receivers, comparators, multi-input comparators and other analog processing elements detects received signals rxb0int, . . . , rxb4int, which are subsequently processed by digital reversing unit 238 to obtain the received signals rxb0, . . . , rxb4.


Construction of Reversal-Amenable ODVS Codes


In some cases, a reversal-amenable ODVS code may be obtained from a general ODVS code by judiciously permuting the columns of the generating matrix M in Eqn. 1. For example, by permuting columns 2 and 3 of the matrix M in Eqn. 3, we obtain a reversal-amenable ODVS code: A vector (0,x, y) is encoded with the new matrix to a set of original symbols (x+y, −2y, y−x)/a, wherein a is chosen to make sure that the entries of this vector are between −1 and +1. Application of bus reversal leads to the vector of permuted symbols (y−x, −2y, x+y)/a, and final detection via the comparators (1,0,−1), (½,−1, ½) leads to the vector of output bits (−2x, 3y)/a which is (up to scaling and sign) equal to the original bits.


The following description is of a method to detect whether an orthogonal generating matrix generating an ODVS code can be made reversal-amenable by a permutation of the columns, and for finding a right permutation of the columns that allows this. To this end, the descriptive terminology of matrices and permutations is used herein, as described in standard textbooks on linear algebra and group theory.


A quadratic matrix is called “monomial” if it has exactly one nonzero entry in every row and every column. It is called a “permutation matrix” if it is monomial and the nonzero entry in every row and column is 1. If A is any matrix with n columns and P is a permutation matrix with n rows, then A·P is obtained by permuting the columns of A according to P. Similarly, if A has n rows, then P·A is obtained from A by permuting the rows of A according to P.


The “reversal” matrix R with n rows and columns is the matrix









R
=

(



0


0





0


1




0


0





1


0





















0


1





0


0




1


0





0


0



)





[

Eqn
.




7

]








i.e., the matrix has only 1's on its main anti-diagonal and is zero elsewhere.


An ODVS generating matrix A is called “P-amenable” if A·P·AT is a monomial matrix, wherein AT is the transpose of A and P is a permutation matrix. If A is P-amenable, then a wire permutation corresponding to a permutation of the communication wires according to the matrix P can be easily adjusted at the receiver: the codewords of the ODVS code generated by A are the vectors (0|x)·A/a, wherein x is a vector of length n−1 (if A has size n) and a is a normalization constant. Permutation of the wires corresponds to multiplication of this result by P, and detection of the results corresponds to the multiplication of the new result by AT·D, where D is the diagonal matrix that has as its k-th diagonal entry the sum of the positive entries of the k-th row of A. In total, therefore, the coding and detection of the signals in the presence of a permutation of the wires according to P corresponds to the multiplication

(0|xA·P·AT·D/a.  [Eqn. 8]


The input vector x can now be re-assembled if A·P·AT is a monomial matrix.


As can be seen by anyone of moderate skill in the art, a reversal-amenable ODVS code is one that is generated by an R-amenable matrix A.


A procedure is now described to compute a permutation matrix U (if it exists) such that A·U is R-amenable. Constructing the ODVS code using A·U would then lead to a reversal-amenable ODVS code. To this end, we call a permutation matrix P with n rows a “matching” if P2 is the identity matrix and either there is no j such that P[j,j]=1 (in case n is even) or there is exactly one j such that P[j,j]=1 (in case n is odd). Here and in the following A[i,j] denotes the (i,j)-entry of matrix A. As is known to those who are somewhat versed in the theory of finite groups, or even only the theory of permutation groups, a matrix P is a matching if and only if there is a permutation matrix U such that U·P·UT=R.

    • Step 1: Determine whether there is a matching P such that A is P-amenable (for example by calculating A·P·AT for all matchings P via the procedure below and checking whether the result is monomial).
    • Step 2: If there is no such matching P, return NO.
    • Step 3: If there is such a matching P, then proceed as follows:
      • Step 3.1: Initialize set T as {1,2, . . . , n} and s=1.
      • Step 3.2: Pick an element i from T and determine j such that P=1.
        • Step 3.2.1: if j=i, then (necessarily n is odd) set U[j. (n+1)/2]=1.
        • Step 3.2.2: if j≠i, then set U[i,s]=1, U[j,n−s+1]=1, remove i,j from T, and increase s by 1.
        • Step 3.2.3: If T is empty, stop, else go to Step 3.2.


This procedure is illustrated as the block diagram of FIG. 4.


Amenability to Arbitrary Permutations


In the discussions above we concentrated mostly on reversal-amenable ODVS codes. However, the techniques described can be used to check whether there is a permutation of the columns of an ODVS generating matrix to make it amenable to a given wire permutation, and if so, to calculate one such permutation.


As is known to those of moderate skill in the art, any permutation matrix can be written as a product of disjoint “cycles” wherein a cycle is a permutation matrix cyclically permuting the elements of a subset of {1, . . . , n} (called “permuted subset”) and leaving all other elements of this set invariant. The size of the permuted subset is called the “length” of the cycles. Such cycles are called disjoint if the permuted subsets of the cycles are all disjoint. The “cycle structure” of a permutation matrix is the vector obtained from the lengths of the disjoint cycles the product of which is the given permutation matrix.


As is taught by the theory of finite permutation groups, for two permutation matrices P and P′ there is a permutation matrix U such that P′=U·P·UT if and only if P and P′ have the same cycle structure.


The procedure above to check whether an ODVS matrix is reversal-amenable can therefore be modified by those of skill in the art to check whether there is a permutation of the columns that makes an ODVS matrix amenable to any permutation matrix P, and to compute the permutation. One example of such an additional procedure is:

    • Step 1: Determine whether there is a matching Q with the same cycle structure as P such that A is Q-amenable (for example by calculating A·Q·AT for all permutations Q that have the same cycle structure as P and checking whether the result is monomial).
    • Step 2: If there is no such matching Q, return NO.
    • Step 3: If there is such a matching Q, then proceed as follows:
      • Step 3.1: For all permuted subsets {k1, . . . , kt} of P such that P[k1,k2]=P[k2,k3]= . . . =P[kt,k1]=1,
        • Step 3.1.1: determine a permuted subset {j1, . . . , jt} of Q such that Q[j1,j2]=Q[j2,j3]= . . . =Q[jt,j1]=1,
        • Step 3.1.2: set U[k1,j1]=U[k2,j2]= . . . =U[kt,jt]=1.
      • next subset.


This additional procedure is illustrated as the block diagram of FIG. 5.


Examples for Reversal-Amenability


For the following examples we will use the following economical representation of permutation matrices via vectors. Specifically, a vector [a1, a2, . . . , an] with a1, a2, . . . , an in {1,2, . . . , n} corresponds to the matrix having ones in positions (1, a1), (2, a2), . . . , (n, an). So, for example, the vector [2,3,1] would correspond to the permutation matrix










(



0


1


0




0


0


1




1


0


0



)

.




[

Eqn
.




9

]







A first example embodiment is an ODVS code generated by the matrix previously described in [Shokrollahi II]:









M
=


(



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
.




10

]







In this case there is no matching P such that M·P·MT is diagonal but there are exactly two matching P for which this matrix is monomial. Of these two, one, namely P=[4,5,6,1,2,3] has the property that M·P·MT has only one negative entry (corresponding to negating a bit in case of a bus reversal):










M
·
P
·

M
T


=


(



6


0


0


0


0


0




0


0


0


2


0


0




0


0


0


0


6


0




0


2


0


0


0


0




0


0


6


0


0


0




0


0


0


0


0



-
6




)

.





[

Eqn
.




11

]







Applying the procedure above leads to a matrix U and new ODVS code generating matrix M·U which is the result of permuting columns 4 and 6 of the matrix M:










M
·
U

=


(



1


1


1


1


1


1




1



-
1



0


0


0


0




1


1



-
2



0


0


0




0


0


0


0



-
1



1




0


0


0



-
2



1


1




1


1


1



-
1




-
1



1



)

.





[

Eqn
.




12

]







As illustrated in FIG. 3, the ODVS code generated by M·U, allows a receiving device (such as previously shown as 230 in the system diagram of FIG. 2) to tolerate bus reversal. Without bus reversal, communications channel 320 delivers transmitted signals w0in, . . . , w5in directly and without permutation to w0out, . . . , w5out, allowing the analog decoder and processing of 235 to detect received signals rxb0int, . . . , rxb4int, which are passed directly through reversal unit 340 to received data rxb0, . . . , rxb5. When bus reversal occurs, communications channel 360 reverses the ordering of transmitted signals w0in, . . . , w5in to w0out, . . . , w5out. However, the structure of the reversal-tolerant ODVS code permits analog decoder and processing 235 to detect valid information despite the bus reversed received data. In this example, the proper received data rxb0, . . . , rxb4 is obtained if reversal unit 380 exchanges bits 1 and 3, exchanges bits 2 and 4, and negates bit 5. In at least one embodiment, negating comprises binary inversion, i.e. flipping a ‘0’ to a ‘1’, or a ‘1’ to a ‘0’. In another embodiment, negating comprises flipping the sign of a value, i.e. a ‘+1’ to a ‘−1’, or a ‘−1’ to a ‘+1’. However, embodiments should not be so limited.


In other words, if the input bits are (x1, . . . , x5), then the output of the receiver is (x3, x4, x1, x2, −x5). The codewords of this code (herein subsequently called the “Glasswing code”) are given in Table 1.












TABLE 1









±[1, ⅓, −⅓, −1, −⅓, ⅓]
±[1, ⅓, −⅓, ⅓, −1, −⅓]



±[⅓, 1, −⅓, −1, −⅓, ⅓]
±[⅓, 1, −⅓, ⅓, −1, −⅓]



±[⅓, −⅓, 1, −1, −⅓, ⅓]
±[⅓, −⅓, 1, ⅓, −1, −⅓]



±[−⅓, ⅓, 1, −1, −⅓, ⅓]
±[−⅓, ⅓, 1, ⅓, −1, −⅓]



±[1, ⅓, −⅓, −1, ⅓, −⅓]
±[1, ⅓, −⅓, ⅓, −⅓, −1]



±[⅓, 1, −⅓, −1, ⅓, −⅓]
±[⅓, 1, −⅓, ⅓, −⅓, −1]



±[⅓, −⅓, 1, −1, ⅓, −⅓]
±[⅓, −⅓, 1, ⅓, −⅓, −1]



±[−⅓, ⅓, 1, −1, ⅓, −⅓]
±[−⅓, ⅓, 1, ⅓, −⅓, −1]










One embodiment of an encoder for this code accepts 5 input bits a, b, c, d, e and produces 6 pairs of bits [x1, y1], . . . , [x6, y6]. The operational meaning of these bit pairs is that a pair [x,y] corresponds to the value −(2·(−1)x+(−1)y)/3 on the corresponding wire. The encoding is then given as follows:

[x1,y1]=[mux(NOR(a,b),NAND(a,b),e),a⊕b⊕custom charactere]  [Eqn. 13]
[x2,y2]=[mux(NOR(custom charactera,b),NAND(custom charactera,b),e),a⊕b⊕e]  [Eqn. 14]
[x3,y3]=[b,custom charactere]  [Eqn. 15]
[x4,y4]=[d,e]  [Eqn. 16]
[x5,y5]=[mux(NOR(custom characterc,d),NAND(custom characterc,d),c⊕d⊕custom charactere]  [Eqn. 17]
[x6,y6]=[mux(NOR(c,d),NAND(c,d),custom charactere),c⊕d⊕e]  [Eqn. 18]


Here, mux(x,y,e) is x if e=1 and it is y if e=0. Moreover, custom charactera is the inverse of a and ⊕ is the XOR operation.


A second embodiment is a code for 3 wires, derived from the matrix M1 from Eqn. 3. Applying the procedure above, the matrix










M


=

(



1


1


1




1


0



-
1





1



-
2



1



)





[

Eqn
.




19

]








is produced, which may be seen to be reversal-amenable. If x1, x2 denote the input bits, then the output of the receiver in the presence of a bus reversal is −x1, x2.


One example of a non reversal-amenable code for 4 wires may be seen by considering the generating matrix M of Eqn. 20









M
=


(



1


1


1


1




1



-
1



0


0




1


1



-
2



0




1


1


1



-
3




)

.





[

Eqn
.




20

]







In this case, there is no matching P for which M·P·MT is monomial. This matrix and the corresponding OPDVS code is therefore not reversal-amenable.


A third example embodiment is an ODVS code for five wires generated by the matrix









M
=

(



1


1


1


1


1




1



-
1



0


0


0




0


0


1



-
1



0




1


1



-
1




-
1



0




1


1


1


1



-
4




)





[

Eqn
.




21

]








as previously described in [Shokrollahi II]. Applying the procedure above, the matrix M′ given as










M


=

(



1


1


1


1


1




1


0


0


0



-
1





0


1


0



-
1



0




1



-
1



0



-
1



1




1


1



-
4



1


1



)





[

Eqn
.




22

]








has the property that the associated ODVS code is reversal-amenable. if x1, . . . , x4 denote the input bits, then the output bits of the receiver in the presence of a wire permutation corresponding to a bus reversal is −x1, −x2, x3, x4 thus requiring only two signal negations (as one example, using two XOR gates to perform the necessary negations,) to recover the original data during bus-reversed operation.


A fourth example embodiment is of an ODVS code for 6 wires generated by the matrix previously described in [Shokrollahi II]









M
=


(



1


1


1


1


1


1




1



-
1



0


0


0


0




0


0


1



-
1



0


0




0


0


0


0


1



-
1





1


1



-
1




-
1



0


0




1


1


1


1



-
2




-
2




)

.





[

Eqn
.




23

]







Applying the procedure above, the matrix M′ given as










M


=

(



1


1


1


1


1


1




1


0


0


0


0



-
1





0


1


0


0



-
1



0




0


0


1



-
1



0


0




1



-
1



0


0



-
1



1




1


1



-
2




-
2



1


1



)





[

Eqn
.




24

]








has the property that the associated ODVS code is reversal-amenable. In case of a wire permutation corresponding to a bus reversal, the first three bits need to be inverted. In other words, if x1, . . . , x5 denote the input bits, then the output of the receiver in the presence of a bus reversal is −x1, −x2, −x3, x4, x5.


A fifth example embodiment is of an ODVS code for 9 wires generated by the matrix previously described in [Shokrollahi II]:









M
=


(



1


1


1


1


1


1


1


1


1




1



-
1



0


0


0


0


0


0


0




0


0


1



-
1



0


0


0


0


0




0


0


0


0


1



-
1



0


0


0




0


0


0


0


0


0


1



-
1



0




1


1



-
1




-
1



0


0


0


0


0




0


0


0


0


1


1



-
1




-
1



0




1


1


1


1



-
1




-
1




-
1




-
1



0




1


1


1


1


1


1


1


1



-
8




)

.





[

Eqn
.




25

]







Applying the procedure above, the matrix M′ given as










M


=

(



1


1


1


1


1


1


1


1


1




1


0


0


0


0


0


0


0



-
1





0


1


0


0


0


0


0



-
1



0




0


0


1


0


0


0



-
1



0


0




0


0


0


1


0



-
1



0


0


0




1



-
1



0


0


0


0


0



-
1



1




0


0


1



-
1



0



-
1



1


0


0




1


1



-
1




-
1



0



-
1




-
1



1


1




1


1


1


1



-
8



1


1


1


1



)





[

Eqn
.




26

]








is reversal-amenable. If x1, . . . , x8 denote the input bits, then the output of the receiver in the presence of a bus reversal is −x1, −x2, −x3, −x4, x5, x6, x7, x8.


There are several interesting matching P such that M·P·MT is monomial. For example, using P=[5, 6, 7, 8, 1, 2, 3, 4, 9] yields a new matrix M′










M


=

(



1


1


1


1


1


1


1


1


1




1



-
1



0


0


0


0


0


0


0




0


0


1



-
1



0


0


0


0


0




0


0


0


0


0


0


0



-
1



1




0


0


0


0


0



-
1



1


0


0




1


1



-
1




-
1



0


0


0


0


0




0


0


0


0


0



-
1




-
1



1


1




1


1


1


1


0



-
1




-
1




-
1




-
1





1


1


1


1



-
8



1


1


1


1



)





[

Eqn
.




27

]








which is also reversal-amenable. In this case, the output of the receiver in the presence of a bus reversal is x3, x4, x1, x2, x6, x5, −x7, x8 so only one negation is necessary to obtain the original bits, at the cost of some additional data reordering.


The examples presented herein illustrate the use of orthogonal differential vector signaling codes for point-to-point interconnection of a transmitting device and a receiving device for descriptive simplicity. However, this should not been seen in any way as limiting the scope of any described embodiments. The methods disclosed in this application are equally applicable to other interconnection topologies, including multi-drop and star-wired interconnection of more than two devices, and other communications protocols including full-duplex as well as half-duplex and simplex communications. Similarly, wired communications are used as illustrative examples, with other embodiments also being applicable to other communication media including optical, capacitive, inductive, and wireless communications. Thus, descriptive terms 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.


Embodiments


As shown in FIG. 6, a method 600 in accordance with at least one embodiment, comprises receiving, in step 602, a set of permuted symbols on a transmission bus having a wire permutation, wherein the received set of permuted symbols correspond to an original set of symbols of a codeword permuted according to the wire permutation, the wire permutation representable by a permutation matrix P, the original set of symbols representing a set of input bits, forming, in step 604, a set of output bits from the received set of permuted symbols using a set of comparators having input weights based on respective rows of a P-amenable orthogonal matrix, wherein the P-amenable orthogonal matrix is based on an orthogonal generating matrix and the permutation matrix P, the set of output bits corresponding to the set of input bits, and outputting, in step 606, the set of output bits.


In at least one embodiment forming the set of output bits further comprises generating a set of comparator outputs, wherein the comparator outputs correspond to the output bits.


In at least one embodiment, forming the set of output bits further comprises generating a set of comparator outputs, and performing a logical reordering of the set of comparator outputs.


In at least one embodiment, forming the set of output bits further comprises generating a set of comparator outputs, and performing a binary inversion of at least one of the comparator outputs.


In at least one embodiment, the codeword is part of an Orthogonal Differential Vector Signaling (ODVS) code.


In at least one embodiment, the P-amenable orthogonal matrix is representable as:








M


=

(



1


1


1




1


0



-
1





1



-
2



1



)


,





and for a set of input bits represented as [x1 x2], a set of comparator outputs represented as [−x1 x2], forming the set of output bits comprises a binary inversion of comparator output −x1.


In another embodiment, the P-amenable orthogonal matrix is representable as:








M


=

(



1


1


1


1


1




1


0


0


0



-
1





0


1


0



-
1



0




1



-
1



0



-
1



1




1


1



-
4



1


1



)


,





and for a set of input bits represented as [x1 x2 x3 x4] a set of comparator outputs represented as [−x1−x2 x3 x4], forming the set of output bits comprises a binary inversion of comparator outputs −x1 and −x2.


In another embodiment, the P-amenable orthogonal matrix is representable as:








M


=

(



1


1


1


1


1


1




1


0


0


0


0



-
1





0


1


0


0



-
1



0




0


0


1



-
1



0


0




1



-
1



0


0



-
1



1




1


1



-
2




-
2



1


1



)


,





and for a set of input bits represented as [x1 x2 x3 x4 x5], a set of comparator outputs represented as [−x1−x2−x3 x4 x5], forming the set of output bits comprises a binary inversion of comparator outputs −x1, −x2, and −x3.


In at least one embodiment, the permutation matrix P is represented as:







P
=

(



0


0





0


1




0


0





1


0





















0


1





0


0




1


0





0


0



)


,





corresponding to a full transmission bus reversal.


In at least one embodiment, the permutation matrix P is represented as:







P
=

(



1


0





0


0




0


1





0


0





















0


0





1


0




0


0





0


1



)


,





corresponding to no transmission bus permutation.


In accordance with at least one embodiment, an apparatus comprises a transmission bus configured to receive a set of permuted symbols, wherein the permuted symbols represent a wire permutation of a set of original symbols based on a permutation matrix P, the wire permutation matrix P associated with the transmission bus, and wherein the set of original symbols represents a set of input bits, and a decoder configured to generate a set of output bits based on the set of permuted symbols using a set of comparators having input weights based on a P-amenable orthogonal matrix, the P-amenable orthogonal matrix based on a an orthogonal generating matrix and the permutation matrix P, wherein the set of output bits corresponds to the set of input bits.


In accordance with that least one embodiment, the plurality of comparators are configured to generate a set of comparator outputs, and wherein the set of output bits corresponds to the set of comparator outputs.


In accordance with that least one embodiment, the plurality of comparators are configured to generate a set of comparator outputs, and generating the set of output bits comprises a logical reordering of the comparator outputs.


In accordance with that least one embodiment, the plurality of comparators are configured to generate a set of comparator outputs, and generating the set of output bits comprises a binary inversion of at least one of the comparator outputs.


In accordance with that least one embodiment, the permutation matrix P is represented as:






P
=


(



1


0





0


0




0


1





0


0





















0


0





1


0




0


0





0


1



)

.





In accordance with that least one embodiment, the permutation matrix P corresponds to a full reversal matrix R, the full reversal matrix R represented as:






R
=

(



0


0





0


1




0


0





1


0





















0


1





0


0




1


0





0


0



)





In accordance with that least one embodiment, the orthogonal generating matrix is represented by M:







M
=

(



1


1


1


1


1




1



-
1



0


0


0




0


0


1



-
1



0




1


1



-
1




-
1



0




1


1


1


1



-
4




)


,





the P-amenable orthogonal matrix is represented by M′:








M


=

(



1


1


1


1


1




1


0


0


0



-
1





0


1


0



-
1



0




1



-
1



0



-
1



1




1


1



-
4



1


1



)


,





and for a set of input bits represented as [x1 x2 x3 x4] and a set of comparator outputs represented as [−x1—x2 x3 x4], forming the set of output bits comprises inverting comparator outputs −x1 and −x2.


In accordance with that least one embodiment, the orthogonal generating matrix is represented by M:







M
=

(



1


1


1


1


1


1




1



-
1



0


0


0


0




0


0


1



-
1



0


0




0


0


0


0


1



-
1





1


1



-
1




-
1



0


0




1


1


1


1



-
2




-
2




)


,





the P-amenable orthogonal matrix is represented by M′:








M


=

(



1


1


1


1


1


1




1


0


0


0


0



-
1





0


1


0


0



-
1



0




0


0


1



-
1



0


0




1



-
1



0


0



-
1



1




1


1



-
2




-
2



1


1



)


,





and for a set of input bits represented as [x1 x2 x3 x4 x5] and a set of comparator outputs represented as [−x1−x2−x3 x4 x5], forming the set of output bits comprises inverting comparator outputs −x1, −x2, and −x3.


In accordance with that least one embodiment, an apparatus comprises an encoder configured to receive a set of input bits and responsively generate a set of symbols of a codeword based on the set of input bits and a P-amenable orthogonal matrix, the P-amenable orthogonal matrix based on orthogonal generating matrix and a permutation matrix P, and a transmission bus configured to form a set of permuted symbols, wherein the permuted symbols represent a wire permutation of the set of symbols of the codeword, the wire permutation based on the permutation matrix P, the permutation matrix P associated with the transmission bus, and to transmit the set of permuted symbols.


In accordance with at least one embodiment, the P-amenable orthogonal matrix represents a permutation of columns of the orthogonal generating matrix.

Claims
  • 1. A method comprising: receiving a set of input bits and responsively generating a set of symbols of a codeword based on the set of input bits and a P-amenable orthogonal matrix, the P-amenable orthogonal matrix based on orthogonal generating matrix and a permutation matrix P; and,forming a set of permuted symbols using a multi-wire transmission bus, wherein the set of permuted symbols represents a wire permutation of the set of symbols of the codeword, the wire permutation based on the permutation matrix P, the permutation matrix P associated with the multi-wire transmission bus; andtransmitting the set of permuted symbols on the multi-wire transmission bus.
  • 2. The method of claim 1, wherein the P-amenable orthogonal matrix represents a permutation of columns of the orthogonal generating matrix.
  • 3. The method of claim 1, wherein the orthogonal generating matrix is represented by M:
  • 4. The method of claim 1, wherein the orthogonal generating matrix is represented by M:
  • 5. The method of claim 1, wherein the orthogonal generating matrix is represented by M:
  • 6. The method of claim 1, wherein the permutation matrix P is a monomial matrix having a single ‘1’ value in each column and in each row and ‘0’ values elsewhere, each respective column associated with a respective symbol of the permuted set of symbols, wherein each respective column selects a respective symbol of an original set of symbols as the respective symbol of the permuted set of symbols, the selection based on a location of the ‘1’ value in the respective column.
  • 7. The method of claim 1, wherein the permutation matrix P is represented as:
  • 8. The method of claim 1, wherein generating the codeword comprises weighting elements of each row of the P-amenable orthogonal matrix with a respective input, and forming an element-wise summation of the weighted rows of the P-amenable orthogonal matrix.
  • 9. The method of claim 1, wherein each input bit has a value representing an antipodal weight, wherein each input has a value selected from a set of two values having equal magnitude and opposite sign.
  • 10. The method of claim 1, wherein 5 input bits are encoded into 6 symbols of the codeword.
  • 11. The method of claim 10, wherein the codeword has symbol values selected from a set [±1, ±⅓].
  • 12. The method of claim 1, wherein the orthogonal generating matrix is a Hadamard matrix H.
  • 13. The method of claim 12, wherein the Hadamard matrix H is represented as:
  • 14. The method of claim 1, wherein the P-Amenable orthogonal matrix is obtained by permuting columns of the orthogonal generating matrix.
  • 15. The method of claim 1, wherein the codeword is part of an orthogonal differential vector signaling (ODVS) code.
  • 16. The method of claim 1, further comprising: receiving the set of permuted symbols via the multi-wire transmission bus; andforming a set of output bits from the received set of permuted symbols using a set of comparators having input weights based on respective rows of the P-amenable orthogonal matrix, wherein the P-amenable orthogonal matrix is based on the orthogonal generating matrix and the permutation matrix P, the set of output bits corresponding to the set of input bits; and,outputting the set of output bits.
  • 17. The method of claim 16, wherein forming the set of output bits comprises performing Boolean logic on outputs from the set of comparators.
  • 18. The method of claim 17, wherein the Boolean logic comprises a logical reordering of the comparator outputs.
  • 19. The method of claim 17, wherein the Boolean logic comprises a binary inversion of at least one of the comparator outputs.
  • 20. The method of claim 16, wherein each comparator has a set of input weights selected from a respective row of a scaled version of the P-amendable orthogonal matrix, wherein a sum of positive entries in the respective row of the scaled version of the P-amendable orthogonal matrix is equal to one.
REFERENCES

This application is a continuation of U.S. application Ser. No. 14/796,645, filed Jul. 10, 2015, which claims the benefit of U.S. Provisional Patent Application 62/025,712, filed Jul. 17, 2014, naming Roger Ulrich, entitled “Bus Reversable Orthogonal Differential Vector Signaling Code” all of which are hereby incorporated by reference in their entirety for all purposes. The following references are herein incorporated by reference in their entirety for all purposes: U.S. Patent Publication No. 2011/0268225 of U.S. patent application Ser. No. 12/784,414, filed May 20, 2010, naming Harm Cronie and Amin Shokrollahi, entitled “Orthogonal Differential Vector Signaling” (hereinafter “Cronie I”); U.S. Patent Publication No. 2011/0302478 of U.S. patent application Ser. No. 12/982,777, filed Dec. 30, 2010, naming Harm Cronie and Amin Shokrollahi, entitled “Power and Pin Efficient Chip-to-Chip Communications with Common-Mode Rejection and SSO Resilience”, (hereinafter “Cronie II”); 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 “Cronie III”); U.S. Patent Publication No. 2011/0299555 of U.S. patent application Ser. No. 13/154,009, filed Jun. 6, 2011, naming Harm Cronie and Amin Shokrollahi, entitled “Error Control Coding for Orthogonal Differential Vector Signaling” (hereinafter “Cronie IV”); U.S. Provisional Patent Application No. 61/763,403, filed Feb. 11, 2013, naming John Fox, Brian Holden, Ali Hormati, Peter Hunt, John D Keay, Amin Shokrollahi, Anant Singh, Andrew Kevin John Stewart, Giuseppe Surace, and Roger Ulrich, entitled “Methods and Systems for High Bandwidth Chip-to-Chip Communications Interface” (hereinafter called “Fox I”); U.S. Provisional Patent Application No. 61/773,709, filed Mar. 6, 2013, naming John Fox, Brian Holden, Peter Hunt, John D Keay, Amin Shokrollahi, Andrew Kevin John Stewart, Giuseppe Surace, and Roger Ulrich, entitled “Methods and Systems for High Bandwidth Chip-to-Chip Communications Interface” (hereinafter called “Fox II”); U.S. Provisional Patent Application No. 61/812,667, filed Apr. 16, 2013, naming John Fox, Brian Holden, Ali Hormati, Peter Hunt, John D Keay, Amin Shokrollahi, Anant Singh, Andrew Kevin John Stewart, and Giuseppe Surace, entitled “Methods and Systems for High Bandwidth Communications Interface” (hereinafter called “Fox III”); 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 and Advanced Detectors for Vector Signaling Codes for Chip-to-Chip Communication” (hereinafter called “Holden I”); 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 called “Ulrich I”). 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 called “Ulrich II”). U.S. Provisional Patent Application No. 61/934,804, filed Feb. 2, 2014, naming Ali Hormati and Amin Shokrollahi, entitled “Method for Code Evaluation using ISI Ratio” (hereinafter called “Hormati I”). U.S. Provisional Patent Application No. 61/992,711, filed May 13, 2014, naming Amin Shokrollahi, entitled “Vector Signaling Code with Improved Noise Margin” (hereinafter called “Shokrollahi I”). U.S. Provisional Patent Application No. 62/023,163, filed Jul. 10, 2014, naming Amin Shokrollahi and Roger Ulrich, entitled “Vector Signaling Code with Improved Noise Margin” (hereinafter called “Shokrollahi II”).

US Referenced Citations (448)
Number Name Date Kind
668687 Mayer Feb 1901 A
780883 Hinchman Jan 1905 A
3196351 Slepian Jul 1965 A
3636463 Ongkiehong Jan 1972 A
3939468 Mastin Feb 1976 A
4163258 Ebihara Jul 1979 A
4181967 Nash Jan 1980 A
4206316 Bumsweig Jun 1980 A
4276543 Miller Jun 1981 A
4486739 Franaszek Dec 1984 A
4499550 Ray, III Feb 1985 A
4722084 Morton Jan 1988 A
4772845 Scott Sep 1988 A
4774498 Traa Sep 1988 A
4864303 Ofek Sep 1989 A
4897657 Brubaker Jan 1990 A
4974211 Corl Nov 1990 A
5017924 Guiberteau May 1991 A
5053974 Penz Oct 1991 A
5166956 Baltus Nov 1992 A
5168509 Nakamura Dec 1992 A
5266907 Dacus Nov 1993 A
5283761 Gillingham Feb 1994 A
5287305 Yoshida Feb 1994 A
5311516 Kuznicki May 1994 A
5412689 Chan May 1995 A
5449895 Hecht Sep 1995 A
5459465 Kagey Oct 1995 A
5511119 Lechleider Apr 1996 A
5553097 Dagher Sep 1996 A
5566193 Cloonan Oct 1996 A
5599550 Kohlruss Feb 1997 A
5626651 Dullien May 1997 A
5629651 Mizuno May 1997 A
5659353 Kostreski Aug 1997 A
5727006 Dreyer Mar 1998 A
5748948 Yu May 1998 A
5802356 Gaskins Sep 1998 A
5825808 Hershey Oct 1998 A
5856935 Moy Jan 1999 A
5875202 Venters Feb 1999 A
5945935 Kusumoto Aug 1999 A
5949060 Schattschneider Sep 1999 A
5982954 Delen Nov 1999 A
5995016 Perino Nov 1999 A
5999016 McClintock Dec 1999 A
6005895 Perino Dec 1999 A
6084883 Norrell Jul 2000 A
6119263 Mowbray Sep 2000 A
6172634 Leonowich Jan 2001 B1
6175230 Hamblin Jan 2001 B1
6232908 Nakaigawa May 2001 B1
6278740 Nordyke Aug 2001 B1
6316987 Dally Nov 2001 B1
6346907 Dacy Feb 2002 B1
6359931 Perino Mar 2002 B1
6378073 Davis Apr 2002 B1
6398359 Silverbrook Jun 2002 B1
6404820 Postol Jun 2002 B1
6417737 Moloudi Jul 2002 B1
6433800 Holtz Aug 2002 B1
6452420 Wong Sep 2002 B1
6473877 Sharma Oct 2002 B1
6483828 Balachandran Nov 2002 B1
6504875 Perino Jan 2003 B2
6509773 Buchwald Jan 2003 B2
6522699 Anderson Feb 2003 B1
6556628 Poulton Apr 2003 B1
6563382 Yang May 2003 B1
6621427 Greenstreet Sep 2003 B2
6624699 Yin Sep 2003 B2
6650638 Walker Nov 2003 B1
6661355 Cornelius Dec 2003 B2
6664355 Kim Dec 2003 B2
6686879 Shattil Feb 2004 B2
6690739 Mui Feb 2004 B1
6766342 Kechriotis Jul 2004 B2
6772351 Werner Aug 2004 B1
6839429 Gaikwad Jan 2005 B1
6839587 Yonce Jan 2005 B2
6854030 Perino Feb 2005 B2
6865234 Agazzi Mar 2005 B1
6865236 Terry Mar 2005 B1
6876317 Sankaran Apr 2005 B2
6898724 Chang May 2005 B2
6927709 Kiehl Aug 2005 B2
6954492 Williams Oct 2005 B1
6963622 Eroz Nov 2005 B2
6972701 Jansson Dec 2005 B2
6973613 Cypher Dec 2005 B2
6976194 Cypher Dec 2005 B2
6982954 Dhong Jan 2006 B2
6990138 Bejjani Jan 2006 B2
6991038 Guesnon Jan 2006 B2
6993311 Li Jan 2006 B2
6999516 Rajan Feb 2006 B1
7023817 Kuffner Apr 2006 B2
7039136 Olson May 2006 B2
7053802 Cornelius May 2006 B2
7075996 Simon Jul 2006 B2
7080288 Ferraiolo Jul 2006 B2
7082557 Schauer Jul 2006 B2
7085153 Ferrant Aug 2006 B2
7085336 Lee Aug 2006 B2
7127003 Rajan Oct 2006 B2
7130944 Perino Oct 2006 B2
7142612 Horowitz Nov 2006 B2
7142865 Tsai Nov 2006 B2
7164631 Tateishi Jan 2007 B2
7167019 Broyde Jan 2007 B2
7176823 Zabroda Feb 2007 B2
7180949 Kleveland Feb 2007 B2
7184483 Rajan Feb 2007 B2
7199728 Dally Apr 2007 B2
7231558 Gentieu Jun 2007 B2
7269130 Pitio Sep 2007 B2
7269212 Chau Sep 2007 B1
7335976 Chen Feb 2008 B2
7336112 Sha Feb 2008 B1
7339990 Hidaka Mar 2008 B2
7346819 Bansal Mar 2008 B2
7348989 Stevens Mar 2008 B2
7349484 Stojanovic Mar 2008 B2
7356213 Cunningham Apr 2008 B1
7358869 Chiarulli Apr 2008 B1
7362130 Broyde Apr 2008 B2
7362697 Becker Apr 2008 B2
7366942 Lee Apr 2008 B2
7370264 Worley May 2008 B2
7372390 Yamada May 2008 B2
7389333 Moore Jun 2008 B2
7397302 Bardsley Jul 2008 B2
7400276 Sotiriadis Jul 2008 B1
7428273 Foster Sep 2008 B2
7456778 Werner Nov 2008 B2
7462956 Lan Dec 2008 B2
7496162 Srebranig Feb 2009 B2
7570704 Nagarajan Apr 2009 B2
7535957 Ozawa May 2009 B2
7539532 Tran May 2009 B2
7599390 Pamarti Oct 2009 B2
7613234 Raghavan Nov 2009 B2
7616075 Kushiyama Nov 2009 B2
7620116 Bessios Nov 2009 B2
7633850 Nagarajan Dec 2009 B2
7639596 Cioffi Dec 2009 B2
7643588 Visalli Jan 2010 B2
7650525 Chang Jan 2010 B1
7656321 Wang Feb 2010 B2
7694204 Schmidt Apr 2010 B2
7697915 Behzad Apr 2010 B2
7698088 Sul Apr 2010 B2
7706456 Laroia Apr 2010 B2
7706524 Zerbe Apr 2010 B2
7746764 Rawlins Jun 2010 B2
7768312 Hirose Aug 2010 B2
7787572 Scharf Aug 2010 B2
7804361 Lim Sep 2010 B2
7808456 Chen Oct 2010 B2
7808883 Green Oct 2010 B2
7841909 Murray Nov 2010 B2
7869497 Benvenuto Jan 2011 B2
7869546 Tsai Jan 2011 B2
7882413 Chen Feb 2011 B2
7899653 Hollis Mar 2011 B2
7907676 Stojanovic Mar 2011 B2
7933770 Kruger Apr 2011 B2
8000664 Khorram Aug 2011 B2
8036300 Evans Oct 2011 B2
8050332 Chung Nov 2011 B2
8055095 Palotai Nov 2011 B2
8064535 Wiley Nov 2011 B2
8085172 Li Dec 2011 B2
8091006 Prasad Jan 2012 B2
8106806 Toyomura Jan 2012 B2
8149906 Saito Apr 2012 B2
8159375 Abbasfar Apr 2012 B2
8159376 Abbasfar Apr 2012 B2
8180931 Lee May 2012 B2
8185807 Oh May 2012 B2
8199849 Oh Jun 2012 B2
8199863 Chen Jun 2012 B2
8218670 AbouRjeily Jul 2012 B2
8233544 Bao Jul 2012 B2
8245094 Jiang Aug 2012 B2
8253454 Lin Aug 2012 B2
8279094 Abbasfar Oct 2012 B2
8289914 Li Oct 2012 B2
8295250 Gorokhov Oct 2012 B2
8295336 Lutz Oct 2012 B2
8310389 Chui Nov 2012 B1
8341492 Shen Dec 2012 B2
8359445 Ware Jan 2013 B2
8365035 Hara Jan 2013 B2
8406315 Tsai Mar 2013 B2
8406316 Sugita Mar 2013 B2
8429492 Yoon Apr 2013 B2
8429495 Przybylski Apr 2013 B2
8437440 Zhang May 2013 B1
8442099 Sederat May 2013 B1
8442210 Zerbe May 2013 B2
8443223 Abbasfar May 2013 B2
8451913 Oh May 2013 B2
8462891 Kizer Jun 2013 B2
8472513 Malipatil Jun 2013 B2
8620166 Dong Jun 2013 B2
8498344 Wilson Jul 2013 B2
8498368 Husted Jul 2013 B1
8520348 Dong Aug 2013 B2
8520493 Goulahsen Aug 2013 B2
8539318 Cronie Sep 2013 B2
8547272 Nestler Oct 2013 B2
8577284 Seo Nov 2013 B2
8578246 Mittelholzer Nov 2013 B2
8588254 Diab Nov 2013 B2
8588280 Oh Nov 2013 B2
8593305 Tajalli Nov 2013 B1
8602643 Gardiner Dec 2013 B2
8604879 Mourant Dec 2013 B2
8638241 Sudhakaran Jan 2014 B2
8643437 Chiu Feb 2014 B2
8649445 Cronie Feb 2014 B2
8649460 Ware Feb 2014 B2
8649556 Wedge Feb 2014 B2
8649840 Sheppard, Jr. Feb 2014 B2
8674861 Matsuno Mar 2014 B2
8711919 Kumar Apr 2014 B2
8718184 Cronie May 2014 B1
8755426 Cronie Jun 2014 B1
8773964 Hsueh Jul 2014 B2
8780687 Clausen Jul 2014 B2
8782578 Tell Jul 2014 B2
8879660 Peng Nov 2014 B1
8897134 Kern Nov 2014 B2
8898504 Baumgartner Nov 2014 B2
8938171 Tang Jan 2015 B2
8949693 Ordentlich Feb 2015 B2
8951072 Hashim Feb 2015 B2
8975948 GonzalezDiaz Mar 2015 B2
8989317 Holden Mar 2015 B1
9015566 Cronie Apr 2015 B2
9020049 Schwager Apr 2015 B2
9036764 Hossain May 2015 B1
9059816 Simpson Jun 2015 B1
9069995 Cronie Jun 2015 B1
9077386 Holden Jul 2015 B1
9083576 Hormati Jul 2015 B1
9093791 Liang Jul 2015 B2
9100232 Hormati Aug 2015 B1
9106465 Walter Aug 2015 B2
9124557 Fox Sep 2015 B2
9148087 Tajalli Sep 2015 B1
9152495 Losh Oct 2015 B2
9165615 Amirkhany Oct 2015 B2
9172412 Kim Oct 2015 B2
9178503 Hsieh Nov 2015 B2
9183085 Northcott Nov 2015 B1
9197470 Okunev Nov 2015 B2
9281785 Sjoland Mar 2016 B2
9288082 Ulrich Mar 2016 B1
9288089 Cronie Mar 2016 B2
9292716 Winoto Mar 2016 B2
9300503 Holden Mar 2016 B1
9306621 Zhang Apr 2016 B2
9331962 Lida May 2016 B2
9362974 Fox Jun 2016 B2
9363114 Shokrollahi Jun 2016 B2
9374250 Musah Jun 2016 B1
9401828 Cronie Jul 2016 B2
9432082 Ulrich Aug 2016 B2
9432298 Smith Aug 2016 B1
9444654 Hormati Sep 2016 B2
9455744 George Sep 2016 B2
9455765 Schumacher Sep 2016 B2
9461862 Holden Oct 2016 B2
9509437 Shokrollahi Nov 2016 B2
9544015 Ulrich Jan 2017 B2
9634797 Benammar Apr 2017 B2
9667379 Cronie May 2017 B2
20010006538 Simon Jul 2001 A1
20010055344 Lee Dec 2001 A1
20020034191 Shattil Mar 2002 A1
20020044316 Myers Apr 2002 A1
20020057292 Holtz May 2002 A1
20020057592 Robb May 2002 A1
20020154633 Shin Oct 2002 A1
20020163881 Dhong Nov 2002 A1
20020167339 Chang Nov 2002 A1
20020174373 Chang Nov 2002 A1
20020181607 Izumi Dec 2002 A1
20030016770 Trans Jan 2003 A1
20030046618 Collins Mar 2003 A1
20030048210 Kiehl Mar 2003 A1
20030071745 Greenstreet Apr 2003 A1
20030085763 Schrodinger May 2003 A1
20030086366 Branlund May 2003 A1
20030105908 Perino Jun 2003 A1
20030146783 Bandy Aug 2003 A1
20030174023 Miyasita Sep 2003 A1
20030185310 Ketchum Oct 2003 A1
20030218558 Mulder Nov 2003 A1
20030227841 Tateishi Dec 2003 A1
20040003336 Cypher Jan 2004 A1
20040003337 Cypher Jan 2004 A1
20040027185 Fiedler Feb 2004 A1
20040057525 Rajan Mar 2004 A1
20040086059 Eroz May 2004 A1
20040146117 Subramaniam Jul 2004 A1
20040155802 Lamy Aug 2004 A1
20040156432 Hidaka Aug 2004 A1
20040161019 Raghavan Aug 2004 A1
20040169529 Afghahi Sep 2004 A1
20040174373 Stevens Sep 2004 A1
20050063493 Foster Mar 2005 A1
20050134380 Nairn Jun 2005 A1
20050135182 Perino Jun 2005 A1
20050149833 Perino Jun 2005 A1
20050152385 Cioffi Jul 2005 A1
20050174841 Ho Aug 2005 A1
20050195000 Parker Sep 2005 A1
20050201491 Wei Sep 2005 A1
20050213686 Love Sep 2005 A1
20050220182 Kuwata Oct 2005 A1
20050286643 Ozawa Dec 2005 A1
20060018344 Pamarti Jan 2006 A1
20060036668 Jaussi Feb 2006 A1
20060067413 Tsai Mar 2006 A1
20060097786 Su May 2006 A1
20060103463 Lee May 2006 A1
20060115027 Srebranig Jun 2006 A1
20060120486 Visalli Jun 2006 A1
20060126751 Bessios Jun 2006 A1
20060133538 Stojanovic Jun 2006 A1
20060140324 Casper Jun 2006 A1
20060159005 Rawlins Jul 2006 A1
20060233291 Garlepp Oct 2006 A1
20060269005 Laroia Nov 2006 A1
20070001723 Lin Jan 2007 A1
20070002954 Cornelius Jan 2007 A1
20070030796 Green Feb 2007 A1
20070103338 Teo May 2007 A1
20070121716 Nagarajan May 2007 A1
20070204205 Niu Aug 2007 A1
20070260965 Schmidt Nov 2007 A1
20070263711 Kramer Nov 2007 A1
20070265533 Tran Nov 2007 A1
20070283210 Prasad Dec 2007 A1
20080007367 Kim Jan 2008 A1
20080012598 Mayer Jan 2008 A1
20080013622 Bao Jan 2008 A1
20080104374 Mohamed May 2008 A1
20080159448 Anim-Appiah Jul 2008 A1
20080169846 Lan Jul 2008 A1
20080192621 Suehiro Aug 2008 A1
20080273623 Chung Nov 2008 A1
20080284524 Kushiyama Nov 2008 A1
20080317188 Staszewski Dec 2008 A1
20090059782 Cole Mar 2009 A1
20090092196 Okunev Apr 2009 A1
20090115523 Akizuki May 2009 A1
20090132758 Jiang May 2009 A1
20090154500 Diab Jun 2009 A1
20090185636 Palotai Jul 2009 A1
20090193159 Li Jul 2009 A1
20090195281 Tamura Aug 2009 A1
20090212861 Lim Aug 2009 A1
20090228767 Oh Sep 2009 A1
20090257542 Evans Oct 2009 A1
20090262876 Arima Oct 2009 A1
20090316730 Feng Dec 2009 A1
20090323864 Tired Dec 2009 A1
20100020898 Stojanovic Jan 2010 A1
20100023838 Shen Jan 2010 A1
20100046644 Mazet Feb 2010 A1
20100081451 Mueck Apr 2010 A1
20100104047 Chen Apr 2010 A1
20100122021 Lee May 2010 A1
20100148819 Bae Jun 2010 A1
20100177816 Malipatil Jul 2010 A1
20100180143 Ware Jul 2010 A1
20100205506 Hara Aug 2010 A1
20100215087 Tsai Aug 2010 A1
20100215112 Tsai Aug 2010 A1
20100235673 Abbasfar Sep 2010 A1
20100296550 Rjeily Nov 2010 A1
20100296556 Rave Nov 2010 A1
20100309964 Oh Dec 2010 A1
20110014865 Seo Jan 2011 A1
20110051854 Kizer Mar 2011 A1
20110072330 Kolze Mar 2011 A1
20110084737 Oh Apr 2011 A1
20110103508 Mu May 2011 A1
20110127990 Wilson Jun 2011 A1
20110228864 Aryanfar Sep 2011 A1
20110235501 Goulahsen Sep 2011 A1
20110268225 Cronie Nov 2011 A1
20110299555 Cronie Dec 2011 A1
20110302478 Cronie Dec 2011 A1
20110317559 Kern Dec 2011 A1
20110317587 Lida Dec 2011 A1
20120063291 Hsueh Mar 2012 A1
20120082203 Zerbe Apr 2012 A1
20120152901 Nagorny Jun 2012 A1
20120161945 Single Jun 2012 A1
20120213299 Cronie Aug 2012 A1
20120257683 Schwager Oct 2012 A1
20130010892 Cronie Jan 2013 A1
20130013870 Cronie Jan 2013 A1
20130051162 Amirkhany Feb 2013 A1
20130114519 Gaal May 2013 A1
20130129019 Sorrells May 2013 A1
20130147553 Iwamoto Jun 2013 A1
20130163126 Dong Jun 2013 A1
20130188656 Ferraiolo Jul 2013 A1
20130195155 Pan Aug 2013 A1
20130202065 Chmelar Aug 2013 A1
20130259113 Kumar Oct 2013 A1
20130271194 Pellerano Oct 2013 A1
20130314142 Tamura Nov 2013 A1
20130315501 Atanassov Nov 2013 A1
20130346830 Ordentlich Dec 2013 A1
20140016724 Cronie Jan 2014 A1
20140132331 GonzalezDiaz May 2014 A1
20140159769 Hong Jun 2014 A1
20140177645 Cronie Jun 2014 A1
20140198837 Fox Jul 2014 A1
20140198841 George Jul 2014 A1
20140226455 Schumacher Aug 2014 A1
20140254730 Kim Sep 2014 A1
20150010044 Zhang Jan 2015 A1
20150070201 Dedic Mar 2015 A1
20150078479 Whitby-Strevens Mar 2015 A1
20150146771 Walter May 2015 A1
20150199543 Winoto Jul 2015 A1
20150222458 Hormati Aug 2015 A1
20150249559 Shokrollahi Sep 2015 A1
20150333940 Shokrollahi Nov 2015 A1
20150349835 Fox Dec 2015 A1
20150380087 Mittelholzer Dec 2015 A1
20150381232 Ulrich Dec 2015 A1
20160020796 Hormati Jan 2016 A1
20160020824 Ulrich Jan 2016 A1
20160036616 Holden Feb 2016 A1
20160182259 Musah Jun 2016 A1
20160261435 Musah Sep 2016 A1
20170310456 Tajalli Oct 2017 A1
20170317449 Shokrollahi Nov 2017 A1
20170317855 Shokrollahi Nov 2017 A1
Foreign Referenced Citations (9)
Number Date Country
1864346 Nov 2006 CN
101478286 Jul 2009 CN
1926267 May 2008 EP
2039221 Feb 2013 EP
2003163612 Jun 2003 JP
2005002162 Jan 2005 WO
2009084121 Jul 2009 WO
2010031824 Mar 2010 WO
2011119359 Sep 2011 WO
Non-Patent Literature Citations (48)
Entry
“Introduction to: Analog Computers and the DSPACE System,” Course Material ECE 5230 Spring 2008, Utah State University, www.coursehero.com, 12 pages.
Abbasfar, A., “Generalized Differential Vector Signaling”, IEEE International Conference on Communications, ICC 09, (Jun. 14, 2009), pp. 1-5.
Brown, L., et al., “V.92: The Last Dial-Up Modem?”, IEEE Transactions on Communications, IEEE Service Center, Piscataway, NJ., USA, vol. 52, No. 1, Jan. 1, 2004, pp. 54-61. XP011106836, ISSN: 0090-6779, DOI: 10.1109/tcomm.2003.822168, pp. 55-59.
Burr, “Spherical Codes for M-ARY Code Shift Keying”, University of York, Apr. 2, 1989, pp. 67-72, United Kingdom.
Cheng, W., “Memory Bus Encoding for Low Power: A Tutorial”, Quality Electronic Design, IEEE, International Symposium on Mar. 26-28, 2001, pp. 199-204, Piscataway, NJ.
Clayton, P., “Introduction to Electromagnetic Compatibility”, Wiley-Interscience, 2006.
Counts, L., et al., “One-Chip Slide Rule Works with Logs, Antilogs for Real-Time Processing,” Analog Devices Computational Products 6, Reprinted from Electronic Design, May 2, 1985, 7 pages.
Dasilva et al., “Multicarrier Orthogonal CDMA Signals for Quasi-Synchronous Communication Systems”, IEEE Journal on Selected Areas in Communications, vol. 12, No. 5 (Jun. 1, 1994), pp. 842-852.
Design Brief 208 Using the Anadigm Multiplier CAM, Copyright 2002 Anadigm, 6 pages.
Ericson, T., et al., “Spherical Codes Generated by Binary Partitions of Symmetric Pointsets”, IEEE Transactions on Information Theory, vol. 41, No. 1, Jan. 1995, pp. 107-129.
Farzan, K., et al., “Coding Schemes for Chip-to-Chip Interconnect Applications”, IEEE Transactions on Very Large Scale Integration (VLSI) Systems, vol. 14, No. 4, Apr. 2006, pp. 393-406.
Grahame, J., “Vintage Analog Computer Kits,” posted on Aug. 25, 2006 in Classic Computing, 2 pages, http.//www.retrothing.com/2006/08/classic_analog_.html.
Healey, A., et al., “A Comparison of 25 Gbps NRZ & PAM-4 Modulation used in Legacy & Premium Backplane Channels”, DesignCon 2012, 16 pages.
International Search Report and Written Opinion for PCT/EP2011/059279 dated Sep. 22, 2011.
International Search Report and Written Opinion for PCT/EP2011/074219 dated Jul. 4, 2012.
International Search Report and Written Opinion for PCT/EP2012/052767 dated May 11, 2012.
International Search Report and Written Opinion for PCT/US14/052986 dated Nov. 24, 2014.
International Search Report and Written Opinion from PCT/US2014/034220 dated Aug. 21, 2014.
International Search Report and Written Opinion of the International Searching Authority, dated Jul. 14, 2011 in International Patent Application S.N. PCT/EP2011/002170, 10 pages.
International Search Report and Written Opinion of the International Searching Authority, dated Nov. 5, 2012, in International Patent Application S.N. PCT/EP2012/052767, 7 pages.
International Search Report for PCT/US2014/053563, dated Nov. 11, 2014, 2 pages.
Jiang, A., et al., “Rank Modulation for Flash Memories”, IEEE Transactions of Information Theory, Jun. 2006, vol. 55, No. 6, pp. 2659-2673.
Loh, M., et al., “A 3×9 Gb/s Shared, All-Digital CDR for High-Speed, High-Density I/O”, Matthew Loh, IEEE Journal of Solid-State Circuits, Vo. 47, No. 3, Mar. 2012.
Notification of Transmittal of International Search Report and The Written Opinion of the International Searching Authority, for PCT/U52015/018363, dated Jun. 18, 2015, 13 pages.
Notification of Transmittal of Authority, of The International Search Report and The Written Opinion of the International Searching Authority, or the Declaration for PCT/EP2013/002681, dated Feb. 25, 2014, 15 pages.
Notification of Transmittal of The International Search Report and The Written Opinion of the International Searching Authority, or The Declaration, dated Mar. 3, 2015, for PCT/US2014/066893, 9 pages.
Notification of Transmittal of The International Search Report and The Written Opinion of the International Searching Authority, or the Declaration, for PCT/US2014/015840, dated May 20, 2014. 11 pages.
Notification of Transmittal of The International Search Report and The Written Opinion of the International Searching Authority, or the Declaration, for PCT/US2014/043965, dated Oct. 22, 2014, 10 pages.
Notification of Transmittal of the International Search Report and the Written Opinion of the International Searching Authority, or the Declaration, for PCT/US2015/037466, dated Nov. 19, 2015.
Notification of Transmittal of the International Search Report and the Written Opinion of the International Searching Authority, or the Declaration, for PCT/US2015/039952, dated Sep. 23, 2015, 8 pages.
Notification of Transmittal of the International Search Report and the Written Opinion of the International Searching Authority, or the Declaration, for PCT/US2015/041161, dated Oct. 7, 2015, 8 pages.
Notification of Transmittal of the International Search Report and the Written Opinion of the International Searching Authority, or the Declaration, for PCT/US2015/043463, dated Oct. 16, 2015, 8 pages.
Oh, et al., Pseudo-Differential Vector Signaling for Noise Reduction in Single-Ended Signaling, DesignCon 2009.
Poulton, et al., “Multiwire Differential Signaling”, UNC-CH Department of Computer Science Version 1.1, Aug. 6, 2003.
Schneider, J., et al., “ELEC301 Project: Building an Analog Computer,” Dec. 19, 1999, 8 pages, http://www.clear.rice.edu/elec301/Projects99/anlgcomp/.
She et al., “A Framework of Cross-Layer Superposition Coded Multicast for Robust IPTV Services over WiMAX,” IEEE Communications Society subject matter experts for publication in the WCNC 2008 proceedings, Mar. 31, 2008-Apr. 3, 2008, pp. 3139-3144.
Skliar et al., A Method for the Analysis of Signals: the Square-Wave Method, Mar. 2008, Revista de Matematica: Teoria y Aplicationes, pp. 109-129.
Slepian, D., “Premutation Modulation”, IEEE, vol. 52, No. 3, Mar. 1965, pp. 228-236.
Stan, M., et al., “Bus-Invert Coding for Low-Power I/O, IEEE Transactions on Very Large Scale Integration (VLSI) Systems”, vol. 3, No. 1, Mar. 1995, pp. 49-58.
Tallini, L., et al., “Transmission Time Analysis for the Parallel Asynchronous Communication Scheme”, IEEE Transactions on Computers, vol. 52, No. 5, May 2003, pp. 558-571.
Tierney, J., et al., “A digital frequency synthesizer,” Audio and Electroacoustics, IEEE Transactions, Mar. 1971, pp. 48-57, vol. 19, Issue 1, 1 page Abstract from http://ieeexplore.
Wang et al., “Applying CDMA Technique to Network-on-Chip”, IEEE Transactions on Very Large Scale Integration (VLSI) Systems, vol. 15, No. 10 (Oct. 1, 2007), pp. 1091-1100.
Zouhair Ben-Neticha et al, “The streTched-Golay and other codes for high-SNR fnite-delay quantization of the Gaussian source at 1/2 Bit per sample”, IEEE Transactions on Communications, vol. 38, No. 12 Dec. 1, 1990, pp. 2089-2093, XP000203339, ISSN: 0090-6678, DOI: 10.1109/26.64647.
Holden, B., “An exploration of the technical feasibility of the major technology options for 400GE backplanes”, IEEE 802.3 400GE Study Group, Jul. 16, 2013, 18 pages, http://ieee802.org/3/400GSG/public/13_07/holden_400_01_0713.pdf.
Holden, B., “Using Ensemble NRZ Coding for 400GE Electrical Interfaces”, IEEE 802.3 400GE Study Group, May 17, 2013, 24 pages, http://www.ieee802.org/3/400GSG/public/13_05/holden_400_01_0513.pdf.
Holden, B., “Simulation results for NRZ, ENRZ & PAM-4 on 16-wire full-sized 400GE backplanes”, IEEE 802.3 400GE Study Group, Sep. 2, 2013, 19 pages, www.ieee802.0rg/3/400GSG/publiv/13_09/holden_400_01_0913.pdf.
Notification of Transmittal of the International Search Report and the Written Opinion of the International Searching Authority, or the Declaration., for PCT/US17/14997, dated Apr. 7, 2017.
Giovaneli, et al., “Space-frequency coded OFDM system for multi-wire power line communications”, Power Line Communications and its Applications, 20015 International Symposium on Vancouver, BC, Canada, Apr. 6-8, 2005, Piscataway, NJ, pp. 191-195.
Related Publications (1)
Number Date Country
20160373200 A1 Dec 2016 US
Provisional Applications (1)
Number Date Country
62025712 Jul 2014 US
Continuations (1)
Number Date Country
Parent 14796645 Jul 2015 US
Child 15251912 US