Advertisement

Design and Run Time Code Compression for Embedded Systems

  • Sri Parameswaran
  • Jörg Henkel
  • Andhi Janapsatya
  • Talal Bonny
  • Aleksandar Ignjatovic

Compression has long been utilized in electronic systems to improve performance, reduce transmission costs, and to minimize code size. In this chapter we show two separate techniques to compress instructions. The first technique compresses instruction traces, so that the compressed trace can be used to explore the best cache configuration to be used in an embedded system. Trace compression enables rapid cache space exploration. The second technique uses compressed instruction in memory, to be expanded just before execution in the processor. This enables a smaller code footprint, and reduced power consumption. This chapter explains the methods, and shows the benefits of two orthogonal approaches to the design of an embedded system.

Keywords

Compression Ratio Embed System Travel Salesman Problem Compression Algorithm Huffman Code 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Bell, Timothy C., Cleary, John G., and Witten, Ian H. (1990) Text compression. Englewood Cliffs. Prentice-Hall.Google Scholar
  2. Benini, L., Bruni, D., Macii, A., and Macii, E. (2002) Hardware-assisted data compression for energy minimization in systems with embedded processors. In DATE ’02: Proceedings of the Conference on Design, Automation and Test in Europe, page 449, Washington, DC, USA. IEEE Computer Society.Google Scholar
  3. Benini, Luca, Macii, Alberto, and Nannarelli, Alberto (2001) Cached-code compression for energy minimization in embedded processors. In ISLPED ’01: Proceedings of the 2001 International Symposium on Low Power Elec-tronics and Design, pages 322-327, New York, NY, USA. ACM Press.Google Scholar
  4. Burtscher, Martin (2004) Vpc3: A fast and effective trace-compression algo-rithm. In SIGMETRICS ’04/Performance ’04: Proceedings of the Joint International Conference on Measurement and Modeling of Computer Sys-tems, pages 167-176, New York, NY, USA. ACM Press.Google Scholar
  5. Corliss, Marc L., Lewis, E. Christopher, and Roth, Amir (2003) Dise: a programmable macro engine for customizing applications. In ISCA ’03: Proceedings of the 30th Annual International Symposium on Computer Architecture, pages 362-373, New York, NY, USA. ACM Press.CrossRefGoogle Scholar
  6. Das, Dipankar, Kumar, Rajeev, and Chakrabarti, P.P. (2004) Code compression using unused encoding space for variable length instruction encodings. In Proceedings of the 8th VLSI Design and Test Workshop (VDAT) Mysore, India.Google Scholar
  7. Das, Dipankar, Kumar, Rajeev, and Chakrabarti, P.P. (2005) Dictionary based code compression for variable length instruction encodings. In VLSID ’05: Proceedings of the 18th International Conference on VLSI Design held jointly with 4th International Conference on Embedded Systems Design (VLSID’05), pages 545-550, Washington, DC, USA. IEEE Computer Society.Google Scholar
  8. Edler, Jan and Hill, Mark D. Dinero iv trace-driven uniprocessor cache simu-lator. In http://www.cs.wisc.edu/markhill/DineroIV/. 1999
  9. Game, Mark B. (2000) Codepack: Code compression for powerpc processors. In PowerPC Embedded Processor Solutions.Google Scholar
  10. Helsgaun, K.(2000) An effective implementation of the Lin-Kernighan traveling salesman heuristic. European Journal of Operational Research, 126(1):106-130.MATHCrossRefMathSciNetGoogle Scholar
  11. Johnson, Eric E. and Ha, Jiheng (1994) PDATS: Lossless address space com-pression for reducing file size and access time. In Proceedings of 1994 IEEE International Phoenix Conference on Computers and Communication.Google Scholar
  12. Johnson, Eric E., Ha, Jiheng, and Zaidi, M. Baqar (2001) Lossless trace compression. IEEE Transactions on Computers, 50(2):158-173.CrossRefGoogle Scholar
  13. Klein, Shmuel T. (1997) Space- and time-efficient decoding with canonical huffman trees. In CPM ’97: Proceedings of the 8th Annual Symposium on Combinatorial Pattern Matching, pages 65-75, London, UK. Springer-Verlag.Google Scholar
  14. Larin, Sergei Y. and Conte, Thomas M. (1999) Compiler-driven cached code compression schemes for embedded ilp processors. In MICRO 32: Proceed-ings of the 32nd Annual ACM/IEEE International Symposium on Microar-chitecture, pages 82-92, Washington, DC, USA. IEEE Computer Society.Google Scholar
  15. Lee, Chunho, Potkonjak, Miodrag, and Mangione-Smith, William H. (1997) Mediabench: A tool for evaluating and synthesizing multimedia and com-municatons systems. In MICRO 30: Proceedings of the 30th Annual ACM/IEEE International Symposium on Microarchitecture, pages 330-335, Washington, DC, USA. IEEE Computer Society.Google Scholar
  16. Lefurgy, Charles, Bird, Peter, Chen, I-Cheng, and Mudge, Trevor (1997) 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. IEEE Computer Society.Google Scholar
  17. Lekatsas, H. and Wolf, Wayne (1999) SAMC: A code compression algorithm for embedded processors. IEEE Transactions on CAD, 18(12):1689-1701.Google Scholar
  18. Lekatsas, Haris, Henkel, Joerg, and Wolf, Wayne (2000) Code compression for low power embedded system design. In DAC ’00: Proceedings of the 37th Conference on Design Automation, pages 294-299, New York, NY, USA. ACM Press.Google Scholar
  19. Lekatsas, Haris, Henkel, Joerg, Jakkula, Venkata, and Chakradhar, Srimat (2005) A unified architecture for adaptive compression of data and code on embedded systems. In VLSID ’05: Proceedings of the 18th International Conference on VLSI Design held jointly with 4th International Conference on Embedded Systems Design (VLSID’05), pages 117-123, Washington, DC, USA. IEEE Computer Society.Google Scholar
  20. Luo, Yue and John, Lizy Kurian (2004) Locality-based online trace compres-sion. IEEE Transactions on Computers, 53(6):723-731.CrossRefGoogle Scholar
  21. Milenkovic, Aleksandar and Milenkovic, Milena (2003) Exploiting streams in instruction and data address trace compression. In WWC-6 2003 IEEE International Workshop on Workload Characterization, pages 99-107.Google Scholar
  22. Nekritch, Yakov (2000) Decoding of canonical huffman codes with look-up tables. In DCC ’00: Proceedings of the Conference on Data Compression, page 566, Washington, DC, USA. IEEE Computer Society.Google Scholar
  23. Nevill-Manning, C. and Witten, I. (1997) Identifying hierarchical structure in sequences: A linear-time algorithm. In Journal of Artificial Intelligence Research (JAIR), 7:67-82.MATHGoogle Scholar
  24. Okuma, T., Tomiyama, H., Inoue, A., Fajar, E., and Yasuura, H. (1998) Instruc-tion encoding techniques for area minimization of instruction rom. In ISSS ’98: Proceedings of the 11th International Symposium on System Synthesis, pages 125-130, Washington, DC, USA. IEEE Computer Society.Google Scholar
  25. Pleszkun, Andrew R. (1994) Techniques for compressing program address traces. In MICRO 27: Proceedings of the 27th Annual International Sympo-sium on Microarchitecture, pages 32-39, New York, NY, USA. ACM Press. Processor, Xtensa. http://www.tensilica.com.
  26. Rudberg, Mikael K. and Wanhammar, Lars (1997) High speed pipelined par-allel huffman decoding. In ISCAS ’97: Proceedings of 1997 IEEE Interna-tional Symposium on Circuits and Systems, pages 2080-2083.Google Scholar
  27. Tuduce, Irina C. and Gross, Thomas (2005) Adaptive main memory compres-sion. pages 237-250.Google Scholar
  28. Welch, Terry A. (1984) A technique for high-performance data compression. IEEE Computer, 17(6):8-19.Google Scholar
  29. Wolfe, Andrew and Chanin, Alex (1992) 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. IEEE Computer Society Press.Google Scholar
  30. Xu, X.H., Clarke, C.T., and Jones, S.R. (2004) High performance code com-pression architecture for the embedded arm/thumb processor. In CF ’04: Proceedings of the 1st Conference on Computing Frontiers, pages 451-456, New York, NY, USA. ACM Press.Google Scholar
  31. Yang, Lei, Dick, Robert P., Lekatsas, Haris, and Chakradhar, Srimat (2005) Crames: Compressed ram for embedded systems. In CODES+ISSS ’05: Proceedings of the 3rd IEEE/ACM/IFIP International Conference on Hard-ware/Software Codesign and System Synthesis, pages 93-98.Google Scholar
  32. Yoshida, Yukihiro, Song, Bao-Yu, Okuhata, Hiroyuki, Onoye, Takao, and Shi-rakawa, Isao (1997) An object code compression approach to embedded processors. In ISLPED ’97: Proceedings of the 1997 International Sympo-sium on Low Power Electronics and Design, pages 265-268, New York, NY, USA. ACM Press.Google Scholar
  33. Zhang, Xiangyu and Gupta, Rajiv (2004) Whole execution traces. In MICRO 37: Proceedings of the 37th Annual IEEE/ACM International Symposium on Microarchitecture, pages 105-116, Washington, DC, USA. IEEE Computer Society.Google Scholar
  34. Zhang, Xiangyu and Gupta, Rajiv (2005) Whole execution traces and their applications. ACM Trans. Archit. Code Optim., 2(3):301-334.MATHCrossRefGoogle Scholar
  35. Ziv, Jacob and Lempel, Abraham (1977) A universal algorithm for sequential data compression. IEEE Transactions on Information Theory, 23(3):337-343.MATHCrossRefMathSciNetGoogle Scholar
  36. Ziv, Jacob and Lempel, Abraham (1978) Compression of individual sequences via variable-rate coding. IEEE Transactions on Information Theory, 24 (5):530-536.MATHCrossRefMathSciNetGoogle Scholar

Copyright information

© Springer 2007

Authors and Affiliations

  • Sri Parameswaran
    • 1
  • Jörg Henkel
    • 2
  • Andhi Janapsatya
    • 1
  • Talal Bonny
    • 2
  • Aleksandar Ignjatovic
    • 1
  1. 1.School of Computer Science and EngineeringThe University of New South WalesAustralia
  2. 2.Department of Computer ScienceUniversity of Karlsruhe (TH)Germany

Personalised recommendations