Methods and systems for high bandwidth chip-to-chip communcations interface

Abstract
Systems and methods are described for transmitting data over physical channels to provide a high bandwidth, low latency interface between integrated circuit chips with low power utilization. Communication is performed using group signaling over multiple wires using a vector signaling code, where each wire carries a low-swing signal that may take on more than two signal values.
Description
BACKGROUND

In communication systems, information may be transmitted from one physical location to another. Furthermore, it is typically desirable that the transport of this information is reliable, is fast and consumes a minimal amount of resources. One of the most common information transfer mediums is the serial communications link, which may be based on a single wire circuit relative to ground or other common reference, multiple such circuits relative to ground or other common reference, or multiple circuits used in relation to each other.


An 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 paired wire; the signal information is represented by the difference between the wires rather than their absolute values relative to ground or other fixed reference. Differential signaling enhances the recoverability of the original signal at the receiver, over single ended signaling (SES), by cancelling crosstalk and other common-mode noise. There are a number of signaling methods that maintain the desirable properties of DS while increasing pin-efficiency over DS. Many of these attempts operate on more than two wires simultaneously, using binary signals on each wire, but mapping information in groups of bits.


Vector signaling is a method of signaling. With vector signaling, pluralities of signals on a plurality of wires are considered collectively although each of the plurality of signals may 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 may refer to the number of degrees of freedom of signals on the plurality of wires instead of the number of wires in the plurality of wires.


With binary vector signaling, each component takes on a coordinate value (or “coordinate”, for short) that is one of two possible values. As an example, eight SES wires may be considered collectively, with each component/wire taking on one of two values each signal period. A “code word” of this binary vector signaling is one of the possible states of that collective set of components/wires. A “vector signaling code” or “vector signaling vector set” is the collection of valid possible code words for a given vector signaling encoding scheme. A “binary vector signaling code” refers to a mapping and/or set of rules to map information bits to binary vectors.


With non-binary vector signaling, each component has a coordinate value that is a selection from a set of more than two possible values. A “non-binary vector signaling code” refers to a mapping and/or set of rules to map information bits to non-binary vectors.


Examples of vector signaling methods are described in Cronie I, Cronie II, Cronie III, and Fox I.


BRIEF SUMMARY

In accordance with at least one embodiment, processes and apparatuses provide for transmitting data over physical channels to provide a high speed, low latency interface providing high total bandwidth at low power utilization, such as to interconnect integrated circuit chips in a multi-chip system. In some embodiments, different voltage, current, etc. levels are used for signaling and more than two levels may be used, such as a ternary vector signaling code wherein each wire signal has one of three values.


This Brief Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Brief Summary is not intended to identify key or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter. Other objects and/or advantages of the present invention will be apparent to one of ordinary skill in the art upon review of the Detailed Description and the included drawings.





BRIEF DESCRIPTION OF THE DRAWINGS

Various embodiments in accordance with the present disclosure will be described with reference to the drawings. Same numbers are used throughout the disclosure and figures to reference like components and features.



FIG. 1 is a block diagram of an example system comprised of a transmitting device, interconnection, and receiving device, in accordance with at least one embodiment of the invention.



FIG. 2 is a block diagram for a bidirectional chip interface in accordance with at least one embodiment of the invention.



FIG. 3 is a schematic drawing of a ternary driver circuit in accordance with at least one embodiment of the invention.



FIG. 4A and FIG. 4B are schematic drawings of line receiver circuits in accordance with at least one embodiment of the invention.



FIG. 5A and FIG. 5B show eye graphs of the described 5b6w-RS encoded system, in accordance with at least one embodiment of the invention.



FIG. 6 is the schematic of a 5b6w encoder in accordance with at least one embodiment of the invention.



FIG. 7 is the schematic of a 5b6w decoder in accordance with at least one embodiment of the invention.



FIG. 8A and FIG. 8B are respective block diagrams of a conventional multiwire interface and a system using TLT(4,1)-RS coding, in accordance with at least one embodiment of the invention.



FIGS. 9A and 9B is a schematic of ternary low-swing driver and ternary line receiver circuits, in accordance with at least one embodiment of the invention.



FIG. 10 is an illustration of integrated circuit devices interconnected by a silicon interposer, in accordance with at least one embodiment of the invention.





DETAILED DESCRIPTION

Despite the increasing technological ability to integrate entire systems into a single integrated circuit, multiple chip systems and subsystems retain significant advantages. Partitioning a large system into chip-scale elements may allow each chip to be fabricated using an optimized process providing, as examples, higher voltage tolerance, lower leakage, higher transistor gain, etc. Smaller chips may also exhibit higher yields, and therefore may enable lower systems costs. A small set of such optimized chips may be combined in multiple combinations producing a wide variety of integrated systems, individual chips may be revised independently, and customer-specific features may be added at the system integration level.


One significant difficulty in such partitioning is in finding demarcation points between subsystems that not only represent desirable divisions between implementation methods, but also correspond to well-defined and implementable interfaces. Historically, demarcations requiring high-bandwidth and/or low latency interconnection have been precluded, due to the complexity of implementing a physical interface requiring hundreds or thousands of discrete pins and wires, with the resulting high power consumption of the necessary I/O drivers and receivers.


A number of solutions have become available to mitigate these constraints. Flip-chip or through-chip interconnections using micro-ball connections allow hundreds or thousands of connections per chip. Chip carriers such as a silicon interposer may provide wire paths of hundreds of signals per millimeter, with tightly controlled signal path routing and stable transmission line characteristics for inter-chip communications distances on the order of one millimeter. Thus, the physical infrastructure that would support high-bandwidth chip-to-chip connectivity is available, if the power, complexity, and other circuit implementation issues for such interfaces could be resolved.


