Method and Apparatus for Encoding of Low Voltage Swing Signals

Information

  • Patent Application
  • 20080043855
  • Publication Number
    20080043855
  • Date Filed
    July 12, 2004
    21 years ago
  • Date Published
    February 21, 2008
    17 years ago
Abstract
An encoded-low swing scheme for transmission of a signal across an interconnect bus whereby the current values to be transmitted on the bus are compared with the previous state of the bus. When the number of bits flipping is greater than N, where N is the width of the bus, the decision to transmit the inverted signal values is made. In addition, an “invert” signal is also sent to the receiver to indicate whether the bus values are inverted or not. These encoded values are then converted into their low swing equivalents and transmitted. In this way, it can be ensured that the energy consumed over the interconnect is minimum. This strategy not only reduces the probability of transitions over the interconnect but also transmits only low swing values to achieve tremendous energy reductions relative to conventional techniques.
Description

An embodiment of the present invention for low energy purposes will now be described by way of example only and with reference to the accompanying drawings, in which:



FIG. 1 is a schematic circuit diagram illustrating an encoded low swing transmitter for 8 bits according to an exemplary embodiment of the present invention; and



FIG. 2 is a schematic circuit diagram illustrating an encoded low swing receiver according to an exemplary embodiment of the present invention.





First, a brief overview of an exemplary embodiment of the method of the present invention will be presented, where the encoding, as already mentioned, is targeted for low energy. In this exemplary embodiment of an encoded-low swing scheme, the current values to be transmitted on the bus are compared with the previous state of the bus. When the number of bits flipping is greater than N/2 where N is the width of the bus, the decision to send the inverted signal values is made. In addition, an “invert” signal is also sent to the receiver to indicate whether the bus values are inverted or not. These encoded values are then converted into their low swing equivalents and transmitted. In this way, it can be ensured that the energy consumed over the interconnect is minimum. This strategy not only reduces the probability of transitions over the interconnect but also transmits only low swing values to achieve tremendous energy reductions relative to conventional techniques. This energy saving can only be optimized, however, if an efficient driver and received circuit is used, which does not consume more energy than is saved over the interconnect. For that, an efficient circuit implementation will be described later.


First, however, the energy savings that are possible using the proposed technique will be estimated. The average number of transitions can be estimated using probabilistic analysis for a N bit wide bus. The dynamic switching energy of the bus is given by Eqn. 1.





Edyn=CaverageVref2T  (1)


In Eqn. 1, T is the total number of transitions over the wire. Without encoding, the transitions, TNE, for an average case for a N bit wide bus is










T
NE

=




M
=
1

N




P


(
M
)


·
M






(
2
)







where TNE denotes the number of transitions without encoding. P(M) denotes the probability that M bits flip in a N bit wide bus and is given by










P


(
M
)


=



1

2
N




C


(



N




M



)



=


1

2
N





N
!




(

N
-
M

)

!



M
!









(
3
)







By using the bus-invert coding method, we compute the transitions for an average case for a N bit wide bus. Those skilled in the art could extend this analysis for other encoding techniques which could target other performance requirements (reduced noise codes, increased robustness codes, other low energy codes, high speed codes etc) by properly calculating P(M) and using the appropriate thresholds.


In a preferred embodiment, the cases when N is odd and N is even are differentiated between. This is shown next.


1. Case a: When N is odd. Using bus invert coding, the number of transitions is given by Eqn. 4. TE indicates the number of transitions over the bus in the presence of encoding. Here, when the number of bit flips exceeds









N
+
1

2

-
1

,




the decision to invert the data bits is made. Counting the extra transition due to the invert signal, the number of transitions over the bus, when







N
+
1

2




data bits flip, is










N
-


N
+
1

2

+
1

=




N
+
1

2

.





T
E


=


1

2
N






[


1


C


(

N
1

)



+

2


C


(

N
2

)



+

+


(


N
+
1

2

)



C
(




N





N
+
1




2

)


+


(



N
+
1

2

=
1

)



C
(





N





N
+
1




2

+
1

)


+


(



N
+
1

2

-
2

)



C
(





N





N
+
1




2

+
2

)


+

+

1

C






N
N



]








(
4
)







2) Case b: When N is even: Here, when the number of bit flips is exactly N/2, there is no advantage in encoding. The decision to invert the values on the bus if it does not cause a transition over the “invert” signal itself can be made. This means that when N is even, an extra state flip flop for storing the state of the “invert” signal is needed in this exemplary embodiment, which is not the case when N is odd.










T
E

=


1

2
N


[


1


C


(



N




1



)



+

2


C


(



N




2



)



+

+


(


N
2

+
1

)



C
(




N




N



2

)


+


N
2



C
(




N




N




2
+
1


)


+


(


N
2

-
1

)



C
(





N




N



2

+
2

)


+

+

1


C


(



N




N



)




]





(
5
)







An efficient exemplary implementation of the driver for an 8 bit wide bus using an analog majority voter circuit is illustrated as shown in FIG. 1. The receiver circuit is shown in FIG. 2. The current state of the bus (D0T, D1T, . . . , D7T, INV) is compared with the new values to be transmitted. If majority of the bits have flipped, the analog majority voter sets the INVB signal (shown in FIG. 1) too high. The advantage of using the analog majority voter circuit is that it is easily scalable to larger bus widths with very little extra area overhead. The encoded signal values are then converted into a low swing value using a conventional NMOS-only push-pull driver. The driver and receiver circuits consume very little power. In the driver, in the analog majority voter circuit, by using the clock as the gate signal for the PMOS transistors in the latch and for the NMOS transistor (at the bottom) acting as a current source, it can be ensured that there is never a path from the power supply to ground except during the clock transitions. In the receiver, since cascade circuitry and differential circuits are used, the short circuit current is reduced. The receiver consists of a low-swing restorer and a decoder as shown in FIG. 1. The decoder consists simply of XOR gates, which uses the “invert” signal to either invert or not-invert the received values depending on whether the “invert” signal is 1 or 0.


Thus the above-described method and apparatus provides a novel encoded-low swing technique and an efficient circuit implementation of the same. It has been found that this achieves the best energy-delay product over the existing schemes when the capacitive load over the interconnect begins to increase above 200fF. Analyses of simulation results carried out show that the average energy-delay product of the proposed technique is superior by 45.7% with respect to techniques using only low swing, and by 75.8% with respect to techniques using only encoding averaged over data streams. This gain could vary depending on the data streams used. In the presence of crosstalk noise, it can be shown that the proposed technique has the best energy-delay product even for small capacitive loads (CL≦200fF). The signal to noise ratio of the proposed technique is superior to existing low swing techniques by 8.8%. The method and apparatus of the present invention is applicable to general IC's (SoC—System on Chip) ASIC's and FPGA's to reduce power. It has been found to be especially useful for dealing with buses which have a large capacitance associated with them and dissipate power. It can also be applied to reduce Input/Output power dissipated since dimensions of the devices in the I/O pads of chips are large since they have to drive large external capacitances due to wires, I/O pins and connected circuits.


FPGA interconnects, either present in platform FPGAs or embedded FPGAs could potentially benefit a lot from the proposed technique since the capacitive load over the programmable switch based interconnect is high. Even other programmable interconnects could use this technique to achieve different performance targets (low energy, increased robustness etc).


It should be noted that the above-mentioned embodiment illustrates rather than limits the invention, and that those skilled in the art will be capable of designing many alternative embodiments without departing from the scope of the invention as defined by the appended claims. In the claims, any reference signs placed in parentheses shall not be construed as limiting the claims. The word “comprising” and “comprises”, and the like, does not exclude the presence of elements or steps other than those listed in any claim or the specification as a whole. The singular reference of an element does not exclude the plural reference of such elements and vice-versa. The invention may be implemented by means of hardware comprising several distinct elements, and by means of a suitably programmed computer. In a device claim enumerating several means, several of these means may be embodied by one and the same item of hardware. The mere fact that certain measures are recited in mutually different dependent claims does not indicate that a combination of these measures cannot be used to advantage.

