Skip to main content
Log in

Analysis and Evaluation of Address Arithmetic Capabilities in Custom DSP Architectures

  • Published:
Design Automation for Embedded Systems Aims and scope Submit manuscript

Abstract

We address the problem of code generation for DSP systems on a chip. In such systems, the amount of silicon devoted to program ROM is limited, so in addition to meeting various high-performance constraints, the application software must be sufficiently dense. Unfortunately, existing compiler technology is unable to generate high-quality code for DSPs since it does not provide adequate support for the specialized architectural features of DSPs. Thus, designers often resort to programming application software in assembly, which is a very tedious and time-consuming task. In this paper, we focus on providing compiler support for a group of specialized architectural features that exist in many DSPs, namely indirect addressing modes with auto-increment/decrement arithmetic. In these DSPs, an indexed addressing mode is generally not available, so automatic variables must be accessed by allocating address registers and performing address arithmetic. Subsuming address arithmetic into auto-increment /decrement arithmetic improves both the performance and size of the generated code. Our objective is to provide a method for comprehensively analyzing the performance benefits and hardware cost due to an auto-increment /decrement feature that varies from-l to +l, and allowing access to k address registers in an address generator. We provide this method via a parameterizable optimization algorithm that operates on a procedure-wise basis. Thus, the optimization techniques in a compiler can be used not only to generate efficient or compact code, but also to help the designer of a custom DSP architecture make decisions on address arithmetic features.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. M. Gold and A. Bindra. DSP World Rocked to Core, Electronic Engineering Times, pp. 11-18, March 1996.

  2. A. Aho, R. Sethi, and J. Ullman. Compilers Principles, Techniques and Tools. Addison-Wesley, 1986.

  3. D. H. Bartley. Optimizing Stack Frame Accesses for Processors with Restricted Addressing Modes. Software—Practice and Experience. 22(2), Feb. 1992.

  4. S. Liao, S. Devadas, K. Keutzer, S. Tjiang, and A. Wang. Storage Assignment to Decrease Code Size. In ACM Transactions on Programming Languages and Systems, 18, May 1996.

  5. G. Araujo and S. Malik. Optimal Code Generation for Embedded Memory Non-Homogeneous Register Architectures. In Proceedings of 8th International Symposium on System Synthesis, 1995.

  6. B. Wess. On the Optimal Code Generation for Signal Flow Graph Computation. In Proceedings of the International Symposium on Circuits and Systems, 1990.

  7. B. Wess and W. Kreuzer. Optimized DSP Assembly Code Generation Starting from Homogeneous Atomic Data Flow Graphs. In Proceedings of the Midwest Symposium on Circuits and Systems, 1995.

  8. B. Wess. Automatic Instruction Code Generation Based on Trellis Diagrams. In Proceedings of the International Symposium on Circuits and Systems, 1992.

  9. S. Liao, S. Devadas, K. Keutzer, and S. Tjiang. Instruction Selection Using Binate Covering for Code Size Optimization. In Proceedings of the International Conference on Computer-Aided Design, 1995.

  10. R. Leupers and P. Marwedel. Algorithms for Address Assignment in DSP Code Generation. In Proceedings of the International Conference on Computer-Aided Design, 1996.

  11. B. Wess and M. Gotschlich. Constructing Memory Layouts for Address Generation Units Supporting Offset 2 Access. In Proceedings of the International Conference on Acoustics, Speech, and Signal Processing, 1997.

  12. C. Gebotys. DSP Address Optimization Using a Minimum Cost Circulation Technique. In Proceedings of the International Conference on Computer-Aided Design, pp. 100-103, November 1997.

  13. G. Araujo, A. Sudarsanam, and S. Malik. Instruction Set Design and Optimization Techniques for Address Computation in DSP Architectures. In Proceedings of 9th International Symposium on System Synthesis, 1996.

  14. R. Leupers, A. Basu, and P. Marwedel. Optimized Array Index Computation in DSP Programs. In Proceedings of the Asia-Pacific Design Automation Conference, February 1998.

  15. C. Liem, P. Paulin, and A. Jerraya. Address Calculation for Retargetable Compilation and Exploration of Instruction-Set Architectures. In Proceedings of the 33th Design Automation Conference, pp. 597-600, June 1996.

  16. M. Willems, H. Keding, V. Živojnović, and H. Meyr. Modulo-Addressing Utilization in Automatic Software Synthesis for Digital Signal Processors. In Proceedings of the International Conference on Acoustics, Speech, and Signal Processing, 1997.

  17. B. Wess and M. Gotschlich. Optimal DSP Memory Layout Generation as a Quadratic Assignment Problem. In Proceedings of the International Symposium on Circuits and Systems, 1997.

  18. A. Sudarsanam and S. Malik. Memory Bank and Register Allocation in Software Synthesis for ASIPs. In Proceedings of the International Conference on Computer-Aided Design, pp. 388-392, 1995.

  19. B. Wess. Automatic Code Generation for Integrated Digital Signal Processors. In Proceedings of the International Symposium on Circuits and Systems, 1991.

  20. D. Powell, E. Lee, and W. Newman. Direct Synthesis of Optimized DSP Assembly Code from Signal Flow Block Diagrams, Proceedings of the International Conference on Acoustics, Speech, and Signal Processing, vol. 5, pp. 553-556, 1992.

    Google Scholar 

  21. M. Saghir, P. Chow, and C. Lee. Exploiting Dual Data-Memory Banks in Digital Signal Processors. In Proceedings of the ACM SIGARCH Conference on Architectural Support for Programming Languages and Operating Systems, 1996.

  22. R. Leupers and P. Marwedel. Instruction Selection for Embedded DSPs with Complex Instructions. In Proceedings of the European Design Automation Conference, 1996.

  23. R. Leupers and P. Marwedel. Time-constrained Code Compaction for DSPs. In Proceedings of the 8th International Symposium on System Synthesis, 1995.

  24. S. Kirkpatrick, C. Gelatt, and M. Vecchi. Optimization by Simulated Annealing, Science. 220: 671-680, 1983.

    Google Scholar 

  25. P. Briggs, K. Cooper, and L. Torczon. Improvements to Graph Coloring Register Allocation, Acm Transactions on Programming Languages and Systems. 16(3): 428-455, May 1994.

    Google Scholar 

  26. R. Keller. Look-Ahead Processors, Computing Surveys, 7(4), December 1975.

  27. T. Wagner, V. Maverick, S. Graham, and M. Harrison. Accurate Static Estimators for Program Optimization. In Proceedings of the ACM SIGPLAN'94 Conference on Programming Language Design and Implementation, June 1994.

  28. A. Sudarsanam, S. Liao, and S. Devadas. Analysis and Evaluation of Address Arithmetic Capabilities in Custom DSP Architectures. In Proceedings of the 34th Design Automation Conference, pp. 287-292, June 1997.

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Sudarsanam, A., Liao, S. & Devadas, S. Analysis and Evaluation of Address Arithmetic Capabilities in Custom DSP Architectures. Design Automation for Embedded Systems 4, 5–22 (1999). https://doi.org/10.1023/A:1008869915325

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1023/A:1008869915325

Navigation