For purposes of description and without limitation, example embodiments of at least some aspects of the invention herein described assume a systems environment having:

    • at least one communications interface connecting at least two integrated circuit (“IC”) chips representing at least a transmitter and a receiver, with the communications interface supported by an interconnection of 100 wires or less in some examples,
    • a silicon interposer device interconnecting at least the two IC chips, using micro-bump or micro-ball-array connections with a wiring density of around 100 lines/mm and a controlled-impedance, controlled-skew inter-device signal path of one millimeter or so,
    • an aggregate bandwidth of at least around 500 gigabits per second across the communications interface, and
    • a combined power consumption for the active transmitter and receiver of the communications interface of less than about 250 milliwatts in a medium range process technology node, such as a general-purpose 40 nm integrated circuit process.



FIG. 10 provides an illustration of an example silicon interposer interconnecting at least two integrated circuit chips, in accordance with at least one embodiment of the invention in the described systems environment. The interposer 101 include microbumps 1006 for connection to silicon chip 11002 and silicon chip 21004. The interposer 1010 may include through-silicon vias (TSV) for connection to flip chip bumps 1012 to a package substrate 1014.


It is noted that desirable combinations of bandwidth, pin count, and communications distance exist for both matched-impedance “transmission line” solutions and high impedance unterminated bus solutions. As subsequently described, at least one embodiment uses reduced-swing Current Mode Logic pin drivers and interconnection wiring terminated at both transmitter and receiver. Also subsequently described, at least one embodiment uses CMOS-like pin drivers and high impedance unterminated interconnection wiring.


Without loss of generality, the physical interface between devices is herein described as being point-to-point wire connections between integrated circuit devices, optionally including multidrop bussed interconnection of multiple devices. One embodiment has a silicon interposer to provide inter-chip connectivity. Another embodiment has a high density controlled impedance printed circuit board to provide inter-chip connectivity.


Further embodiments incorporate direct chip-to-chip connection with through-vias or flip-chip bonding. Other embodiments may use different signaling levels, connection topology, termination methods, and/or other physical interfaces, including optical, inductive, capacitive, or electrical interconnection. Similarly, examples based on unidirectional communication from transmitter to receiver are presented for clarity of description; combined transmitter-receiver embodiments and bidirectional communication embodiments are also in accordance with the invention.


Assumptions


For purposes of description and without limitation, example embodiments of at least some aspects of the invention further assume the following characteristics unless otherwise stated:

    • Technology: TSMC 40 GP or equivalent medium range process
    • Vdd=0.9V
    • Minimal interface:
      • Forwarded clock(s) architecture
      • Line rate of 8 Gsymbols/second
      • Clock recovery/PLL using conventional means
      • 4:1 mux architecture
      • Boot time (or link idle time) clock alignment only
    • Channel assumptions:
      • Short (˜1 mm) low loss, low skew trace
      • Compatible with 40 μm pitch micro-bumps and ˜100 wire per mm edge
      • Parasitics (100 fF for ESD, 100 pH inductance, 10 fF for the micro-bumps)
      • 50 fF load on Rx input
      • Connection impedance in the range of 50 to 80 Ohm



FIG. 1 shows a general block diagram of an interconnection in accordance with at least one embodiment of the invention, having a transmitter, inter-device interconnection, and a receiver.


Terminated Transmission Line Embodiment



FIG. 2 shows the top-level architecture of a bidirectional chip interface in accordance with at least one embodiment of the invention. As an example, it presents a 4 Ghz 4:1 mux architecture that supports a line rate of 8 Gsymbols per second. This embodiment uses source- and destination-terminated Current Mode Logic drivers with reduced signal swing and a vector signaling code based on code words of six ternary symbols. Each described instance of the encoder, transmission drivers, receive comparators, and decoder will be duplicated for each six wire subset of the complete interface.


Coding Techniques


For purposes of the design of a communications system as described above, it is desirable to employ a vector signaling code that operates on a small group of wires, has a very low power detector with a small footprint, and has a high pin-efficiency. Multiple options exist for such a design, though not all of them are of the same quality.


Since the links described above are short and don't need heavy equalization and power-consuming elements like clock-and-data recovery, most of the power of the link is consumed by the line drivers and the line receivers or detectors, and to a lesser extent by the encoder and decoder. The power consumed by the driver can be reduced by going to a lower swing and by using a current-mode-logic topology, as shown in FIG. 3. Where the channel conditions are very favorable, and not a whole lot of eye closure is to be expected, it can be advantageous in these applications to use non-binary coding, since this type of coding further reduces the driver power consumption by virtue of the fact that the symbols transmitted on the wires have different magnitudes and hence require different amounts of power. Moreover, using non-binary coding also increases the number of bits to be sent across the wires, thereby increasing the pin-efficiency. Among the many non-binary alphabets the ternary alphabet, consisting of the elements labelled −1, 0, and +1, offers additional advantages: it is relatively simple to drive three values on the wires, and transmission methods may be used that do not require any power consumption when driving one of the states. For the purposes of this disclosure, we therefore concentrate on the case of ternary codes. It should be noted, however, that this restriction is for illustrative purposes only.


The detector power is dominated by the elements that perform comparisons among the wires. One of the simplest topologies is the one in which comparisons are made between pairs of wire values only. Full ternary permutation-modulation codes, i.e., permutation modulation codes comprising all the distinct permutations of a ternary vector, typically require a number of pairwise comparisons that is equal to N*(N−1)/2, wherein N is the number of wires used. So, for example, three comparators are needed for three wires, six comparators are needed for four wires, ten comparators are needed for five wires, etc. Very pin-efficient ternary vector signaling codes, i.e., ternary vector signaling codes with pin-efficiency 1 or larger, can only be obtained with six or more wires, leading to at least 15 comparators, or 5/3 comparators on average per received bit. This number may be too large in the specific applications described above. Other techniques might be needed that may slightly reduce the pin-efficiency, but drastically reduce the number of comparators per output bit.


Such coding schemes can be obtained using tools from discrete mathematics in general, and discrete optimization in particular. Suppose that C is a vector signaling permutation modulation code (ternary or not) that has M code words, each of length N. As described above, at most N*(N−1)/2 pairwise comparators would be sufficient to detect any code word. To reduce the number of comparisons, a certain number, say L, of comparators is chosen, and a graph, called the distinguishability graph, is set up in which the nodes are the code words. Two such nodes are connected in this graph if the chosen comparators cannot distinguish them. This means that in both code words and for all the chosen comparators either the ordering of the positions is the same under the given comparator, or in at least one of the code words the two values are the same. For example, if the comparators compare positions 1, 2, positions 1,3, positions 1,4 and positions 2,4 in a vector signaling code of length 3, then the two code words (0,0,−1,1) and (−1,0,1,0) would not be distinguishable.


Once the distinguishability graph is set up, the task is to find a largest independent set in this graph, i.e., a largest set of nodes (=code words) no two of which are connected (=indistinguishable). Various techniques can be used to find such an independent set. As is appreciated by those of skill in discrete mathematics upon reading this disclosure, the problem can be formulated as an integer linear program that can be solved (in reasonable time, if the number of code words is not too large) using standard techniques. For larger problem instances, heuristic methods can be combined with integer linear programming to achieve the goal.


For the purposes of satisfying the previously described system requirements, a good compromise between the number of comparators used and the number of bits transmitted may be that the number of comparators is one more than the number of bits transmitted. Adding this constraint, a particular implementation of the graph theoretic approach may reveal the following codes.


When the number of wires is 3, the code consisting of the code words (1,−1,0), (0,1,−1), (0,−1,1), and (−1,0,1) admits two comparators: the first one compares positions 1,2, and the second one compares positions 1,3. This code is very efficient in terms of the number of comparators per bit (which is 1), and has a pin-efficiency of 2/3.


When the number of wires is four, any code that allows for transmission of three or more bits and uses no more than three comparators will introduce ambiguities and should be avoided. It is possible to avoid ambiguities using a code that allows to transmission of three bits using only four comparators. One possible such code is given by the eight vectors:

    • (1,0,0,1), (1,−1,0,0), (0,1,−1,0), (0,0,1,−1), (0,0,−1,1), (0,−1,1,0), (−1,1,0,0), (−1,0,0,1)


The four comparators compare positions 1, 2, positions 1, 3, positions 1, 4, and positions 2, 3. There are, on average, 4/3 comparators per output bit, and the pin-efficiency of this code is 75%.


When the number of wires is 5, and the number of comparators is 5 as well, the best code found by the optimization procedure has 14 code words, which is two code words short of a code that can encoder 4 bits. The pin-efficiency of this code is not very good for many applications.


When the number of wires is 6, and the number of comparators is 5, the procedure reveals a code with 24 elements, which is 8 elements short of a code that can encode 5 bits.


When the number of comparisons is increased to 6, the procedure outputs a very useful coding scheme. This code, called the 5b6w code, is described in the following.


5b6w-RS Code


This section defines the code that is employed together with our multi-level, reduced-swing CML interface to deliver superior link properties at low power, which is herein described as the 5b6w-RS code. This code operates on five binary inputs to produce signal values carried by six wires. To achieve the desired throughput, the overall interface incorporates multiple such code groups, as one example thirteen such groups totaling 78 signal wires collectively encoding as many as 65 binary bits of data.


The 5b6w vector signaling code is designed to send on every group of six wires 2 “+” signals, 2 “−” signals, and 2 “0” signals. This code is thus “balanced”, having the same number of “+” values as “−” values per group. A knowledgeable practitioner would note that without additional constraint, a code based on sending 2 “+” signals and 2 “−” signals on every group of 6 wires has 90 distinct combinations, sufficient to encode 6 bits instead of 5. However, in the interest of keeping the encoder/decoder low complexity and thus requiring low implementation area, and in the interest of permitting a very low-power receiver architecture, we have opted to use a particular subset of those combinations, consisting of the following 32 code words:

    • (+1,0,−1,−1,+1,0), (+1,−1,0,+1,−1,0), (−1,+1,0,−1,0,+1), (−1,0,+1,0,+1,−1) (+1,−1,0,0,−1,+1), (+1,0,−1,+1,0,−1), (−1,0,+1,−1,+1,0), (−1,+1,0,+1,−1,0) (0,+1,−1,−1,0,+1), (0,+1,−1,+1,−1,0), (−1,0,+1,−1,0,+1), (−1,+1,0,+1,0,−1) (−1,0,+1,0,−1,+1), (+1,0,−1,0,−1,+1), (+1,−1,0,0,+1,−1), (0,−1,+1,−1,+1,0) (−1,0,+1,+1,−1,0), (+1,−1,0,−1,+1,0), (0,+1,−1,+1,0,−1), (−1,+1,0,0,−1,+1) (−1,0,+1,+1,0,−1), (+1,−1,0,−1,0,+1), (+1,0,−1,0,+1,−1), (−1,+1,0,0,+1,−1) (0,−1,+1,−1,0,+1), (0,−1,+1,+1,−1,0), (+1,0,−1,−1,0,+1), (+1,−1,0,+1,0,−1) (−1,+1,0,−1,+1,0), (0,−1,+1,+1,0,−1), (0,+1,−1,−1,+1,0), (+1,0,−1,+1,−1,0)


