[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
article

An effective and efficient code generation algorithm for uniform loops on non-orthogonal DSP architecture

Published: 01 March 2007 Publication History

Abstract

To meet ever-increasing demands for higher performance and lower power consumption, many high-end digital signal processors (DSPs) commonly employ non-orthogonal architecture. This architecture typically is characterized by irregular data paths, heterogeneous registers, and multiple memory banks. Moreover, sufficient compiler support is obviously important to harvest its benefits. However, usual compilation techniques do not adapt well to non-orthogonal architectures and the compiler design becomes much more difficult due to the complexity of these architectures. The entire code generation process for non-orthogonal architecture must include several phases. In this paper, we extend our previous study to propose a code generation algorithm Rotation Scheduling with Spill Codes Avoiding (RSSA), which is suitable for various DSPs with similar architectural features. As well as introducing detailed principles and algorithms of RSSA, we select several DSP applications and evaluate it under Motorola DSP56000 architectures. The evaluation results clearly demonstrate the effectiveness of RSSA, which can obtain scheduling results with minimum length and fewer spill codes compared to related work. In addition, in order to study the influence of different number of resources on the scheduling result, we also define a hypothetical machine model to represent a scalable non-orthogonal DSP architecture. After evaluating RSSA on various target architectures, we find that adding additional accumulators is the most efficient way to reduce spill codes. Meanwhile, for instruction-level parallelism exploration, numbers of data ALUs and accumulators have to be concurrently increased. Furthermore, based on our analysis, RSSA is not only effective but also quite efficient compared to related studies.

References

[1]
Cho, J., Paek, Y., Whalley, D., 2002. Efficient register and memory assignment for non-orthogonal architectures via graph coloring and MST algorithms. In: Proceedings of ACM Joint conference LCTES-SCOPES, June, pp. 130-138.
[2]
Daveau, J.M., Thery, T., Lepley, T., Santana, M., 2004. A retargetable register allocation framework for embedded processors. In: Proceedings of ACM SIGPLAN/SIGBED, June, pp. 202-210.
[3]
The evolution of DSP processors. IEEE Signal Processing Magazine. v17 i2. 43-51.
[4]
Hsu, Y.C., Jeang, Y.L., 1993. Pipeline Scheduling Techniques in High-Level Synthesis. In: Proceedings of 6th Annual IEEE International ASIC Conference and Exhibition, Rochester, pp. 396-403.
[5]
Kessler, C., Bednarski, A., 2002. Optimal integrated code generation for clustered VLIW architectures. In: Proceedings of ACM Joint Conference LCTES-SCOPES, June, pp. 102-111.
[6]
VLSI Array Processors. Prentice-Hall, Englewood, NJ.
[7]
The parallel execution of DO loops. Communications of the ACM SIGPLAN. v17 i2. 82-93.
[8]
DSP Processor Fundamentals: Architectures and Features. Berkeley Design Technology, Inc.
[9]
Lee, Y.H., Chen, C., 2004. Efficient variable partitioning and scheduling methods of multiple memory modules for DSP. In: Proceedings of 10th Workshop on Compiler Techniques for High-Performance Computing, March, pp. 80-89.
[10]
Lee, Y.H., Chen, C., 2005. An efficient code generation algorithm for non-orthogonal DSP architecture. In: Proceedings of 11th Workshop on Compiler Techniques for High-Performance Computing, March, pp. 49-58.
[11]
Retiming synchronous circuitry. Algorithmica. v6 i1. 5-35.
[12]
Leupers, R., Kotte, D., 2001. Variable partitioning for dual memory bank DSPs. In: Proceedings of International Conference on Acoustics, Speech, and Signal Processing, vol. 2, pp. 1121-1124.
[13]
VLSI Digital Signal Processors: An Introduction to Rapid Prototyping and Design Synthesis. Butterworth-Heinemann, Boston.
[14]
MESCAL, Availabel from: <http://www.princeton.edu/~mescal/>, <http://embedded.eecs.berkeley.edu/mescal/>.
[15]
Motorola, DSP56000/DSP56001 Digital Signal Processor User's Manual, Motorola Inc., Phoenix, AZ.
[16]
OptimoDE, Available from: <http://www.arm.com/products/CPUs/families/OptimoDE.html>.
[17]
ORC, Available from: <http://ipf-orc.sourceforge.net/>.
[18]
Saghir, M.A.R., Chow, P., Lee, C.G., 1994. Towards better DSP architectures and compilers. In: Proceedings of International Conference on Signal Processing Applications and Technology, October, pp. 658-664.
[19]
Saghir, M.A.R., Chow, P., Lee, C.G., 1996. Exploiting dual-memory banks in digital signal processors. In: Proceedings of 7th International Conference on Architecture Support for Programming Language and Operating Systems, pp. 234-243.
[20]
Scholz, B., Eckstein, E., 2002. Register allocation for irregular architectures. In: Proceedings of ACM Joint Conference LCTES-SCOPES, June, pp. 139-148.
[21]
Shiue, W.T., 2001. Energy-efficient backend compiler design for embedded systems. In: Proceedings of 10th International Conference on Electrical and Electronic Technology, vol. 1, August, pp. 103-109.
[22]
Simultaneous reference allocation in code generation for dual data memory bank ASIPS. ACM Transactions on Design Automation of Electronic Systems. v5 i2. 242-264.
[23]
Tensilica, Available from: <http://www.tensilica.com/>.
[24]
Trimaran, Available from: <http://www.trimaran.org/>.
[25]
Wang, Z., Hu, X.S., 2004. Power aware variable partitioning and instruction scheduling for multiple memory banks. In: Proceedings of Design, Automation and Test in Europe Conference and Exhibition, vol. 1, February, pp. 312-317.
[26]
Zhuang, X., Zhang, T., Pande, S., 2004. Hardware-managed register allocation for embedded processors. In: Proceedings of ACM SIGPLAN/SIGBED, June, pp. 192-201.
[27]
Zhuge, Q., Xiao, B., Sha, E.H.M., 2001. Exploring variable partitioning for dual data-memory bank processors. In: Proceedings of 34th International Symposium on Microarchitecture, December, pp. 45-52.

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image Journal of Systems and Software
Journal of Systems and Software  Volume 80, Issue 3
March, 2007
155 pages

Publisher

Elsevier Science Inc.

United States

Publication History

Published: 01 March 2007

Author Tags

  1. Code generation
  2. DSP
  3. Non-orthogonal architecture

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 0
    Total Downloads
  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 26 Dec 2024

Other Metrics

Citations

View Options

View options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media