Compiling for EDGE Architectures
- 7 April 2006
- proceedings article
- Published by Institute of Electrical and Electronics Engineers (IEEE)
- p. 185-195
- https://doi.org/10.1109/cgo.2006.10
Abstract
Explicit Data Graph Execution (EDGE) architectures of- fer the possibility of high instruction-level parallelismwith energy efficiency. In EDGE architectures, the compiler breaks a program into a sequence of structured blocks that the hardware executes atomically. The instructions within each block communicate directly, instead of communicating through shared registers. The TRIPS EDGE architecture imposes restrictions on its blocks to simplify the microar- chitecture: each TRIPS block has at most 128 instructions, issues at most 32 loads and/or stores, and executes at most 32 register bank reads and 32 writes. To detect block com- pletion, each TRIPS block must produce a constant number of outputs (stores and register writes) and a branch deci- sion. The goal of the TRIPS compiler is to produce TRIPS blocks full of useful instructions while enforcing these co n- straints. This paper describes a set of compiler algorithms that meet these sometimes conflicting goals, including an algorithm that assigns load and store identifiers to maxi- mize the number of loads and stores within a block. We demonstrate the correctness of these algorithms in simu- lation on SPEC2000, EEMBC, and microbenchmarks ex- tracted from SPEC2000 and others. We measure speedup in cycles over an Alpha 21264 on microbenchmarks.Keywords
This publication has 21 references indexed in Scilit:
- An adaptive, non-uniform cache structure for wire-delay dominated on-chip cachesPublished by Association for Computing Machinery (ACM) ,2002
- The Garp architecture and C compilerComputer, 2000
- The Alpha 21264 microprocessorIEEE Micro, 1999
- Quality and speed in linear-scan register allocationPublished by Association for Computing Machinery (ACM) ,1998
- Baring it all to software: Raw machinesComputer, 1997
- Profile-assisted instruction schedulingInternational Journal of Parallel Programming, 1994
- Executing a program on the MIT tagged-token dataflow architectureIEEE Transactions on Computers, 1990
- The program dependence web: a representation supporting control-, data-, and demand-driven interpretation of imperative languagesPublished by Association for Computing Machinery (ACM) ,1990
- An efficient method of computing static single assignment formPublished by Association for Computing Machinery (ACM) ,1989
- Conversion of control dependence to data dependencePublished by Association for Computing Machinery (ACM) ,1983