The comparators needed to distinguish these code words compare positions 1, 2, positions 2, 3, positions 1, 3, positions 4, 5, positions 5, 6, and positions 4, 6. This coding also ensures immunity to SSO noise.


The −RS designation indicates that wire signaling of the encoded groups uses Reduced Swing signal values, where a “+” signal may be represented by a value +200 mV over reference level, a “0” signal may be represented by a value +100 mV over reference level, and a “−” signal may be represented by a value 0 mV over reference level. These signal levels are given as examples, without limitation, and represent incremental signal values from a nominal reference level.


Transmit Driver


In accordance with at least one embodiment of the invention, FIG. 3 shows a schematic of a transmit driver for one group of six wires, Out 1 through Out 6. An offset or quiescent signal level is provided by voltage source Vt and transmit termination resistors 305, which induce a known current into each receive wire termination, creating the desired receive signal level representing a “0” signal. Enabling one of transistors 310, 311, 312 with one of inputs A1, B1 or C1 will add current 301 to the selected output Out 1, Out 2, or Out 3 respectively, creating a “+” signal level on that wire. Similarly, enabling one of transistors 313, 314, 315 with one of inputs A2, B2, or C2 will remove current 302 from the selected output Out 1, Out 2, or Out 3 respectively, creating a “−” signal level on that wire. The baseline reference and incremental signal levels are controlled by the values of Vt and current sources 301 and 302, along with the known values of the termination resistances.


Drivers for wires Out 4, Out 5, and Out 6 operate in the same manner, controlled by inputs D1, E1 and F1 for the “+” symbol level, and inputs D2, E2, and F2 for the “−” symbol level.


Within each subgroup of three wires, Out 1/Out 2/Out 3 and Out 4/Out 5/Out 6, there will be exactly one “+” signal, one “0” signal, and one “−” signal. Thus, current consumption in the drivers for each subgroup of wires is constant, introducing no Simultaneous Switching Output noise into the system.


Line Receiver


In accordance with at least one embodiment of the invention, FIG. 4A shows a schematic of a line receiver for a group of six wires using the 5b6w-RS code. Six differential comparators 401 through 406 are used per wire group, performing the six comparisons (In 1-In 2), (In 2-In 3), (In 1-In 3), (In 4-In 5), (In 5-In 6), and (In 4-In 6) to produce the six digital outputs Out A through Out F respectively. The receiver is therefore reference-less, and provides good common-mode noise rejection.


Each input In 1 through In 6 is shown as being terminated by resistors 410 through 415 respectively to termination voltage Vt. In one embodiment, Vt is at system ground.



FIG. 4B differs from FIG. 4A only in connection of the termination resistors. In the embodiment shown in FIG. 4B, resistors 410, 411, and 412 connect to a common node; the combined receive current of the single “+” signal and the single “−” signal present in the wire subgroup {In 1, In 2, In 3} induces a known voltage at the common node which serves as a virtual source of the “0” signal level. This common termination connection is repeated for resistors 413, 414, and 415.


Example eye diagrams for this signaling method are shown in FIG. 5A and FIG. 5B, with FIG. 5A illustrating simulated receive levels with source and destination 100 ohm terminations and 1 μm interconnection lines, and FIG. 5B illustrating the same system simulation with 3 μm interconnection lines. Voltages are shown as offsets from a baseline reference level.


5b6w-RS Encoding and Decoding


In accordance with at least one embodiment, encoding five bits of binary data into six signals of a vector signaling code word may be done using a simple one-to-one mapping between a data value and a code word, using, as examples, a lookup table or combinatorial logic. At high speeds, a combinatorial logic encoder will require fewer implementation resources, and thus result in lower power and lower operational latency. In another embodiment, one example combinatorial logic encoder is shown in the schematic of FIG. 6. The five input bits of In[4:0] produce encoded outputs I0w0[1:0], I0w1[1:0], I0w2[1:0], I1w0[1:0], w1[1:0], and I1w2[1:0] to control the output drivers for six wires. As the output wire signals are ternary, two binary encoder outputs are required to control each ternary output driver signal (as an example, signals A1, A2, B1, B2, C1, C2 of FIG. 3.)


In accordance with at least one embodiment, determining which five bit binary data value is represented by the received signals (as an example Out A through Out F of FIGS. 4A and 4B) may similarly be done using a lookup table or combinatorial logic. Again, at high speeds a combinatorial logic decoder will require fewer implementation resources, and thus result in lower power and lower operational latency. In accordance with at least one embodiment, one example combinatorial logic decoder is shown in the schematic of FIG. 7.


One example embodiment of a transmitter and receiver using 5b6w-RS was determined to require 169 mW (typical) and 253 mW (worst case) in the specified example system configuration. Approximately 0.37 square millimeters of circuit area are required in the specified example process for implementation.


Other variants of the 5b6w-RS coding are known, with examples given in references Cronie I, Cronie II, Cronie III, and Fox I.


Unterminated Interconnection Embodiment


This section describes another solution satisfying the specified systems requirements, using voltage-mode CMOS-like drivers and unterminated interconnection wiring.


In accordance with at least one embodiment, a transition-limiting code herein called Transition-Limiting Ternary 4-Wire 1-Transition Reduced Swing code or “TLT(4,1)-RS code,” is described. In one embodiment, it employs a small Finite Impulse Response (FIR) filter to minimize the transitions sent over four wires using a three level (ternary) interface on each wire.


Choice of Driver


In a low capacitance, moderate frequency and/or transition-limited interface applications, the power consumption of an unterminated CMOS driver can be lower than that of a CML driver such as was used in the previous example. The solution described in this section uses CMOS-like drivers.


An unterminated CMOS-like driver has the property that its power consumption occurs mostly on transitions. As a result, CMOS-like drivers always cause some SSO, no matter what coding technique is used. Since it is not possible to eliminate SSO noise using a CMOS-like driver, our goal will therefore be to substantially reduce the SSO noise as well as the power consumption of the I/O interface.


For the SSO and power calculations incorporated in this document, the following assumptions have been made:

    • 1. Because CMOS drivers are used, most of the supply power is consumed only at transition from a lower voltage value to a higher voltage value; the power consumed is proportional to the amount of this transition.
    • 2. A much smaller fraction of power is consumed in the transition from a higher voltage to a lower voltage. This is due to effects such as inverter chains in drivers.
    • 3. The contribution of a single wire to the total SSO when transitioning from a value x to a value y is the absolute value of x-y.
    • 4. The total SSO is the sum of the SSO contributions of all the wires.
    • 5. Both SSO and power consumption are given in the following as single numbers; they should be seen in relation with the numbers obtained for single-ended CMOS drivers driving an equivalent load at an equivalent transition rate.


      Ternary Levels


As discussed above, this disclosure advocates the use of 3 level signaling on every transmission wire. We call the coding scheme “ternary coding.” In this example, the levels correspond to voltage levels on the wires, which in turns depends on the Vdd of the system and the swing of the signals. To have a voltage-independent description, and to have a fair comparison to single-ended signaling, the examples herein assume that

    • For full-swing Single-Ended (SE) binary signaling, the voltage level multipliers are 0 and 1 (i.e., the voltage levels correspond to 0*Vdd and 1*Vdd)
    • For Reduced-Swing (RS) ternary coding, the voltage level multipliers may be 0, ¼, and ½.


The assumed values are provided for purposes of description and do not imply a limitation.


Line States


For simplicity in the description of coding algorithms later in the document, the two binary states are designated 0 & 1 and the three ternary states as 0, 1 & 2. These states are independent of the voltage level multipliers described above that are used to transmit them.


Noise Models


For the example embodiments addressing the described systems constraints, Simultaneous Switched Output (SSO), noise may be considered to be the dominant noise source as compared to thermal and other sources of noise.


Power and SSO Reduction Techniques


In accordance with at least one embodiment of the invention, two interface improvement techniques are described that may be adopted singly, or both together for maximum effect.


The first improvement technique is to add a transition-limiting coding scheme. This will be described in the following section.


The second improvement technique is a reduction in the swing of the interface. An important method to save both power and SSO noise on a broad, high-bandwidth interface is to reduce the swing of that interface. The low-swing version of the ternary interface described below yields further reductions of the peak SSO and the average power consumption.


Transition-Limiting Coding


Because it is the transitions that are important in an unterminated CMOS driver, it makes sense to encode the information in the transitions. If we use binary states on the wires then it is not possible to reduce SSO and at the same time maintain full pin-efficiency, i.e., the property of transmitting one bit per clock cycle on every wire. Therefore, methods of reducing the SSO for applications described herein can use ternary coding. As disclosed herein, such codes can reduce the peak SSO to approximately 12.5% of that of single-ended signaling.


One SSO-reducing code is herein called TLT(4,1)-RS. It is a small and useful code that uses just four wires. Thus, an embodiment satisfying the example system requirements incorporates multiple iterations of this four-wire subsystem to satisfy overall throughput requirements.


A transition coding scheme can be described that is based on mod-3 addition. This operation adds one of the three integers 0/1/2 with another such integer, and outputs the remainder of this addition when divided by the number 3. Alternatively, this addition can be described by the following table:

















0
1
2





















0
0
1
2



1
1
2
0



2
2
0
1











TLT(4,1)-RS Code


TLT(4,1) coding operates on an interface size of four wires with one allowed transition per cycle, i.e., a group of four wires is used on which the state transitions between the clock cycles are minimized by permitting only one wire value to change on each clock cycle. It is a ternary code, thus each wire can take on one of three values, herein called 0, 1, and 2. As one wire change is permitted between consecutive encoded TLT(4,1) outputs, the space of possible encodings is 9 (no transition, or one of four possible wires changing to either of two new values.) Thus, changes of a three bit input data word represented, as an example, as a three bit difference between the current input data word and the previous input data word, may be encoded directly in one TLT(4,1) code.


The encoder might incorporate the previously-described mod-3 addition method and a simple FIR filter. This FIR filter keeps one clock of history and encodes the changes of the data to be transmitted with respect to that history. An efficient encoder uses only a few operations on the state of each wire.


In operation, an encoder may proceed as follows: given three bits a,b,c, and a history vector (x[0],x[1],x[2],x[3]), wherein the entries of this vector are ternary values and may be from the set {0, 1, 2}, the encoder changes the value of x[a+2*b] to x[a+2*b]+(c+1) modulo 3, if (a,b,c) is not (0,0,0), and it doesn't change the value at all if (a,b,c)=(0,0,0). When using reduced swings, then the worst case SSO is obtained when a wire's value changes from the state 0 to state 2 (or vice-versa), thereby changing its voltage from 0*Vdd to Vdd/2. This is equivalent to half the worst case SSO of a full-swing unterminated CMOS driver on one wire. Since this affects only one wire in four, the worst case SSO of this reduced swing coding technique is one eighth that of the full swing unterminated CMOS driver. Reducing the swing further will of course reduce the maximum per-wire SSO.


