skip to main content
10.1145/780732.780767acmconferencesArticle/Chapter ViewAbstractPublication PagescpsweekConference Proceedingsconference-collections
Article

Enhancing the performance of 16-bit code using augmenting instructions

Published:11 June 2003Publication History

ABSTRACT

In the embedded domain, memory usage and energy consumption are critical constraints. Dual width instruction set embedded processors such as the ARM provide a 16-bit instruction set in addition to the 32-bit instruction set to address these concerns. Using 16-bit instructions one can achieve code size reduction and I-cache energy savings at the cost of performance. We have observed that throughout 16-bit Thumb code there exist Thumb instruction pairs that are equivalent to a single ARM instruction. We have developed an approach which uses combination of compiler and architectural support to exploit the above property for improving performance of 16-bit code. We enhance the Thumb instruction set by incorporating Augmenting eXtensions (AX). The task of the compiler is to identify pairs of Thumb instructions that can be safely combined and executed as single ARM instructions. The compiler replaces such pairs of Thumb instructions by AX+Thumb instruction pairs. The AX instruction is coalesced with the immediately following Thumb instruction to generate a single ARM instruction at decode time. Thus, using AX instructions, the compiler can both generate compact 16-bit code and provide hardware with information needed to produce better performing 32-bit code.

References

  1. D. Burger and T.M. Austin, "The Simplescalar Tool Set, Version 2.0," Computer Architecture News, pages 13--25, June 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. S. Furber, "ARM system Architecture," Publisher: Addison Wesley Longman, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Intel Corporation, "SA-110 Microprocessor Technical Reference Manual".Google ScholarGoogle Scholar
  4. Intel Corporation, "The Intel XScale Core Developer's Manual".Google ScholarGoogle Scholar
  5. Intel Corporation, "The Intel PXA250 Applications Processor - A White Paper," February 2002.Google ScholarGoogle Scholar
  6. A. Krishnaswamy and R. Gupta, "Profile Guided Selection of ARM and Thumb Instructions," ACM SIGPLAN Joint Conference on Languages Compilers and Tools for Embedded Systems & Software and Compilers for Embedded Systems (LCTES/SCOPES), Berlin, Germany, June 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. C. Lee, M. Potkonjak, and W.H. Mangione-Smith, "Mediabench: A Tool for Evaluating and Synthesizing Multimedia and Communications Systems," IEEE/ACM International Symposium on Microarchitecture (MICRO), Research Triangle Park, North Carolina, December 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. G. Memik, Mangione Smith and Hu, "NetBench: A Benchmarking Suite for Network Processors," IEEE International Conference on Computer-Aided Design, November 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. MIPS Technologies, "MIPS32 Architecture for Programmers Volume IV-a: The MIPS16 Application Specific Extension to the MIPS32 Architecture," March 2001.Google ScholarGoogle Scholar
  10. J. Montanaro et al., "A 160-MHz, 32-b, 0.5-W CMOS RISC Microprocessor," IEEE Journal of Solid-State Circuits, Vol. 31, No. 11, November 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. D. Seal, Editor, "ARM Architecture Reference Manual," Second Addition, Addison-Wesley. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. T. Wolf and M. Franklin, "Commbench - A Telecommunications Benchmark for Network Processors," IEEE International Symposium on Performance Analysis of Systems and Software, April 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Kunio Uchiyama, "The SH-5/ST50: An Advanced Microprocessor Core for Networking and Multimedia Applications," Cool Chips III, April 2000.Google ScholarGoogle Scholar

Index Terms

  1. Enhancing the performance of 16-bit code using augmenting instructions

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in
      • Published in

        cover image ACM Conferences
        LCTES '03: Proceedings of the 2003 ACM SIGPLAN conference on Language, compiler, and tool for embedded systems
        June 2003
        304 pages
        ISBN:1581136471
        DOI:10.1145/780732
        • cover image ACM SIGPLAN Notices
          ACM SIGPLAN Notices  Volume 38, Issue 7
          Special Issue: Proceedings of the 2003 ACM SIGPLAN conference on Language, compiler, and tool support for embedded systems (San Diego, CA).
          July 2003
          293 pages
          ISSN:0362-1340
          EISSN:1558-1160
          DOI:10.1145/780731
          Issue’s Table of Contents

        Copyright © 2003 ACM

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 11 June 2003

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • Article

        Acceptance Rates

        LCTES '03 Paper Acceptance Rate29of128submissions,23%Overall Acceptance Rate116of438submissions,26%

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader