skip to main content
research-article

Adaptive Source-Level Data Assignment to Dual Memory Banks

Published:01 June 2012Publication History
Skip Abstract Section

Abstract

Dual memory banks provide extra memory bandwidth to DSP applications and enable simultaneous access to two operands if the data is partitioned appropriately. Fully automated and compiler integrated approaches to data partitioning and memory bank assignment have, however, found little acceptance by DSP software developers. In this article we present a novel source-level approach that is more programmer friendly. Our scheme is based on soft graph coloring and highly adaptive heuristics generated by genetic programming. We have evaluated our scheme on an Analog Devices TigerSHARC TS-101 DSP and achieved speedups of up to 57% on 13 UTDSP benchmarks.

References

  1. ACE. 1998. DSP-C, an extension to ISO/IEC IS 9899:1990. Tech. rep., ACE Associated Compiler Experts bv.Google ScholarGoogle Scholar
  2. Beemster, M., van Someren, H., Wakker, W., and Banks, W. 2005. The Embedded C extension to C. http://www.ddj.com/cpp/184401988.Google ScholarGoogle Scholar
  3. Bhattacharyya, S., Leupers, R., and Marwedel, P. 2000. Software synthesis and code generation for signal processing systems. IEEE Trans. Circ. Syst. II: Anal. Dig. Signal Process. 47, 9.Google ScholarGoogle Scholar
  4. Cavazos, J. and O’Boyle, M. F. P. 2005. Automatic tuning of inlining heuristics. In Proceedings of the ACM/IEEE Conference on Supercomputing (SC’05). IEEE Computer Society, Los Alamitos, CA, 14. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Cooper, K. D. and Waterman, T. 2003. Investigating adaptive compilation using the MIPSpro compiler. In Proceedings of the Symposium of the Los Alamos Computer Science Institute.Google ScholarGoogle Scholar
  6. Cramer, N. L. 1985. A representation for the adaptive generation of simple sequential programs. In Proceedings of the International Conference on Genetic Algorithms and Their Applications (ICGA’85). 183--187. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Falk, H. and Verma, M. 2004. Combined data partitioning and loop nest splitting for energy consumption minimization. In Software and Compilers for Embedded Systems, Lecture Notes in Computer Science, vol. 3199, Springer, 137--151.Google ScholarGoogle Scholar
  8. Fitzpatrick, S. and Meertens, L. 2001. An experimental assessment of a stochastic, anytime, decentralized, soft colourer for sparse graphs. In Proceedings of the International Symposium on Stochastic Algorithms (SAGA’01). 49--64. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Frederiksen, A., Christiansen, R., Bier, J., and Koch, P. 2000. An evaluation of compiler-processor interaction for DSP applications. In Proceedings of the 34th IEEE Asilomar Conference on Signals, Systems, and Computers.Google ScholarGoogle Scholar
  10. Fursin, G., O’Boyle, M., and Knijnenburg, P. 2002. Evaluating iterative compilation. In Proceedings of the 15th Workshop on Languages and Compilers for Parallel Computing. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Gréwal, G., Coros, S., Morton, A., and Banerji, D. 2006. A multi-objective integer linear program for memory assignment in the DSP domain. In Proceedings of the IEEE Workshop on Memory Performance Issues (WMPI’06). 21--28.Google ScholarGoogle Scholar
  12. Gréwal, G., Wilson, T., and Morton, A. 2003. An EGA approach to the compile-time assignment of data to multiple memories in digital-signal processors. SIGARCH Comput. Archit. News 31, 1, 49--59. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. JTC1/SC22/WG14. 2004. Programming languages - C - extensions to support embedded processors. Tech. rep., ISO/IEC.Google ScholarGoogle Scholar
  14. Ko, M.-Y. and Bhattacharyya, S. S. 2003. Data partioning for DSP software synthesis. In Proceedings of the International Workshop on Software and Compilers for Embedded Systems (SCOPES’03). 344--358.Google ScholarGoogle Scholar
  15. Koza, J. 1992. Genetic Programming: On the Programming of Computers by Means of Natural Selection. The MIT Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Lee, C. G. 1998. UTDSP benchmark suite. http://www.eecg.toronto.edu/~corinna/DSP/infrastructure/UTDSP.html.Google ScholarGoogle Scholar
  17. Leupers, R. 1998. Novel code optimization techniques for DSPs. In Proceedings of the 2nd European DSP Education and Research Conference.Google ScholarGoogle Scholar
  18. Leupers, R. and Kotte, D. 2001. Variable partioning for dual memory bank DSPs. In Proceedings of the IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP’01). Vol. 2. 1121--1124. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Luke, S. and Panait, L. 2002. Lexicographic parsimony pressure. In Proceedings of the Genetic and Evolutionary Computation Conference. 829--836. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Murray, A. and Franke, B. 2008. Fast source-level data assignment to dual memory banks. In Proceedings of the 11th International Workshop on Software and Compilers for Embedded Systems (SCOPES’08). 43--52. Google ScholarGoogle Scholar
  21. Murray, A. and Franke, B. 2009. Using genetic programming for source-level data assignment to dual memory banks. In Proceedings of the 3rd Workshop on Statistical and Machine Learning Approaches to Architectures and Compilation (SMART’09). 75--89.Google ScholarGoogle Scholar
  22. Rugina, R. and Rinard, M. 1999. Pointer analysis for multithreaded programs. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implemenation. 77--90. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Saghir, M. A. R., Chow, P., and Lee, C. G. 1996. Exploiting dual data-memory banks in digital signal processors. In Proceedings of the 7th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS-VII). 234--243. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Sipkovà, V. 2003. Efficient variable allocation to dual memory banks of DSPs. In Proceedings of the 7th International Workshop on Software and Compilers for Embedded Systems (SCOPES’03). 359--372.Google ScholarGoogle ScholarCross RefCross Ref
  25. Stephenson, M., Martin, M., O’Reilly, U.-M., and Amarasinghe, S. 2003a. Meta optimization: Improving compiler heuristics with machine learning. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implemenation (PLDI’03). 77--90. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Stephenson, M., O’Reilly, U.-M., Martin, M. C., and Amarasinghe, S. 2003b. Genetic programming applied to compiler heuristic optimization. In Proceedings of the 6th European Conference on Genetic Programming. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Timmer, A., Strik, M., van Meerberger, J., and Jess, J. 1995. Conflict modelling and instruction scheduling in code generation for in-house DSP cores. In Proceedings of the Design Automation Conference (DAC’95). Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Wilson, R. P., French, R. S., Wilson, C. S., Amarasinghe, S. P., Anderson, J. M., Tjiang, S. W. K., Liao, S.-W., Tseng, C.-W., Hall, M. W., Lam, M. S., and Hennessy, J. L. 1994. SUIF: An infrastructure for research on parallelizing and optimizing compilers. SIGPLAN Not. 29, 12, 31--37. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Adaptive Source-Level Data Assignment to Dual Memory Banks

        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

        Full Access

        • Article Metrics

          • Downloads (Last 12 months)1
          • Downloads (Last 6 weeks)1

          Other Metrics

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader
        About Cookies On This Site

        We use cookies to ensure that we give you the best experience on our website.

        Learn more

        Got it!