The average line power consumption of the reduced swing TLT(4,1) code (or TLT(4,1)-RS for short) is also much better than that of a full-swing CMOS driver. Whereas the average per-wire power consumption of a full-swing CMOS driver is C*Vdd2*f/4, wherein C is the capacitance of the wires, and f is the frequency of the clock, the average power consumption of the TLT(4,1)-RS code is C* Vdd2*f/6 if there is a transition on that wire, and 0 otherwise. Since in a group of 4 wires there is exactly one that makes a transition if the incoming bit-sequence is not (0,0,0), and there is no wire making a transition otherwise, we see that the average per-wire power consumption of the TLT(4,1)-RS code is 7*C* Vdd2*f/(6*8*4)=7*C* Vdd2*f/192. This is about 14.6% the per-wire power consumption of the unterminated full swing CMOS driver.


In the reduced swing version of TLT(4,1) (TLT(4,1)-RS), the peak per-wire SSO is ⅛th, which is 12.5% that of the peak per-wire SSO of single-ended signaling.


Other embodiments that are equivalent to the described TLT(4,1)-RS encoder are known, such as those incorporating alternative mappings of data transitions to encoded values and/or other means of determining data transitions.


Reset of the Transition Code


Two additional related issues exist with the use of transition codes. The first issue is ensuring that the history values used at each end are coordinated when the bus is used sporadically. The second issue is ensuring that transitions on the line are minimized when the bus is not in use.


Ensuring that the history values at each end of the bus are the same is not a problem for buses that are running continuously. Multiple solutions can be provided for transition codes when the data bus is not in use, by resetting the history value of the FIR filter to a known value.


The second issue with the use of transition codes is to carefully control the Idle/NOP values on the bus. Since the point using a transition code is to minimize the transition on the bus, it is important to make sure that there are no transitions on the bus when the bus is not in use. Many buses sit Idle/NOP most of the time, so the power dissipated in these situations is central to the overall power consumption of the system.


TLT(4,1)-RS Block Diagram


A block diagram of a TLT(4,1)-RS interface is shown in FIG. 8B. For comparison, a conventional multiwire interface is shown as FIG. 8A. As shown, FIG. 8B includes a first Transition Limited Encoder receiving a data word from a first Existing Unclocked Logic Circuit. A Line and History Flip-Flops module accepts the output of the first Transition Limited Encoder, as well as a Reset signal and a Clk/DQS signal. A set of Four Ternary Drivers accepts the output of the History Flip-Flops module and sends four signals as a code word to Four Ternary Receivers. Eight Line Flip-Flops receive the outputs of the Four Ternary Receivers. Eight History Flip-Flops receive the output of the Line Flip-Flops, along with the Reset and Clk/DQS signal. A Transition Limited Decoder is connected to the outputs of the Eight Line Flip-Flops and the Eight History Flip-Flops, and provides an output to an Existing Unclocked Logic Circuit. In at least one embodiment, the Transition Limited Encoder is configured to produce a code word encoding a representation of the differences between the current input data word and a previous input data word, and the Transition Limited Decoder is configured to interpret the received code word as representing differences to be applied to a previous received data word to obtain the received data word.


It should be noted that the extra history flip-flops used by TLT(4,1)-RS to embody the FIR filter (or equivalent transition encoding logic) are outside of the main data path, and thus do not introduce any additional data-path latency. Thus, an TLT(4-1)-RS embodiment such as shown in FIG. 8B will fit into the same general system timing plan as a conventional interface such as shown in FIG. 8A. It will need additional timing margin, but no additional clock cycles.


In at least one embodiment, the decoder is placed immediately after the ternary receivers, as a variant to the receiver shown in FIG. 8B.


Startup Algorithm


Straightforward application of the techniques disclosed in this document may lead to one clock latency penalty for the initialization of the history value. This penalty may be mitigated by initialization of the history values of both transmitter and receiver to a known state, as examples at system reset, each time the bus goes idle, or whenever a new active transmitter and/or receiver is selected in a multidrop bus system.


TLT(4,1)-RS Transmit Driver and Ternary Receiver


In accordance with at least one embodiment, an example transmit driver uses a NMOS transistor to drive the low level. For the middle level as well as the high level in reduced-swing TLT(4,1)-RS, NMOS source-follower transistors are used pulling to the reference voltages. One example of such a driver is shown in the schematic of FIG. 9A.


At the receiver, detection of a high, middle, or low signal level of each wire is required. In accordance with at least one embodiment, two comparators per wire may be used to compare the signal level of the wire against known reference voltages. A simpler and more compact embodiment is shown in the schematic of FIG. 9B, using four transistors and one reference voltage to obtain both required signal level indicators. This circuit may be applied where the semiconductor process provides sufficiently low transistor threshold voltages.


Typical values for the reduced-swing levels are at 0, Vdd/4 and Vdd/2. These example values may be adjusted to optimize system behavior based on the particular system voltages and semiconductor processes in use.


Producing the Vdd/4 and Vdd/2 mid-level and high-level voltages on-chip may be challenging. The produced voltages must be accurate, have little ripple, have low wasted power, and must exhibit these properties over their whole load range. Linear regulators, while accurate, waste power. Switching regulators are hard to implement on-chip without good passive components. One embodiment provides these voltages externally. Another embodiment obtains the Vdd/2 voltage externally and then creates the Vdd/4 voltage on-chip with a linear regulator, with the effect of balancing the complexity of delivering the voltages with the added power consumption incurred through the use of a linear regulator.


