Abstract
Processors used in embedded systems have specific requirements which are not always met by off-the-shelf processors. A templated processor architecture, which can easily be tuned towards a certain application (domain) offers a solution. The transport triggered architecture (TTA) template presented in this paper has a number of properties that make it very suitable for embedded system design. Key to its success is to give the compiler more control; it has to schedule all data transports within the processor. This paper highlights two important TTA-related issues. First a new code generation method for TTAs is discussed; it integrates scheduling and register allocation, thereby avoiding the notorious phase ordering problem between these two steps. Secondly, we discuss how to tune the instruction repertoire for an embedded processor. A tool is described which automatically detects frequent patterns of operations. These patterns can then be implemented on special function units.
Similar content being viewed by others
REFERENCES
Henk Corporaal, Microprocessor Architectures; From VLIW to TTA, John Wiley (1998).
Jan Hoogerbrugge. Code generation for Transport Triggered Architectures. PhD thesis, Delft Univ. of Technology, February 1996. ISBN 90-9009002-9.
Henk Corporaal, TTAs: Missing the ILP complexity wall, J. Syst. Architecture, 45(12-13): 949-973 (June 1999).
Andreas Koch, SPARXIL: Ein konfigurierbarer FPGA-Coprocessor, GI-ITG-workshops on Architecturen für hochintegrierte Schaltungen, Schloss Dagstuhl, pp. 65–66 (July 1994).
R. Brayton and R. Spence, Sensitivity and Optimization, Elsevier (1980).
D. Bernstein and M. Rodeh, Global instruction scheduling for superscalar machines, Proc. ACM SIGPLAN Conf. Progr. Lang. Design and Implementation, pp. 241–255 (June 1991).
P. Briggs, K. D. Cooper, K. Kennedy, and L. Torczon, Coloring heuristics for register allocation, SIGPLAN Notices, 24(7):275–284 (July 1989).
John R. Ellis, Bulldog: A compiler for VLIW architectures, ACM Doctoral Dissertation Awards, MIT Press, Cambridge, Massachusetts (1986).
C. Norris and L. L. Pollock, An experimental study of several cooperative register allocation and instruction scheduling strategies, Proc. 28th Ann. Int'l. Symp. Microarchitecture, Ann Arbor, Michigan, pp. 169–179 (November 1995).
Shlomit S. Pinter, Register allocation with instruction scheduling: A new approach, SIGPLAN Conf. Progr. Lang. Design and Implementation, pp. 248–257 (June 1993).
B. Ramakrishna Rau, Iterative modulo scheduling: An algorithm for software pipelining loops, Proc. 27th Ann. Int'l. Workshop on Microprogramming, San Jose, California (November 1994).
M. R. Garey and D. S. Johnson, Computers and Intractability: A Guide to the Theory of NP-Completeness, W. H. Freeman and Company, New York (1979).
Joseph A. Fisher, Trace scheduling: A technique for global microcode compaction, IEEE Trans. Computers, C-30(7):478–490 (July 1981).
N. P. Jouppi and D. W. Wall, Available instruction-level parallelism for superscalar and superpipelined machines, Proc. Third Int'l. Conf. Architectural Support for Progr. Lang. Operat. Syst., pp. 272–282 (April 1989).
Scott A. Mahlke and Balas Natarajan, Compiler synthesized dynamic branch prediction, Proc. 29th Ann. Int'l. Symp. Microarchitecture, pp. 153–164 (December 1996).
G. J. Chaitin, Register allocation and spilling via graph coloring, Proc. ACM SIGPLAN Symp. Compiler Construction, Boston, ACM, New York, pp. 98–105 (June 1982).
R. M. Karp, Reducibility among combinatorial problems. In R. E. Miller and J. W. Thatcher (eds.), Complexity of Computer Computations, Plenum Press, pp. 85–103 (1972).
W. Ambrosch, M. A. Ertl, F. Beer, and A. Krall, Dependence-conscious global register allocation. In Jürg Gutknecht (ed.), Progr. Lang. Syst. Architectures, Zürich, Springer LNCS 782, pp. 125–136 (1994).
C. Norris and L. L. Pollock, Register allocation over the program dependence graph, ACM SIGPLAN Conf. Progr. Lang. Design and Implementation (June 1994).
J. R. Goodman and Wei-Chung Hsu, Code scheduling and register allocation in large basic blocks, Proc. Int'l. Conf. Supercomputing, St. Malo, France, pp. 442–452 (July 1988).
Philip Sweany and Steven Beaty, Post-compaction register assignment in a retargetable compiler, Proc. 23rd Ann. Workshop on Microprogramming and Microarchitectures, Orlando, Florida, pp. 107–116 (November 1990).
J. A. A. J. Janssen, Registers on demand, an integrated region scheduler and register allocator, Technical Report 1-68340-44(2000)-03, Delft University of Technology, Delft, The Netherlands (January 2000).
J. A. A. J. Janssen and H. Corporaal, Registers on demand, an integrated region scheduler and register allocator, Poster Proc. Seventh Int'l. Conf. Compiler Construction, Lisbon, Portugal, pp. 44–51 (April 1998).
P.-Y. Chang, E. Hao, and Y. N. Patt, Alternative implementations of hybrid branch predictors, Proc. 28th Ann. Int'l. Symp. Microarchitecture, Michigan, pp. 252–257 (November 1995).
J. Hoogerbrugge and L. Augesteijn, Instruction scheduling for TriMedia, Journal of Instruction-Level Parallelism (February 1999).
Marnix Arnold and Henk Corporaal, Matching and covering with multiple-output patterns, Technical Report 1-68340-44(1999)-01, Delft University of Technology (1999).
A. Aho and M. Corassick, Efficient string matching: An aid to bibliographic research, Commun. ACM, 18(6):333–340 (June 1975).
K. Keutzer, Dagon: Technology binding and local optimization by DAG matching, DAC, Proc. Design Automation Conf., pp. 617–623 (May 1987).
Alfred V. Aho, Ravi Sethi, and Jeffrey D. Ullman, Compilers: Principles, Techniques and Tools, Addison-Wesley Series in Computer Science, Addison-Wesley Publishing Company, Reading, Massachusetts (1985).
Yuji Kukimoto, Robert K. Brayton, and Prashant Sawkar, Delay-optimal technology mapping by DAG covering, Proc. Design Automation Conf. (1998).
Clifford Liem, Trevor May, and Pierre Paulin, Instruction-set matching and selection for dsp and asip code generation, Proc. EDAC-ETC-EUROASIC, pp. 31–37 (1994).
Frederick Onion, Alexandru Nicolau, and Nikil Dutt, Compiler Feedback in ASIP Design, Technical Report, University of California, Irvine (September 1994). Printed in Belgium
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Corporaal, H., Janssen, J. & Arnold, M. Computation in the Context of Transport Triggered Architectures. International Journal of Parallel Programming 28, 401–427 (2000). https://doi.org/10.1023/A:1007511206083
Issue Date:
DOI: https://doi.org/10.1023/A:1007511206083