ABSTRACT
Instruction pressure is the level of time, space, and power required to manage the instruction stream to support high-speed execution of modern multicore general processor and embedded controller based computing. L1 instruction cache and processor pin bandwidth are examples of direct resource costs imposed by the instruction access demand of a processor architecture. This paper explores the potential for reducing instruction pressure through a combination of variable length binary instruction set and Huffman encoding to reduce the average number of bits per instruction compared to a typical fixed-length fixed-code binary instruction set. The PRECISE (Processor Register Extensions for Collapsed Instruction Set Encoding) methodology addresses the data type, opcode, and register access components of the instruction stream. This paper focuses on opcode compression through a set of benchmark-driven experiments to identify clusters of near optimal ISA fits. The results demonstrate that a small number of distinct binary ISAs can provide reasonably good fits across a broad range of application benchmarks.
- The rsim project. http://rsim.cs.uiuc.edu/rsim/.Google Scholar
- Rsiml. http://www.ece.lsu.edu/koppel/work/proc.html.Google Scholar
- Shade. http://cooltools.sunsource.net/shade/.Google Scholar
- Sun c programming language compiler. http://developers.sun.com/sunstudio/.Google Scholar
- K. D. Cooper and N. McIntosh. Enhanced code compression for embedded risc processors. In PLDI '99: Proceedings of the ACM SIGPLAN 1999 conference on Programming language design and implementation, pages 139--149, New York, NY, USA, 1999. ACM. Google ScholarDigital Library
- I. Corporation. Intel Architecture Software Developers Manual Volume 2: Instruction Set Reference, 1997.Google Scholar
- J. L. Henning. Spec cpu2000: Measuring cpu performance in the new millennium. COMPUTER, 2000. Google ScholarDigital Library
- D. Huffman. A method for the construction of minimum-redundancy codes. In Proceedings of the IRE, pages 1098--1101, 1952.Google ScholarCross Ref
- IBM. PowerPC Code Compression Utility User's Manual Version 3.0, 1998.Google Scholar
- C. Lefurgy, P. Bird, I.-C. Chen, and T. Mudge. Improving code density using compression techniques. In MICRO 30: Proceedings of the 30th annual ACM/IEEE international symposium on Microarchitecture, pages 194--203, Washington, DC, USA, 1997. IEEE Computer Society. Google ScholarDigital Library
- S. Liao, S. Devadas, K. Keutzer, S. Tjiang, and A. Wang. Storage assignment to decrease code size. ACM Trans. Program. Lang. Syst., 18(3):235--253, 1996. Google ScholarDigital Library
- S. P. Lloyd. Least squares quantization in pcm. IEEE Transactions on Information Theory, 28(2):129--137, 1982.Google ScholarDigital Library
- J. B. MacQueen. Some methods for classification and analysis of multivariate observations. In Proceedings of 5th Berkeley Symposium on Mathematical Statistics and Probability, pages 281--297. Berkeley, University of California Press, 1967.Google Scholar
- I. SPARC International. The SPARC Architecture Manual Version 9, 2000. Google ScholarDigital Library
- I. Sun Microsystems. SpixTools Users Manual. Palo Alto, CA, USA, 2004.Google Scholar
- A. Wolfe and A. Chanin. Executing compressed programs on an embedded risc architecture. In MICRO 25: Proceedings of the 25th annual international symposium on Microarchitecture, pages 81--91, Los Alamitos, CA, USA, 1992. IEEE Computer Society Press. Google ScholarDigital Library
Recommendations
Compressing MIPS code by multiple operand dependencies
Intuitively, destination registers of some instructions have great possibilities to be used as the source registers of the immediately subsequent instructions. Such destination register/source register pairs have been exploited previously to improve ...
High performance code compression architecture for the embedded ARM/THUMB processor
CF '04: Proceedings of the 1st conference on Computing frontiersThe use of code compression in embedded systems based on standard RISC instruction set architectures (ISA) has been shown in the past to be of benefit in reducing overall system cost. The 16-bit THUMB ISA from ARM Ltd has a significantly higher density ...
Compilation framework for code size reduction using reduced bit-width ISAs (rISAs)
For many embedded applications, program code size is a critical design factor. One promising approach for reducing code size is to employ a “dual instruction set”, where processor architectures support a normal (usually 32-bit) Instruction Set, and a ...
Comments