One example embodiment of a transmitter and receiver using TLT(4,1)-RS was determined to require 167 mW (typical case) and 305 mW (fast corner case) in the specified example system configuration.


The examples presented herein illustrate the use of vector signaling codes for point-to-point or multidrop bussed chip-to-chip interconnection. 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 other interconnection topologies and 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.

Claims
  • 1. An apparatus comprising: a receiver configured to receive signals via a multi-wire bus, the receive signals representing symbols of a ternary codeword of a vector signaling code, the receiver configured to detect, for each receive signal, if the signal corresponds to a low, a medium, or a high symbol value; anda decoder configured to receive the detected symbol values of the ternary codeword, to responsively form a set of difference bits based on differences between symbol values in the received ternary codeword and symbol values in a prior received ternary codeword, and to apply the set of difference bits to a previously received data word to obtain a received data word.
  • 2. The apparatus of claim 1, wherein the receiver comprises a corresponding pair of two-input comparators to detect each respective symbol of the codeword.
  • 3. The apparatus of claim 1, wherein the receiver comprises, for each respective received signal: a transistor branch connected to a high voltage, a medium voltage, and a low voltage, each transistor receiving the respective received signal as an input, the transistor branch configured to output a pair of signal level indicators identifying if the respective received signal corresponds to the low, medium, or high symbol value.
  • 4. The apparatus of claim 1, wherein the vector signaling code is a TLT(4,1) code.
  • 5. The apparatus of claim 4, wherein the vector signaling code is a reduced-swing (RS) code.
  • 6. The apparatus of claim 1, wherein four signals are received via four wires of the multi-wire bus.
  • 7. The apparatus of claim 1, wherein the applying the set of difference bits to the previously received data word comprises toggling bits of the previously received data word according to the set of difference bits to obtain the received data word.
  • 8. The apparatus of claim 1, further comprising history flip-flops configured to store the previously received data word for at least one transmission interval.
  • 9. The apparatus of claim 1, further comprising: an encoder configured to convert a current input data word into a transmit code word of the vector signaling code by modifying a portion of elements of a previously transmitted code word based on a second set of difference bits representing a change of value from a previous input data word and the current input data word; and,a transmit driver configured to emit signals on wires of the multi-wire bus that correspond to elements of the transmit code word.
  • 10. The apparatus of claim 9, wherein the encoder is configured to modify the portion of elements of the previously transmitted code word based on modulus addition.
  • 11. A method comprising: receiving signals via a multi-wire bus, the signals representing symbols of a ternary codeword of a vector signaling code, the receiver configured to detect, for each received signal, if the signal corresponds to a low, a medium, or a high symbol value;forming a set of difference bits based on differences between symbol values in the received ternary codeword and symbol values in a prior received ternary codeword; andapplying the set of difference bits to a previously received data word to obtain a received data word.
  • 12. The method of claim 11, wherein a symbol value of each received signal is detected using a corresponding pair of two-input comparators.
  • 13. The method of claim 11, wherein a symbol value of each received signal is detected using a corresponding transistor branch connected to a high voltage, a medium voltage, and a low voltage, each transistor receiving the respective received signal as an input, the transistor branch configured to output a pair of signal level indicators identifying if the respective received signal corresponds to the low, medium, or high symbol value.
  • 14. The method of claim 11, wherein the vector signaling code is a TLT(4,1) code.
  • 15. The method of claim 14, wherein the vector signaling code is a reduced-swing (RS) code.
  • 16. The method of claim 11, wherein the four signals are received via four wires of the multi-wire bus.
  • 17. The method of claim 11, wherein applying the set of difference bits comprises toggling bits of the previously received data word according to the set of difference bits to obtain the received data word.
  • 18. The method of claim 11, further comprising storing the previously received data word for at least one transmission interval using history flip-flops.
  • 19. The method of claim 11, further comprising: encoding a current input data word into a transmit code word of the vector signaling code by modifying a portion of elements of a previously transmitted code word based on a second set of difference bits representing a change of value from a previous input data word and the current input data word; and,emitting signals on wires of the multi-wire bus that correspond to elements of the transmit code word.
  • 20. The method of claim 19, wherein the portion of element of the previously transmitted code word are modified based on modulus addition.
CROSS REFERENCES

This application is a Continuation of U.S. application Ser. No. 14/823,870, filed Aug. 11, 2015, entitled “Methods and Systems for High Bandwidth Chip-to-Chip Communications Interface”, which is a continuation of U.S. application Ser. No. 14/178,051, filed Feb. 11, 2014, entitled “Methods and Systems for High Bandwidth Chip-to-Chip Communications Interface,” which is a non-provisional application claims priority under 35 USC §119 to U.S. provisional application No. 61/763,403 filed on Feb. 11, 2013, the contents of which are hereby incorporated herein 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 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 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 Resilience 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”); and U.S. Provisional Patent Application No. 61/753,870, filed Jan. 17, 2013, as well as U.S. Non Provisional 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 “Methods and Systems for Chip-to-chip Communication with Reduced Simultaneous Switching Noise” (hereinafter called “Fox I”).

