Abstract
Code size is an important design constraint in cost-sensitive embedded systems, since the amount of available memory is often limited. This constraint motivates dual instruction set processors, which support a reduced instruction set with a smaller instruction length in addition to a normal instruction set. This dual instruction set provides an effective mechanism for code size reduction. However, the code size reduction comes at the price of degraded performance because a program compiled into the reduced instruction set executes a larger number of instructions than the same program compiled into the normal instruction set. Motivated by this observation, we propose a technique that can be used to enable a flexible tradeoff between the code size and execution time of a program by using the two instruction sets selectively for different parts of a program. Our proposed approach determines the instruction set to be used for each basic block using a path-based profitability analysis, so that the execution time of the resulting program is minimized while the code size constraint is satisfied. The results from our experiments verify that the tradeoff relationship exists between a program’s code size and execution time, and further indicate that the proposed technique can effectively exploit this tradeoff to improve performance within the given code size budget.
This work was supported in part by the Ministry of Education under the Brain Korea 21 Project in 2003, and by the Ministry of Science and Technology under the National Research Laboratory program. The ICT at Seoul National University provided research facilities for this study.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Halambi, A., Shrivastava, A., Biswas, P., Dutt, N., Nicolau, A.: An efficient compiler technique for code size reduction using reduced bit-width ISAs. In: Proceedings of the DATE (Design, Automation and Test in Europe), Paris, France (March 2002)
Furber, S.: ARM System Architecture. Addison-Wesley, Reading (1996); ISBN: 0-201-40352-8
Kissel, K.: MIPS16: High-density MIPS for the embedded market. Technical report, Silicon Graphics MIPS Group (1997)
ARC Cores. The ARCtangent-A5 Processor, http://www.arc.com
Appel, A., Davidson, J., Ramsey, N.: The zephyr compiler infrastructure (1998), http://www.cs.virginia.edu/zephyr
Krishnaswamy, A., Gupta, R.: Profile guided selection of ARM and Thumb instructions. In: Proceedings of LCTES/SCOPES, Berlin, Germany (June 2002)
Goudge, L., Segars, S.: Thumb: Reducing the cost of 32-bit RISC performance in portable and consumer applications. In: Proceedings of COMPCON (1996)
ARM Limited. ARM Developer Suite Developer Guide
Ball, T., Larus, J.R.: Efficient path profiling. In: Proceedings of the 29th Annual IEEE/ACM Symposium on Microarchitecture, Paris, France, pp. 46–57 (1996)
Benitez, M.E., Davidson, J.W.: Target-specific global code improvement: Principles and applications. Technical Report CS-94-42, Department of Computer Science, University of Virginia (April 1994)
Davidson, J.W., Fraser, C.W.: Code selection through object code optimization. ACM Transactions on Programming Languages and Systems 6(4), 505–526 (1984)
Davidson, J.W., Whalley, D.B.: A design environment for addressing architecture and compiler interactions. Microprocessors and Microsystems 15(9), 459–472 (1991)
Tamches, A., Miller, B.P.: Dynamic kernel code optimization. In: Proceedings of the 3rd Workshop on Binary Translation, Barcelona, Spain (June 2001)
Guthaus, M.R., Ringenberg, J.S., Ernst, D., Austin, T.M., Mudge, T., Brown, R.B.: MiBench: A free, commercially representative embedded benchmark suite. In: Proceedings of the IEEE 4th Annual Workshop on Workload Characterization, Austin, TX (December 2001)
Lee, C., Potkonjak, M., Mangione-Smith, W.H.: MediaBench: A tool for evaluating and synthesizing multimedia and communications systems. In: Proceedings of the 30th Annual International Symposium on Microarchitecture, December 1997, pp. 330–335 (1997)
ARM Linux Project. http://www.arm.linux.org.uk
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2003 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Lee, S., Lee, J., Min, S.L., Hiser, J., Davidson, J.W. (2003). Code Generation for a Dual Instruction Set Processor Based on Selective Code Transformation. In: Krall, A. (eds) Software and Compilers for Embedded Systems. SCOPES 2003. Lecture Notes in Computer Science, vol 2826. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-39920-9_4
Download citation
DOI: https://doi.org/10.1007/978-3-540-39920-9_4
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-20145-8
Online ISBN: 978-3-540-39920-9
eBook Packages: Springer Book Archive