Skip to main content

Tailoring Software Pipelining for Effective Exploitation of Zero Overhead Loop Buffer

  • Conference paper
  • 309 Accesses

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2826))

Abstract

A Zero Overhead Loop Buffer (ZOLB) is an architectural feature that is commonly found in DSPs (Digital Signal Processors). This buffer can be viewed as a compiler (or program) managed cache that can hold a limited number of instructions, which will be executed a specified number of times without incurring any loop overhead. Preliminary versions of the research, which exploit a ZOLB, report significant improvement in execution time with a minimal code size increase [UH99,UH00]. This paper extends the previous compiler efforts to further exploit a ZOLB by employing a new software pipelining methodology. The proposed techniques choose complex instructions, which capitalize on instruction level parallelism across loop iteration boundaries. Unlike the traditional pipelining techniques, the proposed pipelining strategy is tightly coupled with instruction selection so that it can perform register renaming and/or proactively generate additional instruction(s) on the fly to discover more loop parallelism on the ZOLB. This framework reports additional significant improvements in execution time with modest code size increases for various signal processing applications on the DSP16000.

David Whalley, Teresa Cole, and the anonymous reviewers provided helpful suggestions that improved the quality of the paper. This research was supported by NSF EPSCoR Start-up Augmentation Funding.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Aiken, A., Nicolau, A.: A Development Environment for Horizontal Microcode. IEEE Transaction on Software Engineering 14, 584–594 (1988)

    Article  Google Scholar 

  2. Allen, F.E., Cocke, J.: Computing Architecture for Digital Signal Processing. Proceedings of the IEEE International Conference on Acoustics, Speech,Signal 75(5), 852–873 (1985)

    Google Scholar 

  3. Araujo, G., Malik, S.: Optimal code generation for embedded memory non-homogeneous register architectures. In: Proceedings of the IEEE International Symposium on System Synthesis, September 1995, pp. 36–41 (1995)

    Google Scholar 

  4. Araujo, G., Devadas, S., Keutzer, K., Liao, S., Malik, S., Sudarsanam, A., Tjiang, S., Wang, A.: Challenges in code generation for embedded processors. In: Marwedel, P., Gossens, G. (eds.) Code Generation for Embedded Processors. Kluwer Academic Publishers, Dordrecht (1995)

    Google Scholar 

  5. : Embedded real-time systems. Wiley Series in Software Engineering Practice (1993)

    Google Scholar 

  6. Desmet, D., Genin, D.: ASSYNT: efficient assembly code generation for digital signal processors. In: Proceedings of the IEEE International Conference Acoustics, Speech, Signal, Minneapolis (April 1993)

    Google Scholar 

  7. Eichenberger, A.E.: Modulo Scheduling, Machine Representations, and Register-Sensitive Algorithms. Ph.D Thesis, University of Michigan (1997)

    Google Scholar 

  8. Stotzer, E., Leiss, E.: Modulo Scheduling for the TMS320C6X VLIWDSP Architecture. In: ACM SIGPLAN Workshop on Languages, Compilers, and Tools for Embedded Systems, May 5, pp. 28–34 (1999)

    Google Scholar 

  9. Huff, R.A.: Lifetime-Sensitive Modulo Scheduling. In: Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation, June 1993, pp. 258–267 (1993)

    Google Scholar 

  10. M.: Software Pipelining: An Effective Scheduling Technique for VLIW Machines. In: Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation, June 1988, pp. 318–328 (1988)

    Google Scholar 

  11. Lapsley, P., Bier, J., Lee, E.: DSP Processor Fundamentals - Architecture and Features. IEEE Press, Los Alamitos (1996)

    Google Scholar 

  12. Lee, E.A.: Programmable DSP Architectures: Part I. IEEE ASSP Magazine, 4–19 (January 1988)

    Google Scholar 

  13. Lee, E.A.: Programmable DSP Architecture: Part II. IEEE ASSP Magazine, 4–19 (January 1989)

    Google Scholar 

  14. Liao, S.Y.: Code generation and optimization for embedded digital signal processors. Ph.D Thesis, Massachusetts Institute of Technology (June 1996)

    Google Scholar 

  15. LSI Logic: ZSP500 Digital Signal Processor Core Architecture (2002)

    Google Scholar 

  16. Lucent Technologies: DSP16000 Digital Signal Processor Core Instruction Set Manual (1997)

    Google Scholar 

  17. Mallet, S., Landskov, D., Shriver, B.D., Mallett, P.W.: Some Experiments in Local Microcode Compaction for Horizontal Machines. IEEE Transaction on Computers 30(7), 460–477 (1981)

    Article  Google Scholar 

  18. Leupers, R., Marwedel, P.: Time-Constrained Code Compaction for DSPs. IEEE Transactions on VLSI Systems 5(1) (1997)

    Google Scholar 

  19. Rau, B.R.: Iterative Modulo Scheduling: An Algorithm For Software Pipelining Loops. In: Proceedings of the 27th Annual International Symposium on Microarchitecture, pp. 63–74 (November 1994)

    Google Scholar 

  20. Uh, G.R., Wang, Y., Whalley, D., Jinturkar, S., Burns, S., Cao, V.: Effective Exploitation of a Zero Overhead Loop Buffer. In: Proceedings of the ACM SIGPLAN 1999 Workshop on Languages, Compilers, and Tools for Embedded System, pp. 10–19 (1999)

    Google Scholar 

  21. Uh, G.R., Wang, Y., Whalley, D., Jinturkar, S., Burns, C., Cao, V.: Techniques for Effective Exploitation of a Zero Overhead Loop Buffer. In: Proceedings of the 9th International Conference on Compiler Construction (March 2000)

    Google Scholar 

  22. Allan, V.H., Jones, R.B., Lee, R.M., Allan, S.J.: Software Pipelining. ACM Computing Surveys 27(3) (September 1995)

    Google Scholar 

  23. Wang, Y.: Interprocedural Optimizations for Embedded Systems. MS project, Florida State University (April 1999)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2003 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Uh, GR. (2003). Tailoring Software Pipelining for Effective Exploitation of Zero Overhead Loop Buffer. 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_10

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-39920-9_10

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-20145-8

  • Online ISBN: 978-3-540-39920-9

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics