Content deleted Content added
m Journal cites, using AWB (11023) |
|||
Line 1:
'''Bus Encoding''' refers to converting/encoding a piece of data to another form before launching on the [[bus (computing)|bus]]. While bus encoding can be used to serve various purposes like reducing the number of pins, compressing the data to be transmitted, reducing cross-talk between bit lines, etc., it is one of the popular techniques used in system design to reduce dynamic power consumed by the [[system bus]].<ref>[http://sportlab.usc.edu/~massoud/Papers/low-power-RTL-review-journal.pdf M. Pedram and A Abdollahi,
In the context of this article, a system can refer to anything where data is transferred from one element to another over bus (viz. [[System on a chip|System on a Chip]] (SoC), a computer system, an [[embedded system]] on board, etc.).
Line 13:
== Examples of bus encoding to achieve low power==
Following are some of the implementations to use Bus Encoding for reducing dynamic power consumption in different scenarios:
# '''[[Gray Code|Gray Encoding]]''':<ref name=massoud>[http://sportlab.usc.edu/~massoud/Papers/isqed-tut.pdf Wei-Chung Cheng and Massoud Pedram "Memory Bus Encoding for Low Power: A Tutorial"]</ref> The address lines of a bus in most of the computing systems increase in consecutive numerical values due to [[Locality of reference|spatial locality]]. If we use regular binary coding for the bus, we are not assured of minimal hamming distance between 2 consecutive addresses. Using gray codes for encoding the address lines will lead to a hamming distance of 1 between any 2 consecutive address bus values (as long as spatial locality holds). There are variations to this scheme named Shifted gray encoding to reduce the delay overhead.<ref>{{cite journal | url = http://www.sciencedirect.com/science/article/pii/S1383762110000159 | doi=10.1016/j.sysarc.2010.03.003 | volume=56 | title=Shifted gray encoding to reduce instruction memory address bus switching for low-power embedded systems | journal=Journal of Systems Architecture | pages=180–190}}</ref>
# '''Sequential addressing or T0 codes''':<ref>L. Benini, G. De Micheli, E. Macii, D. Sciuto, C. Silvano,
# '''Number representation''': Let us consider an example of a system which gets one of its data from a sensor. Most of the times, the sensor may be measuring some noise and for this example, let us consider that the values being measured are (0) and (-1) alternatively. For a 32-bit data bus, value 0 translates to 0x00000000 (0000 0000 0000 0000 0000 0000 0000 0000) while (-1) translates to 0xFFFFFFFF (1111 1111 1111 1111 1111 1111 1111 1111) in a 2’s complement representation. We see that the hamming distance in this case is 32 (since all 32-bits are changing their state). Instead, if we encode the bus to use signed integer representation (MSB is sign bit), we can represent 0 as 0x00000000 (0000 0000 0000 0000 0000 0000 0000 0000) and -1 as 0x80000001 (1000 0000 0000 0000 0000 0000 0000 0001) . In this case, we see that the hamming distance between the numbers is just 2. Hence by using a 2’s complement to signed arithmetic encoding, we are able to reduce the activity from a factor of 32 to 2.
# '''[[Inversion Encoding]]''':<ref>M. R. Stan and W. P. Burleson,
#'''Value Cache''':<ref>J.Yang et. al,
#'''Other techniques''' like Sector Based Encoding,<ref>http://sportlab.usc.edu/~massoud/Papers/sector-based-encoding-journal.pdf</ref> variations of Inversion coding, have also been proposed. There has been work on using bus encodings which lower the leakage power consumption as well along with reducing the crosstalk with minimal impact on path delays.<ref>H. Deogun, R. R. Rao, D. Sylvester, and D. Blaauw. Leakage-and crosstalk-aware bus encoding for total power reduction. In Proceedings of the 41st Design Automation Conference, pages 779–782, June 2004.</ref><ref>Z. Khan, T. Arslan, and A. Erdogan. A novel bus encoding scheme from energy and crosstalk efficiency perspective for AMBA based generic SoC systems. In Proceedings of the 18th International Conference on VLSI Design , pages 751–756. IEEE Computer Society, January 2005.</ref>
|