The Bus Switch Coding, for reducyng dynamic energy dissipation in off-chip buses.
The bus switch coding is originally derived for reducing toggle activity in buses. The principle was to dynamically red-order
the bus lines in order to minimize the total toggles. For this purposes, the wide system buses was divided into identical clusters. Each cluster receives the same re-order pattern, so the final result is a bus value at most similar to the previous string, so reducing the toggle activity. The dynamic energy disspation is dominant onto external/system/off-chip buses so since the hardware is not negligible and therfore introduce a penalty, the field of application covers the off-chip buses, where the approach is convenient respect to other coding styles: bus-invert, adaptive partial bus-invert etc.
Let X(n) be the input data stream and p(n) the current re-ordering pattern and "n" the discrete timestep. The "S" operator re-order the input string, genereting the output data Y(n) according to this equation:
Each re-ordering pattern admits an unique inverse, to recover the original data X(n) :
The first disclosure of this invention was a US patent, and then in the 2004 has been published with the collaboration with the Prof. M Olivieri University La Sapienza Rome, in IEEE Transaction on Very Large Scale (VLSI) Integration System.
[Patent] G. Visalli and F. Pappalardo "Process and device for reducing bus switching activity and computer program product therefore" US 6,933,863
[Publication] M. Olivieri, F. Pappalardo and G. Visalli "Bus Switch Coding for reducing power dissipation in off-chip buses" IEEE Transaction on Very Large Scale Integration, Vol. 12, No. 12, December 2004