Content deleted Content added
m Journal cites, using AWB (11023) |
Biscuittin (talk | contribs) update link |
||
Line 16:
# '''Sequential addressing or T0 codes''':<ref>L. Benini, G. De Micheli, E. Macii, D. Sciuto, C. Silvano, "Asymptotic Zero-Transition Activity Encoding for Address Buses in Low-Power Microprocessor-Based Systems," Proc. Seventh Great Lakes Symposium on VLSI, pp. 77-82, Mar.1997.</ref> In case of address bus, due to spatial locality that exists in programs, most of the transitions involve changing the address to the next consecutive value. A possible encoding scheme is to use an additional line, INC, in the bus indicating whether the current transition is the next increment address or not. If it is not a consecutive address, then the receiver can use the value on the bus. But if it is a consecutive address, the transmitter need not change the value in the bus, but just assert the INC line to 1. In such case, for a continuous addressing scheme, there is no transition at all on the bus, leading to a bus activity factor of 0.
# '''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
#'''Value Cache''':<ref>J.Yang et. al,"FV encoding for low power data I/O", ISLPED 2001, Aug. 2001, pp. 84-87</ref> This is another form of Bus encoding, primarily used for external (off-chip) Busses. A dictionary (value cache) is maintained at both the sender and receiver end about some of the commonly shared data patterns. Instead of passing the data patterns each time, the sender just toggles one bit indicating which entry from value cache to be used at the receiver end. Only for values which are not present in the value cache, the complete data is sent over the bus. There has been various modified implementations of this technique with an intent to maximize the hits for the value cache, but the underlying idea is the same.<ref>Basu et.al., "Power protocol: reducing power dissipation on off-chip data buses", MICRO 2002</ref><ref>C-H Lin et.al., Hierarchical Value Cache Encoding for Off-Chip Data Bus, ISLPED 2006</ref>
#'''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>
|