Information Technology Reference
In-Depth Information
appear on address buses. In the first, Grey-code encoding is used to minimize transitions for
sequential values [ 176 ]. In the second, a simple but effective scheme, called T0 encoding, is
used. The basic idea in T0 is to freeze the bus if the address to be sent is consecutive to the
previous address. In such case, a control signal is asserted and the receiver (processor or memory)
generates the address locally by incrementing the last address it received.
Working Zone Encoding (WZE) by Musoll, Lang and Cortadella [ 173 ] is a retake on
the Farrens and Park work but now targeted for low power. The key observation is that the
address bus does not behave completely sequentially because accesses to different “zones” are
usually interleaved. To solve this problem, they introduce a scheme which keeps track of a
few working zones favored by the application. Whenever possible, addresses are expressed as a
working zone offset along with an index to the working zone. The offset being small enough
can be encoded with one-hot encoding which flips only two bits whenever there is a change
in the value transmitted (one-hot encoding requires as many wires as there are values to be
encoded, so it is only feasible for small values).
4.12.2 Address and Data Buses
The category of techniques that apply both to data and address buses includes one-hot encoding,
bus inversion encoding by Stan and Burleson [ 212 ] and its variants (e.g., the combined bus-
invert/T0 [ 28 ]), INC-XOR encoding [ 188 ], and others. The basic bus-inversion coding scheme
transfers a data value either in its original form or in its compliment form depending on whose
Hamming distance to the previous bus transmission is smaller. According to this scheme,
the Hamming distance between the new bus value to be transmitted and the current value is
computed. If this is greater than half the number of total bits, then the data value is transmitted
in inverted form. An additional “invert” signal is also sent to indicate how the data is to be
interpreted at the other end.
Encoding data values is not as straightforward as addresses since data streams are much
less regular than address streams. Early work in this area relied on the statistical properties of
data streams. The key idea is to use profiling to compute codes such that pairs of values with
higher probability of occurrence lead to fewer transitions. Algorithms to analyze profiled data
and produce appropriate encoding and decoding functions were investigated by Ramprasad et
al. [ 188 ] and subsequently by Benini et al. [ 26 ]. An adaptive technique which does not require
a priori (profiled) knowledge of the statistical properties of the data stream was also proposed in
[ 26 ]. This technique adapts encoding/decoding to the statistical properties of the data stream
on the fly but costs significantly in hardware. We will not expand on these techniques, but the
interested reader can find many more details in [ 26 , 188 ].
Search WWH ::




Custom Search