Abstract
Embedded systems are constrained by the available memory, and code compression techniques address this issue by reducing the code size of application programs. The main challenge for the development of an effective code compression technique is to reduce the code size without affecting the overall system performance. Code compression traditionally works on fixed-sized blocks with its efficiency limited by their small size. A new methodology, branch block, which is a series of instructions between two consecutive possible branch targets, provides larger blocks for code compression. Moreover, dictionary-based code compression schemes are the most commonly used ones, because they can provide both good compression ratio and fast decompression. In this chapter, several branch-block based methods, as well as new dictionary-based code compression methods are presented. These methods can achieve a good compression ratio (CR) (the compressed code size divided by original code size), with little or no hardware overheads.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
C.H. Lin, Y. Xie, W. Wolf, “Code Compression for VLIW Embedded Systems Using a Self-Generating Table,” IEEE Transactions on Very Large Scale Integration (VLSI) Systems. Vol. 15, Issue 10, pp. 1160-1171, October 2007.
J. C. Chen, C.H. Lin, “Improved Dictionary-based Code-compression Schemes with XOR Reference for RISC/VLIW Architecture,” IEICE Transactions on Fundamentals of Electronics, Communications and Computer Sciences, Vol.E93-A, No. 12, pp. 2517-2523, Dec. 2010.
C.-W. Lin, C.H. Lin, W. J. Wang, “A Power-aware Code-compression Design for RISC/VLIW Architecture,” Journal of Zhejiang University-SCIENCE C (Computers & Electronics), Vol.12, No. 8, pp. 629-637, Aug. 2011
W.J. Wang, C.H. Lin, “Code Compression for Embedded Systems Using Separated Dictionaries,” IEEE Transactions on Very Large Scale Integration (VLSI) Systems, Vol. 24, No. 1, pp. 266-275, Jan. 2016
C.H. Lin, Y. Xie, W. Wolf, “LZW-Based Code Compression for VLIW Embedded Systems,” in Design, Automation and Test in Europe Conference and Exposition., Feb. 2004, pp. 76–81.
C.W. Lin, C.H. Lin, “A Power-saving Code-compression Design for the VLIW Embedded Systems,” in Proc. 2010 World Congress in Computer Science, Computer Engineering, and Applied Computing, July 2010
W.J. Wang, C.H. Lin, “An Improved BitMask Based Code Compression Algorithm for Embedded Systems,” in Proc. 2011 International Symposium on Electronic System Design, December 2011
A. Wolfe and A. Chanin, “Executing compressed programs on an embedded RISC architecture,” in Proc. International Symposium on Microarchitecture, 1992, pp. 81–91.
S. Liao, S. Devadas, and K. Keutzer, “Code density optimization for embedded DSP processors using data compression techniques,” in Proc. Conference on Advanced Research in VLSI, 1995, pp. 272–285.
C. Lefurgy, P. Bird, I. Chen, and T. Mudge, “Improving code density using compression techniques,” in Proc. International Symposium on Microarchitecture, 1997, pp. 194–203.
IBM, Armonk, NY, “PowerPC code compression utility user’s manual, Version 3.0,” 1998.
H. Lekatsas and W. Wolf, “SAMC: A code compression algorithm for embedded processors,” IEEE Transaction on Computer-Aided Design Integrated Circuits System, vol. 18, no. 12, pp. 1689–1701, Dec. 1999.
E. W. Netto, R. Azevedo, P. Centoducatte, and G. Araujo, “Multi-profile based code compression,” in Proc. Design Automation Conference, 2004, pp. 244–249.
L. Benini, F. Menichelli, and M. Olivieri, “A class of code compression schemes for reducing power consumption in embedded microprocessor systems,” IEEE Transaction on Computer, vol. 53, no. 4, pp. 467–482, Apr. 2004.
S.-W. Seong and P. Mishra, “A bitmask-based code compression technique for embedded systems,” in Proc. IEEE/ACM International Conference on Computer Aided Design, Nov. 2006, pp. 251–254.
S.-W. Seong and P. Mishra, “An efficient code compression technique using application-aware bitmask and dictionary selection methods,” in Proc. Design, Automation and Test in Europe, 2007, pp. 1–6.
S. Segars, K. Clarke, and L. Goude, “Embedded control problems, thumb and the ARM7TDMI,” IEEE Micro, vol. 15, no. 5, pp. 22–30, Oct. 1995.
K. Kissel, “MIPS16: High-density MIPS for the embedded market,” Silicon Graphics MIPS Group, Sunnyvale, CA, 1997.
R. Gonzalez, “Xtensa: A configurable and extensible processor,” IEEE Micro, vol. 20, no. 2, pp. 60–70, Mar./Apr. 2000.
ARC International, San Jose, CA, “ARCompact-ISA programmer’s reference manual,” 2005.
K. D. Cooper and N. McIntosh, “Enhanced code compression for embedded RISC processors,” in Proc. SIGPLAN Conference on Programming language design and implementation, 1999, pp. 139–149.
S. Debray and W. Evans, “Profile-guided code compression,” in Proc. SIGPLAN Conference on Programming language design and implementation, 2002, pp. 95–105.
S. Debray and W. Evans, “Cold code decompression at runtime,” Commun. ACM, vol. 46, no. 8, pp. 54–60, Aug. 2003.
O. Ozturk, H. Saputra, M. Kandemir, and I. Kolcu, “Access pattern based code compression for memory-constrained embedded systems,” in Proc. Design, Automation and Test in Europe., 2005, pp. 882–887.
S. Shogan and B. R. Childers, “Compact binaries with code compression in a software dynamic translator,” in Proc. Design, Automation and Test in Europe., 2004, pp. 1052–1057.
B. Gorjiara, M. Reshadi, and D. Gajski, “Merged dictionary code compression for FPGA implementation of custom microcoded PEs,” ACM Transaction on Reconfigurable Technology. Systems, vol. 1, no. 2, Jun. 2008.
M. Ros and P. Sutton, “A Hamming distance based VLIW/EPIC code compression technique,” in Proc. International Conference on Compilers, Architecture, and Synthesis for Embedded Systems, 2004, pp. 132–139.
M. Thuresson and P. Stenstrom, “Evaluation of extended dictionary based static code compression schemes,” in Proc. 2nd Conference on Computer Frontiers, 2005, pp. 77–86.
X. Qin, C. Muthry, and P. Mishra, “Decoding-aware compression of FPGA bitstreams,” IEEE Transaction on Very Large Scale Integrated (VLSI) Systems, vol. 19, no. 3, pp. 411–419, Mar. 2011.
C. Murthy and P. Mishra, “Bitmask-based control word compression for NISC architectures,” in Proc. 19th ACM Great Lakes Symposium on VLSI, 2009, pp. 321–326.
T. Bonny and J. Henkel, “Efficient code compression for embedded processors,” IEEE Transaction on Very Large Scale Integrated (VLSI) Systems, vol. 16, no. 12, pp. 1696–1707, Dec. 2008.
J. Ranjith, N. J. R. Muniraj, and G. Renganayahi, “VLSI implementation of single bit control system processor with efficient code density,” in Proc. IEEE International Conference on Communication Control and Computing Technologies (ICCCCT), Oct. 2010, pp. 103–108.
P.-Y. Chen, C.-C. Wu, and Y.-J. Jiang, “Bitmask-based code compression methods for balancing power consumption and code size for hard realtime embedded systems,” Microprocessors Microsystems, vol. 36, no. 3, pp. 267–279, May 2012.
W. R. Azevedo Dias, E. D. Moreno, and I. Nattan Palmeira, “A new code compression algorithm and its decompressor in FPGA-based hardware,” in Proc. 26th Symposium on Integrated Circuits System Design (SBCCI), Sep. 2013, pp. 1–6.
Texas Instruments Incorporated, Dallas, “TMS320C62xx CPU and instruction set: Reference guide,” 1997.
T. Bell, J. Cleary, and I. Witten, Text Compression. Englewood Cliffs, NJ: Prentice-Hall, 1990.
T. Welch, “A technique for high performance data compression,” IEEE Transactions on Computers, vol. 16, no. 6, pp. 8–19, Jun. 1984.
ARM Architecture Reference Manual ARMv7-A and ARMv7-R Edition, ARM, Cambridge, U.K., 2012.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2020 Springer Nature Switzerland AG
About this chapter
Cite this chapter
Lin, C.H., Wang, WJ., Chen, JC., Lin, CW. (2020). Code Compression for Embedded Systems. In: Bhattacharyya, S., Potkonjak, M., Velipasalar, S. (eds) Embedded, Cyber-Physical, and IoT Systems. Springer, Cham. https://doi.org/10.1007/978-3-030-16949-7_6
Download citation
DOI: https://doi.org/10.1007/978-3-030-16949-7_6
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-16948-0
Online ISBN: 978-3-030-16949-7
eBook Packages: EngineeringEngineering (R0)