Claims
  • 1. Apparatus for transmitting an n-bit digital signal across an interconnect, where n is the width of said interconnect, the apparatus comprising means for converting said digital signal into its low swing equivalent, the apparatus being characterized by means for encoding said signal, prior to transmission thereof.
  • 2. Apparatus according to claim 1, wherein the encoding is targeted for low energy characterized by reducing the number of bits which change in a current signal to be transmitted relative to the bits of the signal transmitted previously.
  • 3. Apparatus according to claim 1, wherein the encoding is targeted for reducing crosstalk induced noise.
  • 4. Apparatus according to claim 1, wherein the encoding is targeted for reducing crosstalk induced delay.
  • 5. Apparatus according to claim 1, wherein the encoding is targeted for increasing robustness of the data transmitted.
  • 6. Apparatus according to claim 1, being used in respect of programmable logic devices, specifically FPGAs (embedded or stand-alone), to reduce energy increase robustness by improving signal integrity, reducing crosstalk, and/or reduce delay.
  • 7. Apparatus according to claim 1, wherein the means for encoding said signal comprises means for comparing the values of the current signal to be transmitted with the values of a signal transmitted previously, determining whether or not the number of bits of said current signal which are of opposite value to the corresponding bits of the previous signal exceeds some predetermined threshold value, and only encoding said current signal if said predetermined threshold value is exceeded.
  • 8. Apparatus according to claim 7, wherein if the width of the interconnect being coded is even, the predetermined threshold value is nix, where x is an even integer.
  • 9. Apparatus according to claim 8, wherein x=2.
  • 10. Apparatus according to claim 7, wherein if the width of the interconnect being encoded is odd, the predetermined threshold value is [(n+1)/2]−1.
  • 11. Apparatus according to claim 1, further including a receiver.
  • 12. Apparatus according to claim 11, wherein the type of encoding employed by said encoding means is bus invert coding, whereby if the number of bits that “flip” exceeds the predetermined threshold value, all of the bits of the current signal to be transmitted across the interconnect are inverted prior to transmission thereof, and an “invert” signal is also transmitted, to indicate to said receiver that said signal has been inverted.
  • 13. A method for transmitting an n-bit digital signal across an interconnect, where n is the width of said interconnect, the method comprising the steps of converting said digital signal into its low swing equivalent, and being characterized by the step of encoding said signal, prior to transmission thereof.
  • 14. A method according to claim 13, wherein said step of encoding said signal comprises the steps of comparing the values of the current signal to be transmitted with the values of a signal transmitted previously, determining whether or not the number of bits of said current signal which are of opposite value to the corresponding bits of the previous signal exceeds some predetermined threshold value, and only encoding said current signal if said predetermined threshold value is exceeded.
  • 15. A method according to claim 14, wherein if the width of the interconnect being encoded is even, the predetermined threshold value is nix, where x is an even integer.
  • 16. A method according to claim 15, wherein x=2.
  • 17. A method according to claim 14, wherein if the width of the interconnect being encoded is odd, the predetermined threshold value is (n+1)/2−1.
  • 18. A method according to claim 13, including the step of providing a receiver for receiving the transmitted signal.
  • 19. A method according to claim 18, wherein the type of encoding employed is bus invert coding, whereby if the number of bits that “flip” exceeds the predetermined threshold value, all of the bits of the current signal to be transmitted across the interconnect are inverted prior to transmission thereof, and an “invert” signal is also transmitted, to indicate to the receiver that signal has been inverted.
Priority Claims (1)
Number Date Country Kind
03102246.0 Jul 2003 EP regional
PCT Information
Filing Document Filing Date Country Kind 371c Date
PCT/IB04/51194 7/12/2004 WO 00 1/23/2006