Compilation Methods for the Address Calculation Units of Embedded Processor Systems

Abstract

An essential component of today's embedded system is an instruction-set processor running real-time software. All variations of these core components contain at least the minimum data-flow processing capabilities, while a certain class contain specialized units for highly data-intensive operations for Digital Signal Processing (DSP). For the required level of memory interaction, the parallel executing Address Calculation Unit (ACU) is often used to tune the architecture to the memory access characteristics of the application. The design of the ACU is performance critical. In today's typical design flow, this design task is somewhat driven by intuition as the transformation from application algorithm to architecture is complex and the exploration space is immense. Automatic utilities to aid the designer are essential; however, the key compilation techniques which map high-level language constructs onto addressing units have lagged far behind the emergence of these units. This paper presents a new retargetable approach and prototype tool for the analysis of array references and traversals for efficient use of ACUs. In addition to being an enhancement to existing compiler systems, the ArrSyn utility may be used as an aid to architecture exploration. A simple specification of the addressing resources and basic operations drives the available transformations and allows the designer to quickly evaluate the effects on speed and code size of his/her algorithm. Thus, the designer can tune the design of the ACU toward the application constraints. ArrSyn has been successfully used together with a C compiler developed for a VLIW architecture for an MPEG audio decoding application. The combination of these methods with the C compiler showed on average a 39% speedup and 29% code size reduction for a representative set of DSP benchmarks.

This is a preview of subscription content, access via your institution.

References

  1. 1.

    M. Harrand, et al. A single chip videophone video encoder/decoder. International Solid-State Circuits Conference, 292–293, Feb. 1995.

  2. 2.

    P. Paulin, J. Fréhel, M. Harrand, E. Berrebi, C. Liem, F. Naçabal and J. Herluison. High-level synthesis and codesign methods: An application to a videophone codec. In Proceedings of Euro DAC/VHDL, Brighton, U.K. Sept. 1995.

    Google Scholar 

  3. 3.

    SGS-Thomson Microelectronics. D950-CORE preliminary specification, January 1995.

  4. 4.

    S. Liao, S. Devadas, K. Keutzer, S. Tjiang and A. Wang. Code optimization techniques for embedded DSP microprocessors. Design Automation Conference, 599–604, June 1995.

  5. 5.

    The Corporate Software Integrator. Lode DSP engine: Preliminary data sheet, May 1995.

  6. 6.

    L. Bergher, X. Figari, F. Frederiksen, M. Froidevaux, J. M. Gentit and O. Queinnec. MPEG Audio Decoder for Consumer Applications. CICC, 1995.

  7. 7.

    V. Zivojnovic, et al. DSPstone: A DSP-oriented benchmarking methodology. Proc. of International Conference on Signal Processing and Technology (ICSPAT), Dallas, Oct. 1994.

  8. 8.

    C. Liem, P. Paulin, M. Cornero and A. Jerraya. Industrial experience using rule-driven retargetable code generation for multimedia applications. International Symposium on System-Level Synthesis, Cannes, France, Sept. 1995.

  9. 9.

    ZR38500 six-channel Dolby digital surround processor: Preliminary specification, Zoran Corporation, November 1994.

  10. 10.

    C. Liem, T. May and P. Paulin. Instruction-set matching and selection for DSP and ASIP code generation. European Design & Test Conference, Paris, France, pp. 31–37, Feb. 1994.

  11. 11.

    D. Bacon, S. Graham and O. Sharp, Compiler transformations for high-performance computing. ACM Computing Surveys 26(4): 345–420, December 1994.

    Google Scholar 

  12. 12.

    A. Aho, R. Sethi and J. Ullman. Compilers: Principles, Techniques and Tools. Addison-Wesley, Reading, Massachusetts, 1988.

    Google Scholar 

  13. 13.

    U. Banerjee. Loop Parallelization. Kluwer Academic Publishers, 1994, 171 pages.

  14. 14.

    J. R. Larus. Efficient program tracing. IEEE Computer 52–61, May 1993.

  15. 15.

    C. Liem, T. May and P. Paulin. Register assignment through resource classification for ASIP microcode generation. Int. Conference on Computer Aided Design, Santa Clara, CA, pp. 397–402, Nov. 1994.

  16. 16.

    P. Paulin, C. Liem, T. May and S. Sutarwala. FlexWare: A flexible firmWare development environment. In Code Generation for Embedded Processors, P. Marwedel, G. Goossens (eds.), Kluwer Academic Publishers, pp. 67–84, 1995.

  17. 17.

    J. VanPraet, G. Goossens, D. Lanneer, and H. DeMan. Instruction set definition and instruction selection for ASIPs. Int. Symposium on High-Level Synthesis, pp. 11–16, May 1994.

  18. 18.

    P. Paulin, M. Cornero, C. Liem, F. Nacabal, C. Donawa, S. Sutarwala, T. May and C. Valderrama. Trends in embedded systems technology: An industrial perspective. In Hardware/Software Co-Design, M. G. Sami, G. De Micheli (eds.), Kluwer Academic Publishers, 1996.

Download references

Author information

Affiliations

Authors

Rights and permissions

Reprints and Permissions

About this article

Cite this article

Liem, C., Paulin, P. & Jerraya, A. Compilation Methods for the Address Calculation Units of Embedded Processor Systems. Design Automation for Embedded Systems 2, 61–77 (1997). https://doi.org/10.1023/A:1008862510877

Download citation

Keywords

  • Digital Signal Processing
  • Code Size
  • Prototype Tool
  • Array Reference
  • Access Characteristic