Hamming Transcoders for Power Reduction on Internal Buses Victor Wen Jan. 13, 2000 University of California, Berkeley
Outline Motivations Related Work Initial Approaches Transition Code Technique Preliminary Results Future Work/Conclusion
Power reduction through coding Can we encode information in a way that takes less power? Do this on chip?! Encoded Version Decode Encoder OutputInput
Reasoning Increasing importance of wires relative to transistors Spend transistors to drive wires more efficiently? Try to reduce transitions over wires Orthogonal to other power-saving techniques I.e. voltage reduction, low-swing drive clock gating Parallelism (like vectors!) Portable devices more important
Related Work Bus Invert Coding, by M. R. Stan and W. P. Burleson Reduce peak power by 50%, avg by up to 25% Work-zone Encoding, by E. Musoll et al. Compare favorably with other techniques Test Vector Ordering, by P. Girard et al. Result: 8.2% to 54.1% less activities Minimizing Power consumption, by A. Chandrakasan and R. Broderson
Huffman-based Compression Variable bit length – problem! Possible soln: macro clock Less bits != less transitions … Decode Encoder OutputInput
Hamming Weight Find a map function to minimize transition Search space is large – 256! (For 8-bit bus) Leads to transition code idea … Map Function … Decode Encoder OutputInput
Hamming Transcoder Most frequent arc assigned low-weight codes Use output codes to XOR transmission line Every 1 in coded version causes transistion Most frequent arcs cause least number of transitions Code: 0x00 Freq: 2620 Code: 0xFF Freq: 10 State Transition Diagram 256x256 table for 8 bit bus
Hamming Transcoder (con’t) Only transitions matter, not absolute value Recognize more frequent transitions & assign low-weight code to them Guarantees more frequent transitions have less bits changes on the wire
Transition Code – Setup Transition Table Prev input Cur input Transcode 8 Coded? To Bus Cur bus value 9 XOR Coder Decoder 988
Simulation Setup Verilog XL Sim Verilog simulation on picoJava core RTL Monitor Custom monitoring component outputs the bits on selected buses Post- process Post process the output files into format suitable for transcoder simulator Transcode Sim Reads the file, setup transition table and perform simulation Sun offering processor descriptions in Verilog picoJava (for now) UltraSparc (soon)
Simulation Results (1) Savings Rank 9 saves 79.52% Rank 256 saves 79.68% 9th bit overhead Rank 1: 23% Rank 9: 0.29%
Simulation Results (2) Number of transitions drops quickly as ranks increases 256x256 table might not be necessary Other trace files show similar trends Note: icu_data connects between instruction cache unit and integer unit. A fairly long bus according to picoJava’s floorplan
Conclusion & Future Work Conclusion Transition coding attacks the root of the problem Minimal change to existing circuits Orthogonal to other low power techniques Future work Simulate SPEC on Sparc & UltraSparc RTL Build adaptability into coder/decoder Use of more history Implement actual hardware