US Referenced Citations (336)
Number Name Date Kind
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 Burnsweig Jun 1980 A
4276543 Miller Jun 1981 A
4486739 Franaszek Dec 1984 A
4499550 Raylll 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
5331320 Cideciyan Jul 1994 A
5412689 Chan May 1995 A
5449895 Hecht Sep 1995 A
5459465 Kagey Oct 1995 A
5461379 Weinman 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
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
6766342 Kechriotis Jul 2004 B2
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
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
7535957 Ozawa May 2009 B2
7539532 Tran May 2009 B2
7570704 Nagarajan Aug 2009 B2
7599390 Pamarti Oct 2009 B2
7616075 Kushiyama Nov 2009 B2
7620116 Bessios Nov 2009 B2
7633850 Ahn 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
7787572 Scharf Aug 2010 B2
7804361 Lim Sep 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
8030999 Chatterjee Oct 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
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
8687968 Nosaka Apr 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
8831440 Yu Sep 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
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
9509437 Shokrollahi Nov 2016 B2
9544015 Ulrich Jan 2017 B2
20020044316 Myers Apr 2002 A1
20020057592 Robb May 2002 A1
20020154633 Shin Oct 2002 A1
20020174373 Chang Nov 2002 A1
20030016770 Trans Jan 2003 A1
20030086366 Branlund May 2003 A1
20030146783 Bandy Aug 2003 A1
20040027185 Fiedler Feb 2004 A1
20040146117 Subramaniam Jul 2004 A1
20040161019 Raghavan Aug 2004 A1
20040169529 Afghahi Sep 2004 A1
20050134380 Nairn Jun 2005 A1
20050174841 Ho Aug 2005 A1
20050213686 Love Sep 2005 A1
20060097786 Su May 2006 A1
20060103463 Lee May 2006 A1
20060126751 Bessios Jun 2006 A1
20070194848 Bardsley Aug 2007 A1
20070204205 Niu Aug 2007 A1
20070263711 Kramer Nov 2007 A1
20070265533 Tran Nov 2007 A1
20080007367 Kim Jan 2008 A1
20080013622 Bao Jan 2008 A1
20080104374 Mohamed May 2008 A1
20080159448 Anim-Appiah Jul 2008 A1
20080192621 Suehiro Aug 2008 A1
20080317188 Staszewski Dec 2008 A1
20090059782 Cole Mar 2009 A1
20090195281 Tamura Aug 2009 A1
20090251222 Khorram Oct 2009 A1
20090316730 Feng Dec 2009 A1
20090323864 Tired Dec 2009 A1
20100023838 Shen Jan 2010 A1
20100046644 Mazet Feb 2010 A1
20100180143 Ware Jul 2010 A1
20100215112 Tsai Aug 2010 A1
20100235673 Abbasfar Sep 2010 A1
20100296556 Rave Nov 2010 A1
20100309964 Oh Dec 2010 A1
20110072330 Kolze Mar 2011 A1
20110150495 Nosaka Jun 2011 A1
20110291758 Hsieh Dec 2011 A1
20110299555 Cronie Dec 2011 A1
20120008662 Gardiner Jan 2012 A1
20120152901 Nagorny Jun 2012 A1
20120161945 Single Jun 2012 A1
20130010892 Cronie Jan 2013 A1
20130049863 Chiu Feb 2013 A1
20130147553 Iwamoto Jun 2013 A1
20130188656 Ferraiolo Jul 2013 A1
20130195155 Pan Aug 2013 A1
20130229294 Matsuno Sep 2013 A1
20130315501 Atanassov Nov 2013 A1
20140177645 Cronie Jun 2014 A1
20140198841 George Jul 2014 A1
20140226455 Schumacher Aug 2014 A1
20150078479 Whitby-Strevens Mar 2015 A1
20150146771 Walter May 2015 A1
20150222458 Hormati Aug 2015 A1
20150249559 Shokrollahi Sep 2015 A1
20150333940 Shokrollahi Nov 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
Foreign Referenced Citations (6)
Number Date Country
101478286 Jul 2009 CN
2039221 Feb 2013 EP
2003163612 Jun 2003 JP
2009084121 Jul 2009 WO
2010031824 Mar 2010 WO
2011119359 Sep 2011 WO
Non-Patent Literature Citations (47)
Entry
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.
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.
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.
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.
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.
Notification of Transmittal 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.
Poulton, et al., “Multiwire Differential Signaling”, UNC-CH Department of Computer Science Version 1.1, Aug. 6, 2003.
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.
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.
“Introduction to: Analog Computers and the DSPACE System,” Course Material ECE 5230 Spring 2008, Utah State University, www.coursehero.com, 12 pages.
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.
Design Brief 208 Using the Anadigm Multiplier CAM, Copyright 2002 Anadigm, 6 pages.
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.
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/US2015/018363, dated Jun. 18, 2015, 13 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.
Oh, et al., Pseudo-Differential Vector Signaling for Noise Reduction in Single-Ended Signaling, DesignCon 2009.
Schneider, J., et al., “ELEC301 Project: Building an Analog Computer,” Dec. 19, 1999, 8 pages, http://www.clear.rice.edu/elec301/Projects99/anlgcomp/.
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.
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.
Zouhair Ben-Neticha et al, “The ‘streTched’—Golay and other codes for high-SNR finite-delay quantization of the Gaussian source at ½ 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.
Zouhair Ben-Neticha et al, “The ‘streTched’-Golay and other codes for high-SNR finite-delay quantization of the Gaussian source at ½ 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.
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.
Related Publications (1)
Number Date Country
20160285456 A1 Sep 2016 US
Provisional Applications (1)
Number Date Country
61763403 Feb 2013 US
Continuations (2)
Number Date Country
Parent 14823870 Aug 2015 US
Child 15176084 US
Parent 14178051 Feb 2014 US
Child 14823870 US