Abstract
Digital signal processors provide dedicated address generation units that support zero-cost address pointer modifications within a limited offset range. In order to fully exploit these features, program variables must be carefully placed in memory. However, the problem of generating optimum data memory layouts is NP-hard. Efficient heuristics are available for offset ranges ± 1 and ± 2. For an arbitrary set of zero-cost address offsets, optimum memory layout generation can be represented as a quadratic assignment problem (QAP) and solved by a heuristic technique such as simulated annealing (SA). A total number of N! layouts exist where N is the number of different program variables. The solution space becomes even larger in case of multiple address pointers. For each coloring of the access sequence, which corresponds to a specific address pointer assignment, an optimum memory layout has to be found by solving a separate QAP. So far no efficient heuristics exist for combining memory layout generation with address pointer assignment. We show that for a fixed layout optimum address pointer assignments can produced for a given maximum number of K address pointers. The complexity of this algorithm is of O(N K). It has been applied to the OffsetStone benchmark suite. As can be demonstrated by some examples, memory layout generation and address pointer assignment are strongly interdependent problems. We introduce a new algorithm that iterates over several optimized layout generation and optimum pointer assignments steps. Experimental results indicate that compared to SA this new technique produces results of equal quality in less time.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Wess, B., Gotschlich, M.: Optimal DSP memory layout generation as a quadratic assignment problem. In: Proc. IEEE Int. Symp. on Circuits and Systems, Hong Kong, June 1997, pp. 1712–1715 (1997)
Liao, S., Devadas, S., Keutzer, K., Tjiang, S., Wang, A.: Storage assignment to decrease code size. In: Proc. ACM Conf. on Programming Language Design and Implementation, June 1995, pp. 186–195 (1995)
Ottoni, D., Ottoni, G., Araujo, G., Leupers, R.: Improving offset assignment through simultaneous variable coalescing. In: Proc. 7th Int. Workshop on Software and Compilers for Embedded Systems, September 2003, pp. 285–297 (2003)
Papadimitriou, C.H.: The NP-completeness of the bandwidth minimization problem. Computing 16, 263–270 (1976)
Saxe, J.B.: Dynamic-programming algorithms for recognizing small-bandwidth graphs in polynomial time. SIAM J. Alg. Disc. Meth. 1(4), 363–369 (1980)
Garey, M.R., Graham, R.L., Johnson, D.S., Knuth, D.E.: Complexity results for bandwidth minimization. SIAM J. Appl. Math. 34(3), 477–495 (1978)
Wess, B., Gotschlich, M.: Constructing memory layouts for address generation units supporting offset 2 access. In: Proc. IEEE Int. Conf. on Acoustics, Speech, and Signal Processing, Munich, April 1997, vol. 1, pp. 683–686 (1997)
Wess, B.: Minimization of data address computation overhead in DSP programs. Kluwer Design Automation for Embedded Systems 4, 167–185 (1999)
Leupers, R., Marwedel, P.: Algorithms for address assignment in DSP code generation. In: Proc. IEEE Int. Conf. on Computer-Aided Design, San Jose, November 1996, pp. 109–112 (1996)
Golumbic, M.C.: Algorithmic Graph Theory and Perfect Graphs. Academic Press, London (1980)
Wess, B., Zeitlhofer, T.: Optimum address pointer assignment for digital signal processors. In: Proc. IEEE Int. Conf. on Acoustics, Speech, and Signal Processing (2004)
Leupers, R.: Offset assignment showdown: Evaluation of DSP address code optimization algorithms. In: Hedin, G. (ed.) CC 2003. LNCS, vol. 2622, Springer, Heidelberg (2003), http://www.address-code-optimization.org
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2004 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Wess, B., Zeitlhofer, T. (2004). On the Phase Coupling Problem Between Data Memory Layout Generation and Address Pointer Assignment. In: Schepers, H. (eds) Software and Compilers for Embedded Systems. SCOPES 2004. Lecture Notes in Computer Science, vol 3199. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-30113-4_12
Download citation
DOI: https://doi.org/10.1007/978-3-540-30113-4_12
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-23035-9
Online ISBN: 978-3-540-30113-4
eBook Packages: Springer Book Archive